diff --git a/MakefileEks.mk b/MakefileEks.mk index b70b6dc78..66cb42a31 100644 --- a/MakefileEks.mk +++ b/MakefileEks.mk @@ -5,12 +5,29 @@ LDFLAGSSTRING +=-X main.GitCommit=$(GITCOMMIT) LDFLAGSSTRING +=-X main.GitDate=$(GITDATE) LDFLAGS := -ldflags "$(LDFLAGSSTRING)" +build-bk-test-morph-test-qanet-to-morph-doc-qanet: + source ./makefile-function.sh && MFPnpmInstall && pnpm run build:qanet + cp -rf nginx_sub_qanet.conf nginx_sub.conf + +start-bk-test-morph-test-qanet-to-morph-doc-qanet: + # mkdir -p logs/morph-doc && pnpm run deploy:qanet + @echo "starting ngnix..." + nginx -g 'daemon off;' + + + +healthcheck-bk-test-morph-test-qanet-to-morph-doc-qanet: + curl http://127.0.0.1:8080 + build-bk-prod-morph-prod-mainnet-to-morph-doc: - source ./makefile-function.sh && MFPnpmInstall && pnpm run build + source ./makefile-function.sh && MFPnpmInstall && pnpm run build:mainnet + cp -rf nginx_sub_mainnet.conf nginx_sub.conf start-bk-prod-morph-prod-mainnet-to-morph-doc: - mkdir -p logs/morph-doc && pnpm run serve + # mkdir -p logs/morph-doc && pnpm run deploy:mainnet + @echo "starting ngnix..." + nginx -g 'daemon off;' healthcheck-bk-prod-morph-prod-mainnet-to-morph-doc: curl http://127.0.0.1:8080 diff --git a/README.md b/README.md index 5b46f6e58..cec3f21d3 100644 --- a/README.md +++ b/README.md @@ -20,10 +20,10 @@ Our decentralized sequencer design and innovative Layer 2 approach address block Website: https://www.morphl2.io/ -Twitter: https://twitter.com/Morphl2 +Twitter: https://x.com/MorphLayer Medium: [Morph – Medium](https://medium.com/@morphlayer2) -Telegram: https://t.me/morphoffical +Telegram: https://t.me/MorphL2official Gmail: official@morphl2.io \ No newline at end of file diff --git a/assets/docs/about/roadmap/roadmap1.jpg b/assets/docs/about/roadmap/roadmap1.jpg new file mode 100644 index 000000000..f2de04ce1 Binary files /dev/null and b/assets/docs/about/roadmap/roadmap1.jpg differ diff --git a/assets/docs/about/userpage1.jpeg b/assets/docs/about/userpage1.jpeg new file mode 100644 index 000000000..6d6f6fc4a Binary files /dev/null and b/assets/docs/about/userpage1.jpeg differ diff --git a/build/404.html b/build/404.html index 3dba16710..8d6516462 100644 --- a/build/404.html +++ b/build/404.html @@ -3,11 +3,15 @@ -Page Not Found | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +Page Not Found | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

+
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

\ No newline at end of file diff --git a/build/assets/css/styles.5e55a320.css b/build/assets/css/styles.5e55a320.css new file mode 100644 index 000000000..d4f985a55 --- /dev/null +++ b/build/assets/css/styles.5e55a320.css @@ -0,0 +1 @@ +.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown li,body{word-wrap:break-word}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.avatar__photo,.card,.text--truncate{overflow:hidden}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.menu,.navbar-sidebar{overflow-x:hidden}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}.button,.dropdown__link,.sr-only,.text--truncate,.truncate{white-space:nowrap}.ring-background,.ring-danger,.ring-default,.ring-primary,.ring-secondary,.ring-success,.ring-warning{--tw-ring-opacity:1}*,.DocSearch-Container,.DocSearch-Container *,.box-border{box-sizing:border-box}.text--truncate,.text-ellipsis,.truncate{text-overflow:ellipsis}.tap-highlight-transparent,.toggleButton_C4u_,html{-webkit-tap-highlight-color:transparent}:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:#0000;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:#0000000d;--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 #0000001a;--ifm-global-shadow-md:0 5px 40px #0003;--ifm-global-shadow-tl:0 12px 28px 0 #0003,0 2px 4px 0 #0000001a;--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:#0000;--ifm-table-stripe-background:#00000008;--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--docusaurus-progress-bar-color:var(--ifm-color-primary);--docusaurus-tag-list-border:var(--ifm-color-emphasis-300);--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:#656c85cc;--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 #ffffff80,0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px #1e235a66;--docsearch-key-pressed-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 1px 0 #1e235a66;--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 #45629b1f;--docsearch-primary-color:var(--ifm-color-primary);--docsearch-text-color:var(--ifm-font-color-base);--docusaurus-announcement-bar-height:auto;--docusaurus-collapse-button-bg:#0000;--docusaurus-collapse-button-bg-hover:#0000001a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:#0000}html{-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base);text-rendering:optimizelegibility}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width);padding:0 var(--ifm-spacing-horizontal);width:100%}.container--fluid{max-width:inherit}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none{margin-top:0!important}.mx-0,.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-right--none{margin-right:0!important}.px-0,.row--no-gutters>.col{padding-left:0;padding-right:0}.data-\[has-helper\=true\]\:items-start[data-has-helper=true],.group[data-has-label=true] .group-data-\[has-label\=true\]\:items-start,.items-start,.row--align-top{align-items:flex-start}.group[data-has-label=true] .group-data-\[has-label\=true\]\:items-end,.items-end,.row--align-bottom{align-items:flex-end}.items-center,.menuExternalLink_T45N,.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;flex:1 0;margin-left:0;max-width:var(--ifm-col-width);padding:0 var(--ifm-spacing-horizontal);width:100%}.\!pb-0,.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:8.33333%}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:16.66667%}.col--offset-2{margin-left:16.66667%}.col--3{--ifm-col-width:25%}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:33.33333%}.col--offset-4{margin-left:33.33333%}.col--5{--ifm-col-width:41.66667%}.col--offset-5{margin-left:41.66667%}.col--6{--ifm-col-width:50%}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:58.33333%}.col--offset-7{margin-left:58.33333%}.col--8{--ifm-col-width:66.66667%}.col--offset-8{margin-left:66.66667%}.col--9{--ifm-col-width:75%}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:83.33333%}.col--offset-10{margin-left:83.33333%}.col--11{--ifm-col-width:91.66667%}.col--offset-11{margin-left:91.66667%}.col--12{--ifm-col-width:100%}.col--offset-12{margin-left:100%}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.\!px-1,.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.\!px-1,.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid #0000001a;border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:initial;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}.max-w-full,img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul{margin-bottom:var(--ifm-leading)}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical)}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width) solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);border:0;height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary,.wordWrapButtonEnabled_Eugp .wordWrapButtonIcon_KMHO{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.admonitionHeading_WmUu,.alert__heading,.text--uppercase,.uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.clean-list{list-style:none;padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:#3578e526;--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:#ebedf026;--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:#00a40026;--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:#54c7ec26;--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:#ffba0026;--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:#fa383e26;--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);width:var(--ifm-avatar-photo-size)}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after,.inline-block{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:any-link:hover,.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;-webkit-user-select:none;user-select:none}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:#0000;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex;gap:var(--ifm-button-group-spacing)}.button-group>.button:not(:first-child),.last-of-type\:rounded-l-none:last-of-type{border-bottom-left-radius:0;border-top-left-radius:0}.button-group>.button:not(:last-child),.first-of-type\:rounded-r-none:first-of-type{border-bottom-right-radius:0;border-top-right-radius:0}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button,.data-\[justify\=end\]\:flex-grow[data-justify=end],.data-\[justify\=start\]\:flex-grow[data-justify=start],.flex-grow{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column}.card--full-height,.h-full,body,html{height:100%}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child,.pt-0{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child),.pb-0{padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.aria-expanded\:opacity-70[aria-expanded=true],.close:hover,.data-\[pressed\=true\]\:opacity-70[data-pressed=true],.group[data-pressed=true] .group-data-\[pressed\=true\]\:opacity-70,.opacity-70,.peer[data-filled=true]~.peer-data-\[filled\=true\]\:opacity-70{opacity:.7}.close:focus,.hover\:opacity-80:hover,.theme-code-block-highlighted-line .codeLineNumber_dbgI:before{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}#nprogress,.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true],.dropdown__menu,.navbar__item.dropdown .navbar__link:not([href]),.pointer-events-none{pointer-events:none}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;list-style:none;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor #0000;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:var(--ifm-footer-logo-max-width)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.docItemContainer_AUwr article>:first-child,.docItemContainer_AUwr header+*,.footer__item,.mt-0{margin-top:0}.admonitionContent_Lm9s>:last-child,.collapsibleContent_MmFW p:last-child,.details_NQJP>summary>p:last-child,.footer__items{margin-bottom:0}.codeBlockStandalone__C0n,[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{list-style:none;margin:0;padding-left:0}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child),.mt-1{margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.details_NQJP[data-collapsed=false].isBrowser_nVDU>summary:before,.details_NQJP[open]:not(.isBrowser_nVDU)>summary:before,.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.navbar-sidebar,.navbar-sidebar__backdrop{opacity:0;top:0;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;visibility:hidden;bottom:0;left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__link:hover{color:var(--ifm-menu-color);text-decoration:none}.menu__caret:before,.menu__link--sublist-caret:after{content:"";transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;filter:var(--ifm-menu-link-sublist-icon-filter)}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:13px}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.data-\[open\=true\]\:flex[data-open=true],.flex,.footer__links,.group[data-has-helper=true] .group-data-\[has-helper\=true\]\:flex,.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.announcementBarContent_jjlM,.flex-auto,.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;height:2rem;margin-right:.5rem}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.m-0,.navbar__items--center .navbar__brand{margin:0}.footer__col:nth-child(3),.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:#ffffff1a;--ifm-navbar-search-input-placeholder-color:#ffffff80;color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:#ffffff0d;--ifm-navbar-search-input-color:var(--ifm-color-white)}[data-theme=dark],[data-theme=light]{--ifm-color-primary:#14a800;--ifm-color-primary-dark:#3fff90;--ifm-color-primary-darker:#2dff85;--ifm-color-primary-darkest:#00f768;--ifm-color-primary-light:#85ffb8;--ifm-color-primary-lighter:#97ffc3;--ifm-color-primary-lightest:#ccffe1;--ifm-menu-color-background-active:#14a800;--ifm-menu-color-background-hover:#14a800;--ifm-navbar-link-color:#fff;--ifm-footer-color:#999}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:.9rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);position:fixed;transform:translate3d(-100%,0,0);transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:#0009;position:fixed;right:0;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.\[\&\>tr\]\:first\:shadow-small:first-child>tr,.shadow,.shadow-\[0_1px_0px_0_rgba\(0\2c 0\2c 0\2c 0\.05\)\],.shadow-large,.shadow-lg,.shadow-md,.shadow-medium,.shadow-none,.shadow-sm,.shadow-small{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;text-align:left;top:-.5rem;width:calc(100% + 1rem)}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.inline-flex,.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination__link:hover{text-decoration:none}.pagination-nav{grid-gap:var(--ifm-spacing-horizontal);display:grid;gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);text-decoration:none}.pagination-nav__link--next{grid-column:2/3;text-align:right}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs,:not(.containsTaskList_j67I>li)>.containsTaskList_j67I{padding-left:0}.pills__item--active{color:var(--ifm-pills-color-active)}.pills__item--active,.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto}.tabs__item{border-bottom:3px solid #0000;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:#ffffff0d;--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:#ffffff1a;--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:#ffffff12;--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec;--docsearch-text-color:#f5f6f7;--docsearch-container-background:#090a11cc;--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 #0304094d;--docsearch-key-pressed-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 1px 1px 0 rgba(3,4,9,.302);--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 #494c6a80,0 -4px 8px 0 #0003;--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}@font-face{font-display:swap;font-family:Inter Variable;font-style:normal;font-weight:100 900;src:url(/assets/fonts/InterVariable-a0e477f2f1f9d2376fde931ee7c6241a.woff2) format("woff2")}@font-face{font-display:swap;font-family:Inter Variable;font-style:italic;font-weight:100 900;src:url(/assets/fonts/InterVariable-Italic-e295f70fe3e2df296c7bd1082d39afda.woff2) format("woff2")}@font-face{font-display:swap;font-family:InterDisplay;font-style:normal;font-weight:100;src:url(/assets/fonts/InterDisplay-Thin-8869ea180347c0b3e105f1f25d8159c1.woff2) format("woff2")}@font-face{font-display:swap;font-family:InterDisplay;font-style:italic;font-weight:100;src:url(/assets/fonts/InterDisplay-ThinItalic-84afcd2c98f66e503a057888753b75a0.woff2) format("woff2")}@font-face{font-display:swap;font-family:InterDisplay;font-style:normal;font-weight:200;src:url(/assets/fonts/InterDisplay-ExtraLight-8aac419550652c70acce102a1405b9e6.woff2) format("woff2")}@font-face{font-display:swap;font-family:InterDisplay;font-style:italic;font-weight:200;src:url(/assets/fonts/InterDisplay-ExtraLightItalic-3d35f6363cf46c94cb5d50618f66586b.woff2) format("woff2")}@font-face{font-display:swap;font-family:InterDisplay;font-style:normal;font-weight:300;src:url(/assets/fonts/InterDisplay-Light-878eccfa0e5c8240899d9a9588d25926.woff2) format("woff2")}@font-face{font-display:swap;font-family:InterDisplay;font-style:italic;font-weight:300;src:url(/assets/fonts/InterDisplay-LightItalic-af1c0bdb835afad15237ca3659b2c345.woff2) format("woff2")}@font-face{font-display:swap;font-family:InterDisplay;font-style:normal;font-weight:400;src:url(/assets/fonts/InterDisplay-Regular-a4074fefb60f137f7974a3f2cadf655c.woff2) format("woff2")}@font-face{font-display:swap;font-family:InterDisplay;font-style:italic;font-weight:400;src:url(/assets/fonts/InterDisplay-Italic-c0dffe244faaf5bb8fbef1517f2c89a3.woff2) format("woff2")}@font-face{font-display:swap;font-family:InterDisplay;font-style:normal;font-weight:500;src:url(/assets/fonts/InterDisplay-Medium-6e976150c457a5edc1f31e3c6affe0c5.woff2) format("woff2")}@font-face{font-display:swap;font-family:InterDisplay;font-style:italic;font-weight:500;src:url(/assets/fonts/InterDisplay-MediumItalic-361044e3f1781339740b739848dd02f0.woff2) format("woff2")}@font-face{font-display:swap;font-family:InterDisplay;font-style:normal;font-weight:600;src:url(/assets/fonts/InterDisplay-SemiBold-54b6be6a7edc5b3cbdd615e2c9a54b8b.woff2) format("woff2")}@font-face{font-display:swap;font-family:InterDisplay;font-style:italic;font-weight:600;src:url(/assets/fonts/InterDisplay-SemiBoldItalic-4f03584a088f6fd339102161c36bd5b8.woff2) format("woff2")}@font-face{font-display:swap;font-family:InterDisplay;font-style:normal;font-weight:700;src:url(/assets/fonts/InterDisplay-Bold-f5ec5e21f616f430d4ba27e814d9eeb6.woff2) format("woff2")}@font-face{font-display:swap;font-family:InterDisplay;font-style:italic;font-weight:700;src:url(/assets/fonts/InterDisplay-BoldItalic-439cef167a628cb218568c7bd4d6f0ac.woff2) format("woff2")}@font-face{font-display:swap;font-family:InterDisplay;font-style:normal;font-weight:800;src:url(/assets/fonts/InterDisplay-ExtraBold-89518fa4ab7bacdb30e6bb414678e283.woff2) format("woff2")}@font-face{font-display:swap;font-family:InterDisplay;font-style:italic;font-weight:800;src:url(/assets/fonts/InterDisplay-ExtraBoldItalic-4dcb197ef83d3558dbdcc3e8e25b568f.woff2) format("woff2")}@font-face{font-display:swap;font-family:InterDisplay;font-style:normal;font-weight:900;src:url(/assets/fonts/InterDisplay-Black-fb55d5da48c7bee4d80af9ec6cd28e3f.woff2) format("woff2")}@font-face{font-display:swap;font-family:InterDisplay;font-style:italic;font-weight:900;src:url(/assets/fonts/InterDisplay-BlackItalic-bd4243b6c8594236ba8562208aa8e267.woff2) format("woff2")}*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }:root,[data-theme]{background-color:hsl(var(--morui-background));color:hsl(var(--morui-foreground))}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.visible{visibility:visible}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.\[\&\>\*\]\:relative>*,.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{left:0;right:0}.bottom-0{bottom:0}.bottom-8{bottom:2rem}.bottom-\[10\%\]{bottom:10%}.bottom-\[5\%\]{bottom:5%}.group[data-filled-within=true] .group-data-\[filled-within\=true\]\:left-0,.group[data-filled=true] .group-data-\[filled\=true\]\:left-0,.left-0{left:0}.left-1\.5{left:.375rem}.left-1\/2{left:50%}.left-2{left:.5rem}.left-3{left:.75rem}.left-\[10\%\]{left:10%}.left-\[5\%\]{left:5%}.right-1{right:.25rem}.right-1\.5{right:.375rem}.right-3{right:.75rem}.right-\[10\%\]{right:10%}.right-\[30\%\]{right:30%}.right-\[5\%\]{right:5%}.top-0{top:0}.top-1{top:.25rem}.top-1\/2{top:50%}.top-\[10\%\]{top:10%}.top-\[5\%\]{top:5%}.top-\[6px\]{top:6px}.top-\[var\(--navbar-height\)\]{top:var(--navbar-height)}.-z-0,.z-0{z-index:0}.-z-30{z-index:-30}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.order-1{order:1}.order-2{order:2}.order-3{order:3}.-m-2{margin:-.5rem}.-m-2\.5{margin:-.625rem}.mx-1,.mx-\[calc\(\(theme\(spacing\.7\)-theme\(spacing\.5\)\)\/2\)\]{margin-left:.25rem;margin-right:.25rem}.mx-\[calc\(\(theme\(spacing\.5\)-theme\(spacing\.1\)\)\/2\)\]{margin-left:.5rem;margin-right:.5rem}.mx-\[calc\(\(theme\(spacing\.6\)-theme\(spacing\.3\)\)\/2\)\]{margin-left:.375rem;margin-right:.375rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0{margin-bottom:0;margin-top:0}.my-1,.my-\[calc\(\(theme\(spacing\.7\)-theme\(spacing\.5\)\)\/2\)\]{margin-bottom:.25rem;margin-top:.25rem}.my-16{margin-bottom:4rem;margin-top:4rem}.my-\[calc\(\(theme\(spacing\.5\)-theme\(spacing\.1\)\)\/2\)\]{margin-bottom:.5rem;margin-top:.5rem}.my-\[calc\(\(theme\(spacing\.6\)-theme\(spacing\.3\)\)\/2\)\]{margin-bottom:.375rem;margin-top:.375rem}.-mr-2{margin-right:-.5rem}.-ms-2{margin-inline-start:-.5rem}.-mt-1{margin-top:-.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-5{margin-bottom:1.25rem}.mb-8{margin-bottom:2rem}.mb-px{margin-bottom:1px}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.group[data-selected][data-pressed] .group-data-\[selected\]\:group-data-\[pressed\]\:ml-3,.ml-3{margin-left:.75rem}.mr-2{margin-right:.5rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-6{margin-top:1.5rem}.mt-\[133px\]{margin-top:133px}.mt-\[9px\]{margin-top:9px}.line-clamp-1{-webkit-box-orient:vertical;-webkit-line-clamp:1;display:-webkit-box;overflow:hidden}.block{display:block}.table{display:table}.grid{display:grid}.inline-grid{display:inline-grid}.hidden{display:none}.\!h-auto{height:auto!important}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-40{height:10rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[100dvh\]{height:100dvh}.h-\[25px\]{height:25px}.h-\[2px\]{height:2px}.h-\[320px\]{height:320px}.h-\[90\%\]{height:90%}.h-\[95\%\]{height:95%}.h-\[97px\]{height:97px}.h-\[calc\(100dvh_-_var\(--navbar-height\)_-_1px\)\]{height:calc(100dvh - var(--navbar-height) - 1px)}.h-\[var\(--navbar-height\)\]{height:var(--navbar-height)}.h-auto,.img_ce0i{height:auto}.h-divider{height:var(--morui-divider-weight)}.h-fit{height:fit-content}.h-px{height:1px}.h-screen{height:100vh}.h-unit-10{height:var(--morui-spacing-unit-10)}.h-unit-12{height:var(--morui-spacing-unit-12)}.h-unit-4{height:var(--morui-spacing-unit-4)}.h-unit-8{height:var(--morui-spacing-unit-8)}.h-unit-9{height:var(--morui-spacing-unit-9)}.max-h-64{max-height:16rem}.max-h-\[calc\(100\%_-_7\.5rem\)\]{max-height:calc(100% - 7.5rem)}.min-h-3{min-height:.75rem}.min-h-3\.5{min-height:.875rem}.min-h-4{min-height:1rem}.min-h-5{min-height:1.25rem}.min-h-6{min-height:1.5rem}.min-h-7{min-height:1.75rem}.min-h-screen{min-height:100vh}.min-h-unit-10{min-height:var(--morui-spacing-unit-10)}.min-h-unit-12{min-height:var(--morui-spacing-unit-12)}.min-h-unit-14{min-height:var(--morui-spacing-unit-14)}.min-h-unit-16{min-height:var(--morui-spacing-unit-16)}.min-h-unit-4{min-height:var(--morui-spacing-unit-4)}.min-h-unit-8{min-height:var(--morui-spacing-unit-8)}#__docusaurus,.container,.main-wrapper{min-height:100%}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-10{width:2.5rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.group[data-pressed=true] .group-data-\[pressed\=true\]\:w-5,.w-5{width:1.25rem}.group[data-pressed=true] .group-data-\[pressed\=true\]\:w-6,.w-6{width:1.5rem}.group[data-pressed=true] .group-data-\[pressed\=true\]\:w-7,.w-7{width:1.75rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[100px\]{width:100px}.w-\[128px\]{width:128px}.w-\[160px\]{width:160px}.w-\[284px\]{width:284px}.w-\[80\%\]{width:80%}.w-\[97px\]{width:97px}.w-\[calc\(100\%_-_theme\(spacing\.unit-6\)\)\]{width:calc(100% - var(--morui-spacing-unit-6))}.w-auto{width:auto}.w-divider{width:var(--morui-divider-weight)}.w-full{width:100%}.w-px{width:1px}.w-screen{width:100vw}.w-unit-10{width:var(--morui-spacing-unit-10)}.w-unit-12{width:var(--morui-spacing-unit-12)}.w-unit-4{width:var(--morui-spacing-unit-4)}.w-unit-8{width:var(--morui-spacing-unit-8)}.features,.hero-banner{width:100%;display:flex}.min-w-10{min-width:2.5rem}.min-w-3{min-width:.75rem}.min-w-3\.5{min-width:.875rem}.min-w-4{min-width:1rem}.min-w-5{min-width:1.25rem}.min-w-6{min-width:1.5rem}.min-w-8{min-width:2rem}.min-w-9{min-width:2.25rem}.min-w-\[200px\]{min-width:200px}.min-w-full{min-width:100%}.min-w-max{min-width:max-content}.min-w-unit-10{min-width:var(--morui-spacing-unit-10)}.min-w-unit-12{min-width:var(--morui-spacing-unit-12)}.min-w-unit-5{min-width:var(--morui-spacing-unit-5)}.min-w-unit-6{min-width:var(--morui-spacing-unit-6)}.min-w-unit-7{min-width:var(--morui-spacing-unit-7)}.min-w-unit-8{min-width:var(--morui-spacing-unit-8)}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-7xl{max-width:80rem}.max-w-\[1200px\]{max-width:1200px}.max-w-\[1280px\]{max-width:1280px}.max-w-\[1536px\]{max-width:1536px}.max-w-\[640px\]{max-width:640px}.max-w-\[768px\]{max-width:768px}.max-w-fit{max-width:fit-content}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-initial{flex:0 1 auto}.flex-none{flex:none}.flex-shrink-0,.shrink-0{flex-shrink:0}.basis-0,.data-\[justify\=end\]\:basis-0[data-justify=end],.data-\[justify\=start\]\:basis-0[data-justify=start]{flex-basis:0px}.table-auto{table-layout:auto}.table-fixed{table-layout:fixed}.origin-center{transform-origin:center}.origin-left{transform-origin:left}.origin-right{transform-origin:right}.origin-top-left{transform-origin:top left}.-translate-x-1\/2,.after\:-translate-x-1\/2:after,.data-\[placement\=bottom\]\:before\:-translate-x-1\/2[data-placement=bottom]:before,.data-\[placement\=top\]\:before\:-translate-x-1\/2[data-placement=top]:before{--tw-translate-x:-50%}.-rotate-90,.-translate-x-1\/2,.-translate-y-1\/2,.data-\[before\=true\]\:rotate-180[data-before=true],.data-\[direction\=ascending\]\:rotate-180[data-direction=ascending],.data-\[focus-visible\=true\]\:-translate-x-3[data-focus-visible=true],.data-\[hover\=true\]\:-translate-x-3[data-hover=true],.data-\[hover\=true\]\:translate-x-0[data-hover=true],.data-\[invisible\=true\]\:scale-0[data-invisible=true],.data-\[open\=true\]\:-rotate-90[data-open=true],.data-\[open\=true\]\:rotate-180[data-open=true],.group[data-copied=true] .group-data-\[copied\=true\]\:scale-100,.group[data-pressed=true] .group-data-\[pressed\=true\]\:scale-95,.group[data-selected=true] .group-data-\[selected\=true\]\:scale-100,.group[data-selected=true] .group-data-\[selected\=true\]\:translate-x-3,.rotate-0,.rotate-180,.scale-0,.scale-100,.scale-105,.scale-50,.transform,.translate-x-1,.translate-x-1\/2,.translate-y-1,.translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2,.data-\[placement\=left\]\:before\:-translate-y-1\/2[data-placement=left]:before,.data-\[placement\=right\]\:before\:-translate-y-1\/2[data-placement=right]:before{--tw-translate-y:-50%}.translate-x-1{--tw-translate-x:0.25rem}.translate-x-1\/2{--tw-translate-x:50%}.after\:translate-y-1:after,.translate-y-1{--tw-translate-y:0.25rem}.translate-y-1\/2{--tw-translate-y:50%}.-rotate-90,.data-\[open\=true\]\:-rotate-90[data-open=true]{--tw-rotate:-90deg}.after\:rotate-0:after,.before\:rotate-0:before,.rotate-0{--tw-rotate:0deg}.data-\[before\=true\]\:rotate-180[data-before=true],.data-\[direction\=ascending\]\:rotate-180[data-direction=ascending],.data-\[open\=true\]\:rotate-180[data-open=true],.rotate-180{--tw-rotate:180deg}.data-\[invisible\=true\]\:scale-0[data-invisible=true],.scale-0{--tw-scale-x:0;--tw-scale-y:0}.data-\[dragging\=true\]\:after\:scale-100[data-dragging=true]:after,.group[data-copied=true] .group-data-\[copied\=true\]\:scale-100,.group[data-selected=true] .group-data-\[selected\=true\]\:scale-100,.scale-100{--tw-scale-x:1;--tw-scale-y:1}.scale-105{--tw-scale-x:1.05;--tw-scale-y:1.05}.after\:scale-50:after,.scale-50{--tw-scale-x:.5;--tw-scale-y:.5}@keyframes a{0%{opacity:.2;transform:scale(0)}to{opacity:0;transform:scale(2)}}.animate-drip-expand{animation:.42s linear a}@keyframes b{0%{transform:translateX(-50%) scaleX(.2)}to{transform:translateX(100%) scaleX(1)}}.animate-indeterminate-bar{animation:1.5s cubic-bezier(.65,.815,.735,.395) infinite b}.animate-none{animation:none}.animate-spinner-ease-spin{animation:.8s infinite c}@keyframes c{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.animate-spinner-linear-spin{animation:.8s linear infinite c}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-not-allowed,.data-\[disabled\=true\]\:cursor-not-allowed[data-disabled=true],.toggleButtonDisabled_K1qw{cursor:not-allowed}.cursor-pointer,.data-\[sortable\=true\]\:cursor-pointer[data-sortable=true],.data-\[visible\=true\]\:cursor-pointer[data-visible=true],.dropdownNavbarItemMobile_I3x3{cursor:pointer}.cursor-text{cursor:text}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;user-select:none}.resize-none{resize:none}.scroll-py-6{scroll-padding-bottom:1.5rem;scroll-padding-top:1.5rem}.list-none{list-style-type:none}.appearance-none{appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.data-\[orientation\=horizontal\]\:flex-row[data-orientation=horizontal],.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.place-content-center{place-content:center}.data-\[justify\=start\]\:justify-start[data-justify=start],.justify-start{justify-content:flex-start}.data-\[justify\=end\]\:justify-end[data-justify=end],.justify-end{justify-content:flex-end}.data-\[justify\=center\]\:justify-center[data-justify=center],.justify-center{justify-content:center}.justify-between{justify-content:space-between}.\!gap-0{gap:0!important}.\!gap-unit-0{gap:var(--morui-spacing-unit-0)!important}.gap-0{gap:0}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-unit-2{gap:var(--morui-spacing-unit-2)}.gap-unit-3{gap:var(--morui-spacing-unit-3)}.space-x-0\.5>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.125rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.125rem*var(--tw-space-x-reverse))}.self-center{align-self:center}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.overflow-x-scroll{overflow-x:scroll}.truncate{overflow:hidden}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.break-words{overflow-wrap:break-word}.\!rounded-none{border-radius:0!important}.rounded{border-radius:.25rem}.rounded-\[4px\]{border-radius:4px}.rounded-\[calc\(theme\(borderRadius\.large\)\/1\.5\)\]{border-radius:calc(var(--morui-radius-large)/1.5)}.rounded-\[calc\(theme\(borderRadius\.medium\)\*0\.5\)\]{border-radius:calc(var(--morui-radius-medium)*.5)}.rounded-\[calc\(theme\(borderRadius\.medium\)\*0\.6\)\]{border-radius:calc(var(--morui-radius-medium)*.6)}.rounded-\[calc\(theme\(borderRadius\.medium\)\*0\.7\)\]{border-radius:calc(var(--morui-radius-medium)*.7)}.rounded-\[calc\(theme\(borderRadius\.medium\)\/2\)\]{border-radius:calc(var(--morui-radius-medium)/2)}.rounded-\[calc\(theme\(borderRadius\.small\)\/2\)\]{border-radius:calc(var(--morui-radius-small)/2)}.rounded-full{border-radius:9999px}.data-\[has-multiple-rows\=true\]\:rounded-large[data-has-multiple-rows=true],.rounded-large{border-radius:var(--morui-radius-large)}.rounded-md{border-radius:.375rem}.group.is-splitted .group-\[\.is-splitted\]\:rounded-medium,.rounded-medium{border-radius:var(--morui-radius-medium)}.\[\&\:not\(\:first-child\)\:not\(\:last-child\)\]\:rounded-none:not(:first-child):not(:last-child),.\[\&\:not\(\:first-of-type\)\:not\(\:last-of-type\)\]\:rounded-none:not(:first-of-type):not(:last-of-type),.rounded-none{border-radius:0}.rounded-small{border-radius:var(--morui-radius-small)}.dark,.light,:root,[data-theme=dark],[data-theme=light]{--morui-assist-3:213 10% 57%;--morui-brand-high:113 100% 33%;--morui-brand:113 100% 33%;--morui-border:0 0% 60%;--morui-link:214 100% 57%;--morui-warning-foreground:0 0% 0%;--morui-warning:37 91% 55%;--morui-fixed-green:158 58% 50%;--morui-fixed-red:338 98% 54%;--morui-fixed-white:0 0% 100%;--morui-fixed-black:0 0% 0%;--morui-box-shadow:213 20% 9%;--morui-focus:216 100% 50%;--morui-overlay:0 0% 0%;--morui-default:0 0% 20%;--morui-primary:113 100% 33%;--morui-secondary-foreground:0 0% 100%;--morui-success-foreground:0 0% 0%;--morui-success:158 58% 50%;--morui-danger-foreground:0 0% 100%;--morui-danger:338 98% 54%;--morui-green:113 100% 33%;--morui-yellow:36 93% 54%;--morui-purple:249 100% 71%;--morui-card-border-opacity:0.10;--morui-desc-1:0 0% 60%;--morui-spacing-unit:4px;--morui-spacing-unit-0:0px;--morui-spacing-unit-1:0.25rem;--morui-spacing-unit-2:0.5rem;--morui-spacing-unit-3:0.75rem;--morui-spacing-unit-4:1rem;--morui-spacing-unit-5:1.25rem;--morui-spacing-unit-6:1.5rem;--morui-spacing-unit-7:1.75rem;--morui-spacing-unit-8:2rem;--morui-spacing-unit-9:2.25rem;--morui-spacing-unit-10:2.5rem;--morui-spacing-unit-11:2.75rem;--morui-spacing-unit-12:3rem;--morui-spacing-unit-13:3.25rem;--morui-spacing-unit-14:3.5rem;--morui-spacing-unit-15:3.75rem;--morui-spacing-unit-16:4rem;--morui-spacing-unit-17:4.25rem;--morui-spacing-unit-18:4.5rem;--morui-spacing-unit-20:5rem;--morui-spacing-unit-24:6rem;--morui-spacing-unit-28:7rem;--morui-spacing-unit-32:8rem;--morui-spacing-unit-36:9rem;--morui-spacing-unit-40:10rem;--morui-spacing-unit-44:11rem;--morui-spacing-unit-48:12rem;--morui-spacing-unit-52:13rem;--morui-spacing-unit-56:14rem;--morui-spacing-unit-60:15rem;--morui-spacing-unit-64:16rem;--morui-spacing-unit-72:18rem;--morui-spacing-unit-80:20rem;--morui-spacing-unit-96:24rem;--morui-spacing-unit-xs:0.5rem;--morui-spacing-unit-sm:0.75rem;--morui-spacing-unit-md:1rem;--morui-spacing-unit-lg:1.375rem;--morui-spacing-unit-xl:2.25rem;--morui-spacing-unit-2xl:3rem;--morui-spacing-unit-3xl:5rem;--morui-spacing-unit-4xl:7.5rem;--morui-spacing-unit-5xl:14rem;--morui-spacing-unit-6xl:18rem;--morui-spacing-unit-7xl:24rem;--morui-spacing-unit-8xl:32rem;--morui-spacing-unit-9xl:40rem;--morui-spacing-unit-3_5:0.875rem;--morui-disabled-opacity:.5;--morui-divider-weight:1px;--morui-font-size-tiny:1rem;--morui-font-size-small:1.25rem;--morui-font-size-medium:1.5rem;--morui-font-size-large:40px;--morui-font-size-huge:56px;--morui-line-height-tiny:1rem;--morui-line-height-small:1.75rem;--morui-line-height-medium:2rem;--morui-line-height-large:65px;--morui-line-height-huge:72px;--morui-radius-small:8px;--morui-radius-medium:12px;--morui-radius-large:24px;--morui-radius-tiny:4px;--morui-border-width-small:1px;--morui-border-width-medium:2px;--morui-border-width-large:3px;--morui-border-width-tiny:1px;--morui-font-weight-hairline:100;--morui-font-weight-light:300;--morui-font-weight-normal:400;--morui-font-weight-medium:500;--morui-font-weight-semibold:600;--morui-font-weight-bold:700;--morui-font-weight-extrabold:800;--morui-font-weight-black:900;--morui-font-weight-tiny:400;--morui-font-weight-small:500;--morui-border-color-default:#999}.\!rounded-l-none{border-bottom-left-radius:0!important;border-top-left-radius:0!important}.\!rounded-r-none{border-bottom-right-radius:0!important;border-top-right-radius:0!important}.rounded-b-large{border-bottom-left-radius:var(--morui-radius-large);border-bottom-right-radius:var(--morui-radius-large)}.rounded-b-medium{border-bottom-left-radius:var(--morui-radius-medium);border-bottom-right-radius:var(--morui-radius-medium)}.rounded-b-small{border-bottom-left-radius:var(--morui-radius-small);border-bottom-right-radius:var(--morui-radius-small)}.rounded-t-large{border-top-left-radius:var(--morui-radius-large);border-top-right-radius:var(--morui-radius-large)}.rounded-t-medium{border-top-left-radius:var(--morui-radius-medium);border-top-right-radius:var(--morui-radius-medium)}.rounded-t-small{border-top-left-radius:var(--morui-radius-small);border-top-right-radius:var(--morui-radius-small)}.border{border-width:1px}.border-0{border-width:0}.border-2{border-width:2px}.border-3{border-width:3px}.border-medium{border-width:var(--morui-border-width-medium)}.border-small{border-width:var(--morui-border-width-small)}.border-tiny{border-width:var(--morui-border-width-tiny)}.border-b{border-bottom-width:1px}.border-b-medium{border-bottom-width:var(--morui-border-width-medium)}.border-solid{border-style:solid}.border-dotted{border-style:dotted}.border-none,.data-\[menu-open\=true\]\:border-none[data-menu-open=true]{border-style:none}.\!border-danger{--tw-border-opacity:1!important;border-color:hsl(var(--morui-danger)/var(--morui-danger-opacity,var(--tw-border-opacity)))!important}.border-b-white{border-color:hsl(var(--morui-b-white)/var(--morui-b-white-opacity,var(--tw-border-opacity)))}.border-background{--tw-border-opacity:1;border-color:hsl(var(--morui-background)/var(--morui-background-opacity,var(--tw-border-opacity)))}.border-card-border{--tw-border-opacity:1;border-color:hsl(var(--morui-card-border)/var(--morui-card-border-opacity,var(--tw-border-opacity)))}.border-danger{--tw-border-opacity:1;border-color:hsl(var(--morui-danger)/var(--morui-danger-opacity,var(--tw-border-opacity)))}.border-default,.data-\[hover\=true\]\:border-default[data-hover=true],.hover\:border-default:hover{--tw-border-opacity:1;border-color:hsl(var(--morui-default)/var(--morui-default-opacity,var(--tw-border-opacity)))}.border-default-200{--tw-border-opacity:1;border-color:hsl(var(--morui-default-200)/var(--morui-default-200-opacity,var(--tw-border-opacity)))}.border-default-300,.hover\:border-default-300:hover{--tw-border-opacity:1;border-color:hsl(var(--morui-default-300)/var(--morui-default-300-opacity,var(--tw-border-opacity)))}.border-default-600{--tw-border-opacity:1;border-color:hsl(var(--morui-default-600)/var(--morui-default-600-opacity,var(--tw-border-opacity)))}.border-divider{--tw-border-opacity:1;border-color:hsl(var(--morui-divider)/var(--morui-divider-opacity,var(--tw-border-opacity)))}.border-foreground{--tw-border-opacity:1;border-color:hsl(var(--morui-foreground)/var(--morui-foreground-opacity,var(--tw-border-opacity)))}.border-primary{--tw-border-opacity:1;border-color:hsl(var(--morui-primary)/var(--morui-primary-opacity,var(--tw-border-opacity)))}.border-secondary{--tw-border-opacity:1;border-color:hsl(var(--morui-secondary)/var(--morui-secondary-opacity,var(--tw-border-opacity)))}.border-success{--tw-border-opacity:1;border-color:hsl(var(--morui-success)/var(--morui-success-opacity,var(--tw-border-opacity)))}.border-transparent{border-color:#0000}.border-warning{--tw-border-opacity:1;border-color:hsl(var(--morui-warning)/var(--morui-warning-opacity,var(--tw-border-opacity)))}.border-l-transparent,.border-x-transparent{border-left-color:#0000}.border-r-transparent,.border-x-transparent{border-right-color:#0000}.border-y-transparent{border-bottom-color:#0000;border-top-color:#0000}.border-b-current{border-bottom-color:initial}.border-b-danger{--tw-border-opacity:1;border-bottom-color:hsl(var(--morui-danger)/var(--morui-danger-opacity,var(--tw-border-opacity)))}.border-b-default{--tw-border-opacity:1;border-bottom-color:hsl(var(--morui-default)/var(--morui-default-opacity,var(--tw-border-opacity)))}.border-b-foreground{--tw-border-opacity:1;border-bottom-color:hsl(var(--morui-foreground)/var(--morui-foreground-opacity,var(--tw-border-opacity)))}.border-b-primary{--tw-border-opacity:1;border-bottom-color:hsl(var(--morui-primary)/var(--morui-primary-opacity,var(--tw-border-opacity)))}.border-b-secondary{--tw-border-opacity:1;border-bottom-color:hsl(var(--morui-secondary)/var(--morui-secondary-opacity,var(--tw-border-opacity)))}.border-b-success{--tw-border-opacity:1;border-bottom-color:hsl(var(--morui-success)/var(--morui-success-opacity,var(--tw-border-opacity)))}.border-b-warning{--tw-border-opacity:1;border-bottom-color:hsl(var(--morui-warning)/var(--morui-warning-opacity,var(--tw-border-opacity)))}.border-b-white{--tw-border-opacity:1;border-bottom-color:rgb(255 255 255/var(--tw-border-opacity))}.border-s-danger{--tw-border-opacity:1;border-inline-start-color:hsl(var(--morui-danger)/var(--morui-danger-opacity,var(--tw-border-opacity)))}.border-s-foreground{--tw-border-opacity:1;border-inline-start-color:hsl(var(--morui-foreground)/var(--morui-foreground-opacity,var(--tw-border-opacity)))}.border-s-primary{--tw-border-opacity:1;border-inline-start-color:hsl(var(--morui-primary)/var(--morui-primary-opacity,var(--tw-border-opacity)))}.border-s-secondary{--tw-border-opacity:1;border-inline-start-color:hsl(var(--morui-secondary)/var(--morui-secondary-opacity,var(--tw-border-opacity)))}.border-s-success{--tw-border-opacity:1;border-inline-start-color:hsl(var(--morui-success)/var(--morui-success-opacity,var(--tw-border-opacity)))}.border-s-warning{--tw-border-opacity:1;border-inline-start-color:hsl(var(--morui-warning)/var(--morui-warning-opacity,var(--tw-border-opacity)))}.border-t-transparent{border-top-color:#0000}.\!bg-\[\#21231C\]{--tw-bg-opacity:1!important;background-color:rgb(33 35 28/var(--tw-bg-opacity))!important}.bg-\[\#7D68FF\]{--tw-bg-opacity:1;background-color:rgb(125 104 255/var(--tw-bg-opacity))}.bg-\[\#ffffff1a\]{background-color:#ffffff1a}.bg-background{--tw-bg-opacity:1;background-color:hsl(var(--morui-background)/var(--morui-background-opacity,var(--tw-bg-opacity)))}.bg-background\/10{background-color:hsl(var(--morui-background)/.1)}.bg-background\/70{background-color:hsl(var(--morui-background)/.7)}.bg-background\/80{background-color:hsl(var(--morui-background)/.8)}.bg-card-background{--tw-bg-opacity:1;background-color:hsl(var(--morui-card-background)/var(--morui-card-background-opacity,var(--tw-bg-opacity)))}.bg-content1,.group.is-splitted .group-\[\.is-splitted\]\:bg-content1{--tw-bg-opacity:1;background-color:hsl(var(--morui-content1)/var(--morui-content1-opacity,var(--tw-bg-opacity)))}.bg-content3{--tw-bg-opacity:1;background-color:hsl(var(--morui-content3)/var(--morui-content3-opacity,var(--tw-bg-opacity)))}.bg-current{background-color:currentColor}.bg-danger,.data-\[active\=true\]\:bg-danger[data-active=true],.data-\[hover\=true\]\:bg-danger[data-hover=true],.data-\[in-range\=true\]\:bg-danger[data-in-range=true],.data-\[selected\=true\]\:bg-danger[data-selected=true]{--tw-bg-opacity:1;background-color:hsl(var(--morui-danger)/var(--morui-danger-opacity,var(--tw-bg-opacity)))}.bg-danger-50,.group[data-focus=true] .group-data-\[focus\=true\]\:bg-danger-50{--tw-bg-opacity:1;background-color:hsl(var(--morui-danger-50)/var(--morui-danger-50-opacity,var(--tw-bg-opacity)))}.bg-danger\/20,.data-\[hover\=true\]\:bg-danger\/20[data-hover=true]{background-color:hsl(var(--morui-danger)/.2)}.bg-default,.data-\[hover\=true\]\:bg-default[data-hover=true],.data-\[selected\=true\]\:bg-default[data-selected=true]{--tw-bg-opacity:1;background-color:hsl(var(--morui-default)/var(--morui-default-opacity,var(--tw-bg-opacity)))}.bg-default-100,.data-\[hover\=true\]\:bg-default-100[data-hover=true],.hover\:bg-default-100:hover{--tw-bg-opacity:1;background-color:hsl(var(--morui-default-100)/var(--morui-default-100-opacity,var(--tw-bg-opacity)))}.\[\&\[data-hover\=true\]\:not\(\[data-active\=true\]\)\]\:bg-default-200[data-hover=true]:not([data-active=true]),.active\:bg-default-200:active,.bg-default-200,.data-\[hover\=true\]\:bg-default-200[data-hover=true],.data-\[in-range\=false\]\:bg-default-200[data-in-range=false]{--tw-bg-opacity:1;background-color:hsl(var(--morui-default-200)/var(--morui-default-200-opacity,var(--tw-bg-opacity)))}.bg-default-300\/50{background-color:hsl(var(--morui-default-300)/.5)}.bg-default-400,.data-\[active\=true\]\:bg-default-400[data-active=true],.group[data-selected=true] .group-data-\[selected\=true\]\:bg-default-400{--tw-bg-opacity:1;background-color:hsl(var(--morui-default-400)/var(--morui-default-400-opacity,var(--tw-bg-opacity)))}.bg-default-50{--tw-bg-opacity:1;background-color:hsl(var(--morui-default-50)/var(--morui-default-50-opacity,var(--tw-bg-opacity)))}.bg-default-500{--tw-bg-opacity:1;background-color:hsl(var(--morui-default-500)/var(--morui-default-500-opacity,var(--tw-bg-opacity)))}.bg-default\/40,.data-\[hover\=true\]\:bg-default\/40[data-hover=true]{background-color:hsl(var(--morui-default)/.4)}.bg-divider{--tw-bg-opacity:1;background-color:hsl(var(--morui-divider)/var(--morui-divider-opacity,var(--tw-bg-opacity)))}.bg-foreground,.data-\[in-range\=true\]\:bg-foreground[data-in-range=true]{--tw-bg-opacity:1;background-color:hsl(var(--morui-foreground)/var(--morui-foreground-opacity,var(--tw-bg-opacity)))}.bg-foreground\/10{background-color:hsl(var(--morui-foreground)/.1)}.bg-overlay\/30{background-color:hsl(var(--morui-overlay)/.3)}.bg-overlay\/50{background-color:hsl(var(--morui-overlay)/.5)}.bg-primary,.data-\[active\=true\]\:bg-primary[data-active=true],.data-\[hover\=true\]\:bg-primary[data-hover=true],.data-\[in-range\=true\]\:bg-primary[data-in-range=true],.data-\[selected\=true\]\:bg-primary[data-selected=true]{--tw-bg-opacity:1;background-color:hsl(var(--morui-primary)/var(--morui-primary-opacity,var(--tw-bg-opacity)))}.bg-primary-50,.group[data-focus=true] .group-data-\[focus\=true\]\:bg-primary-50{--tw-bg-opacity:1;background-color:hsl(var(--morui-primary-50)/var(--morui-primary-50-opacity,var(--tw-bg-opacity)))}.bg-primary\/20,.data-\[hover\=true\]\:bg-primary\/20[data-hover=true]{background-color:hsl(var(--morui-primary)/.2)}.bg-secondary,.data-\[active\=true\]\:bg-secondary[data-active=true],.data-\[hover\=true\]\:bg-secondary[data-hover=true],.data-\[in-range\=true\]\:bg-secondary[data-in-range=true],.data-\[selected\=true\]\:bg-secondary[data-selected=true]{--tw-bg-opacity:1;background-color:hsl(var(--morui-secondary)/var(--morui-secondary-opacity,var(--tw-bg-opacity)))}.bg-secondary-50,.group[data-focus=true] .group-data-\[focus\=true\]\:bg-secondary-50{--tw-bg-opacity:1;background-color:hsl(var(--morui-secondary-50)/var(--morui-secondary-50-opacity,var(--tw-bg-opacity)))}.bg-secondary\/20,.data-\[hover\=true\]\:bg-secondary\/20[data-hover=true]{background-color:hsl(var(--morui-secondary)/.2)}.bg-success,.data-\[active\=true\]\:bg-success[data-active=true],.data-\[hover\=true\]\:bg-success[data-hover=true],.data-\[in-range\=true\]\:bg-success[data-in-range=true],.data-\[selected\=true\]\:bg-success[data-selected=true]{--tw-bg-opacity:1;background-color:hsl(var(--morui-success)/var(--morui-success-opacity,var(--tw-bg-opacity)))}.bg-success-50,.group[data-focus=true] .group-data-\[focus\=true\]\:bg-success-50{--tw-bg-opacity:1;background-color:hsl(var(--morui-success-50)/var(--morui-success-50-opacity,var(--tw-bg-opacity)))}.bg-success\/20,.data-\[hover\=true\]\:bg-success\/20[data-hover=true]{background-color:hsl(var(--morui-success)/.2)}.bg-transparent,.data-\[hover\=true\]\:bg-transparent[data-hover=true]{background-color:initial}.bg-warning,.data-\[active\=true\]\:bg-warning[data-active=true],.data-\[hover\=true\]\:bg-warning[data-hover=true],.data-\[in-range\=true\]\:bg-warning[data-in-range=true],.data-\[selected\=true\]\:bg-warning[data-selected=true]{--tw-bg-opacity:1;background-color:hsl(var(--morui-warning)/var(--morui-warning-opacity,var(--tw-bg-opacity)))}.bg-warning-50,.group[data-focus=true] .group-data-\[focus\=true\]\:bg-warning-50{--tw-bg-opacity:1;background-color:hsl(var(--morui-warning-50)/var(--morui-warning-50-opacity,var(--tw-bg-opacity)))}.bg-warning\/20,.data-\[hover\=true\]\:bg-warning\/20[data-hover=true]{background-color:hsl(var(--morui-warning)/.2)}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-blue-gradient{background-image:linear-gradient(90deg,#4f60ff -7.22%,#8762f3 131.45%)}.bg-btn-bg{background-image:linear-gradient(269deg,#bffd3e -10.85%,#40f0c1 98.88%)}.bg-card-bg{background-image:linear-gradient(103deg,#47f1bb 6.5%,#81f77f 95.85%)}.bg-circle-bg{background-image:linear-gradient(270deg,#73f58f,#40f0c1)}.bg-gray-gradient{background-image:linear-gradient(139deg,#1f2822 .81%,#0e1411 97.62%)}.bg-green-gradient{background-image:linear-gradient(84deg,#40f0c1 10.08%,#bffd3e 161.38%)}.bg-green2-gradient{background-image:linear-gradient(85deg,#40f0c1 22.5%,#bffd3e 236.7%)}.bg-stripe-gradient{background-image:linear-gradient(45deg,#0000001a 25%,#0000 0,#0000 50%,#0000001a 0,#0000001a 75%,#0000 0,#0000)}.bg-\[length\:1\.25rem_1\.25rem\]{background-size:1.25rem 1.25rem}.stroke-current{stroke:currentColor}.stroke-default-300\/50{stroke:hsl(var(--morui-default-300)/.5)}.object-cover{object-fit:cover}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.group.is-splitted .group-\[\.is-splitted\]\:px-4,.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-unit-0{padding-left:var(--morui-spacing-unit-0);padding-right:var(--morui-spacing-unit-0)}.px-unit-3{padding-left:var(--morui-spacing-unit-3);padding-right:var(--morui-spacing-unit-3)}.px-unit-4{padding-left:var(--morui-spacing-unit-4);padding-right:var(--morui-spacing-unit-4)}.px-unit-6{padding-left:var(--morui-spacing-unit-6);padding-right:var(--morui-spacing-unit-6)}.py-0\.5{padding-bottom:.125rem;padding-top:.125rem}.data-\[has-title\=true\]\:pt-1[data-has-title=true],.py-1{padding-top:.25rem}.py-1{padding-bottom:.25rem}.py-1\.5{padding-bottom:.375rem;padding-top:.375rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-2\.5{padding-bottom:.625rem;padding-top:.625rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-4{padding-bottom:1rem;padding-top:1rem}.py-5{padding-bottom:1.25rem;padding-top:1.25rem}.py-6{padding-bottom:1.5rem;padding-top:1.5rem}.pb-0\.5{padding-bottom:.125rem}.pb-1{padding-bottom:.25rem}.pb-1\.5{padding-bottom:.375rem}.pb-8{padding-bottom:2rem}.pe-2{padding-inline-end:.5rem}.pl-0\.5{padding-left:.125rem}.pl-1{padding-left:.25rem}.pr-0\.5{padding-right:.125rem}.pr-1{padding-right:.25rem}.pr-2{padding-right:.5rem}.pr-6{padding-right:1.5rem}.group[data-has-helper=true] .group-data-\[has-helper\=true\]\:pt-2,.pt-2{padding-top:.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-start{text-align:start}.align-middle{vertical-align:middle}.font-denim{font-family:Denim INK,ui-sans-serif}.text-\[0\.55rem\]{font-size:.55rem}.text-\[0\.5rem\]{font-size:.5rem}.text-\[0\.6rem\]{font-size:.6rem}.text-\[14px\]{font-size:14px}.text-\[16px\]{font-size:16px}.text-\[18px\]{font-size:18px}.text-\[48px\]{font-size:48px}.text-\[59px\]{font-size:59px}.text-large{font-size:var(--morui-font-size-large);line-height:var(--morui-line-height-large)}.text-medium{font-size:var(--morui-font-size-medium);line-height:var(--morui-line-height-medium)}.text-small{font-size:var(--morui-font-size-small);line-height:var(--morui-line-height-small)}.text-tiny{font-size:var(--morui-font-size-tiny);line-height:var(--morui-line-height-tiny)}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:var(--morui-font-weight-medium)}.font-normal{font-weight:400}.data-\[active\=true\]\:font-semibold[data-active=true],.font-semibold{font-weight:600}.leading-\[20px\]{line-height:20px}.leading-\[59px\]{line-height:59px}.leading-\[70px\]{line-height:70px}.\!text-danger{--tw-text-opacity:1!important;color:hsl(var(--morui-danger)/var(--morui-danger-opacity,var(--tw-text-opacity)))!important}.text-\[\#AEDFE0\]{--tw-text-opacity:1;color:rgb(174 223 224/var(--tw-text-opacity))}.text-\[\#FFFFFF0a\]{color:#ffffff0a}.text-\[\#FFFFFF66\]{color:#fff6}.text-\[\#FFF\],.text-\[\#fff\],.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.text-b-white{--tw-text-opacity:1;color:hsl(var(--morui-b-white)/var(--morui-b-white-opacity,var(--tw-text-opacity)))}.text-background{--tw-text-opacity:1;color:hsl(var(--morui-background)/var(--morui-background-opacity,var(--tw-text-opacity)))}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity))}.hover\:text-brand:hover,.text-brand{--tw-text-opacity:1;color:hsl(var(--morui-brand)/var(--morui-brand-opacity,var(--tw-text-opacity)))}.text-card-text{--tw-text-opacity:1;color:hsl(var(--morui-card-text)/var(--morui-card-text-opacity,var(--tw-text-opacity)))}.group:hover .group-hover\:text-current,.text-current{color:currentColor}.text-danger{--tw-text-opacity:1;color:hsl(var(--morui-danger)/var(--morui-danger-opacity,var(--tw-text-opacity)))}.text-danger-300{--tw-text-opacity:1;color:hsl(var(--morui-danger-300)/var(--morui-danger-300-opacity,var(--tw-text-opacity)))}.data-\[active\=true\]\:text-danger-foreground[data-active=true],.data-\[hover\=true\]\:text-danger-foreground[data-hover=true],.data-\[selected\=true\]\:text-danger-foreground[data-selected=true],.text-danger-foreground{--tw-text-opacity:1;color:hsl(var(--morui-danger-foreground)/var(--morui-danger-foreground-opacity,var(--tw-text-opacity)))}.text-danger\/80{color:hsl(var(--morui-danger)/.8)}.text-default-400{--tw-text-opacity:1;color:hsl(var(--morui-default-400)/var(--morui-default-400-opacity,var(--tw-text-opacity)))}.data-\[hover\=true\]\:text-default-500[data-hover=true],.text-default-500{--tw-text-opacity:1;color:hsl(var(--morui-default-500)/var(--morui-default-500-opacity,var(--tw-text-opacity)))}.group[data-filled-within=true] .group-data-\[filled-within\=true\]\:text-default-600,.group[data-filled=true] .group-data-\[filled\=true\]\:text-default-600,.text-default-600{--tw-text-opacity:1;color:hsl(var(--morui-default-600)/var(--morui-default-600-opacity,var(--tw-text-opacity)))}.data-\[active\=true\]\:text-default-foreground[data-active=true],.data-\[hover\=true\]\:text-default-foreground[data-hover=true],.data-\[selected\=true\]\:text-default-foreground[data-selected=true],.text-default-foreground{--tw-text-opacity:1;color:hsl(var(--morui-default-foreground)/var(--morui-default-foreground-opacity,var(--tw-text-opacity)))}.text-desc-1{--tw-text-opacity:1;color:hsl(var(--morui-desc-1)/var(--morui-desc-1-opacity,var(--tw-text-opacity)))}.group[data-filled-within=true] .group-data-\[filled-within\=true\]\:text-foreground,.group[data-filled=true] .group-data-\[filled\=true\]\:text-foreground,.group[data-has-value=true] .group-data-\[has-value\=true\]\:text-foreground,.group[data-selected=true] .group-data-\[selected\=true\]\:text-foreground,.text-foreground{--tw-text-opacity:1;color:hsl(var(--morui-foreground)/var(--morui-foreground-opacity,var(--tw-text-opacity)))}.data-\[hover\=true\]\:text-foreground-400[data-hover=true],.text-foreground-400{--tw-text-opacity:1;color:hsl(var(--morui-foreground-400)/var(--morui-foreground-400-opacity,var(--tw-text-opacity)))}.text-foreground-500{--tw-text-opacity:1;color:hsl(var(--morui-foreground-500)/var(--morui-foreground-500-opacity,var(--tw-text-opacity)))}.text-foreground-600{--tw-text-opacity:1;color:hsl(var(--morui-foreground-600)/var(--morui-foreground-600-opacity,var(--tw-text-opacity)))}.text-foreground\/50{color:hsl(var(--morui-foreground)/.5)}.text-inherit{color:inherit}.text-primary{--tw-text-opacity:1;color:hsl(var(--morui-primary)/var(--morui-primary-opacity,var(--tw-text-opacity)))}.data-\[active\=true\]\:text-primary-foreground[data-active=true],.data-\[hover\=true\]\:text-primary-foreground[data-hover=true],.data-\[selected\=true\]\:text-primary-foreground[data-selected=true],.text-primary-foreground{--tw-text-opacity:1;color:hsl(var(--morui-primary-foreground)/var(--morui-primary-foreground-opacity,var(--tw-text-opacity)))}.text-primary\/80{color:hsl(var(--morui-primary)/.8)}.text-secondary{--tw-text-opacity:1;color:hsl(var(--morui-secondary)/var(--morui-secondary-opacity,var(--tw-text-opacity)))}.data-\[active\=true\]\:text-secondary-foreground[data-active=true],.data-\[hover\=true\]\:text-secondary-foreground[data-hover=true],.data-\[selected\=true\]\:text-secondary-foreground[data-selected=true],.hover\:text-secondary-foreground:hover,.text-secondary-foreground{--tw-text-opacity:1;color:hsl(var(--morui-secondary-foreground)/var(--morui-secondary-foreground-opacity,var(--tw-text-opacity)))}.text-secondary\/80{color:hsl(var(--morui-secondary)/.8)}.data-\[hover\=true\]\:text-success[data-hover=true],.text-success{--tw-text-opacity:1;color:hsl(var(--morui-success)/var(--morui-success-opacity,var(--tw-text-opacity)))}.text-success-600{--tw-text-opacity:1;color:hsl(var(--morui-success-600)/var(--morui-success-600-opacity,var(--tw-text-opacity)))}.data-\[active\=true\]\:text-success-foreground[data-active=true],.data-\[hover\=true\]\:text-success-foreground[data-hover=true],.data-\[selected\=true\]\:text-success-foreground[data-selected=true],.text-success-foreground{--tw-text-opacity:1;color:hsl(var(--morui-success-foreground)/var(--morui-success-foreground-opacity,var(--tw-text-opacity)))}.text-success\/80{color:hsl(var(--morui-success)/.8)}.data-\[hover\=true\]\:text-warning[data-hover=true],.text-warning{--tw-text-opacity:1;color:hsl(var(--morui-warning)/var(--morui-warning-opacity,var(--tw-text-opacity)))}.text-warning-600{--tw-text-opacity:1;color:hsl(var(--morui-warning-600)/var(--morui-warning-600-opacity,var(--tw-text-opacity)))}.data-\[active\=true\]\:text-warning-foreground[data-active=true],.data-\[hover\=true\]\:text-warning-foreground[data-hover=true],.data-\[selected\=true\]\:text-warning-foreground[data-selected=true],.text-warning-foreground{--tw-text-opacity:1;color:hsl(var(--morui-warning-foreground)/var(--morui-warning-foreground-opacity,var(--tw-text-opacity)))}.text-warning\/80{color:hsl(var(--morui-warning)/.8)}.active\:underline:active,.focus\:underline:focus,.hover\:underline:hover,.underline{text-decoration-line:underline}.hover\:no-underline:hover,.no-underline{text-decoration-line:none}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.data-\[invisible\=true\]\:opacity-0[data-invisible=true],.group[data-copied=true] .group-data-\[copied\=true\]\:opacity-0,.group[data-selected=true] .group-data-\[selected\=true\]\:opacity-0,.opacity-0{opacity:0}.data-\[in-range\=true\]\:opacity-100[data-in-range=true],.data-\[loaded\=true\]\:opacity-100[data-loaded=true],.data-\[moving\]\:opacity-100[data-moving],.data-\[visible\=true\]\:opacity-100[data-visible=true],.footerLogoLink_DDai:hover,.group[data-copied=true] .group-data-\[copied\=true\]\:opacity-100,.group[data-hover=true] .group-data-\[hover\=true\]\:opacity-100,.group[data-loaded=true] .group-data-\[loaded\=true\]\:opacity-100,.group[data-selected=true] .group-data-\[selected\=true\]\:opacity-100,.hash-link:focus,.hover\:opacity-100:hover,.opacity-100,:hover>.hash-link{opacity:1}.data-\[disabled\=true\]\:opacity-30[data-disabled=true],.opacity-30{opacity:.3}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-\[value\]{opacity:value}.active\:opacity-disabled:active,.data-\[hover-unselected\=true\]\:opacity-disabled[data-hover-unselected=true],.opacity-disabled{opacity:var(--morui-disabled-opacity)}.shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.after\:shadow-\[0_1px_0px_0_rgba\(0\2c 0\2c 0\2c 0\.05\)\]:after,.shadow-\[0_1px_0px_0_rgba\(0\2c 0\2c 0\2c 0\.05\)\]{--tw-shadow:0 1px 0px 0 #0000000d;--tw-shadow-colored:0 1px 0px 0 var(--tw-shadow-color)}.shadow-large{--tw-shadow:var(--morui-box-shadow-large);--tw-shadow-colored:var(--morui-box-shadow-large)}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-md{--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.group.is-splitted .group-\[\.is-splitted\]\:shadow-medium,.shadow-medium{--tw-shadow:var(--morui-box-shadow-medium);--tw-shadow-colored:var(--morui-box-shadow-medium)}.shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}.shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.\[\&\>tr\]\:first\:shadow-small:first-child>tr,.shadow-small{--tw-shadow:var(--morui-box-shadow-small);--tw-shadow-colored:var(--morui-box-shadow-small)}.shadow-black\/5{--tw-shadow-color:#0000000d;--tw-shadow:var(--tw-shadow-colored)}.data-\[active\=true\]\:shadow-danger\/40[data-active=true],.shadow-danger\/40{--tw-shadow-color:hsl(var(--morui-danger)/0.4);--tw-shadow:var(--tw-shadow-colored)}.data-\[active\=true\]\:shadow-default\/50[data-active=true],.data-\[hover\=true\]\:shadow-default\/50[data-hover=true],.shadow-default\/50{--tw-shadow-color:hsl(var(--morui-default)/0.5);--tw-shadow:var(--tw-shadow-colored)}.shadow-foreground\/40{--tw-shadow-color:hsl(var(--morui-foreground)/0.4);--tw-shadow:var(--tw-shadow-colored)}.data-\[active\=true\]\:shadow-primary\/40[data-active=true],.shadow-primary\/40{--tw-shadow-color:hsl(var(--morui-primary)/0.4);--tw-shadow:var(--tw-shadow-colored)}.data-\[active\=true\]\:shadow-secondary\/40[data-active=true],.shadow-secondary\/40{--tw-shadow-color:hsl(var(--morui-secondary)/0.4);--tw-shadow:var(--tw-shadow-colored)}.data-\[active\=true\]\:shadow-success\/40[data-active=true],.shadow-success\/40{--tw-shadow-color:hsl(var(--morui-success)/0.4);--tw-shadow:var(--tw-shadow-colored)}.data-\[active\=true\]\:shadow-warning\/40[data-active=true],.shadow-warning\/40{--tw-shadow-color:hsl(var(--morui-warning)/0.4);--tw-shadow:var(--tw-shadow-colored)}.after\:shadow-small:after,.before\:shadow-small:before{--tw-shadow:var(--morui-box-shadow-small);--tw-shadow-colored:var(--morui-box-shadow-small)}.\!outline-none{outline:#0000 solid 2px!important;outline-offset:2px!important}.outline-none{outline:#0000 solid 2px;outline-offset:2px}.ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.group[data-focus-visible=true] .group-data-\[focus-visible\=true\]\:ring-2,.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-1,.ring-2{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-background{--tw-ring-color:hsl(var(--morui-background)/var(--morui-background-opacity,var(--tw-ring-opacity)))}.ring-danger{--tw-ring-color:hsl(var(--morui-danger)/var(--morui-danger-opacity,var(--tw-ring-opacity)))}.ring-default{--tw-ring-color:hsl(var(--morui-default)/var(--morui-default-opacity,var(--tw-ring-opacity)))}.group[data-focus-visible=true] .group-data-\[focus-visible\=true\]\:ring-focus,.ring-focus{--tw-ring-opacity:1;--tw-ring-color:hsl(var(--morui-focus)/var(--morui-focus-opacity,var(--tw-ring-opacity)))}.ring-primary{--tw-ring-color:hsl(var(--morui-primary)/var(--morui-primary-opacity,var(--tw-ring-opacity)))}.ring-secondary{--tw-ring-color:hsl(var(--morui-secondary)/var(--morui-secondary-opacity,var(--tw-ring-opacity)))}.ring-success{--tw-ring-color:hsl(var(--morui-success)/var(--morui-success-opacity,var(--tw-ring-opacity)))}.ring-transparent{--tw-ring-color:#0000}.ring-warning{--tw-ring-color:hsl(var(--morui-warning)/var(--morui-warning-opacity,var(--tw-ring-opacity)))}.group[data-focus-visible=true] .group-data-\[focus-visible\=true\]\:ring-offset-2,.ring-offset-2{--tw-ring-offset-width:2px}.group[data-focus-visible=true] .group-data-\[focus-visible\=true\]\:ring-offset-background,.ring-offset-background{--tw-ring-offset-color:hsl(var(--morui-background)/var(--morui-background-opacity,1))}.blur{--tw-blur:blur(8px)}.blur,.blur-lg,.filter,.saturate-150{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-lg{--tw-blur:blur(16px)}.saturate-150{--tw-saturate:saturate(1.5)}.backdrop-blur{--tw-backdrop-blur:blur(8px)}.backdrop-blur,.backdrop-blur-lg,.backdrop-blur-md,.backdrop-blur-sm,.backdrop-blur-xl,.backdrop-filter,.backdrop-opacity-disabled,.backdrop-saturate-150{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-lg{--tw-backdrop-blur:blur(16px)}.backdrop-blur-md{--tw-backdrop-blur:blur(12px)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.backdrop-blur-xl{--tw-backdrop-blur:blur(24px)}.backdrop-opacity-disabled{--tw-backdrop-opacity:opacity(var(--morui-disabled-opacity))}.backdrop-saturate-150{--tw-backdrop-saturate:saturate(1.5)}.\!transition-none{transition-property:none!important}.transition-\[transform\2c color\2c left\2c opacity\]{transition-property:transform,color,left,opacity}.transition-\[transform\2c color\2c left\2c opacity\],.transition-all,.transition-colors{transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-none{transition-property:none}.\!duration-100{transition-duration:.1s!important}.\!duration-150{transition-duration:.15s!important}.\!duration-200{transition-duration:.2s!important}.\!duration-300{transition-duration:.3s!important}.\!duration-500{transition-duration:.5s!important}.duration-150{transition-duration:.15s}.\!ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)!important}.\!ease-soft-spring{transition-timing-function:cubic-bezier(.155,1.105,.295,1.12)!important}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.data-\[moving\=true\]\:transition-transform[data-moving=true],.transition,.transition-all,.transition-background,.transition-colors-opacity,.transition-height,.transition-left,.transition-opacity,.transition-shadow,.transition-size,.transition-transform,.transition-transform-background,.transition-transform-colors,.transition-transform-colors-opacity,.transition-transform-opacity,.transition-width{transition-duration:.25s;transition-timing-function:ease}.will-change-auto{will-change:auto}.will-change-transform{will-change:transform}.light,:root,[data-theme=light]{--morui-title-1:72 3% 39%;--morui-title-2:0 0% 35%;--morui-reminder-4:218 11% 81%;--morui-bg:0 0% 100%;--morui-bg-assist:216 22% 95%;--morui-divider:220 13% 95%;--morui-tag:166 65% 91%;--morui-tag-bg:220 23% 97%;--morui-tag-hover:220 17% 14%;--morui-frontend:0 0% 100%;--morui-card:0 0% 96%;--morui-b-black:0 0% 100%;--morui-b-white:0 0% 0%;--morui-line:0 0% 92%;--morui-warning-light:25 89% 50%;--morui-warning-50:55 92% 95%;--morui-warning-100:37 91% 91%;--morui-warning-200:37 91% 82%;--morui-warning-300:37 91% 73%;--morui-warning-400:37 91% 64%;--morui-warning-500:37 91% 55%;--morui-warning-600:37 74% 44%;--morui-warning-700:37 74% 33%;--morui-warning-800:37 75% 22%;--morui-warning-900:37 75% 11%;--morui-btn-bg-disable:222 13% 84%;--morui-btn-text-disable:200 43% 99%;--morui-icon-fill:212 11% 47%;--morui-icon-bg:210 16% 13%;--morui-background:0 0% 100%;--morui-foreground-50:0 0% 98%;--morui-foreground-100:240 5% 96%;--morui-foreground-200:240 6% 90%;--morui-foreground-300:216 22% 95%;--morui-foreground-400:240 5% 65%;--morui-foreground-500:240 4% 46%;--morui-foreground-600:0 0% 40%;--morui-foreground-700:217 20% 17%;--morui-foreground-800:240 4% 16%;--morui-foreground-900:240 6% 10%;--morui-foreground:202 24% 9%;--morui-content1:0 0% 100%;--morui-content1-foreground:202 24% 9%;--morui-content2:240 5% 96%;--morui-content2-foreground:240 4% 16%;--morui-content3:240 6% 90%;--morui-content3-foreground:217 20% 17%;--morui-content4:216 22% 95%;--morui-content4-foreground:0 0% 40%;--morui-default-50:0 0% 98%;--morui-default-100:240 5% 96%;--morui-default-200:240 6% 90%;--morui-default-300:216 22% 95%;--morui-default-400:240 5% 65%;--morui-default-500:0 0% 10%;--morui-default-600:0 0% 60%;--morui-default-700:217 20% 17%;--morui-default-800:240 4% 16%;--morui-default-900:240 6% 10%;--morui-default-foreground:0 0% 0%;--morui-primary-50:213 92% 95%;--morui-primary-100:212 92% 90%;--morui-primary-200:212 92% 79%;--morui-primary-300:212 92% 69%;--morui-primary-400:212 92% 58%;--morui-primary-500:216 100% 50%;--morui-primary-600:223 99% 47%;--morui-primary-700:212 100% 29%;--morui-primary-800:212 100% 19%;--morui-primary-900:212 100% 10%;--morui-primary-foreground:0 0% 100%;--morui-secondary-50:270 62% 95%;--morui-secondary-100:270 59% 89%;--morui-secondary-200:270 59% 79%;--morui-secondary-300:270 59% 68%;--morui-secondary-400:270 59% 58%;--morui-secondary-500:270 67% 47%;--morui-secondary-600:270 67% 38%;--morui-secondary-700:270 67% 28%;--morui-secondary-800:270 67% 19%;--morui-secondary-900:270 67% 9%;--morui-secondary:270 67% 47%;--morui-success-50:147 64% 95%;--morui-success-100:146 61% 89%;--morui-success-200:146 62% 77%;--morui-success-300:146 63% 66%;--morui-success-400:146 62% 55%;--morui-success-500:158 58% 50%;--morui-success-600:146 80% 35%;--morui-success-700:146 79% 26%;--morui-success-800:146 80% 17%;--morui-success-900:146 78% 9%;--morui-danger-50:339 92% 95%;--morui-danger-100:340 92% 90%;--morui-danger-200:339 90% 80%;--morui-danger-300:339 91% 71%;--morui-danger-400:339 90% 61%;--morui-danger-500:338 98% 54%;--morui-danger-600:339 87% 41%;--morui-danger-700:339 86% 31%;--morui-danger-800:339 87% 20%;--morui-danger-900:340 85% 10%;--morui-title:0 0% 100%;--morui-red:349 90% 60%;--morui-card-background:108 24% 96%;--morui-card-text:77 11% 12%;--morui-card-border:113 100% 26%;--morui-red-aid:350 90% 92%;--morui-green-aid:166 65% 91%;--morui-yellow-aid:36 91% 91%;--morui-purple-aid:248 100% 94%;--morui-title-3:0 0% 10%;--morui-desc-2:0 0% 85%;--morui-border-card:0 0% 100%;--morui-border-0:0 0% 60%;--morui-border-1:0 0% 75%;--morui-border-2:0 0% 92%;--morui-border-3:0 0% 35%;--morui-bg-img:0 0% 75%;--morui-box-shadow-small:0px 3px 6px 0px #0003;--morui-box-shadow-medium:0px 0px 15px 0px #00000008,0px 2px 30px 0px #00000014,0px 0px 1px 0px #0000004d;--morui-box-shadow-large:0px 0px 30px 0px #0000000a,0px 30px 60px 0px #0000001f,0px 0px 1px 0px #0000004d;--morui-hover-opacity:.8;color-scheme:light}.dark,[data-theme=dark]{--morui-title-1:90 1% 74%;--morui-title-2:0 0% 80%;--morui-reminder-4:216 15% 36%;--morui-bg:0 0% 0%;--morui-bg-assist:0 0% 20%;--morui-divider:0 0% 40%;--morui-tag:145 42% 10%;--morui-tag-bg:219 20% 19%;--morui-tag-hover:220 23% 97%;--morui-frontend:220 18% 10%;--morui-card:0 0% 10%;--morui-b-black:0 0% 0%;--morui-b-white:0 0% 100%;--morui-line:0 0% 20%;--morui-warning-light:25 89% 62%;--morui-warning-50:37 75% 11%;--morui-warning-100:37 75% 22%;--morui-warning-200:37 74% 33%;--morui-warning-300:37 74% 44%;--morui-warning-400:37 91% 55%;--morui-warning-500:37 91% 64%;--morui-warning-600:37 91% 73%;--morui-warning-700:37 91% 82%;--morui-warning-800:37 91% 91%;--morui-warning-900:55 92% 95%;--morui-btn-bg-disable:215 34% 23%;--morui-btn-text-disable:212 9% 62%;--morui-icon-fill:220 10% 69%;--morui-icon-bg:200 43% 99%;--morui-background:0 0% 0%;--morui-foreground-50:240 6% 10%;--morui-foreground-100:240 4% 16%;--morui-foreground-200:217 20% 17%;--morui-foreground-300:0 0% 40%;--morui-foreground-400:240 4% 46%;--morui-foreground-500:240 5% 65%;--morui-foreground-600:216 22% 95%;--morui-foreground-700:240 6% 90%;--morui-foreground-800:240 5% 96%;--morui-foreground-900:0 0% 98%;--morui-foreground:210 6% 93%;--morui-content1:240 6% 10%;--morui-content1-foreground:0 0% 98%;--morui-content2:240 4% 16%;--morui-content2-foreground:240 5% 96%;--morui-content3:217 20% 17%;--morui-content3-foreground:240 6% 90%;--morui-content4:0 0% 40%;--morui-content4-foreground:216 22% 95%;--morui-default-50:240 6% 10%;--morui-default-100:240 4% 16%;--morui-default-200:217 20% 17%;--morui-default-300:0 0% 40%;--morui-default-400:240 4% 46%;--morui-default-500:0 0% 80%;--morui-default-600:0 0% 80%;--morui-default-700:240 6% 90%;--morui-default-800:240 5% 96%;--morui-default-900:0 0% 98%;--morui-default-foreground:0 0% 100%;--morui-primary-50:212 100% 10%;--morui-primary-100:212 100% 19%;--morui-primary-200:212 100% 29%;--morui-primary-300:223 99% 47%;--morui-primary-400:216 100% 50%;--morui-primary-500:212 92% 58%;--morui-primary-600:212 92% 69%;--morui-primary-700:212 92% 79%;--morui-primary-800:212 92% 90%;--morui-primary-900:213 92% 95%;--morui-primary-foreground:0 0% 0%;--morui-secondary-50:270 67% 9%;--morui-secondary-100:270 67% 19%;--morui-secondary-200:270 67% 28%;--morui-secondary-300:270 67% 38%;--morui-secondary-400:270 67% 47%;--morui-secondary-500:270 59% 58%;--morui-secondary-600:270 59% 68%;--morui-secondary-700:270 59% 79%;--morui-secondary-800:270 59% 89%;--morui-secondary-900:270 62% 95%;--morui-secondary:270 59% 58%;--morui-success-50:146 78% 9%;--morui-success-100:146 80% 17%;--morui-success-200:146 79% 26%;--morui-success-300:146 80% 35%;--morui-success-400:158 58% 50%;--morui-success-500:146 62% 55%;--morui-success-600:146 63% 66%;--morui-success-700:146 62% 77%;--morui-success-800:146 61% 89%;--morui-success-900:147 64% 95%;--morui-danger-50:340 85% 10%;--morui-danger-100:339 87% 20%;--morui-danger-200:339 86% 31%;--morui-danger-300:339 87% 41%;--morui-danger-400:338 98% 54%;--morui-danger-500:339 90% 61%;--morui-danger-600:339 91% 71%;--morui-danger-700:339 90% 80%;--morui-danger-800:340 92% 90%;--morui-danger-900:339 92% 95%;--morui-title:0 0% 0%;--morui-red:349 90% 56%;--morui-card-background:77 11% 12%;--morui-card-text:0 0% 100%;--morui-card-border:0 0% 100%;--morui-red-aid:349 59% 15%;--morui-green-aid:141 67% 14%;--morui-yellow-aid:36 79% 13%;--morui-purple-aid:247 42% 16%;--morui-title-3:0 0% 80%;--morui-desc-2:0 0% 30%;--morui-border-card:0 0% 60%;--morui-border-0:0 0% 20%;--morui-border-1:0 0% 40%;--morui-border-2:0 0% 20%;--morui-border-3:0 0% 80%;--morui-bg-img:0 0% 20%;--morui-nav:0 0% 82%;--morui-nav-hover:0 0% 100%;--morui-sub-nav:160 23% 97%;--morui-sub-nav-hover:0 0% 0%;--morui-sub-nav-bg:167 18% 10%;--morui-sub-nav-item-bg:164 85% 60%;--morui-desc-4:0 0% 60%;--morui-desc-3:0 0% 80%;--morui-content:0 0% 82%;--morui-icon-bg-for-green:0 0% 21%;--morui-text-color-for-green:0 0% 0%;--morui-base-color:163 100% 62%;--morui-box-shadow-small:0px 0px 5px 0px #0000000d,0px 2px 10px 0px #0003,inset 0px 0px 1px 0px #ffffff26;--morui-box-shadow-medium:0px 0px 15px 0px #0000000f,0px 2px 30px 0px #00000038,inset 0px 0px 1px 0px #ffffff26;--morui-box-shadow-large:0px 0px 30px 0px #00000012,0px 30px 60px 0px #00000042,inset 0px 0px 1px 0px #ffffff26;--morui-hover-opacity:.9;color-scheme:dark}.leading-inherit{line-height:inherit}.bg-img-inherit{background-image:inherit}.bg-clip-inherit{background-clip:inherit}.text-fill-inherit{-webkit-text-fill-color:inherit}.transition-all{transition-property:all}.transition-background{transition-property:background}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter}.data-\[hover\=true\]\:transition-colors[data-hover=true],.data-\[sortable\=true\]\:transition-colors[data-sortable=true],.transition-colors{transition-duration:.25s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:ease}.transition-opacity{transition-property:opacity}.transition-colors-opacity{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity}.transition-width{transition-property:width}.transition-height{transition-property:height}.transition-size{transition-property:width,height}.transition-left{transition-property:left}.transition-shadow{transition-property:box-shadow}.data-\[moving\=true\]\:transition-transform[data-moving=true],.transition-transform{transition-property:transform}.transition-transform-opacity{transition-property:transform,opacity}.transition-transform-background{transition-property:transform,background}.transition-transform-colors{transition-property:transform,color,background,background-color,border-color,text-decoration-color,fill,stroke}.transition-transform-colors-opacity{transition-property:transform,color,background,background-color,border-color,text-decoration-color,fill,stroke,opacity}.data-\[hide-scroll\=true\]\:scrollbar-hide[data-hide-scroll=true],.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}.scrollbar-hide::-webkit-scrollbar{display:none}.scrollbar-default{-ms-overflow-style:auto;scrollbar-width:auto}.scrollbar-default::-webkit-scrollbar{display:block}.\[--scale-enter\:100\%\]{--scale-enter:100%}.\[--scale-exit\:100\%\]{--scale-exit:100%}.\[--slide-enter\:0px\]{--slide-enter:0px}.\[--slide-exit\:80px\]{--slide-exit:80px}html body{font-family:InterDisplay\,Inter Variable}[data-theme=light]{--ifm-heading-color:#21231c;--ifm-color-gray-700:#21231c;--ifm-color-emphasis-600:#fff;--ifm-code-font-size:95%;--docusaurus-highlighted-code-line-bg:#0000001a;--ifm-footer-background-color:#fff;--ifm-color-emphasis-200:"#000000",--ifm-menu-color:"#21231C",--ifm-container-width-xl:1200px;--ifm-bg-color:#fff;--ifm-feature-h3-color:#1a1a1a;--ifm-feature-p-color:#595959;--border-hover-shadow:#0016091a}[data-theme=light] .navbar-sidebar__brand{background-color:#fff}[data-theme=dark]{--ifm-heading-color:#fff;--ifm-color-gray-300:#fff;--ifm-color-emphasis-600:#000;--docusaurus-highlighted-code-line-bg:#0000004d;--ifm-footer-background-color:#0a080f;--ifm-color-emphasis-200:"#fff",--ifm-menu-color:"#FFF",--ifm-container-width-xl:1200px;--ifm-bg-color:#000;--ifm-feature-h3-color:#f7f7f7;--ifm-feature-p-color:#ccc;--border-hover-shadow:#9bffc54d}.menu__link--active:not(.menu__link--sublist),.menu__link:hover,[data-theme=dark] .menu__list-item--collapsed .menu__link:hover,[data-theme=light] .menu__list-item--collapsed .menu__link:hover{color:#fff}.navbar.navbar--fixed-top{border-bottom:1px solid #dededd}[data-theme=dark] .navbar.navbar--fixed-top{border-bottom:1px solid #21231c}.menu__link.menu__link--sublist.menu__link--sublist-caret{font-size:16px;font-weight:600;margin-bottom:4px;margin-top:4px;padding-bottom:6px;padding-top:6px}.theme-doc-sidebar-item-link-level-2.menu__list-item .menu__link,.theme-doc-sidebar-item-link-level-3.menu__list-item .menu__link,.theme-doc-sidebar-item-link-level-4.menu__list-item .menu__link{display:block;font-size:16px;font-weight:600;margin-bottom:4px;margin-top:4px;padding-bottom:6px;padding-top:6px}.theme-doc-sidebar-item-link-level-1.menu__list-item .menu__link{display:block;font-size:20px;font-weight:600;margin-bottom:4px;margin-top:4px;padding-bottom:6px;padding-top:6px}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.75}.footer__link-item,[data-theme=dark] .theme-doc-sidebar-item-category-level-1 .menu__list-item--collapsed .menu__link.menu__link--active,[data-theme=dark] .theme-doc-sidebar-item-category-level-1 .menu__list-item--collapsed .menu__link:hover,[data-theme=dark] .theme-doc-sidebar-item-category-level-1 .menu__list-item-collapsible .menu__link:hover,[data-theme=dark] .theme-doc-sidebar-item-link-level-2.menu__list-item .menu__link.menu__link--active,[data-theme=dark] .theme-doc-sidebar-item-link-level-2.menu__list-item .menu__link:hover,[data-theme=dark] .theme-doc-sidebar-item-link-level-3.menu__list-item .menu__link.menu__link--active,[data-theme=dark] .theme-doc-sidebar-item-link-level-3.menu__list-item .menu__link:hover,[data-theme=dark] .theme-doc-sidebar-item-link-level-4.menu__list-item .menu__link.menu__link--active,[data-theme=dark] .theme-doc-sidebar-item-link-level-4.menu__list-item .menu__link:hover,[data-theme=light] .theme-doc-sidebar-item-category-level-1 .menu__list-item--collapsed .menu__link.menu__link--active,[data-theme=light] .theme-doc-sidebar-item-category-level-1 .menu__list-item--collapsed .menu__link:hover,[data-theme=light] .theme-doc-sidebar-item-category-level-1 .menu__list-item-collapsible .menu__link:hover,[data-theme=light] .theme-doc-sidebar-item-link-level-2.menu__list-item .menu__link.menu__link--active,[data-theme=light] .theme-doc-sidebar-item-link-level-2.menu__list-item .menu__link:hover,[data-theme=light] .theme-doc-sidebar-item-link-level-3.menu__list-item .menu__link.menu__link--active,[data-theme=light] .theme-doc-sidebar-item-link-level-3.menu__list-item .menu__link:hover,[data-theme=light] .theme-doc-sidebar-item-link-level-4.menu__list-item .menu__link.menu__link--active,[data-theme=light] .theme-doc-sidebar-item-link-level-4.menu__list-item .menu__link:hover{color:#fff}[data-theme=dark] .menu__link.menu__link--sublist.menu__link--sublist-caret,[data-theme=dark] .theme-doc-sidebar-item-category-level-1 .menu__list-item--collapsed,[data-theme=dark] .theme-doc-sidebar-item-category-level-1 .menu__list-item--collapsed .menu__link,[data-theme=dark] .theme-doc-sidebar-item-category-level-1 .menu__list-item-collapsible,[data-theme=dark] .theme-doc-sidebar-item-link-level-2.menu__list-item,[data-theme=dark] .theme-doc-sidebar-item-link-level-2.menu__list-item .menu__link,[data-theme=dark] .theme-doc-sidebar-item-link-level-3.menu__list-item,[data-theme=dark] .theme-doc-sidebar-item-link-level-3.menu__list-item .menu__link,[data-theme=dark] .theme-doc-sidebar-item-link-level-4.menu__list-item,[data-theme=dark] .theme-doc-sidebar-item-link-level-4.menu__list-item .menu__link{color:#bcbdbb}[data-theme=light] .menu__link.menu__link--sublist.menu__link--sublist-caret,[data-theme=light] .theme-doc-sidebar-item-category-level-1 .menu__list-item--collapsed,[data-theme=light] .theme-doc-sidebar-item-category-level-1 .menu__list-item--collapsed .menu__link,[data-theme=light] .theme-doc-sidebar-item-category-level-1 .menu__list-item-collapsible,[data-theme=light] .theme-doc-sidebar-item-link-level-2.menu__list-item,[data-theme=light] .theme-doc-sidebar-item-link-level-2.menu__list-item .menu__link,[data-theme=light] .theme-doc-sidebar-item-link-level-3.menu__list-item,[data-theme=light] .theme-doc-sidebar-item-link-level-3.menu__list-item .menu__link,[data-theme=light] .theme-doc-sidebar-item-link-level-4.menu__list-item,[data-theme=light] .theme-doc-sidebar-item-link-level-4.menu__list-item .menu__link{color:#646560}.footer__col:first-child,.footer__col:nth-child(2){flex:3}.footer__bottom{margin-top:48px}[data-theme=light] #__docusaurus{background-color:var(--ifm-bg-color)}[data-theme=light] .navbar{background:#fff;box-shadow:none}[data-theme=light] .footer{background-color:#fff!important;box-shadow:0 -10px 10px 0 #00000005!important}[data-theme=light] .theme-doc-sidebar-container{flex-shrink:0;gap:10px}[data-theme=light] .docSidebarContainer_node_modules-\@docusaurus-theme-classic-lib-theme-DocPage-Layout-Sidebar-styles-module,[data-theme=light] .theme-doc-sidebar-container{background-color:#fff!important;border-right:none!important}[data-theme=dark] .darkToggleIcon_node_modules-\@docusaurus-theme-classic-lib-theme-ColorModeToggle-styles-module,[data-theme=light] .lightToggleIcon_node_modules-\@docusaurus-theme-classic-lib-theme-ColorModeToggle-styles-module{cursor:pointer!important;display:none!important}[data-theme=dark] .lightToggleIcon_node_modules-\@docusaurus-theme-classic-lib-theme-ColorModeToggle-styles-module,[data-theme=light] .darkToggleIcon_node_modules-\@docusaurus-theme-classic-lib-theme-ColorModeToggle-styles-module{cursor:pointer!important;display:block!important}[data-theme=light] .clean-btn.navbar-sidebar__close svg,[data-theme=light] .darkToggleIcon_node_modules-\@docusaurus-theme-classic-lib-theme-ColorModeToggle-styles-module svg{color:#000!important}[data-theme=dark] #__docusaurus{background-color:#000}[data-theme=dark] .navbar{background-color:#0a080fe6!important;box-shadow:none}.hero-banner,[data-theme=dark] .footer{background-color:#0a080f}[data-theme=dark] .theme-doc-sidebar-container{background-color:#0a080f;border-right:none!important}.menu__link .menu__link--sublist.menu__link--sublist-caret,.theme-doc-sidebar-item-link-level-2{font-size:16px;font-weight:600}.menu__caret:before,.menu__link--sublist-caret:after{height:13px;width:13px}[data-theme=dark] button.clean-btn svg:first-child,[data-theme=light] button.clean-btn[aria-live=polite] svg:nth-child(2){display:block!important}[data-theme=dark] button.clean-btn svg:nth-child(2),[data-theme=light] button.clean-btn[aria-live=polite] svg:first-child{display:none!important}.navbar__logo img{height:32px}[data-theme=dark] .morph-logo,[data-theme=light] .morph-logo{background-image:url(/assets/images/LogoMorphWhite-summary-dc9797d7eb85ed22d18a1cbda84342e5.svg);background-size:160px 25px;margin-left:-24px}.hero-banner{align-items:center;justify-content:center;margin:0;overflow:hidden;padding:0;position:relative;text-align:center}.header-bg{background-image:url(/assets/images/bg-5badadc4ca0a26b003becdf097ddbf12.svg);background-position:50%;background-repeat:no-repeat;background-size:auto 100%;height:110px;margin-top:-10px;padding-top:0}.features{padding-bottom:50px}.feature-a{border:1px solid rgba(33,35,30,.102);border-radius:0;color:var(--ifm-heading-color)!important;display:flex;text-decoration:none!important}.feature-a:hover{background:var(--ifm-footer-background-color);border:1px solid var(--ifm-color-primary);border-radius:0;box-shadow:0 0 40px 0 var(--border-hover-shadow)}.after\:shadow-\[0_1px_0px_0_rgba\(0\2c 0\2c 0\2c 0\.05\)\]:after,.after\:shadow-small:after,.before\:shadow-small:before,.data-\[active\=true\]\:shadow-md[data-active=true],.data-\[hover\=true\]\:shadow-lg[data-hover=true],.group.is-splitted .group-\[\.is-splitted\]\:shadow-medium{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}[data-theme=dark] .feature-a{border:1px solid #373933}.feature-h3{color:var(--ifm-feature-h3-color);font-size:32px;font-style:normal;font-weight:800;line-height:120%}.feature-p{color:var(--ifm-feature-p-color);font-size:20px;font-style:normal;font-weight:400;line-height:24px;margin-bottom:0;max-width:342px}.homepage-resource{color:--ifm-heading-color;text-align:center}.green-bg{background:linear-gradient(180deg,#a3fe76 -24.11%,#f2f7f2)}.yellow-bg{background:linear-gradient(180deg,#ffeb69 -24.11%,#f2f7f2)}.pink-bg{background:linear-gradient(180deg,#ffd6ef -24.11%,#f2f7f2)}.purple-bg{background:linear-gradient(180deg,#cdc5ff -24.11%,#f3f7f2)}.footer-bg{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTM2MCIgaGVpZ2h0PSI3MjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggb3BhY2l0eT0iLjEiIGQ9Ik0uNSA3MTkuNWgyODIuNTU2di03NS40ODNjMC0xLjExNSAxLjU5MS0xLjMxMiAxLjg2My0uMjMybDE1Ljk3MSA2My4zMjFoNjkwLjAyNXYtODAuNzY1YS45NDYuOTQ2IDAgMCAxIDEuMTIyLS45M2wzNjcuNDYzIDY5LjU1M1YuNUg5OTEuMjczdjgzLjAwNmEuOTQ3Ljk0NyAwIDAgMS0uODU4Ljk0Mkw0OTIuODkgMTMxLjI4Nmw0LjkzNSAxMDcuNTU1YS45NDUuOTQ1IDAgMCAxLS41MjYuODkxTC41IDQ4NS4zMDNWNzE5LjVaIiBzdHJva2U9IiNBRURGRTAiLz48L3N2Zz4=);background-position:5%;background-repeat:no-repeat;background-size:90% 90%}.placeholder\:text-danger::placeholder{--tw-text-opacity:1;color:hsl(var(--morui-danger)/var(--morui-danger-opacity,var(--tw-text-opacity)))}.placeholder\:text-foreground-500::placeholder{--tw-text-opacity:1;color:hsl(var(--morui-foreground-500)/var(--morui-foreground-500-opacity,var(--tw-text-opacity)))}.placeholder\:text-primary::placeholder{--tw-text-opacity:1;color:hsl(var(--morui-primary)/var(--morui-primary-opacity,var(--tw-text-opacity)))}.placeholder\:text-secondary::placeholder{--tw-text-opacity:1;color:hsl(var(--morui-secondary)/var(--morui-secondary-opacity,var(--tw-text-opacity)))}.placeholder\:text-success-600::placeholder{--tw-text-opacity:1;color:hsl(var(--morui-success-600)/var(--morui-success-600-opacity,var(--tw-text-opacity)))}.placeholder\:text-warning-600::placeholder{--tw-text-opacity:1;color:hsl(var(--morui-warning-600)/var(--morui-warning-600-opacity,var(--tw-text-opacity)))}.after\:absolute:after,.before\:absolute:before{content:var(--tw-content);position:absolute}.after\:inset-0:after,.before\:inset-0:before{content:var(--tw-content);inset:0}.before\:z-0:before{content:var(--tw-content);z-index:0}.before\:z-\[-1\]:before{content:var(--tw-content);z-index:-1}.before\:box-border:before{box-sizing:border-box;content:var(--tw-content)}.after\:block:after,.before\:block:before,.data-\[arrow\=true\]\:before\:block[data-arrow=true]:before{content:var(--tw-content);display:block}.before\:hidden:before{content:var(--tw-content);display:none}.before\:h-0\.5:before{content:var(--tw-content);height:.125rem}.before\:h-11:before{content:var(--tw-content);height:2.75rem}.before\:h-2\.5:before{content:var(--tw-content);height:.625rem}.after\:h-px:after,.before\:h-px:before{content:var(--tw-content);height:1px}.after\:w-0:after,.before\:w-0:before{content:var(--tw-content);width:0}.before\:w-11:before{content:var(--tw-content);width:2.75rem}.before\:w-2\.5:before{content:var(--tw-content);width:.625rem}.after\:w-6:after,.before\:w-6:before{content:var(--tw-content);width:1.5rem}.before\:-translate-x-full:before{--tw-translate-x:-100%}.after\:-translate-x-1\/2:after,.after\:rotate-0:after,.after\:scale-50:after,.after\:translate-y-1:after,.before\:-translate-x-full:before,.before\:-translate-y-1:before,.before\:rotate-0:before,.before\:rotate-45:before,.data-\[dragging\=true\]\:after\:scale-100[data-dragging=true]:after,.data-\[dragging\=true\]\:after\:scale-80[data-dragging=true]:after,.data-\[placement\=bottom\]\:before\:-translate-x-1\/2[data-placement=bottom]:before,.data-\[placement\=left\]\:before\:-translate-y-1\/2[data-placement=left]:before,.data-\[placement\=right\]\:before\:-translate-y-1\/2[data-placement=right]:before,.data-\[placement\=top\]\:before\:-translate-x-1\/2[data-placement=top]:before,.group[data-open=true] .group-data-\[open\=true\]\:after\:-rotate-45:after,.group[data-open=true] .group-data-\[open\=true\]\:after\:translate-y-0:after,.group[data-open=true] .group-data-\[open\=true\]\:before\:rotate-45:before,.group[data-open=true] .group-data-\[open\=true\]\:before\:translate-y-px:before{content:var(--tw-content);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.before\:-translate-y-1:before{--tw-translate-y:-0.25rem}.before\:rotate-45:before,.group[data-open=true] .group-data-\[open\=true\]\:before\:rotate-45:before{--tw-rotate:45deg}@keyframes d{to{content:var(--tw-content);transform:translateX(100%)}}.before\:animate-\[shimmer_2s_infinite\]:before{animation:2s infinite d;content:var(--tw-content)}.after\:rounded-\[calc\(theme\(borderRadius\.medium\)\*0\.5\)\]:after,.before\:rounded-\[calc\(theme\(borderRadius\.medium\)\*0\.5\)\]:before{border-radius:calc(var(--morui-radius-medium)*.5);content:var(--tw-content)}.after\:rounded-\[calc\(theme\(borderRadius\.medium\)\*0\.6\)\]:after,.before\:rounded-\[calc\(theme\(borderRadius\.medium\)\*0\.6\)\]:before{border-radius:calc(var(--morui-radius-medium)*.6);content:var(--tw-content)}.after\:rounded-\[calc\(theme\(borderRadius\.medium\)\*0\.7\)\]:after,.before\:rounded-\[calc\(theme\(borderRadius\.medium\)\*0\.7\)\]:before{border-radius:calc(var(--morui-radius-medium)*.7);content:var(--tw-content)}.after\:rounded-full:after,.before\:rounded-full:before{border-radius:9999px;content:var(--tw-content)}.after\:rounded-none:after,.before\:rounded-none:before,.group[data-middle=true] .group-data-\[middle\=true\]\:before\:rounded-none:before{border-radius:0;content:var(--tw-content)}.before\:rounded-sm:before{border-radius:.125rem;content:var(--tw-content)}.before\:border-2:before{border-width:2px;content:var(--tw-content)}.before\:border-t:before{border-top-width:1px;content:var(--tw-content)}.before\:border-solid:before{border-style:solid;content:var(--tw-content)}.before\:border-content4\/30:before{border-color:hsl(var(--morui-content4)/.3);content:var(--tw-content)}.before\:border-danger:before{--tw-border-opacity:1;border-color:hsl(var(--morui-danger)/var(--morui-danger-opacity,var(--tw-border-opacity)));content:var(--tw-content)}.before\:border-default:before{--tw-border-opacity:1;border-color:hsl(var(--morui-default)/var(--morui-default-opacity,var(--tw-border-opacity)));content:var(--tw-content)}.before\:bg-content1:before{--tw-bg-opacity:1;background-color:hsl(var(--morui-content1)/var(--morui-content1-opacity,var(--tw-bg-opacity)));content:var(--tw-content)}.after\:bg-current:after,.before\:bg-current:before{background-color:currentColor;content:var(--tw-content)}.after\:bg-danger:after,.before\:bg-danger:before,.data-\[selected\=true\]\:after\:bg-danger[data-selected=true]:after{--tw-bg-opacity:1;background-color:hsl(var(--morui-danger)/var(--morui-danger-opacity,var(--tw-bg-opacity)));content:var(--tw-content)}.before\:bg-danger\/20:before,.hover\:after\:bg-danger\/20:hover:after{background-color:hsl(var(--morui-danger)/.2);content:var(--tw-content)}.before\:bg-default\/40:before{background-color:hsl(var(--morui-default)/.4);content:var(--tw-content)}.before\:bg-foreground:before,.data-\[selected\=true\]\:after\:bg-foreground[data-selected=true]:after{--tw-bg-opacity:1;background-color:hsl(var(--morui-foreground)/var(--morui-foreground-opacity,var(--tw-bg-opacity)));content:var(--tw-content)}.after\:bg-primary:after,.before\:bg-primary:before,.data-\[selected\=true\]\:after\:bg-primary[data-selected=true]:after{--tw-bg-opacity:1;background-color:hsl(var(--morui-primary)/var(--morui-primary-opacity,var(--tw-bg-opacity)));content:var(--tw-content)}.before\:bg-primary\/20:before,.hover\:after\:bg-primary\/20:hover:after{background-color:hsl(var(--morui-primary)/.2);content:var(--tw-content)}.after\:bg-secondary:after,.before\:bg-secondary:before,.data-\[selected\=true\]\:after\:bg-secondary[data-selected=true]:after{--tw-bg-opacity:1;background-color:hsl(var(--morui-secondary)/var(--morui-secondary-opacity,var(--tw-bg-opacity)));content:var(--tw-content)}.before\:bg-secondary\/20:before,.hover\:after\:bg-secondary\/20:hover:after{background-color:hsl(var(--morui-secondary)/.2);content:var(--tw-content)}.after\:bg-success:after,.before\:bg-success:before,.data-\[selected\=true\]\:after\:bg-success[data-selected=true]:after{--tw-bg-opacity:1;background-color:hsl(var(--morui-success)/var(--morui-success-opacity,var(--tw-bg-opacity)));content:var(--tw-content)}.before\:bg-success\/20:before,.hover\:after\:bg-success\/20:hover:after{background-color:hsl(var(--morui-success)/.2);content:var(--tw-content)}.after\:bg-warning:after,.before\:bg-warning:before,.data-\[selected\=true\]\:after\:bg-warning[data-selected=true]:after{--tw-bg-opacity:1;background-color:hsl(var(--morui-warning)/var(--morui-warning-opacity,var(--tw-bg-opacity)));content:var(--tw-content)}.before\:bg-warning\/20:before,.hover\:after\:bg-warning\/20:hover:after{background-color:hsl(var(--morui-warning)/.2);content:var(--tw-content)}.before\:bg-gradient-to-r:before{background-image:linear-gradient(to right,var(--tw-gradient-stops));content:var(--tw-content)}.before\:from-transparent:before{--tw-gradient-from:#0000 var(--tw-gradient-from-position);--tw-gradient-to:#0000 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to);content:var(--tw-content)}.before\:via-content4:before{--tw-gradient-to:hsl(var(--morui-content4)/0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),hsl(var(--morui-content4)/var(--morui-content4-opacity,1)) var(--tw-gradient-via-position),var(--tw-gradient-to);content:var(--tw-content)}.before\:to-transparent:before{--tw-gradient-to:#0000 var(--tw-gradient-to-position);content:var(--tw-content)}.after\:opacity-0:after,.before\:opacity-0:before,.data-\[loaded\=true\]\:after\:opacity-0[data-loaded=true]:after,.data-\[loaded\=true\]\:before\:opacity-0[data-loaded=true]:before{content:var(--tw-content);opacity:0}.after\:opacity-100:after,.before\:opacity-100:before,.data-\[selected\=true\]\:after\:opacity-100[data-selected=true]:after,.data-\[selected\=true\]\:before\:opacity-100[data-selected=true]:before,.group[data-odd=true] .group-data-\[odd\=true\]\:before\:opacity-100:before,.group[data-selected=true] .group-data-\[selected\=true\]\:after\:opacity-100:after,.hover\:after\:opacity-100:hover:after{content:var(--tw-content);opacity:1}.before\:shadow-small:before{content:var(--tw-content)}.after\:transition-none:after,.before\:transition-none:before{content:var(--tw-content);transition-property:none}.before\:\!duration-300:before{content:var(--tw-content);transition-duration:.3s!important}.after\:duration-150:after,.before\:duration-150:before{content:var(--tw-content);transition-duration:.15s}.after\:transition-transform:after,.after\:transition-width:after,.before\:transition-colors:before,.before\:transition-opacity:before,.before\:transition-transform:before,.before\:transition-width:before{transition-duration:.25s;transition-timing-function:ease;content:var(--tw-content)}.after\:content-\[\'\'\]:after,.before\:content-\[\'\'\]:before{--tw-content:"";content:var(--tw-content)}.before\:transition-colors:before{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke}.before\:transition-opacity:before{transition-property:opacity}.after\:transition-width:after,.before\:transition-width:before{transition-property:width}.after\:transition-transform:after,.before\:transition-transform:before{transition-property:transform}.after\:-bottom-1:after{bottom:-.25rem;content:var(--tw-content)}.after\:-bottom-\[2px\]:after{bottom:-2px;content:var(--tw-content)}.after\:bottom-0:after{bottom:0;content:var(--tw-content)}.after\:left-0:after{content:var(--tw-content);left:0}.after\:left-1\/2:after,.data-\[placement\=bottom\]\:before\:left-1\/2[data-placement=bottom]:before,.data-\[placement\=top\]\:before\:left-1\/2[data-placement=top]:before{content:var(--tw-content);left:50%}.after\:right-0:after{content:var(--tw-content);right:0}.after\:-z-10:after{content:var(--tw-content);z-index:-10}.after\:ml-0\.5:after{content:var(--tw-content);margin-left:.125rem}.after\:h-4:after{content:var(--tw-content);height:1rem}.after\:h-5:after{content:var(--tw-content);height:1.25rem}.after\:h-\[2px\]:after{content:var(--tw-content);height:2px}.after\:h-divider:after{content:var(--tw-content);height:var(--morui-divider-weight)}.after\:h-full:after{content:var(--tw-content);height:100%}.after\:w-4:after{content:var(--tw-content);width:1rem}.after\:w-5:after{content:var(--tw-content);width:1.25rem}.after\:w-\[80\%\]:after{content:var(--tw-content);width:80%}.after\:w-full:after,.data-\[focus\=true\]\:after\:w-full[data-focus=true]:after,.data-\[open\=true\]\:after\:w-full[data-open=true]:after,.group[data-focus=true] .group-data-\[focus\=true\]\:after\:w-full:after,.group[data-selected=true] .group-data-\[selected\=true\]\:before\:w-full:before{content:var(--tw-content);width:100%}.after\:origin-center:after{content:var(--tw-content);transform-origin:center}.after\:rounded-\[calc\(theme\(borderRadius\.large\)\/2\)\]:after{border-radius:calc(var(--morui-radius-large)/2);content:var(--tw-content)}.after\:rounded-\[calc\(theme\(borderRadius\.medium\)\/3\)\]:after{border-radius:calc(var(--morui-radius-medium)/3);content:var(--tw-content)}.after\:rounded-\[calc\(theme\(borderRadius\.small\)\/3\)\]:after{border-radius:calc(var(--morui-radius-small)/3);content:var(--tw-content)}.after\:rounded-xl:after{border-radius:.75rem;content:var(--tw-content)}.first\:before\:rounded-l-lg:first-child:before,.first\:rounded-l-lg:first-child{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.after\:bg-background:after{--tw-bg-opacity:1;background-color:hsl(var(--morui-background)/var(--morui-background-opacity,var(--tw-bg-opacity)));content:var(--tw-content)}.after\:bg-content3:after{--tw-bg-opacity:1;background-color:hsl(var(--morui-content3)/var(--morui-content3-opacity,var(--tw-bg-opacity)));content:var(--tw-content)}.after\:bg-default:after{--tw-bg-opacity:1;background-color:hsl(var(--morui-default)/var(--morui-default-opacity,var(--tw-bg-opacity)));content:var(--tw-content)}.after\:bg-default-foreground:after{--tw-bg-opacity:1;background-color:hsl(var(--morui-default-foreground)/var(--morui-default-foreground-opacity,var(--tw-bg-opacity)));content:var(--tw-content)}.after\:bg-divider:after{--tw-bg-opacity:1;background-color:hsl(var(--morui-divider)/var(--morui-divider-opacity,var(--tw-bg-opacity)));content:var(--tw-content)}.after\:text-danger:after{--tw-text-opacity:1;color:hsl(var(--morui-danger)/var(--morui-danger-opacity,var(--tw-text-opacity)));content:var(--tw-content)}.after\:text-danger-foreground:after{--tw-text-opacity:1;color:hsl(var(--morui-danger-foreground)/var(--morui-danger-foreground-opacity,var(--tw-text-opacity)));content:var(--tw-content)}.after\:text-default-foreground:after{--tw-text-opacity:1;color:hsl(var(--morui-default-foreground)/var(--morui-default-foreground-opacity,var(--tw-text-opacity)));content:var(--tw-content)}.after\:text-primary-foreground:after{--tw-text-opacity:1;color:hsl(var(--morui-primary-foreground)/var(--morui-primary-foreground-opacity,var(--tw-text-opacity)));content:var(--tw-content)}.after\:text-secondary-foreground:after{--tw-text-opacity:1;color:hsl(var(--morui-secondary-foreground)/var(--morui-secondary-foreground-opacity,var(--tw-text-opacity)));content:var(--tw-content)}.after\:text-success-foreground:after{--tw-text-opacity:1;color:hsl(var(--morui-success-foreground)/var(--morui-success-foreground-opacity,var(--tw-text-opacity)));content:var(--tw-content)}.after\:text-warning-foreground:after{--tw-text-opacity:1;color:hsl(var(--morui-warning-foreground)/var(--morui-warning-foreground-opacity,var(--tw-text-opacity)));content:var(--tw-content)}.after\:shadow-\[0_1px_0px_0_rgba\(0\2c 0\2c 0\2c 0\.05\)\]:after,.after\:shadow-small:after{content:var(--tw-content)}.after\:\!duration-200:after{content:var(--tw-content);transition-duration:.2s!important}.after\:\!ease-linear:after{content:var(--tw-content);transition-timing-function:linear!important}.after\:transition-all:after,.after\:transition-background:after,.after\:transition-transform-opacity:after{transition-duration:.25s;transition-timing-function:ease;content:var(--tw-content)}.after\:content-\[\'\*\'\]:after{--tw-content:"*";content:var(--tw-content)}.after\:transition-all:after{transition-property:all}.after\:transition-background:after{transition-property:background}.after\:transition-transform-opacity:after{transition-property:transform,opacity}.first\:rounded-s-full:first-child{border-end-start-radius:9999px;border-start-start-radius:9999px}.first\:rounded-s-large:first-child{border-end-start-radius:var(--morui-radius-large);border-start-start-radius:var(--morui-radius-large)}.first\:rounded-s-medium:first-child{border-end-start-radius:var(--morui-radius-medium);border-start-start-radius:var(--morui-radius-medium)}.first\:rounded-s-none:first-child{border-end-start-radius:0;border-start-start-radius:0}.first\:rounded-s-small:first-child{border-end-start-radius:var(--morui-radius-small);border-start-start-radius:var(--morui-radius-small)}.first\:before\:rounded-l-lg:first-child:before{content:var(--tw-content)}.last\:rounded-e-full:last-child{border-end-end-radius:9999px;border-start-end-radius:9999px}.last\:rounded-e-large:last-child{border-end-end-radius:var(--morui-radius-large);border-start-end-radius:var(--morui-radius-large)}.last\:rounded-e-medium:last-child{border-end-end-radius:var(--morui-radius-medium);border-start-end-radius:var(--morui-radius-medium)}.last\:rounded-e-none:last-child{border-end-end-radius:0;border-start-end-radius:0}.last\:rounded-e-small:last-child{border-end-end-radius:var(--morui-radius-small);border-start-end-radius:var(--morui-radius-small)}.last\:before\:rounded-r-lg:last-child:before,.last\:rounded-r-lg:last-child{border-bottom-right-radius:.5rem;border-top-right-radius:.5rem}.last\:before\:rounded-r-lg:last-child:before{content:var(--tw-content)}.focus-within\:border-danger:focus-within{--tw-border-opacity:1;border-color:hsl(var(--morui-danger)/var(--morui-danger-opacity,var(--tw-border-opacity)))}.focus-within\:border-primary:focus-within{--tw-border-opacity:1;border-color:hsl(var(--morui-primary)/var(--morui-primary-opacity,var(--tw-border-opacity)))}.focus-within\:border-secondary:focus-within{--tw-border-opacity:1;border-color:hsl(var(--morui-secondary)/var(--morui-secondary-opacity,var(--tw-border-opacity)))}.focus-within\:border-success:focus-within{--tw-border-opacity:1;border-color:hsl(var(--morui-success)/var(--morui-success-opacity,var(--tw-border-opacity)))}.focus-within\:border-warning:focus-within{--tw-border-opacity:1;border-color:hsl(var(--morui-warning)/var(--morui-warning-opacity,var(--tw-border-opacity)))}.hover\:scale-125:hover{--tw-scale-x:1.25;--tw-scale-y:1.25;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-\[\#14A800\]:hover{--tw-border-opacity:1;border-color:rgb(20 168 0/var(--tw-border-opacity))}.hover\:\!bg-danger:hover{--tw-bg-opacity:1!important;background-color:hsl(var(--morui-danger)/var(--morui-danger-opacity,var(--tw-bg-opacity)))!important}.hover\:\!bg-default:hover{--tw-bg-opacity:1!important;background-color:hsl(var(--morui-default)/var(--morui-default-opacity,var(--tw-bg-opacity)))!important}.hover\:\!bg-foreground:hover{--tw-bg-opacity:1!important;background-color:hsl(var(--morui-foreground)/var(--morui-foreground-opacity,var(--tw-bg-opacity)))!important}.hover\:\!bg-primary:hover{--tw-bg-opacity:1!important;background-color:hsl(var(--morui-primary)/var(--morui-primary-opacity,var(--tw-bg-opacity)))!important}.hover\:\!bg-secondary:hover{--tw-bg-opacity:1!important;background-color:hsl(var(--morui-secondary)/var(--morui-secondary-opacity,var(--tw-bg-opacity)))!important}.hover\:\!bg-success:hover{--tw-bg-opacity:1!important;background-color:hsl(var(--morui-success)/var(--morui-success-opacity,var(--tw-bg-opacity)))!important}.hover\:\!bg-warning:hover{--tw-bg-opacity:1!important;background-color:hsl(var(--morui-warning)/var(--morui-warning-opacity,var(--tw-bg-opacity)))!important}.hover\:\!text-danger-foreground:hover{--tw-text-opacity:1!important;color:hsl(var(--morui-danger-foreground)/var(--morui-danger-foreground-opacity,var(--tw-text-opacity)))!important}.hover\:\!text-primary-foreground:hover{--tw-text-opacity:1!important;color:hsl(var(--morui-primary-foreground)/var(--morui-primary-foreground-opacity,var(--tw-text-opacity)))!important}.hover\:\!text-success-foreground:hover{--tw-text-opacity:1!important;color:hsl(var(--morui-success-foreground)/var(--morui-success-foreground-opacity,var(--tw-text-opacity)))!important}.hover\:\!text-warning-foreground:hover{--tw-text-opacity:1!important;color:hsl(var(--morui-warning-foreground)/var(--morui-warning-foreground-opacity,var(--tw-text-opacity)))!important}.hover\:\!opacity-100:hover{opacity:1!important}.hover\:after\:bg-foreground\/10:hover:after{background-color:hsl(var(--morui-foreground)/.1);content:var(--tw-content)}.focus-visible\:z-10:focus-visible{z-index:10}.focus-visible\:outline-none:focus-visible{outline:#0000 solid 2px;outline-offset:2px}.focus-visible\:outline-2:focus-visible{outline-width:2px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-focus:focus-visible{outline-color:hsl(var(--morui-focus)/var(--morui-focus-opacity,1))}.active\:bg-default-300:active{--tw-bg-opacity:1;background-color:hsl(var(--morui-default-300)/var(--morui-default-300-opacity,var(--tw-bg-opacity)))}.active\:\!opacity-70:active{opacity:.7!important}.data-\[open\=true\]\:block[data-open=true],.group:hover .group-hover\:block,.group[data-focus-visible=true] .group-data-\[focus-visible\=true\]\:block,.peer[data-filled=true]~.peer-data-\[filled\=true\]\:block,.tocCollapsibleContent_ZtRw a{display:block}.group:hover .group-hover\:hidden,.group[data-focus-visible=true] .group-data-\[focus-visible\=true\]\:hidden{display:none}.group:hover .group-hover\:border-current{border-color:currentColor}.aria-expanded\:scale-\[0\.97\][aria-expanded=true],.data-\[pressed\=true\]\:scale-\[0\.97\][data-pressed=true]{--tw-scale-x:0.97;--tw-scale-y:0.97;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[focus-visible\=true\]\:z-10[data-focus-visible=true],.data-\[focused\=true\]\:z-10[data-focused=true],.group[data-focus-visible=true] .group-data-\[focus-visible\=true\]\:z-10{z-index:10}.data-\[has-label\=true\]\:mt-\[calc\(theme\(fontSize\.small\)_\+_10px\)\][data-has-label=true]{margin-top:calc(var(--morui-font-size-small) + 10px)}.data-\[has-label\=true\]\:mt-\[calc\(theme\(fontSize\.small\)_\+_12px\)\][data-has-label=true]{margin-top:calc(var(--morui-font-size-small) + 12px)}.data-\[has-label\=true\]\:mt-\[calc\(theme\(fontSize\.small\)_\+_8px\)\][data-has-label=true]{margin-top:calc(var(--morui-font-size-small) + 8px)}.data-\[focus-visible\=true\]\:-translate-x-3[data-focus-visible=true],.data-\[hover\=true\]\:-translate-x-3[data-hover=true]{--tw-translate-x:-0.75rem}.data-\[hover\=true\]\:translate-x-0[data-hover=true]{--tw-translate-x:0px}.data-\[dragging\=true\]\:cursor-grabbing[data-dragging=true]{cursor:grabbing}.data-\[thumb-hidden\=false\]\:border-x-\[calc\(theme\(spacing\.5\)\/2\)\][data-thumb-hidden=false]{border-left-width:.625rem;border-right-width:.625rem}.data-\[thumb-hidden\=false\]\:border-x-\[calc\(theme\(spacing\.6\)\/2\)\][data-thumb-hidden=false]{border-left-width:.75rem;border-right-width:.75rem}.data-\[thumb-hidden\=false\]\:border-x-\[calc\(theme\(spacing\.7\)\/2\)\][data-thumb-hidden=false]{border-left-width:.875rem;border-right-width:.875rem}.data-\[thumb-hidden\=false\]\:border-y-\[calc\(theme\(spacing\.5\)\/2\)\][data-thumb-hidden=false]{border-bottom-width:.625rem;border-top-width:.625rem}.data-\[thumb-hidden\=false\]\:border-y-\[calc\(theme\(spacing\.6\)\/2\)\][data-thumb-hidden=false]{border-bottom-width:.75rem;border-top-width:.75rem}.data-\[thumb-hidden\=false\]\:border-y-\[calc\(theme\(spacing\.7\)\/2\)\][data-thumb-hidden=false]{border-bottom-width:.875rem;border-top-width:.875rem}.data-\[active\=true\]\:border-danger[data-active=true],.data-\[focus\=true\]\:border-danger[data-focus=true],.data-\[hover\=true\]\:border-danger[data-hover=true],.data-\[open\=true\]\:border-danger[data-open=true]{--tw-border-opacity:1;border-color:hsl(var(--morui-danger)/var(--morui-danger-opacity,var(--tw-border-opacity)))}.data-\[active\=true\]\:border-default-400[data-active=true],.data-\[hover\=true\]\:border-default-400[data-hover=true]{--tw-border-opacity:1;border-color:hsl(var(--morui-default-400)/var(--morui-default-400-opacity,var(--tw-border-opacity)))}.data-\[active\=true\]\:border-primary[data-active=true],.data-\[focus\=true\]\:border-primary[data-focus=true],.data-\[hover\=true\]\:border-primary[data-hover=true],.data-\[open\=true\]\:border-primary[data-open=true]{--tw-border-opacity:1;border-color:hsl(var(--morui-primary)/var(--morui-primary-opacity,var(--tw-border-opacity)))}.data-\[active\=true\]\:border-secondary[data-active=true],.data-\[focus\=true\]\:border-secondary[data-focus=true],.data-\[hover\=true\]\:border-secondary[data-hover=true],.data-\[open\=true\]\:border-secondary[data-open=true]{--tw-border-opacity:1;border-color:hsl(var(--morui-secondary)/var(--morui-secondary-opacity,var(--tw-border-opacity)))}.data-\[active\=true\]\:border-success[data-active=true],.data-\[focus\=true\]\:border-success[data-focus=true],.data-\[hover\=true\]\:border-success[data-hover=true],.data-\[open\=true\]\:border-success[data-open=true]{--tw-border-opacity:1;border-color:hsl(var(--morui-success)/var(--morui-success-opacity,var(--tw-border-opacity)))}.data-\[active\=true\]\:border-warning[data-active=true],.data-\[focus\=true\]\:border-warning[data-focus=true],.data-\[hover\=true\]\:border-warning[data-hover=true],.data-\[open\=true\]\:border-warning[data-open=true]{--tw-border-opacity:1;border-color:hsl(var(--morui-warning)/var(--morui-warning-opacity,var(--tw-border-opacity)))}.data-\[focus\=true\]\:border-default-foreground[data-focus=true],.data-\[open\=true\]\:border-default-foreground[data-open=true],.group[data-focus=true] .group-data-\[focus\=true\]\:border-default-foreground{--tw-border-opacity:1;border-color:hsl(var(--morui-default-foreground)/var(--morui-default-foreground-opacity,var(--tw-border-opacity)))}.data-\[hover\=true\]\:bg-blue-600[data-hover=true]{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity))}.data-\[hover\=true\]\:bg-content2[data-hover=true]{--tw-bg-opacity:1;background-color:hsl(var(--morui-content2)/var(--morui-content2-opacity,var(--tw-bg-opacity)))}.data-\[hover\=true\]\:bg-danger-100[data-hover=true]{--tw-bg-opacity:1;background-color:hsl(var(--morui-danger-100)/var(--morui-danger-100-opacity,var(--tw-bg-opacity)))}.data-\[hover\=true\]\:bg-default\/80[data-hover=true]{background-color:hsl(var(--morui-default)/.8)}.data-\[hover\=true\]\:bg-primary-100[data-hover=true]{--tw-bg-opacity:1;background-color:hsl(var(--morui-primary-100)/var(--morui-primary-100-opacity,var(--tw-bg-opacity)))}.data-\[hover\=true\]\:bg-secondary-100[data-hover=true]{--tw-bg-opacity:1;background-color:hsl(var(--morui-secondary-100)/var(--morui-secondary-100-opacity,var(--tw-bg-opacity)))}.data-\[hover\=true\]\:bg-success-100[data-hover=true]{--tw-bg-opacity:1;background-color:hsl(var(--morui-success-100)/var(--morui-success-100-opacity,var(--tw-bg-opacity)))}.data-\[hover\=true\]\:bg-warning-100[data-hover=true]{--tw-bg-opacity:1;background-color:hsl(var(--morui-warning-100)/var(--morui-warning-100-opacity,var(--tw-bg-opacity)))}.data-\[in-range\=true\]\:bg-background\/50[data-in-range=true]{background-color:hsl(var(--morui-background)/.5)}.data-\[loaded\=true\]\:\!bg-transparent[data-loaded=true]{background-color:initial!important}.data-\[has-end-content\=true\]\:pe-1\.5[data-has-end-content=true]{padding-inline-end:.375rem}.data-\[has-start-content\=true\]\:ps-1\.5[data-has-start-content=true]{padding-inline-start:.375rem}.data-\[disabled\=true\]\:text-default-300[data-disabled=true]{--tw-text-opacity:1;color:hsl(var(--morui-default-300)/var(--morui-default-300-opacity,var(--tw-text-opacity)))}.data-\[hover\=true\]\:text-danger[data-hover=true],.data-\[selected\=true\]\:text-danger[data-selected=true]{--tw-text-opacity:1;color:hsl(var(--morui-danger)/var(--morui-danger-opacity,var(--tw-text-opacity)))}.data-\[hover\=true\]\:text-primary[data-hover=true],.data-\[selected\=true\]\:text-primary[data-selected=true]{--tw-text-opacity:1;color:hsl(var(--morui-primary)/var(--morui-primary-opacity,var(--tw-text-opacity)))}.data-\[hover\=true\]\:text-secondary[data-hover=true],.data-\[selected\=true\]\:text-secondary[data-selected=true]{--tw-text-opacity:1;color:hsl(var(--morui-secondary)/var(--morui-secondary-opacity,var(--tw-text-opacity)))}.data-\[selected\=true\]\:text-success-600[data-selected=true]{--tw-text-opacity:1;color:hsl(var(--morui-success-600)/var(--morui-success-600-opacity,var(--tw-text-opacity)))}.data-\[selected\=true\]\:text-warning-600[data-selected=true]{--tw-text-opacity:1;color:hsl(var(--morui-warning-600)/var(--morui-warning-600-opacity,var(--tw-text-opacity)))}.data-\[hover\=true\]\:opacity-hover[data-hover=true]{opacity:var(--morui-hover-opacity)}.data-\[active\=true\]\:shadow-md[data-active=true]{--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.data-\[hover\=true\]\:shadow-lg[data-hover=true]{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.data-\[hover\=true\]\:shadow-danger\/30[data-hover=true]{--tw-shadow-color:hsl(var(--morui-danger)/0.3);--tw-shadow:var(--tw-shadow-colored)}.data-\[hover\=true\]\:shadow-primary\/30[data-hover=true]{--tw-shadow-color:hsl(var(--morui-primary)/0.3);--tw-shadow:var(--tw-shadow-colored)}.data-\[hover\=true\]\:shadow-secondary\/30[data-hover=true]{--tw-shadow-color:hsl(var(--morui-secondary)/0.3);--tw-shadow:var(--tw-shadow-colored)}.data-\[hover\=true\]\:shadow-success\/30[data-hover=true]{--tw-shadow-color:hsl(var(--morui-success)/0.3);--tw-shadow:var(--tw-shadow-colored)}.data-\[hover\=true\]\:shadow-warning\/30[data-hover=true]{--tw-shadow-color:hsl(var(--morui-warning)/0.3);--tw-shadow:var(--tw-shadow-colored)}.data-\[focus-visible\=true\]\:outline-2[data-focus-visible=true]{outline-width:2px}.data-\[focus-visible\=true\]\:outline-offset-2[data-focus-visible=true]{outline-offset:2px}.data-\[focus-visible\=true\]\:outline-focus[data-focus-visible=true]{outline-color:hsl(var(--morui-focus)/var(--morui-focus-opacity,1))}.data-\[focus-visible\]\:outline-danger-foreground[data-focus-visible]{outline-color:hsl(var(--morui-danger-foreground)/var(--morui-danger-foreground-opacity,1))}.data-\[focus-visible\]\:outline-default-foreground[data-focus-visible]{outline-color:hsl(var(--morui-default-foreground)/var(--morui-default-foreground-opacity,1))}.data-\[focus-visible\]\:outline-primary-foreground[data-focus-visible]{outline-color:hsl(var(--morui-primary-foreground)/var(--morui-primary-foreground-opacity,1))}.data-\[focus-visible\]\:outline-secondary-foreground[data-focus-visible]{outline-color:hsl(var(--morui-secondary-foreground)/var(--morui-secondary-foreground-opacity,1))}.data-\[focus-visible\]\:outline-success-foreground[data-focus-visible]{outline-color:hsl(var(--morui-success-foreground)/var(--morui-success-foreground-opacity,1))}.data-\[focus-visible\]\:outline-warning-foreground[data-focus-visible]{outline-color:hsl(var(--morui-warning-foreground)/var(--morui-warning-foreground-opacity,1))}.data-\[menu-open\=true\]\:backdrop-blur-xl[data-menu-open=true]{--tw-backdrop-blur:blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.data-\[hide-scroll\=true\]\:scrollbar-hide[data-hide-scroll=true]::-webkit-scrollbar{display:none}.data-\[top-bottom-scroll\=true\]\:\[mask-image\:linear-gradient\(\#000\2c \#000\2c transparent_0\2c \#000_var\(--scroll-shadow-size\)\2c \#000_calc\(100\%_-_var\(--scroll-shadow-size\)\)\2c transparent\)\][data-top-bottom-scroll=true]{-webkit-mask-image:linear-gradient(#000,#000,#0000 0,#000 var(--scroll-shadow-size),#000 calc(100% - var(--scroll-shadow-size)),#0000);mask-image:linear-gradient(#000,#000,#0000 0,#000 var(--scroll-shadow-size),#000 calc(100% - var(--scroll-shadow-size)),#0000)}.data-\[top-scroll\=true\]\:\[mask-image\:linear-gradient\(0deg\2c \#000_calc\(100\%_-_var\(--scroll-shadow-size\)\)\2c transparent\)\][data-top-scroll=true]{-webkit-mask-image:linear-gradient(0deg,#000 calc(100% - var(--scroll-shadow-size)),#0000);mask-image:linear-gradient(0deg,#000 calc(100% - var(--scroll-shadow-size)),#0000)}.data-\[bottom-scroll\=true\]\:\[mask-image\:linear-gradient\(180deg\2c \#000_calc\(100\%_-_var\(--scroll-shadow-size\)\)\2c transparent\)\][data-bottom-scroll=true]{-webkit-mask-image:linear-gradient(180deg,#000 calc(100% - var(--scroll-shadow-size)),#0000);mask-image:linear-gradient(180deg,#000 calc(100% - var(--scroll-shadow-size)),#0000)}.data-\[left-scroll\=true\]\:\[mask-image\:linear-gradient\(270deg\2c \#000_calc\(100\%_-_var\(--scroll-shadow-size\)\)\2c transparent\)\][data-left-scroll=true]{-webkit-mask-image:linear-gradient(270deg,#000 calc(100% - var(--scroll-shadow-size)),#0000);mask-image:linear-gradient(270deg,#000 calc(100% - var(--scroll-shadow-size)),#0000)}.data-\[right-scroll\=true\]\:\[mask-image\:linear-gradient\(90deg\2c \#000_calc\(100\%_-_var\(--scroll-shadow-size\)\)\2c transparent\)\][data-right-scroll=true]{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - var(--scroll-shadow-size)),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - var(--scroll-shadow-size)),#0000)}.data-\[left-right-scroll\=true\]\:\[mask-image\:linear-gradient\(to_right\2c \#000\2c \#000\2c transparent_0\2c \#000_var\(--scroll-shadow-size\)\2c \#000_calc\(100\%_-_var\(--scroll-shadow-size\)\)\2c transparent\)\][data-left-right-scroll=true]{-webkit-mask-image:linear-gradient(to right,#000,#000,#0000 0,#000 var(--scroll-shadow-size),#000 calc(100% - var(--scroll-shadow-size)),#0000);mask-image:linear-gradient(to right,#000,#000,#0000 0,#000 var(--scroll-shadow-size),#000 calc(100% - var(--scroll-shadow-size)),#0000)}.data-\[placement\=bottom-end\]\:before\:-top-\[calc\(theme\(spacing\.5\)\/4_-_1\.5px\)\][data-placement=bottom-end]:before,.data-\[placement\=bottom-start\]\:before\:-top-\[calc\(theme\(spacing\.5\)\/4_-_1\.5px\)\][data-placement=bottom-start]:before,.data-\[placement\=bottom\]\:before\:-top-\[calc\(theme\(spacing\.5\)\/4_-_1\.5px\)\][data-placement=bottom]:before{content:var(--tw-content);top:calc(-.3125rem - -1.5px)}.data-\[placement\=bottom-end\]\:before\:right-3[data-placement=bottom-end]:before,.data-\[placement\=top-end\]\:before\:right-3[data-placement=top-end]:before{content:var(--tw-content);right:.75rem}.data-\[placement\=bottom-start\]\:before\:left-3[data-placement=bottom-start]:before,.data-\[placement\=top-start\]\:before\:left-3[data-placement=top-start]:before{content:var(--tw-content);left:.75rem}.data-\[placement\=left-end\]\:before\:-right-\[calc\(theme\(spacing\.5\)\/4_-_3px\)\][data-placement=left-end]:before,.data-\[placement\=left-start\]\:before\:-right-\[calc\(theme\(spacing\.5\)\/4_-_3px\)\][data-placement=left-start]:before{content:var(--tw-content);right:calc(-.3125rem - -3px)}.data-\[placement\=left-end\]\:before\:bottom-1\/4[data-placement=left-end]:before,.data-\[placement\=right-end\]\:before\:bottom-1\/4[data-placement=right-end]:before{bottom:25%;content:var(--tw-content)}.data-\[placement\=left-start\]\:before\:top-1\/4[data-placement=left-start]:before,.data-\[placement\=right-start\]\:before\:top-1\/4[data-placement=right-start]:before{content:var(--tw-content);top:25%}.data-\[placement\=left\]\:before\:-right-\[calc\(theme\(spacing\.5\)\/4_-_2px\)\][data-placement=left]:before{content:var(--tw-content);right:calc(-.3125rem - -2px)}.data-\[placement\=left\]\:before\:top-1\/2[data-placement=left]:before,.data-\[placement\=right\]\:before\:top-1\/2[data-placement=right]:before{content:var(--tw-content);top:50%}.data-\[placement\=right-end\]\:before\:-left-\[calc\(theme\(spacing\.5\)\/4_-_3px\)\][data-placement=right-end]:before,.data-\[placement\=right-start\]\:before\:-left-\[calc\(theme\(spacing\.5\)\/4_-_3px\)\][data-placement=right-start]:before{content:var(--tw-content);left:calc(-.3125rem - -3px)}.data-\[placement\=right\]\:before\:-left-\[calc\(theme\(spacing\.5\)\/4_-_2px\)\][data-placement=right]:before{content:var(--tw-content);left:calc(-.3125rem - -2px)}.data-\[placement\=top-end\]\:before\:-bottom-\[calc\(theme\(spacing\.5\)\/4_-_1\.5px\)\][data-placement=top-end]:before,.data-\[placement\=top-start\]\:before\:-bottom-\[calc\(theme\(spacing\.5\)\/4_-_1\.5px\)\][data-placement=top-start]:before,.data-\[placement\=top\]\:before\:-bottom-\[calc\(theme\(spacing\.5\)\/4_-_1\.5px\)\][data-placement=top]:before{bottom:calc(-.3125rem - -1.5px);content:var(--tw-content)}.data-\[loaded\=true\]\:before\:animate-none[data-loaded=true]:before{animation:none;content:var(--tw-content)}.data-\[dragging\=true\]\:after\:scale-80[data-dragging=true]:after{--tw-scale-x:0.8;--tw-scale-y:0.8}.data-\[selectable\=true\]\:focus\:border-danger:focus[data-selectable=true]{--tw-border-opacity:1;border-color:hsl(var(--morui-danger)/var(--morui-danger-opacity,var(--tw-border-opacity)))}.data-\[selectable\=true\]\:focus\:border-default:focus[data-selectable=true]{--tw-border-opacity:1;border-color:hsl(var(--morui-default)/var(--morui-default-opacity,var(--tw-border-opacity)))}.data-\[selectable\=true\]\:focus\:border-primary:focus[data-selectable=true]{--tw-border-opacity:1;border-color:hsl(var(--morui-primary)/var(--morui-primary-opacity,var(--tw-border-opacity)))}.data-\[selectable\=true\]\:focus\:border-secondary:focus[data-selectable=true]{--tw-border-opacity:1;border-color:hsl(var(--morui-secondary)/var(--morui-secondary-opacity,var(--tw-border-opacity)))}.data-\[selectable\=true\]\:focus\:border-success:focus[data-selectable=true]{--tw-border-opacity:1;border-color:hsl(var(--morui-success)/var(--morui-success-opacity,var(--tw-border-opacity)))}.data-\[selectable\=true\]\:focus\:border-warning:focus[data-selectable=true]{--tw-border-opacity:1;border-color:hsl(var(--morui-warning)/var(--morui-warning-opacity,var(--tw-border-opacity)))}.data-\[selectable\=true\]\:focus\:bg-danger:focus[data-selectable=true]{--tw-bg-opacity:1;background-color:hsl(var(--morui-danger)/var(--morui-danger-opacity,var(--tw-bg-opacity)))}.data-\[selectable\=true\]\:focus\:bg-danger\/20:focus[data-selectable=true]{background-color:hsl(var(--morui-danger)/.2)}.data-\[selectable\=true\]\:focus\:bg-default:focus[data-selectable=true]{--tw-bg-opacity:1;background-color:hsl(var(--morui-default)/var(--morui-default-opacity,var(--tw-bg-opacity)))}.data-\[selectable\=true\]\:focus\:bg-default-100:focus[data-selectable=true]{--tw-bg-opacity:1;background-color:hsl(var(--morui-default-100)/var(--morui-default-100-opacity,var(--tw-bg-opacity)))}.data-\[selectable\=true\]\:focus\:bg-default\/40:focus[data-selectable=true]{background-color:hsl(var(--morui-default)/.4)}.data-\[selectable\=true\]\:focus\:bg-primary:focus[data-selectable=true]{--tw-bg-opacity:1;background-color:hsl(var(--morui-primary)/var(--morui-primary-opacity,var(--tw-bg-opacity)))}.data-\[selectable\=true\]\:focus\:bg-primary\/20:focus[data-selectable=true]{background-color:hsl(var(--morui-primary)/.2)}.data-\[selectable\=true\]\:focus\:bg-secondary:focus[data-selectable=true]{--tw-bg-opacity:1;background-color:hsl(var(--morui-secondary)/var(--morui-secondary-opacity,var(--tw-bg-opacity)))}.data-\[selectable\=true\]\:focus\:bg-secondary\/20:focus[data-selectable=true]{background-color:hsl(var(--morui-secondary)/.2)}.data-\[selectable\=true\]\:focus\:bg-success:focus[data-selectable=true]{--tw-bg-opacity:1;background-color:hsl(var(--morui-success)/var(--morui-success-opacity,var(--tw-bg-opacity)))}.data-\[selectable\=true\]\:focus\:bg-success\/20:focus[data-selectable=true]{background-color:hsl(var(--morui-success)/.2)}.data-\[selectable\=true\]\:focus\:bg-warning:focus[data-selectable=true]{--tw-bg-opacity:1;background-color:hsl(var(--morui-warning)/var(--morui-warning-opacity,var(--tw-bg-opacity)))}.data-\[selectable\=true\]\:focus\:bg-warning\/20:focus[data-selectable=true]{background-color:hsl(var(--morui-warning)/.2)}.data-\[selectable\=true\]\:focus\:text-danger:focus[data-selectable=true]{--tw-text-opacity:1;color:hsl(var(--morui-danger)/var(--morui-danger-opacity,var(--tw-text-opacity)))}.data-\[selectable\=true\]\:focus\:text-danger-foreground:focus[data-selectable=true]{--tw-text-opacity:1;color:hsl(var(--morui-danger-foreground)/var(--morui-danger-foreground-opacity,var(--tw-text-opacity)))}.data-\[selectable\=true\]\:focus\:text-default-500:focus[data-selectable=true]{--tw-text-opacity:1;color:hsl(var(--morui-default-500)/var(--morui-default-500-opacity,var(--tw-text-opacity)))}.data-\[selectable\=true\]\:focus\:text-default-foreground:focus[data-selectable=true]{--tw-text-opacity:1;color:hsl(var(--morui-default-foreground)/var(--morui-default-foreground-opacity,var(--tw-text-opacity)))}.data-\[selectable\=true\]\:focus\:text-primary:focus[data-selectable=true]{--tw-text-opacity:1;color:hsl(var(--morui-primary)/var(--morui-primary-opacity,var(--tw-text-opacity)))}.data-\[selectable\=true\]\:focus\:text-primary-foreground:focus[data-selectable=true]{--tw-text-opacity:1;color:hsl(var(--morui-primary-foreground)/var(--morui-primary-foreground-opacity,var(--tw-text-opacity)))}.data-\[selectable\=true\]\:focus\:text-secondary:focus[data-selectable=true]{--tw-text-opacity:1;color:hsl(var(--morui-secondary)/var(--morui-secondary-opacity,var(--tw-text-opacity)))}.data-\[selectable\=true\]\:focus\:text-secondary-foreground:focus[data-selectable=true]{--tw-text-opacity:1;color:hsl(var(--morui-secondary-foreground)/var(--morui-secondary-foreground-opacity,var(--tw-text-opacity)))}.data-\[selectable\=true\]\:focus\:text-success:focus[data-selectable=true]{--tw-text-opacity:1;color:hsl(var(--morui-success)/var(--morui-success-opacity,var(--tw-text-opacity)))}.data-\[selectable\=true\]\:focus\:text-success-foreground:focus[data-selectable=true]{--tw-text-opacity:1;color:hsl(var(--morui-success-foreground)/var(--morui-success-foreground-opacity,var(--tw-text-opacity)))}.data-\[selectable\=true\]\:focus\:text-warning:focus[data-selectable=true]{--tw-text-opacity:1;color:hsl(var(--morui-warning)/var(--morui-warning-opacity,var(--tw-text-opacity)))}.data-\[selectable\=true\]\:focus\:text-warning-foreground:focus[data-selectable=true]{--tw-text-opacity:1;color:hsl(var(--morui-warning-foreground)/var(--morui-warning-foreground-opacity,var(--tw-text-opacity)))}.data-\[selectable\=true\]\:focus\:shadow-danger\/30:focus[data-selectable=true]{--tw-shadow-color:hsl(var(--morui-danger)/0.3);--tw-shadow:var(--tw-shadow-colored)}.data-\[selectable\=true\]\:focus\:shadow-default\/50:focus[data-selectable=true]{--tw-shadow-color:hsl(var(--morui-default)/0.5);--tw-shadow:var(--tw-shadow-colored)}.data-\[selectable\=true\]\:focus\:shadow-primary\/30:focus[data-selectable=true]{--tw-shadow-color:hsl(var(--morui-primary)/0.3);--tw-shadow:var(--tw-shadow-colored)}.data-\[selectable\=true\]\:focus\:shadow-secondary\/30:focus[data-selectable=true]{--tw-shadow-color:hsl(var(--morui-secondary)/0.3);--tw-shadow:var(--tw-shadow-colored)}.data-\[selectable\=true\]\:focus\:shadow-success\/30:focus[data-selectable=true]{--tw-shadow-color:hsl(var(--morui-success)/0.3);--tw-shadow:var(--tw-shadow-colored)}.data-\[selectable\=true\]\:focus\:shadow-warning\/30:focus[data-selectable=true]{--tw-shadow-color:hsl(var(--morui-warning)/0.3);--tw-shadow:var(--tw-shadow-colored)}.group[data-filled-within=true] .group-data-\[filled-within\=true\]\:pointer-events-auto,.group[data-filled=true] .group-data-\[filled\=true\]\:pointer-events-auto{pointer-events:auto}.group[data-selected=true] .group-data-\[selected\=true\]\:ml-4,.group[data-selected][data-pressed] .group-data-\[selected\]\:group-data-\[pressed\]\:ml-4{margin-left:1rem}.group[data-selected=true] .group-data-\[selected\=true\]\:ml-5,.group[data-selected][data-pressed] .group-data-\[selected\]\:group-data-\[pressed\]\:ml-5{margin-left:1.25rem}.group[data-selected=true] .group-data-\[selected\=true\]\:ml-6{margin-left:1.5rem}.group[data-filled-within=true] .group-data-\[filled-within\=true\]\:-translate-y-\[calc\(100\%_\+_theme\(fontSize\.small\)\/2_\+_20px\)\],.group[data-filled=true] .group-data-\[filled\=true\]\:-translate-y-\[calc\(100\%_\+_theme\(fontSize\.small\)\/2_\+_20px\)\]{--tw-translate-y:calc(-100% + var(--morui-font-size-small)/2*-1 + -20px);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-filled-within=true] .group-data-\[filled-within\=true\]\:-translate-y-\[calc\(100\%_\+_theme\(fontSize\.small\)\/2_\+_24px\)\],.group[data-filled=true] .group-data-\[filled\=true\]\:-translate-y-\[calc\(100\%_\+_theme\(fontSize\.small\)\/2_\+_24px\)\]{--tw-translate-y:calc(-100% + var(--morui-font-size-small)/2*-1 + -24px);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-filled-within=true] .group-data-\[filled-within\=true\]\:-translate-y-\[calc\(100\%_\+_theme\(fontSize\.tiny\)\/2_\+_16px\)\],.group[data-filled=true] .group-data-\[filled\=true\]\:-translate-y-\[calc\(100\%_\+_theme\(fontSize\.tiny\)\/2_\+_16px\)\]{--tw-translate-y:calc(-100% + var(--morui-font-size-tiny)/2*-1 + -16px);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-filled-within=true] .group-data-\[filled-within\=true\]\:-translate-y-\[calc\(50\%_\+_theme\(fontSize\.small\)\/2_-_3\.5px\)\],.group[data-filled=true] .group-data-\[filled\=true\]\:-translate-y-\[calc\(50\%_\+_theme\(fontSize\.small\)\/2_-_3\.5px\)\]{--tw-translate-y:calc(-50% + var(--morui-font-size-small)/2*-1 - -3.5px);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-filled-within=true] .group-data-\[filled-within\=true\]\:-translate-y-\[calc\(50\%_\+_theme\(fontSize\.small\)\/2_-_4px\)\],.group[data-filled=true] .group-data-\[filled\=true\]\:-translate-y-\[calc\(50\%_\+_theme\(fontSize\.small\)\/2_-_4px\)\]{--tw-translate-y:calc(-50% + var(--morui-font-size-small)/2*-1 - -4px);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-filled-within=true] .group-data-\[filled-within\=true\]\:-translate-y-\[calc\(50\%_\+_theme\(fontSize\.small\)\/2_-_6px\)\],.group[data-filled=true] .group-data-\[filled\=true\]\:-translate-y-\[calc\(50\%_\+_theme\(fontSize\.small\)\/2_-_6px\)\]{--tw-translate-y:calc(-50% + var(--morui-font-size-small)/2*-1 - -6px);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-filled-within=true] .group-data-\[filled-within\=true\]\:-translate-y-\[calc\(50\%_\+_theme\(fontSize\.small\)\/2_-_6px_-_theme\(borderWidth\.medium\)\)\],.group[data-filled=true] .group-data-\[filled\=true\]\:-translate-y-\[calc\(50\%_\+_theme\(fontSize\.small\)\/2_-_6px_-_theme\(borderWidth\.medium\)\)\]{--tw-translate-y:calc(-50% + var(--morui-font-size-small)/2*-1 - -6px - var(--morui-border-width-medium)*-1);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-filled-within=true] .group-data-\[filled-within\=true\]\:-translate-y-\[calc\(50\%_\+_theme\(fontSize\.small\)\/2_-_8px\)\],.group[data-filled=true] .group-data-\[filled\=true\]\:-translate-y-\[calc\(50\%_\+_theme\(fontSize\.small\)\/2_-_8px\)\]{--tw-translate-y:calc(-50% + var(--morui-font-size-small)/2*-1 - -8px);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-filled-within=true] .group-data-\[filled-within\=true\]\:-translate-y-\[calc\(50\%_\+_theme\(fontSize\.small\)\/2_-_8px_-_theme\(borderWidth\.medium\)\)\],.group[data-filled=true] .group-data-\[filled\=true\]\:-translate-y-\[calc\(50\%_\+_theme\(fontSize\.small\)\/2_-_8px_-_theme\(borderWidth\.medium\)\)\]{--tw-translate-y:calc(-50% + var(--morui-font-size-small)/2*-1 - -8px - var(--morui-border-width-medium)*-1);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-filled-within=true] .group-data-\[filled-within\=true\]\:-translate-y-\[calc\(50\%_\+_theme\(fontSize\.tiny\)\/2_-_5px\)\],.group[data-filled=true] .group-data-\[filled\=true\]\:-translate-y-\[calc\(50\%_\+_theme\(fontSize\.tiny\)\/2_-_5px\)\]{--tw-translate-y:calc(-50% + var(--morui-font-size-tiny)/2*-1 - -5px);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-filled-within=true] .group-data-\[filled-within\=true\]\:-translate-y-\[calc\(50\%_\+_theme\(fontSize\.tiny\)\/2_-_8px\)\],.group[data-filled=true] .group-data-\[filled\=true\]\:-translate-y-\[calc\(50\%_\+_theme\(fontSize\.tiny\)\/2_-_8px\)\]{--tw-translate-y:calc(-50% + var(--morui-font-size-tiny)/2*-1 - -8px);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-filled-within=true] .group-data-\[filled-within\=true\]\:-translate-y-\[calc\(50\%_\+_theme\(fontSize\.tiny\)\/2_-_8px_-_theme\(borderWidth\.medium\)\)\],.group[data-filled=true] .group-data-\[filled\=true\]\:-translate-y-\[calc\(50\%_\+_theme\(fontSize\.tiny\)\/2_-_8px_-_theme\(borderWidth\.medium\)\)\]{--tw-translate-y:calc(-50% + var(--morui-font-size-tiny)/2*-1 - -8px - var(--morui-border-width-medium)*-1);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-selected=true] .group-data-\[selected\=true\]\:translate-x-3{--tw-translate-x:0.75rem}.group[data-copied=true] .group-data-\[copied\=true\]\:scale-50{--tw-scale-x:.5;--tw-scale-y:.5;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-filled-within=true] .group-data-\[filled-within\=true\]\:scale-85,.group[data-filled=true] .group-data-\[filled\=true\]\:scale-85{--tw-scale-x:0.85;--tw-scale-y:0.85;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-pressed=true] .group-data-\[pressed\=true\]\:scale-95{--tw-scale-x:.95;--tw-scale-y:.95}.group[data-focus=true] .group-data-\[focus\=true\]\:border-danger,.group[data-selected=true] .group-data-\[selected\=true\]\:border-danger{--tw-border-opacity:1;border-color:hsl(var(--morui-danger)/var(--morui-danger-opacity,var(--tw-border-opacity)))}.group[data-focus=true] .group-data-\[focus\=true\]\:border-primary,.group[data-selected=true] .group-data-\[selected\=true\]\:border-primary{--tw-border-opacity:1;border-color:hsl(var(--morui-primary)/var(--morui-primary-opacity,var(--tw-border-opacity)))}.group[data-focus=true] .group-data-\[focus\=true\]\:border-secondary,.group[data-selected=true] .group-data-\[selected\=true\]\:border-secondary{--tw-border-opacity:1;border-color:hsl(var(--morui-secondary)/var(--morui-secondary-opacity,var(--tw-border-opacity)))}.group[data-focus=true] .group-data-\[focus\=true\]\:border-success,.group[data-selected=true] .group-data-\[selected\=true\]\:border-success{--tw-border-opacity:1;border-color:hsl(var(--morui-success)/var(--morui-success-opacity,var(--tw-border-opacity)))}.group[data-focus=true] .group-data-\[focus\=true\]\:border-warning,.group[data-selected=true] .group-data-\[selected\=true\]\:border-warning{--tw-border-opacity:1;border-color:hsl(var(--morui-warning)/var(--morui-warning-opacity,var(--tw-border-opacity)))}.group[data-selected=true] .group-data-\[selected\=true\]\:border-default-500{--tw-border-opacity:1;border-color:hsl(var(--morui-default-500)/var(--morui-default-500-opacity,var(--tw-border-opacity)))}.\[\&\[data-hover\=true\]\:not\(\[data-active\=true\]\)\]\:bg-default-100[data-hover=true]:not([data-active=true]),.group[data-focus=true] .group-data-\[focus\=true\]\:bg-default-100,.group[data-hover-unselected=true] .group-data-\[hover-unselected\=true\]\:bg-default-100{--tw-bg-opacity:1;background-color:hsl(var(--morui-default-100)/var(--morui-default-100-opacity,var(--tw-bg-opacity)))}.group[data-selected=true] .group-data-\[selected\=true\]\:bg-danger{--tw-bg-opacity:1;background-color:hsl(var(--morui-danger)/var(--morui-danger-opacity,var(--tw-bg-opacity)))}.group[data-selected=true] .group-data-\[selected\=true\]\:bg-primary{--tw-bg-opacity:1;background-color:hsl(var(--morui-primary)/var(--morui-primary-opacity,var(--tw-bg-opacity)))}.group[data-selected=true] .group-data-\[selected\=true\]\:bg-secondary{--tw-bg-opacity:1;background-color:hsl(var(--morui-secondary)/var(--morui-secondary-opacity,var(--tw-bg-opacity)))}.group[data-selected=true] .group-data-\[selected\=true\]\:bg-success{--tw-bg-opacity:1;background-color:hsl(var(--morui-success)/var(--morui-success-opacity,var(--tw-bg-opacity)))}.group[data-selected=true] .group-data-\[selected\=true\]\:bg-warning{--tw-bg-opacity:1;background-color:hsl(var(--morui-warning)/var(--morui-warning-opacity,var(--tw-bg-opacity)))}.group[data-has-helper=true] .group-data-\[has-helper\=true\]\:pt-3{padding-top:.75rem}.group[data-has-helper=true] .group-data-\[has-helper\=true\]\:pt-4,.group[data-has-label=true] .group-data-\[has-label\=true\]\:pt-4{padding-top:1rem}.group[data-has-label=true] .group-data-\[has-label\=true\]\:pt-5{padding-top:1.25rem}.group[data-disabled=true] .group-data-\[disabled\=true\]\:text-foreground-300{--tw-text-opacity:1;color:hsl(var(--morui-foreground-300)/var(--morui-foreground-300-opacity,var(--tw-text-opacity)))}.group[data-has-value=true] .group-data-\[has-value\=true\]\:text-default-foreground,.group[data-selected=true] .group-data-\[selected\=true\]\:text-default-foreground{--tw-text-opacity:1;color:hsl(var(--morui-default-foreground)/var(--morui-default-foreground-opacity,var(--tw-text-opacity)))}.group[data-invalid=true] .group-data-\[invalid\=true\]\:text-danger,.group[data-selected=true] .group-data-\[selected\=true\]\:text-danger{--tw-text-opacity:1;color:hsl(var(--morui-danger)/var(--morui-danger-opacity,var(--tw-text-opacity)))}.group[data-selected=true] .group-data-\[selected\=true\]\:text-danger-foreground{--tw-text-opacity:1;color:hsl(var(--morui-danger-foreground)/var(--morui-danger-foreground-opacity,var(--tw-text-opacity)))}.group[data-selected=true] .group-data-\[selected\=true\]\:text-primary{--tw-text-opacity:1;color:hsl(var(--morui-primary)/var(--morui-primary-opacity,var(--tw-text-opacity)))}.group[data-selected=true] .group-data-\[selected\=true\]\:text-primary-foreground{--tw-text-opacity:1;color:hsl(var(--morui-primary-foreground)/var(--morui-primary-foreground-opacity,var(--tw-text-opacity)))}.group[data-selected=true] .group-data-\[selected\=true\]\:text-secondary{--tw-text-opacity:1;color:hsl(var(--morui-secondary)/var(--morui-secondary-opacity,var(--tw-text-opacity)))}.group[data-selected=true] .group-data-\[selected\=true\]\:text-secondary-foreground{--tw-text-opacity:1;color:hsl(var(--morui-secondary-foreground)/var(--morui-secondary-foreground-opacity,var(--tw-text-opacity)))}.group[data-selected=true] .group-data-\[selected\=true\]\:text-success{--tw-text-opacity:1;color:hsl(var(--morui-success)/var(--morui-success-opacity,var(--tw-text-opacity)))}.group[data-selected=true] .group-data-\[selected\=true\]\:text-success-foreground{--tw-text-opacity:1;color:hsl(var(--morui-success-foreground)/var(--morui-success-foreground-opacity,var(--tw-text-opacity)))}.group[data-selected=true] .group-data-\[selected\=true\]\:text-warning{--tw-text-opacity:1;color:hsl(var(--morui-warning)/var(--morui-warning-opacity,var(--tw-text-opacity)))}.group[data-selected=true] .group-data-\[selected\=true\]\:text-warning-foreground{--tw-text-opacity:1;color:hsl(var(--morui-warning-foreground)/var(--morui-warning-foreground-opacity,var(--tw-text-opacity)))}.group[data-selected=true] .group-data-\[selected\=true\]\:opacity-60{opacity:.6}.group[data-focus-visible=true] .group-data-\[focus-visible\=true\]\:ring-2{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.group[data-open=true] .group-data-\[open\=true\]\:before\:translate-y-px:before{--tw-translate-y:1px}.group[aria-selected=false][data-hover=true] .group-aria-\[selected\=false\]\:group-data-\[hover\=true\]\:before\:bg-default-100:before,.group[data-hover=true] .group-data-\[hover\=true\]\:before\:bg-default-100:before,.group[data-odd=true] .group-data-\[odd\=true\]\:before\:bg-default-100:before{--tw-bg-opacity:1;background-color:hsl(var(--morui-default-100)/var(--morui-default-100-opacity,var(--tw-bg-opacity)));content:var(--tw-content)}.group[data-open=true] .group-data-\[open\=true\]\:after\:translate-y-0:after{--tw-translate-y:0px}.group[data-open=true] .group-data-\[open\=true\]\:after\:-rotate-45:after{--tw-rotate:-45deg}.group[data-selected=true] .group-data-\[selected\=true\]\:after\:scale-100:after{--tw-scale-x:1;--tw-scale-y:1;content:var(--tw-content);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-first=true] .group-data-\[first\=true\]\:first\:before\:rounded-tl-lg:first-child:before{border-top-left-radius:.5rem;content:var(--tw-content)}.group[data-last=true] .group-data-\[last\=true\]\:first\:before\:rounded-bl-lg:first-child:before{border-bottom-left-radius:.5rem;content:var(--tw-content)}.group[data-first=true] .group-data-\[first\=true\]\:last\:before\:rounded-tr-lg:last-child:before{border-top-right-radius:.5rem;content:var(--tw-content)}.group[data-last=true] .group-data-\[last\=true\]\:last\:before\:rounded-br-lg:last-child:before{border-bottom-right-radius:.5rem;content:var(--tw-content)}.group[aria-selected=false][data-hover=true] .group-aria-\[selected\=false\]\:group-data-\[hover\=true\]\:before\:opacity-70:before{content:var(--tw-content);opacity:.7}.dark\:bg-background\/20:is([data-theme=dark] *){background-color:hsl(var(--morui-background)/.2)}.dark\:bg-content2:is([data-theme=dark] *){--tw-bg-opacity:1;background-color:hsl(var(--morui-content2)/var(--morui-content2-opacity,var(--tw-bg-opacity)))}.dark\:bg-default:is([data-theme=dark] *){--tw-bg-opacity:1;background-color:hsl(var(--morui-default)/var(--morui-default-opacity,var(--tw-bg-opacity)))}.dark\:bg-transparent:is([data-theme=dark] *){background-color:initial}.dark\:text-danger-500:is([data-theme=dark] *){--tw-text-opacity:1;color:hsl(var(--morui-danger-500)/var(--morui-danger-500-opacity,var(--tw-text-opacity)))}.dark\:text-success:is([data-theme=dark] *){--tw-text-opacity:1;color:hsl(var(--morui-success)/var(--morui-success-opacity,var(--tw-text-opacity)))}.dark\:text-warning:is([data-theme=dark] *){--tw-text-opacity:1;color:hsl(var(--morui-warning)/var(--morui-warning-opacity,var(--tw-text-opacity)))}.dark\:placeholder\:text-danger-500:is([data-theme=dark] *)::placeholder{--tw-text-opacity:1;color:hsl(var(--morui-danger-500)/var(--morui-danger-500-opacity,var(--tw-text-opacity)))}.dark\:placeholder\:text-success:is([data-theme=dark] *)::placeholder{--tw-text-opacity:1;color:hsl(var(--morui-success)/var(--morui-success-opacity,var(--tw-text-opacity)))}.dark\:placeholder\:text-warning:is([data-theme=dark] *)::placeholder{--tw-text-opacity:1;color:hsl(var(--morui-warning)/var(--morui-warning-opacity,var(--tw-text-opacity)))}.dark\:before\:via-default-700\/10:is([data-theme=dark] *):before{--tw-gradient-to:hsl(var(--morui-default-700)/0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),hsl(var(--morui-default-700)/0.1) var(--tw-gradient-via-position),var(--tw-gradient-to);content:var(--tw-content)}.dark\:after\:bg-content2:is([data-theme=dark] *):after{content:var(--tw-content)}.dark\:after\:bg-content2:is([data-theme=dark] *):after,.dark\:data-\[hover\=true\]\:bg-content2[data-hover=true]:is([data-theme=dark] *){--tw-bg-opacity:1;background-color:hsl(var(--morui-content2)/var(--morui-content2-opacity,var(--tw-bg-opacity)))}.dark\:data-\[selected\=true\]\:text-danger-500[data-selected=true]:is([data-theme=dark] *){--tw-text-opacity:1;color:hsl(var(--morui-danger-500)/var(--morui-danger-500-opacity,var(--tw-text-opacity)))}.dark\:data-\[selected\=true\]\:text-success[data-selected=true]:is([data-theme=dark] *){--tw-text-opacity:1;color:hsl(var(--morui-success)/var(--morui-success-opacity,var(--tw-text-opacity)))}.dark\:data-\[selected\=true\]\:text-warning[data-selected=true]:is([data-theme=dark] *){--tw-text-opacity:1;color:hsl(var(--morui-warning)/var(--morui-warning-opacity,var(--tw-text-opacity)))}.rtl\:-rotate-180:where([dir=rtl],[dir=rtl] *){--tw-rotate:-180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rtl\:data-\[open\=true\]\:-rotate-90[data-open=true]:where([dir=rtl],[dir=rtl] *){--tw-rotate:-90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\+\.border-medium\.border-danger\]\:ms-\[calc\(theme\(borderWidth\.medium\)\*-1\)\]+.border-medium.border-danger,.\[\&\+\.border-medium\.border-default\]\:ms-\[calc\(theme\(borderWidth\.medium\)\*-1\)\]+.border-medium.border-default,.\[\&\+\.border-medium\.border-primary\]\:ms-\[calc\(theme\(borderWidth\.medium\)\*-1\)\]+.border-medium.border-primary,.\[\&\+\.border-medium\.border-secondary\]\:ms-\[calc\(theme\(borderWidth\.medium\)\*-1\)\]+.border-medium.border-secondary,.\[\&\+\.border-medium\.border-success\]\:ms-\[calc\(theme\(borderWidth\.medium\)\*-1\)\]+.border-medium.border-success,.\[\&\+\.border-medium\.border-warning\]\:ms-\[calc\(theme\(borderWidth\.medium\)\*-1\)\]+.border-medium.border-warning{margin-inline-start:calc(var(--morui-border-width-medium)*-1)}.\[\&\:not\(\:first-of-type\)\]\:ml-\[calc\(theme\(borderWidth\.2\)\*-1\)\]:not(:first-of-type){margin-left:-2px}.\[\&\>svg\]\:max-w-\[theme\(spacing\.unit-8\)\]>svg{max-width:var(--morui-spacing-unit-8)}.\[\&\>tr\]\:first\:rounded-lg:first-child>tr{border-radius:.5rem}.iconEdit_hqvt{margin-right:.3em;vertical-align:sub}.tag_G9wi{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_G9wi:hover{--docusaurus-tag-list-border:var(--ifm-link-color);text-decoration:none}.tagRegular_ZX_1{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_xGB6{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_xGB6:after,.tagWithCount_xGB6:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_xGB6:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_xGB6:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_xGB6 span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.tags_NPqp{display:inline}.tag_WyCo{display:inline-block;margin:0 .4rem .5rem 0}.lastUpdated_rVBC{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_fvqu{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.DocSearch-Button,.DocSearch-Button-Container{align-items:center;display:flex}.tocCollapsibleButton_fvqu:after{background:var(--ifm-menu-link-sublist-icon) 50% 50%/2rem 2rem no-repeat;content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleButtonExpanded_gSY7:after,.tocCollapsibleExpanded_Kmy0{transform:none}.tocCollapsible_HBdG{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_ZtRw>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_ZtRw ul li{margin:.4rem .8rem}.tableOfContents_Kj3J{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.backToTopButton_N9Ya{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.backToTopButton_N9Ya:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_Rn7A{opacity:1;transform:scale(1);visibility:visible}.DocSearch-Button{background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;font-weight:500;height:36px;justify-content:space-between;padding:0 8px;-webkit-user-select:none;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:0}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Hit-Tree,.DocSearch-Hit-action,.DocSearch-Hit-icon,.DocSearch-Reset{stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border:0;border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 2px;position:relative;top:-1px;width:20px}.DocSearch-Button-Key--pressed{box-shadow:var(--docsearch-key-pressed-shadow);transform:translate3d(0,1px,0)}.DocSearch--active{overflow:hidden!important}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Container a{text-decoration:none}.DocSearch-Hit[aria-selected=true] mark,.content_ILws a{text-decoration:underline}.DocSearch-Link{appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;font:inherit;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{appearance:none;background:#0000;border:0;color:var(--docsearch-text-color);flex:1;font:inherit;font-size:1.2em;height:100%;outline:0;padding:0 0 0 8px;width:80%}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Cancel,.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator,.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset{animation:.1s ease-in forwards e;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;padding:2px;right:0}.DocSearch-Help,.DocSearch-HitsFooter,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:#0000}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help{font-size:.9em;margin:0;-webkit-user-select:none;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}.DocSearch-Hit--deleting{opacity:0;transition:.25s linear}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:.25s linear .25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{appearance:none;background:none;border:0;border-radius:50%;color:inherit;cursor:pointer;padding:2px}#__docusaurus-base-url-issue-banner-container,.docSidebarContainer_xQ5m,.sidebarLogo_yFma,.themedComponent_WQJe,[data-theme=dark] .lightToggleIcon_YVKM,[data-theme=light] .darkToggleIcon_a49f,html[data-announcement-bar-initially-dismissed=true] .announcementBar_yOjN,svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:background-color .1s ease-in}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:0;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;-webkit-user-select:none;user-select:none;width:100%;z-index:300}.DocSearch-Commands li,.DocSearch-Commands-Key{align-items:center;display:flex}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{background:var(--docsearch-key-gradient);border:0;border-radius:2px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;width:20px}.DocSearch-VisuallyHiddenForAccessibility{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}@keyframes e{0%{opacity:0}to{opacity:1}}.DocSearch-Button{margin:0;transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.DocSearch-Container,.skipToContent_E3EM{z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_E3EM{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem}.skipToContent_E3EM:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_SYkQ{line-height:0;padding:0}.content_ILws{font-size:85%;padding:5px 0;text-align:center}.content_ILws a{color:inherit}.announcementBar_yOjN{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}.announcementBarPlaceholder_ZPOO{flex:0 0 10px}.announcementBarClose_laiP{align-self:stretch;flex:0 0 30px}.toggle_Lphv{height:2rem;width:2rem}.toggleButton_C4u_{align-items:center;border-radius:50%;display:flex;height:100%;justify-content:center;transition:background var(--ifm-transition-fast);width:100%}.toggleButton_C4u_:hover{background:var(--ifm-color-emphasis-200)}.darkNavbarColorModeToggle_pSsd:hover{background:var(--ifm-color-gray-800)}[data-theme=dark] .themedComponent--dark_tNlc,[data-theme=light] .themedComponent--light_vC8m,html:not([data-theme]) .themedComponent--light_vC8m{display:initial}[data-theme=dark]:root{--docusaurus-collapse-button-bg:#ffffff0d;--docusaurus-collapse-button-bg-hover:#ffffff1a}.collapseSidebarButton_ZpCQ{display:none;margin:0}.iconExternalLink_uMR8{margin-left:.3rem}.docMainContainer_qBbz,.docRoot_kbrQ{display:flex;width:100%}.docsWrapper_o7i8{display:flex;flex:1 0 auto}.iconLanguage_ZSsF{margin-right:5px;vertical-align:text-bottom}@supports selector(:has(*)){.navbarSearchContainer_Aukl:not(:has(>*)){display:none}}.navbarHideable_gQho{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_zxOU{transform:translate3d(0,calc(-100% - 2px),0)}.errorBoundaryError_QHYE{color:red;white-space:pre-wrap}.errorBoundaryFallback_uBmD{color:red;padding:.55rem}.buttonGroup_QYpy button,.codeBlockContainer_jasU{background:var(--prism-background-color);color:var(--prism-color)}.footerLogoLink_DDai{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}.anchorWithStickyNavbar_AZ4C{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_FXx6{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none}.hash-link:before{content:"#"}.mainWrapper_avmg{display:flex;flex:1 0 auto;flex-direction:column}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column}.codeBlockContainer_jasU{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlockContent_TEEh{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_e8pP{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlock_Bkgn{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockTitle_e8pP+.codeBlockContent_TEEh .codeBlock_Bkgn{border-top-left-radius:0;border-top-right-radius:0}.codeBlockLines_lDP1{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_y7ta{display:table;padding:var(--ifm-pre-padding) 0}.buttonGroup_QYpy{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup_QYpy button{align-items:center;border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;line-height:0;opacity:0;padding:.4rem;transition:opacity var(--ifm-transition-fast) ease-in-out}.buttonGroup_QYpy button:focus-visible,.buttonGroup_QYpy button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup_QYpy button{opacity:.4}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_qib8{counter-increment:a;display:table-row}.codeLineNumber_dbgI{background:var(--ifm-pre-background);display:table-cell;left:0;overflow-wrap:normal;padding:0 var(--ifm-pre-padding);position:sticky;text-align:right;width:1%}.codeLineNumber_dbgI:before{content:counter(a);opacity:.4}.codeLineContent_h2yX{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_yinF{opacity:1!important}.copyButtonIcons_SHCV{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_rwkz,.copyButtonSuccessIcon_B2xf{fill:currentColor;height:inherit;left:0;opacity:inherit;position:absolute;top:0;transition:all var(--ifm-transition-fast) ease;width:inherit}.copyButtonSuccessIcon_B2xf{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_yinF .copyButtonIcon_rwkz{opacity:0;transform:scale(.33)}.copyButtonCopied_yinF .copyButtonSuccessIcon_B2xf{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.wordWrapButtonIcon_KMHO{height:1.2rem;width:1.2rem}.details_NQJP{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_NQJP>summary{cursor:pointer;list-style:none;padding-left:1rem;position:relative}.details_NQJP>summary::-webkit-details-marker{display:none}.details_NQJP>summary:before{border-color:#0000 #0000 #0000 var(--docusaurus-details-decoration-color);border-style:solid;border-width:var(--docusaurus-details-summary-arrow-size);content:"";left:0;position:absolute;top:.45rem;transform:rotate(0);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;transition:var(--docusaurus-details-transition)}.collapsibleContent_MmFW{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.details_v4Yj{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast) ease;border:1px solid var(--ifm-alert-border-color);margin:0 0 var(--ifm-spacing-vertical)}.containsTaskList_j67I{list-style:none}.admonition_qJAF{margin-bottom:1em}.admonitionHeading_WmUu{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family)}.admonitionHeading_WmUu:not(:last-child){margin-bottom:.3rem}.admonitionHeading_WmUu code{text-transform:none}.admonitionIcon_FLlS{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_FLlS svg{fill:var(--ifm-alert-foreground-color);display:inline-block;height:1.6em;width:1.6em}.breadcrumbHomeIcon_eIF0{height:1.1rem;position:relative;top:1px;vertical-align:top;width:1.1rem}.breadcrumbsContainer_y6NL{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}.searchQueryInput_lgCf,.searchVersionInput_hZMv{background:var(--docsearch-searchbox-focus-background);border:2px solid var(--ifm-toc-border-color);border-radius:var(--ifm-global-radius);color:var(--docsearch-text-color);font:var(--ifm-font-size-base) var(--ifm-font-family-base);margin-bottom:.5rem;padding:.8rem;transition:border var(--ifm-transition-fast) ease;width:100%}.searchQueryInput_lgCf:focus,.searchVersionInput_hZMv:focus{border-color:var(--docsearch-primary-color);outline:0}.searchQueryInput_lgCf::placeholder{color:var(--docsearch-muted-color)}.searchResultsColumn_usTD{font-size:.9rem;font-weight:700}.algoliaLogo_nSr9{max-width:150px}.algoliaLogoPathFill_bweY{fill:var(--ifm-font-color-base)}.searchResultItem_kiiJ{border-bottom:1px solid var(--ifm-toc-border-color);padding:1rem 0}.searchResultItemHeading_P9ix{font-weight:400;margin-bottom:0}.searchResultItemPath_QjmW{--ifm-breadcrumb-separator-size-multiplier:1;color:var(--ifm-color-content-secondary);font-size:.8rem}.searchResultItemSummary_rb6a{font-style:italic;margin:.5rem 0 0}.loadingSpinner_I7f_{animation:1s linear infinite f;border:.4em solid #eee;border-radius:50%;border-top:.4em solid var(--ifm-color-primary);height:3rem;margin:0 auto;width:3rem}@keyframes f{to{transform:rotate(1turn)}}.loader_lcxn{margin-top:2rem}.search-result-match{background:#ffd78e40;color:var(--docsearch-hit-color);padding:.09em 0}@media (min-width:375px){.header-bg{height:115px}}@media (min-width:425px){.header-bg{height:130px}}@media (min-width:640px){.sm\:mx-0{margin-left:0;margin-right:0}.sm\:mx-6{margin-left:1.5rem;margin-right:1.5rem}.sm\:my-0{margin-bottom:0;margin-top:0}.sm\:my-16{margin-bottom:4rem;margin-top:4rem}.sm\:items-start{align-items:flex-start}.sm\:items-end{align-items:flex-end}.sm\:items-center{align-items:center}.sm\:\[--scale-enter\:100\%\]{--scale-enter:100%}.sm\:\[--scale-exit\:103\%\]{--scale-exit:103%}.sm\:\[--slide-enter\:0px\]{--slide-enter:0px}.sm\:\[--slide-exit\:0px\]{--slide-exit:0px}.sm\:data-\[visible\=true\]\:opacity-0[data-visible=true]{opacity:0}.group[data-hover=true] .sm\:group-data-\[hover\=true\]\:data-\[visible\=true\]\:opacity-100[data-visible=true]{opacity:1}}@media (min-width:768px){.header-bg{height:235px}.md\:order-1{order:1}.md\:h-\[780px\]{height:780px}.md\:w-\[128px\]{width:128px}.md\:w-\[284px\]{width:284px}.md\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.md\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.md\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.md\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.md\:grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:px-0{padding-left:0;padding-right:0}.md\:py-10{padding-bottom:2.5rem;padding-top:2.5rem}.md\:pt-\[100px\]{padding-top:100px}.md\:text-\[84px\]{font-size:84px}.md\:text-\[85px\]{font-size:85px}.md\:text-tiny{font-size:var(--morui-font-size-tiny);line-height:var(--morui-line-height-tiny)}.md\:\!font-semibold{font-weight:600!important}.md\:leading-\[84px\]{line-height:84px}.md\:leading-\[85px\]{line-height:85px}}@media (min-width:997px){.collapseSidebarButton_ZpCQ,.expandButton_E2R3{background-color:var(--docusaurus-collapse-button-bg)}.lastUpdated_rVBC{text-align:right}.tocMobile_z_cF{display:none}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_laiP,.announcementBarPlaceholder_ZPOO{flex-basis:50px}.collapseSidebarButton_ZpCQ{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:sticky}.collapseSidebarButtonIcon_RA6k{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon_XpyI,[dir=rtl] .collapseSidebarButtonIcon_RA6k{transform:rotate(0)}.collapseSidebarButton_ZpCQ:focus,.collapseSidebarButton_ZpCQ:hover,.expandButton_E2R3:focus,.expandButton_E2R3:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.menuHtmlItem_SHKz{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_bObF{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_bObF{padding:.5rem 0 .5rem .5rem;scrollbar-gutter:stable}}.menuWithAnnouncementBar_LUaF{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_qjHj{display:flex;flex-direction:column;height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_v_84{padding-top:0}.sidebarHidden_fzvn{opacity:0;visibility:hidden}.sidebarLogo_yFma{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);text-decoration:none!important}.sidebarLogo_yFma img{height:2rem;margin-right:.5rem}.expandButton_E2R3{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;right:0;top:0;transition:background-color var(--ifm-transition-fast) ease;width:100%}[dir=rtl] .expandButtonIcon_XpyI{transform:rotate(180deg)}.docSidebarContainer_xQ5m{border-right:1px solid var(--ifm-toc-border-color);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_YfRI{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.sidebarViewport_mqWZ{height:100%;max-height:100vh;position:sticky;top:0}.docMainContainer_qBbz{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_M1IX{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_HmM2{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}.navbarSearchContainer_Aukl{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.docItemCol_dvZ9{max-width:75%!important}}@media (min-width:1080px){.header-bg{height:330px}}@media (min-width:1280px){.xl\:absolute{position:absolute}.xl\:bottom-14{bottom:3.5rem}.xl\:bottom-8{bottom:2rem}.xl\:mt-0{margin-top:0}.xl\:flex{display:flex}.xl\:w-\[280px\]{width:280px}.xl\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.xl\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.xl\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.xl\:grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.xl\:flex-row{flex-direction:row}.xl\:pb-0{padding-bottom:0}.xl\:text-\[140px\]{font-size:140px}.xl\:leading-\[100px\]{line-height:100px}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}.header-bg{height:440px}}@media (min-width:1920px){.header-bg{height:440px}}@media (min-width:2560px){.header-bg{height:440px}}@media (max-width:996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.colorModeToggle_rXT6,.footer__link-separator,.navbar__item,.tableOfContents_Kj3J{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.features_src-components-HomepageFeatures-styles-module .col{--ifm-col-width:50%!important}.docItemContainer_rccO{padding:0 .3rem}.navbarSearchContainer_Aukl{position:absolute;right:var(--ifm-navbar-padding-horizontal)}}@media only screen and (max-width:996px){.searchQueryColumn_yPeD,.searchResultsColumn_usTD{max-width:60%!important}.searchLogoColumn_w6QH,.searchVersionColumn_nHlp{max-width:40%!important}.searchLogoColumn_w6QH{padding-left:0!important}}@media screen and (max-width:996px){.navbar__logo{align-items:center;display:flex}.navbar__logo img{width:70%}}@media (max-width:768px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder,.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%;max-height:calc(var(--docsearch-vh,1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh,1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh,1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Cancel{appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:0;overflow:hidden;padding:0;-webkit-user-select:none;user-select:none;white-space:nowrap}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}}@media screen and (max-width:576px){.searchQueryColumn_yPeD{max-width:100%!important}.searchVersionColumn_nHlp{max-width:100%!important;padding-left:var(--ifm-spacing-horizontal)!important}}@media (max-width:426px){.col{--ifm-col-width:100%!important}}@media (hover:hover){.backToTopButton_N9Ya:hover{background-color:var(--ifm-color-emphasis-300)}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0ms;--ifm-transition-slow:0ms}.motion-reduce\:transition-none{transition-property:none}.motion-reduce\:after\:transition-none:after{content:var(--tw-content);transition-property:none}}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{stroke-width:var(--docsearch-icon-stroke-width);animation:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0}.DocSearch-Hit--deleting,.DocSearch-Hit--favoriting{transition:none}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:none}}@media print{.announcementBar_yOjN,.footer,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_z_cF{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_lDP1{white-space:pre-wrap}} \ No newline at end of file diff --git a/build/assets/css/styles.81ba172c.css b/build/assets/css/styles.81ba172c.css deleted file mode 100644 index ee6f43f36..000000000 --- a/build/assets/css/styles.81ba172c.css +++ /dev/null @@ -1 +0,0 @@ -.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown li,body{word-wrap:break-word}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.avatar__photo,.card,.text--truncate{overflow:hidden}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.menu,.navbar-sidebar{overflow-x:hidden}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}.button,.dropdown__link,.sr-only,.text--truncate,.truncate{white-space:nowrap}.ring-background,.ring-danger,.ring-default,.ring-primary,.ring-secondary,.ring-success,.ring-warning{--tw-ring-opacity:1}*,.DocSearch-Container,.DocSearch-Container *,.box-border{box-sizing:border-box}.text--truncate,.text-ellipsis,.truncate{text-overflow:ellipsis}.tap-highlight-transparent,.toggleButton_NdO2,html{-webkit-tap-highlight-color:transparent}:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:#0000;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:#0000000d;--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 #0000001a;--ifm-global-shadow-md:0 5px 40px #0003;--ifm-global-shadow-tl:0 12px 28px 0 #0003,0 2px 4px 0 #0000001a;--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:#0000;--ifm-table-stripe-background:#00000008;--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--docusaurus-progress-bar-color:var(--ifm-color-primary);--docusaurus-tag-list-border:var(--ifm-color-emphasis-300);--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:#656c85cc;--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 #ffffff80,0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px #1e235a66;--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 #45629b1f;--docsearch-primary-color:var(--ifm-color-primary);--docsearch-text-color:var(--ifm-font-color-base);--docusaurus-announcement-bar-height:auto;--docusaurus-collapse-button-bg:#0000;--docusaurus-collapse-button-bg-hover:#0000001a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:#0000}html{-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base);text-rendering:optimizelegibility}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width);padding:0 var(--ifm-spacing-horizontal);width:100%}.container--fluid{max-width:inherit}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none{margin-top:0!important}.mx-0,.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-right--none{margin-right:0!important}.px-0,.row--no-gutters>.col{padding-left:0;padding-right:0}.data-\[has-helper\=true\]\:items-start[data-has-helper=true],.group[data-has-label=true] .group-data-\[has-label\=true\]\:items-start,.items-start,.row--align-top{align-items:flex-start}.group[data-has-label=true] .group-data-\[has-label\=true\]\:items-end,.items-end,.row--align-bottom{align-items:flex-end}.items-center,.menuExternalLink_JiRe,.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;flex:1 0;margin-left:0;max-width:var(--ifm-col-width);padding:0 var(--ifm-spacing-horizontal);width:100%}.\!pb-0,.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:8.33333%}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:16.66667%}.col--offset-2{margin-left:16.66667%}.col--3{--ifm-col-width:25%}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:33.33333%}.col--offset-4{margin-left:33.33333%}.col--5{--ifm-col-width:41.66667%}.col--offset-5{margin-left:41.66667%}.col--6{--ifm-col-width:50%}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:58.33333%}.col--offset-7{margin-left:58.33333%}.col--8{--ifm-col-width:66.66667%}.col--offset-8{margin-left:66.66667%}.col--9{--ifm-col-width:75%}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:83.33333%}.col--offset-10{margin-left:83.33333%}.col--11{--ifm-col-width:91.66667%}.col--offset-11{margin-left:91.66667%}.col--12{--ifm-col-width:100%}.col--offset-12{margin-left:100%}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.\!px-1,.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.\!px-1,.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid #0000001a;border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:initial;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}.max-w-full,img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul{margin-bottom:var(--ifm-leading)}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical)}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width) solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);border:0;height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary,.wordWrapButtonEnabled_WfUF .wordWrapButtonIcon_lc89{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.admonitionHeading_hlA6,.alert__heading,.text--uppercase,.uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.clean-list{list-style:none;padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:#3578e526;--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:#ebedf026;--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:#00a40026;--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:#54c7ec26;--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:#ffba0026;--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:#fa383e26;--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);width:var(--ifm-avatar-photo-size)}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after,.inline-block{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:any-link:hover,.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;-webkit-user-select:none;user-select:none}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:#0000;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex;gap:var(--ifm-button-group-spacing)}.button-group>.button:not(:first-child),.last-of-type\:rounded-l-none:last-of-type{border-bottom-left-radius:0;border-top-left-radius:0}.button-group>.button:not(:last-child),.first-of-type\:rounded-r-none:first-of-type{border-bottom-right-radius:0;border-top-right-radius:0}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button,.data-\[justify\=end\]\:flex-grow[data-justify=end],.data-\[justify\=start\]\:flex-grow[data-justify=start],.flex-grow{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column}.card--full-height,.h-full,body,html{height:100%}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child,.pt-0{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child),.pb-0{padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.aria-expanded\:opacity-70[aria-expanded=true],.close:hover,.data-\[pressed\=true\]\:opacity-70[data-pressed=true],.group[data-pressed=true] .group-data-\[pressed\=true\]\:opacity-70,.opacity-70,.peer[data-filled=true]~.peer-data-\[filled\=true\]\:opacity-70{opacity:.7}.close:focus,.hover\:opacity-80:hover,.theme-code-block-highlighted-line .codeLineNumber_CBFI:before{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}#nprogress,.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true],.dropdown__menu,.navbar__item.dropdown .navbar__link:not([href]),.pointer-events-none{pointer-events:none}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;list-style:none;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor #0000;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:var(--ifm-footer-logo-max-width)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.docItemContainer_r_Gx article>:first-child,.docItemContainer_r_Gx header+*,.footer__item,.mt-0{margin-top:0}.admonitionContent_IvJ0>:last-child,.collapsibleContent_tCQ3 p:last-child,.details_b_me>summary>p:last-child,.footer__items{margin-bottom:0}.codeBlockStandalone_xjYg,[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{list-style:none;margin:0;padding-left:0}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child),.mt-1{margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.details_b_me[data-collapsed=false].isBrowser_FX0N>summary:before,.details_b_me[open]:not(.isBrowser_FX0N)>summary:before,.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.navbar-sidebar,.navbar-sidebar__backdrop{opacity:0;top:0;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;visibility:hidden;bottom:0;left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__link:hover{color:var(--ifm-menu-color);text-decoration:none}.menu__caret:before,.menu__link--sublist-caret:after{content:"";transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;filter:var(--ifm-menu-link-sublist-icon-filter)}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:13px}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.data-\[open\=true\]\:flex[data-open=true],.flex,.footer__links,.group[data-has-helper=true] .group-data-\[has-helper\=true\]\:flex,.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.announcementBarContent_WoJ0,.flex-auto,.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;height:2rem;margin-right:.5rem}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.m-0,.navbar__items--center .navbar__brand{margin:0}.footer__col:nth-child(3),.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__items--right>:last-child,.pr-0{padding-right:0}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:#ffffff1a;--ifm-navbar-search-input-placeholder-color:#ffffff80;color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:#ffffff0d;--ifm-navbar-search-input-color:var(--ifm-color-white)}[data-theme=dark],[data-theme=light]{--ifm-color-primary:#14a800;--ifm-color-primary-dark:#3fff90;--ifm-color-primary-darker:#2dff85;--ifm-color-primary-darkest:#00f768;--ifm-color-primary-light:#85ffb8;--ifm-color-primary-lighter:#97ffc3;--ifm-color-primary-lightest:#ccffe1;--ifm-menu-color-background-active:#14a800;--ifm-menu-color-background-hover:#14a800;--ifm-navbar-link-color:#fff;--ifm-footer-color:#999}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{-webkit-appearance:none;appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:.9rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);position:fixed;transform:translate3d(-100%,0,0);transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:#0009;position:fixed;right:0;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.\[\&\>tr\]\:first\:shadow-small:first-child>tr,.shadow,.shadow-\[0_1px_0px_0_rgba\(0\2c 0\2c 0\2c 0\.05\)\],.shadow-large,.shadow-lg,.shadow-md,.shadow-medium,.shadow-none,.shadow-sm,.shadow-small{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;text-align:left;top:-.5rem;width:calc(100% + 1rem)}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.inline-flex,.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination__link:hover{text-decoration:none}.pagination-nav{grid-gap:var(--ifm-spacing-horizontal);display:grid;gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);text-decoration:none}.pagination-nav__link--next{grid-column:2/3;text-align:right}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pills__item--active{color:var(--ifm-pills-color-active)}.pills__item--active,.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto;padding-left:0}.tabs__item{border-bottom:3px solid #0000;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:#ffffff0d;--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:#ffffff1a;--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:#ffffff12;--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec;--docsearch-text-color:#f5f6f7;--docsearch-container-background:#090a11cc;--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 #0304094d;--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 #494c6a80,0 -4px 8px 0 #0003;--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}@font-face{font-display:swap;font-family:Inter Variable;font-style:normal;font-weight:100 900;src:url(/assets/fonts/InterVariable-a0e477f2f1f9d2376fde931ee7c6241a.woff2) format("woff2")}@font-face{font-display:swap;font-family:Inter Variable;font-style:italic;font-weight:100 900;src:url(/assets/fonts/InterVariable-Italic-e295f70fe3e2df296c7bd1082d39afda.woff2) format("woff2")}@font-face{font-display:swap;font-family:InterDisplay;font-style:normal;font-weight:100;src:url(/assets/fonts/InterDisplay-Thin-8869ea180347c0b3e105f1f25d8159c1.woff2) format("woff2")}@font-face{font-display:swap;font-family:InterDisplay;font-style:italic;font-weight:100;src:url(/assets/fonts/InterDisplay-ThinItalic-84afcd2c98f66e503a057888753b75a0.woff2) format("woff2")}@font-face{font-display:swap;font-family:InterDisplay;font-style:normal;font-weight:200;src:url(/assets/fonts/InterDisplay-ExtraLight-8aac419550652c70acce102a1405b9e6.woff2) format("woff2")}@font-face{font-display:swap;font-family:InterDisplay;font-style:italic;font-weight:200;src:url(/assets/fonts/InterDisplay-ExtraLightItalic-3d35f6363cf46c94cb5d50618f66586b.woff2) format("woff2")}@font-face{font-display:swap;font-family:InterDisplay;font-style:normal;font-weight:300;src:url(/assets/fonts/InterDisplay-Light-878eccfa0e5c8240899d9a9588d25926.woff2) format("woff2")}@font-face{font-display:swap;font-family:InterDisplay;font-style:italic;font-weight:300;src:url(/assets/fonts/InterDisplay-LightItalic-af1c0bdb835afad15237ca3659b2c345.woff2) format("woff2")}@font-face{font-display:swap;font-family:InterDisplay;font-style:normal;font-weight:400;src:url(/assets/fonts/InterDisplay-Regular-a4074fefb60f137f7974a3f2cadf655c.woff2) format("woff2")}@font-face{font-display:swap;font-family:InterDisplay;font-style:italic;font-weight:400;src:url(/assets/fonts/InterDisplay-Italic-c0dffe244faaf5bb8fbef1517f2c89a3.woff2) format("woff2")}@font-face{font-display:swap;font-family:InterDisplay;font-style:normal;font-weight:500;src:url(/assets/fonts/InterDisplay-Medium-6e976150c457a5edc1f31e3c6affe0c5.woff2) format("woff2")}@font-face{font-display:swap;font-family:InterDisplay;font-style:italic;font-weight:500;src:url(/assets/fonts/InterDisplay-MediumItalic-361044e3f1781339740b739848dd02f0.woff2) format("woff2")}@font-face{font-display:swap;font-family:InterDisplay;font-style:normal;font-weight:600;src:url(/assets/fonts/InterDisplay-SemiBold-54b6be6a7edc5b3cbdd615e2c9a54b8b.woff2) format("woff2")}@font-face{font-display:swap;font-family:InterDisplay;font-style:italic;font-weight:600;src:url(/assets/fonts/InterDisplay-SemiBoldItalic-4f03584a088f6fd339102161c36bd5b8.woff2) format("woff2")}@font-face{font-display:swap;font-family:InterDisplay;font-style:normal;font-weight:700;src:url(/assets/fonts/InterDisplay-Bold-f5ec5e21f616f430d4ba27e814d9eeb6.woff2) format("woff2")}@font-face{font-display:swap;font-family:InterDisplay;font-style:italic;font-weight:700;src:url(/assets/fonts/InterDisplay-BoldItalic-439cef167a628cb218568c7bd4d6f0ac.woff2) format("woff2")}@font-face{font-display:swap;font-family:InterDisplay;font-style:normal;font-weight:800;src:url(/assets/fonts/InterDisplay-ExtraBold-89518fa4ab7bacdb30e6bb414678e283.woff2) format("woff2")}@font-face{font-display:swap;font-family:InterDisplay;font-style:italic;font-weight:800;src:url(/assets/fonts/InterDisplay-ExtraBoldItalic-4dcb197ef83d3558dbdcc3e8e25b568f.woff2) format("woff2")}@font-face{font-display:swap;font-family:InterDisplay;font-style:normal;font-weight:900;src:url(/assets/fonts/InterDisplay-Black-fb55d5da48c7bee4d80af9ec6cd28e3f.woff2) format("woff2")}@font-face{font-display:swap;font-family:InterDisplay;font-style:italic;font-weight:900;src:url(/assets/fonts/InterDisplay-BlackItalic-bd4243b6c8594236ba8562208aa8e267.woff2) format("woff2")}:root,[data-theme]{background-color:hsl(var(--morui-background));color:hsl(var(--morui-foreground))}*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.visible{visibility:visible}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.\[\&\>\*\]\:relative>*,.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{left:0;right:0}.bottom-0{bottom:0}.bottom-8{bottom:2rem}.bottom-\[10\%\]{bottom:10%}.bottom-\[5\%\]{bottom:5%}.group[data-filled-within=true] .group-data-\[filled-within\=true\]\:left-0,.group[data-filled=true] .group-data-\[filled\=true\]\:left-0,.left-0{left:0}.left-1{left:.25rem}.left-1\.5{left:.375rem}.left-1\/2{left:50%}.left-2{left:.5rem}.left-3{left:.75rem}.left-\[10\%\]{left:10%}.left-\[5\%\]{left:5%}.right-1{right:.25rem}.right-1\.5{right:.375rem}.right-3{right:.75rem}.right-\[10\%\]{right:10%}.right-\[30\%\]{right:30%}.right-\[5\%\]{right:5%}.top-0{top:0}.top-1{top:.25rem}.top-1\/2{top:50%}.top-\[10\%\]{top:10%}.top-\[5\%\]{top:5%}.top-\[6px\]{top:6px}.top-\[var\(--navbar-height\)\]{top:var(--navbar-height)}.-z-0,.z-0{z-index:0}.-z-30{z-index:-30}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.order-1{order:1}.order-2{order:2}.order-3{order:3}.-m-2{margin:-.5rem}.-m-2\.5{margin:-.625rem}.mx-1,.mx-\[calc\(\(theme\(spacing\.7\)-theme\(spacing\.5\)\)\/2\)\]{margin-left:.25rem;margin-right:.25rem}.mx-\[calc\(\(theme\(spacing\.5\)-theme\(spacing\.1\)\)\/2\)\]{margin-left:.5rem;margin-right:.5rem}.mx-\[calc\(\(theme\(spacing\.6\)-theme\(spacing\.3\)\)\/2\)\]{margin-left:.375rem;margin-right:.375rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0{margin-bottom:0;margin-top:0}.my-1,.my-\[calc\(\(theme\(spacing\.7\)-theme\(spacing\.5\)\)\/2\)\]{margin-bottom:.25rem;margin-top:.25rem}.my-16{margin-bottom:4rem;margin-top:4rem}.my-\[calc\(\(theme\(spacing\.5\)-theme\(spacing\.1\)\)\/2\)\]{margin-bottom:.5rem;margin-top:.5rem}.my-\[calc\(\(theme\(spacing\.6\)-theme\(spacing\.3\)\)\/2\)\]{margin-bottom:.375rem;margin-top:.375rem}.-mr-2{margin-right:-.5rem}.-ms-2{margin-inline-start:-.5rem}.-mt-1{margin-top:-.25rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-5{margin-bottom:1.25rem}.mb-px{margin-bottom:1px}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.group[data-selected][data-pressed] .group-data-\[selected\]\:group-data-\[pressed\]\:ml-3,.ml-3{margin-left:.75rem}.mr-2{margin-right:.5rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-6{margin-top:1.5rem}.mt-\[133px\]{margin-top:133px}.mt-\[9px\]{margin-top:9px}.line-clamp-1{-webkit-box-orient:vertical;-webkit-line-clamp:1;display:-webkit-box;overflow:hidden}.block{display:block}.table{display:table}.grid{display:grid}.inline-grid{display:inline-grid}.hidden{display:none}.\!h-auto{height:auto!important}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-40{height:10rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[100dvh\]{height:100dvh}.h-\[25px\]{height:25px}.h-\[2px\]{height:2px}.h-\[320px\]{height:320px}.h-\[90\%\]{height:90%}.h-\[95\%\]{height:95%}.h-\[97px\]{height:97px}.h-\[calc\(100dvh_-_var\(--navbar-height\)_-_1px\)\]{height:calc(100dvh - var(--navbar-height) - 1px)}.h-\[var\(--navbar-height\)\]{height:var(--navbar-height)}.h-auto,.img__qBJ{height:auto}.h-divider{height:var(--morui-divider-weight)}.h-fit{height:-moz-fit-content;height:fit-content}.h-px{height:1px}.h-screen{height:100vh}.h-unit-10{height:var(--morui-spacing-unit-10)}.h-unit-12{height:var(--morui-spacing-unit-12)}.h-unit-4{height:var(--morui-spacing-unit-4)}.h-unit-8{height:var(--morui-spacing-unit-8)}.h-unit-9{height:var(--morui-spacing-unit-9)}.max-h-64{max-height:16rem}.max-h-\[calc\(100\%_-_7\.5rem\)\]{max-height:calc(100% - 7.5rem)}.min-h-3{min-height:.75rem}.min-h-3\.5{min-height:.875rem}.min-h-4{min-height:1rem}.min-h-5{min-height:1.25rem}.min-h-6{min-height:1.5rem}.min-h-7{min-height:1.75rem}.min-h-screen{min-height:100vh}.min-h-unit-10{min-height:var(--morui-spacing-unit-10)}.min-h-unit-12{min-height:var(--morui-spacing-unit-12)}.min-h-unit-14{min-height:var(--morui-spacing-unit-14)}.min-h-unit-16{min-height:var(--morui-spacing-unit-16)}.min-h-unit-4{min-height:var(--morui-spacing-unit-4)}.min-h-unit-8{min-height:var(--morui-spacing-unit-8)}#__docusaurus,.container,.main-wrapper{min-height:100%}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-10{width:2.5rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.group[data-pressed=true] .group-data-\[pressed\=true\]\:w-5,.w-5{width:1.25rem}.group[data-pressed=true] .group-data-\[pressed\=true\]\:w-6,.w-6{width:1.5rem}.group[data-pressed=true] .group-data-\[pressed\=true\]\:w-7,.w-7{width:1.75rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[100px\]{width:100px}.w-\[128px\]{width:128px}.w-\[160px\]{width:160px}.w-\[284px\]{width:284px}.w-\[80\%\]{width:80%}.w-\[97px\]{width:97px}.w-\[calc\(100\%_-_theme\(spacing\.unit-6\)\)\]{width:calc(100% - var(--morui-spacing-unit-6))}.w-auto{width:auto}.w-divider{width:var(--morui-divider-weight)}.w-full{width:100%}.w-px{width:1px}.w-screen{width:100vw}.w-unit-10{width:var(--morui-spacing-unit-10)}.w-unit-12{width:var(--morui-spacing-unit-12)}.w-unit-4{width:var(--morui-spacing-unit-4)}.w-unit-8{width:var(--morui-spacing-unit-8)}.features,.hero-banner{width:100%;display:flex}.min-w-10{min-width:2.5rem}.min-w-3{min-width:.75rem}.min-w-3\.5{min-width:.875rem}.min-w-4{min-width:1rem}.min-w-5{min-width:1.25rem}.min-w-6{min-width:1.5rem}.min-w-8{min-width:2rem}.min-w-9{min-width:2.25rem}.min-w-\[200px\]{min-width:200px}.min-w-full{min-width:100%}.min-w-max{min-width:max-content}.min-w-unit-10{min-width:var(--morui-spacing-unit-10)}.min-w-unit-12{min-width:var(--morui-spacing-unit-12)}.min-w-unit-5{min-width:var(--morui-spacing-unit-5)}.min-w-unit-6{min-width:var(--morui-spacing-unit-6)}.min-w-unit-7{min-width:var(--morui-spacing-unit-7)}.min-w-unit-8{min-width:var(--morui-spacing-unit-8)}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-7xl{max-width:80rem}.max-w-\[1200px\]{max-width:1200px}.max-w-\[1280px\]{max-width:1280px}.max-w-\[1536px\]{max-width:1536px}.max-w-\[640px\]{max-width:640px}.max-w-\[768px\]{max-width:768px}.max-w-fit{max-width:-moz-fit-content;max-width:fit-content}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-initial{flex:0 1 auto}.flex-none{flex:none}.flex-shrink-0,.shrink-0{flex-shrink:0}.basis-0,.data-\[justify\=end\]\:basis-0[data-justify=end],.data-\[justify\=start\]\:basis-0[data-justify=start]{flex-basis:0px}.table-auto{table-layout:auto}.table-fixed{table-layout:fixed}.origin-center{transform-origin:center}.origin-left{transform-origin:left}.origin-right{transform-origin:right}.origin-top-left{transform-origin:top left}.-translate-x-1\/2,.after\:-translate-x-1\/2:after,.data-\[placement\=bottom\]\:before\:-translate-x-1\/2[data-placement=bottom]:before,.data-\[placement\=top\]\:before\:-translate-x-1\/2[data-placement=top]:before{--tw-translate-x:-50%}.-rotate-90,.-translate-x-1\/2,.-translate-y-1\/2,.data-\[before\=true\]\:rotate-180[data-before=true],.data-\[direction\=ascending\]\:rotate-180[data-direction=ascending],.data-\[focus-visible\=true\]\:-translate-x-3[data-focus-visible=true],.data-\[hover\=true\]\:-translate-x-3[data-hover=true],.data-\[hover\=true\]\:translate-x-0[data-hover=true],.data-\[invisible\=true\]\:scale-0[data-invisible=true],.data-\[open\=true\]\:-rotate-90[data-open=true],.data-\[open\=true\]\:rotate-180[data-open=true],.group[data-copied=true] .group-data-\[copied\=true\]\:scale-100,.group[data-pressed=true] .group-data-\[pressed\=true\]\:scale-95,.group[data-selected=true] .group-data-\[selected\=true\]\:scale-100,.group[data-selected=true] .group-data-\[selected\=true\]\:translate-x-3,.rotate-0,.rotate-180,.scale-0,.scale-100,.scale-105,.scale-50,.transform,.translate-x-1,.translate-x-1\/2,.translate-y-1,.translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2,.data-\[placement\=left\]\:before\:-translate-y-1\/2[data-placement=left]:before,.data-\[placement\=right\]\:before\:-translate-y-1\/2[data-placement=right]:before{--tw-translate-y:-50%}.translate-x-1{--tw-translate-x:0.25rem}.translate-x-1\/2{--tw-translate-x:50%}.after\:translate-y-1:after,.translate-y-1{--tw-translate-y:0.25rem}.translate-y-1\/2{--tw-translate-y:50%}.-rotate-90,.data-\[open\=true\]\:-rotate-90[data-open=true]{--tw-rotate:-90deg}.after\:rotate-0:after,.before\:rotate-0:before,.rotate-0{--tw-rotate:0deg}.data-\[before\=true\]\:rotate-180[data-before=true],.data-\[direction\=ascending\]\:rotate-180[data-direction=ascending],.data-\[open\=true\]\:rotate-180[data-open=true],.rotate-180{--tw-rotate:180deg}.data-\[invisible\=true\]\:scale-0[data-invisible=true],.scale-0{--tw-scale-x:0;--tw-scale-y:0}.data-\[dragging\=true\]\:after\:scale-100[data-dragging=true]:after,.group[data-copied=true] .group-data-\[copied\=true\]\:scale-100,.group[data-selected=true] .group-data-\[selected\=true\]\:scale-100,.scale-100{--tw-scale-x:1;--tw-scale-y:1}.scale-105{--tw-scale-x:1.05;--tw-scale-y:1.05}.after\:scale-50:after,.scale-50{--tw-scale-x:.5;--tw-scale-y:.5}@keyframes a{0%{opacity:.2;transform:scale(0)}to{opacity:0;transform:scale(2)}}.animate-drip-expand{animation:.42s linear a}@keyframes b{0%{transform:translateX(-50%) scaleX(.2)}to{transform:translateX(100%) scaleX(1)}}.animate-indeterminate-bar{animation:1.5s cubic-bezier(.65,.815,.735,.395) infinite b}.animate-none{animation:none}.animate-spinner-ease-spin{animation:.8s infinite c}@keyframes c{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.animate-spinner-linear-spin{animation:.8s linear infinite c}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-not-allowed,.data-\[disabled\=true\]\:cursor-not-allowed[data-disabled=true],.toggleButtonDisabled_TU4i{cursor:not-allowed}.cursor-pointer,.data-\[sortable\=true\]\:cursor-pointer[data-sortable=true],.data-\[visible\=true\]\:cursor-pointer[data-visible=true],.dropdownNavbarItemMobile_tJ5K{cursor:pointer}.cursor-text{cursor:text}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;user-select:none}.resize-none{resize:none}.scroll-py-6{scroll-padding-bottom:1.5rem;scroll-padding-top:1.5rem}.list-none{list-style-type:none}.appearance-none{-webkit-appearance:none;appearance:none}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.data-\[orientation\=horizontal\]\:flex-row[data-orientation=horizontal],.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.place-content-center{place-content:center}.data-\[justify\=start\]\:justify-start[data-justify=start],.justify-start{justify-content:flex-start}.data-\[justify\=end\]\:justify-end[data-justify=end],.justify-end{justify-content:flex-end}.data-\[justify\=center\]\:justify-center[data-justify=center],.justify-center{justify-content:center}.justify-between{justify-content:space-between}.\!gap-0{gap:0!important}.\!gap-unit-0{gap:var(--morui-spacing-unit-0)!important}.gap-0{gap:0}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-unit-2{gap:var(--morui-spacing-unit-2)}.gap-unit-3{gap:var(--morui-spacing-unit-3)}.space-x-0>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(0px*(1 - var(--tw-space-x-reverse)));margin-right:calc(0px*var(--tw-space-x-reverse))}.space-x-0\.5>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.125rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.125rem*var(--tw-space-x-reverse))}.self-center{align-self:center}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.overflow-x-scroll{overflow-x:scroll}.truncate{overflow:hidden}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.break-words{overflow-wrap:break-word}.\!rounded-none{border-radius:0!important}.rounded{border-radius:.25rem}.rounded-\[calc\(theme\(borderRadius\.large\)\/1\.5\)\]{border-radius:calc(var(--morui-radius-large)/1.5)}.rounded-\[calc\(theme\(borderRadius\.medium\)\*0\.5\)\]{border-radius:calc(var(--morui-radius-medium)*.5)}.rounded-\[calc\(theme\(borderRadius\.medium\)\*0\.6\)\]{border-radius:calc(var(--morui-radius-medium)*.6)}.rounded-\[calc\(theme\(borderRadius\.medium\)\*0\.7\)\]{border-radius:calc(var(--morui-radius-medium)*.7)}.rounded-\[calc\(theme\(borderRadius\.medium\)\/2\)\]{border-radius:calc(var(--morui-radius-medium)/2)}.rounded-\[calc\(theme\(borderRadius\.small\)\/2\)\]{border-radius:calc(var(--morui-radius-small)/2)}.rounded-full{border-radius:9999px}.data-\[has-multiple-rows\=true\]\:rounded-large[data-has-multiple-rows=true],.rounded-large{border-radius:var(--morui-radius-large)}.rounded-md{border-radius:.375rem}.group.is-splitted .group-\[\.is-splitted\]\:rounded-medium,.rounded-medium{border-radius:var(--morui-radius-medium)}.\[\&\:not\(\:first-child\)\:not\(\:last-child\)\]\:rounded-none:not(:first-child):not(:last-child),.\[\&\:not\(\:first-of-type\)\:not\(\:last-of-type\)\]\:rounded-none:not(:first-of-type):not(:last-of-type),.rounded-none{border-radius:0}.rounded-small{border-radius:var(--morui-radius-small)}.dark,.light,:root,[data-theme=dark],[data-theme=light]{--morui-assist-3:213 10% 57%;--morui-brand-high:113 100% 33%;--morui-brand:113 100% 33%;--morui-border:0 0% 60%;--morui-link:214 100% 57%;--morui-warning-foreground:0 0% 0%;--morui-warning:37 91% 55%;--morui-fixed-green:158 58% 50%;--morui-fixed-red:338 98% 54%;--morui-fixed-white:0 0% 100%;--morui-fixed-black:0 0% 0%;--morui-box-shadow:213 20% 9%;--morui-focus:216 100% 50%;--morui-overlay:0 0% 0%;--morui-default:0 0% 20%;--morui-primary:113 100% 33%;--morui-secondary-foreground:0 0% 100%;--morui-success-foreground:0 0% 0%;--morui-success:158 58% 50%;--morui-danger-foreground:0 0% 100%;--morui-danger:338 98% 54%;--morui-green:113 100% 33%;--morui-yellow:36 93% 54%;--morui-purple:249 100% 71%;--morui-desc-1:0 0% 60%;--morui-spacing-unit:4px;--morui-spacing-unit-0:0px;--morui-spacing-unit-1:0.25rem;--morui-spacing-unit-2:0.5rem;--morui-spacing-unit-3:0.75rem;--morui-spacing-unit-4:1rem;--morui-spacing-unit-5:1.25rem;--morui-spacing-unit-6:1.5rem;--morui-spacing-unit-7:1.75rem;--morui-spacing-unit-8:2rem;--morui-spacing-unit-9:2.25rem;--morui-spacing-unit-10:2.5rem;--morui-spacing-unit-11:2.75rem;--morui-spacing-unit-12:3rem;--morui-spacing-unit-13:3.25rem;--morui-spacing-unit-14:3.5rem;--morui-spacing-unit-15:3.75rem;--morui-spacing-unit-16:4rem;--morui-spacing-unit-17:4.25rem;--morui-spacing-unit-18:4.5rem;--morui-spacing-unit-20:5rem;--morui-spacing-unit-24:6rem;--morui-spacing-unit-28:7rem;--morui-spacing-unit-32:8rem;--morui-spacing-unit-36:9rem;--morui-spacing-unit-40:10rem;--morui-spacing-unit-44:11rem;--morui-spacing-unit-48:12rem;--morui-spacing-unit-52:13rem;--morui-spacing-unit-56:14rem;--morui-spacing-unit-60:15rem;--morui-spacing-unit-64:16rem;--morui-spacing-unit-72:18rem;--morui-spacing-unit-80:20rem;--morui-spacing-unit-96:24rem;--morui-spacing-unit-xs:0.5rem;--morui-spacing-unit-sm:0.75rem;--morui-spacing-unit-md:1rem;--morui-spacing-unit-lg:1.375rem;--morui-spacing-unit-xl:2.25rem;--morui-spacing-unit-2xl:3rem;--morui-spacing-unit-3xl:5rem;--morui-spacing-unit-4xl:7.5rem;--morui-spacing-unit-5xl:14rem;--morui-spacing-unit-6xl:18rem;--morui-spacing-unit-7xl:24rem;--morui-spacing-unit-8xl:32rem;--morui-spacing-unit-9xl:40rem;--morui-spacing-unit-3_5:0.875rem;--morui-disabled-opacity:.5;--morui-divider-weight:1px;--morui-font-size-tiny:1rem;--morui-font-size-small:1.25rem;--morui-font-size-medium:1.5rem;--morui-font-size-large:40px;--morui-font-size-huge:56px;--morui-line-height-tiny:1rem;--morui-line-height-small:1.75rem;--morui-line-height-medium:2rem;--morui-line-height-large:65px;--morui-line-height-huge:72px;--morui-radius-small:8px;--morui-radius-medium:12px;--morui-radius-large:24px;--morui-radius-tiny:4px;--morui-border-width-small:1px;--morui-border-width-medium:2px;--morui-border-width-large:3px;--morui-border-width-tiny:1px;--morui-font-weight-hairline:100;--morui-font-weight-light:300;--morui-font-weight-normal:400;--morui-font-weight-medium:500;--morui-font-weight-semibold:600;--morui-font-weight-bold:700;--morui-font-weight-extrabold:800;--morui-font-weight-black:900;--morui-font-weight-tiny:400;--morui-font-weight-small:500;--morui-border-color-default:#999}.\!rounded-l-none{border-bottom-left-radius:0!important;border-top-left-radius:0!important}.\!rounded-r-none{border-bottom-right-radius:0!important;border-top-right-radius:0!important}.rounded-b-large{border-bottom-left-radius:var(--morui-radius-large);border-bottom-right-radius:var(--morui-radius-large)}.rounded-b-medium{border-bottom-left-radius:var(--morui-radius-medium);border-bottom-right-radius:var(--morui-radius-medium)}.rounded-b-small{border-bottom-left-radius:var(--morui-radius-small);border-bottom-right-radius:var(--morui-radius-small)}.rounded-t-large{border-top-left-radius:var(--morui-radius-large);border-top-right-radius:var(--morui-radius-large)}.rounded-t-medium{border-top-left-radius:var(--morui-radius-medium);border-top-right-radius:var(--morui-radius-medium)}.rounded-t-small{border-top-left-radius:var(--morui-radius-small);border-top-right-radius:var(--morui-radius-small)}.border{border-width:1px}.border-0{border-width:0}.border-2{border-width:2px}.border-3{border-width:3px}.border-medium{border-width:var(--morui-border-width-medium)}.border-small{border-width:var(--morui-border-width-small)}.border-tiny{border-width:var(--morui-border-width-tiny)}.border-b{border-bottom-width:1px}.border-b-medium{border-bottom-width:var(--morui-border-width-medium)}.border-solid{border-style:solid}.border-dotted{border-style:dotted}.border-none,.data-\[menu-open\=true\]\:border-none[data-menu-open=true]{border-style:none}.\!border-danger{--tw-border-opacity:1!important;border-color:hsl(var(--morui-danger)/var(--morui-danger-opacity,var(--tw-border-opacity)))!important}.border-b-white{border-color:hsl(var(--morui-b-white)/var(--morui-b-white-opacity,var(--tw-border-opacity)))}.border-background{--tw-border-opacity:1;border-color:hsl(var(--morui-background)/var(--morui-background-opacity,var(--tw-border-opacity)))}.border-danger{--tw-border-opacity:1;border-color:hsl(var(--morui-danger)/var(--morui-danger-opacity,var(--tw-border-opacity)))}.border-default,.data-\[hover\=true\]\:border-default[data-hover=true],.hover\:border-default:hover{--tw-border-opacity:1;border-color:hsl(var(--morui-default)/var(--morui-default-opacity,var(--tw-border-opacity)))}.border-default-200{--tw-border-opacity:1;border-color:hsl(var(--morui-default-200)/var(--morui-default-200-opacity,var(--tw-border-opacity)))}.border-default-300,.hover\:border-default-300:hover{--tw-border-opacity:1;border-color:hsl(var(--morui-default-300)/var(--morui-default-300-opacity,var(--tw-border-opacity)))}.border-default-600{--tw-border-opacity:1;border-color:hsl(var(--morui-default-600)/var(--morui-default-600-opacity,var(--tw-border-opacity)))}.border-divider{--tw-border-opacity:1;border-color:hsl(var(--morui-divider)/var(--morui-divider-opacity,var(--tw-border-opacity)))}.border-foreground{--tw-border-opacity:1;border-color:hsl(var(--morui-foreground)/var(--morui-foreground-opacity,var(--tw-border-opacity)))}.border-primary{--tw-border-opacity:1;border-color:hsl(var(--morui-primary)/var(--morui-primary-opacity,var(--tw-border-opacity)))}.border-secondary{--tw-border-opacity:1;border-color:hsl(var(--morui-secondary)/var(--morui-secondary-opacity,var(--tw-border-opacity)))}.border-success{--tw-border-opacity:1;border-color:hsl(var(--morui-success)/var(--morui-success-opacity,var(--tw-border-opacity)))}.border-transparent{border-color:#0000}.border-warning{--tw-border-opacity:1;border-color:hsl(var(--morui-warning)/var(--morui-warning-opacity,var(--tw-border-opacity)))}.border-l-transparent,.border-x-transparent{border-left-color:#0000}.border-r-transparent,.border-x-transparent{border-right-color:#0000}.border-y-transparent{border-bottom-color:#0000;border-top-color:#0000}.border-b-current{border-bottom-color:initial}.border-b-danger{--tw-border-opacity:1;border-bottom-color:hsl(var(--morui-danger)/var(--morui-danger-opacity,var(--tw-border-opacity)))}.border-b-default{--tw-border-opacity:1;border-bottom-color:hsl(var(--morui-default)/var(--morui-default-opacity,var(--tw-border-opacity)))}.border-b-foreground{--tw-border-opacity:1;border-bottom-color:hsl(var(--morui-foreground)/var(--morui-foreground-opacity,var(--tw-border-opacity)))}.border-b-primary{--tw-border-opacity:1;border-bottom-color:hsl(var(--morui-primary)/var(--morui-primary-opacity,var(--tw-border-opacity)))}.border-b-secondary{--tw-border-opacity:1;border-bottom-color:hsl(var(--morui-secondary)/var(--morui-secondary-opacity,var(--tw-border-opacity)))}.border-b-success{--tw-border-opacity:1;border-bottom-color:hsl(var(--morui-success)/var(--morui-success-opacity,var(--tw-border-opacity)))}.border-b-warning{--tw-border-opacity:1;border-bottom-color:hsl(var(--morui-warning)/var(--morui-warning-opacity,var(--tw-border-opacity)))}.border-b-white{--tw-border-opacity:1;border-bottom-color:rgb(255 255 255/var(--tw-border-opacity))}.border-s-danger{--tw-border-opacity:1;border-inline-start-color:hsl(var(--morui-danger)/var(--morui-danger-opacity,var(--tw-border-opacity)))}.border-s-foreground{--tw-border-opacity:1;border-inline-start-color:hsl(var(--morui-foreground)/var(--morui-foreground-opacity,var(--tw-border-opacity)))}.border-s-primary{--tw-border-opacity:1;border-inline-start-color:hsl(var(--morui-primary)/var(--morui-primary-opacity,var(--tw-border-opacity)))}.border-s-secondary{--tw-border-opacity:1;border-inline-start-color:hsl(var(--morui-secondary)/var(--morui-secondary-opacity,var(--tw-border-opacity)))}.border-s-success{--tw-border-opacity:1;border-inline-start-color:hsl(var(--morui-success)/var(--morui-success-opacity,var(--tw-border-opacity)))}.border-s-warning{--tw-border-opacity:1;border-inline-start-color:hsl(var(--morui-warning)/var(--morui-warning-opacity,var(--tw-border-opacity)))}.border-t-transparent{border-top-color:#0000}.\!bg-\[\#21231C\]{--tw-bg-opacity:1!important;background-color:rgb(33 35 28/var(--tw-bg-opacity))!important}.bg-\[\#7D68FF\]{--tw-bg-opacity:1;background-color:rgb(125 104 255/var(--tw-bg-opacity))}.bg-\[\#ffffff1a\]{background-color:#ffffff1a}.bg-background{--tw-bg-opacity:1;background-color:hsl(var(--morui-background)/var(--morui-background-opacity,var(--tw-bg-opacity)))}.bg-background\/10{background-color:hsl(var(--morui-background)/.1)}.bg-background\/70{background-color:hsl(var(--morui-background)/.7)}.bg-background\/80{background-color:hsl(var(--morui-background)/.8)}.bg-content1,.group.is-splitted .group-\[\.is-splitted\]\:bg-content1{--tw-bg-opacity:1;background-color:hsl(var(--morui-content1)/var(--morui-content1-opacity,var(--tw-bg-opacity)))}.bg-content3{--tw-bg-opacity:1;background-color:hsl(var(--morui-content3)/var(--morui-content3-opacity,var(--tw-bg-opacity)))}.bg-current{background-color:currentColor}.bg-danger,.data-\[active\=true\]\:bg-danger[data-active=true],.data-\[hover\=true\]\:bg-danger[data-hover=true],.data-\[in-range\=true\]\:bg-danger[data-in-range=true],.data-\[selected\=true\]\:bg-danger[data-selected=true]{--tw-bg-opacity:1;background-color:hsl(var(--morui-danger)/var(--morui-danger-opacity,var(--tw-bg-opacity)))}.bg-danger-50,.group[data-focus=true] .group-data-\[focus\=true\]\:bg-danger-50{--tw-bg-opacity:1;background-color:hsl(var(--morui-danger-50)/var(--morui-danger-50-opacity,var(--tw-bg-opacity)))}.bg-danger\/20,.data-\[hover\=true\]\:bg-danger\/20[data-hover=true]{background-color:hsl(var(--morui-danger)/.2)}.bg-default,.data-\[hover\=true\]\:bg-default[data-hover=true],.data-\[selected\=true\]\:bg-default[data-selected=true]{--tw-bg-opacity:1;background-color:hsl(var(--morui-default)/var(--morui-default-opacity,var(--tw-bg-opacity)))}.bg-default-100,.data-\[hover\=true\]\:bg-default-100[data-hover=true],.hover\:bg-default-100:hover{--tw-bg-opacity:1;background-color:hsl(var(--morui-default-100)/var(--morui-default-100-opacity,var(--tw-bg-opacity)))}.\[\&\[data-hover\=true\]\:not\(\[data-active\=true\]\)\]\:bg-default-200[data-hover=true]:not([data-active=true]),.active\:bg-default-200:active,.bg-default-200,.data-\[hover\=true\]\:bg-default-200[data-hover=true],.data-\[in-range\=false\]\:bg-default-200[data-in-range=false]{--tw-bg-opacity:1;background-color:hsl(var(--morui-default-200)/var(--morui-default-200-opacity,var(--tw-bg-opacity)))}.bg-default-300\/50{background-color:hsl(var(--morui-default-300)/.5)}.bg-default-400,.data-\[active\=true\]\:bg-default-400[data-active=true],.group[data-selected=true] .group-data-\[selected\=true\]\:bg-default-400{--tw-bg-opacity:1;background-color:hsl(var(--morui-default-400)/var(--morui-default-400-opacity,var(--tw-bg-opacity)))}.bg-default-50{--tw-bg-opacity:1;background-color:hsl(var(--morui-default-50)/var(--morui-default-50-opacity,var(--tw-bg-opacity)))}.bg-default-500{--tw-bg-opacity:1;background-color:hsl(var(--morui-default-500)/var(--morui-default-500-opacity,var(--tw-bg-opacity)))}.bg-default\/40,.data-\[hover\=true\]\:bg-default\/40[data-hover=true]{background-color:hsl(var(--morui-default)/.4)}.bg-divider{--tw-bg-opacity:1;background-color:hsl(var(--morui-divider)/var(--morui-divider-opacity,var(--tw-bg-opacity)))}.bg-foreground,.data-\[in-range\=true\]\:bg-foreground[data-in-range=true]{--tw-bg-opacity:1;background-color:hsl(var(--morui-foreground)/var(--morui-foreground-opacity,var(--tw-bg-opacity)))}.bg-foreground\/10{background-color:hsl(var(--morui-foreground)/.1)}.bg-overlay\/30{background-color:hsl(var(--morui-overlay)/.3)}.bg-overlay\/50{background-color:hsl(var(--morui-overlay)/.5)}.bg-primary,.data-\[active\=true\]\:bg-primary[data-active=true],.data-\[hover\=true\]\:bg-primary[data-hover=true],.data-\[in-range\=true\]\:bg-primary[data-in-range=true],.data-\[selected\=true\]\:bg-primary[data-selected=true]{--tw-bg-opacity:1;background-color:hsl(var(--morui-primary)/var(--morui-primary-opacity,var(--tw-bg-opacity)))}.bg-primary-50,.group[data-focus=true] .group-data-\[focus\=true\]\:bg-primary-50{--tw-bg-opacity:1;background-color:hsl(var(--morui-primary-50)/var(--morui-primary-50-opacity,var(--tw-bg-opacity)))}.bg-primary\/20,.data-\[hover\=true\]\:bg-primary\/20[data-hover=true]{background-color:hsl(var(--morui-primary)/.2)}.bg-secondary,.data-\[active\=true\]\:bg-secondary[data-active=true],.data-\[hover\=true\]\:bg-secondary[data-hover=true],.data-\[in-range\=true\]\:bg-secondary[data-in-range=true],.data-\[selected\=true\]\:bg-secondary[data-selected=true]{--tw-bg-opacity:1;background-color:hsl(var(--morui-secondary)/var(--morui-secondary-opacity,var(--tw-bg-opacity)))}.bg-secondary-50,.group[data-focus=true] .group-data-\[focus\=true\]\:bg-secondary-50{--tw-bg-opacity:1;background-color:hsl(var(--morui-secondary-50)/var(--morui-secondary-50-opacity,var(--tw-bg-opacity)))}.bg-secondary\/20,.data-\[hover\=true\]\:bg-secondary\/20[data-hover=true]{background-color:hsl(var(--morui-secondary)/.2)}.bg-success,.data-\[active\=true\]\:bg-success[data-active=true],.data-\[hover\=true\]\:bg-success[data-hover=true],.data-\[in-range\=true\]\:bg-success[data-in-range=true],.data-\[selected\=true\]\:bg-success[data-selected=true]{--tw-bg-opacity:1;background-color:hsl(var(--morui-success)/var(--morui-success-opacity,var(--tw-bg-opacity)))}.bg-success-50,.group[data-focus=true] .group-data-\[focus\=true\]\:bg-success-50{--tw-bg-opacity:1;background-color:hsl(var(--morui-success-50)/var(--morui-success-50-opacity,var(--tw-bg-opacity)))}.bg-success\/20,.data-\[hover\=true\]\:bg-success\/20[data-hover=true]{background-color:hsl(var(--morui-success)/.2)}.bg-transparent,.data-\[hover\=true\]\:bg-transparent[data-hover=true]{background-color:initial}.bg-warning,.data-\[active\=true\]\:bg-warning[data-active=true],.data-\[hover\=true\]\:bg-warning[data-hover=true],.data-\[in-range\=true\]\:bg-warning[data-in-range=true],.data-\[selected\=true\]\:bg-warning[data-selected=true]{--tw-bg-opacity:1;background-color:hsl(var(--morui-warning)/var(--morui-warning-opacity,var(--tw-bg-opacity)))}.bg-warning-50,.group[data-focus=true] .group-data-\[focus\=true\]\:bg-warning-50{--tw-bg-opacity:1;background-color:hsl(var(--morui-warning-50)/var(--morui-warning-50-opacity,var(--tw-bg-opacity)))}.bg-warning\/20,.data-\[hover\=true\]\:bg-warning\/20[data-hover=true]{background-color:hsl(var(--morui-warning)/.2)}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-blue-gradient{background-image:linear-gradient(90deg,#4f60ff -7.22%,#8762f3 131.45%)}.bg-btn-bg{background-image:linear-gradient(269deg,#bffd3e -10.85%,#40f0c1 98.88%)}.bg-card-bg{background-image:linear-gradient(103deg,#47f1bb 6.5%,#81f77f 95.85%)}.bg-circle-bg{background-image:linear-gradient(270deg,#73f58f,#40f0c1)}.bg-gray-gradient{background-image:linear-gradient(139deg,#1f2822 .81%,#0e1411 97.62%)}.bg-green-gradient{background-image:linear-gradient(84deg,#40f0c1 10.08%,#bffd3e 161.38%)}.bg-green2-gradient{background-image:linear-gradient(85deg,#40f0c1 22.5%,#bffd3e 236.7%)}.bg-stripe-gradient{background-image:linear-gradient(45deg,#0000001a 25%,#0000 0,#0000 50%,#0000001a 0,#0000001a 75%,#0000 0,#0000)}.bg-\[length\:1\.25rem_1\.25rem\]{background-size:1.25rem 1.25rem}.stroke-current{stroke:currentColor}.stroke-default-300\/50{stroke:hsl(var(--morui-default-300)/.5)}.object-cover{object-fit:cover}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.group.is-splitted .group-\[\.is-splitted\]\:px-4,.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-unit-0{padding-left:var(--morui-spacing-unit-0);padding-right:var(--morui-spacing-unit-0)}.px-unit-3{padding-left:var(--morui-spacing-unit-3);padding-right:var(--morui-spacing-unit-3)}.px-unit-4{padding-left:var(--morui-spacing-unit-4);padding-right:var(--morui-spacing-unit-4)}.px-unit-6{padding-left:var(--morui-spacing-unit-6);padding-right:var(--morui-spacing-unit-6)}.py-0{padding-bottom:0;padding-top:0}.py-0\.5{padding-bottom:.125rem;padding-top:.125rem}.data-\[has-title\=true\]\:pt-1[data-has-title=true],.py-1{padding-top:.25rem}.py-1{padding-bottom:.25rem}.py-1\.5{padding-bottom:.375rem;padding-top:.375rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-2\.5{padding-bottom:.625rem;padding-top:.625rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-4{padding-bottom:1rem;padding-top:1rem}.py-6{padding-bottom:1.5rem;padding-top:1.5rem}.pb-0\.5{padding-bottom:.125rem}.pb-1{padding-bottom:.25rem}.pb-1\.5{padding-bottom:.375rem}.pb-8{padding-bottom:2rem}.pe-2{padding-inline-end:.5rem}.pl-0,:not(.containsTaskList_uDxK>li)>.containsTaskList_uDxK{padding-left:0}.pl-0\.5{padding-left:.125rem}.pl-1{padding-left:.25rem}.pr-0\.5{padding-right:.125rem}.pr-1{padding-right:.25rem}.pr-2{padding-right:.5rem}.pr-6{padding-right:1.5rem}.group[data-has-helper=true] .group-data-\[has-helper\=true\]\:pt-2,.pt-2{padding-top:.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-start{text-align:start}.align-middle{vertical-align:middle}.font-denim{font-family:Denim INK,ui-sans-serif}.text-\[0\.55rem\]{font-size:.55rem}.text-\[0\.5rem\]{font-size:.5rem}.text-\[0\.6rem\]{font-size:.6rem}.text-\[14px\]{font-size:14px}.text-\[16px\]{font-size:16px}.text-\[18px\]{font-size:18px}.text-\[48px\]{font-size:48px}.text-\[59px\]{font-size:59px}.text-large{font-size:var(--morui-font-size-large);line-height:var(--morui-line-height-large)}.text-medium{font-size:var(--morui-font-size-medium);line-height:var(--morui-line-height-medium)}.text-small{font-size:var(--morui-font-size-small);line-height:var(--morui-line-height-small)}.text-tiny{font-size:var(--morui-font-size-tiny);line-height:var(--morui-line-height-tiny)}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:var(--morui-font-weight-medium)}.font-normal{font-weight:400}.data-\[active\=true\]\:font-semibold[data-active=true],.font-semibold{font-weight:600}.leading-\[59px\]{line-height:59px}.leading-\[70px\]{line-height:70px}.\!text-danger{--tw-text-opacity:1!important;color:hsl(var(--morui-danger)/var(--morui-danger-opacity,var(--tw-text-opacity)))!important}.text-\[\#AEDFE0\]{--tw-text-opacity:1;color:rgb(174 223 224/var(--tw-text-opacity))}.text-\[\#FFFFFF0a\]{color:#ffffff0a}.text-\[\#FFFFFF66\]{color:#fff6}.text-\[\#FFF\],.text-\[\#fff\],.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.text-b-white{--tw-text-opacity:1;color:hsl(var(--morui-b-white)/var(--morui-b-white-opacity,var(--tw-text-opacity)))}.text-background{--tw-text-opacity:1;color:hsl(var(--morui-background)/var(--morui-background-opacity,var(--tw-text-opacity)))}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity))}.group:hover .group-hover\:text-current,.text-current{color:currentColor}.text-danger{--tw-text-opacity:1;color:hsl(var(--morui-danger)/var(--morui-danger-opacity,var(--tw-text-opacity)))}.text-danger-300{--tw-text-opacity:1;color:hsl(var(--morui-danger-300)/var(--morui-danger-300-opacity,var(--tw-text-opacity)))}.data-\[active\=true\]\:text-danger-foreground[data-active=true],.data-\[hover\=true\]\:text-danger-foreground[data-hover=true],.data-\[selected\=true\]\:text-danger-foreground[data-selected=true],.text-danger-foreground{--tw-text-opacity:1;color:hsl(var(--morui-danger-foreground)/var(--morui-danger-foreground-opacity,var(--tw-text-opacity)))}.text-danger\/80{color:hsl(var(--morui-danger)/.8)}.text-default-400{--tw-text-opacity:1;color:hsl(var(--morui-default-400)/var(--morui-default-400-opacity,var(--tw-text-opacity)))}.data-\[hover\=true\]\:text-default-500[data-hover=true],.text-default-500{--tw-text-opacity:1;color:hsl(var(--morui-default-500)/var(--morui-default-500-opacity,var(--tw-text-opacity)))}.group[data-filled-within=true] .group-data-\[filled-within\=true\]\:text-default-600,.group[data-filled=true] .group-data-\[filled\=true\]\:text-default-600,.text-default-600{--tw-text-opacity:1;color:hsl(var(--morui-default-600)/var(--morui-default-600-opacity,var(--tw-text-opacity)))}.data-\[active\=true\]\:text-default-foreground[data-active=true],.data-\[hover\=true\]\:text-default-foreground[data-hover=true],.data-\[selected\=true\]\:text-default-foreground[data-selected=true],.text-default-foreground{--tw-text-opacity:1;color:hsl(var(--morui-default-foreground)/var(--morui-default-foreground-opacity,var(--tw-text-opacity)))}.text-desc-1{--tw-text-opacity:1;color:hsl(var(--morui-desc-1)/var(--morui-desc-1-opacity,var(--tw-text-opacity)))}.group[data-filled-within=true] .group-data-\[filled-within\=true\]\:text-foreground,.group[data-filled=true] .group-data-\[filled\=true\]\:text-foreground,.group[data-has-value=true] .group-data-\[has-value\=true\]\:text-foreground,.group[data-selected=true] .group-data-\[selected\=true\]\:text-foreground,.text-foreground{--tw-text-opacity:1;color:hsl(var(--morui-foreground)/var(--morui-foreground-opacity,var(--tw-text-opacity)))}.data-\[hover\=true\]\:text-foreground-400[data-hover=true],.text-foreground-400{--tw-text-opacity:1;color:hsl(var(--morui-foreground-400)/var(--morui-foreground-400-opacity,var(--tw-text-opacity)))}.text-foreground-500{--tw-text-opacity:1;color:hsl(var(--morui-foreground-500)/var(--morui-foreground-500-opacity,var(--tw-text-opacity)))}.text-foreground-600{--tw-text-opacity:1;color:hsl(var(--morui-foreground-600)/var(--morui-foreground-600-opacity,var(--tw-text-opacity)))}.text-foreground\/50{color:hsl(var(--morui-foreground)/.5)}.text-inherit{color:inherit}.text-primary{--tw-text-opacity:1;color:hsl(var(--morui-primary)/var(--morui-primary-opacity,var(--tw-text-opacity)))}.data-\[active\=true\]\:text-primary-foreground[data-active=true],.data-\[hover\=true\]\:text-primary-foreground[data-hover=true],.data-\[selected\=true\]\:text-primary-foreground[data-selected=true],.text-primary-foreground{--tw-text-opacity:1;color:hsl(var(--morui-primary-foreground)/var(--morui-primary-foreground-opacity,var(--tw-text-opacity)))}.text-primary\/80{color:hsl(var(--morui-primary)/.8)}.text-secondary{--tw-text-opacity:1;color:hsl(var(--morui-secondary)/var(--morui-secondary-opacity,var(--tw-text-opacity)))}.data-\[active\=true\]\:text-secondary-foreground[data-active=true],.data-\[hover\=true\]\:text-secondary-foreground[data-hover=true],.data-\[selected\=true\]\:text-secondary-foreground[data-selected=true],.hover\:text-secondary-foreground:hover,.text-secondary-foreground{--tw-text-opacity:1;color:hsl(var(--morui-secondary-foreground)/var(--morui-secondary-foreground-opacity,var(--tw-text-opacity)))}.text-secondary\/80{color:hsl(var(--morui-secondary)/.8)}.data-\[hover\=true\]\:text-success[data-hover=true],.text-success{--tw-text-opacity:1;color:hsl(var(--morui-success)/var(--morui-success-opacity,var(--tw-text-opacity)))}.text-success-600{--tw-text-opacity:1;color:hsl(var(--morui-success-600)/var(--morui-success-600-opacity,var(--tw-text-opacity)))}.data-\[active\=true\]\:text-success-foreground[data-active=true],.data-\[hover\=true\]\:text-success-foreground[data-hover=true],.data-\[selected\=true\]\:text-success-foreground[data-selected=true],.text-success-foreground{--tw-text-opacity:1;color:hsl(var(--morui-success-foreground)/var(--morui-success-foreground-opacity,var(--tw-text-opacity)))}.text-success\/80{color:hsl(var(--morui-success)/.8)}.data-\[hover\=true\]\:text-warning[data-hover=true],.text-warning{--tw-text-opacity:1;color:hsl(var(--morui-warning)/var(--morui-warning-opacity,var(--tw-text-opacity)))}.text-warning-600{--tw-text-opacity:1;color:hsl(var(--morui-warning-600)/var(--morui-warning-600-opacity,var(--tw-text-opacity)))}.data-\[active\=true\]\:text-warning-foreground[data-active=true],.data-\[hover\=true\]\:text-warning-foreground[data-hover=true],.data-\[selected\=true\]\:text-warning-foreground[data-selected=true],.text-warning-foreground{--tw-text-opacity:1;color:hsl(var(--morui-warning-foreground)/var(--morui-warning-foreground-opacity,var(--tw-text-opacity)))}.text-warning\/80{color:hsl(var(--morui-warning)/.8)}.active\:underline:active,.focus\:underline:focus,.hover\:underline:hover,.underline{text-decoration-line:underline}.no-underline{text-decoration-line:none}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.data-\[invisible\=true\]\:opacity-0[data-invisible=true],.group[data-copied=true] .group-data-\[copied\=true\]\:opacity-0,.group[data-selected=true] .group-data-\[selected\=true\]\:opacity-0,.opacity-0{opacity:0}.data-\[in-range\=true\]\:opacity-100[data-in-range=true],.data-\[loaded\=true\]\:opacity-100[data-loaded=true],.data-\[moving\]\:opacity-100[data-moving],.data-\[visible\=true\]\:opacity-100[data-visible=true],.footerLogoLink_DDai:hover,.group[data-copied=true] .group-data-\[copied\=true\]\:opacity-100,.group[data-hover=true] .group-data-\[hover\=true\]\:opacity-100,.group[data-loaded=true] .group-data-\[loaded\=true\]\:opacity-100,.group[data-selected=true] .group-data-\[selected\=true\]\:opacity-100,.hash-link:focus,.hover\:opacity-100:hover,.opacity-100,:hover>.hash-link{opacity:1}.data-\[disabled\=true\]\:opacity-30[data-disabled=true],.opacity-30{opacity:.3}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-\[value\]{opacity:value}.active\:opacity-disabled:active,.data-\[hover-unselected\=true\]\:opacity-disabled[data-hover-unselected=true],.opacity-disabled{opacity:var(--morui-disabled-opacity)}.shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.after\:shadow-\[0_1px_0px_0_rgba\(0\2c 0\2c 0\2c 0\.05\)\]:after,.shadow-\[0_1px_0px_0_rgba\(0\2c 0\2c 0\2c 0\.05\)\]{--tw-shadow:0 1px 0px 0 #0000000d;--tw-shadow-colored:0 1px 0px 0 var(--tw-shadow-color)}.shadow-large{--tw-shadow:var(--morui-box-shadow-large);--tw-shadow-colored:var(--morui-box-shadow-large)}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-md{--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.group.is-splitted .group-\[\.is-splitted\]\:shadow-medium,.shadow-medium{--tw-shadow:var(--morui-box-shadow-medium);--tw-shadow-colored:var(--morui-box-shadow-medium)}.shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}.shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.\[\&\>tr\]\:first\:shadow-small:first-child>tr,.shadow-small{--tw-shadow:var(--morui-box-shadow-small);--tw-shadow-colored:var(--morui-box-shadow-small)}.shadow-black\/5{--tw-shadow-color:#0000000d;--tw-shadow:var(--tw-shadow-colored)}.data-\[active\=true\]\:shadow-danger\/40[data-active=true],.shadow-danger\/40{--tw-shadow-color:hsl(var(--morui-danger)/0.4);--tw-shadow:var(--tw-shadow-colored)}.data-\[active\=true\]\:shadow-default\/50[data-active=true],.data-\[hover\=true\]\:shadow-default\/50[data-hover=true],.shadow-default\/50{--tw-shadow-color:hsl(var(--morui-default)/0.5);--tw-shadow:var(--tw-shadow-colored)}.shadow-foreground\/40{--tw-shadow-color:hsl(var(--morui-foreground)/0.4);--tw-shadow:var(--tw-shadow-colored)}.data-\[active\=true\]\:shadow-primary\/40[data-active=true],.shadow-primary\/40{--tw-shadow-color:hsl(var(--morui-primary)/0.4);--tw-shadow:var(--tw-shadow-colored)}.data-\[active\=true\]\:shadow-secondary\/40[data-active=true],.shadow-secondary\/40{--tw-shadow-color:hsl(var(--morui-secondary)/0.4);--tw-shadow:var(--tw-shadow-colored)}.data-\[active\=true\]\:shadow-success\/40[data-active=true],.shadow-success\/40{--tw-shadow-color:hsl(var(--morui-success)/0.4);--tw-shadow:var(--tw-shadow-colored)}.data-\[active\=true\]\:shadow-warning\/40[data-active=true],.shadow-warning\/40{--tw-shadow-color:hsl(var(--morui-warning)/0.4);--tw-shadow:var(--tw-shadow-colored)}.after\:shadow-small:after,.before\:shadow-small:before{--tw-shadow:var(--morui-box-shadow-small);--tw-shadow-colored:var(--morui-box-shadow-small)}.\!outline-none{outline:#0000 solid 2px!important;outline-offset:2px!important}.outline-none{outline:#0000 solid 2px;outline-offset:2px}.ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.group[data-focus-visible=true] .group-data-\[focus-visible\=true\]\:ring-2,.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-1,.ring-2{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-background{--tw-ring-color:hsl(var(--morui-background)/var(--morui-background-opacity,var(--tw-ring-opacity)))}.ring-danger{--tw-ring-color:hsl(var(--morui-danger)/var(--morui-danger-opacity,var(--tw-ring-opacity)))}.ring-default{--tw-ring-color:hsl(var(--morui-default)/var(--morui-default-opacity,var(--tw-ring-opacity)))}.group[data-focus-visible=true] .group-data-\[focus-visible\=true\]\:ring-focus,.ring-focus{--tw-ring-opacity:1;--tw-ring-color:hsl(var(--morui-focus)/var(--morui-focus-opacity,var(--tw-ring-opacity)))}.ring-primary{--tw-ring-color:hsl(var(--morui-primary)/var(--morui-primary-opacity,var(--tw-ring-opacity)))}.ring-secondary{--tw-ring-color:hsl(var(--morui-secondary)/var(--morui-secondary-opacity,var(--tw-ring-opacity)))}.ring-success{--tw-ring-color:hsl(var(--morui-success)/var(--morui-success-opacity,var(--tw-ring-opacity)))}.ring-transparent{--tw-ring-color:#0000}.ring-warning{--tw-ring-color:hsl(var(--morui-warning)/var(--morui-warning-opacity,var(--tw-ring-opacity)))}.group[data-focus-visible=true] .group-data-\[focus-visible\=true\]\:ring-offset-2,.ring-offset-2{--tw-ring-offset-width:2px}.group[data-focus-visible=true] .group-data-\[focus-visible\=true\]\:ring-offset-background,.ring-offset-background{--tw-ring-offset-color:hsl(var(--morui-background)/var(--morui-background-opacity,1))}.blur{--tw-blur:blur(8px)}.blur,.blur-lg,.filter,.saturate-150{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-lg{--tw-blur:blur(16px)}.saturate-150{--tw-saturate:saturate(1.5)}.backdrop-blur{--tw-backdrop-blur:blur(8px)}.backdrop-blur,.backdrop-blur-lg,.backdrop-blur-md,.backdrop-blur-sm,.backdrop-blur-xl,.backdrop-filter,.backdrop-opacity-disabled,.backdrop-saturate-150{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-lg{--tw-backdrop-blur:blur(16px)}.backdrop-blur-md{--tw-backdrop-blur:blur(12px)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.backdrop-blur-xl{--tw-backdrop-blur:blur(24px)}.backdrop-opacity-disabled{--tw-backdrop-opacity:opacity(var(--morui-disabled-opacity))}.backdrop-saturate-150{--tw-backdrop-saturate:saturate(1.5)}.\!transition-none{transition-property:none!important}.transition-\[transform\2c color\2c left\2c opacity\]{transition-property:transform,color,left,opacity}.transition-\[transform\2c color\2c left\2c opacity\],.transition-all,.transition-colors{transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-none{transition-property:none}.\!duration-100{transition-duration:.1s!important}.\!duration-150{transition-duration:.15s!important}.\!duration-200{transition-duration:.2s!important}.\!duration-300{transition-duration:.3s!important}.\!duration-500{transition-duration:.5s!important}.duration-150{transition-duration:.15s}.\!ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)!important}.\!ease-soft-spring{transition-timing-function:cubic-bezier(.155,1.105,.295,1.12)!important}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.data-\[moving\=true\]\:transition-transform[data-moving=true],.transition,.transition-all,.transition-background,.transition-colors-opacity,.transition-height,.transition-left,.transition-opacity,.transition-shadow,.transition-size,.transition-transform,.transition-transform-background,.transition-transform-colors,.transition-transform-colors-opacity,.transition-transform-opacity,.transition-width{transition-duration:.25s;transition-timing-function:ease}.will-change-auto{will-change:auto}.will-change-transform{will-change:transform}.light,:root,[data-theme=light]{--morui-title-1:72 3% 39%;--morui-title-2:0 0% 35%;--morui-reminder-4:218 11% 81%;--morui-bg:0 0% 100%;--morui-bg-assist:216 22% 95%;--morui-divider:220 13% 95%;--morui-tag:166 65% 91%;--morui-tag-bg:220 23% 97%;--morui-tag-hover:220 17% 14%;--morui-frontend:0 0% 100%;--morui-card:0 0% 96%;--morui-b-black:0 0% 100%;--morui-b-white:0 0% 0%;--morui-line:0 0% 92%;--morui-warning-light:25 89% 50%;--morui-warning-50:55 92% 95%;--morui-warning-100:37 91% 91%;--morui-warning-200:37 91% 82%;--morui-warning-300:37 91% 73%;--morui-warning-400:37 91% 64%;--morui-warning-500:37 91% 55%;--morui-warning-600:37 74% 44%;--morui-warning-700:37 74% 33%;--morui-warning-800:37 75% 22%;--morui-warning-900:37 75% 11%;--morui-btn-bg-disable:222 13% 84%;--morui-btn-text-disable:200 43% 99%;--morui-icon-fill:212 11% 47%;--morui-icon-bg:210 16% 13%;--morui-background:0 0% 100%;--morui-foreground-50:0 0% 98%;--morui-foreground-100:240 5% 96%;--morui-foreground-200:240 6% 90%;--morui-foreground-300:216 22% 95%;--morui-foreground-400:240 5% 65%;--morui-foreground-500:240 4% 46%;--morui-foreground-600:0 0% 40%;--morui-foreground-700:217 20% 17%;--morui-foreground-800:240 4% 16%;--morui-foreground-900:240 6% 10%;--morui-foreground:202 24% 9%;--morui-content1:0 0% 100%;--morui-content1-foreground:202 24% 9%;--morui-content2:240 5% 96%;--morui-content2-foreground:240 4% 16%;--morui-content3:240 6% 90%;--morui-content3-foreground:217 20% 17%;--morui-content4:216 22% 95%;--morui-content4-foreground:0 0% 40%;--morui-default-50:0 0% 98%;--morui-default-100:240 5% 96%;--morui-default-200:240 6% 90%;--morui-default-300:216 22% 95%;--morui-default-400:240 5% 65%;--morui-default-500:0 0% 10%;--morui-default-600:0 0% 60%;--morui-default-700:217 20% 17%;--morui-default-800:240 4% 16%;--morui-default-900:240 6% 10%;--morui-default-foreground:0 0% 0%;--morui-primary-50:213 92% 95%;--morui-primary-100:212 92% 90%;--morui-primary-200:212 92% 79%;--morui-primary-300:212 92% 69%;--morui-primary-400:212 92% 58%;--morui-primary-500:216 100% 50%;--morui-primary-600:223 99% 47%;--morui-primary-700:212 100% 29%;--morui-primary-800:212 100% 19%;--morui-primary-900:212 100% 10%;--morui-primary-foreground:0 0% 100%;--morui-secondary-50:270 62% 95%;--morui-secondary-100:270 59% 89%;--morui-secondary-200:270 59% 79%;--morui-secondary-300:270 59% 68%;--morui-secondary-400:270 59% 58%;--morui-secondary-500:270 67% 47%;--morui-secondary-600:270 67% 38%;--morui-secondary-700:270 67% 28%;--morui-secondary-800:270 67% 19%;--morui-secondary-900:270 67% 9%;--morui-secondary:270 67% 47%;--morui-success-50:147 64% 95%;--morui-success-100:146 61% 89%;--morui-success-200:146 62% 77%;--morui-success-300:146 63% 66%;--morui-success-400:146 62% 55%;--morui-success-500:158 58% 50%;--morui-success-600:146 80% 35%;--morui-success-700:146 79% 26%;--morui-success-800:146 80% 17%;--morui-success-900:146 78% 9%;--morui-danger-50:339 92% 95%;--morui-danger-100:340 92% 90%;--morui-danger-200:339 90% 80%;--morui-danger-300:339 91% 71%;--morui-danger-400:339 90% 61%;--morui-danger-500:338 98% 54%;--morui-danger-600:339 87% 41%;--morui-danger-700:339 86% 31%;--morui-danger-800:339 87% 20%;--morui-danger-900:340 85% 10%;--morui-title:0 0% 100%;--morui-red:349 90% 60%;--morui-red-aid:350 90% 92%;--morui-green-aid:166 65% 91%;--morui-yellow-aid:36 91% 91%;--morui-purple-aid:248 100% 94%;--morui-title-3:0 0% 10%;--morui-desc-2:0 0% 85%;--morui-border-card:0 0% 100%;--morui-border-0:0 0% 60%;--morui-border-1:0 0% 75%;--morui-border-2:0 0% 92%;--morui-border-3:0 0% 35%;--morui-bg-img:0 0% 75%;--morui-box-shadow-small:0px 3px 6px 0px #0003;--morui-box-shadow-medium:0px 0px 15px 0px #00000008,0px 2px 30px 0px #00000014,0px 0px 1px 0px #0000004d;--morui-box-shadow-large:0px 0px 30px 0px #0000000a,0px 30px 60px 0px #0000001f,0px 0px 1px 0px #0000004d;--morui-hover-opacity:.8;color-scheme:light}.dark,[data-theme=dark]{--morui-title-1:90 1% 74%;--morui-title-2:0 0% 80%;--morui-reminder-4:216 15% 36%;--morui-bg:0 0% 0%;--morui-bg-assist:0 0% 20%;--morui-divider:0 0% 40%;--morui-tag:145 42% 10%;--morui-tag-bg:219 20% 19%;--morui-tag-hover:220 23% 97%;--morui-frontend:220 18% 10%;--morui-card:0 0% 10%;--morui-b-black:0 0% 0%;--morui-b-white:0 0% 100%;--morui-line:0 0% 20%;--morui-warning-light:25 89% 62%;--morui-warning-50:37 75% 11%;--morui-warning-100:37 75% 22%;--morui-warning-200:37 74% 33%;--morui-warning-300:37 74% 44%;--morui-warning-400:37 91% 55%;--morui-warning-500:37 91% 64%;--morui-warning-600:37 91% 73%;--morui-warning-700:37 91% 82%;--morui-warning-800:37 91% 91%;--morui-warning-900:55 92% 95%;--morui-btn-bg-disable:215 34% 23%;--morui-btn-text-disable:212 9% 62%;--morui-icon-fill:220 10% 69%;--morui-icon-bg:200 43% 99%;--morui-background:0 0% 0%;--morui-foreground-50:240 6% 10%;--morui-foreground-100:240 4% 16%;--morui-foreground-200:217 20% 17%;--morui-foreground-300:0 0% 40%;--morui-foreground-400:240 4% 46%;--morui-foreground-500:240 5% 65%;--morui-foreground-600:216 22% 95%;--morui-foreground-700:240 6% 90%;--morui-foreground-800:240 5% 96%;--morui-foreground-900:0 0% 98%;--morui-foreground:210 6% 93%;--morui-content1:240 6% 10%;--morui-content1-foreground:0 0% 98%;--morui-content2:240 4% 16%;--morui-content2-foreground:240 5% 96%;--morui-content3:217 20% 17%;--morui-content3-foreground:240 6% 90%;--morui-content4:0 0% 40%;--morui-content4-foreground:216 22% 95%;--morui-default-50:240 6% 10%;--morui-default-100:240 4% 16%;--morui-default-200:217 20% 17%;--morui-default-300:0 0% 40%;--morui-default-400:240 4% 46%;--morui-default-500:0 0% 80%;--morui-default-600:0 0% 80%;--morui-default-700:240 6% 90%;--morui-default-800:240 5% 96%;--morui-default-900:0 0% 98%;--morui-default-foreground:0 0% 100%;--morui-primary-50:212 100% 10%;--morui-primary-100:212 100% 19%;--morui-primary-200:212 100% 29%;--morui-primary-300:223 99% 47%;--morui-primary-400:216 100% 50%;--morui-primary-500:212 92% 58%;--morui-primary-600:212 92% 69%;--morui-primary-700:212 92% 79%;--morui-primary-800:212 92% 90%;--morui-primary-900:213 92% 95%;--morui-primary-foreground:0 0% 0%;--morui-secondary-50:270 67% 9%;--morui-secondary-100:270 67% 19%;--morui-secondary-200:270 67% 28%;--morui-secondary-300:270 67% 38%;--morui-secondary-400:270 67% 47%;--morui-secondary-500:270 59% 58%;--morui-secondary-600:270 59% 68%;--morui-secondary-700:270 59% 79%;--morui-secondary-800:270 59% 89%;--morui-secondary-900:270 62% 95%;--morui-secondary:270 59% 58%;--morui-success-50:146 78% 9%;--morui-success-100:146 80% 17%;--morui-success-200:146 79% 26%;--morui-success-300:146 80% 35%;--morui-success-400:158 58% 50%;--morui-success-500:146 62% 55%;--morui-success-600:146 63% 66%;--morui-success-700:146 62% 77%;--morui-success-800:146 61% 89%;--morui-success-900:147 64% 95%;--morui-danger-50:340 85% 10%;--morui-danger-100:339 87% 20%;--morui-danger-200:339 86% 31%;--morui-danger-300:339 87% 41%;--morui-danger-400:338 98% 54%;--morui-danger-500:339 90% 61%;--morui-danger-600:339 91% 71%;--morui-danger-700:339 90% 80%;--morui-danger-800:340 92% 90%;--morui-danger-900:339 92% 95%;--morui-title:0 0% 0%;--morui-red:349 90% 56%;--morui-red-aid:349 59% 15%;--morui-green-aid:141 67% 14%;--morui-yellow-aid:36 79% 13%;--morui-purple-aid:247 42% 16%;--morui-title-3:0 0% 80%;--morui-desc-2:0 0% 30%;--morui-border-card:0 0% 60%;--morui-border-0:0 0% 20%;--morui-border-1:0 0% 40%;--morui-border-2:0 0% 20%;--morui-border-3:0 0% 80%;--morui-bg-img:0 0% 20%;--morui-nav:0 0% 82%;--morui-nav-hover:0 0% 100%;--morui-sub-nav:160 23% 97%;--morui-sub-nav-hover:0 0% 0%;--morui-sub-nav-bg:167 18% 10%;--morui-sub-nav-item-bg:164 85% 60%;--morui-desc-4:0 0% 60%;--morui-desc-3:0 0% 80%;--morui-content:0 0% 82%;--morui-icon-bg-for-green:0 0% 21%;--morui-text-color-for-green:0 0% 0%;--morui-base-color:163 100% 62%;--morui-box-shadow-small:0px 0px 5px 0px #0000000d,0px 2px 10px 0px #0003,inset 0px 0px 1px 0px #ffffff26;--morui-box-shadow-medium:0px 0px 15px 0px #0000000f,0px 2px 30px 0px #00000038,inset 0px 0px 1px 0px #ffffff26;--morui-box-shadow-large:0px 0px 30px 0px #00000012,0px 30px 60px 0px #00000042,inset 0px 0px 1px 0px #ffffff26;--morui-hover-opacity:.9;color-scheme:dark}.leading-inherit{line-height:inherit}.bg-img-inherit{background-image:inherit}.bg-clip-inherit{background-clip:inherit}.text-fill-inherit{-webkit-text-fill-color:inherit}.transition-all{transition-property:all}.transition-background{transition-property:background}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter}.data-\[hover\=true\]\:transition-colors[data-hover=true],.data-\[sortable\=true\]\:transition-colors[data-sortable=true],.transition-colors{transition-duration:.25s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:ease}.transition-opacity{transition-property:opacity}.transition-colors-opacity{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity}.transition-width{transition-property:width}.transition-height{transition-property:height}.transition-size{transition-property:width,height}.transition-left{transition-property:left}.transition-shadow{transition-property:box-shadow}.data-\[moving\=true\]\:transition-transform[data-moving=true],.transition-transform{transition-property:transform}.transition-transform-opacity{transition-property:transform,opacity}.transition-transform-background{transition-property:transform,background}.transition-transform-colors{transition-property:transform,color,background,background-color,border-color,text-decoration-color,fill,stroke}.transition-transform-colors-opacity{transition-property:transform,color,background,background-color,border-color,text-decoration-color,fill,stroke,opacity}.data-\[hide-scroll\=true\]\:scrollbar-hide[data-hide-scroll=true],.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}.scrollbar-hide::-webkit-scrollbar{display:none}.scrollbar-default{-ms-overflow-style:auto;scrollbar-width:auto}.scrollbar-default::-webkit-scrollbar{display:block}.\[--scale-enter\:100\%\]{--scale-enter:100%}.\[--scale-exit\:100\%\]{--scale-exit:100%}.\[--slide-enter\:0px\]{--slide-enter:0px}.\[--slide-exit\:80px\]{--slide-exit:80px}html body{font-family:InterDisplay\,Inter Variable}[data-theme=light]{--ifm-heading-color:#21231c;--ifm-color-gray-700:#21231c;--ifm-color-emphasis-600:#fff;--ifm-code-font-size:95%;--docusaurus-highlighted-code-line-bg:#0000001a;--ifm-footer-background-color:#fff;--ifm-color-emphasis-200:"#000000",--ifm-menu-color:"#21231C",--ifm-container-width-xl:1200px;--ifm-bg-color:#fff;--ifm-feature-h3-color:#1a1a1a;--ifm-feature-p-color:#595959;--border-hover-shadow:#0016091a}[data-theme=light] .navbar-sidebar__brand{background-color:#fff}[data-theme=dark]{--ifm-heading-color:#fff;--ifm-color-gray-300:#fff;--ifm-color-emphasis-600:#000;--docusaurus-highlighted-code-line-bg:#0000004d;--ifm-footer-background-color:#0a080f;--ifm-color-emphasis-200:"#fff",--ifm-menu-color:"#FFF",--ifm-container-width-xl:1200px;--ifm-bg-color:#000;--ifm-feature-h3-color:#f7f7f7;--ifm-feature-p-color:#ccc;--border-hover-shadow:#9bffc54d}.menu__link--active:not(.menu__link--sublist),.menu__link:hover,[data-theme=dark] .menu__list-item--collapsed .menu__link:hover,[data-theme=light] .menu__list-item--collapsed .menu__link:hover{color:#fff}.navbar.navbar--fixed-top{border-bottom:1px solid #dededd}[data-theme=dark] .navbar.navbar--fixed-top{border-bottom:1px solid #21231c}.menu__link.menu__link--sublist.menu__link--sublist-caret{font-size:16px;font-weight:600;margin-bottom:4px;margin-top:4px;padding-bottom:6px;padding-top:6px}.theme-doc-sidebar-item-link-level-2.menu__list-item .menu__link,.theme-doc-sidebar-item-link-level-3.menu__list-item .menu__link,.theme-doc-sidebar-item-link-level-4.menu__list-item .menu__link{display:block;font-size:16px;font-weight:600;margin-bottom:4px;margin-top:4px;padding-bottom:6px;padding-top:6px}.theme-doc-sidebar-item-link-level-1.menu__list-item .menu__link{display:block;font-size:20px;font-weight:600;margin-bottom:4px;margin-top:4px;padding-bottom:6px;padding-top:6px}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.75}.footer__link-item,[data-theme=dark] .theme-doc-sidebar-item-category-level-1 .menu__list-item--collapsed .menu__link.menu__link--active,[data-theme=dark] .theme-doc-sidebar-item-category-level-1 .menu__list-item--collapsed .menu__link:hover,[data-theme=dark] .theme-doc-sidebar-item-category-level-1 .menu__list-item-collapsible .menu__link:hover,[data-theme=dark] .theme-doc-sidebar-item-link-level-2.menu__list-item .menu__link.menu__link--active,[data-theme=dark] .theme-doc-sidebar-item-link-level-2.menu__list-item .menu__link:hover,[data-theme=dark] .theme-doc-sidebar-item-link-level-3.menu__list-item .menu__link.menu__link--active,[data-theme=dark] .theme-doc-sidebar-item-link-level-3.menu__list-item .menu__link:hover,[data-theme=dark] .theme-doc-sidebar-item-link-level-4.menu__list-item .menu__link.menu__link--active,[data-theme=dark] .theme-doc-sidebar-item-link-level-4.menu__list-item .menu__link:hover,[data-theme=light] .theme-doc-sidebar-item-category-level-1 .menu__list-item--collapsed .menu__link.menu__link--active,[data-theme=light] .theme-doc-sidebar-item-category-level-1 .menu__list-item--collapsed .menu__link:hover,[data-theme=light] .theme-doc-sidebar-item-category-level-1 .menu__list-item-collapsible .menu__link:hover,[data-theme=light] .theme-doc-sidebar-item-link-level-2.menu__list-item .menu__link.menu__link--active,[data-theme=light] .theme-doc-sidebar-item-link-level-2.menu__list-item .menu__link:hover,[data-theme=light] .theme-doc-sidebar-item-link-level-3.menu__list-item .menu__link.menu__link--active,[data-theme=light] .theme-doc-sidebar-item-link-level-3.menu__list-item .menu__link:hover,[data-theme=light] .theme-doc-sidebar-item-link-level-4.menu__list-item .menu__link.menu__link--active,[data-theme=light] .theme-doc-sidebar-item-link-level-4.menu__list-item .menu__link:hover{color:#fff}[data-theme=dark] .menu__link.menu__link--sublist.menu__link--sublist-caret,[data-theme=dark] .theme-doc-sidebar-item-category-level-1 .menu__list-item--collapsed,[data-theme=dark] .theme-doc-sidebar-item-category-level-1 .menu__list-item--collapsed .menu__link,[data-theme=dark] .theme-doc-sidebar-item-category-level-1 .menu__list-item-collapsible,[data-theme=dark] .theme-doc-sidebar-item-link-level-2.menu__list-item,[data-theme=dark] .theme-doc-sidebar-item-link-level-2.menu__list-item .menu__link,[data-theme=dark] .theme-doc-sidebar-item-link-level-3.menu__list-item,[data-theme=dark] .theme-doc-sidebar-item-link-level-3.menu__list-item .menu__link,[data-theme=dark] .theme-doc-sidebar-item-link-level-4.menu__list-item,[data-theme=dark] .theme-doc-sidebar-item-link-level-4.menu__list-item .menu__link{color:#bcbdbb}[data-theme=light] .menu__link.menu__link--sublist.menu__link--sublist-caret,[data-theme=light] .theme-doc-sidebar-item-category-level-1 .menu__list-item--collapsed,[data-theme=light] .theme-doc-sidebar-item-category-level-1 .menu__list-item--collapsed .menu__link,[data-theme=light] .theme-doc-sidebar-item-category-level-1 .menu__list-item-collapsible,[data-theme=light] .theme-doc-sidebar-item-link-level-2.menu__list-item,[data-theme=light] .theme-doc-sidebar-item-link-level-2.menu__list-item .menu__link,[data-theme=light] .theme-doc-sidebar-item-link-level-3.menu__list-item,[data-theme=light] .theme-doc-sidebar-item-link-level-3.menu__list-item .menu__link,[data-theme=light] .theme-doc-sidebar-item-link-level-4.menu__list-item,[data-theme=light] .theme-doc-sidebar-item-link-level-4.menu__list-item .menu__link{color:#646560}.footer__col:first-child,.footer__col:nth-child(2){flex:3}.footer__bottom{margin-top:48px}[data-theme=light] #__docusaurus{background-color:var(--ifm-bg-color)}[data-theme=light] .navbar{background:#fff;box-shadow:none}[data-theme=light] .footer{background-color:#fff!important;box-shadow:0 -10px 10px 0 #00000005!important}[data-theme=light] .theme-doc-sidebar-container{flex-shrink:0;gap:10px}[data-theme=light] .docSidebarContainer_node_modules-\@docusaurus-theme-classic-lib-theme-DocPage-Layout-Sidebar-styles-module,[data-theme=light] .theme-doc-sidebar-container{background-color:#fff!important;border-right:none!important}[data-theme=dark] .darkToggleIcon_node_modules-\@docusaurus-theme-classic-lib-theme-ColorModeToggle-styles-module,[data-theme=light] .lightToggleIcon_node_modules-\@docusaurus-theme-classic-lib-theme-ColorModeToggle-styles-module{cursor:pointer!important;display:none!important}[data-theme=dark] .lightToggleIcon_node_modules-\@docusaurus-theme-classic-lib-theme-ColorModeToggle-styles-module,[data-theme=light] .darkToggleIcon_node_modules-\@docusaurus-theme-classic-lib-theme-ColorModeToggle-styles-module{cursor:pointer!important;display:block!important}[data-theme=light] .clean-btn.navbar-sidebar__close svg,[data-theme=light] .darkToggleIcon_node_modules-\@docusaurus-theme-classic-lib-theme-ColorModeToggle-styles-module svg{color:#000!important}[data-theme=dark] #__docusaurus{background-color:#000}[data-theme=dark] .navbar{background-color:#0a080fe6!important;box-shadow:none}.hero-banner,[data-theme=dark] .footer{background-color:#0a080f}[data-theme=dark] .theme-doc-sidebar-container{background-color:#0a080f;border-right:none!important}.menu__link .menu__link--sublist.menu__link--sublist-caret,.theme-doc-sidebar-item-link-level-2{font-size:16px;font-weight:600}.menu__caret:before,.menu__link--sublist-caret:after{height:13px;width:13px}[data-theme=dark] button.clean-btn svg:first-child,[data-theme=light] button.clean-btn[aria-live=polite] svg:nth-child(2){display:block!important}[data-theme=dark] button.clean-btn svg:nth-child(2),[data-theme=light] button.clean-btn[aria-live=polite] svg:first-child{display:none!important}.navbar__logo img{height:32px}[data-theme=dark] .morph-logo,[data-theme=light] .morph-logo{background-image:url(/assets/images/LogoMorphWhite-summary-dc9797d7eb85ed22d18a1cbda84342e5.svg);background-size:160px 25px;margin-left:-24px}.hero-banner{align-items:center;justify-content:center;margin:0;overflow:hidden;padding:0;position:relative;text-align:center}.header-bg{background-image:url(/assets/images/bg-5badadc4ca0a26b003becdf097ddbf12.svg);background-position:50%;background-repeat:no-repeat;background-size:auto 100%;height:110px;margin-top:-10px;padding-top:0}.features{padding-bottom:50px}.feature-a{border:1px solid rgba(33,35,30,.102);border-radius:0;color:var(--ifm-heading-color)!important;display:flex;text-decoration:none!important}.feature-a:hover{background:var(--ifm-footer-background-color);border:1px solid var(--ifm-color-primary);border-radius:0;box-shadow:0 0 40px 0 var(--border-hover-shadow)}.after\:shadow-\[0_1px_0px_0_rgba\(0\2c 0\2c 0\2c 0\.05\)\]:after,.after\:shadow-small:after,.before\:shadow-small:before,.data-\[active\=true\]\:shadow-md[data-active=true],.data-\[hover\=true\]\:shadow-lg[data-hover=true],.group.is-splitted .group-\[\.is-splitted\]\:shadow-medium{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}[data-theme=dark] .feature-a{border:1px solid #373933}.feature-h3{color:var(--ifm-feature-h3-color);font-size:32px;font-style:normal;font-weight:800;line-height:120%}.feature-p{color:var(--ifm-feature-p-color);font-size:20px;font-style:normal;font-weight:400;line-height:24px;margin-bottom:0;max-width:342px}.homepage-resource{color:--ifm-heading-color;text-align:center}.green-bg{background:linear-gradient(180deg,#a3fe76 -24.11%,#f2f7f2)}.yellow-bg{background:linear-gradient(180deg,#ffeb69 -24.11%,#f2f7f2)}.pink-bg{background:linear-gradient(180deg,#ffd6ef -24.11%,#f2f7f2)}.purple-bg{background:linear-gradient(180deg,#cdc5ff -24.11%,#f3f7f2)}.footer-bg{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTM2MCIgaGVpZ2h0PSI3MjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggb3BhY2l0eT0iLjEiIGQ9Ik0uNSA3MTkuNWgyODIuNTU2di03NS40ODNjMC0xLjExNSAxLjU5MS0xLjMxMiAxLjg2My0uMjMybDE1Ljk3MSA2My4zMjFoNjkwLjAyNXYtODAuNzY1YS45NDYuOTQ2IDAgMCAxIDEuMTIyLS45M2wzNjcuNDYzIDY5LjU1M1YuNUg5OTEuMjczdjgzLjAwNmEuOTQ3Ljk0NyAwIDAgMS0uODU4Ljk0Mkw0OTIuODkgMTMxLjI4Nmw0LjkzNSAxMDcuNTU1YS45NDUuOTQ1IDAgMCAxLS41MjYuODkxTC41IDQ4NS4zMDNWNzE5LjVaIiBzdHJva2U9IiNBRURGRTAiLz48L3N2Zz4=);background-position:5%;background-repeat:no-repeat;background-size:90% 90%}.placeholder\:text-danger::placeholder{--tw-text-opacity:1;color:hsl(var(--morui-danger)/var(--morui-danger-opacity,var(--tw-text-opacity)))}.placeholder\:text-foreground-500::placeholder{--tw-text-opacity:1;color:hsl(var(--morui-foreground-500)/var(--morui-foreground-500-opacity,var(--tw-text-opacity)))}.placeholder\:text-primary::placeholder{--tw-text-opacity:1;color:hsl(var(--morui-primary)/var(--morui-primary-opacity,var(--tw-text-opacity)))}.placeholder\:text-secondary::placeholder{--tw-text-opacity:1;color:hsl(var(--morui-secondary)/var(--morui-secondary-opacity,var(--tw-text-opacity)))}.placeholder\:text-success-600::placeholder{--tw-text-opacity:1;color:hsl(var(--morui-success-600)/var(--morui-success-600-opacity,var(--tw-text-opacity)))}.placeholder\:text-warning-600::placeholder{--tw-text-opacity:1;color:hsl(var(--morui-warning-600)/var(--morui-warning-600-opacity,var(--tw-text-opacity)))}.after\:absolute:after,.before\:absolute:before{content:var(--tw-content);position:absolute}.after\:inset-0:after,.before\:inset-0:before{content:var(--tw-content);inset:0}.before\:z-0:before{content:var(--tw-content);z-index:0}.before\:z-\[-1\]:before{content:var(--tw-content);z-index:-1}.before\:box-border:before{box-sizing:border-box;content:var(--tw-content)}.after\:block:after,.before\:block:before,.data-\[arrow\=true\]\:before\:block[data-arrow=true]:before{content:var(--tw-content);display:block}.before\:hidden:before{content:var(--tw-content);display:none}.before\:h-0:before{content:var(--tw-content);height:0}.before\:h-0\.5:before{content:var(--tw-content);height:.125rem}.before\:h-11:before{content:var(--tw-content);height:2.75rem}.before\:h-2:before{content:var(--tw-content);height:.5rem}.before\:h-2\.5:before{content:var(--tw-content);height:.625rem}.after\:h-px:after,.before\:h-px:before{content:var(--tw-content);height:1px}.after\:w-0:after,.before\:w-0:before{content:var(--tw-content);width:0}.before\:w-11:before{content:var(--tw-content);width:2.75rem}.before\:w-2:before{content:var(--tw-content);width:.5rem}.before\:w-2\.5:before{content:var(--tw-content);width:.625rem}.after\:w-6:after,.before\:w-6:before{content:var(--tw-content);width:1.5rem}.before\:-translate-x-full:before{--tw-translate-x:-100%}.after\:-translate-x-1\/2:after,.after\:rotate-0:after,.after\:scale-50:after,.after\:translate-y-1:after,.before\:-translate-x-full:before,.before\:-translate-y-1:before,.before\:rotate-0:before,.before\:rotate-45:before,.data-\[dragging\=true\]\:after\:scale-100[data-dragging=true]:after,.data-\[dragging\=true\]\:after\:scale-80[data-dragging=true]:after,.data-\[placement\=bottom\]\:before\:-translate-x-1\/2[data-placement=bottom]:before,.data-\[placement\=left\]\:before\:-translate-y-1\/2[data-placement=left]:before,.data-\[placement\=right\]\:before\:-translate-y-1\/2[data-placement=right]:before,.data-\[placement\=top\]\:before\:-translate-x-1\/2[data-placement=top]:before,.group[data-open=true] .group-data-\[open\=true\]\:after\:-rotate-45:after,.group[data-open=true] .group-data-\[open\=true\]\:after\:translate-y-0:after,.group[data-open=true] .group-data-\[open\=true\]\:before\:rotate-45:before,.group[data-open=true] .group-data-\[open\=true\]\:before\:translate-y-px:before{content:var(--tw-content);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.before\:-translate-y-1:before{--tw-translate-y:-0.25rem}.before\:rotate-45:before,.group[data-open=true] .group-data-\[open\=true\]\:before\:rotate-45:before{--tw-rotate:45deg}@keyframes d{to{content:var(--tw-content);transform:translateX(100%)}}.before\:animate-\[shimmer_2s_infinite\]:before{animation:2s infinite d;content:var(--tw-content)}.after\:rounded-\[calc\(theme\(borderRadius\.medium\)\*0\.5\)\]:after,.before\:rounded-\[calc\(theme\(borderRadius\.medium\)\*0\.5\)\]:before{border-radius:calc(var(--morui-radius-medium)*.5);content:var(--tw-content)}.after\:rounded-\[calc\(theme\(borderRadius\.medium\)\*0\.6\)\]:after,.before\:rounded-\[calc\(theme\(borderRadius\.medium\)\*0\.6\)\]:before{border-radius:calc(var(--morui-radius-medium)*.6);content:var(--tw-content)}.after\:rounded-\[calc\(theme\(borderRadius\.medium\)\*0\.7\)\]:after,.before\:rounded-\[calc\(theme\(borderRadius\.medium\)\*0\.7\)\]:before{border-radius:calc(var(--morui-radius-medium)*.7);content:var(--tw-content)}.after\:rounded-full:after,.before\:rounded-full:before{border-radius:9999px;content:var(--tw-content)}.after\:rounded-none:after,.before\:rounded-none:before,.group[data-middle=true] .group-data-\[middle\=true\]\:before\:rounded-none:before{border-radius:0;content:var(--tw-content)}.before\:rounded-sm:before{border-radius:.125rem;content:var(--tw-content)}.before\:border-2:before{border-width:2px;content:var(--tw-content)}.before\:border-t:before{border-top-width:1px;content:var(--tw-content)}.before\:border-solid:before{border-style:solid;content:var(--tw-content)}.before\:border-content4\/30:before{border-color:hsl(var(--morui-content4)/.3);content:var(--tw-content)}.before\:border-danger:before{--tw-border-opacity:1;border-color:hsl(var(--morui-danger)/var(--morui-danger-opacity,var(--tw-border-opacity)));content:var(--tw-content)}.before\:border-default:before{--tw-border-opacity:1;border-color:hsl(var(--morui-default)/var(--morui-default-opacity,var(--tw-border-opacity)));content:var(--tw-content)}.before\:bg-content1:before{--tw-bg-opacity:1;background-color:hsl(var(--morui-content1)/var(--morui-content1-opacity,var(--tw-bg-opacity)));content:var(--tw-content)}.after\:bg-current:after,.before\:bg-current:before{background-color:currentColor;content:var(--tw-content)}.after\:bg-danger:after,.before\:bg-danger:before,.data-\[selected\=true\]\:after\:bg-danger[data-selected=true]:after{--tw-bg-opacity:1;background-color:hsl(var(--morui-danger)/var(--morui-danger-opacity,var(--tw-bg-opacity)));content:var(--tw-content)}.before\:bg-danger\/20:before,.hover\:after\:bg-danger\/20:hover:after{background-color:hsl(var(--morui-danger)/.2);content:var(--tw-content)}.before\:bg-default\/40:before{background-color:hsl(var(--morui-default)/.4);content:var(--tw-content)}.before\:bg-foreground:before,.data-\[selected\=true\]\:after\:bg-foreground[data-selected=true]:after{--tw-bg-opacity:1;background-color:hsl(var(--morui-foreground)/var(--morui-foreground-opacity,var(--tw-bg-opacity)));content:var(--tw-content)}.after\:bg-primary:after,.before\:bg-primary:before,.data-\[selected\=true\]\:after\:bg-primary[data-selected=true]:after{--tw-bg-opacity:1;background-color:hsl(var(--morui-primary)/var(--morui-primary-opacity,var(--tw-bg-opacity)));content:var(--tw-content)}.before\:bg-primary\/20:before,.hover\:after\:bg-primary\/20:hover:after{background-color:hsl(var(--morui-primary)/.2);content:var(--tw-content)}.after\:bg-secondary:after,.before\:bg-secondary:before,.data-\[selected\=true\]\:after\:bg-secondary[data-selected=true]:after{--tw-bg-opacity:1;background-color:hsl(var(--morui-secondary)/var(--morui-secondary-opacity,var(--tw-bg-opacity)));content:var(--tw-content)}.before\:bg-secondary\/20:before,.hover\:after\:bg-secondary\/20:hover:after{background-color:hsl(var(--morui-secondary)/.2);content:var(--tw-content)}.after\:bg-success:after,.before\:bg-success:before,.data-\[selected\=true\]\:after\:bg-success[data-selected=true]:after{--tw-bg-opacity:1;background-color:hsl(var(--morui-success)/var(--morui-success-opacity,var(--tw-bg-opacity)));content:var(--tw-content)}.before\:bg-success\/20:before,.hover\:after\:bg-success\/20:hover:after{background-color:hsl(var(--morui-success)/.2);content:var(--tw-content)}.after\:bg-warning:after,.before\:bg-warning:before,.data-\[selected\=true\]\:after\:bg-warning[data-selected=true]:after{--tw-bg-opacity:1;background-color:hsl(var(--morui-warning)/var(--morui-warning-opacity,var(--tw-bg-opacity)));content:var(--tw-content)}.before\:bg-warning\/20:before,.hover\:after\:bg-warning\/20:hover:after{background-color:hsl(var(--morui-warning)/.2);content:var(--tw-content)}.before\:bg-gradient-to-r:before{background-image:linear-gradient(to right,var(--tw-gradient-stops));content:var(--tw-content)}.before\:from-transparent:before{--tw-gradient-from:#0000 var(--tw-gradient-from-position);--tw-gradient-to:#0000 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to);content:var(--tw-content)}.before\:via-content4:before{--tw-gradient-to:hsl(var(--morui-content4)/0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),hsl(var(--morui-content4)/var(--morui-content4-opacity,1)) var(--tw-gradient-via-position),var(--tw-gradient-to);content:var(--tw-content)}.before\:to-transparent:before{--tw-gradient-to:#0000 var(--tw-gradient-to-position);content:var(--tw-content)}.after\:opacity-0:after,.before\:opacity-0:before,.data-\[loaded\=true\]\:after\:opacity-0[data-loaded=true]:after,.data-\[loaded\=true\]\:before\:opacity-0[data-loaded=true]:before{content:var(--tw-content);opacity:0}.after\:opacity-100:after,.before\:opacity-100:before,.data-\[selected\=true\]\:after\:opacity-100[data-selected=true]:after,.data-\[selected\=true\]\:before\:opacity-100[data-selected=true]:before,.group[data-odd=true] .group-data-\[odd\=true\]\:before\:opacity-100:before,.group[data-selected=true] .group-data-\[selected\=true\]\:after\:opacity-100:after,.hover\:after\:opacity-100:hover:after{content:var(--tw-content);opacity:1}.before\:shadow-small:before{content:var(--tw-content)}.after\:transition-none:after,.before\:transition-none:before{content:var(--tw-content);transition-property:none}.before\:\!duration-300:before{content:var(--tw-content);transition-duration:.3s!important}.after\:duration-150:after,.before\:duration-150:before{content:var(--tw-content);transition-duration:.15s}.after\:transition-transform:after,.after\:transition-width:after,.before\:transition-colors:before,.before\:transition-opacity:before,.before\:transition-transform:before,.before\:transition-width:before{transition-duration:.25s;transition-timing-function:ease;content:var(--tw-content)}.after\:content-\[\'\'\]:after,.before\:content-\[\'\'\]:before{--tw-content:"";content:var(--tw-content)}.before\:transition-colors:before{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke}.before\:transition-opacity:before{transition-property:opacity}.after\:transition-width:after,.before\:transition-width:before{transition-property:width}.after\:transition-transform:after,.before\:transition-transform:before{transition-property:transform}.after\:-bottom-1:after{bottom:-.25rem;content:var(--tw-content)}.after\:-bottom-\[2px\]:after{bottom:-2px;content:var(--tw-content)}.after\:bottom-0:after{bottom:0;content:var(--tw-content)}.after\:left-0:after{content:var(--tw-content);left:0}.after\:left-1\/2:after,.data-\[placement\=bottom\]\:before\:left-1\/2[data-placement=bottom]:before,.data-\[placement\=top\]\:before\:left-1\/2[data-placement=top]:before{content:var(--tw-content);left:50%}.after\:right-0:after{content:var(--tw-content);right:0}.after\:-z-10:after{content:var(--tw-content);z-index:-10}.after\:ml-0:after{content:var(--tw-content);margin-left:0}.after\:ml-0\.5:after{content:var(--tw-content);margin-left:.125rem}.after\:h-4:after{content:var(--tw-content);height:1rem}.after\:h-5:after{content:var(--tw-content);height:1.25rem}.after\:h-\[2px\]:after{content:var(--tw-content);height:2px}.after\:h-divider:after{content:var(--tw-content);height:var(--morui-divider-weight)}.after\:h-full:after{content:var(--tw-content);height:100%}.after\:w-4:after{content:var(--tw-content);width:1rem}.after\:w-5:after{content:var(--tw-content);width:1.25rem}.after\:w-\[80\%\]:after{content:var(--tw-content);width:80%}.after\:w-full:after,.data-\[focus\=true\]\:after\:w-full[data-focus=true]:after,.data-\[open\=true\]\:after\:w-full[data-open=true]:after,.group[data-focus=true] .group-data-\[focus\=true\]\:after\:w-full:after,.group[data-selected=true] .group-data-\[selected\=true\]\:before\:w-full:before{content:var(--tw-content);width:100%}.after\:origin-center:after{content:var(--tw-content);transform-origin:center}.after\:rounded-\[calc\(theme\(borderRadius\.large\)\/2\)\]:after{border-radius:calc(var(--morui-radius-large)/2);content:var(--tw-content)}.after\:rounded-\[calc\(theme\(borderRadius\.medium\)\/3\)\]:after{border-radius:calc(var(--morui-radius-medium)/3);content:var(--tw-content)}.after\:rounded-\[calc\(theme\(borderRadius\.small\)\/3\)\]:after{border-radius:calc(var(--morui-radius-small)/3);content:var(--tw-content)}.after\:rounded-xl:after{border-radius:.75rem;content:var(--tw-content)}.first\:before\:rounded-l-lg:first-child:before,.first\:rounded-l-lg:first-child{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.after\:bg-background:after{--tw-bg-opacity:1;background-color:hsl(var(--morui-background)/var(--morui-background-opacity,var(--tw-bg-opacity)));content:var(--tw-content)}.after\:bg-content3:after{--tw-bg-opacity:1;background-color:hsl(var(--morui-content3)/var(--morui-content3-opacity,var(--tw-bg-opacity)));content:var(--tw-content)}.after\:bg-default:after{--tw-bg-opacity:1;background-color:hsl(var(--morui-default)/var(--morui-default-opacity,var(--tw-bg-opacity)));content:var(--tw-content)}.after\:bg-default-foreground:after{--tw-bg-opacity:1;background-color:hsl(var(--morui-default-foreground)/var(--morui-default-foreground-opacity,var(--tw-bg-opacity)));content:var(--tw-content)}.after\:bg-divider:after{--tw-bg-opacity:1;background-color:hsl(var(--morui-divider)/var(--morui-divider-opacity,var(--tw-bg-opacity)));content:var(--tw-content)}.after\:text-danger:after{--tw-text-opacity:1;color:hsl(var(--morui-danger)/var(--morui-danger-opacity,var(--tw-text-opacity)));content:var(--tw-content)}.after\:text-danger-foreground:after{--tw-text-opacity:1;color:hsl(var(--morui-danger-foreground)/var(--morui-danger-foreground-opacity,var(--tw-text-opacity)));content:var(--tw-content)}.after\:text-default-foreground:after{--tw-text-opacity:1;color:hsl(var(--morui-default-foreground)/var(--morui-default-foreground-opacity,var(--tw-text-opacity)));content:var(--tw-content)}.after\:text-primary-foreground:after{--tw-text-opacity:1;color:hsl(var(--morui-primary-foreground)/var(--morui-primary-foreground-opacity,var(--tw-text-opacity)));content:var(--tw-content)}.after\:text-secondary-foreground:after{--tw-text-opacity:1;color:hsl(var(--morui-secondary-foreground)/var(--morui-secondary-foreground-opacity,var(--tw-text-opacity)));content:var(--tw-content)}.after\:text-success-foreground:after{--tw-text-opacity:1;color:hsl(var(--morui-success-foreground)/var(--morui-success-foreground-opacity,var(--tw-text-opacity)));content:var(--tw-content)}.after\:text-warning-foreground:after{--tw-text-opacity:1;color:hsl(var(--morui-warning-foreground)/var(--morui-warning-foreground-opacity,var(--tw-text-opacity)));content:var(--tw-content)}.after\:shadow-\[0_1px_0px_0_rgba\(0\2c 0\2c 0\2c 0\.05\)\]:after,.after\:shadow-small:after{content:var(--tw-content)}.after\:\!duration-200:after{content:var(--tw-content);transition-duration:.2s!important}.after\:\!ease-linear:after{content:var(--tw-content);transition-timing-function:linear!important}.after\:transition-all:after,.after\:transition-background:after,.after\:transition-transform-opacity:after{transition-duration:.25s;transition-timing-function:ease;content:var(--tw-content)}.after\:content-\[\'\*\'\]:after{--tw-content:"*";content:var(--tw-content)}.after\:transition-all:after{transition-property:all}.after\:transition-background:after{transition-property:background}.after\:transition-transform-opacity:after{transition-property:transform,opacity}.first\:rounded-s-full:first-child{border-end-start-radius:9999px;border-start-start-radius:9999px}.first\:rounded-s-large:first-child{border-end-start-radius:var(--morui-radius-large);border-start-start-radius:var(--morui-radius-large)}.first\:rounded-s-medium:first-child{border-end-start-radius:var(--morui-radius-medium);border-start-start-radius:var(--morui-radius-medium)}.first\:rounded-s-none:first-child{border-end-start-radius:0;border-start-start-radius:0}.first\:rounded-s-small:first-child{border-end-start-radius:var(--morui-radius-small);border-start-start-radius:var(--morui-radius-small)}.first\:before\:rounded-l-lg:first-child:before{content:var(--tw-content)}.last\:rounded-e-full:last-child{border-end-end-radius:9999px;border-start-end-radius:9999px}.last\:rounded-e-large:last-child{border-end-end-radius:var(--morui-radius-large);border-start-end-radius:var(--morui-radius-large)}.last\:rounded-e-medium:last-child{border-end-end-radius:var(--morui-radius-medium);border-start-end-radius:var(--morui-radius-medium)}.last\:rounded-e-none:last-child{border-end-end-radius:0;border-start-end-radius:0}.last\:rounded-e-small:last-child{border-end-end-radius:var(--morui-radius-small);border-start-end-radius:var(--morui-radius-small)}.last\:before\:rounded-r-lg:last-child:before,.last\:rounded-r-lg:last-child{border-bottom-right-radius:.5rem;border-top-right-radius:.5rem}.last\:before\:rounded-r-lg:last-child:before{content:var(--tw-content)}.focus-within\:border-danger:focus-within{--tw-border-opacity:1;border-color:hsl(var(--morui-danger)/var(--morui-danger-opacity,var(--tw-border-opacity)))}.focus-within\:border-primary:focus-within{--tw-border-opacity:1;border-color:hsl(var(--morui-primary)/var(--morui-primary-opacity,var(--tw-border-opacity)))}.focus-within\:border-secondary:focus-within{--tw-border-opacity:1;border-color:hsl(var(--morui-secondary)/var(--morui-secondary-opacity,var(--tw-border-opacity)))}.focus-within\:border-success:focus-within{--tw-border-opacity:1;border-color:hsl(var(--morui-success)/var(--morui-success-opacity,var(--tw-border-opacity)))}.focus-within\:border-warning:focus-within{--tw-border-opacity:1;border-color:hsl(var(--morui-warning)/var(--morui-warning-opacity,var(--tw-border-opacity)))}.hover\:scale-125:hover{--tw-scale-x:1.25;--tw-scale-y:1.25;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:\!bg-danger:hover{--tw-bg-opacity:1!important;background-color:hsl(var(--morui-danger)/var(--morui-danger-opacity,var(--tw-bg-opacity)))!important}.hover\:\!bg-default:hover{--tw-bg-opacity:1!important;background-color:hsl(var(--morui-default)/var(--morui-default-opacity,var(--tw-bg-opacity)))!important}.hover\:\!bg-foreground:hover{--tw-bg-opacity:1!important;background-color:hsl(var(--morui-foreground)/var(--morui-foreground-opacity,var(--tw-bg-opacity)))!important}.hover\:\!bg-primary:hover{--tw-bg-opacity:1!important;background-color:hsl(var(--morui-primary)/var(--morui-primary-opacity,var(--tw-bg-opacity)))!important}.hover\:\!bg-secondary:hover{--tw-bg-opacity:1!important;background-color:hsl(var(--morui-secondary)/var(--morui-secondary-opacity,var(--tw-bg-opacity)))!important}.hover\:\!bg-success:hover{--tw-bg-opacity:1!important;background-color:hsl(var(--morui-success)/var(--morui-success-opacity,var(--tw-bg-opacity)))!important}.hover\:\!bg-warning:hover{--tw-bg-opacity:1!important;background-color:hsl(var(--morui-warning)/var(--morui-warning-opacity,var(--tw-bg-opacity)))!important}.hover\:\!text-danger-foreground:hover{--tw-text-opacity:1!important;color:hsl(var(--morui-danger-foreground)/var(--morui-danger-foreground-opacity,var(--tw-text-opacity)))!important}.hover\:\!text-primary-foreground:hover{--tw-text-opacity:1!important;color:hsl(var(--morui-primary-foreground)/var(--morui-primary-foreground-opacity,var(--tw-text-opacity)))!important}.hover\:\!text-success-foreground:hover{--tw-text-opacity:1!important;color:hsl(var(--morui-success-foreground)/var(--morui-success-foreground-opacity,var(--tw-text-opacity)))!important}.hover\:\!text-warning-foreground:hover{--tw-text-opacity:1!important;color:hsl(var(--morui-warning-foreground)/var(--morui-warning-foreground-opacity,var(--tw-text-opacity)))!important}.hover\:\!opacity-100:hover{opacity:1!important}.hover\:after\:bg-foreground\/10:hover:after{background-color:hsl(var(--morui-foreground)/.1);content:var(--tw-content)}.focus-visible\:z-10:focus-visible{z-index:10}.focus-visible\:outline-none:focus-visible{outline:#0000 solid 2px;outline-offset:2px}.focus-visible\:outline-2:focus-visible{outline-width:2px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-focus:focus-visible{outline-color:hsl(var(--morui-focus)/var(--morui-focus-opacity,1))}.active\:bg-default-300:active{--tw-bg-opacity:1;background-color:hsl(var(--morui-default-300)/var(--morui-default-300-opacity,var(--tw-bg-opacity)))}.active\:\!opacity-70:active{opacity:.7!important}.data-\[open\=true\]\:block[data-open=true],.group:hover .group-hover\:block,.group[data-focus-visible=true] .group-data-\[focus-visible\=true\]\:block,.peer[data-filled=true]~.peer-data-\[filled\=true\]\:block,.tocCollapsibleContent_ZaYr a{display:block}.group:hover .group-hover\:hidden,.group[data-focus-visible=true] .group-data-\[focus-visible\=true\]\:hidden{display:none}.group:hover .group-hover\:border-current{border-color:currentColor}.aria-expanded\:scale-\[0\.97\][aria-expanded=true],.data-\[pressed\=true\]\:scale-\[0\.97\][data-pressed=true]{--tw-scale-x:0.97;--tw-scale-y:0.97;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[focus-visible\=true\]\:z-10[data-focus-visible=true],.data-\[focused\=true\]\:z-10[data-focused=true],.group[data-focus-visible=true] .group-data-\[focus-visible\=true\]\:z-10{z-index:10}.data-\[has-label\=true\]\:mt-\[calc\(theme\(fontSize\.small\)_\+_10px\)\][data-has-label=true]{margin-top:calc(var(--morui-font-size-small) + 10px)}.data-\[has-label\=true\]\:mt-\[calc\(theme\(fontSize\.small\)_\+_12px\)\][data-has-label=true]{margin-top:calc(var(--morui-font-size-small) + 12px)}.data-\[has-label\=true\]\:mt-\[calc\(theme\(fontSize\.small\)_\+_8px\)\][data-has-label=true]{margin-top:calc(var(--morui-font-size-small) + 8px)}.data-\[focus-visible\=true\]\:-translate-x-3[data-focus-visible=true],.data-\[hover\=true\]\:-translate-x-3[data-hover=true]{--tw-translate-x:-0.75rem}.data-\[hover\=true\]\:translate-x-0[data-hover=true]{--tw-translate-x:0px}.data-\[dragging\=true\]\:cursor-grabbing[data-dragging=true]{cursor:grabbing}.data-\[thumb-hidden\=false\]\:border-x-\[calc\(theme\(spacing\.5\)\/2\)\][data-thumb-hidden=false]{border-left-width:.625rem;border-right-width:.625rem}.data-\[thumb-hidden\=false\]\:border-x-\[calc\(theme\(spacing\.6\)\/2\)\][data-thumb-hidden=false]{border-left-width:.75rem;border-right-width:.75rem}.data-\[thumb-hidden\=false\]\:border-x-\[calc\(theme\(spacing\.7\)\/2\)\][data-thumb-hidden=false]{border-left-width:.875rem;border-right-width:.875rem}.data-\[thumb-hidden\=false\]\:border-y-\[calc\(theme\(spacing\.5\)\/2\)\][data-thumb-hidden=false]{border-bottom-width:.625rem;border-top-width:.625rem}.data-\[thumb-hidden\=false\]\:border-y-\[calc\(theme\(spacing\.6\)\/2\)\][data-thumb-hidden=false]{border-bottom-width:.75rem;border-top-width:.75rem}.data-\[thumb-hidden\=false\]\:border-y-\[calc\(theme\(spacing\.7\)\/2\)\][data-thumb-hidden=false]{border-bottom-width:.875rem;border-top-width:.875rem}.data-\[active\=true\]\:border-danger[data-active=true],.data-\[focus\=true\]\:border-danger[data-focus=true],.data-\[hover\=true\]\:border-danger[data-hover=true],.data-\[open\=true\]\:border-danger[data-open=true]{--tw-border-opacity:1;border-color:hsl(var(--morui-danger)/var(--morui-danger-opacity,var(--tw-border-opacity)))}.data-\[active\=true\]\:border-default-400[data-active=true],.data-\[hover\=true\]\:border-default-400[data-hover=true]{--tw-border-opacity:1;border-color:hsl(var(--morui-default-400)/var(--morui-default-400-opacity,var(--tw-border-opacity)))}.data-\[active\=true\]\:border-primary[data-active=true],.data-\[focus\=true\]\:border-primary[data-focus=true],.data-\[hover\=true\]\:border-primary[data-hover=true],.data-\[open\=true\]\:border-primary[data-open=true]{--tw-border-opacity:1;border-color:hsl(var(--morui-primary)/var(--morui-primary-opacity,var(--tw-border-opacity)))}.data-\[active\=true\]\:border-secondary[data-active=true],.data-\[focus\=true\]\:border-secondary[data-focus=true],.data-\[hover\=true\]\:border-secondary[data-hover=true],.data-\[open\=true\]\:border-secondary[data-open=true]{--tw-border-opacity:1;border-color:hsl(var(--morui-secondary)/var(--morui-secondary-opacity,var(--tw-border-opacity)))}.data-\[active\=true\]\:border-success[data-active=true],.data-\[focus\=true\]\:border-success[data-focus=true],.data-\[hover\=true\]\:border-success[data-hover=true],.data-\[open\=true\]\:border-success[data-open=true]{--tw-border-opacity:1;border-color:hsl(var(--morui-success)/var(--morui-success-opacity,var(--tw-border-opacity)))}.data-\[active\=true\]\:border-warning[data-active=true],.data-\[focus\=true\]\:border-warning[data-focus=true],.data-\[hover\=true\]\:border-warning[data-hover=true],.data-\[open\=true\]\:border-warning[data-open=true]{--tw-border-opacity:1;border-color:hsl(var(--morui-warning)/var(--morui-warning-opacity,var(--tw-border-opacity)))}.data-\[focus\=true\]\:border-default-foreground[data-focus=true],.data-\[open\=true\]\:border-default-foreground[data-open=true],.group[data-focus=true] .group-data-\[focus\=true\]\:border-default-foreground{--tw-border-opacity:1;border-color:hsl(var(--morui-default-foreground)/var(--morui-default-foreground-opacity,var(--tw-border-opacity)))}.data-\[hover\=true\]\:bg-blue-600[data-hover=true]{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity))}.data-\[hover\=true\]\:bg-content2[data-hover=true]{--tw-bg-opacity:1;background-color:hsl(var(--morui-content2)/var(--morui-content2-opacity,var(--tw-bg-opacity)))}.data-\[hover\=true\]\:bg-danger-100[data-hover=true]{--tw-bg-opacity:1;background-color:hsl(var(--morui-danger-100)/var(--morui-danger-100-opacity,var(--tw-bg-opacity)))}.data-\[hover\=true\]\:bg-default\/80[data-hover=true]{background-color:hsl(var(--morui-default)/.8)}.data-\[hover\=true\]\:bg-primary-100[data-hover=true]{--tw-bg-opacity:1;background-color:hsl(var(--morui-primary-100)/var(--morui-primary-100-opacity,var(--tw-bg-opacity)))}.data-\[hover\=true\]\:bg-secondary-100[data-hover=true]{--tw-bg-opacity:1;background-color:hsl(var(--morui-secondary-100)/var(--morui-secondary-100-opacity,var(--tw-bg-opacity)))}.data-\[hover\=true\]\:bg-success-100[data-hover=true]{--tw-bg-opacity:1;background-color:hsl(var(--morui-success-100)/var(--morui-success-100-opacity,var(--tw-bg-opacity)))}.data-\[hover\=true\]\:bg-warning-100[data-hover=true]{--tw-bg-opacity:1;background-color:hsl(var(--morui-warning-100)/var(--morui-warning-100-opacity,var(--tw-bg-opacity)))}.data-\[in-range\=true\]\:bg-background\/50[data-in-range=true]{background-color:hsl(var(--morui-background)/.5)}.data-\[loaded\=true\]\:\!bg-transparent[data-loaded=true]{background-color:initial!important}.data-\[has-end-content\=true\]\:pe-1\.5[data-has-end-content=true]{padding-inline-end:.375rem}.data-\[has-start-content\=true\]\:ps-1\.5[data-has-start-content=true]{padding-inline-start:.375rem}.data-\[disabled\=true\]\:text-default-300[data-disabled=true]{--tw-text-opacity:1;color:hsl(var(--morui-default-300)/var(--morui-default-300-opacity,var(--tw-text-opacity)))}.data-\[hover\=true\]\:text-danger[data-hover=true],.data-\[selected\=true\]\:text-danger[data-selected=true]{--tw-text-opacity:1;color:hsl(var(--morui-danger)/var(--morui-danger-opacity,var(--tw-text-opacity)))}.data-\[hover\=true\]\:text-primary[data-hover=true],.data-\[selected\=true\]\:text-primary[data-selected=true]{--tw-text-opacity:1;color:hsl(var(--morui-primary)/var(--morui-primary-opacity,var(--tw-text-opacity)))}.data-\[hover\=true\]\:text-secondary[data-hover=true],.data-\[selected\=true\]\:text-secondary[data-selected=true]{--tw-text-opacity:1;color:hsl(var(--morui-secondary)/var(--morui-secondary-opacity,var(--tw-text-opacity)))}.data-\[selected\=true\]\:text-success-600[data-selected=true]{--tw-text-opacity:1;color:hsl(var(--morui-success-600)/var(--morui-success-600-opacity,var(--tw-text-opacity)))}.data-\[selected\=true\]\:text-warning-600[data-selected=true]{--tw-text-opacity:1;color:hsl(var(--morui-warning-600)/var(--morui-warning-600-opacity,var(--tw-text-opacity)))}.data-\[hover\=true\]\:opacity-hover[data-hover=true]{opacity:var(--morui-hover-opacity)}.data-\[active\=true\]\:shadow-md[data-active=true]{--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.data-\[hover\=true\]\:shadow-lg[data-hover=true]{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.data-\[hover\=true\]\:shadow-danger\/30[data-hover=true]{--tw-shadow-color:hsl(var(--morui-danger)/0.3);--tw-shadow:var(--tw-shadow-colored)}.data-\[hover\=true\]\:shadow-primary\/30[data-hover=true]{--tw-shadow-color:hsl(var(--morui-primary)/0.3);--tw-shadow:var(--tw-shadow-colored)}.data-\[hover\=true\]\:shadow-secondary\/30[data-hover=true]{--tw-shadow-color:hsl(var(--morui-secondary)/0.3);--tw-shadow:var(--tw-shadow-colored)}.data-\[hover\=true\]\:shadow-success\/30[data-hover=true]{--tw-shadow-color:hsl(var(--morui-success)/0.3);--tw-shadow:var(--tw-shadow-colored)}.data-\[hover\=true\]\:shadow-warning\/30[data-hover=true]{--tw-shadow-color:hsl(var(--morui-warning)/0.3);--tw-shadow:var(--tw-shadow-colored)}.data-\[focus-visible\=true\]\:outline-2[data-focus-visible=true]{outline-width:2px}.data-\[focus-visible\=true\]\:outline-offset-2[data-focus-visible=true]{outline-offset:2px}.data-\[focus-visible\=true\]\:outline-focus[data-focus-visible=true]{outline-color:hsl(var(--morui-focus)/var(--morui-focus-opacity,1))}.data-\[focus-visible\]\:outline-danger-foreground[data-focus-visible]{outline-color:hsl(var(--morui-danger-foreground)/var(--morui-danger-foreground-opacity,1))}.data-\[focus-visible\]\:outline-default-foreground[data-focus-visible]{outline-color:hsl(var(--morui-default-foreground)/var(--morui-default-foreground-opacity,1))}.data-\[focus-visible\]\:outline-primary-foreground[data-focus-visible]{outline-color:hsl(var(--morui-primary-foreground)/var(--morui-primary-foreground-opacity,1))}.data-\[focus-visible\]\:outline-secondary-foreground[data-focus-visible]{outline-color:hsl(var(--morui-secondary-foreground)/var(--morui-secondary-foreground-opacity,1))}.data-\[focus-visible\]\:outline-success-foreground[data-focus-visible]{outline-color:hsl(var(--morui-success-foreground)/var(--morui-success-foreground-opacity,1))}.data-\[focus-visible\]\:outline-warning-foreground[data-focus-visible]{outline-color:hsl(var(--morui-warning-foreground)/var(--morui-warning-foreground-opacity,1))}.data-\[menu-open\=true\]\:backdrop-blur-xl[data-menu-open=true]{--tw-backdrop-blur:blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.data-\[hide-scroll\=true\]\:scrollbar-hide[data-hide-scroll=true]::-webkit-scrollbar{display:none}.data-\[bottom-scroll\=true\]\:\[mask-image\:linear-gradient\(180deg\2c \#000_calc\(100\%_-_var\(--scroll-shadow-size\)\)\2c transparent\)\][data-bottom-scroll=true]{-webkit-mask-image:linear-gradient(180deg,#000 calc(100% - var(--scroll-shadow-size)),#0000);mask-image:linear-gradient(180deg,#000 calc(100% - var(--scroll-shadow-size)),#0000)}.data-\[left-right-scroll\=true\]\:\[mask-image\:linear-gradient\(to_right\2c \#000\2c \#000\2c transparent_0\2c \#000_var\(--scroll-shadow-size\)\2c \#000_calc\(100\%_-_var\(--scroll-shadow-size\)\)\2c transparent\)\][data-left-right-scroll=true]{-webkit-mask-image:linear-gradient(to right,#000,#000,#0000 0,#000 var(--scroll-shadow-size),#000 calc(100% - var(--scroll-shadow-size)),#0000);mask-image:linear-gradient(to right,#000,#000,#0000 0,#000 var(--scroll-shadow-size),#000 calc(100% - var(--scroll-shadow-size)),#0000)}.data-\[left-scroll\=true\]\:\[mask-image\:linear-gradient\(270deg\2c \#000_calc\(100\%_-_var\(--scroll-shadow-size\)\)\2c transparent\)\][data-left-scroll=true]{-webkit-mask-image:linear-gradient(270deg,#000 calc(100% - var(--scroll-shadow-size)),#0000);mask-image:linear-gradient(270deg,#000 calc(100% - var(--scroll-shadow-size)),#0000)}.data-\[right-scroll\=true\]\:\[mask-image\:linear-gradient\(90deg\2c \#000_calc\(100\%_-_var\(--scroll-shadow-size\)\)\2c transparent\)\][data-right-scroll=true]{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - var(--scroll-shadow-size)),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - var(--scroll-shadow-size)),#0000)}.data-\[top-bottom-scroll\=true\]\:\[mask-image\:linear-gradient\(\#000\2c \#000\2c transparent_0\2c \#000_var\(--scroll-shadow-size\)\2c \#000_calc\(100\%_-_var\(--scroll-shadow-size\)\)\2c transparent\)\][data-top-bottom-scroll=true]{-webkit-mask-image:linear-gradient(#000,#000,#0000 0,#000 var(--scroll-shadow-size),#000 calc(100% - var(--scroll-shadow-size)),#0000);mask-image:linear-gradient(#000,#000,#0000 0,#000 var(--scroll-shadow-size),#000 calc(100% - var(--scroll-shadow-size)),#0000)}.data-\[top-scroll\=true\]\:\[mask-image\:linear-gradient\(0deg\2c \#000_calc\(100\%_-_var\(--scroll-shadow-size\)\)\2c transparent\)\][data-top-scroll=true]{-webkit-mask-image:linear-gradient(0deg,#000 calc(100% - var(--scroll-shadow-size)),#0000);mask-image:linear-gradient(0deg,#000 calc(100% - var(--scroll-shadow-size)),#0000)}.data-\[placement\=bottom-end\]\:before\:-top-\[calc\(theme\(spacing\.5\)\/4_-_1\.5px\)\][data-placement=bottom-end]:before,.data-\[placement\=bottom-start\]\:before\:-top-\[calc\(theme\(spacing\.5\)\/4_-_1\.5px\)\][data-placement=bottom-start]:before,.data-\[placement\=bottom\]\:before\:-top-\[calc\(theme\(spacing\.5\)\/4_-_1\.5px\)\][data-placement=bottom]:before{content:var(--tw-content);top:calc(-.3125rem - -1.5px)}.data-\[placement\=bottom-end\]\:before\:right-3[data-placement=bottom-end]:before,.data-\[placement\=top-end\]\:before\:right-3[data-placement=top-end]:before{content:var(--tw-content);right:.75rem}.data-\[placement\=bottom-start\]\:before\:left-3[data-placement=bottom-start]:before,.data-\[placement\=top-start\]\:before\:left-3[data-placement=top-start]:before{content:var(--tw-content);left:.75rem}.data-\[placement\=left-end\]\:before\:-right-\[calc\(theme\(spacing\.5\)\/4_-_3px\)\][data-placement=left-end]:before,.data-\[placement\=left-start\]\:before\:-right-\[calc\(theme\(spacing\.5\)\/4_-_3px\)\][data-placement=left-start]:before{content:var(--tw-content);right:calc(-.3125rem - -3px)}.data-\[placement\=left-end\]\:before\:bottom-1\/4[data-placement=left-end]:before,.data-\[placement\=right-end\]\:before\:bottom-1\/4[data-placement=right-end]:before{bottom:25%;content:var(--tw-content)}.data-\[placement\=left-start\]\:before\:top-1\/4[data-placement=left-start]:before,.data-\[placement\=right-start\]\:before\:top-1\/4[data-placement=right-start]:before{content:var(--tw-content);top:25%}.data-\[placement\=left\]\:before\:-right-\[calc\(theme\(spacing\.5\)\/4_-_2px\)\][data-placement=left]:before{content:var(--tw-content);right:calc(-.3125rem - -2px)}.data-\[placement\=left\]\:before\:top-1\/2[data-placement=left]:before,.data-\[placement\=right\]\:before\:top-1\/2[data-placement=right]:before{content:var(--tw-content);top:50%}.data-\[placement\=right-end\]\:before\:-left-\[calc\(theme\(spacing\.5\)\/4_-_3px\)\][data-placement=right-end]:before,.data-\[placement\=right-start\]\:before\:-left-\[calc\(theme\(spacing\.5\)\/4_-_3px\)\][data-placement=right-start]:before{content:var(--tw-content);left:calc(-.3125rem - -3px)}.data-\[placement\=right\]\:before\:-left-\[calc\(theme\(spacing\.5\)\/4_-_2px\)\][data-placement=right]:before{content:var(--tw-content);left:calc(-.3125rem - -2px)}.data-\[placement\=top-end\]\:before\:-bottom-\[calc\(theme\(spacing\.5\)\/4_-_1\.5px\)\][data-placement=top-end]:before,.data-\[placement\=top-start\]\:before\:-bottom-\[calc\(theme\(spacing\.5\)\/4_-_1\.5px\)\][data-placement=top-start]:before,.data-\[placement\=top\]\:before\:-bottom-\[calc\(theme\(spacing\.5\)\/4_-_1\.5px\)\][data-placement=top]:before{bottom:calc(-.3125rem - -1.5px);content:var(--tw-content)}.data-\[loaded\=true\]\:before\:animate-none[data-loaded=true]:before{animation:none;content:var(--tw-content)}.data-\[dragging\=true\]\:after\:scale-80[data-dragging=true]:after{--tw-scale-x:0.8;--tw-scale-y:0.8}.data-\[selectable\=true\]\:focus\:border-danger:focus[data-selectable=true]{--tw-border-opacity:1;border-color:hsl(var(--morui-danger)/var(--morui-danger-opacity,var(--tw-border-opacity)))}.data-\[selectable\=true\]\:focus\:border-default:focus[data-selectable=true]{--tw-border-opacity:1;border-color:hsl(var(--morui-default)/var(--morui-default-opacity,var(--tw-border-opacity)))}.data-\[selectable\=true\]\:focus\:border-primary:focus[data-selectable=true]{--tw-border-opacity:1;border-color:hsl(var(--morui-primary)/var(--morui-primary-opacity,var(--tw-border-opacity)))}.data-\[selectable\=true\]\:focus\:border-secondary:focus[data-selectable=true]{--tw-border-opacity:1;border-color:hsl(var(--morui-secondary)/var(--morui-secondary-opacity,var(--tw-border-opacity)))}.data-\[selectable\=true\]\:focus\:border-success:focus[data-selectable=true]{--tw-border-opacity:1;border-color:hsl(var(--morui-success)/var(--morui-success-opacity,var(--tw-border-opacity)))}.data-\[selectable\=true\]\:focus\:border-warning:focus[data-selectable=true]{--tw-border-opacity:1;border-color:hsl(var(--morui-warning)/var(--morui-warning-opacity,var(--tw-border-opacity)))}.data-\[selectable\=true\]\:focus\:bg-danger:focus[data-selectable=true]{--tw-bg-opacity:1;background-color:hsl(var(--morui-danger)/var(--morui-danger-opacity,var(--tw-bg-opacity)))}.data-\[selectable\=true\]\:focus\:bg-danger\/20:focus[data-selectable=true]{background-color:hsl(var(--morui-danger)/.2)}.data-\[selectable\=true\]\:focus\:bg-default:focus[data-selectable=true]{--tw-bg-opacity:1;background-color:hsl(var(--morui-default)/var(--morui-default-opacity,var(--tw-bg-opacity)))}.data-\[selectable\=true\]\:focus\:bg-default-100:focus[data-selectable=true]{--tw-bg-opacity:1;background-color:hsl(var(--morui-default-100)/var(--morui-default-100-opacity,var(--tw-bg-opacity)))}.data-\[selectable\=true\]\:focus\:bg-default\/40:focus[data-selectable=true]{background-color:hsl(var(--morui-default)/.4)}.data-\[selectable\=true\]\:focus\:bg-primary:focus[data-selectable=true]{--tw-bg-opacity:1;background-color:hsl(var(--morui-primary)/var(--morui-primary-opacity,var(--tw-bg-opacity)))}.data-\[selectable\=true\]\:focus\:bg-primary\/20:focus[data-selectable=true]{background-color:hsl(var(--morui-primary)/.2)}.data-\[selectable\=true\]\:focus\:bg-secondary:focus[data-selectable=true]{--tw-bg-opacity:1;background-color:hsl(var(--morui-secondary)/var(--morui-secondary-opacity,var(--tw-bg-opacity)))}.data-\[selectable\=true\]\:focus\:bg-secondary\/20:focus[data-selectable=true]{background-color:hsl(var(--morui-secondary)/.2)}.data-\[selectable\=true\]\:focus\:bg-success:focus[data-selectable=true]{--tw-bg-opacity:1;background-color:hsl(var(--morui-success)/var(--morui-success-opacity,var(--tw-bg-opacity)))}.data-\[selectable\=true\]\:focus\:bg-success\/20:focus[data-selectable=true]{background-color:hsl(var(--morui-success)/.2)}.data-\[selectable\=true\]\:focus\:bg-warning:focus[data-selectable=true]{--tw-bg-opacity:1;background-color:hsl(var(--morui-warning)/var(--morui-warning-opacity,var(--tw-bg-opacity)))}.data-\[selectable\=true\]\:focus\:bg-warning\/20:focus[data-selectable=true]{background-color:hsl(var(--morui-warning)/.2)}.data-\[selectable\=true\]\:focus\:text-danger:focus[data-selectable=true]{--tw-text-opacity:1;color:hsl(var(--morui-danger)/var(--morui-danger-opacity,var(--tw-text-opacity)))}.data-\[selectable\=true\]\:focus\:text-danger-foreground:focus[data-selectable=true]{--tw-text-opacity:1;color:hsl(var(--morui-danger-foreground)/var(--morui-danger-foreground-opacity,var(--tw-text-opacity)))}.data-\[selectable\=true\]\:focus\:text-default-500:focus[data-selectable=true]{--tw-text-opacity:1;color:hsl(var(--morui-default-500)/var(--morui-default-500-opacity,var(--tw-text-opacity)))}.data-\[selectable\=true\]\:focus\:text-default-foreground:focus[data-selectable=true]{--tw-text-opacity:1;color:hsl(var(--morui-default-foreground)/var(--morui-default-foreground-opacity,var(--tw-text-opacity)))}.data-\[selectable\=true\]\:focus\:text-primary:focus[data-selectable=true]{--tw-text-opacity:1;color:hsl(var(--morui-primary)/var(--morui-primary-opacity,var(--tw-text-opacity)))}.data-\[selectable\=true\]\:focus\:text-primary-foreground:focus[data-selectable=true]{--tw-text-opacity:1;color:hsl(var(--morui-primary-foreground)/var(--morui-primary-foreground-opacity,var(--tw-text-opacity)))}.data-\[selectable\=true\]\:focus\:text-secondary:focus[data-selectable=true]{--tw-text-opacity:1;color:hsl(var(--morui-secondary)/var(--morui-secondary-opacity,var(--tw-text-opacity)))}.data-\[selectable\=true\]\:focus\:text-secondary-foreground:focus[data-selectable=true]{--tw-text-opacity:1;color:hsl(var(--morui-secondary-foreground)/var(--morui-secondary-foreground-opacity,var(--tw-text-opacity)))}.data-\[selectable\=true\]\:focus\:text-success:focus[data-selectable=true]{--tw-text-opacity:1;color:hsl(var(--morui-success)/var(--morui-success-opacity,var(--tw-text-opacity)))}.data-\[selectable\=true\]\:focus\:text-success-foreground:focus[data-selectable=true]{--tw-text-opacity:1;color:hsl(var(--morui-success-foreground)/var(--morui-success-foreground-opacity,var(--tw-text-opacity)))}.data-\[selectable\=true\]\:focus\:text-warning:focus[data-selectable=true]{--tw-text-opacity:1;color:hsl(var(--morui-warning)/var(--morui-warning-opacity,var(--tw-text-opacity)))}.data-\[selectable\=true\]\:focus\:text-warning-foreground:focus[data-selectable=true]{--tw-text-opacity:1;color:hsl(var(--morui-warning-foreground)/var(--morui-warning-foreground-opacity,var(--tw-text-opacity)))}.data-\[selectable\=true\]\:focus\:shadow-danger\/30:focus[data-selectable=true]{--tw-shadow-color:hsl(var(--morui-danger)/0.3);--tw-shadow:var(--tw-shadow-colored)}.data-\[selectable\=true\]\:focus\:shadow-default\/50:focus[data-selectable=true]{--tw-shadow-color:hsl(var(--morui-default)/0.5);--tw-shadow:var(--tw-shadow-colored)}.data-\[selectable\=true\]\:focus\:shadow-primary\/30:focus[data-selectable=true]{--tw-shadow-color:hsl(var(--morui-primary)/0.3);--tw-shadow:var(--tw-shadow-colored)}.data-\[selectable\=true\]\:focus\:shadow-secondary\/30:focus[data-selectable=true]{--tw-shadow-color:hsl(var(--morui-secondary)/0.3);--tw-shadow:var(--tw-shadow-colored)}.data-\[selectable\=true\]\:focus\:shadow-success\/30:focus[data-selectable=true]{--tw-shadow-color:hsl(var(--morui-success)/0.3);--tw-shadow:var(--tw-shadow-colored)}.data-\[selectable\=true\]\:focus\:shadow-warning\/30:focus[data-selectable=true]{--tw-shadow-color:hsl(var(--morui-warning)/0.3);--tw-shadow:var(--tw-shadow-colored)}.group[data-filled-within=true] .group-data-\[filled-within\=true\]\:pointer-events-auto,.group[data-filled=true] .group-data-\[filled\=true\]\:pointer-events-auto{pointer-events:auto}.group[data-selected=true] .group-data-\[selected\=true\]\:ml-4,.group[data-selected][data-pressed] .group-data-\[selected\]\:group-data-\[pressed\]\:ml-4{margin-left:1rem}.group[data-selected=true] .group-data-\[selected\=true\]\:ml-5,.group[data-selected][data-pressed] .group-data-\[selected\]\:group-data-\[pressed\]\:ml-5{margin-left:1.25rem}.group[data-selected=true] .group-data-\[selected\=true\]\:ml-6{margin-left:1.5rem}.group[data-filled-within=true] .group-data-\[filled-within\=true\]\:-translate-y-\[calc\(100\%_\+_theme\(fontSize\.small\)\/2_\+_20px\)\],.group[data-filled=true] .group-data-\[filled\=true\]\:-translate-y-\[calc\(100\%_\+_theme\(fontSize\.small\)\/2_\+_20px\)\]{--tw-translate-y:calc(-100% + var(--morui-font-size-small)/2*-1 + -20px);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-filled-within=true] .group-data-\[filled-within\=true\]\:-translate-y-\[calc\(100\%_\+_theme\(fontSize\.small\)\/2_\+_24px\)\],.group[data-filled=true] .group-data-\[filled\=true\]\:-translate-y-\[calc\(100\%_\+_theme\(fontSize\.small\)\/2_\+_24px\)\]{--tw-translate-y:calc(-100% + var(--morui-font-size-small)/2*-1 + -24px);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-filled-within=true] .group-data-\[filled-within\=true\]\:-translate-y-\[calc\(100\%_\+_theme\(fontSize\.tiny\)\/2_\+_16px\)\],.group[data-filled=true] .group-data-\[filled\=true\]\:-translate-y-\[calc\(100\%_\+_theme\(fontSize\.tiny\)\/2_\+_16px\)\]{--tw-translate-y:calc(-100% + var(--morui-font-size-tiny)/2*-1 + -16px);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-filled-within=true] .group-data-\[filled-within\=true\]\:-translate-y-\[calc\(50\%_\+_theme\(fontSize\.small\)\/2_-_3\.5px\)\],.group[data-filled=true] .group-data-\[filled\=true\]\:-translate-y-\[calc\(50\%_\+_theme\(fontSize\.small\)\/2_-_3\.5px\)\]{--tw-translate-y:calc(-50% + var(--morui-font-size-small)/2*-1 - -3.5px);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-filled-within=true] .group-data-\[filled-within\=true\]\:-translate-y-\[calc\(50\%_\+_theme\(fontSize\.small\)\/2_-_4px\)\],.group[data-filled=true] .group-data-\[filled\=true\]\:-translate-y-\[calc\(50\%_\+_theme\(fontSize\.small\)\/2_-_4px\)\]{--tw-translate-y:calc(-50% + var(--morui-font-size-small)/2*-1 - -4px);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-filled-within=true] .group-data-\[filled-within\=true\]\:-translate-y-\[calc\(50\%_\+_theme\(fontSize\.small\)\/2_-_6px\)\],.group[data-filled=true] .group-data-\[filled\=true\]\:-translate-y-\[calc\(50\%_\+_theme\(fontSize\.small\)\/2_-_6px\)\]{--tw-translate-y:calc(-50% + var(--morui-font-size-small)/2*-1 - -6px);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-filled-within=true] .group-data-\[filled-within\=true\]\:-translate-y-\[calc\(50\%_\+_theme\(fontSize\.small\)\/2_-_6px_-_theme\(borderWidth\.medium\)\)\],.group[data-filled=true] .group-data-\[filled\=true\]\:-translate-y-\[calc\(50\%_\+_theme\(fontSize\.small\)\/2_-_6px_-_theme\(borderWidth\.medium\)\)\]{--tw-translate-y:calc(-50% + var(--morui-font-size-small)/2*-1 - -6px - var(--morui-border-width-medium)*-1);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-filled-within=true] .group-data-\[filled-within\=true\]\:-translate-y-\[calc\(50\%_\+_theme\(fontSize\.small\)\/2_-_8px\)\],.group[data-filled=true] .group-data-\[filled\=true\]\:-translate-y-\[calc\(50\%_\+_theme\(fontSize\.small\)\/2_-_8px\)\]{--tw-translate-y:calc(-50% + var(--morui-font-size-small)/2*-1 - -8px);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-filled-within=true] .group-data-\[filled-within\=true\]\:-translate-y-\[calc\(50\%_\+_theme\(fontSize\.small\)\/2_-_8px_-_theme\(borderWidth\.medium\)\)\],.group[data-filled=true] .group-data-\[filled\=true\]\:-translate-y-\[calc\(50\%_\+_theme\(fontSize\.small\)\/2_-_8px_-_theme\(borderWidth\.medium\)\)\]{--tw-translate-y:calc(-50% + var(--morui-font-size-small)/2*-1 - -8px - var(--morui-border-width-medium)*-1);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-filled-within=true] .group-data-\[filled-within\=true\]\:-translate-y-\[calc\(50\%_\+_theme\(fontSize\.tiny\)\/2_-_5px\)\],.group[data-filled=true] .group-data-\[filled\=true\]\:-translate-y-\[calc\(50\%_\+_theme\(fontSize\.tiny\)\/2_-_5px\)\]{--tw-translate-y:calc(-50% + var(--morui-font-size-tiny)/2*-1 - -5px);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-filled-within=true] .group-data-\[filled-within\=true\]\:-translate-y-\[calc\(50\%_\+_theme\(fontSize\.tiny\)\/2_-_8px\)\],.group[data-filled=true] .group-data-\[filled\=true\]\:-translate-y-\[calc\(50\%_\+_theme\(fontSize\.tiny\)\/2_-_8px\)\]{--tw-translate-y:calc(-50% + var(--morui-font-size-tiny)/2*-1 - -8px);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-filled-within=true] .group-data-\[filled-within\=true\]\:-translate-y-\[calc\(50\%_\+_theme\(fontSize\.tiny\)\/2_-_8px_-_theme\(borderWidth\.medium\)\)\],.group[data-filled=true] .group-data-\[filled\=true\]\:-translate-y-\[calc\(50\%_\+_theme\(fontSize\.tiny\)\/2_-_8px_-_theme\(borderWidth\.medium\)\)\]{--tw-translate-y:calc(-50% + var(--morui-font-size-tiny)/2*-1 - -8px - var(--morui-border-width-medium)*-1);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-selected=true] .group-data-\[selected\=true\]\:translate-x-3{--tw-translate-x:0.75rem}.group[data-copied=true] .group-data-\[copied\=true\]\:scale-50{--tw-scale-x:.5;--tw-scale-y:.5;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-filled-within=true] .group-data-\[filled-within\=true\]\:scale-85,.group[data-filled=true] .group-data-\[filled\=true\]\:scale-85{--tw-scale-x:0.85;--tw-scale-y:0.85;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-pressed=true] .group-data-\[pressed\=true\]\:scale-95{--tw-scale-x:.95;--tw-scale-y:.95}.group[data-focus=true] .group-data-\[focus\=true\]\:border-danger,.group[data-selected=true] .group-data-\[selected\=true\]\:border-danger{--tw-border-opacity:1;border-color:hsl(var(--morui-danger)/var(--morui-danger-opacity,var(--tw-border-opacity)))}.group[data-focus=true] .group-data-\[focus\=true\]\:border-primary,.group[data-selected=true] .group-data-\[selected\=true\]\:border-primary{--tw-border-opacity:1;border-color:hsl(var(--morui-primary)/var(--morui-primary-opacity,var(--tw-border-opacity)))}.group[data-focus=true] .group-data-\[focus\=true\]\:border-secondary,.group[data-selected=true] .group-data-\[selected\=true\]\:border-secondary{--tw-border-opacity:1;border-color:hsl(var(--morui-secondary)/var(--morui-secondary-opacity,var(--tw-border-opacity)))}.group[data-focus=true] .group-data-\[focus\=true\]\:border-success,.group[data-selected=true] .group-data-\[selected\=true\]\:border-success{--tw-border-opacity:1;border-color:hsl(var(--morui-success)/var(--morui-success-opacity,var(--tw-border-opacity)))}.group[data-focus=true] .group-data-\[focus\=true\]\:border-warning,.group[data-selected=true] .group-data-\[selected\=true\]\:border-warning{--tw-border-opacity:1;border-color:hsl(var(--morui-warning)/var(--morui-warning-opacity,var(--tw-border-opacity)))}.group[data-selected=true] .group-data-\[selected\=true\]\:border-default-500{--tw-border-opacity:1;border-color:hsl(var(--morui-default-500)/var(--morui-default-500-opacity,var(--tw-border-opacity)))}.\[\&\[data-hover\=true\]\:not\(\[data-active\=true\]\)\]\:bg-default-100[data-hover=true]:not([data-active=true]),.group[data-focus=true] .group-data-\[focus\=true\]\:bg-default-100,.group[data-hover-unselected=true] .group-data-\[hover-unselected\=true\]\:bg-default-100{--tw-bg-opacity:1;background-color:hsl(var(--morui-default-100)/var(--morui-default-100-opacity,var(--tw-bg-opacity)))}.group[data-selected=true] .group-data-\[selected\=true\]\:bg-danger{--tw-bg-opacity:1;background-color:hsl(var(--morui-danger)/var(--morui-danger-opacity,var(--tw-bg-opacity)))}.group[data-selected=true] .group-data-\[selected\=true\]\:bg-primary{--tw-bg-opacity:1;background-color:hsl(var(--morui-primary)/var(--morui-primary-opacity,var(--tw-bg-opacity)))}.group[data-selected=true] .group-data-\[selected\=true\]\:bg-secondary{--tw-bg-opacity:1;background-color:hsl(var(--morui-secondary)/var(--morui-secondary-opacity,var(--tw-bg-opacity)))}.group[data-selected=true] .group-data-\[selected\=true\]\:bg-success{--tw-bg-opacity:1;background-color:hsl(var(--morui-success)/var(--morui-success-opacity,var(--tw-bg-opacity)))}.group[data-selected=true] .group-data-\[selected\=true\]\:bg-warning{--tw-bg-opacity:1;background-color:hsl(var(--morui-warning)/var(--morui-warning-opacity,var(--tw-bg-opacity)))}.group[data-has-helper=true] .group-data-\[has-helper\=true\]\:pt-3{padding-top:.75rem}.group[data-has-helper=true] .group-data-\[has-helper\=true\]\:pt-4,.group[data-has-label=true] .group-data-\[has-label\=true\]\:pt-4{padding-top:1rem}.group[data-has-label=true] .group-data-\[has-label\=true\]\:pt-5{padding-top:1.25rem}.group[data-disabled=true] .group-data-\[disabled\=true\]\:text-foreground-300{--tw-text-opacity:1;color:hsl(var(--morui-foreground-300)/var(--morui-foreground-300-opacity,var(--tw-text-opacity)))}.group[data-has-value=true] .group-data-\[has-value\=true\]\:text-default-foreground,.group[data-selected=true] .group-data-\[selected\=true\]\:text-default-foreground{--tw-text-opacity:1;color:hsl(var(--morui-default-foreground)/var(--morui-default-foreground-opacity,var(--tw-text-opacity)))}.group[data-invalid=true] .group-data-\[invalid\=true\]\:text-danger,.group[data-selected=true] .group-data-\[selected\=true\]\:text-danger{--tw-text-opacity:1;color:hsl(var(--morui-danger)/var(--morui-danger-opacity,var(--tw-text-opacity)))}.group[data-selected=true] .group-data-\[selected\=true\]\:text-danger-foreground{--tw-text-opacity:1;color:hsl(var(--morui-danger-foreground)/var(--morui-danger-foreground-opacity,var(--tw-text-opacity)))}.group[data-selected=true] .group-data-\[selected\=true\]\:text-primary{--tw-text-opacity:1;color:hsl(var(--morui-primary)/var(--morui-primary-opacity,var(--tw-text-opacity)))}.group[data-selected=true] .group-data-\[selected\=true\]\:text-primary-foreground{--tw-text-opacity:1;color:hsl(var(--morui-primary-foreground)/var(--morui-primary-foreground-opacity,var(--tw-text-opacity)))}.group[data-selected=true] .group-data-\[selected\=true\]\:text-secondary{--tw-text-opacity:1;color:hsl(var(--morui-secondary)/var(--morui-secondary-opacity,var(--tw-text-opacity)))}.group[data-selected=true] .group-data-\[selected\=true\]\:text-secondary-foreground{--tw-text-opacity:1;color:hsl(var(--morui-secondary-foreground)/var(--morui-secondary-foreground-opacity,var(--tw-text-opacity)))}.group[data-selected=true] .group-data-\[selected\=true\]\:text-success{--tw-text-opacity:1;color:hsl(var(--morui-success)/var(--morui-success-opacity,var(--tw-text-opacity)))}.group[data-selected=true] .group-data-\[selected\=true\]\:text-success-foreground{--tw-text-opacity:1;color:hsl(var(--morui-success-foreground)/var(--morui-success-foreground-opacity,var(--tw-text-opacity)))}.group[data-selected=true] .group-data-\[selected\=true\]\:text-warning{--tw-text-opacity:1;color:hsl(var(--morui-warning)/var(--morui-warning-opacity,var(--tw-text-opacity)))}.group[data-selected=true] .group-data-\[selected\=true\]\:text-warning-foreground{--tw-text-opacity:1;color:hsl(var(--morui-warning-foreground)/var(--morui-warning-foreground-opacity,var(--tw-text-opacity)))}.group[data-selected=true] .group-data-\[selected\=true\]\:opacity-60{opacity:.6}.group[data-focus-visible=true] .group-data-\[focus-visible\=true\]\:ring-2{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.group[data-open=true] .group-data-\[open\=true\]\:before\:translate-y-px:before{--tw-translate-y:1px}.group[aria-selected=false][data-hover=true] .group-aria-\[selected\=false\]\:group-data-\[hover\=true\]\:before\:bg-default-100:before,.group[data-hover=true] .group-data-\[hover\=true\]\:before\:bg-default-100:before,.group[data-odd=true] .group-data-\[odd\=true\]\:before\:bg-default-100:before{--tw-bg-opacity:1;background-color:hsl(var(--morui-default-100)/var(--morui-default-100-opacity,var(--tw-bg-opacity)));content:var(--tw-content)}.group[data-open=true] .group-data-\[open\=true\]\:after\:translate-y-0:after{--tw-translate-y:0px}.group[data-open=true] .group-data-\[open\=true\]\:after\:-rotate-45:after{--tw-rotate:-45deg}.group[data-selected=true] .group-data-\[selected\=true\]\:after\:scale-100:after{--tw-scale-x:1;--tw-scale-y:1;content:var(--tw-content);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-first=true] .group-data-\[first\=true\]\:first\:before\:rounded-tl-lg:first-child:before{border-top-left-radius:.5rem;content:var(--tw-content)}.group[data-last=true] .group-data-\[last\=true\]\:first\:before\:rounded-bl-lg:first-child:before{border-bottom-left-radius:.5rem;content:var(--tw-content)}.group[data-first=true] .group-data-\[first\=true\]\:last\:before\:rounded-tr-lg:last-child:before{border-top-right-radius:.5rem;content:var(--tw-content)}.group[data-last=true] .group-data-\[last\=true\]\:last\:before\:rounded-br-lg:last-child:before{border-bottom-right-radius:.5rem;content:var(--tw-content)}.group[aria-selected=false][data-hover=true] .group-aria-\[selected\=false\]\:group-data-\[hover\=true\]\:before\:opacity-70:before{content:var(--tw-content);opacity:.7}:is([data-theme=dark] .dark\:bg-background\/20){background-color:hsl(var(--morui-background)/.2)}:is([data-theme=dark] .dark\:bg-content2){--tw-bg-opacity:1;background-color:hsl(var(--morui-content2)/var(--morui-content2-opacity,var(--tw-bg-opacity)))}:is([data-theme=dark] .dark\:bg-default){--tw-bg-opacity:1;background-color:hsl(var(--morui-default)/var(--morui-default-opacity,var(--tw-bg-opacity)))}:is([data-theme=dark] .dark\:bg-transparent){background-color:initial}:is([data-theme=dark] .dark\:text-danger-500){--tw-text-opacity:1;color:hsl(var(--morui-danger-500)/var(--morui-danger-500-opacity,var(--tw-text-opacity)))}:is([data-theme=dark] .dark\:text-success){--tw-text-opacity:1;color:hsl(var(--morui-success)/var(--morui-success-opacity,var(--tw-text-opacity)))}:is([data-theme=dark] .dark\:text-warning){--tw-text-opacity:1;color:hsl(var(--morui-warning)/var(--morui-warning-opacity,var(--tw-text-opacity)))}:is([data-theme=dark] .dark\:placeholder\:text-danger-500)::placeholder{--tw-text-opacity:1;color:hsl(var(--morui-danger-500)/var(--morui-danger-500-opacity,var(--tw-text-opacity)))}:is([data-theme=dark] .dark\:placeholder\:text-success)::placeholder{--tw-text-opacity:1;color:hsl(var(--morui-success)/var(--morui-success-opacity,var(--tw-text-opacity)))}:is([data-theme=dark] .dark\:placeholder\:text-warning)::placeholder{--tw-text-opacity:1;color:hsl(var(--morui-warning)/var(--morui-warning-opacity,var(--tw-text-opacity)))}:is([data-theme=dark] .dark\:before\:via-default-700\/10):before{--tw-gradient-to:hsl(var(--morui-default-700)/0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),hsl(var(--morui-default-700)/0.1) var(--tw-gradient-via-position),var(--tw-gradient-to);content:var(--tw-content)}:is([data-theme=dark] .dark\:after\:bg-content2):after{content:var(--tw-content)}:is([data-theme=dark] .dark\:after\:bg-content2):after,:is([data-theme=dark] .dark\:data-\[hover\=true\]\:bg-content2[data-hover=true]){--tw-bg-opacity:1;background-color:hsl(var(--morui-content2)/var(--morui-content2-opacity,var(--tw-bg-opacity)))}:is([data-theme=dark] .dark\:data-\[selected\=true\]\:text-danger-500[data-selected=true]){--tw-text-opacity:1;color:hsl(var(--morui-danger-500)/var(--morui-danger-500-opacity,var(--tw-text-opacity)))}:is([data-theme=dark] .dark\:data-\[selected\=true\]\:text-success[data-selected=true]){--tw-text-opacity:1;color:hsl(var(--morui-success)/var(--morui-success-opacity,var(--tw-text-opacity)))}:is([data-theme=dark] .dark\:data-\[selected\=true\]\:text-warning[data-selected=true]){--tw-text-opacity:1;color:hsl(var(--morui-warning)/var(--morui-warning-opacity,var(--tw-text-opacity)))}.rtl\:-rotate-180:where([dir=rtl],[dir=rtl] *){--tw-rotate:-180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rtl\:data-\[open\=true\]\:-rotate-90[data-open=true]:where([dir=rtl],[dir=rtl] *){--tw-rotate:-90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\+\.border-medium\.border-danger\]\:ms-\[calc\(theme\(borderWidth\.medium\)\*-1\)\]+.border-medium.border-danger,.\[\&\+\.border-medium\.border-default\]\:ms-\[calc\(theme\(borderWidth\.medium\)\*-1\)\]+.border-medium.border-default,.\[\&\+\.border-medium\.border-primary\]\:ms-\[calc\(theme\(borderWidth\.medium\)\*-1\)\]+.border-medium.border-primary,.\[\&\+\.border-medium\.border-secondary\]\:ms-\[calc\(theme\(borderWidth\.medium\)\*-1\)\]+.border-medium.border-secondary,.\[\&\+\.border-medium\.border-success\]\:ms-\[calc\(theme\(borderWidth\.medium\)\*-1\)\]+.border-medium.border-success,.\[\&\+\.border-medium\.border-warning\]\:ms-\[calc\(theme\(borderWidth\.medium\)\*-1\)\]+.border-medium.border-warning{margin-inline-start:calc(var(--morui-border-width-medium)*-1)}.\[\&\:not\(\:first-of-type\)\]\:ml-\[calc\(theme\(borderWidth\.2\)\*-1\)\]:not(:first-of-type){margin-left:-2px}.\[\&\>svg\]\:max-w-\[theme\(spacing\.unit-8\)\]>svg{max-width:var(--morui-spacing-unit-8)}.\[\&\>tr\]\:first\:rounded-lg:first-child>tr{border-radius:.5rem}.iconEdit_hXYy{margin-right:.3em;vertical-align:sub}.tag_v7WR{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_v7WR:hover{--docusaurus-tag-list-border:var(--ifm-link-color);text-decoration:none}.tagRegular_Je6X{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_joth{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_joth:after,.tagWithCount_joth:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_joth:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_joth:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_joth span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.tags_h90I{display:inline}.tag_sssu{display:inline-block;margin:0 .4rem .5rem 0}.lastUpdated_QCdV{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_WOPX{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.DocSearch-Button,.DocSearch-Button-Container{align-items:center;display:flex}.tocCollapsibleButton_WOPX:after{background:var(--ifm-menu-link-sublist-icon) 50% 50%/2rem 2rem no-repeat;content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleButtonExpanded_rwL1:after,.tocCollapsibleExpanded_PvQh{transform:none}.tocCollapsible_DiAg{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_ZaYr>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_ZaYr ul li{margin:.4rem .8rem}.tableOfContents_BZNS{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.backToTopButton_Q4cv{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.backToTopButton_Q4cv:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_k11J{opacity:1;transform:scale(1);visibility:visible}.DocSearch-Button{background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;font-weight:500;height:36px;justify-content:space-between;padding:0 8px;-webkit-user-select:none;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:0}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Hit-Tree,.DocSearch-Hit-action,.DocSearch-Hit-icon,.DocSearch-Reset{stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Input,.DocSearch-Link{-webkit-appearance:none;font:inherit}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border:0;border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 2px;position:relative;top:-1px;width:20px}.DocSearch--active{overflow:hidden!important}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Container a{text-decoration:none}.DocSearch-Hit[aria-selected=true] mark,.content_SSOG a{text-decoration:underline}.DocSearch-Link{appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{appearance:none;background:#0000;border:0;color:var(--docsearch-text-color);flex:1;font-size:1.2em;height:100%;outline:0;padding:0 0 0 8px;width:80%}.DocSearch-Hit-action-button,.DocSearch-Reset{-webkit-appearance:none;border:0;cursor:pointer}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Cancel,.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator,.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset{animation:.1s ease-in forwards e;appearance:none;background:none;border-radius:50%;color:var(--docsearch-icon-color);padding:2px;right:0}.DocSearch-Help,.DocSearch-HitsFooter,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:#0000}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help{font-size:.9em;margin:0;-webkit-user-select:none;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}.DocSearch-Hit--deleting{opacity:0;transition:.25s linear}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:.25s linear .25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{appearance:none;background:none;border-radius:50%;color:inherit;padding:2px}#__docusaurus-base-url-issue-banner-container,.docSidebarContainer_yZX9,.sidebarLogo__8Im,.themedComponent_RIc6,[data-theme=dark] .lightToggleIcon_IrFl,[data-theme=light] .darkToggleIcon_Jumi,html[data-announcement-bar-initially-dismissed=true] .announcementBar_YClq,svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:background-color .1s ease-in}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{-webkit-appearance:none;appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:0;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;-webkit-user-select:none;user-select:none;width:100%;z-index:300}.DocSearch-Commands li,.DocSearch-Commands-Key{align-items:center;display:flex}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{background:var(--docsearch-key-gradient);border:0;border-radius:2px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;width:20px}@keyframes e{0%{opacity:0}to{opacity:1}}.DocSearch-Button{margin:0;transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.DocSearch-Container,.skipToContent__k5K{z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent__k5K{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem}.skipToContent__k5K:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_QXR6{line-height:0;padding:0}.content_SSOG{font-size:85%;padding:5px 0;text-align:center}.content_SSOG a{color:inherit}.announcementBar_YClq{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}.announcementBarPlaceholder_Qmwd{flex:0 0 10px}.announcementBarClose_w_TL{align-self:stretch;flex:0 0 30px}.toggle_KhJ_{height:2rem;width:2rem}.toggleButton_NdO2{align-items:center;border-radius:50%;display:flex;height:100%;justify-content:center;transition:background var(--ifm-transition-fast);width:100%}.toggleButton_NdO2:hover{background:var(--ifm-color-emphasis-200)}.darkNavbarColorModeToggle_uYg4:hover{background:var(--ifm-color-gray-800)}[data-theme=dark] .themedComponent--dark_XAeT,[data-theme=light] .themedComponent--light_aQWN,html:not([data-theme]) .themedComponent--light_aQWN{display:initial}[data-theme=dark]:root{--docusaurus-collapse-button-bg:#ffffff0d;--docusaurus-collapse-button-bg-hover:#ffffff1a}.collapseSidebarButton_sDws{display:none;margin:0}.iconExternalLink_wCmh{margin-left:.3rem}.docMainContainer_tpdO,.docRoot_hd24{display:flex;width:100%}.docsWrapper_sXuj{display:flex;flex:1 0 auto}.iconLanguage_Ihod{margin-right:5px;vertical-align:text-bottom}@supports selector(:has(*)){.navbarSearchContainer_pjLh:not(:has(>*)){display:none}}.navbarHideable_6CjN{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_Qzz3{transform:translate3d(0,calc(-100% - 2px),0)}.errorBoundaryError_dRln{color:red;white-space:pre-wrap}.errorBoundaryFallback_IrKq{color:red;padding:.55rem}.buttonGroup_h4Ab button,.codeBlockContainer_TrXU{background:var(--prism-background-color);color:var(--prism-color)}.footerLogoLink_DDai{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}.anchorWithStickyNavbar_an0H{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_W1Gw{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none}.hash-link:before{content:"#"}.mainWrapper_qbsJ{display:flex;flex:1 0 auto;flex-direction:column}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column}.codeBlockContainer_TrXU{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlockContent_oDlV{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_KMGw{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlock_vqyv{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockTitle_KMGw+.codeBlockContent_oDlV .codeBlock_vqyv{border-top-left-radius:0;border-top-right-radius:0}.codeBlockLines_w6yq{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_xm_F{display:table;padding:var(--ifm-pre-padding) 0}.buttonGroup_h4Ab{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup_h4Ab button{align-items:center;border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;line-height:0;opacity:0;padding:.4rem;transition:opacity var(--ifm-transition-fast) ease-in-out}.buttonGroup_h4Ab button:focus-visible,.buttonGroup_h4Ab button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup_h4Ab button{opacity:.4}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_shsP{counter-increment:a;display:table-row}.codeLineNumber_CBFI{background:var(--ifm-pre-background);display:table-cell;left:0;overflow-wrap:normal;padding:0 var(--ifm-pre-padding);position:sticky;text-align:right;width:1%}.codeLineNumber_CBFI:before{content:counter(a);opacity:.4}.codeLineContent_BLTN{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_MqjE{opacity:1!important}.copyButtonIcons_DAVD{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_WHRT,.copyButtonSuccessIcon_N87f{fill:currentColor;height:inherit;left:0;opacity:inherit;position:absolute;top:0;transition:all var(--ifm-transition-fast) ease;width:inherit}.copyButtonSuccessIcon_N87f{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_MqjE .copyButtonIcon_WHRT{opacity:0;transform:scale(.33)}.copyButtonCopied_MqjE .copyButtonSuccessIcon_N87f{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.wordWrapButtonIcon_lc89{height:1.2rem;width:1.2rem}.details_b_me{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_b_me>summary{cursor:pointer;list-style:none;padding-left:1rem;position:relative}.details_b_me>summary::-webkit-details-marker{display:none}.details_b_me>summary:before{border-color:#0000 #0000 #0000 var(--docusaurus-details-decoration-color);border-style:solid;border-width:var(--docusaurus-details-summary-arrow-size);content:"";left:0;position:absolute;top:.45rem;transform:rotate(0);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;transition:var(--docusaurus-details-transition)}.collapsibleContent_tCQ3{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.details_Y1an{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast) ease;border:1px solid var(--ifm-alert-border-color);margin:0 0 var(--ifm-spacing-vertical)}.containsTaskList_uDxK{list-style:none}.admonition__zDI{margin-bottom:1em}.admonitionHeading_hlA6{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family)}.admonitionHeading_hlA6:not(:last-child){margin-bottom:.3rem}.admonitionHeading_hlA6 code{text-transform:none}.admonitionIcon_hl6_{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_hl6_ svg{fill:var(--ifm-alert-foreground-color);display:inline-block;height:1.6em;width:1.6em}.breadcrumbHomeIcon_cCRz{height:1.1rem;position:relative;top:1px;vertical-align:top;width:1.1rem}.breadcrumbsContainer_azfw{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}.searchQueryInput_t4SI,.searchVersionInput_VRdv{background:var(--docsearch-searchbox-focus-background);border:2px solid var(--ifm-toc-border-color);border-radius:var(--ifm-global-radius);color:var(--docsearch-text-color);font:var(--ifm-font-size-base) var(--ifm-font-family-base);margin-bottom:.5rem;padding:.8rem;transition:border var(--ifm-transition-fast) ease;width:100%}.searchQueryInput_t4SI:focus,.searchVersionInput_VRdv:focus{border-color:var(--docsearch-primary-color);outline:0}.searchQueryInput_t4SI::placeholder{color:var(--docsearch-muted-color)}.searchResultsColumn_QzhY{font-size:.9rem;font-weight:700}.algoliaLogo_pMFB{max-width:150px}.algoliaLogoPathFill_N2Hb{fill:var(--ifm-font-color-base)}.searchResultItem_UjTk{border-bottom:1px solid var(--ifm-toc-border-color);padding:1rem 0}.searchResultItemHeading_lptN{font-weight:400;margin-bottom:0}.searchResultItemPath_zNJY{--ifm-breadcrumb-separator-size-multiplier:1;color:var(--ifm-color-content-secondary);font-size:.8rem}.searchResultItemSummary_NMRP{font-style:italic;margin:.5rem 0 0}.loadingSpinner_SiMU{animation:1s linear infinite f;border:.4em solid #eee;border-radius:50%;border-top:.4em solid var(--ifm-color-primary);height:3rem;margin:0 auto;width:3rem}@keyframes f{to{transform:rotate(1turn)}}.loader_sHs5{margin-top:2rem}.search-result-match{background:#ffd78e40;color:var(--docsearch-hit-color);padding:.09em 0}@media (min-width:375px){.header-bg{height:115px}}@media (min-width:425px){.header-bg{height:130px}}@media (min-width:640px){.sm\:mx-0{margin-left:0;margin-right:0}.sm\:mx-6{margin-left:1.5rem;margin-right:1.5rem}.sm\:my-0{margin-bottom:0;margin-top:0}.sm\:my-16{margin-bottom:4rem;margin-top:4rem}.sm\:items-start{align-items:flex-start}.sm\:items-end{align-items:flex-end}.sm\:items-center{align-items:center}.sm\:\[--scale-enter\:100\%\]{--scale-enter:100%}.sm\:\[--scale-exit\:103\%\]{--scale-exit:103%}.sm\:\[--slide-enter\:0px\]{--slide-enter:0px}.sm\:\[--slide-exit\:0px\]{--slide-exit:0px}.sm\:data-\[visible\=true\]\:opacity-0[data-visible=true]{opacity:0}.group[data-hover=true] .sm\:group-data-\[hover\=true\]\:data-\[visible\=true\]\:opacity-100[data-visible=true]{opacity:1}}@media (min-width:768px){.header-bg{height:235px}.md\:order-1{order:1}.md\:h-\[780px\]{height:780px}.md\:w-\[128px\]{width:128px}.md\:w-\[284px\]{width:284px}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:px-0{padding-left:0;padding-right:0}.md\:py-10{padding-bottom:2.5rem;padding-top:2.5rem}.md\:pt-\[100px\]{padding-top:100px}.md\:text-\[84px\]{font-size:84px}.md\:text-\[85px\]{font-size:85px}.md\:text-tiny{font-size:var(--morui-font-size-tiny);line-height:var(--morui-line-height-tiny)}.md\:\!font-semibold{font-weight:600!important}.md\:leading-\[84px\]{line-height:84px}.md\:leading-\[85px\]{line-height:85px}}@media (min-width:997px){.collapseSidebarButton_sDws,.expandButton_wG66{background-color:var(--docusaurus-collapse-button-bg)}.lastUpdated_QCdV{text-align:right}.tocMobile_Xpp9{display:none}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_w_TL,.announcementBarPlaceholder_Qmwd{flex-basis:50px}.collapseSidebarButton_sDws{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:sticky}.collapseSidebarButtonIcon_rxJT{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon__WPc,[dir=rtl] .collapseSidebarButtonIcon_rxJT{transform:rotate(0)}.collapseSidebarButton_sDws:focus,.collapseSidebarButton_sDws:hover,.expandButton_wG66:focus,.expandButton_wG66:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.menuHtmlItem_XrYY{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_Mh0c{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_Mh0c{padding:.5rem 0 .5rem .5rem;scrollbar-gutter:stable}}.menuWithAnnouncementBar_Amec{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_NCyT{display:flex;flex-direction:column;height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_Do0s{padding-top:0}.sidebarHidden_o49B{opacity:0;visibility:hidden}.sidebarLogo__8Im{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);text-decoration:none!important}.sidebarLogo__8Im img{height:2rem;margin-right:.5rem}.expandButton_wG66{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;right:0;top:0;transition:background-color var(--ifm-transition-fast) ease;width:100%}[dir=rtl] .expandButtonIcon__WPc{transform:rotate(180deg)}.docSidebarContainer_yZX9{border-right:1px solid var(--ifm-toc-border-color);-webkit-clip-path:inset(0);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_D9jl{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.sidebarViewport_sl_0{height:100%;max-height:100vh;position:sticky;top:0}.docMainContainer_tpdO{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_u9if{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_RMEV{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}.navbarSearchContainer_pjLh{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.docItemCol_qFW7{max-width:75%!important}}@media (min-width:1080px){.header-bg{height:330px}}@media (min-width:1280px){.xl\:absolute{position:absolute}.xl\:bottom-14{bottom:3.5rem}.xl\:bottom-8{bottom:2rem}.xl\:mt-0{margin-top:0}.xl\:flex{display:flex}.xl\:w-\[280px\]{width:280px}.xl\:flex-row{flex-direction:row}.xl\:pb-0{padding-bottom:0}.xl\:text-\[140px\]{font-size:140px}.xl\:leading-\[100px\]{line-height:100px}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}.header-bg{height:440px}}@media (min-width:1920px){.header-bg{height:440px}}@media (min-width:2560px){.header-bg{height:440px}}@media (max-width:996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.colorModeToggle_SYc1,.footer__link-separator,.navbar__item,.tableOfContents_BZNS{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.features_src-components-HomepageFeatures-styles-module .col{--ifm-col-width:50%!important}.docItemContainer_MIA2{padding:0 .3rem}.navbarSearchContainer_pjLh{position:absolute;right:var(--ifm-navbar-padding-horizontal)}}@media only screen and (max-width:996px){.searchQueryColumn_YQZz,.searchResultsColumn_QzhY{max-width:60%!important}.searchLogoColumn_yymS,.searchVersionColumn_JJm2{max-width:40%!important}.searchLogoColumn_yymS{padding-left:0!important}}@media screen and (max-width:996px){.navbar__logo{align-items:center;display:flex}.navbar__logo img{width:70%}}@media (max-width:768px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder,.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%;max-height:calc(var(--docsearch-vh,1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh,1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh,1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Cancel{-webkit-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:0;overflow:hidden;padding:0;-webkit-user-select:none;user-select:none;white-space:nowrap}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}}@media screen and (max-width:576px){.searchQueryColumn_YQZz{max-width:100%!important}.searchVersionColumn_JJm2{max-width:100%!important;padding-left:var(--ifm-spacing-horizontal)!important}}@media (max-width:426px){.col{--ifm-col-width:100%!important}}@media (hover:hover){.backToTopButton_Q4cv:hover{background-color:var(--ifm-color-emphasis-300)}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0ms;--ifm-transition-slow:0ms}.motion-reduce\:transition-none{transition-property:none}.motion-reduce\:after\:transition-none:after{content:var(--tw-content);transition-property:none}}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{stroke-width:var(--docsearch-icon-stroke-width);animation:none;-webkit-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0}.DocSearch-Hit--deleting,.DocSearch-Hit--favoriting{transition:none}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:none}}@media print{.announcementBar_YClq,.footer,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_Xpp9{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_w6yq{white-space:pre-wrap}} \ No newline at end of file diff --git a/build/assets/images/archi-722265224ea729def09d6641d267c941.png b/build/assets/images/archi-722265224ea729def09d6641d267c941.png new file mode 100644 index 000000000..c1c207edf Binary files /dev/null and b/build/assets/images/archi-722265224ea729def09d6641d267c941.png differ diff --git a/build/assets/images/layerzero-729926ffd8eadd4c2ed9ce27f314d627.png b/build/assets/images/layerzero-729926ffd8eadd4c2ed9ce27f314d627.png new file mode 100644 index 000000000..05286f86b Binary files /dev/null and b/build/assets/images/layerzero-729926ffd8eadd4c2ed9ce27f314d627.png differ diff --git a/build/assets/images/opzk-f22d92ddda6b9d38f0f917f2025c7b28.png b/build/assets/images/opzk-f22d92ddda6b9d38f0f917f2025c7b28.png new file mode 100644 index 000000000..990f4ef72 Binary files /dev/null and b/build/assets/images/opzk-f22d92ddda6b9d38f0f917f2025c7b28.png differ diff --git a/build/assets/images/roadmap-303601f698e896e5eea19ffb5b055bb0.png b/build/assets/images/roadmap-303601f698e896e5eea19ffb5b055bb0.png deleted file mode 100644 index b633d0113..000000000 Binary files a/build/assets/images/roadmap-303601f698e896e5eea19ffb5b055bb0.png and /dev/null differ diff --git a/build/assets/images/roadmap-85df143f684e2e7f404102eb39eb2adf.png b/build/assets/images/roadmap-85df143f684e2e7f404102eb39eb2adf.png new file mode 100644 index 000000000..eda364437 Binary files /dev/null and b/build/assets/images/roadmap-85df143f684e2e7f404102eb39eb2adf.png differ diff --git a/build/assets/images/socialscan-05653c195d1623c32f28c7ab2d944adc.png b/build/assets/images/socialscan-05653c195d1623c32f28c7ab2d944adc.png deleted file mode 100644 index caee63b3a..000000000 Binary files a/build/assets/images/socialscan-05653c195d1623c32f28c7ab2d944adc.png and /dev/null differ diff --git a/build/assets/images/socialscan-64f9f8181cf2e033709c7dda3a153e1f.png b/build/assets/images/socialscan-64f9f8181cf2e033709c7dda3a153e1f.png new file mode 100644 index 000000000..5873eaeaf Binary files /dev/null and b/build/assets/images/socialscan-64f9f8181cf2e033709c7dda3a153e1f.png differ diff --git a/build/assets/images/spaceid-29fd0d4f081ffeee5410ca83a259a04e.png b/build/assets/images/spaceid-29fd0d4f081ffeee5410ca83a259a04e.png new file mode 100644 index 000000000..bd2c17c81 Binary files /dev/null and b/build/assets/images/spaceid-29fd0d4f081ffeee5410ca83a259a04e.png differ diff --git a/build/assets/images/tenderly-37aa9e647d64e8a05c58b91fa7c7786a.png b/build/assets/images/tenderly-37aa9e647d64e8a05c58b91fa7c7786a.png new file mode 100644 index 000000000..380052d7d Binary files /dev/null and b/build/assets/images/tenderly-37aa9e647d64e8a05c58b91fa7c7786a.png differ diff --git a/build/assets/js/028d32dc.1b698f04.js b/build/assets/js/028d32dc.b0c0048b.js similarity index 82% rename from build/assets/js/028d32dc.1b698f04.js rename to build/assets/js/028d32dc.b0c0048b.js index afd905088..065fe9c8b 100644 --- a/build/assets/js/028d32dc.1b698f04.js +++ b/build/assets/js/028d32dc.b0c0048b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[3797],{4071:(s,e,n)=>{n.r(e),n.d(e,{assets:()=>i,contentTitle:()=>t,default:()=>u,frontMatter:()=>o,metadata:()=>c,toc:()=>l});var r=n(3274),d=n(2333);const o={},t="Function: toAddress()",c={id:"build-on-morph/sdk/functions/toAddress",title:"toAddress",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/functions/toAddress.md",sourceDirName:"build-on-morph/sdk/functions",slug:"/build-on-morph/sdk/functions/toAddress",permalink:"/docs/build-on-morph/sdk/functions/toAddress",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/functions/toAddress.md",tags:[],version:"current",frontMatter:{}},i={},l=[{value:"Parameters",id:"parameters",level:2},{value:"Returns",id:"returns",level:2},{value:"Source",id:"source",level:2}];function h(s){const e={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,d.R)(),...s.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,r.jsx)(e.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,r.jsx)(e.strong,{children:"Docs"})]}),"\n",(0,r.jsx)(e.hr,{}),"\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / toAddress"]}),"\n",(0,r.jsx)(e.h1,{id:"function-toaddress",children:"Function: toAddress()"}),"\n",(0,r.jsxs)(e.blockquote,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"toAddress"}),"(",(0,r.jsx)(e.code,{children:"addr"}),"): ",(0,r.jsx)(e.code,{children:"string"})]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:"Converts an address-like into a 0x-prefixed address string."}),"\n",(0,r.jsx)(e.h2,{id:"parameters",children:"Parameters"}),"\n",(0,r.jsxs)(e.p,{children:["\u2022 ",(0,r.jsx)(e.strong,{children:"addr"}),": ",(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,r.jsx)(e.code,{children:"AddressLike"})})]}),"\n",(0,r.jsx)(e.p,{children:"Address-like to convert into an address."}),"\n",(0,r.jsx)(e.h2,{id:"returns",children:"Returns"}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.code,{children:"string"})}),"\n",(0,r.jsx)(e.p,{children:"Address-like as an address."}),"\n",(0,r.jsx)(e.h2,{id:"source",children:"Source"}),"\n",(0,r.jsx)(e.p,{children:"src/utils/coercion.ts:104"})]})}function u(s={}){const{wrapper:e}={...(0,d.R)(),...s.components};return e?(0,r.jsx)(e,{...s,children:(0,r.jsx)(h,{...s})}):h(s)}},2333:(s,e,n)=>{n.d(e,{R:()=>t,x:()=>c});var r=n(9474);const d={},o=r.createContext(d);function t(s){const e=r.useContext(o);return r.useMemo((function(){return"function"==typeof s?s(e):{...e,...s}}),[e,s])}function c(s){let e;return e=s.disableParentContext?"function"==typeof s.components?s.components(d):s.components||d:t(s.components),r.createElement(o.Provider,{value:e},s.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[3797],{2037:(s,e,n)=>{n.r(e),n.d(e,{assets:()=>i,contentTitle:()=>t,default:()=>u,frontMatter:()=>o,metadata:()=>c,toc:()=>l});var r=n(6070),d=n(1582);const o={},t="Function: toAddress()",c={id:"build-on-morph/sdk/functions/toAddress",title:"toAddress",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/functions/toAddress.md",sourceDirName:"build-on-morph/sdk/functions",slug:"/build-on-morph/sdk/functions/toAddress",permalink:"/docs/build-on-morph/sdk/functions/toAddress",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/functions/toAddress.md",tags:[],version:"current",frontMatter:{}},i={},l=[{value:"Parameters",id:"parameters",level:2},{value:"Returns",id:"returns",level:2},{value:"Source",id:"source",level:2}];function h(s){const e={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,d.R)(),...s.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,r.jsx)(e.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,r.jsx)(e.strong,{children:"Docs"})]}),"\n",(0,r.jsx)(e.hr,{}),"\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / toAddress"]}),"\n",(0,r.jsx)(e.h1,{id:"function-toaddress",children:"Function: toAddress()"}),"\n",(0,r.jsxs)(e.blockquote,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"toAddress"}),"(",(0,r.jsx)(e.code,{children:"addr"}),"): ",(0,r.jsx)(e.code,{children:"string"})]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:"Converts an address-like into a 0x-prefixed address string."}),"\n",(0,r.jsx)(e.h2,{id:"parameters",children:"Parameters"}),"\n",(0,r.jsxs)(e.p,{children:["\u2022 ",(0,r.jsx)(e.strong,{children:"addr"}),": ",(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,r.jsx)(e.code,{children:"AddressLike"})})]}),"\n",(0,r.jsx)(e.p,{children:"Address-like to convert into an address."}),"\n",(0,r.jsx)(e.h2,{id:"returns",children:"Returns"}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.code,{children:"string"})}),"\n",(0,r.jsx)(e.p,{children:"Address-like as an address."}),"\n",(0,r.jsx)(e.h2,{id:"source",children:"Source"}),"\n",(0,r.jsx)(e.p,{children:"src/utils/coercion.ts:104"})]})}function u(s={}){const{wrapper:e}={...(0,d.R)(),...s.components};return e?(0,r.jsx)(e,{...s,children:(0,r.jsx)(h,{...s})}):h(s)}},1582:(s,e,n)=>{n.d(e,{R:()=>t,x:()=>c});var r=n(758);const d={},o=r.createContext(d);function t(s){const e=r.useContext(o);return r.useMemo((function(){return"function"==typeof s?s(e):{...e,...s}}),[e,s])}function c(s){let e;return e=s.disableParentContext?"function"==typeof s.components?s.components(d):s.components||d:t(s.components),r.createElement(o.Provider,{value:e},s.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/02a35c22.028a360c.js b/build/assets/js/02a35c22.cf697fb9.js similarity index 79% rename from build/assets/js/02a35c22.028a360c.js rename to build/assets/js/02a35c22.cf697fb9.js index abbd56f44..370ae920a 100644 --- a/build/assets/js/02a35c22.028a360c.js +++ b/build/assets/js/02a35c22.cf697fb9.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[9849],{4735:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>l,contentTitle:()=>c,default:()=>h,frontMatter:()=>t,metadata:()=>d,toc:()=>i});var o=n(3274),r=n(2333);const t={},c="Variable: DEFAULT_L1_CONTRACT_ADDRESSES",d={id:"build-on-morph/sdk/variables/DEFAULT_L1_CONTRACT_ADDRESSES",title:"DEFAULT_L1_CONTRACT_ADDRESSES",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/variables/DEFAULT_L1_CONTRACT_ADDRESSES.md",sourceDirName:"build-on-morph/sdk/variables",slug:"/build-on-morph/sdk/variables/DEFAULT_L1_CONTRACT_ADDRESSES",permalink:"/docs/build-on-morph/sdk/variables/DEFAULT_L1_CONTRACT_ADDRESSES",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/variables/DEFAULT_L1_CONTRACT_ADDRESSES.md",tags:[],version:"current",frontMatter:{}},l={},i=[{value:"Source",id:"source",level:2}];function a(e){const s={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,r.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,o.jsx)(s.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,o.jsx)(s.strong,{children:"Docs"})]}),"\n",(0,o.jsx)(s.hr,{}),"\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / DEFAULT_L1_CONTRACT_ADDRESSES"]}),"\n",(0,o.jsx)(s.h1,{id:"variable-default_l1_contract_addresses",children:"Variable: DEFAULT_L1_CONTRACT_ADDRESSES"}),"\n",(0,o.jsxs)(s.blockquote,{children:["\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.code,{children:"const"})," ",(0,o.jsx)(s.strong,{children:"DEFAULT_L1_CONTRACT_ADDRESSES"}),": ",(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/OEL1ContractsLike",children:(0,o.jsx)(s.code,{children:"OEL1ContractsLike"})})]}),"\n"]}),"\n",(0,o.jsx)(s.p,{children:"Full list of default L1 contract addresses."}),"\n",(0,o.jsx)(s.h2,{id:"source",children:"Source"}),"\n",(0,o.jsx)(s.p,{children:"src/utils/chain-constants.ts:61"})]})}function h(e={}){const{wrapper:s}={...(0,r.R)(),...e.components};return s?(0,o.jsx)(s,{...e,children:(0,o.jsx)(a,{...e})}):a(e)}},2333:(e,s,n)=>{n.d(s,{R:()=>c,x:()=>d});var o=n(9474);const r={},t=o.createContext(r);function c(e){const s=o.useContext(t);return o.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function d(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:c(e.components),o.createElement(t.Provider,{value:s},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[9849],{1545:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>l,contentTitle:()=>c,default:()=>h,frontMatter:()=>t,metadata:()=>d,toc:()=>i});var o=n(6070),r=n(1582);const t={},c="Variable: DEFAULT_L1_CONTRACT_ADDRESSES",d={id:"build-on-morph/sdk/variables/DEFAULT_L1_CONTRACT_ADDRESSES",title:"DEFAULT_L1_CONTRACT_ADDRESSES",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/variables/DEFAULT_L1_CONTRACT_ADDRESSES.md",sourceDirName:"build-on-morph/sdk/variables",slug:"/build-on-morph/sdk/variables/DEFAULT_L1_CONTRACT_ADDRESSES",permalink:"/docs/build-on-morph/sdk/variables/DEFAULT_L1_CONTRACT_ADDRESSES",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/variables/DEFAULT_L1_CONTRACT_ADDRESSES.md",tags:[],version:"current",frontMatter:{}},l={},i=[{value:"Source",id:"source",level:2}];function a(e){const s={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,r.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,o.jsx)(s.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,o.jsx)(s.strong,{children:"Docs"})]}),"\n",(0,o.jsx)(s.hr,{}),"\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / DEFAULT_L1_CONTRACT_ADDRESSES"]}),"\n",(0,o.jsx)(s.h1,{id:"variable-default_l1_contract_addresses",children:"Variable: DEFAULT_L1_CONTRACT_ADDRESSES"}),"\n",(0,o.jsxs)(s.blockquote,{children:["\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.code,{children:"const"})," ",(0,o.jsx)(s.strong,{children:"DEFAULT_L1_CONTRACT_ADDRESSES"}),": ",(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/OEL1ContractsLike",children:(0,o.jsx)(s.code,{children:"OEL1ContractsLike"})})]}),"\n"]}),"\n",(0,o.jsx)(s.p,{children:"Full list of default L1 contract addresses."}),"\n",(0,o.jsx)(s.h2,{id:"source",children:"Source"}),"\n",(0,o.jsx)(s.p,{children:"src/utils/chain-constants.ts:61"})]})}function h(e={}){const{wrapper:s}={...(0,r.R)(),...e.components};return s?(0,o.jsx)(s,{...e,children:(0,o.jsx)(a,{...e})}):a(e)}},1582:(e,s,n)=>{n.d(s,{R:()=>c,x:()=>d});var o=n(758);const r={},t=o.createContext(r);function c(e){const s=o.useContext(t);return o.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function d(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:c(e.components),o.createElement(t.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/066c1628.0ff362a7.js b/build/assets/js/066c1628.ef013ffd.js similarity index 76% rename from build/assets/js/066c1628.0ff362a7.js rename to build/assets/js/066c1628.ef013ffd.js index fa5f7991c..b50529fb1 100644 --- a/build/assets/js/066c1628.0ff362a7.js +++ b/build/assets/js/066c1628.ef013ffd.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[9075],{3063:(e,r,o)=>{o.r(r),o.d(r,{assets:()=>i,contentTitle:()=>d,default:()=>h,frontMatter:()=>t,metadata:()=>c,toc:()=>l});var n=o(3274),s=o(2333);const t={},d="Variable: l1BridgeName",c={id:"build-on-morph/sdk/variables/l1BridgeName",title:"l1BridgeName",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/variables/l1BridgeName.md",sourceDirName:"build-on-morph/sdk/variables",slug:"/build-on-morph/sdk/variables/l1BridgeName",permalink:"/docs/build-on-morph/sdk/variables/l1BridgeName",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/variables/l1BridgeName.md",tags:[],version:"current",frontMatter:{}},i={},l=[{value:"Source",id:"source",level:2}];function a(e){const r={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,s.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,n.jsx)(r.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,n.jsx)(r.strong,{children:"Docs"})]}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / l1BridgeName"]}),"\n",(0,n.jsx)(r.h1,{id:"variable-l1bridgename",children:"Variable: l1BridgeName"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.code,{children:"const"})," ",(0,n.jsx)(r.strong,{children:"l1BridgeName"}),": ",(0,n.jsx)(r.code,{children:'"L1GatewayRouter"'})," = ",(0,n.jsx)(r.code,{children:"'L1GatewayRouter'"})]}),"\n"]}),"\n",(0,n.jsx)(r.h2,{id:"source",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/cross-chain-messenger.ts:69"})]})}function h(e={}){const{wrapper:r}={...(0,s.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(a,{...e})}):a(e)}},2333:(e,r,o)=>{o.d(r,{R:()=>d,x:()=>c});var n=o(9474);const s={},t=n.createContext(s);function d(e){const r=n.useContext(t);return n.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function c(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:d(e.components),n.createElement(t.Provider,{value:r},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[9075],{1833:(e,r,o)=>{o.r(r),o.d(r,{assets:()=>i,contentTitle:()=>d,default:()=>h,frontMatter:()=>t,metadata:()=>c,toc:()=>l});var n=o(6070),s=o(1582);const t={},d="Variable: l1BridgeName",c={id:"build-on-morph/sdk/variables/l1BridgeName",title:"l1BridgeName",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/variables/l1BridgeName.md",sourceDirName:"build-on-morph/sdk/variables",slug:"/build-on-morph/sdk/variables/l1BridgeName",permalink:"/docs/build-on-morph/sdk/variables/l1BridgeName",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/variables/l1BridgeName.md",tags:[],version:"current",frontMatter:{}},i={},l=[{value:"Source",id:"source",level:2}];function a(e){const r={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,s.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,n.jsx)(r.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,n.jsx)(r.strong,{children:"Docs"})]}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / l1BridgeName"]}),"\n",(0,n.jsx)(r.h1,{id:"variable-l1bridgename",children:"Variable: l1BridgeName"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.code,{children:"const"})," ",(0,n.jsx)(r.strong,{children:"l1BridgeName"}),": ",(0,n.jsx)(r.code,{children:'"L1GatewayRouter"'})," = ",(0,n.jsx)(r.code,{children:"'L1GatewayRouter'"})]}),"\n"]}),"\n",(0,n.jsx)(r.h2,{id:"source",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/cross-chain-messenger.ts:69"})]})}function h(e={}){const{wrapper:r}={...(0,s.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(a,{...e})}):a(e)}},1582:(e,r,o)=>{o.d(r,{R:()=>d,x:()=>c});var n=o(758);const s={},t=n.createContext(s);function d(e){const r=n.useContext(t);return n.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function c(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:d(e.components),n.createElement(t.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/08313b4f.e70c1b97.js b/build/assets/js/08313b4f.d3eefb9b.js similarity index 78% rename from build/assets/js/08313b4f.e70c1b97.js rename to build/assets/js/08313b4f.d3eefb9b.js index c7eeb6c9c..5a8591681 100644 --- a/build/assets/js/08313b4f.e70c1b97.js +++ b/build/assets/js/08313b4f.d3eefb9b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[3894],{9819:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>h,frontMatter:()=>t,metadata:()=>i,toc:()=>a});var r=o(3274),s=o(2333);const t={},c="Variable: CONTRACT_ADDRESSES",i={id:"build-on-morph/sdk/variables/CONTRACT_ADDRESSES",title:"CONTRACT_ADDRESSES",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/variables/CONTRACT_ADDRESSES.md",sourceDirName:"build-on-morph/sdk/variables",slug:"/build-on-morph/sdk/variables/CONTRACT_ADDRESSES",permalink:"/docs/build-on-morph/sdk/variables/CONTRACT_ADDRESSES",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/variables/CONTRACT_ADDRESSES.md",tags:[],version:"current",frontMatter:{}},d={},a=[{value:"Source",id:"source",level:2}];function l(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,r.jsx)(n.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,r.jsx)(n.strong,{children:"Docs"})]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / CONTRACT_ADDRESSES"]}),"\n",(0,r.jsx)(n.h1,{id:"variable-contract_addresses",children:"Variable: CONTRACT_ADDRESSES"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"const"})," ",(0,r.jsx)(n.strong,{children:"CONTRACT_ADDRESSES"}),": ",(0,r.jsx)(n.code,{children:"{ [ChainID in L2ChainID]: OEContractsLike }"})]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"Mapping of L1 chain IDs to the appropriate contract addresses for the OE deployments to the\ngiven network. Simplifies the process of getting the correct contract addresses for a given\ncontract name."}),"\n",(0,r.jsx)(n.h2,{id:"source",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/utils/chain-constants.ts:100"})]})}function h(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}},2333:(e,n,o)=>{o.d(n,{R:()=>c,x:()=>i});var r=o(9474);const s={},t=r.createContext(s);function c(e){const n=r.useContext(t);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:c(e.components),r.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[3894],{2701:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>h,frontMatter:()=>t,metadata:()=>i,toc:()=>a});var r=o(6070),s=o(1582);const t={},c="Variable: CONTRACT_ADDRESSES",i={id:"build-on-morph/sdk/variables/CONTRACT_ADDRESSES",title:"CONTRACT_ADDRESSES",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/variables/CONTRACT_ADDRESSES.md",sourceDirName:"build-on-morph/sdk/variables",slug:"/build-on-morph/sdk/variables/CONTRACT_ADDRESSES",permalink:"/docs/build-on-morph/sdk/variables/CONTRACT_ADDRESSES",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/variables/CONTRACT_ADDRESSES.md",tags:[],version:"current",frontMatter:{}},d={},a=[{value:"Source",id:"source",level:2}];function l(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,r.jsx)(n.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,r.jsx)(n.strong,{children:"Docs"})]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / CONTRACT_ADDRESSES"]}),"\n",(0,r.jsx)(n.h1,{id:"variable-contract_addresses",children:"Variable: CONTRACT_ADDRESSES"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"const"})," ",(0,r.jsx)(n.strong,{children:"CONTRACT_ADDRESSES"}),": ",(0,r.jsx)(n.code,{children:"{ [ChainID in L2ChainID]: OEContractsLike }"})]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"Mapping of L1 chain IDs to the appropriate contract addresses for the OE deployments to the\ngiven network. Simplifies the process of getting the correct contract addresses for a given\ncontract name."}),"\n",(0,r.jsx)(n.h2,{id:"source",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/utils/chain-constants.ts:100"})]})}function h(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}},1582:(e,n,o)=>{o.d(n,{R:()=>c,x:()=>i});var r=o(758);const s={},t=r.createContext(s);function c(e){const n=r.useContext(t);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:c(e.components),r.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/08b9f613.068f6187.js b/build/assets/js/08b9f613.2292ec97.js similarity index 89% rename from build/assets/js/08b9f613.068f6187.js rename to build/assets/js/08b9f613.2292ec97.js index 30c65a2f4..f3d770fdd 100644 --- a/build/assets/js/08b9f613.068f6187.js +++ b/build/assets/js/08b9f613.2292ec97.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[2736],{9052:(e,o,i)=>{i.r(o),i.d(o,{assets:()=>c,contentTitle:()=>s,default:()=>p,frontMatter:()=>r,metadata:()=>a,toc:()=>l});var n=i(3274),t=i(2333);const r={title:"Overview",lang:"en-US",keywords:["morph","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},s=void 0,a={id:"about-morph/overview-of-morph",title:"Overview",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/about-morph/1-overview-of-morph.md",sourceDirName:"about-morph",slug:"/about-morph/overview-of-morph",permalink:"/docs/about-morph/overview-of-morph",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/about-morph/1-overview-of-morph.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{title:"Overview",lang:"en-US",keywords:["morph","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"Welcome to Morph",permalink:"/docs/about-morph/user-navigation-page"},next:{title:"The Technology Behind Morph",permalink:"/docs/about-morph/the-technology-behind-morph"}},c={},l=[{value:"What Makes Morph Special",id:"what-makes-morph-special",level:2},{value:"Decentralized Sequencer Network",id:"decentralized-sequencer-network",level:3},{value:"Optimistic zkEVM Integration",id:"optimistic-zkevm-integration",level:3},{value:"Modular Design",id:"modular-design",level:3}];function h(e){const o={a:"a",h2:"h2",h3:"h3",p:"p",...(0,t.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(o.p,{children:"Welcome to Morph, a blockchain for consumers. At the core of Morph is a revolutionary approach to Ethereum Layer 2 scalability, harnessing the power of rollup technology."}),"\n",(0,n.jsx)(o.p,{children:"Our platform is uniquely designed to enhance the blockchain experience, making it more accessible, efficient, and user-friendly for both developers and consumers. We achieve these innovations through a unique combination of cutting-edge technologies."}),"\n",(0,n.jsx)(o.h2,{id:"what-makes-morph-special",children:"What Makes Morph Special"}),"\n",(0,n.jsx)(o.p,{children:"Given that our platform is built on the philosophy of consumer-centric innovation, we believe blockchain technology has the transformative power to enhance users\u2019 daily lives. To accomplish this vision, our infrastructure has three core technological components that function as the foundation of a consumer blockchain."}),"\n",(0,n.jsx)(o.h3,{id:"decentralized-sequencer-network",children:"Decentralized Sequencer Network"}),"\n",(0,n.jsx)(o.p,{children:"Morph\u2019s distribution of the sequencing role eliminates single points of failure, reduces transaction censorship, and prevents monopolies over Miner Extractable Value (MEV). Building on Morph means guaranteed high availability, resilience, and fairness in transaction processing."}),"\n",(0,n.jsx)(o.h3,{id:"optimistic-zkevm-integration",children:"Optimistic zkEVM Integration"}),"\n",(0,n.jsx)(o.p,{children:"Morph\u2019s Optimistic zkEVM Integration combines the efficiency of optimistic rollups with the security of zero-knowledge proofs, using a novel method called Responsive Validity Proof (RVP). RVP reduces costs and shortens withdrawal periods while maintaining high security, enabling robust applications that don\u2019t compromise on performance or security."}),"\n",(0,n.jsx)(o.h3,{id:"modular-design",children:"Modular Design"}),"\n",(0,n.jsx)(o.p,{children:"Morph's architecture is divided into three modules: Sequencer Network for consensus and execution, Optimistic zkEVM for state verification, and Rollup for data availability. Developers can build and maintain applications more efficiently, ensuring each component can be upgraded independently without disrupting the entire system."}),"\n",(0,n.jsxs)(o.p,{children:["Before you dive into a deeper exploration of our technology, understanding our ",(0,n.jsx)(o.a,{href:"/docs/about-morph/morphs-vision-and-mission",children:"Vision and Mission"})," will offer a better idea of why Morph stands out in the industry."]})]})}function p(e={}){const{wrapper:o}={...(0,t.R)(),...e.components};return o?(0,n.jsx)(o,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},2333:(e,o,i)=>{i.d(o,{R:()=>s,x:()=>a});var n=i(9474);const t={},r=n.createContext(t);function s(e){const o=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function a(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:s(e.components),n.createElement(r.Provider,{value:o},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[2736],{5270:(e,o,i)=>{i.r(o),i.d(o,{assets:()=>c,contentTitle:()=>s,default:()=>p,frontMatter:()=>r,metadata:()=>a,toc:()=>l});var n=i(6070),t=i(1582);const r={title:"Overview",lang:"en-US",keywords:["morph","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},s=void 0,a={id:"about-morph/overview-of-morph",title:"Overview",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/about-morph/1-overview-of-morph.md",sourceDirName:"about-morph",slug:"/about-morph/overview-of-morph",permalink:"/docs/about-morph/overview-of-morph",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/about-morph/1-overview-of-morph.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{title:"Overview",lang:"en-US",keywords:["morph","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"Welcome to Morph",permalink:"/docs/about-morph/user-navigation-page"},next:{title:"The Technology Behind Morph",permalink:"/docs/about-morph/the-technology-behind-morph"}},c={},l=[{value:"What Makes Morph Special",id:"what-makes-morph-special",level:2},{value:"Decentralized Sequencer Network",id:"decentralized-sequencer-network",level:3},{value:"Optimistic zkEVM Integration",id:"optimistic-zkevm-integration",level:3},{value:"Modular Design",id:"modular-design",level:3}];function h(e){const o={a:"a",h2:"h2",h3:"h3",p:"p",...(0,t.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(o.p,{children:"Welcome to Morph, a blockchain for consumers. At the core of Morph is a revolutionary approach to Ethereum Layer 2 scalability, harnessing the power of rollup technology."}),"\n",(0,n.jsx)(o.p,{children:"Our platform is uniquely designed to enhance the blockchain experience, making it more accessible, efficient, and user-friendly for both developers and consumers. We achieve these innovations through a unique combination of cutting-edge technologies."}),"\n",(0,n.jsx)(o.h2,{id:"what-makes-morph-special",children:"What Makes Morph Special"}),"\n",(0,n.jsx)(o.p,{children:"Given that our platform is built on the philosophy of consumer-centric innovation, we believe blockchain technology has the transformative power to enhance users\u2019 daily lives. To accomplish this vision, our infrastructure has three core technological components that function as the foundation of a consumer blockchain."}),"\n",(0,n.jsx)(o.h3,{id:"decentralized-sequencer-network",children:"Decentralized Sequencer Network"}),"\n",(0,n.jsx)(o.p,{children:"Morph\u2019s distribution of the sequencing role eliminates single points of failure, reduces transaction censorship, and prevents monopolies over Miner Extractable Value (MEV). Building on Morph means guaranteed high availability, resilience, and fairness in transaction processing."}),"\n",(0,n.jsx)(o.h3,{id:"optimistic-zkevm-integration",children:"Optimistic zkEVM Integration"}),"\n",(0,n.jsx)(o.p,{children:"Morph\u2019s Optimistic zkEVM Integration combines the efficiency of optimistic rollups with the security of zero-knowledge proofs, using a novel method called Responsive Validity Proof (RVP). RVP reduces costs and shortens withdrawal periods while maintaining high security, enabling robust applications that don\u2019t compromise on performance or security."}),"\n",(0,n.jsx)(o.h3,{id:"modular-design",children:"Modular Design"}),"\n",(0,n.jsx)(o.p,{children:"Morph's architecture is divided into three modules: Sequencer Network for consensus and execution, Optimistic zkEVM for state verification, and Rollup for data availability. Developers can build and maintain applications more efficiently, ensuring each component can be upgraded independently without disrupting the entire system."}),"\n",(0,n.jsxs)(o.p,{children:["Before you dive into a deeper exploration of our technology, understanding our ",(0,n.jsx)(o.a,{href:"/docs/about-morph/morphs-vision-and-mission",children:"Vision and Mission"})," will offer a better idea of why Morph stands out in the industry."]})]})}function p(e={}){const{wrapper:o}={...(0,t.R)(),...e.components};return o?(0,n.jsx)(o,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},1582:(e,o,i)=>{i.d(o,{R:()=>s,x:()=>a});var n=i(758);const t={},r=n.createContext(t);function s(e){const o=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function a(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:s(e.components),n.createElement(r.Provider,{value:o},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/1483841d.49c855e2.js b/build/assets/js/1483841d.c7695c94.js similarity index 84% rename from build/assets/js/1483841d.49c855e2.js rename to build/assets/js/1483841d.c7695c94.js index a28bedcfc..fc534597e 100644 --- a/build/assets/js/1483841d.49c855e2.js +++ b/build/assets/js/1483841d.c7695c94.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[1544],{1260:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>c,contentTitle:()=>i,default:()=>a,frontMatter:()=>o,metadata:()=>d,toc:()=>l});var s=n(3274),t=n(2333);const o={},i="Interface: ProvenWithdrawal",d={id:"build-on-morph/sdk/interfaces/ProvenWithdrawal",title:"ProvenWithdrawal",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/interfaces/ProvenWithdrawal.md",sourceDirName:"build-on-morph/sdk/interfaces",slug:"/build-on-morph/sdk/interfaces/ProvenWithdrawal",permalink:"/docs/build-on-morph/sdk/interfaces/ProvenWithdrawal",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/interfaces/ProvenWithdrawal.md",tags:[],version:"current",frontMatter:{}},c={},l=[{value:"Properties",id:"properties",level:2},{value:"timestamp",id:"timestamp",level:3},{value:"Source",id:"source",level:4},{value:"withdrawalIndex",id:"withdrawalindex",level:3},{value:"Source",id:"source-1",level:4},{value:"withdrawalRoot",id:"withdrawalroot",level:3},{value:"Source",id:"source-2",level:4}];function h(e){const r={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",p:"p",strong:"strong",...(0,t.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,s.jsx)(r.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,s.jsx)(r.strong,{children:"Docs"})]}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / ProvenWithdrawal"]}),"\n",(0,s.jsx)(r.h1,{id:"interface-provenwithdrawal",children:"Interface: ProvenWithdrawal"}),"\n",(0,s.jsx)(r.p,{children:"ProvenWithdrawal in L1CrossDomainMessenger"}),"\n",(0,s.jsx)(r.h2,{id:"properties",children:"Properties"}),"\n",(0,s.jsx)(r.h3,{id:"timestamp",children:"timestamp"}),"\n",(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"timestamp"}),": ",(0,s.jsx)(r.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,s.jsx)(r.h4,{id:"source",children:"Source"}),"\n",(0,s.jsx)(r.p,{children:"src/interfaces/types.ts:316"}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsx)(r.h3,{id:"withdrawalindex",children:"withdrawalIndex"}),"\n",(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"withdrawalIndex"}),": ",(0,s.jsx)(r.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,s.jsx)(r.h4,{id:"source-1",children:"Source"}),"\n",(0,s.jsx)(r.p,{children:"src/interfaces/types.ts:319"}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsx)(r.h3,{id:"withdrawalroot",children:"withdrawalRoot"}),"\n",(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"withdrawalRoot"}),": ",(0,s.jsx)(r.code,{children:"string"})]}),"\n"]}),"\n",(0,s.jsx)(r.h4,{id:"source-2",children:"Source"}),"\n",(0,s.jsx)(r.p,{children:"src/interfaces/types.ts:318"})]})}function a(e={}){const{wrapper:r}={...(0,t.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},2333:(e,r,n)=>{n.d(r,{R:()=>i,x:()=>d});var s=n(9474);const t={},o=s.createContext(t);function i(e){const r=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function d(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),s.createElement(o.Provider,{value:r},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[1544],{7306:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>c,contentTitle:()=>i,default:()=>a,frontMatter:()=>o,metadata:()=>d,toc:()=>l});var s=n(6070),t=n(1582);const o={},i="Interface: ProvenWithdrawal",d={id:"build-on-morph/sdk/interfaces/ProvenWithdrawal",title:"ProvenWithdrawal",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/interfaces/ProvenWithdrawal.md",sourceDirName:"build-on-morph/sdk/interfaces",slug:"/build-on-morph/sdk/interfaces/ProvenWithdrawal",permalink:"/docs/build-on-morph/sdk/interfaces/ProvenWithdrawal",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/interfaces/ProvenWithdrawal.md",tags:[],version:"current",frontMatter:{}},c={},l=[{value:"Properties",id:"properties",level:2},{value:"timestamp",id:"timestamp",level:3},{value:"Source",id:"source",level:4},{value:"withdrawalIndex",id:"withdrawalindex",level:3},{value:"Source",id:"source-1",level:4},{value:"withdrawalRoot",id:"withdrawalroot",level:3},{value:"Source",id:"source-2",level:4}];function h(e){const r={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",p:"p",strong:"strong",...(0,t.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,s.jsx)(r.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,s.jsx)(r.strong,{children:"Docs"})]}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / ProvenWithdrawal"]}),"\n",(0,s.jsx)(r.h1,{id:"interface-provenwithdrawal",children:"Interface: ProvenWithdrawal"}),"\n",(0,s.jsx)(r.p,{children:"ProvenWithdrawal in L1CrossDomainMessenger"}),"\n",(0,s.jsx)(r.h2,{id:"properties",children:"Properties"}),"\n",(0,s.jsx)(r.h3,{id:"timestamp",children:"timestamp"}),"\n",(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"timestamp"}),": ",(0,s.jsx)(r.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,s.jsx)(r.h4,{id:"source",children:"Source"}),"\n",(0,s.jsx)(r.p,{children:"src/interfaces/types.ts:316"}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsx)(r.h3,{id:"withdrawalindex",children:"withdrawalIndex"}),"\n",(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"withdrawalIndex"}),": ",(0,s.jsx)(r.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,s.jsx)(r.h4,{id:"source-1",children:"Source"}),"\n",(0,s.jsx)(r.p,{children:"src/interfaces/types.ts:319"}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsx)(r.h3,{id:"withdrawalroot",children:"withdrawalRoot"}),"\n",(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"withdrawalRoot"}),": ",(0,s.jsx)(r.code,{children:"string"})]}),"\n"]}),"\n",(0,s.jsx)(r.h4,{id:"source-2",children:"Source"}),"\n",(0,s.jsx)(r.p,{children:"src/interfaces/types.ts:318"})]})}function a(e={}){const{wrapper:r}={...(0,t.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},1582:(e,r,n)=>{n.d(r,{R:()=>i,x:()=>d});var s=n(758);const t={},o=s.createContext(t);function i(e){const r=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function d(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),s.createElement(o.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/17896441.26f2d090.js b/build/assets/js/17896441.26f2d090.js new file mode 100644 index 000000000..dfe72d34f --- /dev/null +++ b/build/assets/js/17896441.26f2d090.js @@ -0,0 +1 @@ +(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[8401],{5948:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>Xt});var s=n(758),a=n(926),o=n(3991),i=n(6070);const l=s.createContext(null);function c(e){let{children:t,content:n}=e;const a=function(e){return(0,s.useMemo)((()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc})),[e])}(n);return(0,i.jsx)(l.Provider,{value:a,children:t})}function r(){const e=(0,s.useContext)(l);if(null===e)throw new o.dV("DocProvider");return e}function d(){const{metadata:e,frontMatter:t,assets:n}=r();return(0,i.jsx)(a.be,{title:e.title,description:e.description,keywords:t.keywords,image:n.image??t.image})}var u=n(3526),m=n(8080),h=n(7260),p=n(6601);function f(e){const{permalink:t,title:n,subLabel:s,isNext:a}=e;return(0,i.jsxs)(p.A,{className:(0,u.A)("pagination-nav__link",a?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t,children:[s&&(0,i.jsx)("div",{className:"pagination-nav__sublabel",children:s}),(0,i.jsx)("div",{className:"pagination-nav__label",children:n})]})}function x(e){const{previous:t,next:n}=e;return(0,i.jsxs)("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,h.T)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"}),children:[t&&(0,i.jsx)(f,{...t,subLabel:(0,i.jsx)(h.A,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc",children:"Previous"})}),n&&(0,i.jsx)(f,{...n,subLabel:(0,i.jsx)(h.A,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc",children:"Next"}),isNext:!0})]})}function b(){const{metadata:e}=r();return(0,i.jsx)(x,{previous:e.previous,next:e.next})}var g=n(6869),j=n(9612),v=n(7998),N=n(3636),A=n(4451);const C={unreleased:function(e){let{siteTitle:t,versionMetadata:n}=e;return(0,i.jsx)(h.A,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:(0,i.jsx)("b",{children:n.label})},children:"This is unreleased documentation for {siteTitle} {versionLabel} version."})},unmaintained:function(e){let{siteTitle:t,versionMetadata:n}=e;return(0,i.jsx)(h.A,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:(0,i.jsx)("b",{children:n.label})},children:"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained."})}};function y(e){const t=C[e.versionMetadata.banner];return(0,i.jsx)(t,{...e})}function k(e){let{versionLabel:t,to:n,onClick:s}=e;return(0,i.jsx)(h.A,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:(0,i.jsx)("b",{children:(0,i.jsx)(p.A,{to:n,onClick:s,children:(0,i.jsx)(h.A,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label",children:"latest version"})})})},children:"For up-to-date documentation, see the {latestVersionLink} ({versionLabel})."})}function L(e){let{className:t,versionMetadata:n}=e;const{siteConfig:{title:s}}=(0,g.A)(),{pluginId:a}=(0,j.vT)({failfast:!0}),{savePreferredVersionName:o}=(0,N.g1)(a),{latestDocSuggestion:l,latestVersionSuggestion:c}=(0,j.HW)(a),r=l??(d=c).docs.find((e=>e.id===d.mainDocId));var d;return(0,i.jsxs)("div",{className:(0,u.A)(t,v.G.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert",children:[(0,i.jsx)("div",{children:(0,i.jsx)(y,{siteTitle:s,versionMetadata:n})}),(0,i.jsx)("div",{className:"margin-top--md",children:(0,i.jsx)(k,{versionLabel:c.label,to:r.path,onClick:()=>o(c.name)})})]})}function _(e){let{className:t}=e;const n=(0,A.r)();return n.banner?(0,i.jsx)(L,{className:t,versionMetadata:n}):null}function B(e){let{className:t}=e;const n=(0,A.r)();return n.badge?(0,i.jsx)("span",{className:(0,u.A)(t,v.G.docs.docVersionBadge,"badge badge--secondary"),children:(0,i.jsx)(h.A,{id:"theme.docs.versionBadge.label",values:{versionLabel:n.label},children:"Version: {versionLabel}"})}):null}function w(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:n}=e;return(0,i.jsx)(h.A,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:(0,i.jsx)("b",{children:(0,i.jsx)("time",{dateTime:new Date(1e3*t).toISOString(),children:n})})},children:" on {date}"})}function T(e){let{lastUpdatedBy:t}=e;return(0,i.jsx)(h.A,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:(0,i.jsx)("b",{children:t})},children:" by {user}"})}function E(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:n,lastUpdatedBy:s}=e;return(0,i.jsxs)("span",{className:v.G.common.lastUpdated,children:[(0,i.jsx)(h.A,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:t&&n?(0,i.jsx)(w,{lastUpdatedAt:t,formattedLastUpdatedAt:n}):"",byUser:s?(0,i.jsx)(T,{lastUpdatedBy:s}):""},children:"Last updated{atDate}{byUser}"}),!1]})}const H={iconEdit:"iconEdit_hqvt"};function M(e){let{className:t,...n}=e;return(0,i.jsx)("svg",{fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,u.A)(H.iconEdit,t),"aria-hidden":"true",...n,children:(0,i.jsx)("g",{children:(0,i.jsx)("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})})})}function U(e){let{editUrl:t}=e;return(0,i.jsxs)(p.A,{to:t,className:v.G.common.editThisPage,children:[(0,i.jsx)(M,{}),(0,i.jsx)(h.A,{id:"theme.common.editThisPage",description:"The link label to edit the current page",children:"Edit this page"})]})}const I={tag:"tag_G9wi",tagRegular:"tagRegular_ZX_1",tagWithCount:"tagWithCount_xGB6"};function S(e){let{permalink:t,label:n,count:s}=e;return(0,i.jsxs)(p.A,{href:t,className:(0,u.A)(I.tag,s?I.tagWithCount:I.tagRegular),children:[n,s&&(0,i.jsx)("span",{children:s})]})}const R={tags:"tags_NPqp",tag:"tag_WyCo"};function z(e){let{tags:t}=e;return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("b",{children:(0,i.jsx)(h.A,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list",children:"Tags:"})}),(0,i.jsx)("ul",{className:(0,u.A)(R.tags,"padding--none","margin-left--sm"),children:t.map((e=>{let{label:t,permalink:n}=e;return(0,i.jsx)("li",{className:R.tag,children:(0,i.jsx)(S,{label:t,permalink:n})},n)}))})]})}const V={lastUpdated:"lastUpdated_rVBC"};function O(e){return(0,i.jsx)("div",{className:(0,u.A)(v.G.docs.docFooterTagsRow,"row margin-bottom--sm"),children:(0,i.jsx)("div",{className:"col",children:(0,i.jsx)(z,{...e})})})}function P(e){let{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:s,formattedLastUpdatedAt:a}=e;return(0,i.jsxs)("div",{className:(0,u.A)(v.G.docs.docFooterEditMetaRow,"row"),children:[(0,i.jsx)("div",{className:"col",children:t&&(0,i.jsx)(U,{editUrl:t})}),(0,i.jsx)("div",{className:(0,u.A)("col",V.lastUpdated),children:(n||s)&&(0,i.jsx)(E,{lastUpdatedAt:n,formattedLastUpdatedAt:a,lastUpdatedBy:s})})]})}function G(){const{metadata:e}=r(),{editUrl:t,lastUpdatedAt:n,formattedLastUpdatedAt:s,lastUpdatedBy:a,tags:o}=e,l=o.length>0,c=!!(t||n||a);return l||c?(0,i.jsxs)("footer",{className:(0,u.A)(v.G.docs.docFooter,"docusaurus-mt-lg"),children:[l&&(0,i.jsx)(O,{tags:o}),c&&(0,i.jsx)(P,{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:a,formattedLastUpdatedAt:s})]}):null}var D=n(1069),$=n(5349);function F(e){const t=e.map((e=>({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const s=n.slice(2,e.level);e.parentIndex=Math.max(...s),n[e.level]=t}));const s=[];return t.forEach((e=>{const{parentIndex:n,...a}=e;n>=0?t[n].children.push(a):s.push(a)})),s}function W(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:s}=e;return t.flatMap((e=>{const t=W({toc:e.children,minHeadingLevel:n,maxHeadingLevel:s});return function(e){return e.level>=n&&e.level<=s}(e)?[{...e,children:t}]:t}))}function q(e){const t=e.getBoundingClientRect();return t.top===t.bottom?q(e.parentNode):t}function Z(e,t){let{anchorTopOffset:n}=t;const s=e.find((e=>q(e).top>=n));if(s){return function(e){return e.top>0&&e.bottom{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function J(e){const t=(0,s.useRef)(void 0),n=Y();(0,s.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:s,linkActiveClassName:a,minHeadingLevel:o,maxHeadingLevel:i}=e;function l(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(s),l=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const s=[];for(let a=t;a<=n;a+=1)s.push(`h${a}.anchor`);return Array.from(document.querySelectorAll(s.join()))}({minHeadingLevel:o,maxHeadingLevel:i}),c=Z(l,{anchorTopOffset:n.current}),r=e.find((e=>c&&c.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(a),e.classList.add(a),t.current=e):e.classList.remove(a)}(e,e===r)}))}return document.addEventListener("scroll",l),document.addEventListener("resize",l),l(),()=>{document.removeEventListener("scroll",l),document.removeEventListener("resize",l)}}),[e,n])}function K(e){let{toc:t,className:n,linkClassName:s,isChild:a}=e;return t.length?(0,i.jsx)("ul",{className:a?void 0:n,children:t.map((e=>(0,i.jsxs)("li",{children:[(0,i.jsx)(p.A,{to:`#${e.id}`,className:s??void 0,dangerouslySetInnerHTML:{__html:e.value}}),(0,i.jsx)(K,{isChild:!0,toc:e.children,className:n,linkClassName:s})]},e.id)))}):null}const Q=s.memo(K);function X(e){let{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:a="table-of-contents__link",linkActiveClassName:o,minHeadingLevel:l,maxHeadingLevel:c,...r}=e;const d=(0,$.p)(),u=l??d.tableOfContents.minHeadingLevel,m=c??d.tableOfContents.maxHeadingLevel,h=function(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return(0,s.useMemo)((()=>W({toc:F(t),minHeadingLevel:n,maxHeadingLevel:a})),[t,n,a])}({toc:t,minHeadingLevel:u,maxHeadingLevel:m});return J((0,s.useMemo)((()=>{if(a&&o)return{linkClassName:a,linkActiveClassName:o,minHeadingLevel:u,maxHeadingLevel:m}}),[a,o,u,m])),(0,i.jsx)(Q,{toc:h,className:n,linkClassName:a,...r})}const ee={tocCollapsibleButton:"tocCollapsibleButton_fvqu",tocCollapsibleButtonExpanded:"tocCollapsibleButtonExpanded_gSY7"};function te(e){let{collapsed:t,...n}=e;return(0,i.jsx)("button",{type:"button",...n,className:(0,u.A)("clean-btn",ee.tocCollapsibleButton,!t&&ee.tocCollapsibleButtonExpanded,n.className),children:(0,i.jsx)(h.A,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component",children:"On this page"})})}const ne={tocCollapsible:"tocCollapsible_HBdG",tocCollapsibleContent:"tocCollapsibleContent_ZtRw",tocCollapsibleExpanded:"tocCollapsibleExpanded_Kmy0"};function se(e){let{toc:t,className:n,minHeadingLevel:s,maxHeadingLevel:a}=e;const{collapsed:o,toggleCollapsed:l}=(0,D.u)({initialState:!0});return(0,i.jsxs)("div",{className:(0,u.A)(ne.tocCollapsible,!o&&ne.tocCollapsibleExpanded,n),children:[(0,i.jsx)(te,{collapsed:o,onClick:l}),(0,i.jsx)(D.N,{lazy:!0,className:ne.tocCollapsibleContent,collapsed:o,children:(0,i.jsx)(X,{toc:t,minHeadingLevel:s,maxHeadingLevel:a})})]})}const ae={tocMobile:"tocMobile_z_cF"};function oe(){const{toc:e,frontMatter:t}=r();return(0,i.jsx)(se,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:(0,u.A)(v.G.docs.docTocMobile,ae.tocMobile)})}const ie={tableOfContents:"tableOfContents_Kj3J",docItemContainer:"docItemContainer_rccO"},le="table-of-contents__link toc-highlight",ce="table-of-contents__link--active";function re(e){let{className:t,...n}=e;return(0,i.jsx)("div",{className:(0,u.A)(ie.tableOfContents,"thin-scrollbar",t),children:(0,i.jsx)(X,{...n,linkClassName:le,linkActiveClassName:ce})})}function de(){const{toc:e,frontMatter:t}=r();return(0,i.jsx)(re,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:v.G.docs.docTocDesktop})}var ue=n(2406),me=n(1582),he=n(7471),pe=n(600),fe=n(1478);function xe(){const{prism:e}=(0,$.p)(),{colorMode:t}=(0,fe.G)(),n=e.theme,s=e.darkTheme||n;return"dark"===t?s:n}var be=n(4809),ge=n.n(be);const je=/title=(?["'])(?.*?)\1/,ve=/\{(?<range>[\d,-]+)\}/,Ne={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}},Ae={...Ne,lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},Ce=Object.keys(Ne);function ye(e,t){const n=e.map((e=>{const{start:n,end:s}=Ae[e];return`(?:${n}\\s*(${t.flatMap((e=>[e.line,e.block?.start,e.block?.end].filter(Boolean))).join("|")})\\s*${s})`})).join("|");return new RegExp(`^\\s*(?:${n})\\s*$`)}function ke(e,t){let n=e.replace(/\n$/,"");const{language:s,magicComments:a,metastring:o}=t;if(o&&ve.test(o)){const e=o.match(ve).groups.range;if(0===a.length)throw new Error(`A highlight range has been given in code block's metastring (\`\`\` ${o}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);const t=a[0].className,s=ge()(e).filter((e=>e>0)).map((e=>[e-1,[t]]));return{lineClassNames:Object.fromEntries(s),code:n}}if(void 0===s)return{lineClassNames:{},code:n};const i=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return ye(["js","jsBlock"],t);case"jsx":case"tsx":return ye(["js","jsBlock","jsx"],t);case"html":return ye(["js","jsBlock","html"],t);case"python":case"py":case"bash":return ye(["bash"],t);case"markdown":case"md":return ye(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return ye(["tex"],t);case"lua":case"haskell":case"sql":return ye(["lua"],t);case"wasm":return ye(["wasm"],t);case"vb":case"vba":case"visual-basic":return ye(["vb","rem"],t);case"vbnet":return ye(["vbnet","rem"],t);case"batch":return ye(["rem"],t);case"basic":return ye(["rem","f90"],t);case"fsharp":return ye(["js","ml"],t);case"ocaml":case"sml":return ye(["ml"],t);case"fortran":return ye(["f90"],t);case"cobol":return ye(["cobol"],t);default:return ye(Ce,t)}}(s,a),l=n.split("\n"),c=Object.fromEntries(a.map((e=>[e.className,{start:0,range:""}]))),r=Object.fromEntries(a.filter((e=>e.line)).map((e=>{let{className:t,line:n}=e;return[n,t]}))),d=Object.fromEntries(a.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.start,t]}))),u=Object.fromEntries(a.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.end,t]})));for(let h=0;h<l.length;){const e=l[h].match(i);if(!e){h+=1;continue}const t=e.slice(1).find((e=>void 0!==e));r[t]?c[r[t]].range+=`${h},`:d[t]?c[d[t]].start=h:u[t]&&(c[u[t]].range+=`${c[u[t]].start}-${h-1},`),l.splice(h,1)}n=l.join("\n");const m={};return Object.entries(c).forEach((e=>{let[t,{range:n}]=e;ge()(n).forEach((e=>{m[e]??=[],m[e].push(t)}))})),{lineClassNames:m,code:n}}const Le="codeBlockContainer_jasU";function _e(e){let{as:t,...n}=e;const s=function(e){const t={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach((e=>{let[s,a]=e;const o=t[s];o&&"string"==typeof a&&(n[o]=a)})),n}(xe());return(0,i.jsx)(t,{...n,style:s,className:(0,u.A)(n.className,Le,v.G.common.codeBlock)})}const Be={codeBlockContent:"codeBlockContent_TEEh",codeBlockTitle:"codeBlockTitle_e8pP",codeBlock:"codeBlock_Bkgn",codeBlockStandalone:"codeBlockStandalone__C0n",codeBlockLines:"codeBlockLines_lDP1",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_y7ta",buttonGroup:"buttonGroup_QYpy"};function we(e){let{children:t,className:n}=e;return(0,i.jsx)(_e,{as:"pre",tabIndex:0,className:(0,u.A)(Be.codeBlockStandalone,"thin-scrollbar",n),children:(0,i.jsx)("code",{className:Be.codeBlockLines,children:t})})}const Te={attributes:!0,characterData:!0,childList:!0,subtree:!0};function Ee(e,t){const[n,a]=(0,s.useState)(),i=(0,s.useCallback)((()=>{a(e.current?.closest("[role=tabpanel][hidden]"))}),[e,a]);(0,s.useEffect)((()=>{i()}),[i]),function(e,t,n){void 0===n&&(n=Te);const a=(0,o._q)(t),i=(0,o.Be)(n);(0,s.useEffect)((()=>{const t=new MutationObserver(a);return e&&t.observe(e,i),()=>t.disconnect()}),[e,a,i])}(n,(e=>{e.forEach((e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),i())}))}),{attributes:!0,characterData:!1,childList:!1,subtree:!1})}var He=n(5371);const Me="codeLine_qib8",Ue="codeLineNumber_dbgI",Ie="codeLineContent_h2yX";function Se(e){let{line:t,classNames:n,showLineNumbers:s,getLineProps:a,getTokenProps:o}=e;1===t.length&&"\n"===t[0].content&&(t[0].content="");const l=a({line:t,className:(0,u.A)(n,s&&Me)}),c=t.map(((e,t)=>(0,i.jsx)("span",{...o({token:e,key:t})},t)));return(0,i.jsxs)("span",{...l,children:[s?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("span",{className:Ue}),(0,i.jsx)("span",{className:Ie,children:c})]}):c,(0,i.jsx)("br",{})]})}function Re(e){return(0,i.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,i.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})})}function ze(e){return(0,i.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,i.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})})}const Ve={copyButtonCopied:"copyButtonCopied_yinF",copyButtonIcons:"copyButtonIcons_SHCV",copyButtonIcon:"copyButtonIcon_rwkz",copyButtonSuccessIcon:"copyButtonSuccessIcon_B2xf"};function Oe(e){let{code:t,className:n}=e;const[a,o]=(0,s.useState)(!1),l=(0,s.useRef)(void 0),c=(0,s.useCallback)((()=>{!function(e,t){let{target:n=document.body}=void 0===t?{}:t;if("string"!=typeof e)throw new TypeError(`Expected parameter \`text\` to be a \`string\`, got \`${typeof e}\`.`);const s=document.createElement("textarea"),a=document.activeElement;s.value=e,s.setAttribute("readonly",""),s.style.contain="strict",s.style.position="absolute",s.style.left="-9999px",s.style.fontSize="12pt";const o=document.getSelection(),i=o.rangeCount>0&&o.getRangeAt(0);n.append(s),s.select(),s.selectionStart=0,s.selectionEnd=e.length;let l=!1;try{l=document.execCommand("copy")}catch{}s.remove(),i&&(o.removeAllRanges(),o.addRange(i)),a&&a.focus()}(t),o(!0),l.current=window.setTimeout((()=>{o(!1)}),1e3)}),[t]);return(0,s.useEffect)((()=>()=>window.clearTimeout(l.current)),[]),(0,i.jsx)("button",{type:"button","aria-label":a?(0,h.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,h.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,h.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,u.A)("clean-btn",n,Ve.copyButton,a&&Ve.copyButtonCopied),onClick:c,children:(0,i.jsxs)("span",{className:Ve.copyButtonIcons,"aria-hidden":"true",children:[(0,i.jsx)(Re,{className:Ve.copyButtonIcon}),(0,i.jsx)(ze,{className:Ve.copyButtonSuccessIcon})]})})}function Pe(e){return(0,i.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,i.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})})}const Ge="wordWrapButtonIcon_KMHO",De="wordWrapButtonEnabled_Eugp";function $e(e){let{className:t,onClick:n,isEnabled:s}=e;const a=(0,h.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,i.jsx)("button",{type:"button",onClick:n,className:(0,u.A)("clean-btn",t,s&&De),"aria-label":a,title:a,children:(0,i.jsx)(Pe,{className:Ge,"aria-hidden":"true"})})}function Fe(e){let{children:t,className:n="",metastring:a,title:o,showLineNumbers:l,language:c}=e;const{prism:{defaultLanguage:r,magicComments:d}}=(0,$.p)(),m=function(e){return e?.toLowerCase()}(c??function(e){const t=e.split(" ").find((e=>e.startsWith("language-")));return t?.replace(/language-/,"")}(n)??r),h=xe(),p=function(){const[e,t]=(0,s.useState)(!1),[n,a]=(0,s.useState)(!1),o=(0,s.useRef)(null),i=(0,s.useCallback)((()=>{const n=o.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t((e=>!e))}),[o,e]),l=(0,s.useCallback)((()=>{const{scrollWidth:e,clientWidth:t}=o.current,n=e>t||o.current.querySelector("code").hasAttribute("style");a(n)}),[o]);return Ee(o,l),(0,s.useEffect)((()=>{l()}),[e,l]),(0,s.useEffect)((()=>(window.addEventListener("resize",l,{passive:!0}),()=>{window.removeEventListener("resize",l)})),[l]),{codeBlockRef:o,isEnabled:e,isCodeScrollable:n,toggle:i}}(),f=function(e){return e?.match(je)?.groups.title??""}(a)||o,{lineClassNames:x,code:b}=ke(t,{metastring:a,language:m,magicComments:d}),g=l??function(e){return Boolean(e?.includes("showLineNumbers"))}(a);return(0,i.jsxs)(_e,{as:"div",className:(0,u.A)(n,m&&!n.includes(`language-${m}`)&&`language-${m}`),children:[f&&(0,i.jsx)("div",{className:Be.codeBlockTitle,children:f}),(0,i.jsxs)("div",{className:Be.codeBlockContent,children:[(0,i.jsx)(He.f4,{theme:h,code:b,language:m??"text",children:e=>{let{className:t,style:n,tokens:s,getLineProps:a,getTokenProps:o}=e;return(0,i.jsx)("pre",{tabIndex:0,ref:p.codeBlockRef,className:(0,u.A)(t,Be.codeBlock,"thin-scrollbar"),style:n,children:(0,i.jsx)("code",{className:(0,u.A)(Be.codeBlockLines,g&&Be.codeBlockLinesWithNumbering),children:s.map(((e,t)=>(0,i.jsx)(Se,{line:e,getLineProps:a,getTokenProps:o,classNames:x[t],showLineNumbers:g},t)))})})}}),(0,i.jsxs)("div",{className:Be.buttonGroup,children:[(p.isEnabled||p.isCodeScrollable)&&(0,i.jsx)($e,{className:Be.codeButton,onClick:()=>p.toggle(),isEnabled:p.isEnabled}),(0,i.jsx)(Oe,{className:Be.codeButton,code:b})]})]})]})}function We(e){let{children:t,...n}=e;const a=(0,pe.A)(),o=function(e){return s.Children.toArray(e).some((e=>(0,s.isValidElement)(e)))?e:Array.isArray(e)?e.join(""):e}(t),l="string"==typeof o?Fe:we;return(0,i.jsx)(l,{...n,children:o},String(a))}function qe(e){return(0,i.jsx)("code",{...e})}var Ze=n(2146);const Ye="details_NQJP",Je="isBrowser_nVDU",Ke="collapsibleContent_MmFW";function Qe(e){return!!e&&("SUMMARY"===e.tagName||Qe(e.parentElement))}function Xe(e,t){return!!e&&(e===t||Xe(e.parentElement,t))}function et(e){let{summary:t,children:n,...a}=e;(0,Ze.A)().collectAnchor(a.id);const o=(0,pe.A)(),l=(0,s.useRef)(null),{collapsed:c,setCollapsed:r}=(0,D.u)({initialState:!a.open}),[d,m]=(0,s.useState)(a.open),h=s.isValidElement(t)?t:(0,i.jsx)("summary",{children:t??"Details"});return(0,i.jsxs)("details",{...a,ref:l,open:d,"data-collapsed":c,className:(0,u.A)(Ye,o&&Je,a.className),onMouseDown:e=>{Qe(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();const t=e.target;Qe(t)&&Xe(t,l.current)&&(e.preventDefault(),c?(r(!1),m(!0)):r(!0))},children:[h,(0,i.jsx)(D.N,{lazy:!1,collapsed:c,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{r(e),m(!e)},children:(0,i.jsx)("div",{className:Ke,children:n})})]})}const tt="details_v4Yj";function nt(e){let{...t}=e;return(0,i.jsx)(et,{...t,className:(0,u.A)("alert alert--info",tt,t.className)})}function st(e){const t=s.Children.toArray(e.children),n=t.find((e=>s.isValidElement(e)&&"summary"===e.type)),a=(0,i.jsx)(i.Fragment,{children:t.filter((e=>e!==n))});return(0,i.jsx)(nt,{...e,summary:n,children:a})}function at(e){return(0,i.jsx)(ue.A,{...e})}const ot="containsTaskList_j67I";function it(e){if(void 0!==e)return(0,u.A)(e,e?.includes("contains-task-list")&&ot)}const lt="img_ce0i";function ct(e){const{mdxAdmonitionTitle:t,rest:n}=function(e){const t=s.Children.toArray(e),n=t.find((e=>s.isValidElement(e)&&"mdxAdmonitionTitle"===e.type)),a=t.filter((e=>e!==n)),o=n?.props.children;return{mdxAdmonitionTitle:o,rest:a.length>0?(0,i.jsx)(i.Fragment,{children:a}):null}}(e.children),a=e.title??t;return{...e,...a&&{title:a},children:n}}const rt="admonition_qJAF",dt="admonitionHeading_WmUu",ut="admonitionIcon_FLlS",mt="admonitionContent_Lm9s";function ht(e){let{type:t,className:n,children:s}=e;return(0,i.jsx)("div",{className:(0,u.A)(v.G.common.admonition,v.G.common.admonitionType(t),rt,n),children:s})}function pt(e){let{icon:t,title:n}=e;return(0,i.jsxs)("div",{className:dt,children:[(0,i.jsx)("span",{className:ut,children:t}),n]})}function ft(e){let{children:t}=e;return t?(0,i.jsx)("div",{className:mt,children:t}):null}function xt(e){const{type:t,icon:n,title:s,children:a,className:o}=e;return(0,i.jsxs)(ht,{type:t,className:o,children:[(0,i.jsx)(pt,{title:s,icon:n}),(0,i.jsx)(ft,{children:a})]})}function bt(e){return(0,i.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const gt={icon:(0,i.jsx)(bt,{}),title:(0,i.jsx)(h.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function jt(e){return(0,i.jsx)(xt,{...gt,...e,className:(0,u.A)("alert alert--secondary",e.className),children:e.children})}function vt(e){return(0,i.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const Nt={icon:(0,i.jsx)(vt,{}),title:(0,i.jsx)(h.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function At(e){return(0,i.jsx)(xt,{...Nt,...e,className:(0,u.A)("alert alert--success",e.className),children:e.children})}function Ct(e){return(0,i.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const yt={icon:(0,i.jsx)(Ct,{}),title:(0,i.jsx)(h.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function kt(e){return(0,i.jsx)(xt,{...yt,...e,className:(0,u.A)("alert alert--info",e.className),children:e.children})}function Lt(e){return(0,i.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const _t={icon:(0,i.jsx)(Lt,{}),title:(0,i.jsx)(h.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function Bt(e){return(0,i.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const wt={icon:(0,i.jsx)(Bt,{}),title:(0,i.jsx)(h.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const Tt={icon:(0,i.jsx)(Lt,{}),title:(0,i.jsx)(h.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const Et={...{note:jt,tip:At,info:kt,warning:function(e){return(0,i.jsx)(xt,{..._t,...e,className:(0,u.A)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,i.jsx)(xt,{...wt,...e,className:(0,u.A)("alert alert--danger",e.className),children:e.children})}},...{secondary:e=>(0,i.jsx)(jt,{title:"secondary",...e}),important:e=>(0,i.jsx)(kt,{title:"important",...e}),success:e=>(0,i.jsx)(At,{title:"success",...e}),caution:function(e){return(0,i.jsx)(xt,{...Tt,...e,className:(0,u.A)("alert alert--warning",e.className),children:e.children})}}};function Ht(e){const t=ct(e),n=(s=t.type,Et[s]||(console.warn(`No admonition component found for admonition type "${s}". Using Info as fallback.`),Et.info));var s;return(0,i.jsx)(n,{...t})}const Mt={Head:he.A,details:st,Details:st,code:function(e){return function(e){return void 0!==e.children&&s.Children.toArray(e.children).every((e=>"string"==typeof e&&!e.includes("\n")))}(e)?(0,i.jsx)(qe,{...e}):(0,i.jsx)(We,{...e})},a:function(e){return(0,i.jsx)(p.A,{...e})},pre:function(e){return(0,i.jsx)(i.Fragment,{children:e.children})},ul:function(e){return(0,i.jsx)("ul",{...e,className:it(e.className)})},li:function(e){return(0,Ze.A)().collectAnchor(e.id),(0,i.jsx)("li",{...e})},img:function(e){return(0,i.jsx)("img",{decoding:"async",loading:"lazy",...e,className:(t=e.className,(0,u.A)(t,lt))});var t},h1:e=>(0,i.jsx)(at,{as:"h1",...e}),h2:e=>(0,i.jsx)(at,{as:"h2",...e}),h3:e=>(0,i.jsx)(at,{as:"h3",...e}),h4:e=>(0,i.jsx)(at,{as:"h4",...e}),h5:e=>(0,i.jsx)(at,{as:"h5",...e}),h6:e=>(0,i.jsx)(at,{as:"h6",...e}),admonition:Ht,mermaid:()=>null};function Ut(e){let{children:t}=e;return(0,i.jsx)(me.x,{components:Mt,children:t})}function It(e){let{children:t}=e;const n=function(){const{metadata:e,frontMatter:t,contentTitle:n}=r();return t.hide_title||void 0!==n?null:e.title}();return(0,i.jsxs)("div",{className:(0,u.A)(v.G.docs.docMarkdown,"markdown"),children:[n&&(0,i.jsx)("header",{children:(0,i.jsx)(ue.A,{as:"h1",children:n})}),(0,i.jsx)(Ut,{children:t})]})}var St=n(3745),Rt=n(8492),zt=n(7838);function Vt(e){return(0,i.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,i.jsx)("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"})})}const Ot={breadcrumbHomeIcon:"breadcrumbHomeIcon_eIF0"};function Pt(){const e=(0,zt.A)("/");return(0,i.jsx)("li",{className:"breadcrumbs__item",children:(0,i.jsx)(p.A,{"aria-label":(0,h.T)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e,children:(0,i.jsx)(Vt,{className:Ot.breadcrumbHomeIcon})})})}const Gt={breadcrumbsContainer:"breadcrumbsContainer_y6NL"};function Dt(e){let{children:t,href:n,isLast:s}=e;const a="breadcrumbs__link";return s?(0,i.jsx)("span",{className:a,itemProp:"name",children:t}):n?(0,i.jsx)(p.A,{className:a,href:n,itemProp:"item",children:(0,i.jsx)("span",{itemProp:"name",children:t})}):(0,i.jsx)("span",{className:a,children:t})}function $t(e){let{children:t,active:n,index:s,addMicrodata:a}=e;return(0,i.jsxs)("li",{...a&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},className:(0,u.A)("breadcrumbs__item",{"breadcrumbs__item--active":n}),children:[t,(0,i.jsx)("meta",{itemProp:"position",content:String(s+1)})]})}function Ft(){const e=(0,St.OF)(),t=(0,Rt.Dt)();return e?(0,i.jsx)("nav",{className:(0,u.A)(v.G.docs.docBreadcrumbs,Gt.breadcrumbsContainer),"aria-label":(0,h.T)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"}),children:(0,i.jsxs)("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList",children:[t&&(0,i.jsx)(Pt,{}),e.map(((t,n)=>{const s=n===e.length-1,a="category"===t.type&&t.linkUnlisted?void 0:t.href;return(0,i.jsx)($t,{active:s,index:n,addMicrodata:!!a,children:(0,i.jsx)(Dt,{href:a,isLast:s,children:t.label})},n)}))]})}):null}function Wt(){return(0,i.jsx)(h.A,{id:"theme.unlistedContent.title",description:"The unlisted content banner title",children:"Unlisted page"})}function qt(){return(0,i.jsx)(h.A,{id:"theme.unlistedContent.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function Zt(){return(0,i.jsx)(he.A,{children:(0,i.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}function Yt(e){let{className:t}=e;return(0,i.jsx)(Ht,{type:"caution",title:(0,i.jsx)(Wt,{}),className:(0,u.A)(t,v.G.common.unlistedBanner),children:(0,i.jsx)(qt,{})})}function Jt(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(Zt,{}),(0,i.jsx)(Yt,{...e})]})}const Kt={docItemContainer:"docItemContainer_AUwr",docItemCol:"docItemCol_dvZ9"};function Qt(e){let{children:t}=e;const n=function(){const{frontMatter:e,toc:t}=r(),n=(0,m.l)(),s=e.hide_table_of_contents,a=!s&&t.length>0;return{hidden:s,mobile:a?(0,i.jsx)(oe,{}):void 0,desktop:!a||"desktop"!==n&&"ssr"!==n?void 0:(0,i.jsx)(de,{})}}(),{metadata:{unlisted:s}}=r();return(0,i.jsxs)("div",{className:"row",children:[(0,i.jsxs)("div",{className:(0,u.A)("col",!n.hidden&&Kt.docItemCol),children:[s&&(0,i.jsx)(Jt,{}),(0,i.jsx)(_,{}),(0,i.jsxs)("div",{className:Kt.docItemContainer,children:[(0,i.jsxs)("article",{children:[(0,i.jsx)(Ft,{}),(0,i.jsx)(B,{}),n.mobile,(0,i.jsx)(It,{children:t}),(0,i.jsx)(G,{})]}),(0,i.jsx)(b,{})]})]}),n.desktop&&(0,i.jsx)("div",{className:"col col--3",children:n.desktop})]})}function Xt(e){const t=`docs-doc-id-${e.content.metadata.id}`,n=e.content;return(0,i.jsx)(c,{content:e.content,children:(0,i.jsxs)(a.e3,{className:t,children:[(0,i.jsx)(d,{}),(0,i.jsx)(Qt,{children:(0,i.jsx)(n,{})})]})})}},4809:(e,t)=>{function n(e){let t,n=[];for(let s of e.split(",").map((e=>e.trim())))if(/^-?\d+$/.test(s))n.push(parseInt(s,10));else if(t=s.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,s,a,o]=t;if(s&&o){s=parseInt(s),o=parseInt(o);const e=s<o?1:-1;"-"!==a&&".."!==a&&"\u2025"!==a||(o+=e);for(let t=s;t!==o;t+=e)n.push(t)}}return n}t.default=n,e.exports=n},1582:(e,t,n)=>{"use strict";n.d(t,{R:()=>i,x:()=>l});var s=n(758);const a={},o=s.createContext(a);function i(e){const t=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),s.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/17896441.59246166.js b/build/assets/js/17896441.59246166.js deleted file mode 100644 index 3577d32d9..000000000 --- a/build/assets/js/17896441.59246166.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[8401],{278:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>Ft});var s=n(9474),a=n(961),o=n(5461),i=n(3274);const l=s.createContext(null);function c(e){let{children:t,content:n}=e;const a=function(e){return(0,s.useMemo)((()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc})),[e])}(n);return(0,i.jsx)(l.Provider,{value:a,children:t})}function r(){const e=(0,s.useContext)(l);if(null===e)throw new o.dV("DocProvider");return e}function d(){const{metadata:e,frontMatter:t,assets:n}=r();return(0,i.jsx)(a.be,{title:e.title,description:e.description,keywords:t.keywords,image:n.image??t.image})}var u=n(8923),m=n(6342),h=n(1598),p=n(8379);function f(e){const{permalink:t,title:n,subLabel:s,isNext:a}=e;return(0,i.jsxs)(p.A,{className:(0,u.A)("pagination-nav__link",a?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t,children:[s&&(0,i.jsx)("div",{className:"pagination-nav__sublabel",children:s}),(0,i.jsx)("div",{className:"pagination-nav__label",children:n})]})}function x(e){const{previous:t,next:n}=e;return(0,i.jsxs)("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,h.T)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"}),children:[t&&(0,i.jsx)(f,{...t,subLabel:(0,i.jsx)(h.A,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc",children:"Previous"})}),n&&(0,i.jsx)(f,{...n,subLabel:(0,i.jsx)(h.A,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc",children:"Next"}),isNext:!0})]})}function b(){const{metadata:e}=r();return(0,i.jsx)(x,{previous:e.previous,next:e.next})}var g=n(2403),j=n(4800),v=n(1552),N=n(1558),A=n(2569);const C={unreleased:function(e){let{siteTitle:t,versionMetadata:n}=e;return(0,i.jsx)(h.A,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:(0,i.jsx)("b",{children:n.label})},children:"This is unreleased documentation for {siteTitle} {versionLabel} version."})},unmaintained:function(e){let{siteTitle:t,versionMetadata:n}=e;return(0,i.jsx)(h.A,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:(0,i.jsx)("b",{children:n.label})},children:"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained."})}};function L(e){const t=C[e.versionMetadata.banner];return(0,i.jsx)(t,{...e})}function k(e){let{versionLabel:t,to:n,onClick:s}=e;return(0,i.jsx)(h.A,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:(0,i.jsx)("b",{children:(0,i.jsx)(p.A,{to:n,onClick:s,children:(0,i.jsx)(h.A,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label",children:"latest version"})})})},children:"For up-to-date documentation, see the {latestVersionLink} ({versionLabel})."})}function y(e){let{className:t,versionMetadata:n}=e;const{siteConfig:{title:s}}=(0,g.A)(),{pluginId:a}=(0,j.vT)({failfast:!0}),{savePreferredVersionName:o}=(0,N.g1)(a),{latestDocSuggestion:l,latestVersionSuggestion:c}=(0,j.HW)(a),r=l??(d=c).docs.find((e=>e.id===d.mainDocId));var d;return(0,i.jsxs)("div",{className:(0,u.A)(t,v.G.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert",children:[(0,i.jsx)("div",{children:(0,i.jsx)(L,{siteTitle:s,versionMetadata:n})}),(0,i.jsx)("div",{className:"margin-top--md",children:(0,i.jsx)(k,{versionLabel:c.label,to:r.path,onClick:()=>o(c.name)})})]})}function _(e){let{className:t}=e;const n=(0,A.r)();return n.banner?(0,i.jsx)(y,{className:t,versionMetadata:n}):null}function B(e){let{className:t}=e;const n=(0,A.r)();return n.badge?(0,i.jsx)("span",{className:(0,u.A)(t,v.G.docs.docVersionBadge,"badge badge--secondary"),children:(0,i.jsx)(h.A,{id:"theme.docs.versionBadge.label",values:{versionLabel:n.label},children:"Version: {versionLabel}"})}):null}function w(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:n}=e;return(0,i.jsx)(h.A,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:(0,i.jsx)("b",{children:(0,i.jsx)("time",{dateTime:new Date(1e3*t).toISOString(),children:n})})},children:" on {date}"})}function T(e){let{lastUpdatedBy:t}=e;return(0,i.jsx)(h.A,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:(0,i.jsx)("b",{children:t})},children:" by {user}"})}function E(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:n,lastUpdatedBy:s}=e;return(0,i.jsxs)("span",{className:v.G.common.lastUpdated,children:[(0,i.jsx)(h.A,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:t&&n?(0,i.jsx)(w,{lastUpdatedAt:t,formattedLastUpdatedAt:n}):"",byUser:s?(0,i.jsx)(T,{lastUpdatedBy:s}):""},children:"Last updated{atDate}{byUser}"}),!1]})}const H={iconEdit:"iconEdit_hXYy"};function M(e){let{className:t,...n}=e;return(0,i.jsx)("svg",{fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,u.A)(H.iconEdit,t),"aria-hidden":"true",...n,children:(0,i.jsx)("g",{children:(0,i.jsx)("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})})})}function I(e){let{editUrl:t}=e;return(0,i.jsxs)(p.A,{to:t,className:v.G.common.editThisPage,children:[(0,i.jsx)(M,{}),(0,i.jsx)(h.A,{id:"theme.common.editThisPage",description:"The link label to edit the current page",children:"Edit this page"})]})}const U={tag:"tag_v7WR",tagRegular:"tagRegular_Je6X",tagWithCount:"tagWithCount_joth"};function S(e){let{permalink:t,label:n,count:s}=e;return(0,i.jsxs)(p.A,{href:t,className:(0,u.A)(U.tag,s?U.tagWithCount:U.tagRegular),children:[n,s&&(0,i.jsx)("span",{children:s})]})}const R={tags:"tags_h90I",tag:"tag_sssu"};function z(e){let{tags:t}=e;return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("b",{children:(0,i.jsx)(h.A,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list",children:"Tags:"})}),(0,i.jsx)("ul",{className:(0,u.A)(R.tags,"padding--none","margin-left--sm"),children:t.map((e=>{let{label:t,permalink:n}=e;return(0,i.jsx)("li",{className:R.tag,children:(0,i.jsx)(S,{label:t,permalink:n})},n)}))})]})}const V={lastUpdated:"lastUpdated_QCdV"};function D(e){return(0,i.jsx)("div",{className:(0,u.A)(v.G.docs.docFooterTagsRow,"row margin-bottom--sm"),children:(0,i.jsx)("div",{className:"col",children:(0,i.jsx)(z,{...e})})})}function O(e){let{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:s,formattedLastUpdatedAt:a}=e;return(0,i.jsxs)("div",{className:(0,u.A)(v.G.docs.docFooterEditMetaRow,"row"),children:[(0,i.jsx)("div",{className:"col",children:t&&(0,i.jsx)(I,{editUrl:t})}),(0,i.jsx)("div",{className:(0,u.A)("col",V.lastUpdated),children:(n||s)&&(0,i.jsx)(E,{lastUpdatedAt:n,formattedLastUpdatedAt:a,lastUpdatedBy:s})})]})}function W(){const{metadata:e}=r(),{editUrl:t,lastUpdatedAt:n,formattedLastUpdatedAt:s,lastUpdatedBy:a,tags:o}=e,l=o.length>0,c=!!(t||n||a);return l||c?(0,i.jsxs)("footer",{className:(0,u.A)(v.G.docs.docFooter,"docusaurus-mt-lg"),children:[l&&(0,i.jsx)(D,{tags:o}),c&&(0,i.jsx)(O,{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:a,formattedLastUpdatedAt:s})]}):null}var P=n(3635),G=n(4359);function $(e){const t=e.map((e=>({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const s=n.slice(2,e.level);e.parentIndex=Math.max(...s),n[e.level]=t}));const s=[];return t.forEach((e=>{const{parentIndex:n,...a}=e;n>=0?t[n].children.push(a):s.push(a)})),s}function F(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:s}=e;return t.flatMap((e=>{const t=F({toc:e.children,minHeadingLevel:n,maxHeadingLevel:s});return function(e){return e.level>=n&&e.level<=s}(e)?[{...e,children:t}]:t}))}function q(e){const t=e.getBoundingClientRect();return t.top===t.bottom?q(e.parentNode):t}function X(e,t){let{anchorTopOffset:n}=t;const s=e.find((e=>q(e).top>=n));if(s){return function(e){return e.top>0&&e.bottom<window.innerHeight/2}(q(s))?s:e[e.indexOf(s)-1]??null}return e[e.length-1]??null}function Y(){const e=(0,s.useRef)(0),{navbar:{hideOnScroll:t}}=(0,G.p)();return(0,s.useEffect)((()=>{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function Z(e){const t=(0,s.useRef)(void 0),n=Y();(0,s.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:s,linkActiveClassName:a,minHeadingLevel:o,maxHeadingLevel:i}=e;function l(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(s),l=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const s=[];for(let a=t;a<=n;a+=1)s.push(`h${a}.anchor`);return Array.from(document.querySelectorAll(s.join()))}({minHeadingLevel:o,maxHeadingLevel:i}),c=X(l,{anchorTopOffset:n.current}),r=e.find((e=>c&&c.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(a),e.classList.add(a),t.current=e):e.classList.remove(a)}(e,e===r)}))}return document.addEventListener("scroll",l),document.addEventListener("resize",l),l(),()=>{document.removeEventListener("scroll",l),document.removeEventListener("resize",l)}}),[e,n])}function J(e){let{toc:t,className:n,linkClassName:s,isChild:a}=e;return t.length?(0,i.jsx)("ul",{className:a?void 0:n,children:t.map((e=>(0,i.jsxs)("li",{children:[(0,i.jsx)(p.A,{to:`#${e.id}`,className:s??void 0,dangerouslySetInnerHTML:{__html:e.value}}),(0,i.jsx)(J,{isChild:!0,toc:e.children,className:n,linkClassName:s})]},e.id)))}):null}const Q=s.memo(J);function K(e){let{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:a="table-of-contents__link",linkActiveClassName:o,minHeadingLevel:l,maxHeadingLevel:c,...r}=e;const d=(0,G.p)(),u=l??d.tableOfContents.minHeadingLevel,m=c??d.tableOfContents.maxHeadingLevel,h=function(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return(0,s.useMemo)((()=>F({toc:$(t),minHeadingLevel:n,maxHeadingLevel:a})),[t,n,a])}({toc:t,minHeadingLevel:u,maxHeadingLevel:m});return Z((0,s.useMemo)((()=>{if(a&&o)return{linkClassName:a,linkActiveClassName:o,minHeadingLevel:u,maxHeadingLevel:m}}),[a,o,u,m])),(0,i.jsx)(Q,{toc:h,className:n,linkClassName:a,...r})}const ee={tocCollapsibleButton:"tocCollapsibleButton_WOPX",tocCollapsibleButtonExpanded:"tocCollapsibleButtonExpanded_rwL1"};function te(e){let{collapsed:t,...n}=e;return(0,i.jsx)("button",{type:"button",...n,className:(0,u.A)("clean-btn",ee.tocCollapsibleButton,!t&&ee.tocCollapsibleButtonExpanded,n.className),children:(0,i.jsx)(h.A,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component",children:"On this page"})})}const ne={tocCollapsible:"tocCollapsible_DiAg",tocCollapsibleContent:"tocCollapsibleContent_ZaYr",tocCollapsibleExpanded:"tocCollapsibleExpanded_PvQh"};function se(e){let{toc:t,className:n,minHeadingLevel:s,maxHeadingLevel:a}=e;const{collapsed:o,toggleCollapsed:l}=(0,P.u)({initialState:!0});return(0,i.jsxs)("div",{className:(0,u.A)(ne.tocCollapsible,!o&&ne.tocCollapsibleExpanded,n),children:[(0,i.jsx)(te,{collapsed:o,onClick:l}),(0,i.jsx)(P.N,{lazy:!0,className:ne.tocCollapsibleContent,collapsed:o,children:(0,i.jsx)(K,{toc:t,minHeadingLevel:s,maxHeadingLevel:a})})]})}const ae={tocMobile:"tocMobile_Xpp9"};function oe(){const{toc:e,frontMatter:t}=r();return(0,i.jsx)(se,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:(0,u.A)(v.G.docs.docTocMobile,ae.tocMobile)})}const ie={tableOfContents:"tableOfContents_BZNS",docItemContainer:"docItemContainer_MIA2"},le="table-of-contents__link toc-highlight",ce="table-of-contents__link--active";function re(e){let{className:t,...n}=e;return(0,i.jsx)("div",{className:(0,u.A)(ie.tableOfContents,"thin-scrollbar",t),children:(0,i.jsx)(K,{...n,linkClassName:le,linkActiveClassName:ce})})}function de(){const{toc:e,frontMatter:t}=r();return(0,i.jsx)(re,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:v.G.docs.docTocDesktop})}var ue=n(9382),me=n(2333),he=n(609),pe=n(170),fe=n(2888);function xe(){const{prism:e}=(0,G.p)(),{colorMode:t}=(0,fe.G)(),n=e.theme,s=e.darkTheme||n;return"dark"===t?s:n}var be=n(4809),ge=n.n(be);const je=/title=(?<quote>["'])(?<title>.*?)\1/,ve=/\{(?<range>[\d,-]+)\}/,Ne={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}},Ae={...Ne,lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},Ce=Object.keys(Ne);function Le(e,t){const n=e.map((e=>{const{start:n,end:s}=Ae[e];return`(?:${n}\\s*(${t.flatMap((e=>[e.line,e.block?.start,e.block?.end].filter(Boolean))).join("|")})\\s*${s})`})).join("|");return new RegExp(`^\\s*(?:${n})\\s*$`)}function ke(e,t){let n=e.replace(/\n$/,"");const{language:s,magicComments:a,metastring:o}=t;if(o&&ve.test(o)){const e=o.match(ve).groups.range;if(0===a.length)throw new Error(`A highlight range has been given in code block's metastring (\`\`\` ${o}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);const t=a[0].className,s=ge()(e).filter((e=>e>0)).map((e=>[e-1,[t]]));return{lineClassNames:Object.fromEntries(s),code:n}}if(void 0===s)return{lineClassNames:{},code:n};const i=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return Le(["js","jsBlock"],t);case"jsx":case"tsx":return Le(["js","jsBlock","jsx"],t);case"html":return Le(["js","jsBlock","html"],t);case"python":case"py":case"bash":return Le(["bash"],t);case"markdown":case"md":return Le(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return Le(["tex"],t);case"lua":case"haskell":case"sql":return Le(["lua"],t);case"wasm":return Le(["wasm"],t);case"vb":case"vba":case"visual-basic":return Le(["vb","rem"],t);case"vbnet":return Le(["vbnet","rem"],t);case"batch":return Le(["rem"],t);case"basic":return Le(["rem","f90"],t);case"fsharp":return Le(["js","ml"],t);case"ocaml":case"sml":return Le(["ml"],t);case"fortran":return Le(["f90"],t);case"cobol":return Le(["cobol"],t);default:return Le(Ce,t)}}(s,a),l=n.split("\n"),c=Object.fromEntries(a.map((e=>[e.className,{start:0,range:""}]))),r=Object.fromEntries(a.filter((e=>e.line)).map((e=>{let{className:t,line:n}=e;return[n,t]}))),d=Object.fromEntries(a.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.start,t]}))),u=Object.fromEntries(a.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.end,t]})));for(let h=0;h<l.length;){const e=l[h].match(i);if(!e){h+=1;continue}const t=e.slice(1).find((e=>void 0!==e));r[t]?c[r[t]].range+=`${h},`:d[t]?c[d[t]].start=h:u[t]&&(c[u[t]].range+=`${c[u[t]].start}-${h-1},`),l.splice(h,1)}n=l.join("\n");const m={};return Object.entries(c).forEach((e=>{let[t,{range:n}]=e;ge()(n).forEach((e=>{m[e]??=[],m[e].push(t)}))})),{lineClassNames:m,code:n}}const ye={codeBlockContainer:"codeBlockContainer_TrXU"};function _e(e){let{as:t,...n}=e;const s=function(e){const t={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach((e=>{let[s,a]=e;const o=t[s];o&&"string"==typeof a&&(n[o]=a)})),n}(xe());return(0,i.jsx)(t,{...n,style:s,className:(0,u.A)(n.className,ye.codeBlockContainer,v.G.common.codeBlock)})}const Be={codeBlockContent:"codeBlockContent_oDlV",codeBlockTitle:"codeBlockTitle_KMGw",codeBlock:"codeBlock_vqyv",codeBlockStandalone:"codeBlockStandalone_xjYg",codeBlockLines:"codeBlockLines_w6yq",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_xm_F",buttonGroup:"buttonGroup_h4Ab"};function we(e){let{children:t,className:n}=e;return(0,i.jsx)(_e,{as:"pre",tabIndex:0,className:(0,u.A)(Be.codeBlockStandalone,"thin-scrollbar",n),children:(0,i.jsx)("code",{className:Be.codeBlockLines,children:t})})}const Te={attributes:!0,characterData:!0,childList:!0,subtree:!0};function Ee(e,t){const[n,a]=(0,s.useState)(),i=(0,s.useCallback)((()=>{a(e.current?.closest("[role=tabpanel][hidden]"))}),[e,a]);(0,s.useEffect)((()=>{i()}),[i]),function(e,t,n){void 0===n&&(n=Te);const a=(0,o._q)(t),i=(0,o.Be)(n);(0,s.useEffect)((()=>{const t=new MutationObserver(a);return e&&t.observe(e,i),()=>t.disconnect()}),[e,a,i])}(n,(e=>{e.forEach((e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),i())}))}),{attributes:!0,characterData:!1,childList:!1,subtree:!1})}var He=n(369);const Me={codeLine:"codeLine_shsP",codeLineNumber:"codeLineNumber_CBFI",codeLineContent:"codeLineContent_BLTN"};function Ie(e){let{line:t,classNames:n,showLineNumbers:s,getLineProps:a,getTokenProps:o}=e;1===t.length&&"\n"===t[0].content&&(t[0].content="");const l=a({line:t,className:(0,u.A)(n,s&&Me.codeLine)}),c=t.map(((e,t)=>(0,i.jsx)("span",{...o({token:e,key:t})},t)));return(0,i.jsxs)("span",{...l,children:[s?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("span",{className:Me.codeLineNumber}),(0,i.jsx)("span",{className:Me.codeLineContent,children:c})]}):c,(0,i.jsx)("br",{})]})}function Ue(e){return(0,i.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,i.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})})}function Se(e){return(0,i.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,i.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})})}const Re={copyButtonCopied:"copyButtonCopied_MqjE",copyButtonIcons:"copyButtonIcons_DAVD",copyButtonIcon:"copyButtonIcon_WHRT",copyButtonSuccessIcon:"copyButtonSuccessIcon_N87f"};function ze(e){let{code:t,className:n}=e;const[a,o]=(0,s.useState)(!1),l=(0,s.useRef)(void 0),c=(0,s.useCallback)((()=>{!function(e,t){let{target:n=document.body}=void 0===t?{}:t;if("string"!=typeof e)throw new TypeError(`Expected parameter \`text\` to be a \`string\`, got \`${typeof e}\`.`);const s=document.createElement("textarea"),a=document.activeElement;s.value=e,s.setAttribute("readonly",""),s.style.contain="strict",s.style.position="absolute",s.style.left="-9999px",s.style.fontSize="12pt";const o=document.getSelection(),i=o.rangeCount>0&&o.getRangeAt(0);n.append(s),s.select(),s.selectionStart=0,s.selectionEnd=e.length;let l=!1;try{l=document.execCommand("copy")}catch{}s.remove(),i&&(o.removeAllRanges(),o.addRange(i)),a&&a.focus()}(t),o(!0),l.current=window.setTimeout((()=>{o(!1)}),1e3)}),[t]);return(0,s.useEffect)((()=>()=>window.clearTimeout(l.current)),[]),(0,i.jsx)("button",{type:"button","aria-label":a?(0,h.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,h.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,h.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,u.A)("clean-btn",n,Re.copyButton,a&&Re.copyButtonCopied),onClick:c,children:(0,i.jsxs)("span",{className:Re.copyButtonIcons,"aria-hidden":"true",children:[(0,i.jsx)(Ue,{className:Re.copyButtonIcon}),(0,i.jsx)(Se,{className:Re.copyButtonSuccessIcon})]})})}function Ve(e){return(0,i.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,i.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})})}const De={wordWrapButtonIcon:"wordWrapButtonIcon_lc89",wordWrapButtonEnabled:"wordWrapButtonEnabled_WfUF"};function Oe(e){let{className:t,onClick:n,isEnabled:s}=e;const a=(0,h.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,i.jsx)("button",{type:"button",onClick:n,className:(0,u.A)("clean-btn",t,s&&De.wordWrapButtonEnabled),"aria-label":a,title:a,children:(0,i.jsx)(Ve,{className:De.wordWrapButtonIcon,"aria-hidden":"true"})})}function We(e){let{children:t,className:n="",metastring:a,title:o,showLineNumbers:l,language:c}=e;const{prism:{defaultLanguage:r,magicComments:d}}=(0,G.p)(),m=function(e){return e?.toLowerCase()}(c??function(e){const t=e.split(" ").find((e=>e.startsWith("language-")));return t?.replace(/language-/,"")}(n)??r),h=xe(),p=function(){const[e,t]=(0,s.useState)(!1),[n,a]=(0,s.useState)(!1),o=(0,s.useRef)(null),i=(0,s.useCallback)((()=>{const n=o.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t((e=>!e))}),[o,e]),l=(0,s.useCallback)((()=>{const{scrollWidth:e,clientWidth:t}=o.current,n=e>t||o.current.querySelector("code").hasAttribute("style");a(n)}),[o]);return Ee(o,l),(0,s.useEffect)((()=>{l()}),[e,l]),(0,s.useEffect)((()=>(window.addEventListener("resize",l,{passive:!0}),()=>{window.removeEventListener("resize",l)})),[l]),{codeBlockRef:o,isEnabled:e,isCodeScrollable:n,toggle:i}}(),f=function(e){return e?.match(je)?.groups.title??""}(a)||o,{lineClassNames:x,code:b}=ke(t,{metastring:a,language:m,magicComments:d}),g=l??function(e){return Boolean(e?.includes("showLineNumbers"))}(a);return(0,i.jsxs)(_e,{as:"div",className:(0,u.A)(n,m&&!n.includes(`language-${m}`)&&`language-${m}`),children:[f&&(0,i.jsx)("div",{className:Be.codeBlockTitle,children:f}),(0,i.jsxs)("div",{className:Be.codeBlockContent,children:[(0,i.jsx)(He.f4,{theme:h,code:b,language:m??"text",children:e=>{let{className:t,style:n,tokens:s,getLineProps:a,getTokenProps:o}=e;return(0,i.jsx)("pre",{tabIndex:0,ref:p.codeBlockRef,className:(0,u.A)(t,Be.codeBlock,"thin-scrollbar"),style:n,children:(0,i.jsx)("code",{className:(0,u.A)(Be.codeBlockLines,g&&Be.codeBlockLinesWithNumbering),children:s.map(((e,t)=>(0,i.jsx)(Ie,{line:e,getLineProps:a,getTokenProps:o,classNames:x[t],showLineNumbers:g},t)))})})}}),(0,i.jsxs)("div",{className:Be.buttonGroup,children:[(p.isEnabled||p.isCodeScrollable)&&(0,i.jsx)(Oe,{className:Be.codeButton,onClick:()=>p.toggle(),isEnabled:p.isEnabled}),(0,i.jsx)(ze,{className:Be.codeButton,code:b})]})]})]})}function Pe(e){let{children:t,...n}=e;const a=(0,pe.A)(),o=function(e){return s.Children.toArray(e).some((e=>(0,s.isValidElement)(e)))?e:Array.isArray(e)?e.join(""):e}(t),l="string"==typeof o?We:we;return(0,i.jsx)(l,{...n,children:o},String(a))}function Ge(e){return(0,i.jsx)("code",{...e})}var $e=n(2797);const Fe={details:"details_b_me",isBrowser:"isBrowser_FX0N",collapsibleContent:"collapsibleContent_tCQ3"};function qe(e){return!!e&&("SUMMARY"===e.tagName||qe(e.parentElement))}function Xe(e,t){return!!e&&(e===t||Xe(e.parentElement,t))}function Ye(e){let{summary:t,children:n,...a}=e;(0,$e.A)().collectAnchor(a.id);const o=(0,pe.A)(),l=(0,s.useRef)(null),{collapsed:c,setCollapsed:r}=(0,P.u)({initialState:!a.open}),[d,m]=(0,s.useState)(a.open),h=s.isValidElement(t)?t:(0,i.jsx)("summary",{children:t??"Details"});return(0,i.jsxs)("details",{...a,ref:l,open:d,"data-collapsed":c,className:(0,u.A)(Fe.details,o&&Fe.isBrowser,a.className),onMouseDown:e=>{qe(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();const t=e.target;qe(t)&&Xe(t,l.current)&&(e.preventDefault(),c?(r(!1),m(!0)):r(!0))},children:[h,(0,i.jsx)(P.N,{lazy:!1,collapsed:c,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{r(e),m(!e)},children:(0,i.jsx)("div",{className:Fe.collapsibleContent,children:n})})]})}const Ze={details:"details_Y1an"},Je="alert alert--info";function Qe(e){let{...t}=e;return(0,i.jsx)(Ye,{...t,className:(0,u.A)(Je,Ze.details,t.className)})}function Ke(e){const t=s.Children.toArray(e.children),n=t.find((e=>s.isValidElement(e)&&"summary"===e.type)),a=(0,i.jsx)(i.Fragment,{children:t.filter((e=>e!==n))});return(0,i.jsx)(Qe,{...e,summary:n,children:a})}function et(e){return(0,i.jsx)(ue.A,{...e})}const tt={containsTaskList:"containsTaskList_uDxK"};function nt(e){if(void 0!==e)return(0,u.A)(e,e?.includes("contains-task-list")&&tt.containsTaskList)}const st={img:"img__qBJ"};function at(e){const{mdxAdmonitionTitle:t,rest:n}=function(e){const t=s.Children.toArray(e),n=t.find((e=>s.isValidElement(e)&&"mdxAdmonitionTitle"===e.type)),a=t.filter((e=>e!==n)),o=n?.props.children;return{mdxAdmonitionTitle:o,rest:a.length>0?(0,i.jsx)(i.Fragment,{children:a}):null}}(e.children),a=e.title??t;return{...e,...a&&{title:a},children:n}}const ot={admonition:"admonition__zDI",admonitionHeading:"admonitionHeading_hlA6",admonitionIcon:"admonitionIcon_hl6_",admonitionContent:"admonitionContent_IvJ0"};function it(e){let{type:t,className:n,children:s}=e;return(0,i.jsx)("div",{className:(0,u.A)(v.G.common.admonition,v.G.common.admonitionType(t),ot.admonition,n),children:s})}function lt(e){let{icon:t,title:n}=e;return(0,i.jsxs)("div",{className:ot.admonitionHeading,children:[(0,i.jsx)("span",{className:ot.admonitionIcon,children:t}),n]})}function ct(e){let{children:t}=e;return t?(0,i.jsx)("div",{className:ot.admonitionContent,children:t}):null}function rt(e){const{type:t,icon:n,title:s,children:a,className:o}=e;return(0,i.jsxs)(it,{type:t,className:o,children:[(0,i.jsx)(lt,{title:s,icon:n}),(0,i.jsx)(ct,{children:a})]})}function dt(e){return(0,i.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const ut={icon:(0,i.jsx)(dt,{}),title:(0,i.jsx)(h.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function mt(e){return(0,i.jsx)(rt,{...ut,...e,className:(0,u.A)("alert alert--secondary",e.className),children:e.children})}function ht(e){return(0,i.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const pt={icon:(0,i.jsx)(ht,{}),title:(0,i.jsx)(h.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function ft(e){return(0,i.jsx)(rt,{...pt,...e,className:(0,u.A)("alert alert--success",e.className),children:e.children})}function xt(e){return(0,i.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const bt={icon:(0,i.jsx)(xt,{}),title:(0,i.jsx)(h.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function gt(e){return(0,i.jsx)(rt,{...bt,...e,className:(0,u.A)("alert alert--info",e.className),children:e.children})}function jt(e){return(0,i.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const vt={icon:(0,i.jsx)(jt,{}),title:(0,i.jsx)(h.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function Nt(e){return(0,i.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const At={icon:(0,i.jsx)(Nt,{}),title:(0,i.jsx)(h.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const Ct={icon:(0,i.jsx)(jt,{}),title:(0,i.jsx)(h.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const Lt={...{note:mt,tip:ft,info:gt,warning:function(e){return(0,i.jsx)(rt,{...vt,...e,className:(0,u.A)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,i.jsx)(rt,{...At,...e,className:(0,u.A)("alert alert--danger",e.className),children:e.children})}},...{secondary:e=>(0,i.jsx)(mt,{title:"secondary",...e}),important:e=>(0,i.jsx)(gt,{title:"important",...e}),success:e=>(0,i.jsx)(ft,{title:"success",...e}),caution:function(e){return(0,i.jsx)(rt,{...Ct,...e,className:(0,u.A)("alert alert--warning",e.className),children:e.children})}}};function kt(e){const t=at(e),n=(s=t.type,Lt[s]||(console.warn(`No admonition component found for admonition type "${s}". Using Info as fallback.`),Lt.info));var s;return(0,i.jsx)(n,{...t})}const yt={Head:he.A,details:Ke,Details:Ke,code:function(e){return function(e){return void 0!==e.children&&s.Children.toArray(e.children).every((e=>"string"==typeof e&&!e.includes("\n")))}(e)?(0,i.jsx)(Ge,{...e}):(0,i.jsx)(Pe,{...e})},a:function(e){return(0,i.jsx)(p.A,{...e})},pre:function(e){return(0,i.jsx)(i.Fragment,{children:e.children})},ul:function(e){return(0,i.jsx)("ul",{...e,className:nt(e.className)})},li:function(e){return(0,$e.A)().collectAnchor(e.id),(0,i.jsx)("li",{...e})},img:function(e){return(0,i.jsx)("img",{decoding:"async",loading:"lazy",...e,className:(t=e.className,(0,u.A)(t,st.img))});var t},h1:e=>(0,i.jsx)(et,{as:"h1",...e}),h2:e=>(0,i.jsx)(et,{as:"h2",...e}),h3:e=>(0,i.jsx)(et,{as:"h3",...e}),h4:e=>(0,i.jsx)(et,{as:"h4",...e}),h5:e=>(0,i.jsx)(et,{as:"h5",...e}),h6:e=>(0,i.jsx)(et,{as:"h6",...e}),admonition:kt,mermaid:()=>null};function _t(e){let{children:t}=e;return(0,i.jsx)(me.x,{components:yt,children:t})}function Bt(e){let{children:t}=e;const n=function(){const{metadata:e,frontMatter:t,contentTitle:n}=r();return t.hide_title||void 0!==n?null:e.title}();return(0,i.jsxs)("div",{className:(0,u.A)(v.G.docs.docMarkdown,"markdown"),children:[n&&(0,i.jsx)("header",{children:(0,i.jsx)(ue.A,{as:"h1",children:n})}),(0,i.jsx)(_t,{children:t})]})}var wt=n(7830),Tt=n(8098),Et=n(4184);function Ht(e){return(0,i.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,i.jsx)("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"})})}const Mt={breadcrumbHomeIcon:"breadcrumbHomeIcon_cCRz"};function It(){const e=(0,Et.A)("/");return(0,i.jsx)("li",{className:"breadcrumbs__item",children:(0,i.jsx)(p.A,{"aria-label":(0,h.T)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e,children:(0,i.jsx)(Ht,{className:Mt.breadcrumbHomeIcon})})})}const Ut={breadcrumbsContainer:"breadcrumbsContainer_azfw"};function St(e){let{children:t,href:n,isLast:s}=e;const a="breadcrumbs__link";return s?(0,i.jsx)("span",{className:a,itemProp:"name",children:t}):n?(0,i.jsx)(p.A,{className:a,href:n,itemProp:"item",children:(0,i.jsx)("span",{itemProp:"name",children:t})}):(0,i.jsx)("span",{className:a,children:t})}function Rt(e){let{children:t,active:n,index:s,addMicrodata:a}=e;return(0,i.jsxs)("li",{...a&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},className:(0,u.A)("breadcrumbs__item",{"breadcrumbs__item--active":n}),children:[t,(0,i.jsx)("meta",{itemProp:"position",content:String(s+1)})]})}function zt(){const e=(0,wt.OF)(),t=(0,Tt.Dt)();return e?(0,i.jsx)("nav",{className:(0,u.A)(v.G.docs.docBreadcrumbs,Ut.breadcrumbsContainer),"aria-label":(0,h.T)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"}),children:(0,i.jsxs)("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList",children:[t&&(0,i.jsx)(It,{}),e.map(((t,n)=>{const s=n===e.length-1,a="category"===t.type&&t.linkUnlisted?void 0:t.href;return(0,i.jsx)(Rt,{active:s,index:n,addMicrodata:!!a,children:(0,i.jsx)(St,{href:a,isLast:s,children:t.label})},n)}))]})}):null}function Vt(){return(0,i.jsx)(h.A,{id:"theme.unlistedContent.title",description:"The unlisted content banner title",children:"Unlisted page"})}function Dt(){return(0,i.jsx)(h.A,{id:"theme.unlistedContent.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function Ot(){return(0,i.jsx)(he.A,{children:(0,i.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}function Wt(e){let{className:t}=e;return(0,i.jsx)(kt,{type:"caution",title:(0,i.jsx)(Vt,{}),className:(0,u.A)(t,v.G.common.unlistedBanner),children:(0,i.jsx)(Dt,{})})}function Pt(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(Ot,{}),(0,i.jsx)(Wt,{...e})]})}const Gt={docItemContainer:"docItemContainer_r_Gx",docItemCol:"docItemCol_qFW7"};function $t(e){let{children:t}=e;const n=function(){const{frontMatter:e,toc:t}=r(),n=(0,m.l)(),s=e.hide_table_of_contents,a=!s&&t.length>0;return{hidden:s,mobile:a?(0,i.jsx)(oe,{}):void 0,desktop:!a||"desktop"!==n&&"ssr"!==n?void 0:(0,i.jsx)(de,{})}}(),{metadata:{unlisted:s}}=r();return(0,i.jsxs)("div",{className:"row",children:[(0,i.jsxs)("div",{className:(0,u.A)("col",!n.hidden&&Gt.docItemCol),children:[s&&(0,i.jsx)(Pt,{}),(0,i.jsx)(_,{}),(0,i.jsxs)("div",{className:Gt.docItemContainer,children:[(0,i.jsxs)("article",{children:[(0,i.jsx)(zt,{}),(0,i.jsx)(B,{}),n.mobile,(0,i.jsx)(Bt,{children:t}),(0,i.jsx)(W,{})]}),(0,i.jsx)(b,{})]})]}),n.desktop&&(0,i.jsx)("div",{className:"col col--3",children:n.desktop})]})}function Ft(e){const t=`docs-doc-id-${e.content.metadata.id}`,n=e.content;return(0,i.jsx)(c,{content:e.content,children:(0,i.jsxs)(a.e3,{className:t,children:[(0,i.jsx)(d,{}),(0,i.jsx)($t,{children:(0,i.jsx)(n,{})})]})})}},4809:(e,t)=>{function n(e){let t,n=[];for(let s of e.split(",").map((e=>e.trim())))if(/^-?\d+$/.test(s))n.push(parseInt(s,10));else if(t=s.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,s,a,o]=t;if(s&&o){s=parseInt(s),o=parseInt(o);const e=s<o?1:-1;"-"!==a&&".."!==a&&"\u2025"!==a||(o+=e);for(let t=s;t!==o;t+=e)n.push(t)}}return n}t.default=n,e.exports=n},2333:(e,t,n)=>{"use strict";n.d(t,{R:()=>i,x:()=>l});var s=n(9474);const a={},o=s.createContext(a);function i(e){const t=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),s.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/1965.a43f3b33.js b/build/assets/js/1965.a43f3b33.js deleted file mode 100644 index be311183b..000000000 --- a/build/assets/js/1965.a43f3b33.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[1965],{1203:(e,t,n)=>{n.d(t,{A:()=>a});n(9474);var o=n(8923),i=n(1598),s=n(9382),r=n(3274);function a(e){let{className:t}=e;return(0,r.jsx)("main",{className:(0,o.A)("container margin-vert--xl",t),children:(0,r.jsx)("div",{className:"row",children:(0,r.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,r.jsx)(s.A,{as:"h1",className:"hero__title",children:(0,r.jsx)(i.A,{id:"theme.NotFound.title",description:"The title of the 404 page",children:"Page Not Found"})}),(0,r.jsx)("p",{children:(0,r.jsx)(i.A,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page",children:"We could not find what you were looking for."})}),(0,r.jsx)("p",{children:(0,r.jsx)(i.A,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page",children:"Please contact the owner of the site that linked you to the original URL and let them know their link is broken."})})]})})})}},1965:(e,t,n)=>{n.r(t),n.d(t,{default:()=>h});n(9474);var o=n(1598),i=n(961),s=n(7367),r=n(1203),a=n(3274);function h(){const e=(0,o.T)({id:"theme.NotFound.title",message:"Page Not Found"});return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(i.be,{title:e}),(0,a.jsx)(s.A,{children:(0,a.jsx)(r.A,{})})]})}}}]); \ No newline at end of file diff --git a/build/assets/js/1a1587e1.a03807dd.js b/build/assets/js/1a1587e1.a03807dd.js deleted file mode 100644 index d877c5283..000000000 --- a/build/assets/js/1a1587e1.a03807dd.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[5678],{6837:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>r,metadata:()=>s,toc:()=>c});var i=t(3274),o=t(2333);const r={title:"Roadmap",lang:"en-US",keywords:["morph","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},a=void 0,s={id:"about-morph/roadmap",title:"Roadmap",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/about-morph/6-roadmap.md",sourceDirName:"about-morph",slug:"/about-morph/roadmap",permalink:"/docs/about-morph/roadmap",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/about-morph/6-roadmap.md",tags:[],version:"current",sidebarPosition:6,frontMatter:{title:"Roadmap",lang:"en-US",keywords:["morph","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"Key Concepts",permalink:"/docs/about-morph/key-concepts"},next:{title:"FAQs",permalink:"/docs/about-morph/faqs"}},l={},c=[{value:"Phase 1: Testnet (2024 H1)",id:"phase-1-testnet-2024-h1",level:2},{value:"Testnet Holesky",id:"testnet-holesky",level:3},{value:"Phase 2: Mainnet Launch (2024 H2)",id:"phase-2-mainnet-launch-2024-h2",level:2},{value:"Mainnet Beta 2024 Q3",id:"mainnet-beta-2024-q3",level:3},{value:"Mainnet Update Q4",id:"mainnet-update-q4",level:3}];function d(e){const n={admonition:"admonition",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",ul:"ul",...(0,o.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.admonition,{type:"tip",children:(0,i.jsx)(n.p,{children:"The roadmap is subject to changes based on technological developments, community feedback, and external factors."})}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"1",src:t(5295).A+"",width:"960",height:"540"})}),"\n",(0,i.jsx)(n.h2,{id:"phase-1-testnet-2024-h1",children:"Phase 1: Testnet (2024 H1)"}),"\n",(0,i.jsx)(n.p,{children:"Testnet Sepolia (2024 Q1)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Optimistic zkEVM"}),"\n",(0,i.jsx)(n.li,{children:"Decentralized Sequencers"}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"Testnet Holesky (2024 Q2)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"EIP-4844 Integration"}),"\n",(0,i.jsx)(n.li,{children:"zkEVM Upgrade"}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"testnet-holesky",children:"Testnet Holesky"}),"\n",(0,i.jsx)(n.h2,{id:"phase-2-mainnet-launch-2024-h2",children:"Phase 2: Mainnet Launch (2024 H2)"}),"\n",(0,i.jsx)(n.h3,{id:"mainnet-beta-2024-q3",children:"Mainnet Beta 2024 Q3"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Morph Staking"}),"\n",(0,i.jsx)(n.li,{children:"Morph Zoo Season 1"}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"mainnet-update-q4",children:"Mainnet Update Q4"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Consumer Layer Launch"}),"\n",(0,i.jsx)(n.li,{children:"zkVM Upgrade"}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},5295:(e,n,t)=>{t.d(n,{A:()=>i});const i=t.p+"assets/images/roadmap-303601f698e896e5eea19ffb5b055bb0.png"},2333:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>s});var i=t(9474);const o={},r=i.createContext(o);function a(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/1a1587e1.d312ff53.js b/build/assets/js/1a1587e1.d312ff53.js new file mode 100644 index 000000000..34f758978 --- /dev/null +++ b/build/assets/js/1a1587e1.d312ff53.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[5678],{5879:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>s,default:()=>p,frontMatter:()=>r,metadata:()=>l,toc:()=>a});var t=i(6070),o=i(1582);const r={title:"Roadmap",lang:"en-US",keywords:["morph","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},s=void 0,l={id:"about-morph/roadmap",title:"Roadmap",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/about-morph/6-roadmap.md",sourceDirName:"about-morph",slug:"/about-morph/roadmap",permalink:"/docs/about-morph/roadmap",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/about-morph/6-roadmap.md",tags:[],version:"current",sidebarPosition:6,frontMatter:{title:"Roadmap",lang:"en-US",keywords:["morph","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"Key Concepts",permalink:"/docs/about-morph/key-concepts"},next:{title:"FAQs",permalink:"/docs/about-morph/faqs"}},c={},a=[{value:"2024 Q1",id:"2024-q1",level:2},{value:"2024 Q2",id:"2024-q2",level:2},{value:"2024 Q4",id:"2024-q4",level:2},{value:"2025 Q1",id:"2025-q1",level:2}];function d(e){const n={admonition:"admonition",h2:"h2",img:"img",li:"li",p:"p",ul:"ul",...(0,o.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.admonition,{type:"tip",children:(0,t.jsx)(n.p,{children:"The roadmap is subject to changes based on technological developments, community feedback, and external factors."})}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"1",src:i(7275).A+"",width:"2504",height:"1398"})}),"\n",(0,t.jsx)(n.h2,{id:"2024-q1",children:"2024 Q1"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Optimistic zkEVM"}),"\n",(0,t.jsx)(n.li,{children:"Decentralized Sequencers"}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"2024-q2",children:"2024 Q2"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"EIP-4844 Integration"}),"\n",(0,t.jsx)(n.li,{children:"zkEVM Upgrade"}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"2024-q4",children:"2024 Q4"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"1st Rollup with SP1 zkVM"}),"\n",(0,t.jsx)(n.li,{children:"1st Rollup with Decentralized Sequencers"}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"2025-q1",children:"2025 Q1"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Morph Pay"}),"\n",(0,t.jsx)(n.li,{children:"Gasless Transaction"}),"\n"]})]})}function p(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},7275:(e,n,i)=>{i.d(n,{A:()=>t});const t=i.p+"assets/images/roadmap-85df143f684e2e7f404102eb39eb2adf.png"},1582:(e,n,i)=>{i.d(n,{R:()=>s,x:()=>l});var t=i(758);const o={},r=t.createContext(o);function s(e){const n=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),t.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/1a4e3797.20b16744.js b/build/assets/js/1a4e3797.20b16744.js deleted file mode 100644 index bfc754e2f..000000000 --- a/build/assets/js/1a4e3797.20b16744.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see 1a4e3797.20b16744.js.LICENSE.txt */ -(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[2138],{8181:e=>{function t(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function r(e){return"function"==typeof e}function n(e){return"object"==typeof e&&null!==e}function i(e){return void 0===e}e.exports=t,t.prototype._events=void 0,t.prototype._maxListeners=void 0,t.defaultMaxListeners=10,t.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},t.prototype.emit=function(e){var t,s,a,c,u,o;if(this._events||(this._events={}),"error"===e&&(!this._events.error||n(this._events.error)&&!this._events.error.length)){if((t=arguments[1])instanceof Error)throw t;var h=new Error('Uncaught, unspecified "error" event. ('+t+")");throw h.context=t,h}if(i(s=this._events[e]))return!1;if(r(s))switch(arguments.length){case 1:s.call(this);break;case 2:s.call(this,arguments[1]);break;case 3:s.call(this,arguments[1],arguments[2]);break;default:c=Array.prototype.slice.call(arguments,1),s.apply(this,c)}else if(n(s))for(c=Array.prototype.slice.call(arguments,1),a=(o=s.slice()).length,u=0;u<a;u++)o[u].apply(this,c);return!0},t.prototype.addListener=function(e,s){var a;if(!r(s))throw TypeError("listener must be a function");return this._events||(this._events={}),this._events.newListener&&this.emit("newListener",e,r(s.listener)?s.listener:s),this._events[e]?n(this._events[e])?this._events[e].push(s):this._events[e]=[this._events[e],s]:this._events[e]=s,n(this._events[e])&&!this._events[e].warned&&(a=i(this._maxListeners)?t.defaultMaxListeners:this._maxListeners)&&a>0&&this._events[e].length>a&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace()),this},t.prototype.on=t.prototype.addListener,t.prototype.once=function(e,t){if(!r(t))throw TypeError("listener must be a function");var n=!1;function i(){this.removeListener(e,i),n||(n=!0,t.apply(this,arguments))}return i.listener=t,this.on(e,i),this},t.prototype.removeListener=function(e,t){var i,s,a,c;if(!r(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(a=(i=this._events[e]).length,s=-1,i===t||r(i.listener)&&i.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(n(i)){for(c=a;c-- >0;)if(i[c]===t||i[c].listener&&i[c].listener===t){s=c;break}if(s<0)return this;1===i.length?(i.length=0,delete this._events[e]):i.splice(s,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},t.prototype.removeAllListeners=function(e){var t,n;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(r(n=this._events[e]))this.removeListener(e,n);else if(n)for(;n.length;)this.removeListener(e,n[n.length-1]);return delete this._events[e],this},t.prototype.listeners=function(e){return this._events&&this._events[e]?r(this._events[e])?[this._events[e]]:this._events[e].slice():[]},t.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(r(t))return 1;if(t)return t.length}return 0},t.listenerCount=function(e,t){return e.listenerCount(t)}},9788:(e,t,r)=>{"use strict";var n=r(9802),i=r(2546),s=r(852);function a(e,t,r,i){return new n(e,t,r,i)}a.version=r(565),a.AlgoliaSearchHelper=n,a.SearchParameters=i,a.SearchResults=s,e.exports=a},8843:(e,t,r)=>{"use strict";var n=r(8181);function i(e,t){this.main=e,this.fn=t,this.lastResults=null}r(6051)(i,n),i.prototype.detach=function(){this.removeAllListeners(),this.main.detachDerivedHelper(this)},i.prototype.getModifiedState=function(e){return this.fn(e)},e.exports=i},8969:(e,t,r)=>{"use strict";var n=r(9959),i=r(7677),s=r(2010),a={addRefinement:function(e,t,r){if(a.isRefined(e,t,r))return e;var i=""+r,s=e[t]?e[t].concat(i):[i],c={};return c[t]=s,n({},c,e)},removeRefinement:function(e,t,r){if(void 0===r)return a.clearRefinement(e,(function(e,r){return t===r}));var n=""+r;return a.clearRefinement(e,(function(e,r){return t===r&&n===e}))},toggleRefinement:function(e,t,r){if(void 0===r)throw new Error("toggleRefinement should be used with a value");return a.isRefined(e,t,r)?a.removeRefinement(e,t,r):a.addRefinement(e,t,r)},clearRefinement:function(e,t,r){if(void 0===t)return i(e)?{}:e;if("string"==typeof t)return s(e,[t]);if("function"==typeof t){var n=!1,a=Object.keys(e).reduce((function(i,s){var a=e[s]||[],c=a.filter((function(e){return!t(e,s,r)}));return c.length!==a.length&&(n=!0),i[s]=c,i}),{});return n?a:e}},isRefined:function(e,t,r){var n=Boolean(e[t])&&e[t].length>0;if(void 0===r||!n)return n;var i=""+r;return-1!==e[t].indexOf(i)}};e.exports=a},2546:(e,t,r)=>{"use strict";var n=r(9959),i=r(5756),s=r(4514),a=r(351),c=r(7677),u=r(2010),o=r(7024),h=r(4169),f=r(8969);function l(e,t){return Array.isArray(e)&&Array.isArray(t)?e.length===t.length&&e.every((function(e,r){return l(t[r],e)})):e===t}function m(e){var t=e?m._parseNumbers(e):{};void 0===t.userToken||h(t.userToken)||console.warn("[algoliasearch-helper] The `userToken` parameter is invalid. This can lead to wrong analytics.\n - Format: [a-zA-Z0-9_-]{1,64}"),this.facets=t.facets||[],this.disjunctiveFacets=t.disjunctiveFacets||[],this.hierarchicalFacets=t.hierarchicalFacets||[],this.facetsRefinements=t.facetsRefinements||{},this.facetsExcludes=t.facetsExcludes||{},this.disjunctiveFacetsRefinements=t.disjunctiveFacetsRefinements||{},this.numericRefinements=t.numericRefinements||{},this.tagRefinements=t.tagRefinements||[],this.hierarchicalFacetsRefinements=t.hierarchicalFacetsRefinements||{};var r=this;Object.keys(t).forEach((function(e){var n=-1!==m.PARAMETERS.indexOf(e),i=void 0!==t[e];!n&&i&&(r[e]=t[e])}))}m.PARAMETERS=Object.keys(new m),m._parseNumbers=function(e){if(e instanceof m)return e;var t={};if(["aroundPrecision","aroundRadius","getRankingInfo","minWordSizefor2Typos","minWordSizefor1Typo","page","maxValuesPerFacet","distinct","minimumAroundRadius","hitsPerPage","minProximity"].forEach((function(r){var n=e[r];if("string"==typeof n){var i=parseFloat(n);t[r]=isNaN(i)?n:i}})),Array.isArray(e.insideBoundingBox)&&(t.insideBoundingBox=e.insideBoundingBox.map((function(e){return Array.isArray(e)?e.map((function(e){return parseFloat(e)})):e}))),e.numericRefinements){var r={};Object.keys(e.numericRefinements).forEach((function(t){var n=e.numericRefinements[t]||{};r[t]={},Object.keys(n).forEach((function(e){var i=n[e].map((function(e){return Array.isArray(e)?e.map((function(e){return"string"==typeof e?parseFloat(e):e})):"string"==typeof e?parseFloat(e):e}));r[t][e]=i}))})),t.numericRefinements=r}return a(e,t)},m.make=function(e){var t=new m(e);return(e.hierarchicalFacets||[]).forEach((function(e){if(e.rootPath){var r=t.getHierarchicalRefinement(e.name);r.length>0&&0!==r[0].indexOf(e.rootPath)&&(t=t.clearRefinements(e.name)),0===(r=t.getHierarchicalRefinement(e.name)).length&&(t=t.toggleHierarchicalFacetRefinement(e.name,e.rootPath))}})),t},m.validate=function(e,t){var r=t||{};return e.tagFilters&&r.tagRefinements&&r.tagRefinements.length>0?new Error("[Tags] Cannot switch from the managed tag API to the advanced API. It is probably an error, if it is really what you want, you should first clear the tags with clearTags method."):e.tagRefinements.length>0&&r.tagFilters?new Error("[Tags] Cannot switch from the advanced tag API to the managed API. It is probably an error, if it is not, you should first clear the tags with clearTags method."):e.numericFilters&&r.numericRefinements&&c(r.numericRefinements)?new Error("[Numeric filters] Can't switch from the advanced to the managed API. It is probably an error, if this is really what you want, you have to first clear the numeric filters."):c(e.numericRefinements)&&r.numericFilters?new Error("[Numeric filters] Can't switch from the managed API to the advanced. It is probably an error, if this is really what you want, you have to first clear the numeric filters."):null},m.prototype={constructor:m,clearRefinements:function(e){var t={numericRefinements:this._clearNumericRefinements(e),facetsRefinements:f.clearRefinement(this.facetsRefinements,e,"conjunctiveFacet"),facetsExcludes:f.clearRefinement(this.facetsExcludes,e,"exclude"),disjunctiveFacetsRefinements:f.clearRefinement(this.disjunctiveFacetsRefinements,e,"disjunctiveFacet"),hierarchicalFacetsRefinements:f.clearRefinement(this.hierarchicalFacetsRefinements,e,"hierarchicalFacet")};return t.numericRefinements===this.numericRefinements&&t.facetsRefinements===this.facetsRefinements&&t.facetsExcludes===this.facetsExcludes&&t.disjunctiveFacetsRefinements===this.disjunctiveFacetsRefinements&&t.hierarchicalFacetsRefinements===this.hierarchicalFacetsRefinements?this:this.setQueryParameters(t)},clearTags:function(){return void 0===this.tagFilters&&0===this.tagRefinements.length?this:this.setQueryParameters({tagFilters:void 0,tagRefinements:[]})},setIndex:function(e){return e===this.index?this:this.setQueryParameters({index:e})},setQuery:function(e){return e===this.query?this:this.setQueryParameters({query:e})},setPage:function(e){return e===this.page?this:this.setQueryParameters({page:e})},setFacets:function(e){return this.setQueryParameters({facets:e})},setDisjunctiveFacets:function(e){return this.setQueryParameters({disjunctiveFacets:e})},setHitsPerPage:function(e){return this.hitsPerPage===e?this:this.setQueryParameters({hitsPerPage:e})},setTypoTolerance:function(e){return this.typoTolerance===e?this:this.setQueryParameters({typoTolerance:e})},addNumericRefinement:function(e,t,r){var n=o(r);if(this.isNumericRefined(e,t,n))return this;var i=a({},this.numericRefinements);return i[e]=a({},i[e]),i[e][t]?(i[e][t]=i[e][t].slice(),i[e][t].push(n)):i[e][t]=[n],this.setQueryParameters({numericRefinements:i})},getConjunctiveRefinements:function(e){return this.isConjunctiveFacet(e)&&this.facetsRefinements[e]||[]},getDisjunctiveRefinements:function(e){return this.isDisjunctiveFacet(e)&&this.disjunctiveFacetsRefinements[e]||[]},getHierarchicalRefinement:function(e){return this.hierarchicalFacetsRefinements[e]||[]},getExcludeRefinements:function(e){return this.isConjunctiveFacet(e)&&this.facetsExcludes[e]||[]},removeNumericRefinement:function(e,t,r){var n=r;return void 0!==n?this.isNumericRefined(e,t,n)?this.setQueryParameters({numericRefinements:this._clearNumericRefinements((function(r,i){return i===e&&r.op===t&&l(r.val,o(n))}))}):this:void 0!==t?this.isNumericRefined(e,t)?this.setQueryParameters({numericRefinements:this._clearNumericRefinements((function(r,n){return n===e&&r.op===t}))}):this:this.isNumericRefined(e)?this.setQueryParameters({numericRefinements:this._clearNumericRefinements((function(t,r){return r===e}))}):this},getNumericRefinements:function(e){return this.numericRefinements[e]||{}},getNumericRefinement:function(e,t){return this.numericRefinements[e]&&this.numericRefinements[e][t]},_clearNumericRefinements:function(e){if(void 0===e)return c(this.numericRefinements)?{}:this.numericRefinements;if("string"==typeof e)return u(this.numericRefinements,[e]);if("function"==typeof e){var t=!1,r=this.numericRefinements,n=Object.keys(r).reduce((function(n,i){var s=r[i],a={};return s=s||{},Object.keys(s).forEach((function(r){var n=s[r]||[],c=[];n.forEach((function(t){e({val:t,op:r},i,"numeric")||c.push(t)})),c.length!==n.length&&(t=!0),a[r]=c})),n[i]=a,n}),{});return t?n:this.numericRefinements}},addFacet:function(e){return this.isConjunctiveFacet(e)?this:this.setQueryParameters({facets:this.facets.concat([e])})},addDisjunctiveFacet:function(e){return this.isDisjunctiveFacet(e)?this:this.setQueryParameters({disjunctiveFacets:this.disjunctiveFacets.concat([e])})},addHierarchicalFacet:function(e){if(this.isHierarchicalFacet(e.name))throw new Error("Cannot declare two hierarchical facets with the same name: `"+e.name+"`");return this.setQueryParameters({hierarchicalFacets:this.hierarchicalFacets.concat([e])})},addFacetRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return f.isRefined(this.facetsRefinements,e,t)?this:this.setQueryParameters({facetsRefinements:f.addRefinement(this.facetsRefinements,e,t)})},addExcludeRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return f.isRefined(this.facetsExcludes,e,t)?this:this.setQueryParameters({facetsExcludes:f.addRefinement(this.facetsExcludes,e,t)})},addDisjunctiveFacetRefinement:function(e,t){if(!this.isDisjunctiveFacet(e))throw new Error(e+" is not defined in the disjunctiveFacets attribute of the helper configuration");return f.isRefined(this.disjunctiveFacetsRefinements,e,t)?this:this.setQueryParameters({disjunctiveFacetsRefinements:f.addRefinement(this.disjunctiveFacetsRefinements,e,t)})},addTagRefinement:function(e){if(this.isTagRefined(e))return this;var t={tagRefinements:this.tagRefinements.concat(e)};return this.setQueryParameters(t)},removeFacet:function(e){return this.isConjunctiveFacet(e)?this.clearRefinements(e).setQueryParameters({facets:this.facets.filter((function(t){return t!==e}))}):this},removeDisjunctiveFacet:function(e){return this.isDisjunctiveFacet(e)?this.clearRefinements(e).setQueryParameters({disjunctiveFacets:this.disjunctiveFacets.filter((function(t){return t!==e}))}):this},removeHierarchicalFacet:function(e){return this.isHierarchicalFacet(e)?this.clearRefinements(e).setQueryParameters({hierarchicalFacets:this.hierarchicalFacets.filter((function(t){return t.name!==e}))}):this},removeFacetRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return f.isRefined(this.facetsRefinements,e,t)?this.setQueryParameters({facetsRefinements:f.removeRefinement(this.facetsRefinements,e,t)}):this},removeExcludeRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return f.isRefined(this.facetsExcludes,e,t)?this.setQueryParameters({facetsExcludes:f.removeRefinement(this.facetsExcludes,e,t)}):this},removeDisjunctiveFacetRefinement:function(e,t){if(!this.isDisjunctiveFacet(e))throw new Error(e+" is not defined in the disjunctiveFacets attribute of the helper configuration");return f.isRefined(this.disjunctiveFacetsRefinements,e,t)?this.setQueryParameters({disjunctiveFacetsRefinements:f.removeRefinement(this.disjunctiveFacetsRefinements,e,t)}):this},removeTagRefinement:function(e){if(!this.isTagRefined(e))return this;var t={tagRefinements:this.tagRefinements.filter((function(t){return t!==e}))};return this.setQueryParameters(t)},toggleRefinement:function(e,t){return this.toggleFacetRefinement(e,t)},toggleFacetRefinement:function(e,t){if(this.isHierarchicalFacet(e))return this.toggleHierarchicalFacetRefinement(e,t);if(this.isConjunctiveFacet(e))return this.toggleConjunctiveFacetRefinement(e,t);if(this.isDisjunctiveFacet(e))return this.toggleDisjunctiveFacetRefinement(e,t);throw new Error("Cannot refine the undeclared facet "+e+"; it should be added to the helper options facets, disjunctiveFacets or hierarchicalFacets")},toggleConjunctiveFacetRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return this.setQueryParameters({facetsRefinements:f.toggleRefinement(this.facetsRefinements,e,t)})},toggleExcludeFacetRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return this.setQueryParameters({facetsExcludes:f.toggleRefinement(this.facetsExcludes,e,t)})},toggleDisjunctiveFacetRefinement:function(e,t){if(!this.isDisjunctiveFacet(e))throw new Error(e+" is not defined in the disjunctiveFacets attribute of the helper configuration");return this.setQueryParameters({disjunctiveFacetsRefinements:f.toggleRefinement(this.disjunctiveFacetsRefinements,e,t)})},toggleHierarchicalFacetRefinement:function(e,t){if(!this.isHierarchicalFacet(e))throw new Error(e+" is not defined in the hierarchicalFacets attribute of the helper configuration");var r=this._getHierarchicalFacetSeparator(this.getHierarchicalFacetByName(e)),i={};return void 0!==this.hierarchicalFacetsRefinements[e]&&this.hierarchicalFacetsRefinements[e].length>0&&(this.hierarchicalFacetsRefinements[e][0]===t||0===this.hierarchicalFacetsRefinements[e][0].indexOf(t+r))?-1===t.indexOf(r)?i[e]=[]:i[e]=[t.slice(0,t.lastIndexOf(r))]:i[e]=[t],this.setQueryParameters({hierarchicalFacetsRefinements:n({},i,this.hierarchicalFacetsRefinements)})},addHierarchicalFacetRefinement:function(e,t){if(this.isHierarchicalFacetRefined(e))throw new Error(e+" is already refined.");if(!this.isHierarchicalFacet(e))throw new Error(e+" is not defined in the hierarchicalFacets attribute of the helper configuration.");var r={};return r[e]=[t],this.setQueryParameters({hierarchicalFacetsRefinements:n({},r,this.hierarchicalFacetsRefinements)})},removeHierarchicalFacetRefinement:function(e){if(!this.isHierarchicalFacetRefined(e))return this;var t={};return t[e]=[],this.setQueryParameters({hierarchicalFacetsRefinements:n({},t,this.hierarchicalFacetsRefinements)})},toggleTagRefinement:function(e){return this.isTagRefined(e)?this.removeTagRefinement(e):this.addTagRefinement(e)},isDisjunctiveFacet:function(e){return this.disjunctiveFacets.indexOf(e)>-1},isHierarchicalFacet:function(e){return void 0!==this.getHierarchicalFacetByName(e)},isConjunctiveFacet:function(e){return this.facets.indexOf(e)>-1},isFacetRefined:function(e,t){return!!this.isConjunctiveFacet(e)&&f.isRefined(this.facetsRefinements,e,t)},isExcludeRefined:function(e,t){return!!this.isConjunctiveFacet(e)&&f.isRefined(this.facetsExcludes,e,t)},isDisjunctiveFacetRefined:function(e,t){return!!this.isDisjunctiveFacet(e)&&f.isRefined(this.disjunctiveFacetsRefinements,e,t)},isHierarchicalFacetRefined:function(e,t){if(!this.isHierarchicalFacet(e))return!1;var r=this.getHierarchicalRefinement(e);return t?-1!==r.indexOf(t):r.length>0},isNumericRefined:function(e,t,r){if(void 0===r&&void 0===t)return Boolean(this.numericRefinements[e]);var n=this.numericRefinements[e]&&void 0!==this.numericRefinements[e][t];if(void 0===r||!n)return n;var s,a,c=o(r),u=void 0!==(s=this.numericRefinements[e][t],a=c,i(s,(function(e){return l(e,a)})));return n&&u},isTagRefined:function(e){return-1!==this.tagRefinements.indexOf(e)},getRefinedDisjunctiveFacets:function(){var e=this,t=s(Object.keys(this.numericRefinements).filter((function(t){return Object.keys(e.numericRefinements[t]).length>0})),this.disjunctiveFacets);return Object.keys(this.disjunctiveFacetsRefinements).filter((function(t){return e.disjunctiveFacetsRefinements[t].length>0})).concat(t).concat(this.getRefinedHierarchicalFacets()).sort()},getRefinedHierarchicalFacets:function(){var e=this;return s(this.hierarchicalFacets.map((function(e){return e.name})),Object.keys(this.hierarchicalFacetsRefinements).filter((function(t){return e.hierarchicalFacetsRefinements[t].length>0}))).sort()},getUnrefinedDisjunctiveFacets:function(){var e=this.getRefinedDisjunctiveFacets();return this.disjunctiveFacets.filter((function(t){return-1===e.indexOf(t)}))},managedParameters:["index","facets","disjunctiveFacets","facetsRefinements","hierarchicalFacets","facetsExcludes","disjunctiveFacetsRefinements","numericRefinements","tagRefinements","hierarchicalFacetsRefinements"],getQueryParams:function(){var e=this.managedParameters,t={},r=this;return Object.keys(this).forEach((function(n){var i=r[n];-1===e.indexOf(n)&&void 0!==i&&(t[n]=i)})),t},setQueryParameter:function(e,t){if(this[e]===t)return this;var r={};return r[e]=t,this.setQueryParameters(r)},setQueryParameters:function(e){if(!e)return this;var t=m.validate(this,e);if(t)throw t;var r=this,n=m._parseNumbers(e),i=Object.keys(this).reduce((function(e,t){return e[t]=r[t],e}),{}),s=Object.keys(n).reduce((function(e,t){var r=void 0!==e[t],i=void 0!==n[t];return r&&!i?u(e,[t]):(i&&(e[t]=n[t]),e)}),i);return new this.constructor(s)},resetPage:function(){return void 0===this.page?this:this.setPage(0)},_getHierarchicalFacetSortBy:function(e){return e.sortBy||["isRefined:desc","name:asc"]},_getHierarchicalFacetSeparator:function(e){return e.separator||" > "},_getHierarchicalRootPath:function(e){return e.rootPath||null},_getHierarchicalShowParentLevel:function(e){return"boolean"!=typeof e.showParentLevel||e.showParentLevel},getHierarchicalFacetByName:function(e){return i(this.hierarchicalFacets,(function(t){return t.name===e}))},getHierarchicalFacetBreadcrumb:function(e){if(!this.isHierarchicalFacet(e))return[];var t=this.getHierarchicalRefinement(e)[0];if(!t)return[];var r=this._getHierarchicalFacetSeparator(this.getHierarchicalFacetByName(e));return t.split(r).map((function(e){return e.trim()}))},toString:function(){return JSON.stringify(this,null,2)}},e.exports=m},5936:(e,t,r)=>{"use strict";e.exports=function(e){return function(t,r){var n=e.hierarchicalFacets[r],o=e.hierarchicalFacetsRefinements[n.name]&&e.hierarchicalFacetsRefinements[n.name][0]||"",h=e._getHierarchicalFacetSeparator(n),f=e._getHierarchicalRootPath(n),l=e._getHierarchicalShowParentLevel(n),m=s(e._getHierarchicalFacetSortBy(n)),d=t.every((function(e){return e.exhaustive})),p=function(e,t,r,n,s){return function(o,h,f){var l=o;if(f>0){var m=0;for(l=o;m<f;){var d=l&&Array.isArray(l.data)?l.data:[];l=i(d,(function(e){return e.isRefined})),m++}}if(l){var p=Object.keys(h.data).map((function(e){return[e,h.data[e]]})).filter((function(e){return function(e,t,r,n,i,s){if(i&&(0!==e.indexOf(i)||i===e))return!1;return!i&&-1===e.indexOf(n)||i&&e.split(n).length-i.split(n).length==1||-1===e.indexOf(n)&&-1===r.indexOf(n)||0===r.indexOf(e)||0===e.indexOf(t+n)&&(s||0===e.indexOf(r))}(e[0],l.path||r,s,t,r,n)}));l.data=a(p.map((function(e){var r=e[0];return function(e,t,r,n,i){var s=t.split(r);return{name:s[s.length-1].trim(),path:t,escapedValue:c(t),count:e,isRefined:n===t||0===n.indexOf(t+r),exhaustive:i,data:null}}(e[1],r,t,u(s),h.exhaustive)})),e[0],e[1])}return o}}(m,h,f,l,o),v=t;return f&&(v=t.slice(f.split(h).length)),v.reduce(p,{name:e.hierarchicalFacets[r].name,count:null,isRefined:!0,path:null,escapedValue:null,exhaustive:d,data:null})}};var n=r(9892),i=r(5756),s=r(796),a=r(4290),c=n.escapeFacetValue,u=n.unescapeFacetValue},852:(e,t,r)=>{"use strict";var n=r(4562),i=r(9959),s=r(9892),a=r(5756),c=r(7638),u=r(796),o=r(351),h=r(4290),f=s.escapeFacetValue,l=s.unescapeFacetValue,m=r(5936);function d(e){var t={};return e.forEach((function(e,r){t[e]=r})),t}function p(e,t,r){t&&t[r]&&(e.stats=t[r])}function v(e,t,r){var s=t[0];this._rawResults=t;var u=this;Object.keys(s).forEach((function(e){u[e]=s[e]}));var h=o({persistHierarchicalRootCount:!1},r);Object.keys(h).forEach((function(e){u[e]=h[e]})),this.processingTimeMS=t.reduce((function(e,t){return void 0===t.processingTimeMS?e:e+t.processingTimeMS}),0),this.disjunctiveFacets=[],this.hierarchicalFacets=e.hierarchicalFacets.map((function(){return[]})),this.facets=[];var f=e.getRefinedDisjunctiveFacets(),v=d(e.facets),g=d(e.disjunctiveFacets),y=1,R=s.facets||{};Object.keys(R).forEach((function(t){var r,n,i=R[t],o=(r=e.hierarchicalFacets,n=t,a(r,(function(e){return(e.attributes||[]).indexOf(n)>-1})));if(o){var h=o.attributes.indexOf(t),f=c(e.hierarchicalFacets,(function(e){return e.name===o.name}));u.hierarchicalFacets[f][h]={attribute:t,data:i,exhaustive:s.exhaustiveFacetsCount}}else{var l,m=-1!==e.disjunctiveFacets.indexOf(t),d=-1!==e.facets.indexOf(t);m&&(l=g[t],u.disjunctiveFacets[l]={name:t,data:i,exhaustive:s.exhaustiveFacetsCount},p(u.disjunctiveFacets[l],s.facets_stats,t)),d&&(l=v[t],u.facets[l]={name:t,data:i,exhaustive:s.exhaustiveFacetsCount},p(u.facets[l],s.facets_stats,t))}})),this.hierarchicalFacets=n(this.hierarchicalFacets),f.forEach((function(r){var n=t[y],a=n&&n.facets?n.facets:{},h=e.getHierarchicalFacetByName(r);Object.keys(a).forEach((function(t){var r,f=a[t];if(h){r=c(e.hierarchicalFacets,(function(e){return e.name===h.name}));var m=c(u.hierarchicalFacets[r],(function(e){return e.attribute===t}));if(-1===m)return;u.hierarchicalFacets[r][m].data=o({},u.hierarchicalFacets[r][m].data,f)}else{r=g[t];var d=s.facets&&s.facets[t]||{};u.disjunctiveFacets[r]={name:t,data:i({},f,d),exhaustive:n.exhaustiveFacetsCount},p(u.disjunctiveFacets[r],n.facets_stats,t),e.disjunctiveFacetsRefinements[t]&&e.disjunctiveFacetsRefinements[t].forEach((function(n){!u.disjunctiveFacets[r].data[n]&&e.disjunctiveFacetsRefinements[t].indexOf(l(n))>-1&&(u.disjunctiveFacets[r].data[n]=0)}))}})),y++})),e.getRefinedHierarchicalFacets().forEach((function(r){var n=e.getHierarchicalFacetByName(r),s=e._getHierarchicalFacetSeparator(n),a=e.getHierarchicalRefinement(r);0===a.length||a[0].split(s).length<2||t.slice(y).forEach((function(t){var r=t&&t.facets?t.facets:{};Object.keys(r).forEach((function(t){var o=r[t],h=c(e.hierarchicalFacets,(function(e){return e.name===n.name})),f=c(u.hierarchicalFacets[h],(function(e){return e.attribute===t}));if(-1!==f){var l={};if(a.length>0&&!u.persistHierarchicalRootCount){var m=a[0].split(s)[0];l[m]=u.hierarchicalFacets[h][f].data[m]}u.hierarchicalFacets[h][f].data=i(l,o,u.hierarchicalFacets[h][f].data)}})),y++}))})),Object.keys(e.facetsExcludes).forEach((function(t){var r=e.facetsExcludes[t],n=v[t];u.facets[n]={name:t,data:R[t],exhaustive:s.exhaustiveFacetsCount},r.forEach((function(e){u.facets[n]=u.facets[n]||{name:t},u.facets[n].data=u.facets[n].data||{},u.facets[n].data[e]=0}))})),this.hierarchicalFacets=this.hierarchicalFacets.map(m(e)),this.facets=n(this.facets),this.disjunctiveFacets=n(this.disjunctiveFacets),this._state=e}function g(e,t){function r(e){return e.name===t}if(e._state.isConjunctiveFacet(t)){var n=a(e.facets,r);return n?Object.keys(n.data).map((function(r){var i=f(r);return{name:r,escapedValue:i,count:n.data[r],isRefined:e._state.isFacetRefined(t,i),isExcluded:e._state.isExcludeRefined(t,r)}})):[]}if(e._state.isDisjunctiveFacet(t)){var i=a(e.disjunctiveFacets,r);return i?Object.keys(i.data).map((function(r){var n=f(r);return{name:r,escapedValue:n,count:i.data[r],isRefined:e._state.isDisjunctiveFacetRefined(t,n)}})):[]}if(e._state.isHierarchicalFacet(t)){var s=a(e.hierarchicalFacets,r);if(!s)return s;var c=e._state.getHierarchicalFacetByName(t),u=e._state._getHierarchicalFacetSeparator(c),o=l(e._state.getHierarchicalRefinement(t)[0]||"");0===o.indexOf(c.rootPath)&&(o=o.replace(c.rootPath+u,""));var h=o.split(u);return h.unshift(t),y(s,h,0),s}}function y(e,t,r){e.isRefined=e.name===t[r],e.data&&e.data.forEach((function(e){y(e,t,r+1)}))}function R(e,t,r,n){if(n=n||0,Array.isArray(t))return e(t,r[n]);if(!t.data||0===t.data.length)return t;var s=t.data.map((function(t){return R(e,t,r,n+1)})),a=e(s,r[n]);return i({data:a},t)}function F(e,t){var r=a(e,(function(e){return e.name===t}));return r&&r.stats}function b(e,t,r,n,i){var s=a(i,(function(e){return e.name===r})),c=s&&s.data&&s.data[n]?s.data[n]:0,u=s&&s.exhaustive||!1;return{type:t,attributeName:r,name:n,count:c,exhaustive:u}}v.prototype.getFacetByName=function(e){function t(t){return t.name===e}return a(this.facets,t)||a(this.disjunctiveFacets,t)||a(this.hierarchicalFacets,t)},v.DEFAULT_SORT=["isRefined:desc","count:desc","name:asc"],v.prototype.getFacetValues=function(e,t){var r=g(this,e);if(r){var n,s=i({},t,{sortBy:v.DEFAULT_SORT,facetOrdering:!(t&&t.sortBy)}),a=this;if(Array.isArray(r))n=[e];else n=a._state.getHierarchicalFacetByName(r.name).attributes;return R((function(e,t){if(s.facetOrdering){var r=function(e,t){return e.renderingContent&&e.renderingContent.facetOrdering&&e.renderingContent.facetOrdering.values&&e.renderingContent.facetOrdering.values[t]}(a,t);if(r)return function(e,t){var r=[],n=[],i=(t.order||[]).reduce((function(e,t,r){return e[t]=r,e}),{});e.forEach((function(e){var t=e.path||e.name;void 0!==i[t]?r[i[t]]=e:n.push(e)})),r=r.filter((function(e){return e}));var s,a=t.sortRemainingBy;return"hidden"===a?r:(s="alpha"===a?[["path","name"],["asc","asc"]]:[["count"],["desc"]],r.concat(h(n,s[0],s[1])))}(e,r)}if(Array.isArray(s.sortBy)){var n=u(s.sortBy,v.DEFAULT_SORT);return h(e,n[0],n[1])}if("function"==typeof s.sortBy)return function(e,t){return t.sort(e)}(s.sortBy,e);throw new Error("options.sortBy is optional but if defined it must be either an array of string (predicates) or a sorting function")}),r,n)}},v.prototype.getFacetStats=function(e){return this._state.isConjunctiveFacet(e)?F(this.facets,e):this._state.isDisjunctiveFacet(e)?F(this.disjunctiveFacets,e):void 0},v.prototype.getRefinements=function(){var e=this._state,t=this,r=[];return Object.keys(e.facetsRefinements).forEach((function(n){e.facetsRefinements[n].forEach((function(i){r.push(b(e,"facet",n,i,t.facets))}))})),Object.keys(e.facetsExcludes).forEach((function(n){e.facetsExcludes[n].forEach((function(i){r.push(b(e,"exclude",n,i,t.facets))}))})),Object.keys(e.disjunctiveFacetsRefinements).forEach((function(n){e.disjunctiveFacetsRefinements[n].forEach((function(i){r.push(b(e,"disjunctive",n,i,t.disjunctiveFacets))}))})),Object.keys(e.hierarchicalFacetsRefinements).forEach((function(n){e.hierarchicalFacetsRefinements[n].forEach((function(i){r.push(function(e,t,r,n){var i=e.getHierarchicalFacetByName(t),s=e._getHierarchicalFacetSeparator(i),c=r.split(s),u=a(n,(function(e){return e.name===t})),o=c.reduce((function(e,t){var r=e&&a(e.data,(function(e){return e.name===t}));return void 0!==r?r:e}),u),h=o&&o.count||0,f=o&&o.exhaustive||!1,l=o&&o.path||"";return{type:"hierarchical",attributeName:t,name:l,count:h,exhaustive:f}}(e,n,i,t.hierarchicalFacets))}))})),Object.keys(e.numericRefinements).forEach((function(t){var n=e.numericRefinements[t];Object.keys(n).forEach((function(e){n[e].forEach((function(n){r.push({type:"numeric",attributeName:t,name:n,numericValue:n,operator:e})}))}))})),e.tagRefinements.forEach((function(e){r.push({type:"tag",attributeName:"_tags",name:e})})),r},e.exports=v},9802:(e,t,r)=>{"use strict";var n=r(8181),i=r(8843),s=r(9892).escapeFacetValue,a=r(6051),c=r(351),u=r(7677),o=r(2010),h=r(4925),f=r(2546),l=r(852),m=r(565);function d(e,t,r,n){"function"==typeof e.addAlgoliaAgent&&e.addAlgoliaAgent("JS Helper ("+m+")"),this.setClient(e);var i=r||{};i.index=t,this.state=f.make(i),this.lastResults=null,this._queryId=0,this._lastQueryIdReceived=-1,this.derivedHelpers=[],this._currentNbQueries=0,this._searchResultsOptions=n}function p(e){if(e<0)throw new Error("Page requested below 0.");return this._change({state:this.state.setPage(e),isPageReset:!1}),this}function v(){return this.state.page}a(d,n),d.prototype.search=function(){return this._search({onlyWithDerivedHelpers:!1}),this},d.prototype.searchOnlyWithDerivedHelpers=function(){return this._search({onlyWithDerivedHelpers:!0}),this},d.prototype.getQuery=function(){var e=this.state;return h._getHitsSearchParams(e)},d.prototype.searchOnce=function(e,t){var r=e?this.state.setQueryParameters(e):this.state,n=h._getQueries(r.index,r),i=this;if(this._currentNbQueries++,this.emit("searchOnce",{state:r}),!t)return this.client.search(n).then((function(e){return i._currentNbQueries--,0===i._currentNbQueries&&i.emit("searchQueueEmpty"),{content:new l(r,e.results),state:r,_originalResponse:e}}),(function(e){throw i._currentNbQueries--,0===i._currentNbQueries&&i.emit("searchQueueEmpty"),e}));this.client.search(n).then((function(e){i._currentNbQueries--,0===i._currentNbQueries&&i.emit("searchQueueEmpty"),t(null,new l(r,e.results),r)})).catch((function(e){i._currentNbQueries--,0===i._currentNbQueries&&i.emit("searchQueueEmpty"),t(e,null,r)}))},d.prototype.findAnswers=function(e){console.warn("[algoliasearch-helper] answers is no longer supported");var t=this.state,r=this.derivedHelpers[0];if(!r)return Promise.resolve([]);var n=r.getModifiedState(t),i=c({attributesForPrediction:e.attributesForPrediction,nbHits:e.nbHits},{params:o(h._getHitsSearchParams(n),["attributesToSnippet","hitsPerPage","restrictSearchableAttributes","snippetEllipsisText"])}),s="search for answers was called, but this client does not have a function client.initIndex(index).findAnswers";if("function"!=typeof this.client.initIndex)throw new Error(s);var a=this.client.initIndex(n.index);if("function"!=typeof a.findAnswers)throw new Error(s);return a.findAnswers(n.query,e.queryLanguages,i)},d.prototype.searchForFacetValues=function(e,t,r,n){var i="function"==typeof this.client.searchForFacetValues,a="function"==typeof this.client.initIndex;if(!i&&!a&&"function"!=typeof this.client.search)throw new Error("search for facet values (searchable) was called, but this client does not have a function client.searchForFacetValues or client.initIndex(index).searchForFacetValues");var c=this.state.setQueryParameters(n||{}),u=c.isDisjunctiveFacet(e),o=h.getSearchForFacetQuery(e,t,r,c);this._currentNbQueries++;var f,l=this;return i?f=this.client.searchForFacetValues([{indexName:c.index,params:o}]):a?f=this.client.initIndex(c.index).searchForFacetValues(o):(delete o.facetName,f=this.client.search([{type:"facet",facet:e,indexName:c.index,params:o}]).then((function(e){return e.results[0]}))),this.emit("searchForFacetValues",{state:c,facet:e,query:t}),f.then((function(t){return l._currentNbQueries--,0===l._currentNbQueries&&l.emit("searchQueueEmpty"),(t=Array.isArray(t)?t[0]:t).facetHits.forEach((function(t){t.escapedValue=s(t.value),t.isRefined=u?c.isDisjunctiveFacetRefined(e,t.escapedValue):c.isFacetRefined(e,t.escapedValue)})),t}),(function(e){throw l._currentNbQueries--,0===l._currentNbQueries&&l.emit("searchQueueEmpty"),e}))},d.prototype.setQuery=function(e){return this._change({state:this.state.resetPage().setQuery(e),isPageReset:!0}),this},d.prototype.clearRefinements=function(e){return this._change({state:this.state.resetPage().clearRefinements(e),isPageReset:!0}),this},d.prototype.clearTags=function(){return this._change({state:this.state.resetPage().clearTags(),isPageReset:!0}),this},d.prototype.addDisjunctiveFacetRefinement=function(e,t){return this._change({state:this.state.resetPage().addDisjunctiveFacetRefinement(e,t),isPageReset:!0}),this},d.prototype.addDisjunctiveRefine=function(){return this.addDisjunctiveFacetRefinement.apply(this,arguments)},d.prototype.addHierarchicalFacetRefinement=function(e,t){return this._change({state:this.state.resetPage().addHierarchicalFacetRefinement(e,t),isPageReset:!0}),this},d.prototype.addNumericRefinement=function(e,t,r){return this._change({state:this.state.resetPage().addNumericRefinement(e,t,r),isPageReset:!0}),this},d.prototype.addFacetRefinement=function(e,t){return this._change({state:this.state.resetPage().addFacetRefinement(e,t),isPageReset:!0}),this},d.prototype.addRefine=function(){return this.addFacetRefinement.apply(this,arguments)},d.prototype.addFacetExclusion=function(e,t){return this._change({state:this.state.resetPage().addExcludeRefinement(e,t),isPageReset:!0}),this},d.prototype.addExclude=function(){return this.addFacetExclusion.apply(this,arguments)},d.prototype.addTag=function(e){return this._change({state:this.state.resetPage().addTagRefinement(e),isPageReset:!0}),this},d.prototype.removeNumericRefinement=function(e,t,r){return this._change({state:this.state.resetPage().removeNumericRefinement(e,t,r),isPageReset:!0}),this},d.prototype.removeDisjunctiveFacetRefinement=function(e,t){return this._change({state:this.state.resetPage().removeDisjunctiveFacetRefinement(e,t),isPageReset:!0}),this},d.prototype.removeDisjunctiveRefine=function(){return this.removeDisjunctiveFacetRefinement.apply(this,arguments)},d.prototype.removeHierarchicalFacetRefinement=function(e){return this._change({state:this.state.resetPage().removeHierarchicalFacetRefinement(e),isPageReset:!0}),this},d.prototype.removeFacetRefinement=function(e,t){return this._change({state:this.state.resetPage().removeFacetRefinement(e,t),isPageReset:!0}),this},d.prototype.removeRefine=function(){return this.removeFacetRefinement.apply(this,arguments)},d.prototype.removeFacetExclusion=function(e,t){return this._change({state:this.state.resetPage().removeExcludeRefinement(e,t),isPageReset:!0}),this},d.prototype.removeExclude=function(){return this.removeFacetExclusion.apply(this,arguments)},d.prototype.removeTag=function(e){return this._change({state:this.state.resetPage().removeTagRefinement(e),isPageReset:!0}),this},d.prototype.toggleFacetExclusion=function(e,t){return this._change({state:this.state.resetPage().toggleExcludeFacetRefinement(e,t),isPageReset:!0}),this},d.prototype.toggleExclude=function(){return this.toggleFacetExclusion.apply(this,arguments)},d.prototype.toggleRefinement=function(e,t){return this.toggleFacetRefinement(e,t)},d.prototype.toggleFacetRefinement=function(e,t){return this._change({state:this.state.resetPage().toggleFacetRefinement(e,t),isPageReset:!0}),this},d.prototype.toggleRefine=function(){return this.toggleFacetRefinement.apply(this,arguments)},d.prototype.toggleTag=function(e){return this._change({state:this.state.resetPage().toggleTagRefinement(e),isPageReset:!0}),this},d.prototype.nextPage=function(){var e=this.state.page||0;return this.setPage(e+1)},d.prototype.previousPage=function(){var e=this.state.page||0;return this.setPage(e-1)},d.prototype.setCurrentPage=p,d.prototype.setPage=p,d.prototype.setIndex=function(e){return this._change({state:this.state.resetPage().setIndex(e),isPageReset:!0}),this},d.prototype.setQueryParameter=function(e,t){return this._change({state:this.state.resetPage().setQueryParameter(e,t),isPageReset:!0}),this},d.prototype.setState=function(e){return this._change({state:f.make(e),isPageReset:!1}),this},d.prototype.overrideStateWithoutTriggeringChangeEvent=function(e){return this.state=new f(e),this},d.prototype.hasRefinements=function(e){return!!u(this.state.getNumericRefinements(e))||(this.state.isConjunctiveFacet(e)?this.state.isFacetRefined(e):this.state.isDisjunctiveFacet(e)?this.state.isDisjunctiveFacetRefined(e):!!this.state.isHierarchicalFacet(e)&&this.state.isHierarchicalFacetRefined(e))},d.prototype.isExcluded=function(e,t){return this.state.isExcludeRefined(e,t)},d.prototype.isDisjunctiveRefined=function(e,t){return this.state.isDisjunctiveFacetRefined(e,t)},d.prototype.hasTag=function(e){return this.state.isTagRefined(e)},d.prototype.isTagRefined=function(){return this.hasTagRefinements.apply(this,arguments)},d.prototype.getIndex=function(){return this.state.index},d.prototype.getCurrentPage=v,d.prototype.getPage=v,d.prototype.getTags=function(){return this.state.tagRefinements},d.prototype.getRefinements=function(e){var t=[];if(this.state.isConjunctiveFacet(e))this.state.getConjunctiveRefinements(e).forEach((function(e){t.push({value:e,type:"conjunctive"})})),this.state.getExcludeRefinements(e).forEach((function(e){t.push({value:e,type:"exclude"})}));else if(this.state.isDisjunctiveFacet(e)){this.state.getDisjunctiveRefinements(e).forEach((function(e){t.push({value:e,type:"disjunctive"})}))}var r=this.state.getNumericRefinements(e);return Object.keys(r).forEach((function(e){var n=r[e];t.push({value:n,operator:e,type:"numeric"})})),t},d.prototype.getNumericRefinement=function(e,t){return this.state.getNumericRefinement(e,t)},d.prototype.getHierarchicalFacetBreadcrumb=function(e){return this.state.getHierarchicalFacetBreadcrumb(e)},d.prototype._search=function(e){var t=this.state,r=[],n=[];e.onlyWithDerivedHelpers||(n=h._getQueries(t.index,t),r.push({state:t,queriesCount:n.length,helper:this}),this.emit("search",{state:t,results:this.lastResults}));var i=this.derivedHelpers.map((function(e){var n=e.getModifiedState(t),i=n.index?h._getQueries(n.index,n):[];return r.push({state:n,queriesCount:i.length,helper:e}),e.emit("search",{state:n,results:e.lastResults}),i})),s=Array.prototype.concat.apply(n,i),a=this._queryId++;if(this._currentNbQueries++,!s.length)return Promise.resolve({results:[]}).then(this._dispatchAlgoliaResponse.bind(this,r,a));try{this.client.search(s).then(this._dispatchAlgoliaResponse.bind(this,r,a)).catch(this._dispatchAlgoliaError.bind(this,a))}catch(c){this.emit("error",{error:c})}},d.prototype._dispatchAlgoliaResponse=function(e,t,r){var n=this;if(!(t<this._lastQueryIdReceived)){this._currentNbQueries-=t-this._lastQueryIdReceived,this._lastQueryIdReceived=t,0===this._currentNbQueries&&this.emit("searchQueueEmpty");var i=r.results.slice();e.forEach((function(e){var t=e.state,r=e.queriesCount,s=e.helper,a=i.splice(0,r);t.index?(s.lastResults=new l(t,a,n._searchResultsOptions),s.emit("result",{results:s.lastResults,state:t})):s.emit("result",{results:null,state:t})}))}},d.prototype._dispatchAlgoliaError=function(e,t){e<this._lastQueryIdReceived||(this._currentNbQueries-=e-this._lastQueryIdReceived,this._lastQueryIdReceived=e,this.emit("error",{error:t}),0===this._currentNbQueries&&this.emit("searchQueueEmpty"))},d.prototype.containsRefinement=function(e,t,r,n){return e||0!==t.length||0!==r.length||0!==n.length},d.prototype._hasDisjunctiveRefinements=function(e){return this.state.disjunctiveRefinements[e]&&this.state.disjunctiveRefinements[e].length>0},d.prototype._change=function(e){var t=e.state,r=e.isPageReset;t!==this.state&&(this.state=t,this.emit("change",{state:this.state,results:this.lastResults,isPageReset:r}))},d.prototype.clearCache=function(){return this.client.clearCache&&this.client.clearCache(),this},d.prototype.setClient=function(e){return this.client===e||("function"==typeof e.addAlgoliaAgent&&e.addAlgoliaAgent("JS Helper ("+m+")"),this.client=e),this},d.prototype.getClient=function(){return this.client},d.prototype.derive=function(e){var t=new i(this,e);return this.derivedHelpers.push(t),t},d.prototype.detachDerivedHelper=function(e){var t=this.derivedHelpers.indexOf(e);if(-1===t)throw new Error("Derived helper already detached");this.derivedHelpers.splice(t,1)},d.prototype.hasPendingRequests=function(){return this._currentNbQueries>0},e.exports=d},4562:e=>{"use strict";e.exports=function(e){return Array.isArray(e)?e.filter(Boolean):[]}},9959:e=>{"use strict";e.exports=function(){return Array.prototype.slice.call(arguments).reduceRight((function(e,t){return Object.keys(Object(t)).forEach((function(r){void 0!==t[r]&&(void 0!==e[r]&&delete e[r],e[r]=t[r])})),e}),{})}},9892:e=>{"use strict";e.exports={escapeFacetValue:function(e){return"string"!=typeof e?e:String(e).replace(/^-/,"\\-")},unescapeFacetValue:function(e){return"string"!=typeof e?e:e.replace(/^\\-/,"-")}}},5756:e=>{"use strict";e.exports=function(e,t){if(Array.isArray(e))for(var r=0;r<e.length;r++)if(t(e[r]))return e[r]}},7638:e=>{"use strict";e.exports=function(e,t){if(!Array.isArray(e))return-1;for(var r=0;r<e.length;r++)if(t(e[r]))return r;return-1}},796:(e,t,r)=>{"use strict";var n=r(5756);e.exports=function(e,t){var r=(t||[]).map((function(e){return e.split(":")}));return e.reduce((function(e,t){var i=t.split(":"),s=n(r,(function(e){return e[0]===i[0]}));return i.length>1||!s?(e[0].push(i[0]),e[1].push(i[1]),e):(e[0].push(s[0]),e[1].push(s[1]),e)}),[[],[]])}},6051:e=>{"use strict";e.exports=function(e,t){e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}},4514:e=>{"use strict";e.exports=function(e,t){return e.filter((function(r,n){return t.indexOf(r)>-1&&e.indexOf(r)===n}))}},351:e=>{"use strict";function t(e){return"function"==typeof e||Array.isArray(e)||"[object Object]"===Object.prototype.toString.call(e)}function r(e,n){if(e===n)return e;for(var i in n)if(Object.prototype.hasOwnProperty.call(n,i)&&"__proto__"!==i&&"constructor"!==i){var s=n[i],a=e[i];void 0!==a&&void 0===s||(t(a)&&t(s)?e[i]=r(a,s):e[i]="object"==typeof(c=s)&&null!==c?r(Array.isArray(c)?[]:{},c):c)}var c;return e}e.exports=function(e){t(e)||(e={});for(var n=1,i=arguments.length;n<i;n++){var s=arguments[n];t(s)&&r(e,s)}return e}},7677:e=>{"use strict";e.exports=function(e){return e&&Object.keys(e).length>0}},2010:e=>{"use strict";e.exports=function(e,t){if(null===e)return{};var r,n,i={},s=Object.keys(e);for(n=0;n<s.length;n++)r=s[n],t.indexOf(r)>=0||(i[r]=e[r]);return i}},4290:e=>{"use strict";function t(e,t){if(e!==t){var r=void 0!==e,n=null===e,i=void 0!==t,s=null===t;if(!s&&e>t||n&&i||!r)return 1;if(!n&&e<t||s&&r||!i)return-1}return 0}e.exports=function(e,r,n){if(!Array.isArray(e))return[];Array.isArray(n)||(n=[]);var i=e.map((function(e,t){return{criteria:r.map((function(t){return e[t]})),index:t,value:e}}));return i.sort((function(e,r){for(var i=-1;++i<e.criteria.length;){var s=t(e.criteria[i],r.criteria[i]);if(s)return i>=n.length?s:"desc"===n[i]?-s:s}return e.index-r.index})),i.map((function(e){return e.value}))}},7024:e=>{"use strict";e.exports=function e(t){if("number"==typeof t)return t;if("string"==typeof t)return parseFloat(t);if(Array.isArray(t))return t.map(e);throw new Error("The value should be a number, a parsable string or an array of those.")}},4925:(e,t,r)=>{"use strict";var n=r(351);function i(e){return Object.keys(e).sort().reduce((function(t,r){return t[r]=e[r],t}),{})}var s={_getQueries:function(e,t){var r=[];return r.push({indexName:e,params:s._getHitsSearchParams(t)}),t.getRefinedDisjunctiveFacets().forEach((function(n){r.push({indexName:e,params:s._getDisjunctiveFacetSearchParams(t,n)})})),t.getRefinedHierarchicalFacets().forEach((function(n){var i=t.getHierarchicalFacetByName(n),a=t.getHierarchicalRefinement(n),c=t._getHierarchicalFacetSeparator(i);if(a.length>0&&a[0].split(c).length>1){var u=a[0].split(c).slice(0,-1).reduce((function(e,t,r){return e.concat({attribute:i.attributes[r],value:0===r?t:[e[e.length-1].value,t].join(c)})}),[]);u.forEach((function(n,a){var c=s._getDisjunctiveFacetSearchParams(t,n.attribute,0===a);function o(e){return i.attributes.some((function(t){return t===e.split(":")[0]}))}var h=(c.facetFilters||[]).reduce((function(e,t){if(Array.isArray(t)){var r=t.filter((function(e){return!o(e)}));r.length>0&&e.push(r)}return"string"!=typeof t||o(t)||e.push(t),e}),[]),f=u[a-1];c.facetFilters=a>0?h.concat(f.attribute+":"+f.value):h.length>0?h:void 0,r.push({indexName:e,params:c})}))}})),r},_getHitsSearchParams:function(e){var t=e.facets.concat(e.disjunctiveFacets).concat(s._getHitsHierarchicalFacetsAttributes(e)).sort(),r=s._getFacetFilters(e),a=s._getNumericFilters(e),c=s._getTagFilters(e),u={facets:t.indexOf("*")>-1?["*"]:t,tagFilters:c};return r.length>0&&(u.facetFilters=r),a.length>0&&(u.numericFilters=a),i(n({},e.getQueryParams(),u))},_getDisjunctiveFacetSearchParams:function(e,t,r){var a=s._getFacetFilters(e,t,r),c=s._getNumericFilters(e,t),u=s._getTagFilters(e),o={hitsPerPage:0,page:0,analytics:!1,clickAnalytics:!1};u.length>0&&(o.tagFilters=u);var h=e.getHierarchicalFacetByName(t);return o.facets=h?s._getDisjunctiveHierarchicalFacetAttribute(e,h,r):t,c.length>0&&(o.numericFilters=c),a.length>0&&(o.facetFilters=a),i(n({},e.getQueryParams(),o))},_getNumericFilters:function(e,t){if(e.numericFilters)return e.numericFilters;var r=[];return Object.keys(e.numericRefinements).forEach((function(n){var i=e.numericRefinements[n]||{};Object.keys(i).forEach((function(e){var s=i[e]||[];t!==n&&s.forEach((function(t){if(Array.isArray(t)){var i=t.map((function(t){return n+e+t}));r.push(i)}else r.push(n+e+t)}))}))})),r},_getTagFilters:function(e){return e.tagFilters?e.tagFilters:e.tagRefinements.join(",")},_getFacetFilters:function(e,t,r){var n=[],i=e.facetsRefinements||{};Object.keys(i).sort().forEach((function(e){(i[e]||[]).slice().sort().forEach((function(t){n.push(e+":"+t)}))}));var s=e.facetsExcludes||{};Object.keys(s).sort().forEach((function(e){(s[e]||[]).sort().forEach((function(t){n.push(e+":-"+t)}))}));var a=e.disjunctiveFacetsRefinements||{};Object.keys(a).sort().forEach((function(e){var r=a[e]||[];if(e!==t&&r&&0!==r.length){var i=[];r.slice().sort().forEach((function(t){i.push(e+":"+t)})),n.push(i)}}));var c=e.hierarchicalFacetsRefinements||{};return Object.keys(c).sort().forEach((function(i){var s=(c[i]||[])[0];if(void 0!==s){var a,u,o=e.getHierarchicalFacetByName(i),h=e._getHierarchicalFacetSeparator(o),f=e._getHierarchicalRootPath(o);if(t===i){if(-1===s.indexOf(h)||!f&&!0===r||f&&f.split(h).length===s.split(h).length)return;f?(u=f.split(h).length-1,s=f):(u=s.split(h).length-2,s=s.slice(0,s.lastIndexOf(h))),a=o.attributes[u]}else u=s.split(h).length-1,a=o.attributes[u];a&&n.push([a+":"+s])}})),n},_getHitsHierarchicalFacetsAttributes:function(e){return e.hierarchicalFacets.reduce((function(t,r){var n=e.getHierarchicalRefinement(r.name)[0];if(!n)return t.push(r.attributes[0]),t;var i=e._getHierarchicalFacetSeparator(r),s=n.split(i).length,a=r.attributes.slice(0,s+1);return t.concat(a)}),[])},_getDisjunctiveHierarchicalFacetAttribute:function(e,t,r){var n=e._getHierarchicalFacetSeparator(t);if(!0===r){var i=e._getHierarchicalRootPath(t),s=0;return i&&(s=i.split(n).length),[t.attributes[s]]}var a=(e.getHierarchicalRefinement(t.name)[0]||"").split(n).length-1;return t.attributes.slice(0,a+1)},getSearchForFacetQuery:function(e,t,r,a){var c=a.isDisjunctiveFacet(e)?a.clearRefinements(e):a,u={facetQuery:t,facetName:e};return"number"==typeof r&&(u.maxFacetHits=r),i(n({},s._getHitsSearchParams(c),u))}};e.exports=s},4169:e=>{"use strict";e.exports=function(e){return null!==e&&/^[a-zA-Z0-9_-]{1,64}$/.test(e)}},565:e=>{"use strict";e.exports="3.16.2"},7721:function(e){e.exports=function(){"use strict";function e(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function t(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 r(r){for(var n=1;n<arguments.length;n++){var i=null!=arguments[n]?arguments[n]:{};n%2?t(Object(i),!0).forEach((function(t){e(r,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(i)):t(Object(i)).forEach((function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(i,e))}))}return r}function n(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r,n,i={},s=Object.keys(e);for(n=0;n<s.length;n++)r=s[n],t.indexOf(r)>=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n<s.length;n++)r=s[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}function i(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e)){var r=[],n=!0,i=!1,s=void 0;try{for(var a,c=e[Symbol.iterator]();!(n=(a=c.next()).done)&&(r.push(a.value),!t||r.length!==t);n=!0);}catch(e){i=!0,s=e}finally{try{n||null==c.return||c.return()}finally{if(i)throw s}}return r}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function s(e){return function(e){if(Array.isArray(e)){for(var t=0,r=new Array(e.length);t<e.length;t++)r[t]=e[t];return r}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function a(e){var t,r="algoliasearch-client-js-".concat(e.key),n=function(){return void 0===t&&(t=e.localStorage||window.localStorage),t},s=function(){return JSON.parse(n().getItem(r)||"{}")},a=function(e){n().setItem(r,JSON.stringify(e))},c=function(){var t=e.timeToLive?1e3*e.timeToLive:null,r=s(),n=Object.fromEntries(Object.entries(r).filter((function(e){return void 0!==i(e,2)[1].timestamp})));if(a(n),t){var c=Object.fromEntries(Object.entries(n).filter((function(e){var r=i(e,2)[1],n=(new Date).getTime();return!(r.timestamp+t<n)})));a(c)}};return{get:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return Promise.resolve().then((function(){c();var t=JSON.stringify(e);return s()[t]})).then((function(e){return Promise.all([e?e.value:t(),void 0!==e])})).then((function(e){var t=i(e,2),n=t[0],s=t[1];return Promise.all([n,s||r.miss(n)])})).then((function(e){return i(e,1)[0]}))},set:function(e,t){return Promise.resolve().then((function(){var i=s();return i[JSON.stringify(e)]={timestamp:(new Date).getTime(),value:t},n().setItem(r,JSON.stringify(i)),t}))},delete:function(e){return Promise.resolve().then((function(){var t=s();delete t[JSON.stringify(e)],n().setItem(r,JSON.stringify(t))}))},clear:function(){return Promise.resolve().then((function(){n().removeItem(r)}))}}}function c(e){var t=s(e.caches),r=t.shift();return void 0===r?{get:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return t().then((function(e){return Promise.all([e,r.miss(e)])})).then((function(e){return i(e,1)[0]}))},set:function(e,t){return Promise.resolve(t)},delete:function(e){return Promise.resolve()},clear:function(){return Promise.resolve()}}:{get:function(e,n){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return r.get(e,n,i).catch((function(){return c({caches:t}).get(e,n,i)}))},set:function(e,n){return r.set(e,n).catch((function(){return c({caches:t}).set(e,n)}))},delete:function(e){return r.delete(e).catch((function(){return c({caches:t}).delete(e)}))},clear:function(){return r.clear().catch((function(){return c({caches:t}).clear()}))}}}function u(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{serializable:!0},t={};return{get:function(r,n){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}},s=JSON.stringify(r);if(s in t)return Promise.resolve(e.serializable?JSON.parse(t[s]):t[s]);var a=n(),c=i&&i.miss||function(){return Promise.resolve()};return a.then((function(e){return c(e)})).then((function(){return a}))},set:function(r,n){return t[JSON.stringify(r)]=e.serializable?JSON.stringify(n):n,Promise.resolve(n)},delete:function(e){return delete t[JSON.stringify(e)],Promise.resolve()},clear:function(){return t={},Promise.resolve()}}}function o(e){for(var t=e.length-1;t>0;t--){var r=Math.floor(Math.random()*(t+1)),n=e[t];e[t]=e[r],e[r]=n}return e}function h(e,t){return t?(Object.keys(t).forEach((function(r){e[r]=t[r](e)})),e):e}function f(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];var i=0;return e.replace(/%s/g,(function(){return encodeURIComponent(r[i++])}))}var l={WithinQueryParameters:0,WithinHeaders:1};function m(e,t){var r=e||{},n=r.data||{};return Object.keys(r).forEach((function(e){-1===["timeout","headers","queryParameters","data","cacheable"].indexOf(e)&&(n[e]=r[e])})),{data:Object.entries(n).length>0?n:void 0,timeout:r.timeout||t,headers:r.headers||{},queryParameters:r.queryParameters||{},cacheable:r.cacheable}}var d={Read:1,Write:2,Any:3},p=1,v=2,g=3;function y(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:p;return r(r({},e),{},{status:t,lastUpdate:Date.now()})}function R(e){return"string"==typeof e?{protocol:"https",url:e,accept:d.Any}:{protocol:e.protocol||"https",url:e.url,accept:e.accept||d.Any}}var F="GET",b="POST";function j(e,t){return Promise.all(t.map((function(t){return e.get(t,(function(){return Promise.resolve(y(t))}))}))).then((function(e){var r=e.filter((function(e){return function(e){return e.status===p||Date.now()-e.lastUpdate>12e4}(e)})),n=e.filter((function(e){return function(e){return e.status===g&&Date.now()-e.lastUpdate<=12e4}(e)})),i=[].concat(s(r),s(n));return{getTimeout:function(e,t){return(0===n.length&&0===e?1:n.length+3+e)*t},statelessHosts:i.length>0?i.map((function(e){return R(e)})):t}}))}function P(e,t,n,i){var a=[],c=function(e,t){if(e.method!==F&&(void 0!==e.data||void 0!==t.data)){var n=Array.isArray(e.data)?e.data:r(r({},e.data),t.data);return JSON.stringify(n)}}(n,i),u=function(e,t){var n=r(r({},e.headers),t.headers),i={};return Object.keys(n).forEach((function(e){var t=n[e];i[e.toLowerCase()]=t})),i}(e,i),o=n.method,h=n.method!==F?{}:r(r({},n.data),i.data),f=r(r(r({"x-algolia-agent":e.userAgent.value},e.queryParameters),h),i.queryParameters),l=0,m=function t(r,s){var h=r.pop();if(void 0===h)throw{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.",transporterStackTrace:O(a)};var m={data:c,headers:u,method:o,url:_(h,n.path,f),connectTimeout:s(l,e.timeouts.connect),responseTimeout:s(l,i.timeout)},d=function(e){var t={request:m,response:e,host:h,triesLeft:r.length};return a.push(t),t},p={onSuccess:function(e){return function(e){try{return JSON.parse(e.content)}catch(t){throw function(e,t){return{name:"DeserializationError",message:e,response:t}}(t.message,e)}}(e)},onRetry:function(n){var i=d(n);return n.isTimedOut&&l++,Promise.all([e.logger.info("Retryable failure",w(i)),e.hostsCache.set(h,y(h,n.isTimedOut?g:v))]).then((function(){return t(r,s)}))},onFail:function(e){throw d(e),function(e,t){var r=e.content,n=e.status,i=r;try{i=JSON.parse(r).message}catch(e){}return function(e,t,r){return{name:"ApiError",message:e,status:t,transporterStackTrace:r}}(i,n,t)}(e,O(a))}};return e.requester.send(m).then((function(e){return function(e,t){return function(e){var t=e.status;return e.isTimedOut||function(e){var t=e.isTimedOut,r=e.status;return!t&&0==~~r}(e)||2!=~~(t/100)&&4!=~~(t/100)}(e)?t.onRetry(e):2==~~(e.status/100)?t.onSuccess(e):t.onFail(e)}(e,p)}))};return j(e.hostsCache,t).then((function(e){return m(s(e.statelessHosts).reverse(),e.getTimeout)}))}function x(e){var t={value:"Algolia for JavaScript (".concat(e,")"),add:function(e){var r="; ".concat(e.segment).concat(void 0!==e.version?" (".concat(e.version,")"):"");return-1===t.value.indexOf(r)&&(t.value="".concat(t.value).concat(r)),t}};return t}function _(e,t,r){var n=E(r),i="".concat(e.protocol,"://").concat(e.url,"/").concat("/"===t.charAt(0)?t.substr(1):t);return n.length&&(i+="?".concat(n)),i}function E(e){return Object.keys(e).map((function(t){return f("%s=%s",t,(r=e[t],"[object Object]"===Object.prototype.toString.call(r)||"[object Array]"===Object.prototype.toString.call(r)?JSON.stringify(e[t]):e[t]));var r})).join("&")}function O(e){return e.map((function(e){return w(e)}))}function w(e){var t=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return r(r({},e),{},{request:r(r({},e.request),{},{headers:r(r({},e.request.headers),t)})})}var A=function(e){var t=e.appId,n=function(e,t,r){var n={"x-algolia-api-key":r,"x-algolia-application-id":t};return{headers:function(){return e===l.WithinHeaders?n:{}},queryParameters:function(){return e===l.WithinQueryParameters?n:{}}}}(void 0!==e.authMode?e.authMode:l.WithinHeaders,t,e.apiKey),s=function(e){var t=e.hostsCache,r=e.logger,n=e.requester,s=e.requestsCache,a=e.responsesCache,c=e.timeouts,u=e.userAgent,o=e.hosts,h=e.queryParameters,f={hostsCache:t,logger:r,requester:n,requestsCache:s,responsesCache:a,timeouts:c,userAgent:u,headers:e.headers,queryParameters:h,hosts:o.map((function(e){return R(e)})),read:function(e,t){var r=m(t,f.timeouts.read),n=function(){return P(f,f.hosts.filter((function(e){return 0!=(e.accept&d.Read)})),e,r)};if(!0!==(void 0!==r.cacheable?r.cacheable:e.cacheable))return n();var s={request:e,mappedRequestOptions:r,transporter:{queryParameters:f.queryParameters,headers:f.headers}};return f.responsesCache.get(s,(function(){return f.requestsCache.get(s,(function(){return f.requestsCache.set(s,n()).then((function(e){return Promise.all([f.requestsCache.delete(s),e])}),(function(e){return Promise.all([f.requestsCache.delete(s),Promise.reject(e)])})).then((function(e){var t=i(e,2);return t[0],t[1]}))}))}),{miss:function(e){return f.responsesCache.set(s,e)}})},write:function(e,t){return P(f,f.hosts.filter((function(e){return 0!=(e.accept&d.Write)})),e,m(t,f.timeouts.write))}};return f}(r(r({hosts:[{url:"".concat(t,"-dsn.algolia.net"),accept:d.Read},{url:"".concat(t,".algolia.net"),accept:d.Write}].concat(o([{url:"".concat(t,"-1.algolianet.com")},{url:"".concat(t,"-2.algolianet.com")},{url:"".concat(t,"-3.algolianet.com")}]))},e),{},{headers:r(r(r({},n.headers()),{"content-type":"application/x-www-form-urlencoded"}),e.headers),queryParameters:r(r({},n.queryParameters()),e.queryParameters)}));return h({transporter:s,appId:t,addAlgoliaAgent:function(e,t){s.userAgent.add({segment:e,version:t})},clearCache:function(){return Promise.all([s.requestsCache.clear(),s.responsesCache.clear()]).then((function(){}))}},e.methods)},N=function(e){return function(t,r){return t.method===F?e.transporter.read(t,r):e.transporter.write(t,r)}},H=function(e){return function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return h({transporter:e.transporter,appId:e.appId,indexName:t},r.methods)}},S=function(e){return function(t,n){var i=t.map((function(e){return r(r({},e),{},{params:E(e.params||{})})}));return e.transporter.read({method:b,path:"1/indexes/*/queries",data:{requests:i},cacheable:!0},n)}},T=function(e){return function(t,i){return Promise.all(t.map((function(t){var s=t.params,a=s.facetName,c=s.facetQuery,u=n(s,["facetName","facetQuery"]);return H(e)(t.indexName,{methods:{searchForFacetValues:D}}).searchForFacetValues(a,c,r(r({},i),u))})))}},Q=function(e){return function(t,r,n){return e.transporter.read({method:b,path:f("1/answers/%s/prediction",e.indexName),data:{query:t,queryLanguages:r},cacheable:!0},n)}},C=function(e){return function(t,r){return e.transporter.read({method:b,path:f("1/indexes/%s/query",e.indexName),data:{query:t},cacheable:!0},r)}},D=function(e){return function(t,r,n){return e.transporter.read({method:b,path:f("1/indexes/%s/facets/%s/query",e.indexName,t),data:{facetQuery:r},cacheable:!0},n)}},I=1,k=2,q=3;function V(e,t,n){var i,s={appId:e,apiKey:t,timeouts:{connect:1,read:2,write:30},requester:{send:function(e){return new Promise((function(t){var r=new XMLHttpRequest;r.open(e.method,e.url,!0),Object.keys(e.headers).forEach((function(t){return r.setRequestHeader(t,e.headers[t])}));var n,i=function(e,n){return setTimeout((function(){r.abort(),t({status:0,content:n,isTimedOut:!0})}),1e3*e)},s=i(e.connectTimeout,"Connection timeout");r.onreadystatechange=function(){r.readyState>r.OPENED&&void 0===n&&(clearTimeout(s),n=i(e.responseTimeout,"Socket timeout"))},r.onerror=function(){0===r.status&&(clearTimeout(s),clearTimeout(n),t({content:r.responseText||"Network request failed",status:r.status,isTimedOut:!1}))},r.onload=function(){clearTimeout(s),clearTimeout(n),t({content:r.responseText,status:r.status,isTimedOut:!1})},r.send(e.data)}))}},logger:(i=q,{debug:function(e,t){return I>=i&&console.debug(e,t),Promise.resolve()},info:function(e,t){return k>=i&&console.info(e,t),Promise.resolve()},error:function(e,t){return console.error(e,t),Promise.resolve()}}),responsesCache:u(),requestsCache:u({serializable:!1}),hostsCache:c({caches:[a({key:"".concat("4.22.1","-").concat(e)}),u()]}),userAgent:x("4.22.1").add({segment:"Browser",version:"lite"}),authMode:l.WithinQueryParameters};return A(r(r(r({},s),n),{},{methods:{search:S,searchForFacetValues:T,multipleQueries:S,multipleSearchForFacetValues:T,customRequest:N,initIndex:function(e){return function(t){return H(e)(t,{methods:{search:C,searchForFacetValues:D,findAnswers:Q}})}}}}))}return V.version="4.22.1",V}()},6955:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>S});var n=r(9474),i=r(8923),s=r(9788),a=r.n(s),c=r(7721),u=r.n(c),o=r(6388),h=r(609),f=r(8379),l=r(4800),m=r(2403);const d=["zero","one","two","few","many","other"];function p(e){return d.filter((t=>e.includes(t)))}const v={locale:"en",pluralForms:p(["one","other"]),select:e=>1===e?"one":"other"};function g(){const{i18n:{currentLocale:e}}=(0,m.A)();return(0,n.useMemo)((()=>{try{return function(e){const t=new Intl.PluralRules(e);return{locale:e,pluralForms:p(t.resolvedOptions().pluralCategories),select:e=>t.select(e)}}(e)}catch(t){return console.error(`Failed to use Intl.PluralRules for locale "${e}".\nDocusaurus will fallback to the default (English) implementation.\nError: ${t.message}\n`),v}}),[e])}function y(){const e=g();return{selectMessage:(t,r)=>function(e,t,r){const n=e.split("|");if(1===n.length)return n[0];n.length>r.pluralForms.length&&console.error(`For locale=${r.locale}, a maximum of ${r.pluralForms.length} plural forms are expected (${r.pluralForms.join(",")}), but the message contains ${n.length}: ${e}`);const i=r.select(t),s=r.pluralForms.indexOf(i);return n[Math.min(s,n.length-1)]}(r,t,e)}}var R=r(5244),F=r(5461),b=r(961),j=r(4904),P=r(1598),x=r(58),_=r(8930),E=r(7367),O=r(9382);const w={searchQueryInput:"searchQueryInput_t4SI",searchVersionInput:"searchVersionInput_VRdv",searchResultsColumn:"searchResultsColumn_QzhY",algoliaLogo:"algoliaLogo_pMFB",algoliaLogoPathFill:"algoliaLogoPathFill_N2Hb",searchResultItem:"searchResultItem_UjTk",searchResultItemHeading:"searchResultItemHeading_lptN",searchResultItemPath:"searchResultItemPath_zNJY",searchResultItemSummary:"searchResultItemSummary_NMRP",searchQueryColumn:"searchQueryColumn_YQZz",searchVersionColumn:"searchVersionColumn_JJm2",searchLogoColumn:"searchLogoColumn_yymS",loadingSpinner:"loadingSpinner_SiMU","loading-spin":"loading-spin_W5H0",loader:"loader_sHs5"};var A=r(3274);function N(e){let{docsSearchVersionsHelpers:t}=e;const r=Object.entries(t.allDocsData).filter((e=>{let[,t]=e;return t.versions.length>1}));return(0,A.jsx)("div",{className:(0,i.A)("col","col--3","padding-left--none",w.searchVersionColumn),children:r.map((e=>{let[n,i]=e;const s=r.length>1?`${n}: `:"";return(0,A.jsx)("select",{onChange:e=>t.setSearchVersion(n,e.target.value),defaultValue:t.searchVersions[n],className:w.searchVersionInput,children:i.versions.map(((e,t)=>(0,A.jsx)("option",{label:`${s}${e.label}`,value:e.name},t)))},n)}))})}function H(){const{i18n:{currentLocale:e}}=(0,m.A)(),{algolia:{appId:t,apiKey:r,indexName:s}}=(0,x.c)(),c=(0,_.C)(),d=function(){const{selectMessage:e}=y();return t=>e(t,(0,P.T)({id:"theme.SearchPage.documentsFound.plurals",description:'Pluralized label for "{count} documents found". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One document found|{count} documents found"},{count:t}))}(),p=function(){const e=(0,l.Gy)(),[t,r]=(0,n.useState)((()=>Object.entries(e).reduce(((e,t)=>{let[r,n]=t;return{...e,[r]:n.versions[0].name}}),{}))),i=Object.values(e).some((e=>e.versions.length>1));return{allDocsData:e,versioningEnabled:i,searchVersions:t,setSearchVersion:(e,t)=>r((r=>({...r,[e]:t})))}}(),[v,g]=(0,R.b)(),b={items:[],query:null,totalResults:null,totalPages:null,lastPage:null,hasMore:null,loading:null},[H,S]=(0,n.useReducer)(((e,t)=>{switch(t.type){case"reset":return b;case"loading":return{...e,loading:!0};case"update":return v!==t.value.query?e:{...t.value,items:0===t.value.lastPage?t.value.items:e.items.concat(t.value.items)};case"advance":{const t=e.totalPages>e.lastPage+1;return{...e,lastPage:t?e.lastPage+1:e.lastPage,hasMore:t}}default:return e}}),b),T=u()(t,r),Q=a()(T,s,{hitsPerPage:15,advancedSyntax:!0,disjunctiveFacets:["language","docusaurus_tag"]});Q.on("result",(e=>{let{results:{query:t,hits:r,page:n,nbHits:i,nbPages:s}}=e;if(""===t||!Array.isArray(r))return void S({type:"reset"});const a=e=>e.replace(/algolia-docsearch-suggestion--highlight/g,"search-result-match"),u=r.map((e=>{let{url:t,_highlightResult:{hierarchy:r},_snippetResult:n={}}=e;const i=Object.keys(r).map((e=>a(r[e].value)));return{title:i.pop(),url:c(t),summary:n.content?`${a(n.content.value)}...`:"",breadcrumbs:i}}));S({type:"update",value:{items:u,query:t,totalResults:i,totalPages:s,lastPage:n,hasMore:s>n+1,loading:!1}})}));const[C,D]=(0,n.useState)(null),I=(0,n.useRef)(0),k=(0,n.useRef)(o.A.canUseIntersectionObserver&&new IntersectionObserver((e=>{const{isIntersecting:t,boundingClientRect:{y:r}}=e[0];t&&I.current>r&&S({type:"advance"}),I.current=r}),{threshold:1})),q=()=>v?(0,P.T)({id:"theme.SearchPage.existingResultsTitle",message:'Search results for "{query}"',description:"The search page title for non-empty query"},{query:v}):(0,P.T)({id:"theme.SearchPage.emptyResultsTitle",message:"Search the documentation",description:"The search page title for empty query"}),V=(0,F._q)((function(t){void 0===t&&(t=0),Q.addDisjunctiveFacetRefinement("docusaurus_tag","default"),Q.addDisjunctiveFacetRefinement("language",e),Object.entries(p.searchVersions).forEach((e=>{let[t,r]=e;Q.addDisjunctiveFacetRefinement("docusaurus_tag",`docs-${t}-${r}`)})),Q.setQuery(v).setPage(t).search()}));return(0,n.useEffect)((()=>{if(!C)return;const e=k.current;return e?(e.observe(C),()=>e.unobserve(C)):()=>!0}),[C]),(0,n.useEffect)((()=>{S({type:"reset"}),v&&(S({type:"loading"}),setTimeout((()=>{V()}),300))}),[v,p.searchVersions,V]),(0,n.useEffect)((()=>{H.lastPage&&0!==H.lastPage&&V(H.lastPage)}),[V,H.lastPage]),(0,A.jsxs)(E.A,{children:[(0,A.jsxs)(h.A,{children:[(0,A.jsx)("title",{children:(0,j.s)(q())}),(0,A.jsx)("meta",{property:"robots",content:"noindex, follow"})]}),(0,A.jsxs)("div",{className:"container margin-vert--lg",children:[(0,A.jsx)(O.A,{as:"h1",children:q()}),(0,A.jsxs)("form",{className:"row",onSubmit:e=>e.preventDefault(),children:[(0,A.jsx)("div",{className:(0,i.A)("col",w.searchQueryColumn,{"col--9":p.versioningEnabled,"col--12":!p.versioningEnabled}),children:(0,A.jsx)("input",{type:"search",name:"q",className:w.searchQueryInput,placeholder:(0,P.T)({id:"theme.SearchPage.inputPlaceholder",message:"Type your search here",description:"The placeholder for search page input"}),"aria-label":(0,P.T)({id:"theme.SearchPage.inputLabel",message:"Search",description:"The ARIA label for search page input"}),onChange:e=>g(e.target.value),value:v,autoComplete:"off",autoFocus:!0})}),p.versioningEnabled&&(0,A.jsx)(N,{docsSearchVersionsHelpers:p})]}),(0,A.jsxs)("div",{className:"row",children:[(0,A.jsx)("div",{className:(0,i.A)("col","col--8",w.searchResultsColumn),children:!!H.totalResults&&d(H.totalResults)}),(0,A.jsx)("div",{className:(0,i.A)("col","col--4","text--right",w.searchLogoColumn),children:(0,A.jsx)(f.A,{to:"https://www.algolia.com/","aria-label":(0,P.T)({id:"theme.SearchPage.algoliaLabel",message:"Search by Algolia",description:"The ARIA label for Algolia mention"}),children:(0,A.jsx)("svg",{viewBox:"0 0 168 24",className:w.algoliaLogo,children:(0,A.jsxs)("g",{fill:"none",children:[(0,A.jsx)("path",{className:w.algoliaLogoPathFill,d:"M120.925 18.804c-4.386.02-4.386-3.54-4.386-4.106l-.007-13.336 2.675-.424v13.254c0 .322 0 2.358 1.718 2.364v2.248zm-10.846-2.18c.821 0 1.43-.047 1.855-.129v-2.719a6.334 6.334 0 0 0-1.574-.199 5.7 5.7 0 0 0-.897.069 2.699 2.699 0 0 0-.814.24c-.24.116-.439.28-.582.491-.15.212-.219.335-.219.656 0 .628.219.991.616 1.23s.938.362 1.615.362zm-.233-9.7c.883 0 1.629.109 2.231.328.602.218 1.088.525 1.444.915.363.396.609.922.76 1.483.157.56.232 1.175.232 1.85v6.874a32.5 32.5 0 0 1-1.868.314c-.834.123-1.772.185-2.813.185-.69 0-1.327-.069-1.895-.198a4.001 4.001 0 0 1-1.471-.636 3.085 3.085 0 0 1-.951-1.134c-.226-.465-.343-1.12-.343-1.803 0-.656.13-1.073.384-1.525a3.24 3.24 0 0 1 1.047-1.106c.445-.287.95-.492 1.532-.615a8.8 8.8 0 0 1 1.82-.185 8.404 8.404 0 0 1 1.972.24v-.438c0-.307-.035-.6-.11-.874a1.88 1.88 0 0 0-.384-.73 1.784 1.784 0 0 0-.724-.493 3.164 3.164 0 0 0-1.143-.205c-.616 0-1.177.075-1.69.164a7.735 7.735 0 0 0-1.26.307l-.321-2.192c.335-.117.834-.233 1.478-.349a10.98 10.98 0 0 1 2.073-.178zm52.842 9.626c.822 0 1.43-.048 1.854-.13V13.7a6.347 6.347 0 0 0-1.574-.199c-.294 0-.595.021-.896.069a2.7 2.7 0 0 0-.814.24 1.46 1.46 0 0 0-.582.491c-.15.212-.218.335-.218.656 0 .628.218.991.615 1.23.404.245.938.362 1.615.362zm-.226-9.694c.883 0 1.629.108 2.231.327.602.219 1.088.526 1.444.915.355.39.609.923.759 1.483a6.8 6.8 0 0 1 .233 1.852v6.873c-.41.088-1.034.19-1.868.314-.834.123-1.772.184-2.813.184-.69 0-1.327-.068-1.895-.198a4.001 4.001 0 0 1-1.471-.635 3.085 3.085 0 0 1-.951-1.134c-.226-.465-.343-1.12-.343-1.804 0-.656.13-1.073.384-1.524.26-.45.608-.82 1.047-1.107.445-.286.95-.491 1.532-.614a8.803 8.803 0 0 1 2.751-.13c.329.034.671.096 1.04.185v-.437a3.3 3.3 0 0 0-.109-.875 1.873 1.873 0 0 0-.384-.731 1.784 1.784 0 0 0-.724-.492 3.165 3.165 0 0 0-1.143-.205c-.616 0-1.177.075-1.69.164a7.75 7.75 0 0 0-1.26.307l-.321-2.193c.335-.116.834-.232 1.478-.348a11.633 11.633 0 0 1 2.073-.177zm-8.034-1.271a1.626 1.626 0 0 1-1.628-1.62c0-.895.725-1.62 1.628-1.62.904 0 1.63.725 1.63 1.62 0 .895-.733 1.62-1.63 1.62zm1.348 13.22h-2.689V7.27l2.69-.423v11.956zm-4.714 0c-4.386.02-4.386-3.54-4.386-4.107l-.008-13.336 2.676-.424v13.254c0 .322 0 2.358 1.718 2.364v2.248zm-8.698-5.903c0-1.156-.253-2.119-.746-2.788-.493-.677-1.183-1.01-2.067-1.01-.882 0-1.574.333-2.065 1.01-.493.676-.733 1.632-.733 2.788 0 1.168.246 1.953.74 2.63.492.683 1.183 1.018 2.066 1.018.882 0 1.574-.342 2.067-1.019.492-.683.738-1.46.738-2.63zm2.737-.007c0 .902-.13 1.584-.397 2.33a5.52 5.52 0 0 1-1.128 1.906 4.986 4.986 0 0 1-1.752 1.223c-.685.286-1.739.45-2.265.45-.528-.006-1.574-.157-2.252-.45a5.096 5.096 0 0 1-1.744-1.223c-.487-.527-.863-1.162-1.137-1.906a6.345 6.345 0 0 1-.41-2.33c0-.902.123-1.77.397-2.508a5.554 5.554 0 0 1 1.15-1.892 5.133 5.133 0 0 1 1.75-1.216c.679-.287 1.425-.423 2.232-.423.808 0 1.553.142 2.237.423a4.88 4.88 0 0 1 1.753 1.216 5.644 5.644 0 0 1 1.135 1.892c.287.738.431 1.606.431 2.508zm-20.138 0c0 1.12.246 2.363.738 2.882.493.52 1.13.78 1.91.78.424 0 .828-.062 1.204-.178.377-.116.677-.253.917-.417V9.33a10.476 10.476 0 0 0-1.766-.226c-.971-.028-1.71.37-2.23 1.004-.513.636-.773 1.75-.773 2.788zm7.438 5.274c0 1.824-.466 3.156-1.404 4.004-.936.846-2.367 1.27-4.296 1.27-.705 0-2.17-.137-3.34-.396l.431-2.118c.98.205 2.272.26 2.95.26 1.074 0 1.84-.219 2.299-.656.459-.437.684-1.086.684-1.948v-.437a8.07 8.07 0 0 1-1.047.397c-.43.13-.93.198-1.492.198-.739 0-1.41-.116-2.018-.349a4.206 4.206 0 0 1-1.567-1.025c-.431-.45-.774-1.017-1.013-1.694-.24-.677-.363-1.885-.363-2.773 0-.834.13-1.88.384-2.577.26-.696.629-1.298 1.129-1.796.493-.498 1.095-.881 1.8-1.162a6.605 6.605 0 0 1 2.428-.457c.87 0 1.67.109 2.45.24.78.129 1.444.265 1.985.415V18.17zM6.972 6.677v1.627c-.712-.446-1.52-.67-2.425-.67-.585 0-1.045.13-1.38.391a1.24 1.24 0 0 0-.502 1.03c0 .425.164.765.494 1.02.33.256.835.532 1.516.83.447.192.795.356 1.045.495.25.138.537.332.862.582.324.25.563.548.718.894.154.345.23.741.23 1.188 0 .947-.334 1.691-1.004 2.234-.67.542-1.537.814-2.601.814-1.18 0-2.16-.229-2.936-.686v-1.708c.84.628 1.814.942 2.92.942.585 0 1.048-.136 1.388-.407.34-.271.51-.646.51-1.125 0-.287-.1-.55-.302-.79-.203-.24-.42-.42-.655-.542-.234-.123-.585-.29-1.053-.503a61.27 61.27 0 0 1-.582-.271 13.67 13.67 0 0 1-.55-.287 4.275 4.275 0 0 1-.567-.351 6.92 6.92 0 0 1-.455-.4c-.18-.17-.31-.34-.39-.51-.08-.17-.155-.37-.224-.598a2.553 2.553 0 0 1-.104-.742c0-.915.333-1.638.998-2.17.664-.532 1.523-.798 2.576-.798.968 0 1.793.17 2.473.51zm7.468 5.696v-.287c-.022-.607-.187-1.088-.495-1.444-.309-.357-.75-.535-1.324-.535-.532 0-.99.194-1.373.583-.382.388-.622.949-.717 1.683h3.909zm1.005 2.792v1.404c-.596.34-1.383.51-2.362.51-1.255 0-2.255-.377-3-1.132-.744-.755-1.116-1.744-1.116-2.968 0-1.297.34-2.316 1.021-3.055.68-.74 1.548-1.11 2.6-1.11 1.033 0 1.852.323 2.458.966.606.644.91 1.572.91 2.784 0 .33-.033.676-.096 1.038h-5.314c.107.702.405 1.239.894 1.611.49.372 1.106.558 1.85.558.862 0 1.58-.202 2.155-.606zm6.605-1.77h-1.212c-.596 0-1.045.116-1.349.35-.303.234-.454.532-.454.894 0 .372.117.664.35.877.235.213.575.32 1.022.32.51 0 .912-.142 1.204-.424.293-.281.44-.651.44-1.108v-.91zm-4.068-2.554V9.325c.627-.361 1.457-.542 2.489-.542 2.116 0 3.175 1.026 3.175 3.08V17h-1.548v-.957c-.415.68-1.143 1.02-2.186 1.02-.766 0-1.38-.22-1.843-.661-.462-.442-.694-1.003-.694-1.684 0-.776.293-1.38.878-1.81.585-.431 1.404-.647 2.457-.647h1.34V11.8c0-.554-.133-.971-.399-1.253-.266-.282-.707-.423-1.324-.423a4.07 4.07 0 0 0-2.345.718zm9.333-1.93v1.42c.394-1 1.101-1.5 2.123-1.5.148 0 .313.016.494.048v1.531a1.885 1.885 0 0 0-.75-.143c-.542 0-.989.24-1.34.718-.351.479-.527 1.048-.527 1.707V17h-1.563V8.91h1.563zm5.01 4.084c.022.82.272 1.492.75 2.019.479.526 1.15.79 2.01.79.639 0 1.235-.176 1.788-.527v1.404c-.521.319-1.186.479-1.995.479-1.265 0-2.276-.4-3.031-1.197-.755-.798-1.133-1.792-1.133-2.984 0-1.16.38-2.151 1.14-2.975.761-.825 1.79-1.237 3.088-1.237.702 0 1.346.149 1.93.447v1.436a3.242 3.242 0 0 0-1.77-.495c-.84 0-1.513.266-2.019.798-.505.532-.758 1.213-.758 2.042zM40.24 5.72v4.579c.458-1 1.293-1.5 2.505-1.5.787 0 1.42.245 1.899.734.479.49.718 1.17.718 2.042V17h-1.564v-5.106c0-.553-.14-.98-.422-1.284-.282-.303-.652-.455-1.11-.455-.531 0-1.002.202-1.411.606-.41.405-.615 1.022-.615 1.851V17h-1.563V5.72h1.563zm14.966 10.02c.596 0 1.096-.253 1.5-.758.404-.506.606-1.157.606-1.955 0-.915-.202-1.62-.606-2.114-.404-.495-.92-.742-1.548-.742-.553 0-1.05.224-1.491.67-.442.447-.662 1.133-.662 2.058 0 .958.212 1.67.638 2.138.425.469.946.703 1.563.703zM53.004 5.72v4.42c.574-.894 1.388-1.341 2.44-1.341 1.022 0 1.857.383 2.506 1.149.649.766.973 1.781.973 3.047 0 1.138-.309 2.109-.925 2.912-.617.803-1.463 1.205-2.537 1.205-1.075 0-1.894-.447-2.457-1.34V17h-1.58V5.72h1.58zm9.908 11.104l-3.223-7.913h1.739l1.005 2.632 1.26 3.415c.096-.32.48-1.458 1.15-3.415l.909-2.632h1.66l-2.92 7.866c-.777 2.074-1.963 3.11-3.559 3.11a2.92 2.92 0 0 1-.734-.079v-1.34c.17.042.351.064.543.064 1.032 0 1.755-.57 2.17-1.708z"}),(0,A.jsx)("path",{fill:"#5468FF",d:"M78.988.938h16.594a2.968 2.968 0 0 1 2.966 2.966V20.5a2.967 2.967 0 0 1-2.966 2.964H78.988a2.967 2.967 0 0 1-2.966-2.964V3.897A2.961 2.961 0 0 1 78.988.938z"}),(0,A.jsx)("path",{fill:"white",d:"M89.632 5.967v-.772a.978.978 0 0 0-.978-.977h-2.28a.978.978 0 0 0-.978.977v.793c0 .088.082.15.171.13a7.127 7.127 0 0 1 1.984-.28c.65 0 1.295.088 1.917.259.082.02.164-.04.164-.13m-6.248 1.01l-.39-.389a.977.977 0 0 0-1.382 0l-.465.465a.973.973 0 0 0 0 1.38l.383.383c.062.061.15.047.205-.014.226-.307.472-.601.746-.874.281-.28.568-.526.883-.751.068-.042.075-.137.02-.2m4.16 2.453v3.341c0 .096.104.165.192.117l2.97-1.537c.068-.034.089-.117.055-.184a3.695 3.695 0 0 0-3.08-1.866c-.068 0-.136.054-.136.13m0 8.048a4.489 4.489 0 0 1-4.49-4.482 4.488 4.488 0 0 1 4.49-4.482 4.488 4.488 0 0 1 4.489 4.482 4.484 4.484 0 0 1-4.49 4.482m0-10.85a6.363 6.363 0 1 0 0 12.729 6.37 6.37 0 0 0 6.372-6.368 6.358 6.358 0 0 0-6.371-6.36"})]})})})})]}),H.items.length>0?(0,A.jsx)("main",{children:H.items.map(((e,t)=>{let{title:r,url:n,summary:s,breadcrumbs:a}=e;return(0,A.jsxs)("article",{className:w.searchResultItem,children:[(0,A.jsx)(O.A,{as:"h2",className:w.searchResultItemHeading,children:(0,A.jsx)(f.A,{to:n,dangerouslySetInnerHTML:{__html:r}})}),a.length>0&&(0,A.jsx)("nav",{"aria-label":"breadcrumbs",children:(0,A.jsx)("ul",{className:(0,i.A)("breadcrumbs",w.searchResultItemPath),children:a.map(((e,t)=>(0,A.jsx)("li",{className:"breadcrumbs__item",dangerouslySetInnerHTML:{__html:e}},t)))})}),s&&(0,A.jsx)("p",{className:w.searchResultItemSummary,dangerouslySetInnerHTML:{__html:s}})]},t)}))}):[v&&!H.loading&&(0,A.jsx)("p",{children:(0,A.jsx)(P.A,{id:"theme.SearchPage.noResultsText",description:"The paragraph for empty search result",children:"No results were found"})},"no-results"),!!H.loading&&(0,A.jsx)("div",{className:w.loadingSpinner},"spinner")],H.hasMore&&(0,A.jsx)("div",{className:w.loader,ref:D,children:(0,A.jsx)(P.A,{id:"theme.SearchPage.fetchingNewResults",description:"The paragraph for fetching new search results",children:"Fetching new results..."})})]})]})}function S(){return(0,A.jsx)(b.e3,{className:"search-page-wrapper",children:(0,A.jsx)(H,{})})}}}]); \ No newline at end of file diff --git a/build/assets/js/1a4e3797.20b16744.js.LICENSE.txt b/build/assets/js/1a4e3797.20b16744.js.LICENSE.txt deleted file mode 100644 index 9caab8b19..000000000 --- a/build/assets/js/1a4e3797.20b16744.js.LICENSE.txt +++ /dev/null @@ -1 +0,0 @@ -/*! algoliasearch-lite.umd.js | 4.22.1 | © Algolia, inc. | https://github.com/algolia/algoliasearch-client-javascript */ diff --git a/build/assets/js/1a4e3797.dc00afb6.js b/build/assets/js/1a4e3797.dc00afb6.js new file mode 100644 index 000000000..14bd3decb --- /dev/null +++ b/build/assets/js/1a4e3797.dc00afb6.js @@ -0,0 +1,2 @@ +/*! For license information please see 1a4e3797.dc00afb6.js.LICENSE.txt */ +(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[2138],{8181:e=>{function t(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function r(e){return"function"==typeof e}function n(e){return"object"==typeof e&&null!==e}function i(e){return void 0===e}e.exports=t,t.prototype._events=void 0,t.prototype._maxListeners=void 0,t.defaultMaxListeners=10,t.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},t.prototype.emit=function(e){var t,s,a,c,o,u;if(this._events||(this._events={}),"error"===e&&(!this._events.error||n(this._events.error)&&!this._events.error.length)){if((t=arguments[1])instanceof Error)throw t;var h=new Error('Uncaught, unspecified "error" event. ('+t+")");throw h.context=t,h}if(i(s=this._events[e]))return!1;if(r(s))switch(arguments.length){case 1:s.call(this);break;case 2:s.call(this,arguments[1]);break;case 3:s.call(this,arguments[1],arguments[2]);break;default:c=Array.prototype.slice.call(arguments,1),s.apply(this,c)}else if(n(s))for(c=Array.prototype.slice.call(arguments,1),a=(u=s.slice()).length,o=0;o<a;o++)u[o].apply(this,c);return!0},t.prototype.addListener=function(e,s){var a;if(!r(s))throw TypeError("listener must be a function");return this._events||(this._events={}),this._events.newListener&&this.emit("newListener",e,r(s.listener)?s.listener:s),this._events[e]?n(this._events[e])?this._events[e].push(s):this._events[e]=[this._events[e],s]:this._events[e]=s,n(this._events[e])&&!this._events[e].warned&&(a=i(this._maxListeners)?t.defaultMaxListeners:this._maxListeners)&&a>0&&this._events[e].length>a&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace()),this},t.prototype.on=t.prototype.addListener,t.prototype.once=function(e,t){if(!r(t))throw TypeError("listener must be a function");var n=!1;function i(){this.removeListener(e,i),n||(n=!0,t.apply(this,arguments))}return i.listener=t,this.on(e,i),this},t.prototype.removeListener=function(e,t){var i,s,a,c;if(!r(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(a=(i=this._events[e]).length,s=-1,i===t||r(i.listener)&&i.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(n(i)){for(c=a;c-- >0;)if(i[c]===t||i[c].listener&&i[c].listener===t){s=c;break}if(s<0)return this;1===i.length?(i.length=0,delete this._events[e]):i.splice(s,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},t.prototype.removeAllListeners=function(e){var t,n;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(r(n=this._events[e]))this.removeListener(e,n);else if(n)for(;n.length;)this.removeListener(e,n[n.length-1]);return delete this._events[e],this},t.prototype.listeners=function(e){return this._events&&this._events[e]?r(this._events[e])?[this._events[e]]:this._events[e].slice():[]},t.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(r(t))return 1;if(t)return t.length}return 0},t.listenerCount=function(e,t){return e.listenerCount(t)}},8563:(e,t,r)=>{"use strict";var n=r(9719),i=r(5163),s=r(8971),a=r(4007),c=r(3183);function o(e,t,r,i){return new n(e,t,r,i)}o.version=r(4758),o.AlgoliaSearchHelper=n,o.SearchParameters=a,o.RecommendParameters=i,o.SearchResults=c,o.RecommendResults=s,e.exports=o},1691:(e,t,r)=>{"use strict";var n=r(8181);function i(e,t,r){this.main=e,this.fn=t,this.recommendFn=r,this.lastResults=null,this.lastRecommendResults=null}r(6026)(i,n),i.prototype.detach=function(){this.removeAllListeners(),this.main.detachDerivedHelper(this)},i.prototype.getModifiedState=function(e){return this.fn(e)},i.prototype.getModifiedRecommendState=function(e){return this.recommendFn(e)},e.exports=i},5163:e=>{"use strict";function t(e){e=e||{},this.params=e.params||[]}t.prototype={constructor:t,addParams:function(e){var r=this.params.slice();return r.push(e),new t({params:r})},removeParams:function(e){return new t({params:this.params.filter((function(t){return t.$$id!==e}))})},addFrequentlyBoughtTogether:function(e){return this.addParams(Object.assign({},e,{model:"bought-together"}))},addRelatedProducts:function(e){return this.addParams(Object.assign({},e,{model:"related-products"}))},addTrendingItems:function(e){return this.addParams(Object.assign({},e,{model:"trending-items"}))},addTrendingFacets:function(e){return this.addParams(Object.assign({},e,{model:"trending-facets"}))},addLookingSimilar:function(e){return this.addParams(Object.assign({},e,{model:"looking-similar"}))},_buildQueries:function(e,t){return this.params.filter((function(e){return void 0===t[e.$$id]})).map((function(t){var r=Object.assign({},t,{indexName:e,threshold:t.threshold||0});return delete r.$$id,r}))}},e.exports=t},8971:e=>{"use strict";function t(e,t){this._state=e,this._rawResults={};var r=this;e.params.forEach((function(e){var n=e.$$id;r[n]=t[n],r._rawResults[n]=t[n]}))}t.prototype={constructor:t},e.exports=t},6082:(e,t,r)=>{"use strict";var n=r(1410),i=r(9825),s=r(475),a={addRefinement:function(e,t,r){if(a.isRefined(e,t,r))return e;var i=""+r,s=e[t]?e[t].concat(i):[i],c={};return c[t]=s,n({},c,e)},removeRefinement:function(e,t,r){if(void 0===r)return a.clearRefinement(e,(function(e,r){return t===r}));var n=""+r;return a.clearRefinement(e,(function(e,r){return t===r&&n===e}))},toggleRefinement:function(e,t,r){if(void 0===r)throw new Error("toggleRefinement should be used with a value");return a.isRefined(e,t,r)?a.removeRefinement(e,t,r):a.addRefinement(e,t,r)},clearRefinement:function(e,t,r){if(void 0===t)return i(e)?{}:e;if("string"==typeof t)return s(e,[t]);if("function"==typeof t){var n=!1,a=Object.keys(e).reduce((function(i,s){var a=e[s]||[],c=a.filter((function(e){return!t(e,s,r)}));return c.length!==a.length&&(n=!0),i[s]=c,i}),{});return n?a:e}},isRefined:function(e,t,r){var n=Boolean(e[t])&&e[t].length>0;if(void 0===r||!n)return n;var i=""+r;return-1!==e[t].indexOf(i)}};e.exports=a},4007:(e,t,r)=>{"use strict";var n=r(1410),i=r(917),s=r(8175),a=r(2364),c=r(9825),o=r(475),u=r(2503),h=r(8972),f=r(6082);function l(e,t){return Array.isArray(e)&&Array.isArray(t)?e.length===t.length&&e.every((function(e,r){return l(t[r],e)})):e===t}function m(e){var t=e?m._parseNumbers(e):{};void 0===t.userToken||h(t.userToken)||console.warn("[algoliasearch-helper] The `userToken` parameter is invalid. This can lead to wrong analytics.\n - Format: [a-zA-Z0-9_-]{1,64}"),this.facets=t.facets||[],this.disjunctiveFacets=t.disjunctiveFacets||[],this.hierarchicalFacets=t.hierarchicalFacets||[],this.facetsRefinements=t.facetsRefinements||{},this.facetsExcludes=t.facetsExcludes||{},this.disjunctiveFacetsRefinements=t.disjunctiveFacetsRefinements||{},this.numericRefinements=t.numericRefinements||{},this.tagRefinements=t.tagRefinements||[],this.hierarchicalFacetsRefinements=t.hierarchicalFacetsRefinements||{};var r=this;Object.keys(t).forEach((function(e){var n=-1!==m.PARAMETERS.indexOf(e),i=void 0!==t[e];!n&&i&&(r[e]=t[e])}))}m.PARAMETERS=Object.keys(new m),m._parseNumbers=function(e){if(e instanceof m)return e;var t={};if(["aroundPrecision","aroundRadius","getRankingInfo","minWordSizefor2Typos","minWordSizefor1Typo","page","maxValuesPerFacet","distinct","minimumAroundRadius","hitsPerPage","minProximity"].forEach((function(r){var n=e[r];if("string"==typeof n){var i=parseFloat(n);t[r]=isNaN(i)?n:i}})),Array.isArray(e.insideBoundingBox)&&(t.insideBoundingBox=e.insideBoundingBox.map((function(e){return Array.isArray(e)?e.map((function(e){return parseFloat(e)})):e}))),e.numericRefinements){var r={};Object.keys(e.numericRefinements).forEach((function(t){var n=e.numericRefinements[t]||{};r[t]={},Object.keys(n).forEach((function(e){var i=n[e].map((function(e){return Array.isArray(e)?e.map((function(e){return"string"==typeof e?parseFloat(e):e})):"string"==typeof e?parseFloat(e):e}));r[t][e]=i}))})),t.numericRefinements=r}return a(e,t)},m.make=function(e){var t=new m(e);return(e.hierarchicalFacets||[]).forEach((function(e){if(e.rootPath){var r=t.getHierarchicalRefinement(e.name);r.length>0&&0!==r[0].indexOf(e.rootPath)&&(t=t.clearRefinements(e.name)),0===(r=t.getHierarchicalRefinement(e.name)).length&&(t=t.toggleHierarchicalFacetRefinement(e.name,e.rootPath))}})),t},m.validate=function(e,t){var r=t||{};return e.tagFilters&&r.tagRefinements&&r.tagRefinements.length>0?new Error("[Tags] Cannot switch from the managed tag API to the advanced API. It is probably an error, if it is really what you want, you should first clear the tags with clearTags method."):e.tagRefinements.length>0&&r.tagFilters?new Error("[Tags] Cannot switch from the advanced tag API to the managed API. It is probably an error, if it is not, you should first clear the tags with clearTags method."):e.numericFilters&&r.numericRefinements&&c(r.numericRefinements)?new Error("[Numeric filters] Can't switch from the advanced to the managed API. It is probably an error, if this is really what you want, you have to first clear the numeric filters."):c(e.numericRefinements)&&r.numericFilters?new Error("[Numeric filters] Can't switch from the managed API to the advanced. It is probably an error, if this is really what you want, you have to first clear the numeric filters."):null},m.prototype={constructor:m,clearRefinements:function(e){var t={numericRefinements:this._clearNumericRefinements(e),facetsRefinements:f.clearRefinement(this.facetsRefinements,e,"conjunctiveFacet"),facetsExcludes:f.clearRefinement(this.facetsExcludes,e,"exclude"),disjunctiveFacetsRefinements:f.clearRefinement(this.disjunctiveFacetsRefinements,e,"disjunctiveFacet"),hierarchicalFacetsRefinements:f.clearRefinement(this.hierarchicalFacetsRefinements,e,"hierarchicalFacet")};return t.numericRefinements===this.numericRefinements&&t.facetsRefinements===this.facetsRefinements&&t.facetsExcludes===this.facetsExcludes&&t.disjunctiveFacetsRefinements===this.disjunctiveFacetsRefinements&&t.hierarchicalFacetsRefinements===this.hierarchicalFacetsRefinements?this:this.setQueryParameters(t)},clearTags:function(){return void 0===this.tagFilters&&0===this.tagRefinements.length?this:this.setQueryParameters({tagFilters:void 0,tagRefinements:[]})},setIndex:function(e){return e===this.index?this:this.setQueryParameters({index:e})},setQuery:function(e){return e===this.query?this:this.setQueryParameters({query:e})},setPage:function(e){return e===this.page?this:this.setQueryParameters({page:e})},setFacets:function(e){return this.setQueryParameters({facets:e})},setDisjunctiveFacets:function(e){return this.setQueryParameters({disjunctiveFacets:e})},setHitsPerPage:function(e){return this.hitsPerPage===e?this:this.setQueryParameters({hitsPerPage:e})},setTypoTolerance:function(e){return this.typoTolerance===e?this:this.setQueryParameters({typoTolerance:e})},addNumericRefinement:function(e,t,r){var n=u(r);if(this.isNumericRefined(e,t,n))return this;var i=a({},this.numericRefinements);return i[e]=a({},i[e]),i[e][t]?(i[e][t]=i[e][t].slice(),i[e][t].push(n)):i[e][t]=[n],this.setQueryParameters({numericRefinements:i})},getConjunctiveRefinements:function(e){return this.isConjunctiveFacet(e)&&this.facetsRefinements[e]||[]},getDisjunctiveRefinements:function(e){return this.isDisjunctiveFacet(e)&&this.disjunctiveFacetsRefinements[e]||[]},getHierarchicalRefinement:function(e){return this.hierarchicalFacetsRefinements[e]||[]},getExcludeRefinements:function(e){return this.isConjunctiveFacet(e)&&this.facetsExcludes[e]||[]},removeNumericRefinement:function(e,t,r){var n=r;return void 0!==n?this.isNumericRefined(e,t,n)?this.setQueryParameters({numericRefinements:this._clearNumericRefinements((function(r,i){return i===e&&r.op===t&&l(r.val,u(n))}))}):this:void 0!==t?this.isNumericRefined(e,t)?this.setQueryParameters({numericRefinements:this._clearNumericRefinements((function(r,n){return n===e&&r.op===t}))}):this:this.isNumericRefined(e)?this.setQueryParameters({numericRefinements:this._clearNumericRefinements((function(t,r){return r===e}))}):this},getNumericRefinements:function(e){return this.numericRefinements[e]||{}},getNumericRefinement:function(e,t){return this.numericRefinements[e]&&this.numericRefinements[e][t]},_clearNumericRefinements:function(e){if(void 0===e)return c(this.numericRefinements)?{}:this.numericRefinements;if("string"==typeof e)return o(this.numericRefinements,[e]);if("function"==typeof e){var t=!1,r=this.numericRefinements,n=Object.keys(r).reduce((function(n,i){var s=r[i],a={};return s=s||{},Object.keys(s).forEach((function(r){var n=s[r]||[],c=[];n.forEach((function(t){e({val:t,op:r},i,"numeric")||c.push(t)})),c.length!==n.length&&(t=!0),a[r]=c})),n[i]=a,n}),{});return t?n:this.numericRefinements}},addFacet:function(e){return this.isConjunctiveFacet(e)?this:this.setQueryParameters({facets:this.facets.concat([e])})},addDisjunctiveFacet:function(e){return this.isDisjunctiveFacet(e)?this:this.setQueryParameters({disjunctiveFacets:this.disjunctiveFacets.concat([e])})},addHierarchicalFacet:function(e){if(this.isHierarchicalFacet(e.name))throw new Error("Cannot declare two hierarchical facets with the same name: `"+e.name+"`");return this.setQueryParameters({hierarchicalFacets:this.hierarchicalFacets.concat([e])})},addFacetRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return f.isRefined(this.facetsRefinements,e,t)?this:this.setQueryParameters({facetsRefinements:f.addRefinement(this.facetsRefinements,e,t)})},addExcludeRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return f.isRefined(this.facetsExcludes,e,t)?this:this.setQueryParameters({facetsExcludes:f.addRefinement(this.facetsExcludes,e,t)})},addDisjunctiveFacetRefinement:function(e,t){if(!this.isDisjunctiveFacet(e))throw new Error(e+" is not defined in the disjunctiveFacets attribute of the helper configuration");return f.isRefined(this.disjunctiveFacetsRefinements,e,t)?this:this.setQueryParameters({disjunctiveFacetsRefinements:f.addRefinement(this.disjunctiveFacetsRefinements,e,t)})},addTagRefinement:function(e){if(this.isTagRefined(e))return this;var t={tagRefinements:this.tagRefinements.concat(e)};return this.setQueryParameters(t)},removeFacet:function(e){return this.isConjunctiveFacet(e)?this.clearRefinements(e).setQueryParameters({facets:this.facets.filter((function(t){return t!==e}))}):this},removeDisjunctiveFacet:function(e){return this.isDisjunctiveFacet(e)?this.clearRefinements(e).setQueryParameters({disjunctiveFacets:this.disjunctiveFacets.filter((function(t){return t!==e}))}):this},removeHierarchicalFacet:function(e){return this.isHierarchicalFacet(e)?this.clearRefinements(e).setQueryParameters({hierarchicalFacets:this.hierarchicalFacets.filter((function(t){return t.name!==e}))}):this},removeFacetRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return f.isRefined(this.facetsRefinements,e,t)?this.setQueryParameters({facetsRefinements:f.removeRefinement(this.facetsRefinements,e,t)}):this},removeExcludeRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return f.isRefined(this.facetsExcludes,e,t)?this.setQueryParameters({facetsExcludes:f.removeRefinement(this.facetsExcludes,e,t)}):this},removeDisjunctiveFacetRefinement:function(e,t){if(!this.isDisjunctiveFacet(e))throw new Error(e+" is not defined in the disjunctiveFacets attribute of the helper configuration");return f.isRefined(this.disjunctiveFacetsRefinements,e,t)?this.setQueryParameters({disjunctiveFacetsRefinements:f.removeRefinement(this.disjunctiveFacetsRefinements,e,t)}):this},removeTagRefinement:function(e){if(!this.isTagRefined(e))return this;var t={tagRefinements:this.tagRefinements.filter((function(t){return t!==e}))};return this.setQueryParameters(t)},toggleRefinement:function(e,t){return this.toggleFacetRefinement(e,t)},toggleFacetRefinement:function(e,t){if(this.isHierarchicalFacet(e))return this.toggleHierarchicalFacetRefinement(e,t);if(this.isConjunctiveFacet(e))return this.toggleConjunctiveFacetRefinement(e,t);if(this.isDisjunctiveFacet(e))return this.toggleDisjunctiveFacetRefinement(e,t);throw new Error("Cannot refine the undeclared facet "+e+"; it should be added to the helper options facets, disjunctiveFacets or hierarchicalFacets")},toggleConjunctiveFacetRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return this.setQueryParameters({facetsRefinements:f.toggleRefinement(this.facetsRefinements,e,t)})},toggleExcludeFacetRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return this.setQueryParameters({facetsExcludes:f.toggleRefinement(this.facetsExcludes,e,t)})},toggleDisjunctiveFacetRefinement:function(e,t){if(!this.isDisjunctiveFacet(e))throw new Error(e+" is not defined in the disjunctiveFacets attribute of the helper configuration");return this.setQueryParameters({disjunctiveFacetsRefinements:f.toggleRefinement(this.disjunctiveFacetsRefinements,e,t)})},toggleHierarchicalFacetRefinement:function(e,t){if(!this.isHierarchicalFacet(e))throw new Error(e+" is not defined in the hierarchicalFacets attribute of the helper configuration");var r=this._getHierarchicalFacetSeparator(this.getHierarchicalFacetByName(e)),i={};return void 0!==this.hierarchicalFacetsRefinements[e]&&this.hierarchicalFacetsRefinements[e].length>0&&(this.hierarchicalFacetsRefinements[e][0]===t||0===this.hierarchicalFacetsRefinements[e][0].indexOf(t+r))?-1===t.indexOf(r)?i[e]=[]:i[e]=[t.slice(0,t.lastIndexOf(r))]:i[e]=[t],this.setQueryParameters({hierarchicalFacetsRefinements:n({},i,this.hierarchicalFacetsRefinements)})},addHierarchicalFacetRefinement:function(e,t){if(this.isHierarchicalFacetRefined(e))throw new Error(e+" is already refined.");if(!this.isHierarchicalFacet(e))throw new Error(e+" is not defined in the hierarchicalFacets attribute of the helper configuration.");var r={};return r[e]=[t],this.setQueryParameters({hierarchicalFacetsRefinements:n({},r,this.hierarchicalFacetsRefinements)})},removeHierarchicalFacetRefinement:function(e){if(!this.isHierarchicalFacetRefined(e))return this;var t={};return t[e]=[],this.setQueryParameters({hierarchicalFacetsRefinements:n({},t,this.hierarchicalFacetsRefinements)})},toggleTagRefinement:function(e){return this.isTagRefined(e)?this.removeTagRefinement(e):this.addTagRefinement(e)},isDisjunctiveFacet:function(e){return this.disjunctiveFacets.indexOf(e)>-1},isHierarchicalFacet:function(e){return void 0!==this.getHierarchicalFacetByName(e)},isConjunctiveFacet:function(e){return this.facets.indexOf(e)>-1},isFacetRefined:function(e,t){return!!this.isConjunctiveFacet(e)&&f.isRefined(this.facetsRefinements,e,t)},isExcludeRefined:function(e,t){return!!this.isConjunctiveFacet(e)&&f.isRefined(this.facetsExcludes,e,t)},isDisjunctiveFacetRefined:function(e,t){return!!this.isDisjunctiveFacet(e)&&f.isRefined(this.disjunctiveFacetsRefinements,e,t)},isHierarchicalFacetRefined:function(e,t){if(!this.isHierarchicalFacet(e))return!1;var r=this.getHierarchicalRefinement(e);return t?-1!==r.indexOf(t):r.length>0},isNumericRefined:function(e,t,r){if(void 0===r&&void 0===t)return Boolean(this.numericRefinements[e]);var n=this.numericRefinements[e]&&void 0!==this.numericRefinements[e][t];if(void 0===r||!n)return n;var s,a,c=u(r),o=void 0!==(s=this.numericRefinements[e][t],a=c,i(s,(function(e){return l(e,a)})));return n&&o},isTagRefined:function(e){return-1!==this.tagRefinements.indexOf(e)},getRefinedDisjunctiveFacets:function(){var e=this,t=s(Object.keys(this.numericRefinements).filter((function(t){return Object.keys(e.numericRefinements[t]).length>0})),this.disjunctiveFacets);return Object.keys(this.disjunctiveFacetsRefinements).filter((function(t){return e.disjunctiveFacetsRefinements[t].length>0})).concat(t).concat(this.getRefinedHierarchicalFacets()).sort()},getRefinedHierarchicalFacets:function(){var e=this;return s(this.hierarchicalFacets.map((function(e){return e.name})),Object.keys(this.hierarchicalFacetsRefinements).filter((function(t){return e.hierarchicalFacetsRefinements[t].length>0}))).sort()},getUnrefinedDisjunctiveFacets:function(){var e=this.getRefinedDisjunctiveFacets();return this.disjunctiveFacets.filter((function(t){return-1===e.indexOf(t)}))},managedParameters:["index","facets","disjunctiveFacets","facetsRefinements","hierarchicalFacets","facetsExcludes","disjunctiveFacetsRefinements","numericRefinements","tagRefinements","hierarchicalFacetsRefinements"],getQueryParams:function(){var e=this.managedParameters,t={},r=this;return Object.keys(this).forEach((function(n){var i=r[n];-1===e.indexOf(n)&&void 0!==i&&(t[n]=i)})),t},setQueryParameter:function(e,t){if(this[e]===t)return this;var r={};return r[e]=t,this.setQueryParameters(r)},setQueryParameters:function(e){if(!e)return this;var t=m.validate(this,e);if(t)throw t;var r=this,n=m._parseNumbers(e),i=Object.keys(this).reduce((function(e,t){return e[t]=r[t],e}),{}),s=Object.keys(n).reduce((function(e,t){var r=void 0!==e[t],i=void 0!==n[t];return r&&!i?o(e,[t]):(i&&(e[t]=n[t]),e)}),i);return new this.constructor(s)},resetPage:function(){return void 0===this.page?this:this.setPage(0)},_getHierarchicalFacetSortBy:function(e){return e.sortBy||["isRefined:desc","name:asc"]},_getHierarchicalFacetSeparator:function(e){return e.separator||" > "},_getHierarchicalRootPath:function(e){return e.rootPath||null},_getHierarchicalShowParentLevel:function(e){return"boolean"!=typeof e.showParentLevel||e.showParentLevel},getHierarchicalFacetByName:function(e){return i(this.hierarchicalFacets,(function(t){return t.name===e}))},getHierarchicalFacetBreadcrumb:function(e){if(!this.isHierarchicalFacet(e))return[];var t=this.getHierarchicalRefinement(e)[0];if(!t)return[];var r=this._getHierarchicalFacetSeparator(this.getHierarchicalFacetByName(e));return t.split(r).map((function(e){return e.trim()}))},toString:function(){return JSON.stringify(this,null,2)}},e.exports=m},1101:(e,t,r)=>{"use strict";e.exports=function(e){return function(t,r){var n=e.hierarchicalFacets[r],u=e.hierarchicalFacetsRefinements[n.name]&&e.hierarchicalFacetsRefinements[n.name][0]||"",h=e._getHierarchicalFacetSeparator(n),f=e._getHierarchicalRootPath(n),l=e._getHierarchicalShowParentLevel(n),m=s(e._getHierarchicalFacetSortBy(n)),d=t.every((function(e){return e.exhaustive})),p=function(e,t,r,n,s){return function(u,h,f){var l=u;if(f>0){var m=0;for(l=u;m<f;){var d=l&&Array.isArray(l.data)?l.data:[];l=i(d,(function(e){return e.isRefined})),m++}}if(l){var p=Object.keys(h.data).map((function(e){return[e,h.data[e]]})).filter((function(e){return function(e,t,r,n,i,s){if(i&&(0!==e.indexOf(i)||i===e))return!1;return!i&&-1===e.indexOf(n)||i&&e.split(n).length-i.split(n).length==1||-1===e.indexOf(n)&&-1===r.indexOf(n)||0===r.indexOf(e)||0===e.indexOf(t+n)&&(s||0===e.indexOf(r))}(e[0],l.path||r,s,t,r,n)}));l.data=a(p.map((function(e){var r=e[0];return function(e,t,r,n,i){var s=t.split(r);return{name:s[s.length-1].trim(),path:t,escapedValue:c(t),count:e,isRefined:n===t||0===n.indexOf(t+r),exhaustive:i,data:null}}(e[1],r,t,o(s),h.exhaustive)})),e[0],e[1])}return u}}(m,h,f,l,u),g=t;return f&&(g=t.slice(f.split(h).length)),g.reduce(p,{name:e.hierarchicalFacets[r].name,count:null,isRefined:!0,path:null,escapedValue:null,exhaustive:d,data:null})}};var n=r(5473),i=r(917),s=r(3861),a=r(2965),c=n.escapeFacetValue,o=n.unescapeFacetValue},3183:(e,t,r)=>{"use strict";var n=r(8001),i=r(1410),s=r(5473),a=r(917),c=r(7009),o=r(3861),u=r(2364),h=r(2965),f=s.escapeFacetValue,l=s.unescapeFacetValue,m=r(1101);function d(e){var t={};return e.forEach((function(e,r){t[e]=r})),t}function p(e,t,r){t&&t[r]&&(e.stats=t[r])}function g(e,t,r){var s=t[0]||{};this._rawResults=t;var o=this;Object.keys(s).forEach((function(e){o[e]=s[e]}));var h=u({persistHierarchicalRootCount:!1},r);Object.keys(h).forEach((function(e){o[e]=h[e]})),this.processingTimeMS=t.reduce((function(e,t){return void 0===t.processingTimeMS?e:e+t.processingTimeMS}),0),this.disjunctiveFacets=[],this.hierarchicalFacets=e.hierarchicalFacets.map((function(){return[]})),this.facets=[];var f=e.getRefinedDisjunctiveFacets(),g=d(e.facets),v=d(e.disjunctiveFacets),y=1,R=s.facets||{};Object.keys(R).forEach((function(t){var r,n,i=R[t],u=(r=e.hierarchicalFacets,n=t,a(r,(function(e){return(e.attributes||[]).indexOf(n)>-1})));if(u){var h=u.attributes.indexOf(t),f=c(e.hierarchicalFacets,(function(e){return e.name===u.name}));o.hierarchicalFacets[f][h]={attribute:t,data:i,exhaustive:s.exhaustiveFacetsCount}}else{var l,m=-1!==e.disjunctiveFacets.indexOf(t),d=-1!==e.facets.indexOf(t);m&&(l=v[t],o.disjunctiveFacets[l]={name:t,data:i,exhaustive:s.exhaustiveFacetsCount},p(o.disjunctiveFacets[l],s.facets_stats,t)),d&&(l=g[t],o.facets[l]={name:t,data:i,exhaustive:s.exhaustiveFacetsCount},p(o.facets[l],s.facets_stats,t))}})),this.hierarchicalFacets=n(this.hierarchicalFacets),f.forEach((function(r){var n=t[y],a=n&&n.facets?n.facets:{},h=e.getHierarchicalFacetByName(r);Object.keys(a).forEach((function(t){var r,f=a[t];if(h){r=c(e.hierarchicalFacets,(function(e){return e.name===h.name}));var m=c(o.hierarchicalFacets[r],(function(e){return e.attribute===t}));if(-1===m)return;o.hierarchicalFacets[r][m].data=u({},o.hierarchicalFacets[r][m].data,f)}else{r=v[t];var d=s.facets&&s.facets[t]||{};o.disjunctiveFacets[r]={name:t,data:i({},f,d),exhaustive:n.exhaustiveFacetsCount},p(o.disjunctiveFacets[r],n.facets_stats,t),e.disjunctiveFacetsRefinements[t]&&e.disjunctiveFacetsRefinements[t].forEach((function(n){!o.disjunctiveFacets[r].data[n]&&e.disjunctiveFacetsRefinements[t].indexOf(l(n))>-1&&(o.disjunctiveFacets[r].data[n]=0)}))}})),y++})),e.getRefinedHierarchicalFacets().forEach((function(r){var n=e.getHierarchicalFacetByName(r),s=e._getHierarchicalFacetSeparator(n),a=e.getHierarchicalRefinement(r);0===a.length||a[0].split(s).length<2||t.slice(y).forEach((function(t){var r=t&&t.facets?t.facets:{};Object.keys(r).forEach((function(t){var u=r[t],h=c(e.hierarchicalFacets,(function(e){return e.name===n.name})),f=c(o.hierarchicalFacets[h],(function(e){return e.attribute===t}));if(-1!==f){var l={};if(a.length>0&&!o.persistHierarchicalRootCount){var m=a[0].split(s)[0];l[m]=o.hierarchicalFacets[h][f].data[m]}o.hierarchicalFacets[h][f].data=i(l,u,o.hierarchicalFacets[h][f].data)}})),y++}))})),Object.keys(e.facetsExcludes).forEach((function(t){var r=e.facetsExcludes[t],n=g[t];o.facets[n]={name:t,data:R[t],exhaustive:s.exhaustiveFacetsCount},r.forEach((function(e){o.facets[n]=o.facets[n]||{name:t},o.facets[n].data=o.facets[n].data||{},o.facets[n].data[e]=0}))})),this.hierarchicalFacets=this.hierarchicalFacets.map(m(e)),this.facets=n(this.facets),this.disjunctiveFacets=n(this.disjunctiveFacets),this._state=e}function v(e,t){function r(e){return e.name===t}if(e._state.isConjunctiveFacet(t)){var n=a(e.facets,r);return n?Object.keys(n.data).map((function(r){var i=f(r);return{name:r,escapedValue:i,count:n.data[r],isRefined:e._state.isFacetRefined(t,i),isExcluded:e._state.isExcludeRefined(t,r)}})):[]}if(e._state.isDisjunctiveFacet(t)){var i=a(e.disjunctiveFacets,r);return i?Object.keys(i.data).map((function(r){var n=f(r);return{name:r,escapedValue:n,count:i.data[r],isRefined:e._state.isDisjunctiveFacetRefined(t,n)}})):[]}if(e._state.isHierarchicalFacet(t)){var s=a(e.hierarchicalFacets,r);if(!s)return s;var c=e._state.getHierarchicalFacetByName(t),o=e._state._getHierarchicalFacetSeparator(c),u=l(e._state.getHierarchicalRefinement(t)[0]||"");0===u.indexOf(c.rootPath)&&(u=u.replace(c.rootPath+o,""));var h=u.split(o);return h.unshift(t),y(s,h,0),s}}function y(e,t,r){e.isRefined=e.name===(t[r]&&t[r].trim()),e.data&&e.data.forEach((function(e){y(e,t,r+1)}))}function R(e,t,r,n){if(n=n||0,Array.isArray(t))return e(t,r[n]);if(!t.data||0===t.data.length)return t;var s=t.data.map((function(t){return R(e,t,r,n+1)})),a=e(s,r[n]);return i({data:a},t)}function F(e,t){var r=a(e,(function(e){return e.name===t}));return r&&r.stats}function b(e,t,r,n,i){var s=a(i,(function(e){return e.name===r})),c=s&&s.data&&s.data[n]?s.data[n]:0,o=s&&s.exhaustive||!1;return{type:t,attributeName:r,name:n,count:c,exhaustive:o}}g.prototype.getFacetByName=function(e){function t(t){return t.name===e}return a(this.facets,t)||a(this.disjunctiveFacets,t)||a(this.hierarchicalFacets,t)},g.DEFAULT_SORT=["isRefined:desc","count:desc","name:asc"],g.prototype.getFacetValues=function(e,t){var r=v(this,e);if(r){var n,s=i({},t,{sortBy:g.DEFAULT_SORT,facetOrdering:!(t&&t.sortBy)}),a=this;if(Array.isArray(r))n=[e];else n=a._state.getHierarchicalFacetByName(r.name).attributes;return R((function(e,t){if(s.facetOrdering){var r=function(e,t){return e.renderingContent&&e.renderingContent.facetOrdering&&e.renderingContent.facetOrdering.values&&e.renderingContent.facetOrdering.values[t]}(a,t);if(r)return function(e,t){var r=[],n=[],i=t.hide||[],s=(t.order||[]).reduce((function(e,t,r){return e[t]=r,e}),{});e.forEach((function(e){var t=e.path||e.name,a=i.indexOf(t)>-1;a||void 0===s[t]?a||n.push(e):r[s[t]]=e})),r=r.filter((function(e){return e}));var a,c=t.sortRemainingBy;return"hidden"===c?r:(a="alpha"===c?[["path","name"],["asc","asc"]]:[["count"],["desc"]],r.concat(h(n,a[0],a[1])))}(e,r)}if(Array.isArray(s.sortBy)){var n=o(s.sortBy,g.DEFAULT_SORT);return h(e,n[0],n[1])}if("function"==typeof s.sortBy)return function(e,t){return t.sort(e)}(s.sortBy,e);throw new Error("options.sortBy is optional but if defined it must be either an array of string (predicates) or a sorting function")}),r,n)}},g.prototype.getFacetStats=function(e){return this._state.isConjunctiveFacet(e)?F(this.facets,e):this._state.isDisjunctiveFacet(e)?F(this.disjunctiveFacets,e):void 0},g.prototype.getRefinements=function(){var e=this._state,t=this,r=[];return Object.keys(e.facetsRefinements).forEach((function(n){e.facetsRefinements[n].forEach((function(i){r.push(b(e,"facet",n,i,t.facets))}))})),Object.keys(e.facetsExcludes).forEach((function(n){e.facetsExcludes[n].forEach((function(i){r.push(b(e,"exclude",n,i,t.facets))}))})),Object.keys(e.disjunctiveFacetsRefinements).forEach((function(n){e.disjunctiveFacetsRefinements[n].forEach((function(i){r.push(b(e,"disjunctive",n,i,t.disjunctiveFacets))}))})),Object.keys(e.hierarchicalFacetsRefinements).forEach((function(n){e.hierarchicalFacetsRefinements[n].forEach((function(i){r.push(function(e,t,r,n){var i=e.getHierarchicalFacetByName(t),s=e._getHierarchicalFacetSeparator(i),c=r.split(s),o=a(n,(function(e){return e.name===t})),u=c.reduce((function(e,t){var r=e&&a(e.data,(function(e){return e.name===t}));return void 0!==r?r:e}),o),h=u&&u.count||0,f=u&&u.exhaustive||!1,l=u&&u.path||"";return{type:"hierarchical",attributeName:t,name:l,count:h,exhaustive:f}}(e,n,i,t.hierarchicalFacets))}))})),Object.keys(e.numericRefinements).forEach((function(t){var n=e.numericRefinements[t];Object.keys(n).forEach((function(e){n[e].forEach((function(n){r.push({type:"numeric",attributeName:t,name:n,numericValue:n,operator:e})}))}))})),e.tagRefinements.forEach((function(e){r.push({type:"tag",attributeName:"_tags",name:e})})),r},e.exports=g},9719:(e,t,r)=>{"use strict";var n=r(8181),i=r(1691),s=r(5473).escapeFacetValue,a=r(6026),c=r(2364),o=r(9825),u=r(475),h=r(5163),f=r(8971),l=r(8144),m=r(4007),d=r(3183),p=r(5249),g=r(4758);function v(e,t,r,n){"function"==typeof e.addAlgoliaAgent&&e.addAlgoliaAgent("JS Helper ("+g+")"),this.setClient(e);var i=r||{};i.index=t,this.state=m.make(i),this.recommendState=new h({params:i.recommendState}),this.lastResults=null,this.lastRecommendResults=null,this._queryId=0,this._recommendQueryId=0,this._lastQueryIdReceived=-1,this._lastRecommendQueryIdReceived=-1,this.derivedHelpers=[],this._currentNbQueries=0,this._currentNbRecommendQueries=0,this._searchResultsOptions=n,this._recommendCache={}}function y(e){if(e<0)throw new Error("Page requested below 0.");return this._change({state:this.state.setPage(e),isPageReset:!1}),this}function R(){return this.state.page}a(v,n),v.prototype.search=function(){return this._search({onlyWithDerivedHelpers:!1}),this},v.prototype.searchOnlyWithDerivedHelpers=function(){return this._search({onlyWithDerivedHelpers:!0}),this},v.prototype.recommend=function(){return this._recommend(),this},v.prototype.getQuery=function(){var e=this.state;return l._getHitsSearchParams(e)},v.prototype.searchOnce=function(e,t){var r=e?this.state.setQueryParameters(e):this.state,n=l._getQueries(r.index,r),i=this;if(this._currentNbQueries++,this.emit("searchOnce",{state:r}),!t)return this.client.search(n).then((function(e){return i._currentNbQueries--,0===i._currentNbQueries&&i.emit("searchQueueEmpty"),{content:new d(r,e.results),state:r,_originalResponse:e}}),(function(e){throw i._currentNbQueries--,0===i._currentNbQueries&&i.emit("searchQueueEmpty"),e}));this.client.search(n).then((function(e){i._currentNbQueries--,0===i._currentNbQueries&&i.emit("searchQueueEmpty"),t(null,new d(r,e.results),r)})).catch((function(e){i._currentNbQueries--,0===i._currentNbQueries&&i.emit("searchQueueEmpty"),t(e,null,r)}))},v.prototype.findAnswers=function(e){console.warn("[algoliasearch-helper] answers is no longer supported");var t=this.state,r=this.derivedHelpers[0];if(!r)return Promise.resolve([]);var n=r.getModifiedState(t),i=c({attributesForPrediction:e.attributesForPrediction,nbHits:e.nbHits},{params:u(l._getHitsSearchParams(n),["attributesToSnippet","hitsPerPage","restrictSearchableAttributes","snippetEllipsisText"])}),s="search for answers was called, but this client does not have a function client.initIndex(index).findAnswers";if("function"!=typeof this.client.initIndex)throw new Error(s);var a=this.client.initIndex(n.index);if("function"!=typeof a.findAnswers)throw new Error(s);return a.findAnswers(n.query,e.queryLanguages,i)},v.prototype.searchForFacetValues=function(e,t,r,n){var i="function"==typeof this.client.searchForFacetValues&&"function"!=typeof this.client.searchForFacets,a="function"==typeof this.client.initIndex;if(!i&&!a&&"function"!=typeof this.client.search)throw new Error("search for facet values (searchable) was called, but this client does not have a function client.searchForFacetValues or client.initIndex(index).searchForFacetValues");var c=this.state.setQueryParameters(n||{}),o=c.isDisjunctiveFacet(e),u=l.getSearchForFacetQuery(e,t,r,c);this._currentNbQueries++;var h,f=this;return i?h=this.client.searchForFacetValues([{indexName:c.index,params:u}]):a?h=this.client.initIndex(c.index).searchForFacetValues(u):(delete u.facetName,h=this.client.search([{type:"facet",facet:e,indexName:c.index,params:u}]).then((function(e){return e.results[0]}))),this.emit("searchForFacetValues",{state:c,facet:e,query:t}),h.then((function(t){return f._currentNbQueries--,0===f._currentNbQueries&&f.emit("searchQueueEmpty"),(t=Array.isArray(t)?t[0]:t).facetHits.forEach((function(t){t.escapedValue=s(t.value),t.isRefined=o?c.isDisjunctiveFacetRefined(e,t.escapedValue):c.isFacetRefined(e,t.escapedValue)})),t}),(function(e){throw f._currentNbQueries--,0===f._currentNbQueries&&f.emit("searchQueueEmpty"),e}))},v.prototype.setQuery=function(e){return this._change({state:this.state.resetPage().setQuery(e),isPageReset:!0}),this},v.prototype.clearRefinements=function(e){return this._change({state:this.state.resetPage().clearRefinements(e),isPageReset:!0}),this},v.prototype.clearTags=function(){return this._change({state:this.state.resetPage().clearTags(),isPageReset:!0}),this},v.prototype.addDisjunctiveFacetRefinement=function(e,t){return this._change({state:this.state.resetPage().addDisjunctiveFacetRefinement(e,t),isPageReset:!0}),this},v.prototype.addDisjunctiveRefine=function(){return this.addDisjunctiveFacetRefinement.apply(this,arguments)},v.prototype.addHierarchicalFacetRefinement=function(e,t){return this._change({state:this.state.resetPage().addHierarchicalFacetRefinement(e,t),isPageReset:!0}),this},v.prototype.addNumericRefinement=function(e,t,r){return this._change({state:this.state.resetPage().addNumericRefinement(e,t,r),isPageReset:!0}),this},v.prototype.addFacetRefinement=function(e,t){return this._change({state:this.state.resetPage().addFacetRefinement(e,t),isPageReset:!0}),this},v.prototype.addRefine=function(){return this.addFacetRefinement.apply(this,arguments)},v.prototype.addFacetExclusion=function(e,t){return this._change({state:this.state.resetPage().addExcludeRefinement(e,t),isPageReset:!0}),this},v.prototype.addExclude=function(){return this.addFacetExclusion.apply(this,arguments)},v.prototype.addTag=function(e){return this._change({state:this.state.resetPage().addTagRefinement(e),isPageReset:!0}),this},v.prototype.addFrequentlyBoughtTogether=function(e){return this._recommendChange({state:this.recommendState.addFrequentlyBoughtTogether(e)}),this},v.prototype.addRelatedProducts=function(e){return this._recommendChange({state:this.recommendState.addRelatedProducts(e)}),this},v.prototype.addTrendingItems=function(e){return this._recommendChange({state:this.recommendState.addTrendingItems(e)}),this},v.prototype.addTrendingFacets=function(e){return this._recommendChange({state:this.recommendState.addTrendingFacets(e)}),this},v.prototype.addLookingSimilar=function(e){return this._recommendChange({state:this.recommendState.addLookingSimilar(e)}),this},v.prototype.removeNumericRefinement=function(e,t,r){return this._change({state:this.state.resetPage().removeNumericRefinement(e,t,r),isPageReset:!0}),this},v.prototype.removeDisjunctiveFacetRefinement=function(e,t){return this._change({state:this.state.resetPage().removeDisjunctiveFacetRefinement(e,t),isPageReset:!0}),this},v.prototype.removeDisjunctiveRefine=function(){return this.removeDisjunctiveFacetRefinement.apply(this,arguments)},v.prototype.removeHierarchicalFacetRefinement=function(e){return this._change({state:this.state.resetPage().removeHierarchicalFacetRefinement(e),isPageReset:!0}),this},v.prototype.removeFacetRefinement=function(e,t){return this._change({state:this.state.resetPage().removeFacetRefinement(e,t),isPageReset:!0}),this},v.prototype.removeRefine=function(){return this.removeFacetRefinement.apply(this,arguments)},v.prototype.removeFacetExclusion=function(e,t){return this._change({state:this.state.resetPage().removeExcludeRefinement(e,t),isPageReset:!0}),this},v.prototype.removeExclude=function(){return this.removeFacetExclusion.apply(this,arguments)},v.prototype.removeTag=function(e){return this._change({state:this.state.resetPage().removeTagRefinement(e),isPageReset:!0}),this},v.prototype.removeFrequentlyBoughtTogether=function(e){return this._recommendChange({state:this.recommendState.removeParams(e)}),this},v.prototype.removeRelatedProducts=function(e){return this._recommendChange({state:this.recommendState.removeParams(e)}),this},v.prototype.removeTrendingItems=function(e){return this._recommendChange({state:this.recommendState.removeParams(e)}),this},v.prototype.removeTrendingFacets=function(e){return this._recommendChange({state:this.recommendState.removeParams(e)}),this},v.prototype.removeLookingSimilar=function(e){return this._recommendChange({state:this.recommendState.removeParams(e)}),this},v.prototype.toggleFacetExclusion=function(e,t){return this._change({state:this.state.resetPage().toggleExcludeFacetRefinement(e,t),isPageReset:!0}),this},v.prototype.toggleExclude=function(){return this.toggleFacetExclusion.apply(this,arguments)},v.prototype.toggleRefinement=function(e,t){return this.toggleFacetRefinement(e,t)},v.prototype.toggleFacetRefinement=function(e,t){return this._change({state:this.state.resetPage().toggleFacetRefinement(e,t),isPageReset:!0}),this},v.prototype.toggleRefine=function(){return this.toggleFacetRefinement.apply(this,arguments)},v.prototype.toggleTag=function(e){return this._change({state:this.state.resetPage().toggleTagRefinement(e),isPageReset:!0}),this},v.prototype.nextPage=function(){var e=this.state.page||0;return this.setPage(e+1)},v.prototype.previousPage=function(){var e=this.state.page||0;return this.setPage(e-1)},v.prototype.setCurrentPage=y,v.prototype.setPage=y,v.prototype.setIndex=function(e){return this._change({state:this.state.resetPage().setIndex(e),isPageReset:!0}),this},v.prototype.setQueryParameter=function(e,t){return this._change({state:this.state.resetPage().setQueryParameter(e,t),isPageReset:!0}),this},v.prototype.setState=function(e){return this._change({state:m.make(e),isPageReset:!1}),this},v.prototype.overrideStateWithoutTriggeringChangeEvent=function(e){return this.state=new m(e),this},v.prototype.hasRefinements=function(e){return!!o(this.state.getNumericRefinements(e))||(this.state.isConjunctiveFacet(e)?this.state.isFacetRefined(e):this.state.isDisjunctiveFacet(e)?this.state.isDisjunctiveFacetRefined(e):!!this.state.isHierarchicalFacet(e)&&this.state.isHierarchicalFacetRefined(e))},v.prototype.isExcluded=function(e,t){return this.state.isExcludeRefined(e,t)},v.prototype.isDisjunctiveRefined=function(e,t){return this.state.isDisjunctiveFacetRefined(e,t)},v.prototype.hasTag=function(e){return this.state.isTagRefined(e)},v.prototype.isTagRefined=function(){return this.hasTagRefinements.apply(this,arguments)},v.prototype.getIndex=function(){return this.state.index},v.prototype.getCurrentPage=R,v.prototype.getPage=R,v.prototype.getTags=function(){return this.state.tagRefinements},v.prototype.getRefinements=function(e){var t=[];if(this.state.isConjunctiveFacet(e))this.state.getConjunctiveRefinements(e).forEach((function(e){t.push({value:e,type:"conjunctive"})})),this.state.getExcludeRefinements(e).forEach((function(e){t.push({value:e,type:"exclude"})}));else if(this.state.isDisjunctiveFacet(e)){this.state.getDisjunctiveRefinements(e).forEach((function(e){t.push({value:e,type:"disjunctive"})}))}var r=this.state.getNumericRefinements(e);return Object.keys(r).forEach((function(e){var n=r[e];t.push({value:n,operator:e,type:"numeric"})})),t},v.prototype.getNumericRefinement=function(e,t){return this.state.getNumericRefinement(e,t)},v.prototype.getHierarchicalFacetBreadcrumb=function(e){return this.state.getHierarchicalFacetBreadcrumb(e)},v.prototype._search=function(e){var t=this.state,r=[],n=[];e.onlyWithDerivedHelpers||(n=l._getQueries(t.index,t),r.push({state:t,queriesCount:n.length,helper:this}),this.emit("search",{state:t,results:this.lastResults}));var i=this.derivedHelpers.map((function(e){var n=e.getModifiedState(t),i=n.index?l._getQueries(n.index,n):[];return r.push({state:n,queriesCount:i.length,helper:e}),e.emit("search",{state:n,results:e.lastResults}),i})),s=Array.prototype.concat.apply(n,i),a=this._queryId++;if(this._currentNbQueries++,!s.length)return Promise.resolve({results:[]}).then(this._dispatchAlgoliaResponse.bind(this,r,a));try{this.client.search(s).then(this._dispatchAlgoliaResponse.bind(this,r,a)).catch(this._dispatchAlgoliaError.bind(this,a))}catch(c){this.emit("error",{error:c})}},v.prototype._recommend=function(){var e=this.state,t=this.recommendState,r=this.getIndex(),n=[{state:t,index:r,helper:this}],i=t.params.map((function(e){return e.$$id}));this.emit("fetch",{recommend:{state:t,results:this.lastRecommendResults}});var s=this._recommendCache,a=this.derivedHelpers.map((function(t){var r=t.getModifiedState(e).index;if(!r)return[];var a=t.getModifiedRecommendState(new h);return n.push({state:a,index:r,helper:t}),i=Array.prototype.concat.apply(i,a.params.map((function(e){return e.$$id}))),t.emit("fetch",{recommend:{state:a,results:t.lastRecommendResults}}),a._buildQueries(r,s)})),c=Array.prototype.concat.apply(this.recommendState._buildQueries(r,s),a);if(0!==c.length)if(c.length>0&&void 0===this.client.getRecommendations)console.warn("Please update algoliasearch/lite to the latest version in order to use recommend widgets.");else{var o=this._recommendQueryId++;this._currentNbRecommendQueries++;try{this.client.getRecommendations(c).then(this._dispatchRecommendResponse.bind(this,o,n,i)).catch(this._dispatchRecommendError.bind(this,o))}catch(u){this.emit("error",{error:u})}}},v.prototype._dispatchAlgoliaResponse=function(e,t,r){var n=this;if(!(t<this._lastQueryIdReceived)){this._currentNbQueries-=t-this._lastQueryIdReceived,this._lastQueryIdReceived=t,0===this._currentNbQueries&&this.emit("searchQueueEmpty");var i=r.results.slice();e.forEach((function(e){var t=e.state,r=e.queriesCount,s=e.helper,a=i.splice(0,r);t.index?(s.lastResults=new d(t,a,n._searchResultsOptions),s.emit("result",{results:s.lastResults,state:t})):s.emit("result",{results:null,state:t})}))}},v.prototype._dispatchRecommendResponse=function(e,t,r,n){if(!(e<this._lastRecommendQueryIdReceived)){this._currentNbRecommendQueries-=e-this._lastRecommendQueryIdReceived,this._lastRecommendQueryIdReceived=e,0===this._currentNbRecommendQueries&&this.emit("recommendQueueEmpty");var i=this._recommendCache,s={};r.filter((function(e){return void 0===i[e]})).forEach((function(e,t){s[e]||(s[e]=[]),s[e].push(t)})),Object.keys(s).forEach((function(e){var t=s[e],r=n.results[t[0]];1!==t.length?i[e]=Object.assign({},r,{hits:p(t.map((function(e){return n.results[e].hits})))}):i[e]=r}));var a={};r.forEach((function(e){a[e]=i[e]})),t.forEach((function(e){var t=e.state,r=e.helper;e.index?(r.lastRecommendResults=new f(t,a),r.emit("recommend:result",{recommend:{results:r.lastRecommendResults,state:t}})):r.emit("recommend:result",{results:null,state:t})}))}},v.prototype._dispatchAlgoliaError=function(e,t){e<this._lastQueryIdReceived||(this._currentNbQueries-=e-this._lastQueryIdReceived,this._lastQueryIdReceived=e,this.emit("error",{error:t}),0===this._currentNbQueries&&this.emit("searchQueueEmpty"))},v.prototype._dispatchRecommendError=function(e,t){e<this._lastRecommendQueryIdReceived||(this._currentNbRecommendQueries-=e-this._lastRecommendQueryIdReceived,this._lastRecommendQueryIdReceived=e,this.emit("error",{error:t}),0===this._currentNbRecommendQueries&&this.emit("recommendQueueEmpty"))},v.prototype.containsRefinement=function(e,t,r,n){return e||0!==t.length||0!==r.length||0!==n.length},v.prototype._hasDisjunctiveRefinements=function(e){return this.state.disjunctiveRefinements[e]&&this.state.disjunctiveRefinements[e].length>0},v.prototype._change=function(e){var t=e.state,r=e.isPageReset;t!==this.state&&(this.state=t,this.emit("change",{state:this.state,results:this.lastResults,isPageReset:r}))},v.prototype._recommendChange=function(e){var t=e.state;t!==this.recommendState&&(this.recommendState=t,this.emit("recommend:change",{search:{results:this.lastResults,state:this.state},recommend:{results:this.lastRecommendResults,state:this.recommendState}}))},v.prototype.clearCache=function(){return this.client.clearCache&&this.client.clearCache(),this},v.prototype.setClient=function(e){return this.client===e||("function"==typeof e.addAlgoliaAgent&&e.addAlgoliaAgent("JS Helper ("+g+")"),this.client=e),this},v.prototype.getClient=function(){return this.client},v.prototype.derive=function(e,t){var r=new i(this,e,t);return this.derivedHelpers.push(r),r},v.prototype.detachDerivedHelper=function(e){var t=this.derivedHelpers.indexOf(e);if(-1===t)throw new Error("Derived helper already detached");this.derivedHelpers.splice(t,1)},v.prototype.hasPendingRequests=function(){return this._currentNbQueries>0},e.exports=v},8001:e=>{"use strict";e.exports=function(e){return Array.isArray(e)?e.filter(Boolean):[]}},1410:e=>{"use strict";e.exports=function(){return Array.prototype.slice.call(arguments).reduceRight((function(e,t){return Object.keys(Object(t)).forEach((function(r){void 0!==t[r]&&(void 0!==e[r]&&delete e[r],e[r]=t[r])})),e}),{})}},5473:e=>{"use strict";e.exports={escapeFacetValue:function(e){return"string"!=typeof e?e:String(e).replace(/^-/,"\\-")},unescapeFacetValue:function(e){return"string"!=typeof e?e:e.replace(/^\\-/,"-")}}},917:e=>{"use strict";e.exports=function(e,t){if(Array.isArray(e))for(var r=0;r<e.length;r++)if(t(e[r]))return e[r]}},7009:e=>{"use strict";e.exports=function(e,t){if(!Array.isArray(e))return-1;for(var r=0;r<e.length;r++)if(t(e[r]))return r;return-1}},7938:e=>{e.exports=function(e){return e.reduce((function(e,t){return e.concat(t)}),[])}},3861:(e,t,r)=>{"use strict";var n=r(917);e.exports=function(e,t){var r=(t||[]).map((function(e){return e.split(":")}));return e.reduce((function(e,t){var i=t.split(":"),s=n(r,(function(e){return e[0]===i[0]}));return i.length>1||!s?(e[0].push(i[0]),e[1].push(i[1]),e):(e[0].push(s[0]),e[1].push(s[1]),e)}),[[],[]])}},6026:e=>{"use strict";e.exports=function(e,t){e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}},8175:e=>{"use strict";e.exports=function(e,t){return e.filter((function(r,n){return t.indexOf(r)>-1&&e.indexOf(r)===n}))}},2364:e=>{"use strict";function t(e){return"function"==typeof e||Array.isArray(e)||"[object Object]"===Object.prototype.toString.call(e)}function r(e,n){if(e===n)return e;for(var i in n)if(Object.prototype.hasOwnProperty.call(n,i)&&"__proto__"!==i&&"constructor"!==i){var s=n[i],a=e[i];void 0!==a&&void 0===s||(t(a)&&t(s)?e[i]=r(a,s):e[i]="object"==typeof(c=s)&&null!==c?r(Array.isArray(c)?[]:{},c):c)}var c;return e}e.exports=function(e){t(e)||(e={});for(var n=1,i=arguments.length;n<i;n++){var s=arguments[n];t(s)&&r(e,s)}return e}},9825:e=>{"use strict";e.exports=function(e){return e&&Object.keys(e).length>0}},475:e=>{"use strict";e.exports=function(e,t){if(null===e)return{};var r,n,i={},s=Object.keys(e);for(n=0;n<s.length;n++)r=s[n],t.indexOf(r)>=0||(i[r]=e[r]);return i}},2965:e=>{"use strict";function t(e,t){if(e!==t){var r=void 0!==e,n=null===e,i=void 0!==t,s=null===t;if(!s&&e>t||n&&i||!r)return 1;if(!n&&e<t||s&&r||!i)return-1}return 0}e.exports=function(e,r,n){if(!Array.isArray(e))return[];Array.isArray(n)||(n=[]);var i=e.map((function(e,t){return{criteria:r.map((function(t){return e[t]})),index:t,value:e}}));return i.sort((function(e,r){for(var i=-1;++i<e.criteria.length;){var s=t(e.criteria[i],r.criteria[i]);if(s)return i>=n.length?s:"desc"===n[i]?-s:s}return e.index-r.index})),i.map((function(e){return e.value}))}},2503:e=>{"use strict";e.exports=function e(t){if("number"==typeof t)return t;if("string"==typeof t)return parseFloat(t);if(Array.isArray(t))return t.map(e);throw new Error("The value should be a number, a parsable string or an array of those.")}},8144:(e,t,r)=>{"use strict";var n=r(2364);function i(e){return Object.keys(e).sort().reduce((function(t,r){return t[r]=e[r],t}),{})}var s={_getQueries:function(e,t){var r=[];return r.push({indexName:e,params:s._getHitsSearchParams(t)}),t.getRefinedDisjunctiveFacets().forEach((function(n){r.push({indexName:e,params:s._getDisjunctiveFacetSearchParams(t,n)})})),t.getRefinedHierarchicalFacets().forEach((function(n){var i=t.getHierarchicalFacetByName(n),a=t.getHierarchicalRefinement(n),c=t._getHierarchicalFacetSeparator(i);if(a.length>0&&a[0].split(c).length>1){var o=a[0].split(c).slice(0,-1).reduce((function(e,t,r){return e.concat({attribute:i.attributes[r],value:0===r?t:[e[e.length-1].value,t].join(c)})}),[]);o.forEach((function(n,a){var c=s._getDisjunctiveFacetSearchParams(t,n.attribute,0===a);function u(e){return i.attributes.some((function(t){return t===e.split(":")[0]}))}var h=(c.facetFilters||[]).reduce((function(e,t){if(Array.isArray(t)){var r=t.filter((function(e){return!u(e)}));r.length>0&&e.push(r)}return"string"!=typeof t||u(t)||e.push(t),e}),[]),f=o[a-1];a>0?c.facetFilters=h.concat(f.attribute+":"+f.value):h.length>0?c.facetFilters=h:delete c.facetFilters,r.push({indexName:e,params:c})}))}})),r},_getHitsSearchParams:function(e){var t=e.facets.concat(e.disjunctiveFacets).concat(s._getHitsHierarchicalFacetsAttributes(e)).sort(),r=s._getFacetFilters(e),a=s._getNumericFilters(e),c=s._getTagFilters(e),o={};return t.length>0&&(o.facets=t.indexOf("*")>-1?["*"]:t),c.length>0&&(o.tagFilters=c),r.length>0&&(o.facetFilters=r),a.length>0&&(o.numericFilters=a),i(n({},e.getQueryParams(),o))},_getDisjunctiveFacetSearchParams:function(e,t,r){var a=s._getFacetFilters(e,t,r),c=s._getNumericFilters(e,t),o=s._getTagFilters(e),u={hitsPerPage:0,page:0,analytics:!1,clickAnalytics:!1};o.length>0&&(u.tagFilters=o);var h=e.getHierarchicalFacetByName(t);return u.facets=h?s._getDisjunctiveHierarchicalFacetAttribute(e,h,r):t,c.length>0&&(u.numericFilters=c),a.length>0&&(u.facetFilters=a),i(n({},e.getQueryParams(),u))},_getNumericFilters:function(e,t){if(e.numericFilters)return e.numericFilters;var r=[];return Object.keys(e.numericRefinements).forEach((function(n){var i=e.numericRefinements[n]||{};Object.keys(i).forEach((function(e){var s=i[e]||[];t!==n&&s.forEach((function(t){if(Array.isArray(t)){var i=t.map((function(t){return n+e+t}));r.push(i)}else r.push(n+e+t)}))}))})),r},_getTagFilters:function(e){return e.tagFilters?e.tagFilters:e.tagRefinements.join(",")},_getFacetFilters:function(e,t,r){var n=[],i=e.facetsRefinements||{};Object.keys(i).sort().forEach((function(e){(i[e]||[]).slice().sort().forEach((function(t){n.push(e+":"+t)}))}));var s=e.facetsExcludes||{};Object.keys(s).sort().forEach((function(e){(s[e]||[]).sort().forEach((function(t){n.push(e+":-"+t)}))}));var a=e.disjunctiveFacetsRefinements||{};Object.keys(a).sort().forEach((function(e){var r=a[e]||[];if(e!==t&&r&&0!==r.length){var i=[];r.slice().sort().forEach((function(t){i.push(e+":"+t)})),n.push(i)}}));var c=e.hierarchicalFacetsRefinements||{};return Object.keys(c).sort().forEach((function(i){var s=(c[i]||[])[0];if(void 0!==s){var a,o,u=e.getHierarchicalFacetByName(i),h=e._getHierarchicalFacetSeparator(u),f=e._getHierarchicalRootPath(u);if(t===i){if(-1===s.indexOf(h)||!f&&!0===r||f&&f.split(h).length===s.split(h).length)return;f?(o=f.split(h).length-1,s=f):(o=s.split(h).length-2,s=s.slice(0,s.lastIndexOf(h))),a=u.attributes[o]}else o=s.split(h).length-1,a=u.attributes[o];a&&n.push([a+":"+s])}})),n},_getHitsHierarchicalFacetsAttributes:function(e){return e.hierarchicalFacets.reduce((function(t,r){var n=e.getHierarchicalRefinement(r.name)[0];if(!n)return t.push(r.attributes[0]),t;var i=e._getHierarchicalFacetSeparator(r),s=n.split(i).length,a=r.attributes.slice(0,s+1);return t.concat(a)}),[])},_getDisjunctiveHierarchicalFacetAttribute:function(e,t,r){var n=e._getHierarchicalFacetSeparator(t);if(!0===r){var i=e._getHierarchicalRootPath(t),s=0;return i&&(s=i.split(n).length),[t.attributes[s]]}var a=(e.getHierarchicalRefinement(t.name)[0]||"").split(n).length-1;return t.attributes.slice(0,a+1)},getSearchForFacetQuery:function(e,t,r,a){var c=a.isDisjunctiveFacet(e)?a.clearRefinements(e):a,o={facetQuery:t,facetName:e};return"number"==typeof r&&(o.maxFacetHits=r),i(n({},s._getHitsSearchParams(c),o))}};e.exports=s},8972:e=>{"use strict";e.exports=function(e){return null!==e&&/^[a-zA-Z0-9_-]{1,64}$/.test(e)}},5249:(e,t,r)=>{"use strict";var n=r(917),i=r(7938);e.exports=function(e){var t={};return e.forEach((function(e){e.forEach((function(e,r){t[e.objectID]?t[e.objectID]={indexSum:t[e.objectID].indexSum+r,count:t[e.objectID].count+1}:t[e.objectID]={indexSum:r,count:1}}))})),function(e,t){var r=[];return Object.keys(e).forEach((function(n){e[n].count<2&&(e[n].indexSum+=100),r.push({objectID:n,avgOfIndices:e[n].indexSum/t})})),r.sort((function(e,t){return e.avgOfIndices>t.avgOfIndices?1:-1}))}(t,e.length).reduce((function(t,r){var s=n(i(e),(function(e){return e.objectID===r.objectID}));return s?t.concat(s):t}),[])}},4758:e=>{"use strict";e.exports="3.22.5"},4306:function(e){e.exports=function(){"use strict";function e(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function t(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 r(r){for(var n=1;n<arguments.length;n++){var i=null!=arguments[n]?arguments[n]:{};n%2?t(Object(i),!0).forEach((function(t){e(r,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(i)):t(Object(i)).forEach((function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(i,e))}))}return r}function n(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r,n,i={},s=Object.keys(e);for(n=0;n<s.length;n++)r=s[n],t.indexOf(r)>=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n<s.length;n++)r=s[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}function i(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e)){var r=[],n=!0,i=!1,s=void 0;try{for(var a,c=e[Symbol.iterator]();!(n=(a=c.next()).done)&&(r.push(a.value),!t||r.length!==t);n=!0);}catch(e){i=!0,s=e}finally{try{n||null==c.return||c.return()}finally{if(i)throw s}}return r}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function s(e){return function(e){if(Array.isArray(e)){for(var t=0,r=new Array(e.length);t<e.length;t++)r[t]=e[t];return r}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function a(e){var t,r="algoliasearch-client-js-".concat(e.key),n=function(){return void 0===t&&(t=e.localStorage||window.localStorage),t},s=function(){return JSON.parse(n().getItem(r)||"{}")},a=function(e){n().setItem(r,JSON.stringify(e))},c=function(){var t=e.timeToLive?1e3*e.timeToLive:null,r=s(),n=Object.fromEntries(Object.entries(r).filter((function(e){return void 0!==i(e,2)[1].timestamp})));if(a(n),t){var c=Object.fromEntries(Object.entries(n).filter((function(e){var r=i(e,2)[1],n=(new Date).getTime();return!(r.timestamp+t<n)})));a(c)}};return{get:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return Promise.resolve().then((function(){c();var t=JSON.stringify(e);return s()[t]})).then((function(e){return Promise.all([e?e.value:t(),void 0!==e])})).then((function(e){var t=i(e,2),n=t[0],s=t[1];return Promise.all([n,s||r.miss(n)])})).then((function(e){return i(e,1)[0]}))},set:function(e,t){return Promise.resolve().then((function(){var i=s();return i[JSON.stringify(e)]={timestamp:(new Date).getTime(),value:t},n().setItem(r,JSON.stringify(i)),t}))},delete:function(e){return Promise.resolve().then((function(){var t=s();delete t[JSON.stringify(e)],n().setItem(r,JSON.stringify(t))}))},clear:function(){return Promise.resolve().then((function(){n().removeItem(r)}))}}}function c(e){var t=s(e.caches),r=t.shift();return void 0===r?{get:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return t().then((function(e){return Promise.all([e,r.miss(e)])})).then((function(e){return i(e,1)[0]}))},set:function(e,t){return Promise.resolve(t)},delete:function(e){return Promise.resolve()},clear:function(){return Promise.resolve()}}:{get:function(e,n){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return r.get(e,n,i).catch((function(){return c({caches:t}).get(e,n,i)}))},set:function(e,n){return r.set(e,n).catch((function(){return c({caches:t}).set(e,n)}))},delete:function(e){return r.delete(e).catch((function(){return c({caches:t}).delete(e)}))},clear:function(){return r.clear().catch((function(){return c({caches:t}).clear()}))}}}function o(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{serializable:!0},t={};return{get:function(r,n){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}},s=JSON.stringify(r);if(s in t)return Promise.resolve(e.serializable?JSON.parse(t[s]):t[s]);var a=n(),c=i&&i.miss||function(){return Promise.resolve()};return a.then((function(e){return c(e)})).then((function(){return a}))},set:function(r,n){return t[JSON.stringify(r)]=e.serializable?JSON.stringify(n):n,Promise.resolve(n)},delete:function(e){return delete t[JSON.stringify(e)],Promise.resolve()},clear:function(){return t={},Promise.resolve()}}}function u(e){for(var t=e.length-1;t>0;t--){var r=Math.floor(Math.random()*(t+1)),n=e[t];e[t]=e[r],e[r]=n}return e}function h(e,t){return t?(Object.keys(t).forEach((function(r){e[r]=t[r](e)})),e):e}function f(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];var i=0;return e.replace(/%s/g,(function(){return encodeURIComponent(r[i++])}))}var l={WithinQueryParameters:0,WithinHeaders:1};function m(e,t){var r=e||{},n=r.data||{};return Object.keys(r).forEach((function(e){-1===["timeout","headers","queryParameters","data","cacheable"].indexOf(e)&&(n[e]=r[e])})),{data:Object.entries(n).length>0?n:void 0,timeout:r.timeout||t,headers:r.headers||{},queryParameters:r.queryParameters||{},cacheable:r.cacheable}}var d={Read:1,Write:2,Any:3},p=1,g=2,v=3;function y(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:p;return r(r({},e),{},{status:t,lastUpdate:Date.now()})}function R(e){return"string"==typeof e?{protocol:"https",url:e,accept:d.Any}:{protocol:e.protocol||"https",url:e.url,accept:e.accept||d.Any}}var F="GET",b="POST";function j(e,t){return Promise.all(t.map((function(t){return e.get(t,(function(){return Promise.resolve(y(t))}))}))).then((function(e){var r=e.filter((function(e){return function(e){return e.status===p||Date.now()-e.lastUpdate>12e4}(e)})),n=e.filter((function(e){return function(e){return e.status===v&&Date.now()-e.lastUpdate<=12e4}(e)})),i=[].concat(s(r),s(n));return{getTimeout:function(e,t){return(0===n.length&&0===e?1:n.length+3+e)*t},statelessHosts:i.length>0?i.map((function(e){return R(e)})):t}}))}function _(e,t,n,i){var a=[],c=function(e,t){if(e.method!==F&&(void 0!==e.data||void 0!==t.data)){var n=Array.isArray(e.data)?e.data:r(r({},e.data),t.data);return JSON.stringify(n)}}(n,i),o=function(e,t){var n=r(r({},e.headers),t.headers),i={};return Object.keys(n).forEach((function(e){var t=n[e];i[e.toLowerCase()]=t})),i}(e,i),u=n.method,h=n.method!==F?{}:r(r({},n.data),i.data),f=r(r(r({"x-algolia-agent":e.userAgent.value},e.queryParameters),h),i.queryParameters),l=0,m=function t(r,s){var h=r.pop();if(void 0===h)throw{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, please reach out to the Algolia Support team: https://alg.li/support .",transporterStackTrace:O(a)};var m={data:c,headers:o,method:u,url:x(h,n.path,f),connectTimeout:s(l,e.timeouts.connect),responseTimeout:s(l,i.timeout)},d=function(e){var t={request:m,response:e,host:h,triesLeft:r.length};return a.push(t),t},p={onSuccess:function(e){return function(e){try{return JSON.parse(e.content)}catch(t){throw function(e,t){return{name:"DeserializationError",message:e,response:t}}(t.message,e)}}(e)},onRetry:function(n){var i=d(n);return n.isTimedOut&&l++,Promise.all([e.logger.info("Retryable failure",w(i)),e.hostsCache.set(h,y(h,n.isTimedOut?v:g))]).then((function(){return t(r,s)}))},onFail:function(e){throw d(e),function(e,t){var r=e.content,n=e.status,i=r;try{i=JSON.parse(r).message}catch(e){}return function(e,t,r){return{name:"ApiError",message:e,status:t,transporterStackTrace:r}}(i,n,t)}(e,O(a))}};return e.requester.send(m).then((function(e){return function(e,t){return function(e){var t=e.status;return e.isTimedOut||function(e){var t=e.isTimedOut,r=e.status;return!t&&!~~r}(e)||2!=~~(t/100)&&4!=~~(t/100)}(e)?t.onRetry(e):2==~~(e.status/100)?t.onSuccess(e):t.onFail(e)}(e,p)}))};return j(e.hostsCache,t).then((function(e){return m(s(e.statelessHosts).reverse(),e.getTimeout)}))}function P(e){var t={value:"Algolia for JavaScript (".concat(e,")"),add:function(e){var r="; ".concat(e.segment).concat(void 0!==e.version?" (".concat(e.version,")"):"");return-1===t.value.indexOf(r)&&(t.value="".concat(t.value).concat(r)),t}};return t}function x(e,t,r){var n=E(r),i="".concat(e.protocol,"://").concat(e.url,"/").concat("/"===t.charAt(0)?t.substr(1):t);return n.length&&(i+="?".concat(n)),i}function E(e){return Object.keys(e).map((function(t){return f("%s=%s",t,(r=e[t],"[object Object]"===Object.prototype.toString.call(r)||"[object Array]"===Object.prototype.toString.call(r)?JSON.stringify(e[t]):e[t]));var r})).join("&")}function O(e){return e.map((function(e){return w(e)}))}function w(e){var t=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return r(r({},e),{},{request:r(r({},e.request),{},{headers:r(r({},e.request.headers),t)})})}var S=function(e){var t=e.appId,n=function(e,t,r){var n={"x-algolia-api-key":r,"x-algolia-application-id":t};return{headers:function(){return e===l.WithinHeaders?n:{}},queryParameters:function(){return e===l.WithinQueryParameters?n:{}}}}(void 0!==e.authMode?e.authMode:l.WithinHeaders,t,e.apiKey),s=function(e){var t=e.hostsCache,r=e.logger,n=e.requester,s=e.requestsCache,a=e.responsesCache,c=e.timeouts,o=e.userAgent,u=e.hosts,h=e.queryParameters,f={hostsCache:t,logger:r,requester:n,requestsCache:s,responsesCache:a,timeouts:c,userAgent:o,headers:e.headers,queryParameters:h,hosts:u.map((function(e){return R(e)})),read:function(e,t){var r=m(t,f.timeouts.read),n=function(){return _(f,f.hosts.filter((function(e){return!!(e.accept&d.Read)})),e,r)};if(!0!==(void 0!==r.cacheable?r.cacheable:e.cacheable))return n();var s={request:e,mappedRequestOptions:r,transporter:{queryParameters:f.queryParameters,headers:f.headers}};return f.responsesCache.get(s,(function(){return f.requestsCache.get(s,(function(){return f.requestsCache.set(s,n()).then((function(e){return Promise.all([f.requestsCache.delete(s),e])}),(function(e){return Promise.all([f.requestsCache.delete(s),Promise.reject(e)])})).then((function(e){var t=i(e,2);return t[0],t[1]}))}))}),{miss:function(e){return f.responsesCache.set(s,e)}})},write:function(e,t){return _(f,f.hosts.filter((function(e){return!!(e.accept&d.Write)})),e,m(t,f.timeouts.write))}};return f}(r(r({hosts:[{url:"".concat(t,"-dsn.algolia.net"),accept:d.Read},{url:"".concat(t,".algolia.net"),accept:d.Write}].concat(u([{url:"".concat(t,"-1.algolianet.com")},{url:"".concat(t,"-2.algolianet.com")},{url:"".concat(t,"-3.algolianet.com")}]))},e),{},{headers:r(r(r({},n.headers()),{"content-type":"application/x-www-form-urlencoded"}),e.headers),queryParameters:r(r({},n.queryParameters()),e.queryParameters)}));return h({transporter:s,appId:t,addAlgoliaAgent:function(e,t){s.userAgent.add({segment:e,version:t})},clearCache:function(){return Promise.all([s.requestsCache.clear(),s.responsesCache.clear()]).then((function(){}))}},e.methods)},A=function(e){return function(t,r){return t.method===F?e.transporter.read(t,r):e.transporter.write(t,r)}},N=function(e){return function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return h({transporter:e.transporter,appId:e.appId,indexName:t},r.methods)}},H=function(e){return function(t,n){var i=t.map((function(e){return r(r({},e),{},{params:E(e.params||{})})}));return e.transporter.read({method:b,path:"1/indexes/*/queries",data:{requests:i},cacheable:!0},n)}},Q=function(e){return function(t,i){return Promise.all(t.map((function(t){var s=t.params,a=s.facetName,c=s.facetQuery,o=n(s,["facetName","facetQuery"]);return N(e)(t.indexName,{methods:{searchForFacetValues:I}}).searchForFacetValues(a,c,r(r({},i),o))})))}},T=function(e){return function(t,r,n){return e.transporter.read({method:b,path:f("1/answers/%s/prediction",e.indexName),data:{query:t,queryLanguages:r},cacheable:!0},n)}},C=function(e){return function(t,r){return e.transporter.read({method:b,path:f("1/indexes/%s/query",e.indexName),data:{query:t},cacheable:!0},r)}},I=function(e){return function(t,r,n){return e.transporter.read({method:b,path:f("1/indexes/%s/facets/%s/query",e.indexName,t),data:{facetQuery:r},cacheable:!0},n)}},D=1,k=2,q=3,L=function(e){return function(t,n){var i=t.map((function(e){return r(r({},e),{},{threshold:e.threshold||0})}));return e.transporter.read({method:b,path:"1/indexes/*/recommendations",data:{requests:i},cacheable:!0},n)}};function V(e,t,n){var i,s={appId:e,apiKey:t,timeouts:{connect:1,read:2,write:30},requester:{send:function(e){return new Promise((function(t){var r=new XMLHttpRequest;r.open(e.method,e.url,!0),Object.keys(e.headers).forEach((function(t){return r.setRequestHeader(t,e.headers[t])}));var n,i=function(e,n){return setTimeout((function(){r.abort(),t({status:0,content:n,isTimedOut:!0})}),1e3*e)},s=i(e.connectTimeout,"Connection timeout");r.onreadystatechange=function(){r.readyState>r.OPENED&&void 0===n&&(clearTimeout(s),n=i(e.responseTimeout,"Socket timeout"))},r.onerror=function(){0===r.status&&(clearTimeout(s),clearTimeout(n),t({content:r.responseText||"Network request failed",status:r.status,isTimedOut:!1}))},r.onload=function(){clearTimeout(s),clearTimeout(n),t({content:r.responseText,status:r.status,isTimedOut:!1})},r.send(e.data)}))}},logger:(i=q,{debug:function(e,t){return D>=i&&console.debug(e,t),Promise.resolve()},info:function(e,t){return k>=i&&console.info(e,t),Promise.resolve()},error:function(e,t){return console.error(e,t),Promise.resolve()}}),responsesCache:o(),requestsCache:o({serializable:!1}),hostsCache:c({caches:[a({key:"".concat("4.24.0","-").concat(e)}),o()]}),userAgent:P("4.24.0").add({segment:"Browser",version:"lite"}),authMode:l.WithinQueryParameters};return S(r(r(r({},s),n),{},{methods:{search:H,searchForFacetValues:Q,multipleQueries:H,multipleSearchForFacetValues:Q,customRequest:A,initIndex:function(e){return function(t){return N(e)(t,{methods:{search:C,searchForFacetValues:I,findAnswers:T}})}},getRecommendations:L}}))}return V.version="4.24.0",V}()},6210:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>H});var n=r(758),i=r(3526),s=r(8563),a=r.n(s),c=r(4306),o=r.n(c),u=r(3782),h=r(7471),f=r(6601),l=r(9612),m=r(6869);const d=["zero","one","two","few","many","other"];function p(e){return d.filter((t=>e.includes(t)))}const g={locale:"en",pluralForms:p(["one","other"]),select:e=>1===e?"one":"other"};function v(){const{i18n:{currentLocale:e}}=(0,m.A)();return(0,n.useMemo)((()=>{try{return function(e){const t=new Intl.PluralRules(e);return{locale:e,pluralForms:p(t.resolvedOptions().pluralCategories),select:e=>t.select(e)}}(e)}catch(t){return console.error(`Failed to use Intl.PluralRules for locale "${e}".\nDocusaurus will fallback to the default (English) implementation.\nError: ${t.message}\n`),g}}),[e])}function y(){const e=v();return{selectMessage:(t,r)=>function(e,t,r){const n=e.split("|");if(1===n.length)return n[0];n.length>r.pluralForms.length&&console.error(`For locale=${r.locale}, a maximum of ${r.pluralForms.length} plural forms are expected (${r.pluralForms.join(",")}), but the message contains ${n.length}: ${e}`);const i=r.select(t),s=r.pluralForms.indexOf(i);return n[Math.min(s,n.length-1)]}(r,t,e)}}var R=r(7038),F=r(3991),b=r(926),j=r(8318),_=r(7260),P=r(2022),x=r(1886),E=r(8437),O=r(2406);const w={searchQueryInput:"searchQueryInput_lgCf",searchVersionInput:"searchVersionInput_hZMv",searchResultsColumn:"searchResultsColumn_usTD",algoliaLogo:"algoliaLogo_nSr9",algoliaLogoPathFill:"algoliaLogoPathFill_bweY",searchResultItem:"searchResultItem_kiiJ",searchResultItemHeading:"searchResultItemHeading_P9ix",searchResultItemPath:"searchResultItemPath_QjmW",searchResultItemSummary:"searchResultItemSummary_rb6a",searchQueryColumn:"searchQueryColumn_yPeD",searchVersionColumn:"searchVersionColumn_nHlp",searchLogoColumn:"searchLogoColumn_w6QH",loadingSpinner:"loadingSpinner_I7f_","loading-spin":"loading-spin_GsXP",loader:"loader_lcxn"};var S=r(6070);function A(e){let{docsSearchVersionsHelpers:t}=e;const r=Object.entries(t.allDocsData).filter((e=>{let[,t]=e;return t.versions.length>1}));return(0,S.jsx)("div",{className:(0,i.A)("col","col--3","padding-left--none",w.searchVersionColumn),children:r.map((e=>{let[n,i]=e;const s=r.length>1?`${n}: `:"";return(0,S.jsx)("select",{onChange:e=>t.setSearchVersion(n,e.target.value),defaultValue:t.searchVersions[n],className:w.searchVersionInput,children:i.versions.map(((e,t)=>(0,S.jsx)("option",{label:`${s}${e.label}`,value:e.name},t)))},n)}))})}function N(){const{i18n:{currentLocale:e}}=(0,m.A)(),{algolia:{appId:t,apiKey:r,indexName:s}}=(0,P.c)(),c=(0,x.C)(),d=function(){const{selectMessage:e}=y();return t=>e(t,(0,_.T)({id:"theme.SearchPage.documentsFound.plurals",description:'Pluralized label for "{count} documents found". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One document found|{count} documents found"},{count:t}))}(),p=function(){const e=(0,l.Gy)(),[t,r]=(0,n.useState)((()=>Object.entries(e).reduce(((e,t)=>{let[r,n]=t;return{...e,[r]:n.versions[0].name}}),{}))),i=Object.values(e).some((e=>e.versions.length>1));return{allDocsData:e,versioningEnabled:i,searchVersions:t,setSearchVersion:(e,t)=>r((r=>({...r,[e]:t})))}}(),[g,v]=(0,R.b)(),b={items:[],query:null,totalResults:null,totalPages:null,lastPage:null,hasMore:null,loading:null},[N,H]=(0,n.useReducer)(((e,t)=>{switch(t.type){case"reset":return b;case"loading":return{...e,loading:!0};case"update":return g!==t.value.query?e:{...t.value,items:0===t.value.lastPage?t.value.items:e.items.concat(t.value.items)};case"advance":{const t=e.totalPages>e.lastPage+1;return{...e,lastPage:t?e.lastPage+1:e.lastPage,hasMore:t}}default:return e}}),b),Q=o()(t,r),T=a()(Q,s,{hitsPerPage:15,advancedSyntax:!0,disjunctiveFacets:["language","docusaurus_tag"]});T.on("result",(e=>{let{results:{query:t,hits:r,page:n,nbHits:i,nbPages:s}}=e;if(""===t||!Array.isArray(r))return void H({type:"reset"});const a=e=>e.replace(/algolia-docsearch-suggestion--highlight/g,"search-result-match"),o=r.map((e=>{let{url:t,_highlightResult:{hierarchy:r},_snippetResult:n={}}=e;const i=Object.keys(r).map((e=>a(r[e].value)));return{title:i.pop(),url:c(t),summary:n.content?`${a(n.content.value)}...`:"",breadcrumbs:i}}));H({type:"update",value:{items:o,query:t,totalResults:i,totalPages:s,lastPage:n,hasMore:s>n+1,loading:!1}})}));const[C,I]=(0,n.useState)(null),D=(0,n.useRef)(0),k=(0,n.useRef)(u.A.canUseIntersectionObserver&&new IntersectionObserver((e=>{const{isIntersecting:t,boundingClientRect:{y:r}}=e[0];t&&D.current>r&&H({type:"advance"}),D.current=r}),{threshold:1})),q=()=>g?(0,_.T)({id:"theme.SearchPage.existingResultsTitle",message:'Search results for "{query}"',description:"The search page title for non-empty query"},{query:g}):(0,_.T)({id:"theme.SearchPage.emptyResultsTitle",message:"Search the documentation",description:"The search page title for empty query"}),L=(0,F._q)((function(t){void 0===t&&(t=0),T.addDisjunctiveFacetRefinement("docusaurus_tag","default"),T.addDisjunctiveFacetRefinement("language",e),Object.entries(p.searchVersions).forEach((e=>{let[t,r]=e;T.addDisjunctiveFacetRefinement("docusaurus_tag",`docs-${t}-${r}`)})),T.setQuery(g).setPage(t).search()}));return(0,n.useEffect)((()=>{if(!C)return;const e=k.current;return e?(e.observe(C),()=>e.unobserve(C)):()=>!0}),[C]),(0,n.useEffect)((()=>{H({type:"reset"}),g&&(H({type:"loading"}),setTimeout((()=>{L()}),300))}),[g,p.searchVersions,L]),(0,n.useEffect)((()=>{N.lastPage&&0!==N.lastPage&&L(N.lastPage)}),[L,N.lastPage]),(0,S.jsxs)(E.A,{children:[(0,S.jsxs)(h.A,{children:[(0,S.jsx)("title",{children:(0,j.s)(q())}),(0,S.jsx)("meta",{property:"robots",content:"noindex, follow"})]}),(0,S.jsxs)("div",{className:"container margin-vert--lg",children:[(0,S.jsx)(O.A,{as:"h1",children:q()}),(0,S.jsxs)("form",{className:"row",onSubmit:e=>e.preventDefault(),children:[(0,S.jsx)("div",{className:(0,i.A)("col",w.searchQueryColumn,{"col--9":p.versioningEnabled,"col--12":!p.versioningEnabled}),children:(0,S.jsx)("input",{type:"search",name:"q",className:w.searchQueryInput,placeholder:(0,_.T)({id:"theme.SearchPage.inputPlaceholder",message:"Type your search here",description:"The placeholder for search page input"}),"aria-label":(0,_.T)({id:"theme.SearchPage.inputLabel",message:"Search",description:"The ARIA label for search page input"}),onChange:e=>v(e.target.value),value:g,autoComplete:"off",autoFocus:!0})}),p.versioningEnabled&&(0,S.jsx)(A,{docsSearchVersionsHelpers:p})]}),(0,S.jsxs)("div",{className:"row",children:[(0,S.jsx)("div",{className:(0,i.A)("col","col--8",w.searchResultsColumn),children:!!N.totalResults&&d(N.totalResults)}),(0,S.jsx)("div",{className:(0,i.A)("col","col--4","text--right",w.searchLogoColumn),children:(0,S.jsx)(f.A,{to:"https://www.algolia.com/","aria-label":(0,_.T)({id:"theme.SearchPage.algoliaLabel",message:"Search by Algolia",description:"The ARIA label for Algolia mention"}),children:(0,S.jsx)("svg",{viewBox:"0 0 168 24",className:w.algoliaLogo,children:(0,S.jsxs)("g",{fill:"none",children:[(0,S.jsx)("path",{className:w.algoliaLogoPathFill,d:"M120.925 18.804c-4.386.02-4.386-3.54-4.386-4.106l-.007-13.336 2.675-.424v13.254c0 .322 0 2.358 1.718 2.364v2.248zm-10.846-2.18c.821 0 1.43-.047 1.855-.129v-2.719a6.334 6.334 0 0 0-1.574-.199 5.7 5.7 0 0 0-.897.069 2.699 2.699 0 0 0-.814.24c-.24.116-.439.28-.582.491-.15.212-.219.335-.219.656 0 .628.219.991.616 1.23s.938.362 1.615.362zm-.233-9.7c.883 0 1.629.109 2.231.328.602.218 1.088.525 1.444.915.363.396.609.922.76 1.483.157.56.232 1.175.232 1.85v6.874a32.5 32.5 0 0 1-1.868.314c-.834.123-1.772.185-2.813.185-.69 0-1.327-.069-1.895-.198a4.001 4.001 0 0 1-1.471-.636 3.085 3.085 0 0 1-.951-1.134c-.226-.465-.343-1.12-.343-1.803 0-.656.13-1.073.384-1.525a3.24 3.24 0 0 1 1.047-1.106c.445-.287.95-.492 1.532-.615a8.8 8.8 0 0 1 1.82-.185 8.404 8.404 0 0 1 1.972.24v-.438c0-.307-.035-.6-.11-.874a1.88 1.88 0 0 0-.384-.73 1.784 1.784 0 0 0-.724-.493 3.164 3.164 0 0 0-1.143-.205c-.616 0-1.177.075-1.69.164a7.735 7.735 0 0 0-1.26.307l-.321-2.192c.335-.117.834-.233 1.478-.349a10.98 10.98 0 0 1 2.073-.178zm52.842 9.626c.822 0 1.43-.048 1.854-.13V13.7a6.347 6.347 0 0 0-1.574-.199c-.294 0-.595.021-.896.069a2.7 2.7 0 0 0-.814.24 1.46 1.46 0 0 0-.582.491c-.15.212-.218.335-.218.656 0 .628.218.991.615 1.23.404.245.938.362 1.615.362zm-.226-9.694c.883 0 1.629.108 2.231.327.602.219 1.088.526 1.444.915.355.39.609.923.759 1.483a6.8 6.8 0 0 1 .233 1.852v6.873c-.41.088-1.034.19-1.868.314-.834.123-1.772.184-2.813.184-.69 0-1.327-.068-1.895-.198a4.001 4.001 0 0 1-1.471-.635 3.085 3.085 0 0 1-.951-1.134c-.226-.465-.343-1.12-.343-1.804 0-.656.13-1.073.384-1.524.26-.45.608-.82 1.047-1.107.445-.286.95-.491 1.532-.614a8.803 8.803 0 0 1 2.751-.13c.329.034.671.096 1.04.185v-.437a3.3 3.3 0 0 0-.109-.875 1.873 1.873 0 0 0-.384-.731 1.784 1.784 0 0 0-.724-.492 3.165 3.165 0 0 0-1.143-.205c-.616 0-1.177.075-1.69.164a7.75 7.75 0 0 0-1.26.307l-.321-2.193c.335-.116.834-.232 1.478-.348a11.633 11.633 0 0 1 2.073-.177zm-8.034-1.271a1.626 1.626 0 0 1-1.628-1.62c0-.895.725-1.62 1.628-1.62.904 0 1.63.725 1.63 1.62 0 .895-.733 1.62-1.63 1.62zm1.348 13.22h-2.689V7.27l2.69-.423v11.956zm-4.714 0c-4.386.02-4.386-3.54-4.386-4.107l-.008-13.336 2.676-.424v13.254c0 .322 0 2.358 1.718 2.364v2.248zm-8.698-5.903c0-1.156-.253-2.119-.746-2.788-.493-.677-1.183-1.01-2.067-1.01-.882 0-1.574.333-2.065 1.01-.493.676-.733 1.632-.733 2.788 0 1.168.246 1.953.74 2.63.492.683 1.183 1.018 2.066 1.018.882 0 1.574-.342 2.067-1.019.492-.683.738-1.46.738-2.63zm2.737-.007c0 .902-.13 1.584-.397 2.33a5.52 5.52 0 0 1-1.128 1.906 4.986 4.986 0 0 1-1.752 1.223c-.685.286-1.739.45-2.265.45-.528-.006-1.574-.157-2.252-.45a5.096 5.096 0 0 1-1.744-1.223c-.487-.527-.863-1.162-1.137-1.906a6.345 6.345 0 0 1-.41-2.33c0-.902.123-1.77.397-2.508a5.554 5.554 0 0 1 1.15-1.892 5.133 5.133 0 0 1 1.75-1.216c.679-.287 1.425-.423 2.232-.423.808 0 1.553.142 2.237.423a4.88 4.88 0 0 1 1.753 1.216 5.644 5.644 0 0 1 1.135 1.892c.287.738.431 1.606.431 2.508zm-20.138 0c0 1.12.246 2.363.738 2.882.493.52 1.13.78 1.91.78.424 0 .828-.062 1.204-.178.377-.116.677-.253.917-.417V9.33a10.476 10.476 0 0 0-1.766-.226c-.971-.028-1.71.37-2.23 1.004-.513.636-.773 1.75-.773 2.788zm7.438 5.274c0 1.824-.466 3.156-1.404 4.004-.936.846-2.367 1.27-4.296 1.27-.705 0-2.17-.137-3.34-.396l.431-2.118c.98.205 2.272.26 2.95.26 1.074 0 1.84-.219 2.299-.656.459-.437.684-1.086.684-1.948v-.437a8.07 8.07 0 0 1-1.047.397c-.43.13-.93.198-1.492.198-.739 0-1.41-.116-2.018-.349a4.206 4.206 0 0 1-1.567-1.025c-.431-.45-.774-1.017-1.013-1.694-.24-.677-.363-1.885-.363-2.773 0-.834.13-1.88.384-2.577.26-.696.629-1.298 1.129-1.796.493-.498 1.095-.881 1.8-1.162a6.605 6.605 0 0 1 2.428-.457c.87 0 1.67.109 2.45.24.78.129 1.444.265 1.985.415V18.17zM6.972 6.677v1.627c-.712-.446-1.52-.67-2.425-.67-.585 0-1.045.13-1.38.391a1.24 1.24 0 0 0-.502 1.03c0 .425.164.765.494 1.02.33.256.835.532 1.516.83.447.192.795.356 1.045.495.25.138.537.332.862.582.324.25.563.548.718.894.154.345.23.741.23 1.188 0 .947-.334 1.691-1.004 2.234-.67.542-1.537.814-2.601.814-1.18 0-2.16-.229-2.936-.686v-1.708c.84.628 1.814.942 2.92.942.585 0 1.048-.136 1.388-.407.34-.271.51-.646.51-1.125 0-.287-.1-.55-.302-.79-.203-.24-.42-.42-.655-.542-.234-.123-.585-.29-1.053-.503a61.27 61.27 0 0 1-.582-.271 13.67 13.67 0 0 1-.55-.287 4.275 4.275 0 0 1-.567-.351 6.92 6.92 0 0 1-.455-.4c-.18-.17-.31-.34-.39-.51-.08-.17-.155-.37-.224-.598a2.553 2.553 0 0 1-.104-.742c0-.915.333-1.638.998-2.17.664-.532 1.523-.798 2.576-.798.968 0 1.793.17 2.473.51zm7.468 5.696v-.287c-.022-.607-.187-1.088-.495-1.444-.309-.357-.75-.535-1.324-.535-.532 0-.99.194-1.373.583-.382.388-.622.949-.717 1.683h3.909zm1.005 2.792v1.404c-.596.34-1.383.51-2.362.51-1.255 0-2.255-.377-3-1.132-.744-.755-1.116-1.744-1.116-2.968 0-1.297.34-2.316 1.021-3.055.68-.74 1.548-1.11 2.6-1.11 1.033 0 1.852.323 2.458.966.606.644.91 1.572.91 2.784 0 .33-.033.676-.096 1.038h-5.314c.107.702.405 1.239.894 1.611.49.372 1.106.558 1.85.558.862 0 1.58-.202 2.155-.606zm6.605-1.77h-1.212c-.596 0-1.045.116-1.349.35-.303.234-.454.532-.454.894 0 .372.117.664.35.877.235.213.575.32 1.022.32.51 0 .912-.142 1.204-.424.293-.281.44-.651.44-1.108v-.91zm-4.068-2.554V9.325c.627-.361 1.457-.542 2.489-.542 2.116 0 3.175 1.026 3.175 3.08V17h-1.548v-.957c-.415.68-1.143 1.02-2.186 1.02-.766 0-1.38-.22-1.843-.661-.462-.442-.694-1.003-.694-1.684 0-.776.293-1.38.878-1.81.585-.431 1.404-.647 2.457-.647h1.34V11.8c0-.554-.133-.971-.399-1.253-.266-.282-.707-.423-1.324-.423a4.07 4.07 0 0 0-2.345.718zm9.333-1.93v1.42c.394-1 1.101-1.5 2.123-1.5.148 0 .313.016.494.048v1.531a1.885 1.885 0 0 0-.75-.143c-.542 0-.989.24-1.34.718-.351.479-.527 1.048-.527 1.707V17h-1.563V8.91h1.563zm5.01 4.084c.022.82.272 1.492.75 2.019.479.526 1.15.79 2.01.79.639 0 1.235-.176 1.788-.527v1.404c-.521.319-1.186.479-1.995.479-1.265 0-2.276-.4-3.031-1.197-.755-.798-1.133-1.792-1.133-2.984 0-1.16.38-2.151 1.14-2.975.761-.825 1.79-1.237 3.088-1.237.702 0 1.346.149 1.93.447v1.436a3.242 3.242 0 0 0-1.77-.495c-.84 0-1.513.266-2.019.798-.505.532-.758 1.213-.758 2.042zM40.24 5.72v4.579c.458-1 1.293-1.5 2.505-1.5.787 0 1.42.245 1.899.734.479.49.718 1.17.718 2.042V17h-1.564v-5.106c0-.553-.14-.98-.422-1.284-.282-.303-.652-.455-1.11-.455-.531 0-1.002.202-1.411.606-.41.405-.615 1.022-.615 1.851V17h-1.563V5.72h1.563zm14.966 10.02c.596 0 1.096-.253 1.5-.758.404-.506.606-1.157.606-1.955 0-.915-.202-1.62-.606-2.114-.404-.495-.92-.742-1.548-.742-.553 0-1.05.224-1.491.67-.442.447-.662 1.133-.662 2.058 0 .958.212 1.67.638 2.138.425.469.946.703 1.563.703zM53.004 5.72v4.42c.574-.894 1.388-1.341 2.44-1.341 1.022 0 1.857.383 2.506 1.149.649.766.973 1.781.973 3.047 0 1.138-.309 2.109-.925 2.912-.617.803-1.463 1.205-2.537 1.205-1.075 0-1.894-.447-2.457-1.34V17h-1.58V5.72h1.58zm9.908 11.104l-3.223-7.913h1.739l1.005 2.632 1.26 3.415c.096-.32.48-1.458 1.15-3.415l.909-2.632h1.66l-2.92 7.866c-.777 2.074-1.963 3.11-3.559 3.11a2.92 2.92 0 0 1-.734-.079v-1.34c.17.042.351.064.543.064 1.032 0 1.755-.57 2.17-1.708z"}),(0,S.jsx)("path",{fill:"#5468FF",d:"M78.988.938h16.594a2.968 2.968 0 0 1 2.966 2.966V20.5a2.967 2.967 0 0 1-2.966 2.964H78.988a2.967 2.967 0 0 1-2.966-2.964V3.897A2.961 2.961 0 0 1 78.988.938z"}),(0,S.jsx)("path",{fill:"white",d:"M89.632 5.967v-.772a.978.978 0 0 0-.978-.977h-2.28a.978.978 0 0 0-.978.977v.793c0 .088.082.15.171.13a7.127 7.127 0 0 1 1.984-.28c.65 0 1.295.088 1.917.259.082.02.164-.04.164-.13m-6.248 1.01l-.39-.389a.977.977 0 0 0-1.382 0l-.465.465a.973.973 0 0 0 0 1.38l.383.383c.062.061.15.047.205-.014.226-.307.472-.601.746-.874.281-.28.568-.526.883-.751.068-.042.075-.137.02-.2m4.16 2.453v3.341c0 .096.104.165.192.117l2.97-1.537c.068-.034.089-.117.055-.184a3.695 3.695 0 0 0-3.08-1.866c-.068 0-.136.054-.136.13m0 8.048a4.489 4.489 0 0 1-4.49-4.482 4.488 4.488 0 0 1 4.49-4.482 4.488 4.488 0 0 1 4.489 4.482 4.484 4.484 0 0 1-4.49 4.482m0-10.85a6.363 6.363 0 1 0 0 12.729 6.37 6.37 0 0 0 6.372-6.368 6.358 6.358 0 0 0-6.371-6.36"})]})})})})]}),N.items.length>0?(0,S.jsx)("main",{children:N.items.map(((e,t)=>{let{title:r,url:n,summary:s,breadcrumbs:a}=e;return(0,S.jsxs)("article",{className:w.searchResultItem,children:[(0,S.jsx)(O.A,{as:"h2",className:w.searchResultItemHeading,children:(0,S.jsx)(f.A,{to:n,dangerouslySetInnerHTML:{__html:r}})}),a.length>0&&(0,S.jsx)("nav",{"aria-label":"breadcrumbs",children:(0,S.jsx)("ul",{className:(0,i.A)("breadcrumbs",w.searchResultItemPath),children:a.map(((e,t)=>(0,S.jsx)("li",{className:"breadcrumbs__item",dangerouslySetInnerHTML:{__html:e}},t)))})}),s&&(0,S.jsx)("p",{className:w.searchResultItemSummary,dangerouslySetInnerHTML:{__html:s}})]},t)}))}):[g&&!N.loading&&(0,S.jsx)("p",{children:(0,S.jsx)(_.A,{id:"theme.SearchPage.noResultsText",description:"The paragraph for empty search result",children:"No results were found"})},"no-results"),!!N.loading&&(0,S.jsx)("div",{className:w.loadingSpinner},"spinner")],N.hasMore&&(0,S.jsx)("div",{className:w.loader,ref:I,children:(0,S.jsx)(_.A,{id:"theme.SearchPage.fetchingNewResults",description:"The paragraph for fetching new search results",children:"Fetching new results..."})})]})]})}function H(){return(0,S.jsx)(b.e3,{className:"search-page-wrapper",children:(0,S.jsx)(N,{})})}}}]); \ No newline at end of file diff --git a/build/assets/js/1a4e3797.dc00afb6.js.LICENSE.txt b/build/assets/js/1a4e3797.dc00afb6.js.LICENSE.txt new file mode 100644 index 000000000..bfc7620fe --- /dev/null +++ b/build/assets/js/1a4e3797.dc00afb6.js.LICENSE.txt @@ -0,0 +1 @@ +/*! algoliasearch-lite.umd.js | 4.24.0 | © Algolia, inc. | https://github.com/algolia/algoliasearch-client-javascript */ diff --git a/build/assets/js/1f2dc99a.676c8cca.js b/build/assets/js/1f2dc99a.676c8cca.js new file mode 100644 index 000000000..ce471d39b --- /dev/null +++ b/build/assets/js/1f2dc99a.676c8cca.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[8170],{3306:(e,o,r)=>{r.r(o),r.d(o,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>s,metadata:()=>c,toc:()=>a});var t=r(6070),n=r(1582);const s={title:"Artificial Intelligence",lang:"en-US"},i=void 0,c={id:"build-on-morph/developer-resources/use-ecosystem-developer-tools/artificial-intelligence",title:"Artificial Intelligence",description:"ORA",source:"@site/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/7-artificial-intelligence.md",sourceDirName:"build-on-morph/developer-resources/use-ecosystem-developer-tools",slug:"/build-on-morph/developer-resources/use-ecosystem-developer-tools/artificial-intelligence",permalink:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/artificial-intelligence",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/7-artificial-intelligence.md",tags:[],version:"current",sidebarPosition:7,frontMatter:{title:"Artificial Intelligence",lang:"en-US"},sidebar:"DeveloperSidebar",previous:{title:"Block Explorer",permalink:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/block-explorer"},next:{title:"Decentralized Naming Services",permalink:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/decentralized-naming-services"}},l={},a=[{value:"ORA",id:"ora",level:3}];function d(e){const o={a:"a",h3:"h3",img:"img",p:"p",...(0,n.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(o.h3,{id:"ora",children:"ORA"}),"\n",(0,t.jsx)(o.p,{children:(0,t.jsx)(o.img,{alt:"ORA",src:r(1078).A+"",width:"2880",height:"1476"})}),"\n",(0,t.jsx)(o.p,{children:"ORA provides chain-agnostic infrastructure that bridges the gap between AI and blockchain."}),"\n",(0,t.jsx)(o.p,{children:"ORA empower developers with the tools necessary to build end-to-end trustless and decentralized applications enhanced by verifiable AI."}),"\n",(0,t.jsxs)(o.p,{children:["You can find the contract addresses to our AI Oracle on Morph ",(0,t.jsx)(o.a,{href:"https://docs.ora.io/doc/ai-oracle/ai-oracle/references#morph-mainnet",children:"here"})]})]})}function p(e={}){const{wrapper:o}={...(0,n.R)(),...e.components};return o?(0,t.jsx)(o,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},1078:(e,o,r)=>{r.d(o,{A:()=>t});const t=r.p+"assets/images/biconomy-837b6cf4a7c94f3bf1da46a565cc25e6.png"},1582:(e,o,r)=>{r.d(o,{R:()=>i,x:()=>c});var t=r(758);const n={},s=t.createContext(n);function i(e){const o=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function c(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),t.createElement(s.Provider,{value:o},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/22a82985.7edbc764.js b/build/assets/js/22a82985.bcaadd20.js similarity index 98% rename from build/assets/js/22a82985.7edbc764.js rename to build/assets/js/22a82985.bcaadd20.js index 7a468ce3a..6d4104ea8 100644 --- a/build/assets/js/22a82985.7edbc764.js +++ b/build/assets/js/22a82985.bcaadd20.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[7990],{9825:(e,a,c)=>{c.r(a),c.d(a,{assets:()=>r,contentTitle:()=>b,default:()=>o,frontMatter:()=>f,metadata:()=>s,toc:()=>t});var d=c(3274),n=c(2333);const f={title:"Morph JSON-RPC API Methods",lang:"en-US"},b=void 0,s={id:"build-on-morph/developer-resources/morph-json-rpc-api-methods",title:"Morph JSON-RPC API Methods",description:"Most methods are similar to Ethereum's. For those methods, we recommend you visit Ethereum JSON-RPC API.",source:"@site/docs/build-on-morph/developer-resources/3-morph-json-rpc-api-methods.md",sourceDirName:"build-on-morph/developer-resources",slug:"/build-on-morph/developer-resources/morph-json-rpc-api-methods",permalink:"/docs/build-on-morph/developer-resources/morph-json-rpc-api-methods",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/developer-resources/3-morph-json-rpc-api-methods.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{title:"Morph JSON-RPC API Methods",lang:"en-US"},sidebar:"DeveloperSidebar",previous:{title:"Dapp Examples on Morph",permalink:"/docs/build-on-morph/developer-resources/dapp-examples-on-morph"}},r={},t=[{value:"morph_getBlockByNumber",id:"morph_getblockbynumber",level:2},{value:"Parameters",id:"parameters",level:3},{value:"Returns",id:"returns",level:3},{value:"Example",id:"example",level:3},{value:"morph_getBlockByHash",id:"morph_getblockbyhash",level:2},{value:"Parameters",id:"parameters-1",level:3},{value:"Returns",id:"returns-1",level:3},{value:"morph_estimateL1DataFee",id:"morph_estimatel1datafee",level:2},{value:"Parameters",id:"parameters-2",level:3},{value:"Returns",id:"returns-2",level:3},{value:"Example",id:"example-1",level:3},{value:"morph_getNumSkippedTransactions",id:"morph_getnumskippedtransactions",level:2},{value:"Parameters",id:"parameters-3",level:3},{value:"Returns",id:"returns-3",level:3},{value:"Example",id:"example-2",level:3},{value:"morph_getSkippedTransactionHashes",id:"morph_getskippedtransactionhashes",level:2},{value:"Parameters",id:"parameters-4",level:3},{value:"Returns",id:"returns-4",level:3},{value:"Example",id:"example-3",level:3},{value:"morph_getSkippedTransaction",id:"morph_getskippedtransaction",level:2},{value:"Parameters",id:"parameters-5",level:3},{value:"Returns",id:"returns-5",level:3},{value:"Example",id:"example-4",level:3},{value:"morph_getSkippedTransactionHashes",id:"morph_getskippedtransactionhashes-1",level:2},{value:"Parameters",id:"parameters-6",level:3},{value:"Returns",id:"returns-6",level:3},{value:"Example",id:"example-5",level:3},{value:"morph_GetBlockTraceByNumberOrHash",id:"morph_getblocktracebynumberorhash",level:2},{value:"Parameters",id:"parameters-7",level:2},{value:"Example",id:"example-6",level:2}];function i(e){const a={a:"a",code:"code",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,n.R)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(a.p,{children:["Most methods are similar to Ethereum's. For those methods, we recommend you visit ",(0,d.jsx)(a.a,{href:"https://ethereum.org/en/developers/docs/apis/json-rpc/#json-rpc-methods",children:"Ethereum JSON-RPC API"}),"."]}),"\n",(0,d.jsx)(a.p,{children:"This page lists some unique methods exclusive to Morph."}),"\n",(0,d.jsx)(a.h2,{id:"morph_getblockbynumber",children:"morph_getBlockByNumber"}),"\n",(0,d.jsxs)(a.p,{children:["Returns information about a block by block number. In addition, it returns more fields than the standard eth_getBlockByNumber, such as ",(0,d.jsx)(a.strong,{children:"withdrawTrieRoot"}),", ",(0,d.jsx)(a.strong,{children:"batchHash"}),", ",(0,d.jsx)(a.strong,{children:"nextL1MsgIndex"})," and ",(0,d.jsx)(a.strong,{children:"rowConsumption"}),"."]}),"\n",(0,d.jsx)(a.h3,{id:"parameters",children:"Parameters"}),"\n",(0,d.jsxs)(a.ol,{children:["\n",(0,d.jsx)(a.li,{children:'QUANTITY|TAG - integer of a block number, or the string "earliest", "latest", "pending", "safe" or "finalized", as in the default block parameter.'}),"\n",(0,d.jsx)(a.li,{children:"Boolean - If true it returns the full transaction objects, if false only the hashes of the transactions."}),"\n"]}),"\n",(0,d.jsx)(a.h3,{id:"returns",children:"Returns"}),"\n",(0,d.jsxs)(a.p,{children:["See ",(0,d.jsx)(a.a,{href:"https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbyhash",children:"JSON-RPC API | ethereum.org"}),", and more fields showing as the blew"]}),"\n",(0,d.jsxs)(a.ul,{children:["\n",(0,d.jsx)(a.li,{children:"withdrawTrieRoot: DATA, 32 Bytes - the root of the withdraw trie, used to prove the users\u2019 withdrawals."}),"\n",(0,d.jsx)(a.li,{children:"batchHash: DATA, 32 Bytes - the hash of the latest batch. It indicates the block is a batch point if it is not empty."}),"\n",(0,d.jsx)(a.li,{children:"nextL1MsgIndex: quantity - the next expected L1 message nonce after this block."}),"\n",(0,d.jsx)(a.li,{children:"rowConsumption: the rows consumption of this block, which rows are used to generate the ZK Proof based on halo2 schema."}),"\n"]}),"\n",(0,d.jsx)(a.h3,{id:"example",children:"Example"}),"\n",(0,d.jsx)(a.pre,{children:(0,d.jsx)(a.code,{className:"language-js",children:'// request\ncurl -X POST --data \'{"jsonrpc":"2.0","method":"morph_getBlockByNumber","params":["0x1b4", true],"id":1}\'\n\n// Result\n{\n "jsonrpc": "2.0",\n "id": 1,\n "result": {\n "batchHash": "0x0000000000000000000000000000000000000000000000000000000000000000",\n "difficulty": "0x0",\n "extraData": "0x",\n "gasLimit": "0x989680",\n "gasUsed": "0x0",\n "hash": "0xbc979055d001fe70ed637edd20e918bc583c84c35372f4cdf04253ec34b99178",\n "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",\n "miner": "0x0000000000000000000000000000000000000000",\n "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",\n "nextL1MsgIndex": "0x0",\n "nonce": "0x0000000000000000",\n "number": "0x1b4",\n "parentHash": "0xff26c60bca2d08d9b0d17431a4c9d80d007dace61fb551bdf7c376d16bc77441",\n "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",\n "rowConsumption": [\n {\n "name": "evm",\n "row_number": 2\n },\n {\n "name": "state",\n "row_number": 4\n },\n {\n "name": "bytecode",\n "row_number": 0\n },\n {\n "name": "copy",\n "row_number": 4\n },\n {\n "name": "keccak",\n "row_number": 1591\n },\n {\n "name": "tx",\n "row_number": 0\n },\n {\n "name": "rlp",\n "row_number": 0\n },\n {\n "name": "exp",\n "row_number": 150\n },\n {\n "name": "mod_exp",\n "row_number": 0\n },\n {\n "name": "pi",\n "row_number": 0\n },\n {\n "name": "poseidon",\n "row_number": 1222\n },\n {\n "name": "sig",\n "row_number": 0\n },\n {\n "name": "ecc",\n "row_number": 0\n },\n {\n "name": "mpt",\n "row_number": 101\n }\n ],\n "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",\n "size": "0x1fe",\n "stateRoot": "0x1492cc1cebd586279388370e1184960e289d180eb867aa076fbad54aeb0a855b",\n "timestamp": "0x6619043f",\n "totalDifficulty": "0x0",\n "transactions": [],\n "transactionsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",\n "uncles": [],\n "withdrawTrieRoot": "0x27ae5ba08d7291c96c8cbddcc148bf48a6d68c7974b94356f53754ef6171d757"\n }\n}\n'})}),"\n",(0,d.jsx)(a.h2,{id:"morph_getblockbyhash",children:"morph_getBlockByHash"}),"\n",(0,d.jsx)(a.p,{children:"Returns information about a block by hash."}),"\n",(0,d.jsx)(a.h3,{id:"parameters-1",children:"Parameters"}),"\n",(0,d.jsxs)(a.ul,{children:["\n",(0,d.jsx)(a.li,{children:"DATA, 32 Bytes - Hash of a block."}),"\n",(0,d.jsx)(a.li,{children:"Boolean - If true it returns the full transaction objects, if false only the hashes of the transactions."}),"\n"]}),"\n",(0,d.jsx)(a.h3,{id:"returns-1",children:"Returns"}),"\n",(0,d.jsxs)(a.p,{children:["See ",(0,d.jsx)(a.a,{href:"#morph_getblockbynumber",children:"morph_getBlockByNumber returns"})]}),"\n",(0,d.jsx)(a.h2,{id:"morph_estimatel1datafee",children:"morph_estimateL1DataFee"}),"\n",(0,d.jsx)(a.p,{children:"Generates and returns an estimate of how much L1DataFee the transaction will cost."}),"\n",(0,d.jsx)(a.h3,{id:"parameters-2",children:"Parameters"}),"\n",(0,d.jsxs)(a.ol,{children:["\n",(0,d.jsxs)(a.li,{children:["Object - TransactionArgs","\n",(0,d.jsxs)(a.ul,{children:["\n",(0,d.jsx)(a.li,{children:"from: DATA, 20 Bytes - (optional) The address the transaction is sent from."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,d.jsxs)(a.ul,{children:["\n",(0,d.jsx)(a.li,{children:"to: DATA, 20 Bytes - The address the transaction is directed to."}),"\n",(0,d.jsx)(a.li,{children:"gas: QUANTITY - (optional) Integer of the gas provided for the transaction execution. eth_call consumes zero gas, but this parameter may be needed by some executions."}),"\n",(0,d.jsx)(a.li,{children:"gasPrice: QUANTITY - (optional) Integer of the gasPrice used for each paid gas."}),"\n",(0,d.jsx)(a.li,{children:"value: QUANTITY - (optional) Integer of the value sent with this transaction."}),"\n",(0,d.jsx)(a.li,{children:"input: DATA - (optional) Hash of the method signature and encoded parameters."}),"\n"]}),"\n",(0,d.jsxs)(a.ol,{start:"2",children:["\n",(0,d.jsx)(a.li,{children:'QUANTITY|TAG - integer block number, or the string "latest", "earliest", "pending", "safe" or "finalized".'}),"\n"]}),"\n",(0,d.jsx)(a.h3,{id:"returns-2",children:"Returns"}),"\n",(0,d.jsx)(a.p,{children:"QUANTITY - integer of the current l1 data fee in wei."}),"\n",(0,d.jsx)(a.h3,{id:"example-1",children:"Example"}),"\n",(0,d.jsx)(a.pre,{children:(0,d.jsx)(a.code,{className:"language-js",children:'// Request\ncurl -X POST --data \'{"jsonrpc":"2.0","method":"morph_estimateL1DataFee","params":[{see above}],"id":1}\'\n\n// Result\n{\n "id":1,\n "jsonrpc": "2.0",\n "result": "0x3f4e2160f00"\n}\n'})}),"\n",(0,d.jsx)(a.h2,{id:"morph_getnumskippedtransactions",children:"morph_getNumSkippedTransactions"}),"\n",(0,d.jsx)(a.p,{children:"Get the number of the skipped transactions"}),"\n",(0,d.jsx)(a.h3,{id:"parameters-3",children:"Parameters"}),"\n",(0,d.jsx)(a.p,{children:"None"}),"\n",(0,d.jsx)(a.h3,{id:"returns-3",children:"Returns"}),"\n",(0,d.jsx)(a.p,{children:"Quantity - integer of the number of the skipped transactions"}),"\n",(0,d.jsx)(a.h3,{id:"example-2",children:"Example"}),"\n",(0,d.jsx)(a.pre,{children:(0,d.jsx)(a.code,{className:"language-js",children:'// Request\ncurl -X POST --data \'{"jsonrpc":"2.0","method":"morph_getNumSkippedTransactions","params":[],"id":1}\'\n\n// Result\n{\n "id":1,\n "jsonrpc": "2.0",\n "result": "0"\n}\n'})}),"\n",(0,d.jsx)(a.h2,{id:"morph_getskippedtransactionhashes",children:"morph_getSkippedTransactionHashes"}),"\n",(0,d.jsx)(a.p,{children:"Get a list of skipped transaction hashes between the two indices provided (inclusive)"}),"\n",(0,d.jsx)(a.h3,{id:"parameters-4",children:"Parameters"}),"\n",(0,d.jsxs)(a.ol,{children:["\n",(0,d.jsx)(a.li,{children:"from index"}),"\n",(0,d.jsx)(a.li,{children:"to index"}),"\n"]}),"\n",(0,d.jsx)(a.h3,{id:"returns-4",children:"Returns"}),"\n",(0,d.jsx)(a.p,{children:"Arrays of transaction hashes"}),"\n",(0,d.jsx)(a.h3,{id:"example-3",children:"Example"}),"\n",(0,d.jsx)(a.pre,{children:(0,d.jsx)(a.code,{className:"language-js",children:'// Request\ncurl -X POST --data \'{"jsonrpc":"2.0","method":"morph_getSkippedTransactionHashes","params":[0, 1],"id":1}\'\n\n// Result\n{\n "id":1,\n "jsonrpc": "2.0",\n "result": [\u201c0x\u2026.\u201d,\u201d0x\u2026.\u201d]\n}\n\n'})}),"\n",(0,d.jsx)(a.h2,{id:"morph_getskippedtransaction",children:"morph_getSkippedTransaction"}),"\n",(0,d.jsx)(a.p,{children:"Get a skipped transaction by its hash."}),"\n",(0,d.jsx)(a.h3,{id:"parameters-5",children:"Parameters"}),"\n",(0,d.jsx)(a.p,{children:"DATA, 32 Bytes - Hash of a transaction."}),"\n",(0,d.jsx)(a.h3,{id:"returns-5",children:"Returns"}),"\n",(0,d.jsx)(a.p,{children:"Object - a transaction object(see JSON-RPC API | ethereum.org), an some extended fields:"}),"\n",(0,d.jsxs)(a.ul,{children:["\n",(0,d.jsx)(a.li,{children:"sender: DATA, 20 Bytes - address of the sender."}),"\n",(0,d.jsx)(a.li,{children:"queueIndex: QUANTITY - integer of the L1Message index."}),"\n",(0,d.jsx)(a.li,{children:"skipReason: string - the skip reason of this transaction."}),"\n",(0,d.jsx)(a.li,{children:"skipBlockNumber: quantity - integer of the block number where the transaction is skipped."}),"\n",(0,d.jsx)(a.li,{children:"skipBlockHash: DATA, 32 Bytes - hash of the block where the transaction is skipped."}),"\n"]}),"\n",(0,d.jsx)(a.h3,{id:"example-4",children:"Example"}),"\n",(0,d.jsx)(a.pre,{children:(0,d.jsx)(a.code,{className:"language-js",children:'// Request\ncurl -X POST --data \'{"jsonrpc":"2.0","method":"morph_getSkippedTransaction","params":[\u201c0x\u2026\u201d],"id":1}\'\n\n// Result\n{\n "id":1,\n "jsonrpc": "2.0",\n "result": {\n "from": "0x59b79a4fc3e0e1646b254fb6804d8f5fa8fae7e0",\n "gas": "0x33450",\n "gasPrice": "0x0",\n "hash": "0x74e13cc35fbeffc9747dd3a5a191b2d62939ee1d1c24651adb89b470f9cf0a36",\n "input": "0x8ef1332e00000000000000000000000082c74cd310438d4938799af4c2a29587284a2ca700000000000000000000000053000000000000000000000000000000000000060000000000000000000000000000000000000000000000000de0b6b3a7640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a4232e8748000000000000000000000000f1d598fd5f8367be41b0761696e643ac092b313e000000000000000000000000f1d598fd5f8367be41b0761696e643ac092b313e0000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",\n "nonce": "0x0",\n "to": "0x5300000000000000000000000000000000000007",\n "transactionIndex": "0x0",\n "value": "0x0",\n "type": "0x7e",\n "v": "0x0",\n "r": "0x0",\n "s": "0x0",\n "sender": "0x59b79a4fc3e0e1646b254fb6804d8f5fa8fae7e0",\n "queueIndex": "0x0",\n \u201cskipReason\u201d: \u201crow consumption overflow\u201d, "skippedBlockHash":"0x61411498b0c241895d44c1bf9a9448ae8584bf434246d680980e8a5edf9ce27c",\n "skippedBlockNumber": "0x382e",\n \u201c\u201d\n}\n}\n'})}),"\n",(0,d.jsx)(a.h2,{id:"morph_getskippedtransactionhashes-1",children:"morph_getSkippedTransactionHashes"}),"\n",(0,d.jsx)(a.p,{children:"Get the batches by index"}),"\n",(0,d.jsx)(a.h3,{id:"parameters-6",children:"Parameters"}),"\n",(0,d.jsx)(a.p,{children:"Quantity - integer of the index of batch"}),"\n",(0,d.jsx)(a.h3,{id:"returns-6",children:"Returns"}),"\n",(0,d.jsx)(a.p,{children:"Object - RollupBatch"}),"\n",(0,d.jsxs)(a.ol,{children:["\n",(0,d.jsx)(a.li,{children:"version: quantity - the version of the batch"}),"\n",(0,d.jsx)(a.li,{children:"hash: DATA: 32 bytes - the batch of this batch"}),"\n",(0,d.jsx)(a.li,{children:"parentBatchHeader: bytes - the parent batch header"}),"\n",(0,d.jsx)(a.li,{children:"Chunks: arrays of chunk - Chunk: bytes : the chunk bytes of this batch"}),"\n",(0,d.jsx)(a.li,{children:"skippedL1MessageBitmap: bytes - the bitmap of the skipped L1Message"}),"\n",(0,d.jsx)(a.li,{children:"prevStateRoot: DATA: 32 bytes - the state root at the beginning of this batch"}),"\n",(0,d.jsx)(a.li,{children:"postStateRoot: DATA: 32 bytes - the state root at the end of this batch"}),"\n",(0,d.jsx)(a.li,{children:"withdrawRoot: DATA : 32 bytes - the withdraw root at the end of this batch"}),"\n",(0,d.jsx)(a.li,{children:"sidecar - the side car for the rollup transaction of the blob type"}),"\n",(0,d.jsx)(a.li,{children:"signatures - array of object of signature:"}),"\n"]}),"\n",(0,d.jsxs)(a.ul,{children:["\n",(0,d.jsx)(a.li,{children:"version: quantity - the version of sequencers"}),"\n",(0,d.jsx)(a.li,{children:"signer: quantity - the index of the registered sequencer on L1Sequencer"}),"\n",(0,d.jsx)(a.li,{children:"signerPubKey: bytes - the bls public key"}),"\n",(0,d.jsx)(a.li,{children:"signature: the bls signature of the batch signed by this signer"}),"\n"]}),"\n",(0,d.jsx)(a.h3,{id:"example-5",children:"Example"}),"\n",(0,d.jsx)(a.pre,{children:(0,d.jsx)(a.code,{className:"language-js",children:'// Request\ncurl -X POST --data \'{"jsonrpc":"2.0","method":"morph_getRollupBatchByIndex","params":[1],"id":1}\'\n\n//Result\n{\n "jsonrpc": "2.0",\n "id": 1,\n "result": {\n "version": 0,\n "hash": "0x559c75fb09451ef19968b6c17c2ed3b3f431ab496d29d0a611970bf3e377ed4f",\n "parentBatchHeader": "0x000000000000000000000000000000000000000000000000008b1cfd86e7ac16004ef7aae3e693402764e10471efc9a67c3051a44b2d5a5ad2010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440140000000000000000000000000000000000000000000000000000000000000000",\n "chunks": [\n "0x010000000000000001000000006623829f0000000000000000000000000000000000000000000000000000000000000000000000000098968000000000"\n ],\n "skippedL1MessageBitmap": "0x",\n "prevStateRoot": "0x232ce5fc696e7033ec630174d4c78aa157cc13ffba01aba5154bb900ae2b61b3",\n "postStateRoot": "0x232ce5fc696e7033ec630174d4c78aa157cc13ffba01aba5154bb900ae2b61b3",\n "withdrawRoot": "0x27ae5ba08d7291c96c8cbddcc148bf48a6d68c7974b94356f53754ef6171d757",\n "sidecar": {\n "Blobs": [\n [...]\n ],\n "Commitments": [\n [...]\n ],\n "Proofs": [\n [...]\n ]\n },\n "signatures": [\n {\n "version": 0,\n "signer": 0,\n "signerPubKey": "0x00000000000000000000000000000000095ad465c2895ee825c7d4f1b60a18734db57d4108369e47c6e3a94ee15846f825c06dad5d98f503bd31ece1d9f94b11000000000000000000000000000000000c5d6ba04bc9b9674dd2acbfc5caed3976c1b8be2ec90a03d78dffe924648b4fba82225aff43c744310c6a60185b75ac000000000000000000000000000000000fce6be001c871a11b9db1c6c15f0a6999de5646941a74486206dc784f0b3ffe11799212f3f44ef754b4a0f1ecf85639000000000000000000000000000000000b2f06634e5ea719682c30911c94dfb560f0b7656b5c34a871ea035e3fe7b041885420f8fe1e251f1cce5cdb7514869e",\n "signature": "0x079ff817623be61e3dc48ad755020d3eb37e47697e97394df3707248e5e923d8cb92cc2c788e2e19eb21d878224e3e2a023170f091b979dbdc5ac47e95a1e3e6edf5a91279b3c89e871927370abeefd43430b561b640d91f0f474db8e871f05f"\n },\n {\n "version": 0,\n "signer": 1,\n "signerPubKey": "0x0000000000000000000000000000000010173aeac4ff317e8e60493f962b91dbd27614e1f6594e17d18a02968bd1fd698b6703092ab8622cd22d6948d9421156000000000000000000000000000000000801aea15697ab4d7a808be45377e4f0d2f54857fdc04031e476402ff16c66a6cbcc5f09a84bf85400c8afbabed006600000000000000000000000000000000015fc71b2c4e81148274e6169c9c9aace8c34fa6030547650242b6c32527dd23a996416e32640bce4f495a0afabc7dbb900000000000000000000000000000000088c4a0dffccc96bce47aef0e176b129457a5f3ae1651b132ddb418e9f7b5850a38c6fec1be6d169eb88dc1619648bf4",\n "signature": "0x05784fcf2c9b50b2503282a464106ce6bad4d29798869d2d24dae047eba48662ef66b54f193a4a0aad511cee57b8fc960b44e478cfc0c021a92dba44495ffa9237f4cf4f9865bb8fb95cee9bb32f2b283940bce6d8f4fdfe89bec0c186ecc429"\n },\n {\n "version": 0,\n "signer": 2,\n "signerPubKey": "0x0000000000000000000000000000000003fd9468a8ceffc1b696874517777ef8bfdc9a1bade95c480ee2624903e648c1caf01c65de5b4fda8876a3a0e8d9f0890000000000000000000000000000000004c02f3609a0f61d12fe737dcbb047d5253bd3ff905b55c0e0f932b476fd77d172a58b72ef0f506407870988dd6038220000000000000000000000000000000017fa5765899f60f7a58f8ccdaaa295cde55992231710672692ba6a71a4faa9572f728f438ded65576a570d57e19fd304000000000000000000000000000000001226138813bde98af3464ed03649d8c731bc4e5cb3d26b53bf7483f4105d18bbb3f19e23905119e156e7d003d2fd125c",\n "signature": "0x17d127f711bbfd578f3a9d6c897f6eb4c109f2b12ec16c7976c2146325b718ac06713ecfd168b1abd60d5c4d84b8c75105019a522a96f9d28974dafab640e146abc29322e5550bdb606bcf768c1d7de468fa42e09f2c806bfbedcffd6cfa652c"\n },\n {\n "version": 0,\n "signer": 3,\n "signerPubKey": "0x00000000000000000000000000000000109bf02a2636c0dc1968b0a50db77251eb090c3e9f51e2a2bc60c4ac72213f41f01f0a34e92c2e0625bd62e28e27edb500000000000000000000000000000000139969bd92522113c0615659874d1fae311ad8152d0584c7b57ffc14927067486dcf86413c5684fccc1163ee2d45c1c1000000000000000000000000000000000f172603f70a0730d100ad6d28bde477195987062e8ade83b82d093935d956ff20ca768c26263577b094f1cb756adc400000000000000000000000000000000010dde3acca00b4ff1b4976500a8f97e92246f43f78cadc95c4993dfc4f4c501c33d42a4bf52587f4931287b59623149c",\n "signature": "0x053a7119c0fa920e94c8a1f32441537509f654a673af02179a01ff2c7ac6dee24b22c2f93da4b4a37bb08e2115ef097e00038d0cabdeec2ae1838aa30cb62bff8e528ac200eff0d69fbe8848646972dbb09f4cf3a06c62be0c5e314f25bdbd68"\n }\n ]\n }\n}\n\n'})}),"\n",(0,d.jsx)(a.h2,{id:"morph_getblocktracebynumberorhash",children:"morph_GetBlockTraceByNumberOrHash"}),"\n",(0,d.jsx)(a.p,{children:"It replays the block and returns the structured blockTrace for rollers."}),"\n",(0,d.jsx)(a.h2,{id:"parameters-7",children:"Parameters"}),"\n",(0,d.jsxs)(a.ol,{children:["\n",(0,d.jsx)(a.li,{children:'QUANTITY|TAG - integer of a block number, or the string "earliest", "latest", "pending", "safe" or "finalized", as in the default block parameter. Or DATA, 32 Bytes - Hash of a block.'}),"\n",(0,d.jsx)(a.li,{children:"tracerConfig(optional), see debug Namespace | go-ethereum"}),"\n"]}),"\n",(0,d.jsx)(a.h2,{id:"example-6",children:"Example"}),"\n",(0,d.jsx)(a.pre,{children:(0,d.jsx)(a.code,{className:"language-js",children:'// Request\n{"jsonrpc":"2.0","method":"morph_getBlockTraceByNumberOrHash","params":["latest"],"id":67}\n\n// Result\n{\n "jsonrpc": "2.0",\n "id": 67,\n "result": {\n "chainID": 53077,\n "version": "5.2.0-mainnet",\n "coinbase": {\n "address": "0xfabb0ac9d68b0b445fb7357272ff202c5651694a",\n "nonce": 0,\n "balance": "0x2000000000000000000000000000000000000000000000000006b49161ba10",\n "keccakCodeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",\n "poseidonCodeHash": "0x2098f5fb9e239eab3ceac3f27b81e481dc3124d55ffed523a839ee8446b64864",\n "codeSize": 0\n },\n "header": {\n "parentHash": "0xa2b3ee7a3718baeb1b460bc9a479838532c184129d0238b342e1bc9430e15961",\n "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",\n "miner": "0x0000000000000000000000000000000000000000",\n "stateRoot": "0x1492cc1cebd586279388370e1184960e289d180eb867aa076fbad54aeb0a855b",\n "transactionsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",\n "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",\n "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",\n "difficulty": "0x0",\n "number": "0x31",\n "gasLimit": "0x989680",\n "gasUsed": "0x0",\n "timestamp": "0x6618fa6a",\n "extraData": "0x",\n "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",\n "nonce": "0x0000000000000000",\n "nextL1MsgIndex": "0x0",\n "batchHash": "0x0000000000000000000000000000000000000000000000000000000000000000",\n "baseFeePerGas": null,\n "withdrawalsRoot": null,\n "blobGasUsed": null,\n "excessBlobGas": null,\n "parentBeaconBlockRoot": null,\n "hash": "0x65645773fa2056771753878cdf5a1280dff36756096e8f9c1cf51fe66690a448"\n },\n "transactions": [],\n "storageTrace": {\n "rootBefore": "0x1492cc1cebd586279388370e1184960e289d180eb867aa076fbad54aeb0a855b",\n "rootAfter": "0x1492cc1cebd586279388370e1184960e289d180eb867aa076fbad54aeb0a855b",\n "proofs": {\n "0x5300000000000000000000000000000000000001": [\n "0x09261068d5568cdf6020d6b6703b831fbc4c5928019dcc23606eceaa4cb4befd3a22bd9a05e5f4619cebb743688e2bb2510352fa7b64cee7d6c947e1c8655b3e88",\n "0x0912cea39ac19eee30407d6760f267dcaa3456c6ab30a2d7285e1ae726debdc3a228bc075d0a3a84f79e301293ac8c4188d5e58e3a30a49ca058d77784ec477d6c",\n "0x092a1073697a898cbfc740c3c327cc3bcc1517b23dd5a44ea7f7e5975a55a615790e69dfcd0c8346b28ff2dffa8db5d0c5b7ed8291eab83be0292051c2dd9a55bc",\n "0x0927f8c131313ff2ce0d551273c407fd6e94e5d9f644eab09c4c20b13e00fb5a4b1e00b9701c7f2ac25be7e3fe8ad00ce18f642d07188ff1aacc6d7a1fc44987b5",\n "0x090296736b61c7a9c43b7260c2f652d1bc941b882c0a1e71a9b8d86657cc0b9d8e1b6b72e48fe7cfc89ae526ae345245d7f6871db82148a8a0c1c9cf992e177ba2",\n "0x090a6feef711af23824583c2bcd54147c2991287ca1fbad2cbb0e9ac2f42dc0c2d1b510d4e26002d7f33e82092a7c28f26ac6cf3f2349eb23e4374ad31f3e289d0",\n "0x091a8fc20731feea420de908b0d66e7c53398f53ce5d76054cf3d0e4747ba1896222d288ea2a9d771a19771658abf5a64fd503f4ed277aa8d6f779137a88ea1c8d",\n "0x091628b91a861616a64807781ae6aaa549dae9555ef1454a85df052398404f44690f386bb59d106d7a27ff2df1de738c3fae5cf8307f84e07ac6957e3c42fa3f5e",\n "0x09220b163279be211a426832f5ff47e0ecadb5bd5eaaf0d62189998fde4e14e62913696e7ffd560b4bf7df760cbfdc330a8c5e7cf15b4e2f60fb9146fd28fe2db7",\n "0x08150feb81fe1639286c75adb93e5467d36ad52d9ff00e0c706bc5345f6dcd49500000000000000000000000000000000000000000000000000000000000000000",\n "0x081cb430cbc5dd11f62a713fb3656184085386104dc53fc135fb3c56dba49670500000000000000000000000000000000000000000000000000000000000000000",\n "0x060c320ff8f6c3907ae6df62a7fe70e2be093390bd246197d5f56b6bce56f513f812fac8f51e3812914c097147217411381b9b2dad76963ef63c261885d3a49223",\n "0x0427cfcbd2fe87474008e199ef5bff09273803bbf38032c75a36a7726b3c88f8a205080000000000000000000000000000000000000000000000000aec000000000000000000000000000000000000000000000000000000000000000000000000000000002198e2c16011cd18ef5be82557ea4552a16cc88ed8026d68fc38a18776550fa944107d7c70e67e04d35d77455d5755c94d4897196e4ea9a341c1a6d864a6d4d518d32c9790b7656cb1991e831f76e6d65151cbd1c05aef8cfa7d369ad2076f8400",\n "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449"\n ],\n "0x530000000000000000000000000000000000000f": [\n "0x09261068d5568cdf6020d6b6703b831fbc4c5928019dcc23606eceaa4cb4befd3a22bd9a05e5f4619cebb743688e2bb2510352fa7b64cee7d6c947e1c8655b3e88",\n "0x0912cea39ac19eee30407d6760f267dcaa3456c6ab30a2d7285e1ae726debdc3a228bc075d0a3a84f79e301293ac8c4188d5e58e3a30a49ca058d77784ec477d6c",\n "0x0910b680ab891bca41519a50437acf0fd6001d3843132362201baeecfefe64861d004b217e8efd3e9ff7f15214f53868836cd5341e524a6862cf599a2c91e066e4",\n "0x092bc917a3803350b7b4b99e33f5612886fe67ae2346b7b8a80c4f33ea2b2143c5157889ebd8bd189e158f8e315bf0e81eeaade2de06d9514962a676c2b5c43fe6",\n "0x0923373510953f88897d7fcfd22182f41afbc558d2f862f437a31d1919ce2e34c925c888335ad923fc91289b73b7cb65de69d93146389a6af856490d8578203517",\n "0x092ea32b06c112526e73d5c4828866500f096d35e79c13d7c1f7aa42afce901bd618bb82398f0bc28770139185439bf42dea1f543e8a0a266399ba43a3dd60f463",\n "0x09199e7116f18fc4121b627c11b0ca83bbb70b204098c01db84cd2c27ec3416bd4002ea098b20a57201744454a787c20550c1ffa4145ab218c28906ba3df5ea6cb",\n "0x0923bfab6f7b9cc20bae8ca8989ad45df9625cf0c14ee54257ffd31b2593b8385f0861f83d52b30f3b4ea0dbf9aa1b95e8864f2b2032249d6fa43ba22be66e5e82",\n "0x0609fd578e322ce608e81c29d820eca5e2d610bf211aa40fbfdfc7bd1327c9c6432a868ae99ff40d43cff3f28ff0655bf467eaa89e3d3a1493203e4abb26099b3b",\n "0x0418a86f98026d1a55f6fee616f04d51be16c033651ffaafb0514287ec067d04e805080000000000000000000000000000000000000000000000000aec00000000000000000000000000000000000000000000000000000000000000000000000000000000025f5484cf6758b2d9e10b66230e7ed93fd790931c579d1583b40a25c29b3cc944107d7c70e67e04d35d77455d5755c94d4897196e4ea9a341c1a6d864a6d4d518d32c9790b7656cb1991e831f76e6d65151cbd1c05aef8cfa7d369ad2076f8420530000000000000000000000000000000000000f000000000000000000000000",\n "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449"\n ],\n "0xFABB0ac9d68B0B445fB7357272Ff202C5651694a": [\n "0x09261068d5568cdf6020d6b6703b831fbc4c5928019dcc23606eceaa4cb4befd3a22bd9a05e5f4619cebb743688e2bb2510352fa7b64cee7d6c947e1c8655b3e88",\n "0x09132e097dde889d85b8b3309a827f0496c58979f869fe9827851d59f3af8d3bad1db74244979778c4e7c6b56496b5a3f1ee84cd42acacbc6ae3842deb5332b101",\n "0x0919474ec6b34f96f735c336cc161ed84fdd3a683fa201b518af5c2c1626f02f4612a08d77db2b9b67c38d89ed19f9ca59dadbd1699d27829f985020f6f3432959",\n "0x090dc9f8dd06d98c5a78af9836fc75823e4e2b0c95085c36dc33b8c35f5fc224d319e43044e7ac03d516f20d38f68682109407871d5f07f080c59857789fad1e46",\n "0x0907bc083c80445c99e7239f960beabcf360f7a6999ade44323b8401e0ec6842b80c789c2f71e21b35f96a71c66a774edac37ba18b809b8122d9000fbf0f8ac74b",\n "0x091e9ddabce6463c4843a7f43ce562b40bd7cc778a539486f6739bf7daf6f14bdf2da1168d26e898c81e03ba275f3474d4172c1f936d272114b87a486ae25a0c7e",\n "0x092ebed3e1476b235ef7ee7d5c160d7738aee3a9ecf02754975430203dbe05b7ce1f81e74d1f8a355b7dda2b293a8833c0926df34b6ab6516de484a7c682123e3b",\n "0x0700000000000000000000000000000000000000000000000000000000000000000bca6f26c452ec72dc90f8ac79855df88d3b88ce77a5c4ac472eea9ef7b619ae",\n "0x0824eb7acc6f05bd88d0aecfb7e170edc0f99384a54657916103d91fad99bf01030000000000000000000000000000000000000000000000000000000000000000",\n "0x072449731363c43de43d2516f39791c43a3be1e83edc3432352d81d2d1384a946e159ad10b4c89ff16157cc364c81f6039eeea9a8eb87e4b4700249219e71cc3ef",\n "0x0403d2c88868dc8b5f7994604147a8246c48cc905235de980c42c3e78f351f00c5050800000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000006b49161ba100000000000000000000000000000000000000000000000000000000000000000c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4702098f5fb9e239eab3ceac3f27b81e481dc3124d55ffed523a839ee8446b6486420fabb0ac9d68b0b445fb7357272ff202c5651694a000000000000000000000000",\n "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449"\n ]\n },\n "storageProofs": {\n "0x5300000000000000000000000000000000000001": {\n "0x0000000000000000000000000000000000000000000000000000000000000021": [\n "0x0825bcd8ed4a7e39c0f0e835761cda36131dd34f16de95765d2216d997923a52f60e38bf5d7d592ab89df92d87f260b8529d9c466b936b42ad8fbfe576bf97b200",\n "0x06216372aa3165a29ee67494a5a9680358be92c254cc5724949e4d52742ba8d57f02a40b5614637fca2783d673559f035f5f5a0588ee27d164bb5375568493200a",\n "0x042f683d080c393f5fb2ade2190fd56e8a5e8fa26533acdea8cce25caa236027cc0101000027ae5ba08d7291c96c8cbddcc148bf48a6d68c7974b94356f53754ef6171d75700",\n "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449"\n ]\n },\n "0x530000000000000000000000000000000000000f": {\n "0x0000000000000000000000000000000000000000000000000000000000000001": [\n "0x09224baa919e1495600105d8a4446f80cabd9a915d7556e0b5d2956a3ad01e96862b531affe57e7f49ddcfef93ff839a215de0865c985188f99c61838f366e2bbe",\n "0x091eb325ae1568060f3957cc990d35e5ef48b7b2bc7979151083abe2d68aabc812162b4d479ff13f2af3f0cfaadc6bccc8622dd980f83c7014e947f50577eedaba",\n "0x08015c4fc60a3c6160762783cfc0da7e9d0518e56f0f4f236b7666e1afde43c8f60e867960e703abfccf265c16aceb5c2a092c39248e00fa04f717cf3ca38dfe9e",\n "0x080782addd8b48a93860ab4cb45e80c6cc869c1288f09d52cb7dec1f6aab62deb70000000000000000000000000000000000000000000000000000000000000000",\n "0x0700000000000000000000000000000000000000000000000000000000000000000f35c10e1893b6065c8ce8ba23fcd841bb168eb35643ca124118a4e44668fab2",\n "0x080487bd50c628c019d7858418000d1393427df64c9c103a4229f7b6cb3cdf5ae60000000000000000000000000000000000000000000000000000000000000000",\n "0x0700000000000000000000000000000000000000000000000000000000000000001046b31bcd31548fa80d0a9fb9fae45e61112d689f6b9c82958033c0787f1f94",\n "0x0805b5be5c8d36bd01ef9c3d10f3d994da611bc1484e9e48f69d2224efeb811b320000000000000000000000000000000000000000000000000000000000000000",\n "0x081ebc02f6986209f10fc7d04ba0c4ef196d75ad0a22e786fc7cf789f591e9b26f0000000000000000000000000000000000000000000000000000000000000000",\n "0x0700000000000000000000000000000000000000000000000000000000000000002680dd0a6ed49fc1faf7d4ef23a8328de46b8a4c1d86e6553f4940e394673978",\n "0x0628658ea3cbfa933d0e4041f9000bcc3393a3536913008ef6e1837ba7053bdec1156a0960a84fa4287f66d18b9c39ab9d403fa6b6dddd126f47758aadcb82e122",\n "0x0426049ba6de63003492eb078a01a8aa4f4a0e67f28f0955c2eba9101d5d2eea5001010000000000000000000000000000000000000000000000000000000000000000000700",\n "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449"\n ],\n "0x0000000000000000000000000000000000000000000000000000000000000002": [\n "0x09224baa919e1495600105d8a4446f80cabd9a915d7556e0b5d2956a3ad01e96862b531affe57e7f49ddcfef93ff839a215de0865c985188f99c61838f366e2bbe",\n "0x091eb325ae1568060f3957cc990d35e5ef48b7b2bc7979151083abe2d68aabc812162b4d479ff13f2af3f0cfaadc6bccc8622dd980f83c7014e947f50577eedaba",\n "0x08015c4fc60a3c6160762783cfc0da7e9d0518e56f0f4f236b7666e1afde43c8f60e867960e703abfccf265c16aceb5c2a092c39248e00fa04f717cf3ca38dfe9e",\n "0x04020953ad52de135367a1ba2629636216ed5174cce5629d11b5d97fe733f07dcc0101000000000000000000000000000000000000000000000000000000000000000029d7200000000000000000000000000000000000000000000000000000000000000002",\n "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449"\n ],\n "0x0000000000000000000000000000000000000000000000000000000000000003": [\n "0x09224baa919e1495600105d8a4446f80cabd9a915d7556e0b5d2956a3ad01e96862b531affe57e7f49ddcfef93ff839a215de0865c985188f99c61838f366e2bbe",\n "0x07000000000000000000000000000000000000000000000000000000000000000014a36870c64d2edad5a210b41e5bdfd73e7f4201161a755c434a621ffe103cc8",\n "0x061c3181dc54d9c120fdc034e9c12d47d19f07bdeb049e492e0e7c5c9d7fe19a4d0e38bf5d7d592ab89df92d87f260b8529d9c466b936b42ad8fbfe576bf97b200",\n "0x0406c50541f08911ad149aa545dd3d606f86ee63c751a795c7d57f0d3f85e6bdeb01010000000000000000000000000000000000000000000000000000000000174876e800200000000000000000000000000000000000000000000000000000000000000003",\n "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449"\n ]\n }\n }\n },\n "executionResults": [],\n "withdraw_trie_root": "0x27ae5ba08d7291c96c8cbddcc148bf48a6d68c7974b94356f53754ef6171d757",\n "startL1QueueIndex": 0\n }\n}\n'})})]})}function o(e={}){const{wrapper:a}={...(0,n.R)(),...e.components};return a?(0,d.jsx)(a,{...e,children:(0,d.jsx)(i,{...e})}):i(e)}},2333:(e,a,c)=>{c.d(a,{R:()=>b,x:()=>s});var d=c(9474);const n={},f=d.createContext(n);function b(e){const a=d.useContext(f);return d.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function s(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:b(e.components),d.createElement(f.Provider,{value:a},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[7990],{3927:(e,a,c)=>{c.r(a),c.d(a,{assets:()=>r,contentTitle:()=>b,default:()=>o,frontMatter:()=>f,metadata:()=>s,toc:()=>t});var d=c(6070),n=c(1582);const f={title:"Morph JSON-RPC API Methods",lang:"en-US"},b=void 0,s={id:"build-on-morph/developer-resources/morph-json-rpc-api-methods",title:"Morph JSON-RPC API Methods",description:"Most methods are similar to Ethereum's. For those methods, we recommend you visit Ethereum JSON-RPC API.",source:"@site/docs/build-on-morph/developer-resources/3-morph-json-rpc-api-methods.md",sourceDirName:"build-on-morph/developer-resources",slug:"/build-on-morph/developer-resources/morph-json-rpc-api-methods",permalink:"/docs/build-on-morph/developer-resources/morph-json-rpc-api-methods",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/developer-resources/3-morph-json-rpc-api-methods.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{title:"Morph JSON-RPC API Methods",lang:"en-US"},sidebar:"DeveloperSidebar",previous:{title:"Dapp Examples on Morph",permalink:"/docs/build-on-morph/developer-resources/dapp-examples-on-morph"}},r={},t=[{value:"morph_getBlockByNumber",id:"morph_getblockbynumber",level:2},{value:"Parameters",id:"parameters",level:3},{value:"Returns",id:"returns",level:3},{value:"Example",id:"example",level:3},{value:"morph_getBlockByHash",id:"morph_getblockbyhash",level:2},{value:"Parameters",id:"parameters-1",level:3},{value:"Returns",id:"returns-1",level:3},{value:"morph_estimateL1DataFee",id:"morph_estimatel1datafee",level:2},{value:"Parameters",id:"parameters-2",level:3},{value:"Returns",id:"returns-2",level:3},{value:"Example",id:"example-1",level:3},{value:"morph_getNumSkippedTransactions",id:"morph_getnumskippedtransactions",level:2},{value:"Parameters",id:"parameters-3",level:3},{value:"Returns",id:"returns-3",level:3},{value:"Example",id:"example-2",level:3},{value:"morph_getSkippedTransactionHashes",id:"morph_getskippedtransactionhashes",level:2},{value:"Parameters",id:"parameters-4",level:3},{value:"Returns",id:"returns-4",level:3},{value:"Example",id:"example-3",level:3},{value:"morph_getSkippedTransaction",id:"morph_getskippedtransaction",level:2},{value:"Parameters",id:"parameters-5",level:3},{value:"Returns",id:"returns-5",level:3},{value:"Example",id:"example-4",level:3},{value:"morph_getSkippedTransactionHashes",id:"morph_getskippedtransactionhashes-1",level:2},{value:"Parameters",id:"parameters-6",level:3},{value:"Returns",id:"returns-6",level:3},{value:"Example",id:"example-5",level:3},{value:"morph_GetBlockTraceByNumberOrHash",id:"morph_getblocktracebynumberorhash",level:2},{value:"Parameters",id:"parameters-7",level:2},{value:"Example",id:"example-6",level:2}];function i(e){const a={a:"a",code:"code",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,n.R)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(a.p,{children:["Most methods are similar to Ethereum's. For those methods, we recommend you visit ",(0,d.jsx)(a.a,{href:"https://ethereum.org/en/developers/docs/apis/json-rpc/#json-rpc-methods",children:"Ethereum JSON-RPC API"}),"."]}),"\n",(0,d.jsx)(a.p,{children:"This page lists some unique methods exclusive to Morph."}),"\n",(0,d.jsx)(a.h2,{id:"morph_getblockbynumber",children:"morph_getBlockByNumber"}),"\n",(0,d.jsxs)(a.p,{children:["Returns information about a block by block number. In addition, it returns more fields than the standard eth_getBlockByNumber, such as ",(0,d.jsx)(a.strong,{children:"withdrawTrieRoot"}),", ",(0,d.jsx)(a.strong,{children:"batchHash"}),", ",(0,d.jsx)(a.strong,{children:"nextL1MsgIndex"})," and ",(0,d.jsx)(a.strong,{children:"rowConsumption"}),"."]}),"\n",(0,d.jsx)(a.h3,{id:"parameters",children:"Parameters"}),"\n",(0,d.jsxs)(a.ol,{children:["\n",(0,d.jsx)(a.li,{children:'QUANTITY|TAG - integer of a block number, or the string "earliest", "latest", "pending", "safe" or "finalized", as in the default block parameter.'}),"\n",(0,d.jsx)(a.li,{children:"Boolean - If true it returns the full transaction objects, if false only the hashes of the transactions."}),"\n"]}),"\n",(0,d.jsx)(a.h3,{id:"returns",children:"Returns"}),"\n",(0,d.jsxs)(a.p,{children:["See ",(0,d.jsx)(a.a,{href:"https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbyhash",children:"JSON-RPC API | ethereum.org"}),", and more fields showing as the blew"]}),"\n",(0,d.jsxs)(a.ul,{children:["\n",(0,d.jsx)(a.li,{children:"withdrawTrieRoot: DATA, 32 Bytes - the root of the withdraw trie, used to prove the users\u2019 withdrawals."}),"\n",(0,d.jsx)(a.li,{children:"batchHash: DATA, 32 Bytes - the hash of the latest batch. It indicates the block is a batch point if it is not empty."}),"\n",(0,d.jsx)(a.li,{children:"nextL1MsgIndex: quantity - the next expected L1 message nonce after this block."}),"\n",(0,d.jsx)(a.li,{children:"rowConsumption: the rows consumption of this block, which rows are used to generate the ZK Proof based on halo2 schema."}),"\n"]}),"\n",(0,d.jsx)(a.h3,{id:"example",children:"Example"}),"\n",(0,d.jsx)(a.pre,{children:(0,d.jsx)(a.code,{className:"language-js",children:'// request\ncurl -X POST --data \'{"jsonrpc":"2.0","method":"morph_getBlockByNumber","params":["0x1b4", true],"id":1}\'\n\n// Result\n{\n "jsonrpc": "2.0",\n "id": 1,\n "result": {\n "batchHash": "0x0000000000000000000000000000000000000000000000000000000000000000",\n "difficulty": "0x0",\n "extraData": "0x",\n "gasLimit": "0x989680",\n "gasUsed": "0x0",\n "hash": "0xbc979055d001fe70ed637edd20e918bc583c84c35372f4cdf04253ec34b99178",\n "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",\n "miner": "0x0000000000000000000000000000000000000000",\n "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",\n "nextL1MsgIndex": "0x0",\n "nonce": "0x0000000000000000",\n "number": "0x1b4",\n "parentHash": "0xff26c60bca2d08d9b0d17431a4c9d80d007dace61fb551bdf7c376d16bc77441",\n "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",\n "rowConsumption": [\n {\n "name": "evm",\n "row_number": 2\n },\n {\n "name": "state",\n "row_number": 4\n },\n {\n "name": "bytecode",\n "row_number": 0\n },\n {\n "name": "copy",\n "row_number": 4\n },\n {\n "name": "keccak",\n "row_number": 1591\n },\n {\n "name": "tx",\n "row_number": 0\n },\n {\n "name": "rlp",\n "row_number": 0\n },\n {\n "name": "exp",\n "row_number": 150\n },\n {\n "name": "mod_exp",\n "row_number": 0\n },\n {\n "name": "pi",\n "row_number": 0\n },\n {\n "name": "poseidon",\n "row_number": 1222\n },\n {\n "name": "sig",\n "row_number": 0\n },\n {\n "name": "ecc",\n "row_number": 0\n },\n {\n "name": "mpt",\n "row_number": 101\n }\n ],\n "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",\n "size": "0x1fe",\n "stateRoot": "0x1492cc1cebd586279388370e1184960e289d180eb867aa076fbad54aeb0a855b",\n "timestamp": "0x6619043f",\n "totalDifficulty": "0x0",\n "transactions": [],\n "transactionsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",\n "uncles": [],\n "withdrawTrieRoot": "0x27ae5ba08d7291c96c8cbddcc148bf48a6d68c7974b94356f53754ef6171d757"\n }\n}\n'})}),"\n",(0,d.jsx)(a.h2,{id:"morph_getblockbyhash",children:"morph_getBlockByHash"}),"\n",(0,d.jsx)(a.p,{children:"Returns information about a block by hash."}),"\n",(0,d.jsx)(a.h3,{id:"parameters-1",children:"Parameters"}),"\n",(0,d.jsxs)(a.ul,{children:["\n",(0,d.jsx)(a.li,{children:"DATA, 32 Bytes - Hash of a block."}),"\n",(0,d.jsx)(a.li,{children:"Boolean - If true it returns the full transaction objects, if false only the hashes of the transactions."}),"\n"]}),"\n",(0,d.jsx)(a.h3,{id:"returns-1",children:"Returns"}),"\n",(0,d.jsxs)(a.p,{children:["See ",(0,d.jsx)(a.a,{href:"#morph_getblockbynumber",children:"morph_getBlockByNumber returns"})]}),"\n",(0,d.jsx)(a.h2,{id:"morph_estimatel1datafee",children:"morph_estimateL1DataFee"}),"\n",(0,d.jsx)(a.p,{children:"Generates and returns an estimate of how much L1DataFee the transaction will cost."}),"\n",(0,d.jsx)(a.h3,{id:"parameters-2",children:"Parameters"}),"\n",(0,d.jsxs)(a.ol,{children:["\n",(0,d.jsxs)(a.li,{children:["Object - TransactionArgs","\n",(0,d.jsxs)(a.ul,{children:["\n",(0,d.jsx)(a.li,{children:"from: DATA, 20 Bytes - (optional) The address the transaction is sent from."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,d.jsxs)(a.ul,{children:["\n",(0,d.jsx)(a.li,{children:"to: DATA, 20 Bytes - The address the transaction is directed to."}),"\n",(0,d.jsx)(a.li,{children:"gas: QUANTITY - (optional) Integer of the gas provided for the transaction execution. eth_call consumes zero gas, but this parameter may be needed by some executions."}),"\n",(0,d.jsx)(a.li,{children:"gasPrice: QUANTITY - (optional) Integer of the gasPrice used for each paid gas."}),"\n",(0,d.jsx)(a.li,{children:"value: QUANTITY - (optional) Integer of the value sent with this transaction."}),"\n",(0,d.jsx)(a.li,{children:"input: DATA - (optional) Hash of the method signature and encoded parameters."}),"\n"]}),"\n",(0,d.jsxs)(a.ol,{start:"2",children:["\n",(0,d.jsx)(a.li,{children:'QUANTITY|TAG - integer block number, or the string "latest", "earliest", "pending", "safe" or "finalized".'}),"\n"]}),"\n",(0,d.jsx)(a.h3,{id:"returns-2",children:"Returns"}),"\n",(0,d.jsx)(a.p,{children:"QUANTITY - integer of the current l1 data fee in wei."}),"\n",(0,d.jsx)(a.h3,{id:"example-1",children:"Example"}),"\n",(0,d.jsx)(a.pre,{children:(0,d.jsx)(a.code,{className:"language-js",children:'// Request\ncurl -X POST --data \'{"jsonrpc":"2.0","method":"morph_estimateL1DataFee","params":[{see above}],"id":1}\'\n\n// Result\n{\n "id":1,\n "jsonrpc": "2.0",\n "result": "0x3f4e2160f00"\n}\n'})}),"\n",(0,d.jsx)(a.h2,{id:"morph_getnumskippedtransactions",children:"morph_getNumSkippedTransactions"}),"\n",(0,d.jsx)(a.p,{children:"Get the number of the skipped transactions"}),"\n",(0,d.jsx)(a.h3,{id:"parameters-3",children:"Parameters"}),"\n",(0,d.jsx)(a.p,{children:"None"}),"\n",(0,d.jsx)(a.h3,{id:"returns-3",children:"Returns"}),"\n",(0,d.jsx)(a.p,{children:"Quantity - integer of the number of the skipped transactions"}),"\n",(0,d.jsx)(a.h3,{id:"example-2",children:"Example"}),"\n",(0,d.jsx)(a.pre,{children:(0,d.jsx)(a.code,{className:"language-js",children:'// Request\ncurl -X POST --data \'{"jsonrpc":"2.0","method":"morph_getNumSkippedTransactions","params":[],"id":1}\'\n\n// Result\n{\n "id":1,\n "jsonrpc": "2.0",\n "result": "0"\n}\n'})}),"\n",(0,d.jsx)(a.h2,{id:"morph_getskippedtransactionhashes",children:"morph_getSkippedTransactionHashes"}),"\n",(0,d.jsx)(a.p,{children:"Get a list of skipped transaction hashes between the two indices provided (inclusive)"}),"\n",(0,d.jsx)(a.h3,{id:"parameters-4",children:"Parameters"}),"\n",(0,d.jsxs)(a.ol,{children:["\n",(0,d.jsx)(a.li,{children:"from index"}),"\n",(0,d.jsx)(a.li,{children:"to index"}),"\n"]}),"\n",(0,d.jsx)(a.h3,{id:"returns-4",children:"Returns"}),"\n",(0,d.jsx)(a.p,{children:"Arrays of transaction hashes"}),"\n",(0,d.jsx)(a.h3,{id:"example-3",children:"Example"}),"\n",(0,d.jsx)(a.pre,{children:(0,d.jsx)(a.code,{className:"language-js",children:'// Request\ncurl -X POST --data \'{"jsonrpc":"2.0","method":"morph_getSkippedTransactionHashes","params":[0, 1],"id":1}\'\n\n// Result\n{\n "id":1,\n "jsonrpc": "2.0",\n "result": [\u201c0x\u2026.\u201d,\u201d0x\u2026.\u201d]\n}\n\n'})}),"\n",(0,d.jsx)(a.h2,{id:"morph_getskippedtransaction",children:"morph_getSkippedTransaction"}),"\n",(0,d.jsx)(a.p,{children:"Get a skipped transaction by its hash."}),"\n",(0,d.jsx)(a.h3,{id:"parameters-5",children:"Parameters"}),"\n",(0,d.jsx)(a.p,{children:"DATA, 32 Bytes - Hash of a transaction."}),"\n",(0,d.jsx)(a.h3,{id:"returns-5",children:"Returns"}),"\n",(0,d.jsx)(a.p,{children:"Object - a transaction object(see JSON-RPC API | ethereum.org), an some extended fields:"}),"\n",(0,d.jsxs)(a.ul,{children:["\n",(0,d.jsx)(a.li,{children:"sender: DATA, 20 Bytes - address of the sender."}),"\n",(0,d.jsx)(a.li,{children:"queueIndex: QUANTITY - integer of the L1Message index."}),"\n",(0,d.jsx)(a.li,{children:"skipReason: string - the skip reason of this transaction."}),"\n",(0,d.jsx)(a.li,{children:"skipBlockNumber: quantity - integer of the block number where the transaction is skipped."}),"\n",(0,d.jsx)(a.li,{children:"skipBlockHash: DATA, 32 Bytes - hash of the block where the transaction is skipped."}),"\n"]}),"\n",(0,d.jsx)(a.h3,{id:"example-4",children:"Example"}),"\n",(0,d.jsx)(a.pre,{children:(0,d.jsx)(a.code,{className:"language-js",children:'// Request\ncurl -X POST --data \'{"jsonrpc":"2.0","method":"morph_getSkippedTransaction","params":[\u201c0x\u2026\u201d],"id":1}\'\n\n// Result\n{\n "id":1,\n "jsonrpc": "2.0",\n "result": {\n "from": "0x59b79a4fc3e0e1646b254fb6804d8f5fa8fae7e0",\n "gas": "0x33450",\n "gasPrice": "0x0",\n "hash": "0x74e13cc35fbeffc9747dd3a5a191b2d62939ee1d1c24651adb89b470f9cf0a36",\n "input": "0x8ef1332e00000000000000000000000082c74cd310438d4938799af4c2a29587284a2ca700000000000000000000000053000000000000000000000000000000000000060000000000000000000000000000000000000000000000000de0b6b3a7640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a4232e8748000000000000000000000000f1d598fd5f8367be41b0761696e643ac092b313e000000000000000000000000f1d598fd5f8367be41b0761696e643ac092b313e0000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",\n "nonce": "0x0",\n "to": "0x5300000000000000000000000000000000000007",\n "transactionIndex": "0x0",\n "value": "0x0",\n "type": "0x7e",\n "v": "0x0",\n "r": "0x0",\n "s": "0x0",\n "sender": "0x59b79a4fc3e0e1646b254fb6804d8f5fa8fae7e0",\n "queueIndex": "0x0",\n \u201cskipReason\u201d: \u201crow consumption overflow\u201d, "skippedBlockHash":"0x61411498b0c241895d44c1bf9a9448ae8584bf434246d680980e8a5edf9ce27c",\n "skippedBlockNumber": "0x382e",\n \u201c\u201d\n}\n}\n'})}),"\n",(0,d.jsx)(a.h2,{id:"morph_getskippedtransactionhashes-1",children:"morph_getSkippedTransactionHashes"}),"\n",(0,d.jsx)(a.p,{children:"Get the batches by index"}),"\n",(0,d.jsx)(a.h3,{id:"parameters-6",children:"Parameters"}),"\n",(0,d.jsx)(a.p,{children:"Quantity - integer of the index of batch"}),"\n",(0,d.jsx)(a.h3,{id:"returns-6",children:"Returns"}),"\n",(0,d.jsx)(a.p,{children:"Object - RollupBatch"}),"\n",(0,d.jsxs)(a.ol,{children:["\n",(0,d.jsx)(a.li,{children:"version: quantity - the version of the batch"}),"\n",(0,d.jsx)(a.li,{children:"hash: DATA: 32 bytes - the batch of this batch"}),"\n",(0,d.jsx)(a.li,{children:"parentBatchHeader: bytes - the parent batch header"}),"\n",(0,d.jsx)(a.li,{children:"Chunks: arrays of chunk - Chunk: bytes : the chunk bytes of this batch"}),"\n",(0,d.jsx)(a.li,{children:"skippedL1MessageBitmap: bytes - the bitmap of the skipped L1Message"}),"\n",(0,d.jsx)(a.li,{children:"prevStateRoot: DATA: 32 bytes - the state root at the beginning of this batch"}),"\n",(0,d.jsx)(a.li,{children:"postStateRoot: DATA: 32 bytes - the state root at the end of this batch"}),"\n",(0,d.jsx)(a.li,{children:"withdrawRoot: DATA : 32 bytes - the withdraw root at the end of this batch"}),"\n",(0,d.jsx)(a.li,{children:"sidecar - the side car for the rollup transaction of the blob type"}),"\n",(0,d.jsx)(a.li,{children:"signatures - array of object of signature:"}),"\n"]}),"\n",(0,d.jsxs)(a.ul,{children:["\n",(0,d.jsx)(a.li,{children:"version: quantity - the version of sequencers"}),"\n",(0,d.jsx)(a.li,{children:"signer: quantity - the index of the registered sequencer on L1Sequencer"}),"\n",(0,d.jsx)(a.li,{children:"signerPubKey: bytes - the bls public key"}),"\n",(0,d.jsx)(a.li,{children:"signature: the bls signature of the batch signed by this signer"}),"\n"]}),"\n",(0,d.jsx)(a.h3,{id:"example-5",children:"Example"}),"\n",(0,d.jsx)(a.pre,{children:(0,d.jsx)(a.code,{className:"language-js",children:'// Request\ncurl -X POST --data \'{"jsonrpc":"2.0","method":"morph_getRollupBatchByIndex","params":[1],"id":1}\'\n\n//Result\n{\n "jsonrpc": "2.0",\n "id": 1,\n "result": {\n "version": 0,\n "hash": "0x559c75fb09451ef19968b6c17c2ed3b3f431ab496d29d0a611970bf3e377ed4f",\n "parentBatchHeader": "0x000000000000000000000000000000000000000000000000008b1cfd86e7ac16004ef7aae3e693402764e10471efc9a67c3051a44b2d5a5ad2010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440140000000000000000000000000000000000000000000000000000000000000000",\n "chunks": [\n "0x010000000000000001000000006623829f0000000000000000000000000000000000000000000000000000000000000000000000000098968000000000"\n ],\n "skippedL1MessageBitmap": "0x",\n "prevStateRoot": "0x232ce5fc696e7033ec630174d4c78aa157cc13ffba01aba5154bb900ae2b61b3",\n "postStateRoot": "0x232ce5fc696e7033ec630174d4c78aa157cc13ffba01aba5154bb900ae2b61b3",\n "withdrawRoot": "0x27ae5ba08d7291c96c8cbddcc148bf48a6d68c7974b94356f53754ef6171d757",\n "sidecar": {\n "Blobs": [\n [...]\n ],\n "Commitments": [\n [...]\n ],\n "Proofs": [\n [...]\n ]\n },\n "signatures": [\n {\n "version": 0,\n "signer": 0,\n "signerPubKey": "0x00000000000000000000000000000000095ad465c2895ee825c7d4f1b60a18734db57d4108369e47c6e3a94ee15846f825c06dad5d98f503bd31ece1d9f94b11000000000000000000000000000000000c5d6ba04bc9b9674dd2acbfc5caed3976c1b8be2ec90a03d78dffe924648b4fba82225aff43c744310c6a60185b75ac000000000000000000000000000000000fce6be001c871a11b9db1c6c15f0a6999de5646941a74486206dc784f0b3ffe11799212f3f44ef754b4a0f1ecf85639000000000000000000000000000000000b2f06634e5ea719682c30911c94dfb560f0b7656b5c34a871ea035e3fe7b041885420f8fe1e251f1cce5cdb7514869e",\n "signature": "0x079ff817623be61e3dc48ad755020d3eb37e47697e97394df3707248e5e923d8cb92cc2c788e2e19eb21d878224e3e2a023170f091b979dbdc5ac47e95a1e3e6edf5a91279b3c89e871927370abeefd43430b561b640d91f0f474db8e871f05f"\n },\n {\n "version": 0,\n "signer": 1,\n "signerPubKey": "0x0000000000000000000000000000000010173aeac4ff317e8e60493f962b91dbd27614e1f6594e17d18a02968bd1fd698b6703092ab8622cd22d6948d9421156000000000000000000000000000000000801aea15697ab4d7a808be45377e4f0d2f54857fdc04031e476402ff16c66a6cbcc5f09a84bf85400c8afbabed006600000000000000000000000000000000015fc71b2c4e81148274e6169c9c9aace8c34fa6030547650242b6c32527dd23a996416e32640bce4f495a0afabc7dbb900000000000000000000000000000000088c4a0dffccc96bce47aef0e176b129457a5f3ae1651b132ddb418e9f7b5850a38c6fec1be6d169eb88dc1619648bf4",\n "signature": "0x05784fcf2c9b50b2503282a464106ce6bad4d29798869d2d24dae047eba48662ef66b54f193a4a0aad511cee57b8fc960b44e478cfc0c021a92dba44495ffa9237f4cf4f9865bb8fb95cee9bb32f2b283940bce6d8f4fdfe89bec0c186ecc429"\n },\n {\n "version": 0,\n "signer": 2,\n "signerPubKey": "0x0000000000000000000000000000000003fd9468a8ceffc1b696874517777ef8bfdc9a1bade95c480ee2624903e648c1caf01c65de5b4fda8876a3a0e8d9f0890000000000000000000000000000000004c02f3609a0f61d12fe737dcbb047d5253bd3ff905b55c0e0f932b476fd77d172a58b72ef0f506407870988dd6038220000000000000000000000000000000017fa5765899f60f7a58f8ccdaaa295cde55992231710672692ba6a71a4faa9572f728f438ded65576a570d57e19fd304000000000000000000000000000000001226138813bde98af3464ed03649d8c731bc4e5cb3d26b53bf7483f4105d18bbb3f19e23905119e156e7d003d2fd125c",\n "signature": "0x17d127f711bbfd578f3a9d6c897f6eb4c109f2b12ec16c7976c2146325b718ac06713ecfd168b1abd60d5c4d84b8c75105019a522a96f9d28974dafab640e146abc29322e5550bdb606bcf768c1d7de468fa42e09f2c806bfbedcffd6cfa652c"\n },\n {\n "version": 0,\n "signer": 3,\n "signerPubKey": "0x00000000000000000000000000000000109bf02a2636c0dc1968b0a50db77251eb090c3e9f51e2a2bc60c4ac72213f41f01f0a34e92c2e0625bd62e28e27edb500000000000000000000000000000000139969bd92522113c0615659874d1fae311ad8152d0584c7b57ffc14927067486dcf86413c5684fccc1163ee2d45c1c1000000000000000000000000000000000f172603f70a0730d100ad6d28bde477195987062e8ade83b82d093935d956ff20ca768c26263577b094f1cb756adc400000000000000000000000000000000010dde3acca00b4ff1b4976500a8f97e92246f43f78cadc95c4993dfc4f4c501c33d42a4bf52587f4931287b59623149c",\n "signature": "0x053a7119c0fa920e94c8a1f32441537509f654a673af02179a01ff2c7ac6dee24b22c2f93da4b4a37bb08e2115ef097e00038d0cabdeec2ae1838aa30cb62bff8e528ac200eff0d69fbe8848646972dbb09f4cf3a06c62be0c5e314f25bdbd68"\n }\n ]\n }\n}\n\n'})}),"\n",(0,d.jsx)(a.h2,{id:"morph_getblocktracebynumberorhash",children:"morph_GetBlockTraceByNumberOrHash"}),"\n",(0,d.jsx)(a.p,{children:"It replays the block and returns the structured blockTrace for rollers."}),"\n",(0,d.jsx)(a.h2,{id:"parameters-7",children:"Parameters"}),"\n",(0,d.jsxs)(a.ol,{children:["\n",(0,d.jsx)(a.li,{children:'QUANTITY|TAG - integer of a block number, or the string "earliest", "latest", "pending", "safe" or "finalized", as in the default block parameter. Or DATA, 32 Bytes - Hash of a block.'}),"\n",(0,d.jsx)(a.li,{children:"tracerConfig(optional), see debug Namespace | go-ethereum"}),"\n"]}),"\n",(0,d.jsx)(a.h2,{id:"example-6",children:"Example"}),"\n",(0,d.jsx)(a.pre,{children:(0,d.jsx)(a.code,{className:"language-js",children:'// Request\n{"jsonrpc":"2.0","method":"morph_getBlockTraceByNumberOrHash","params":["latest"],"id":67}\n\n// Result\n{\n "jsonrpc": "2.0",\n "id": 67,\n "result": {\n "chainID": 53077,\n "version": "5.2.0-mainnet",\n "coinbase": {\n "address": "0xfabb0ac9d68b0b445fb7357272ff202c5651694a",\n "nonce": 0,\n "balance": "0x2000000000000000000000000000000000000000000000000006b49161ba10",\n "keccakCodeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",\n "poseidonCodeHash": "0x2098f5fb9e239eab3ceac3f27b81e481dc3124d55ffed523a839ee8446b64864",\n "codeSize": 0\n },\n "header": {\n "parentHash": "0xa2b3ee7a3718baeb1b460bc9a479838532c184129d0238b342e1bc9430e15961",\n "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",\n "miner": "0x0000000000000000000000000000000000000000",\n "stateRoot": "0x1492cc1cebd586279388370e1184960e289d180eb867aa076fbad54aeb0a855b",\n "transactionsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",\n "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",\n "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",\n "difficulty": "0x0",\n "number": "0x31",\n "gasLimit": "0x989680",\n "gasUsed": "0x0",\n "timestamp": "0x6618fa6a",\n "extraData": "0x",\n "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",\n "nonce": "0x0000000000000000",\n "nextL1MsgIndex": "0x0",\n "batchHash": "0x0000000000000000000000000000000000000000000000000000000000000000",\n "baseFeePerGas": null,\n "withdrawalsRoot": null,\n "blobGasUsed": null,\n "excessBlobGas": null,\n "parentBeaconBlockRoot": null,\n "hash": "0x65645773fa2056771753878cdf5a1280dff36756096e8f9c1cf51fe66690a448"\n },\n "transactions": [],\n "storageTrace": {\n "rootBefore": "0x1492cc1cebd586279388370e1184960e289d180eb867aa076fbad54aeb0a855b",\n "rootAfter": "0x1492cc1cebd586279388370e1184960e289d180eb867aa076fbad54aeb0a855b",\n "proofs": {\n "0x5300000000000000000000000000000000000001": [\n "0x09261068d5568cdf6020d6b6703b831fbc4c5928019dcc23606eceaa4cb4befd3a22bd9a05e5f4619cebb743688e2bb2510352fa7b64cee7d6c947e1c8655b3e88",\n "0x0912cea39ac19eee30407d6760f267dcaa3456c6ab30a2d7285e1ae726debdc3a228bc075d0a3a84f79e301293ac8c4188d5e58e3a30a49ca058d77784ec477d6c",\n "0x092a1073697a898cbfc740c3c327cc3bcc1517b23dd5a44ea7f7e5975a55a615790e69dfcd0c8346b28ff2dffa8db5d0c5b7ed8291eab83be0292051c2dd9a55bc",\n "0x0927f8c131313ff2ce0d551273c407fd6e94e5d9f644eab09c4c20b13e00fb5a4b1e00b9701c7f2ac25be7e3fe8ad00ce18f642d07188ff1aacc6d7a1fc44987b5",\n "0x090296736b61c7a9c43b7260c2f652d1bc941b882c0a1e71a9b8d86657cc0b9d8e1b6b72e48fe7cfc89ae526ae345245d7f6871db82148a8a0c1c9cf992e177ba2",\n "0x090a6feef711af23824583c2bcd54147c2991287ca1fbad2cbb0e9ac2f42dc0c2d1b510d4e26002d7f33e82092a7c28f26ac6cf3f2349eb23e4374ad31f3e289d0",\n "0x091a8fc20731feea420de908b0d66e7c53398f53ce5d76054cf3d0e4747ba1896222d288ea2a9d771a19771658abf5a64fd503f4ed277aa8d6f779137a88ea1c8d",\n "0x091628b91a861616a64807781ae6aaa549dae9555ef1454a85df052398404f44690f386bb59d106d7a27ff2df1de738c3fae5cf8307f84e07ac6957e3c42fa3f5e",\n "0x09220b163279be211a426832f5ff47e0ecadb5bd5eaaf0d62189998fde4e14e62913696e7ffd560b4bf7df760cbfdc330a8c5e7cf15b4e2f60fb9146fd28fe2db7",\n "0x08150feb81fe1639286c75adb93e5467d36ad52d9ff00e0c706bc5345f6dcd49500000000000000000000000000000000000000000000000000000000000000000",\n "0x081cb430cbc5dd11f62a713fb3656184085386104dc53fc135fb3c56dba49670500000000000000000000000000000000000000000000000000000000000000000",\n "0x060c320ff8f6c3907ae6df62a7fe70e2be093390bd246197d5f56b6bce56f513f812fac8f51e3812914c097147217411381b9b2dad76963ef63c261885d3a49223",\n "0x0427cfcbd2fe87474008e199ef5bff09273803bbf38032c75a36a7726b3c88f8a205080000000000000000000000000000000000000000000000000aec000000000000000000000000000000000000000000000000000000000000000000000000000000002198e2c16011cd18ef5be82557ea4552a16cc88ed8026d68fc38a18776550fa944107d7c70e67e04d35d77455d5755c94d4897196e4ea9a341c1a6d864a6d4d518d32c9790b7656cb1991e831f76e6d65151cbd1c05aef8cfa7d369ad2076f8400",\n "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449"\n ],\n "0x530000000000000000000000000000000000000f": [\n "0x09261068d5568cdf6020d6b6703b831fbc4c5928019dcc23606eceaa4cb4befd3a22bd9a05e5f4619cebb743688e2bb2510352fa7b64cee7d6c947e1c8655b3e88",\n "0x0912cea39ac19eee30407d6760f267dcaa3456c6ab30a2d7285e1ae726debdc3a228bc075d0a3a84f79e301293ac8c4188d5e58e3a30a49ca058d77784ec477d6c",\n "0x0910b680ab891bca41519a50437acf0fd6001d3843132362201baeecfefe64861d004b217e8efd3e9ff7f15214f53868836cd5341e524a6862cf599a2c91e066e4",\n "0x092bc917a3803350b7b4b99e33f5612886fe67ae2346b7b8a80c4f33ea2b2143c5157889ebd8bd189e158f8e315bf0e81eeaade2de06d9514962a676c2b5c43fe6",\n "0x0923373510953f88897d7fcfd22182f41afbc558d2f862f437a31d1919ce2e34c925c888335ad923fc91289b73b7cb65de69d93146389a6af856490d8578203517",\n "0x092ea32b06c112526e73d5c4828866500f096d35e79c13d7c1f7aa42afce901bd618bb82398f0bc28770139185439bf42dea1f543e8a0a266399ba43a3dd60f463",\n "0x09199e7116f18fc4121b627c11b0ca83bbb70b204098c01db84cd2c27ec3416bd4002ea098b20a57201744454a787c20550c1ffa4145ab218c28906ba3df5ea6cb",\n "0x0923bfab6f7b9cc20bae8ca8989ad45df9625cf0c14ee54257ffd31b2593b8385f0861f83d52b30f3b4ea0dbf9aa1b95e8864f2b2032249d6fa43ba22be66e5e82",\n "0x0609fd578e322ce608e81c29d820eca5e2d610bf211aa40fbfdfc7bd1327c9c6432a868ae99ff40d43cff3f28ff0655bf467eaa89e3d3a1493203e4abb26099b3b",\n "0x0418a86f98026d1a55f6fee616f04d51be16c033651ffaafb0514287ec067d04e805080000000000000000000000000000000000000000000000000aec00000000000000000000000000000000000000000000000000000000000000000000000000000000025f5484cf6758b2d9e10b66230e7ed93fd790931c579d1583b40a25c29b3cc944107d7c70e67e04d35d77455d5755c94d4897196e4ea9a341c1a6d864a6d4d518d32c9790b7656cb1991e831f76e6d65151cbd1c05aef8cfa7d369ad2076f8420530000000000000000000000000000000000000f000000000000000000000000",\n "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449"\n ],\n "0xFABB0ac9d68B0B445fB7357272Ff202C5651694a": [\n "0x09261068d5568cdf6020d6b6703b831fbc4c5928019dcc23606eceaa4cb4befd3a22bd9a05e5f4619cebb743688e2bb2510352fa7b64cee7d6c947e1c8655b3e88",\n "0x09132e097dde889d85b8b3309a827f0496c58979f869fe9827851d59f3af8d3bad1db74244979778c4e7c6b56496b5a3f1ee84cd42acacbc6ae3842deb5332b101",\n "0x0919474ec6b34f96f735c336cc161ed84fdd3a683fa201b518af5c2c1626f02f4612a08d77db2b9b67c38d89ed19f9ca59dadbd1699d27829f985020f6f3432959",\n "0x090dc9f8dd06d98c5a78af9836fc75823e4e2b0c95085c36dc33b8c35f5fc224d319e43044e7ac03d516f20d38f68682109407871d5f07f080c59857789fad1e46",\n "0x0907bc083c80445c99e7239f960beabcf360f7a6999ade44323b8401e0ec6842b80c789c2f71e21b35f96a71c66a774edac37ba18b809b8122d9000fbf0f8ac74b",\n "0x091e9ddabce6463c4843a7f43ce562b40bd7cc778a539486f6739bf7daf6f14bdf2da1168d26e898c81e03ba275f3474d4172c1f936d272114b87a486ae25a0c7e",\n "0x092ebed3e1476b235ef7ee7d5c160d7738aee3a9ecf02754975430203dbe05b7ce1f81e74d1f8a355b7dda2b293a8833c0926df34b6ab6516de484a7c682123e3b",\n "0x0700000000000000000000000000000000000000000000000000000000000000000bca6f26c452ec72dc90f8ac79855df88d3b88ce77a5c4ac472eea9ef7b619ae",\n "0x0824eb7acc6f05bd88d0aecfb7e170edc0f99384a54657916103d91fad99bf01030000000000000000000000000000000000000000000000000000000000000000",\n "0x072449731363c43de43d2516f39791c43a3be1e83edc3432352d81d2d1384a946e159ad10b4c89ff16157cc364c81f6039eeea9a8eb87e4b4700249219e71cc3ef",\n "0x0403d2c88868dc8b5f7994604147a8246c48cc905235de980c42c3e78f351f00c5050800000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000006b49161ba100000000000000000000000000000000000000000000000000000000000000000c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4702098f5fb9e239eab3ceac3f27b81e481dc3124d55ffed523a839ee8446b6486420fabb0ac9d68b0b445fb7357272ff202c5651694a000000000000000000000000",\n "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449"\n ]\n },\n "storageProofs": {\n "0x5300000000000000000000000000000000000001": {\n "0x0000000000000000000000000000000000000000000000000000000000000021": [\n "0x0825bcd8ed4a7e39c0f0e835761cda36131dd34f16de95765d2216d997923a52f60e38bf5d7d592ab89df92d87f260b8529d9c466b936b42ad8fbfe576bf97b200",\n "0x06216372aa3165a29ee67494a5a9680358be92c254cc5724949e4d52742ba8d57f02a40b5614637fca2783d673559f035f5f5a0588ee27d164bb5375568493200a",\n "0x042f683d080c393f5fb2ade2190fd56e8a5e8fa26533acdea8cce25caa236027cc0101000027ae5ba08d7291c96c8cbddcc148bf48a6d68c7974b94356f53754ef6171d75700",\n "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449"\n ]\n },\n "0x530000000000000000000000000000000000000f": {\n "0x0000000000000000000000000000000000000000000000000000000000000001": [\n "0x09224baa919e1495600105d8a4446f80cabd9a915d7556e0b5d2956a3ad01e96862b531affe57e7f49ddcfef93ff839a215de0865c985188f99c61838f366e2bbe",\n "0x091eb325ae1568060f3957cc990d35e5ef48b7b2bc7979151083abe2d68aabc812162b4d479ff13f2af3f0cfaadc6bccc8622dd980f83c7014e947f50577eedaba",\n "0x08015c4fc60a3c6160762783cfc0da7e9d0518e56f0f4f236b7666e1afde43c8f60e867960e703abfccf265c16aceb5c2a092c39248e00fa04f717cf3ca38dfe9e",\n "0x080782addd8b48a93860ab4cb45e80c6cc869c1288f09d52cb7dec1f6aab62deb70000000000000000000000000000000000000000000000000000000000000000",\n "0x0700000000000000000000000000000000000000000000000000000000000000000f35c10e1893b6065c8ce8ba23fcd841bb168eb35643ca124118a4e44668fab2",\n "0x080487bd50c628c019d7858418000d1393427df64c9c103a4229f7b6cb3cdf5ae60000000000000000000000000000000000000000000000000000000000000000",\n "0x0700000000000000000000000000000000000000000000000000000000000000001046b31bcd31548fa80d0a9fb9fae45e61112d689f6b9c82958033c0787f1f94",\n "0x0805b5be5c8d36bd01ef9c3d10f3d994da611bc1484e9e48f69d2224efeb811b320000000000000000000000000000000000000000000000000000000000000000",\n "0x081ebc02f6986209f10fc7d04ba0c4ef196d75ad0a22e786fc7cf789f591e9b26f0000000000000000000000000000000000000000000000000000000000000000",\n "0x0700000000000000000000000000000000000000000000000000000000000000002680dd0a6ed49fc1faf7d4ef23a8328de46b8a4c1d86e6553f4940e394673978",\n "0x0628658ea3cbfa933d0e4041f9000bcc3393a3536913008ef6e1837ba7053bdec1156a0960a84fa4287f66d18b9c39ab9d403fa6b6dddd126f47758aadcb82e122",\n "0x0426049ba6de63003492eb078a01a8aa4f4a0e67f28f0955c2eba9101d5d2eea5001010000000000000000000000000000000000000000000000000000000000000000000700",\n "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449"\n ],\n "0x0000000000000000000000000000000000000000000000000000000000000002": [\n "0x09224baa919e1495600105d8a4446f80cabd9a915d7556e0b5d2956a3ad01e96862b531affe57e7f49ddcfef93ff839a215de0865c985188f99c61838f366e2bbe",\n "0x091eb325ae1568060f3957cc990d35e5ef48b7b2bc7979151083abe2d68aabc812162b4d479ff13f2af3f0cfaadc6bccc8622dd980f83c7014e947f50577eedaba",\n "0x08015c4fc60a3c6160762783cfc0da7e9d0518e56f0f4f236b7666e1afde43c8f60e867960e703abfccf265c16aceb5c2a092c39248e00fa04f717cf3ca38dfe9e",\n "0x04020953ad52de135367a1ba2629636216ed5174cce5629d11b5d97fe733f07dcc0101000000000000000000000000000000000000000000000000000000000000000029d7200000000000000000000000000000000000000000000000000000000000000002",\n "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449"\n ],\n "0x0000000000000000000000000000000000000000000000000000000000000003": [\n "0x09224baa919e1495600105d8a4446f80cabd9a915d7556e0b5d2956a3ad01e96862b531affe57e7f49ddcfef93ff839a215de0865c985188f99c61838f366e2bbe",\n "0x07000000000000000000000000000000000000000000000000000000000000000014a36870c64d2edad5a210b41e5bdfd73e7f4201161a755c434a621ffe103cc8",\n "0x061c3181dc54d9c120fdc034e9c12d47d19f07bdeb049e492e0e7c5c9d7fe19a4d0e38bf5d7d592ab89df92d87f260b8529d9c466b936b42ad8fbfe576bf97b200",\n "0x0406c50541f08911ad149aa545dd3d606f86ee63c751a795c7d57f0d3f85e6bdeb01010000000000000000000000000000000000000000000000000000000000174876e800200000000000000000000000000000000000000000000000000000000000000003",\n "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449"\n ]\n }\n }\n },\n "executionResults": [],\n "withdraw_trie_root": "0x27ae5ba08d7291c96c8cbddcc148bf48a6d68c7974b94356f53754ef6171d757",\n "startL1QueueIndex": 0\n }\n}\n'})})]})}function o(e={}){const{wrapper:a}={...(0,n.R)(),...e.components};return a?(0,d.jsx)(a,{...e,children:(0,d.jsx)(i,{...e})}):i(e)}},1582:(e,a,c)=>{c.d(a,{R:()=>b,x:()=>s});var d=c(758);const n={},f=d.createContext(n);function b(e){const a=d.useContext(f);return d.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function s(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:b(e.components),d.createElement(f.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/24734b3e.3ad301c1.js b/build/assets/js/24734b3e.528e753c.js similarity index 83% rename from build/assets/js/24734b3e.3ad301c1.js rename to build/assets/js/24734b3e.528e753c.js index 9919bce45..b8750f235 100644 --- a/build/assets/js/24734b3e.3ad301c1.js +++ b/build/assets/js/24734b3e.528e753c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[933],{5758:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>a,frontMatter:()=>s,metadata:()=>d,toc:()=>l});var n=o(3274),r=o(2333);const s={},c="Interface: StateRoot",d={id:"build-on-morph/sdk/interfaces/StateRoot",title:"StateRoot",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/interfaces/StateRoot.md",sourceDirName:"build-on-morph/sdk/interfaces",slug:"/build-on-morph/sdk/interfaces/StateRoot",permalink:"/docs/build-on-morph/sdk/interfaces/StateRoot",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/interfaces/StateRoot.md",tags:[],version:"current",frontMatter:{}},i={},l=[{value:"Properties",id:"properties",level:2},{value:"batch",id:"batch",level:3},{value:"Source",id:"source",level:4},{value:"stateRoot",id:"stateroot",level:3},{value:"Source",id:"source-1",level:4},{value:"stateRootIndexInBatch",id:"staterootindexinbatch",level:3},{value:"Source",id:"source-2",level:4}];function h(e){const t={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",p:"p",strong:"strong",...(0,r.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,n.jsx)(t.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,n.jsx)(t.strong,{children:"Docs"})]}),"\n",(0,n.jsx)(t.hr,{}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / StateRoot"]}),"\n",(0,n.jsx)(t.h1,{id:"interface-stateroot",children:"Interface: StateRoot"}),"\n",(0,n.jsx)(t.p,{children:"Information about a state root, including header, block number, and root iself."}),"\n",(0,n.jsx)(t.h2,{id:"properties",children:"Properties"}),"\n",(0,n.jsx)(t.h3,{id:"batch",children:"batch"}),"\n",(0,n.jsxs)(t.blockquote,{children:["\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"batch"}),": ",(0,n.jsx)(t.a,{href:"/docs/build-on-morph/sdk/interfaces/StateRootBatch",children:(0,n.jsx)(t.code,{children:"StateRootBatch"})})]}),"\n"]}),"\n",(0,n.jsx)(t.h4,{id:"source",children:"Source"}),"\n",(0,n.jsx)(t.p,{children:"src/interfaces/types.ts:339"}),"\n",(0,n.jsx)(t.hr,{}),"\n",(0,n.jsx)(t.h3,{id:"stateroot",children:"stateRoot"}),"\n",(0,n.jsxs)(t.blockquote,{children:["\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"stateRoot"}),": ",(0,n.jsx)(t.code,{children:"string"})]}),"\n"]}),"\n",(0,n.jsx)(t.h4,{id:"source-1",children:"Source"}),"\n",(0,n.jsx)(t.p,{children:"src/interfaces/types.ts:337"}),"\n",(0,n.jsx)(t.hr,{}),"\n",(0,n.jsx)(t.h3,{id:"staterootindexinbatch",children:"stateRootIndexInBatch"}),"\n",(0,n.jsxs)(t.blockquote,{children:["\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"stateRootIndexInBatch"}),": ",(0,n.jsx)(t.code,{children:"number"})]}),"\n"]}),"\n",(0,n.jsx)(t.h4,{id:"source-2",children:"Source"}),"\n",(0,n.jsx)(t.p,{children:"src/interfaces/types.ts:338"})]})}function a(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},2333:(e,t,o)=>{o.d(t,{R:()=>c,x:()=>d});var n=o(9474);const r={},s=n.createContext(r);function c(e){const t=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:c(e.components),n.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[933],{5660:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>a,frontMatter:()=>s,metadata:()=>d,toc:()=>l});var n=o(6070),r=o(1582);const s={},c="Interface: StateRoot",d={id:"build-on-morph/sdk/interfaces/StateRoot",title:"StateRoot",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/interfaces/StateRoot.md",sourceDirName:"build-on-morph/sdk/interfaces",slug:"/build-on-morph/sdk/interfaces/StateRoot",permalink:"/docs/build-on-morph/sdk/interfaces/StateRoot",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/interfaces/StateRoot.md",tags:[],version:"current",frontMatter:{}},i={},l=[{value:"Properties",id:"properties",level:2},{value:"batch",id:"batch",level:3},{value:"Source",id:"source",level:4},{value:"stateRoot",id:"stateroot",level:3},{value:"Source",id:"source-1",level:4},{value:"stateRootIndexInBatch",id:"staterootindexinbatch",level:3},{value:"Source",id:"source-2",level:4}];function h(e){const t={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",p:"p",strong:"strong",...(0,r.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,n.jsx)(t.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,n.jsx)(t.strong,{children:"Docs"})]}),"\n",(0,n.jsx)(t.hr,{}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / StateRoot"]}),"\n",(0,n.jsx)(t.h1,{id:"interface-stateroot",children:"Interface: StateRoot"}),"\n",(0,n.jsx)(t.p,{children:"Information about a state root, including header, block number, and root iself."}),"\n",(0,n.jsx)(t.h2,{id:"properties",children:"Properties"}),"\n",(0,n.jsx)(t.h3,{id:"batch",children:"batch"}),"\n",(0,n.jsxs)(t.blockquote,{children:["\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"batch"}),": ",(0,n.jsx)(t.a,{href:"/docs/build-on-morph/sdk/interfaces/StateRootBatch",children:(0,n.jsx)(t.code,{children:"StateRootBatch"})})]}),"\n"]}),"\n",(0,n.jsx)(t.h4,{id:"source",children:"Source"}),"\n",(0,n.jsx)(t.p,{children:"src/interfaces/types.ts:339"}),"\n",(0,n.jsx)(t.hr,{}),"\n",(0,n.jsx)(t.h3,{id:"stateroot",children:"stateRoot"}),"\n",(0,n.jsxs)(t.blockquote,{children:["\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"stateRoot"}),": ",(0,n.jsx)(t.code,{children:"string"})]}),"\n"]}),"\n",(0,n.jsx)(t.h4,{id:"source-1",children:"Source"}),"\n",(0,n.jsx)(t.p,{children:"src/interfaces/types.ts:337"}),"\n",(0,n.jsx)(t.hr,{}),"\n",(0,n.jsx)(t.h3,{id:"staterootindexinbatch",children:"stateRootIndexInBatch"}),"\n",(0,n.jsxs)(t.blockquote,{children:["\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"stateRootIndexInBatch"}),": ",(0,n.jsx)(t.code,{children:"number"})]}),"\n"]}),"\n",(0,n.jsx)(t.h4,{id:"source-2",children:"Source"}),"\n",(0,n.jsx)(t.p,{children:"src/interfaces/types.ts:338"})]})}function a(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},1582:(e,t,o)=>{o.d(t,{R:()=>c,x:()=>d});var n=o(758);const r={},s=n.createContext(r);function c(e){const t=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:c(e.components),n.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/25bec567.812fc80e.js b/build/assets/js/25bec567.812fc80e.js deleted file mode 100644 index ea7f9edfd..000000000 --- a/build/assets/js/25bec567.812fc80e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[690],{660:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>a,frontMatter:()=>n,metadata:()=>d,toc:()=>h});var r=o(3274),s=o(2333);const n={},c="Interface: StateRootBatch",d={id:"build-on-morph/sdk/interfaces/StateRootBatch",title:"StateRootBatch",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/interfaces/StateRootBatch.md",sourceDirName:"build-on-morph/sdk/interfaces",slug:"/build-on-morph/sdk/interfaces/StateRootBatch",permalink:"/docs/build-on-morph/sdk/interfaces/StateRootBatch",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/interfaces/StateRootBatch.md",tags:[],version:"current",frontMatter:{}},i={},h=[{value:"Properties",id:"properties",level:2},{value:"blockNumber",id:"blocknumber",level:3},{value:"Source",id:"source",level:4},{value:"header",id:"header",level:3},{value:"Source",id:"source-1",level:4},{value:"stateRoots",id:"stateroots",level:3},{value:"Source",id:"source-2",level:4}];function l(e){const t={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",p:"p",strong:"strong",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,r.jsx)(t.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,r.jsx)(t.strong,{children:"Docs"})]}),"\n",(0,r.jsx)(t.hr,{}),"\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / StateRootBatch"]}),"\n",(0,r.jsx)(t.h1,{id:"interface-staterootbatch",children:"Interface: StateRootBatch"}),"\n",(0,r.jsx)(t.p,{children:"Information about a batch of state roots."}),"\n",(0,r.jsx)(t.h2,{id:"properties",children:"Properties"}),"\n",(0,r.jsx)(t.h3,{id:"blocknumber",children:"blockNumber"}),"\n",(0,r.jsxs)(t.blockquote,{children:["\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.strong,{children:"blockNumber"}),": ",(0,r.jsx)(t.code,{children:"number"})]}),"\n"]}),"\n",(0,r.jsx)(t.h4,{id:"source",children:"Source"}),"\n",(0,r.jsx)(t.p,{children:"src/interfaces/types.ts:346"}),"\n",(0,r.jsx)(t.hr,{}),"\n",(0,r.jsx)(t.h3,{id:"header",children:"header"}),"\n",(0,r.jsxs)(t.blockquote,{children:["\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.strong,{children:"header"}),": ",(0,r.jsx)(t.a,{href:"/docs/build-on-morph/sdk/interfaces/StateRootBatchHeader",children:(0,r.jsx)(t.code,{children:"StateRootBatchHeader"})})]}),"\n"]}),"\n",(0,r.jsx)(t.h4,{id:"source-1",children:"Source"}),"\n",(0,r.jsx)(t.p,{children:"src/interfaces/types.ts:347"}),"\n",(0,r.jsx)(t.hr,{}),"\n",(0,r.jsx)(t.h3,{id:"stateroots",children:"stateRoots"}),"\n",(0,r.jsxs)(t.blockquote,{children:["\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.strong,{children:"stateRoots"}),": ",(0,r.jsx)(t.code,{children:"string"}),"[]"]}),"\n"]}),"\n",(0,r.jsx)(t.h4,{id:"source-2",children:"Source"}),"\n",(0,r.jsx)(t.p,{children:"src/interfaces/types.ts:348"})]})}function a(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}},2333:(e,t,o)=>{o.d(t,{R:()=>c,x:()=>d});var r=o(9474);const s={},n=r.createContext(s);function c(e){const t=r.useContext(n);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:c(e.components),r.createElement(n.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/25bec567.8e13158b.js b/build/assets/js/25bec567.8e13158b.js new file mode 100644 index 000000000..e64dd3deb --- /dev/null +++ b/build/assets/js/25bec567.8e13158b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[690],{3406:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>a,frontMatter:()=>n,metadata:()=>d,toc:()=>h});var r=o(6070),s=o(1582);const n={},c="Interface: StateRootBatch",d={id:"build-on-morph/sdk/interfaces/StateRootBatch",title:"StateRootBatch",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/interfaces/StateRootBatch.md",sourceDirName:"build-on-morph/sdk/interfaces",slug:"/build-on-morph/sdk/interfaces/StateRootBatch",permalink:"/docs/build-on-morph/sdk/interfaces/StateRootBatch",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/interfaces/StateRootBatch.md",tags:[],version:"current",frontMatter:{}},i={},h=[{value:"Properties",id:"properties",level:2},{value:"blockNumber",id:"blocknumber",level:3},{value:"Source",id:"source",level:4},{value:"header",id:"header",level:3},{value:"Source",id:"source-1",level:4},{value:"stateRoots",id:"stateroots",level:3},{value:"Source",id:"source-2",level:4}];function l(e){const t={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",p:"p",strong:"strong",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,r.jsx)(t.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,r.jsx)(t.strong,{children:"Docs"})]}),"\n",(0,r.jsx)(t.hr,{}),"\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / StateRootBatch"]}),"\n",(0,r.jsx)(t.h1,{id:"interface-staterootbatch",children:"Interface: StateRootBatch"}),"\n",(0,r.jsx)(t.p,{children:"Information about a batch of state roots."}),"\n",(0,r.jsx)(t.h2,{id:"properties",children:"Properties"}),"\n",(0,r.jsx)(t.h3,{id:"blocknumber",children:"blockNumber"}),"\n",(0,r.jsxs)(t.blockquote,{children:["\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.strong,{children:"blockNumber"}),": ",(0,r.jsx)(t.code,{children:"number"})]}),"\n"]}),"\n",(0,r.jsx)(t.h4,{id:"source",children:"Source"}),"\n",(0,r.jsx)(t.p,{children:"src/interfaces/types.ts:346"}),"\n",(0,r.jsx)(t.hr,{}),"\n",(0,r.jsx)(t.h3,{id:"header",children:"header"}),"\n",(0,r.jsxs)(t.blockquote,{children:["\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.strong,{children:"header"}),": ",(0,r.jsx)(t.a,{href:"/docs/build-on-morph/sdk/interfaces/StateRootBatchHeader",children:(0,r.jsx)(t.code,{children:"StateRootBatchHeader"})})]}),"\n"]}),"\n",(0,r.jsx)(t.h4,{id:"source-1",children:"Source"}),"\n",(0,r.jsx)(t.p,{children:"src/interfaces/types.ts:347"}),"\n",(0,r.jsx)(t.hr,{}),"\n",(0,r.jsx)(t.h3,{id:"stateroots",children:"stateRoots"}),"\n",(0,r.jsxs)(t.blockquote,{children:["\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.strong,{children:"stateRoots"}),": ",(0,r.jsx)(t.code,{children:"string"}),"[]"]}),"\n"]}),"\n",(0,r.jsx)(t.h4,{id:"source-2",children:"Source"}),"\n",(0,r.jsx)(t.p,{children:"src/interfaces/types.ts:348"})]})}function a(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}},1582:(e,t,o)=>{o.d(t,{R:()=>c,x:()=>d});var r=o(758);const s={},n=r.createContext(s);function c(e){const t=r.useContext(n);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:c(e.components),r.createElement(n.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/2a31694d.1579b616.js b/build/assets/js/2a31694d.6b99dbda.js similarity index 78% rename from build/assets/js/2a31694d.1579b616.js rename to build/assets/js/2a31694d.6b99dbda.js index 587eb6fb0..4fde28e44 100644 --- a/build/assets/js/2a31694d.1579b616.js +++ b/build/assets/js/2a31694d.6b99dbda.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[6039],{7190:(e,r,s)=>{s.r(r),s.d(r,{assets:()=>a,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var t=s(3274),n=s(2333);const o={},i="Type alias: DeepPartial<T>",l={id:"build-on-morph/sdk/type-aliases/DeepPartial",title:"DeepPartial",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/type-aliases/DeepPartial.md",sourceDirName:"build-on-morph/sdk/type-aliases",slug:"/build-on-morph/sdk/type-aliases/DeepPartial",permalink:"/docs/build-on-morph/sdk/type-aliases/DeepPartial",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/type-aliases/DeepPartial.md",tags:[],version:"current",frontMatter:{}},a={},c=[{value:"Type parameters",id:"type-parameters",level:2},{value:"Source",id:"source",level:2}];function p(e){const r={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,n.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(r.p,{children:[(0,t.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,t.jsx)(r.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,t.jsx)(r.strong,{children:"Docs"})]}),"\n",(0,t.jsx)(r.hr,{}),"\n",(0,t.jsxs)(r.p,{children:[(0,t.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / DeepPartial"]}),"\n",(0,t.jsx)(r.h1,{id:"type-alias-deeppartialt",children:"Type alias: DeepPartial<T>"}),"\n",(0,t.jsxs)(r.blockquote,{children:["\n",(0,t.jsxs)(r.p,{children:[(0,t.jsx)(r.strong,{children:"DeepPartial"}),"<",(0,t.jsx)(r.code,{children:"T"}),">: ",(0,t.jsx)(r.code,{children:"{ [P in keyof T]?: DeepPartial<T[P]> }"})]}),"\n"]}),"\n",(0,t.jsx)(r.p,{children:"Utility type for deep partials."}),"\n",(0,t.jsx)(r.h2,{id:"type-parameters",children:"Type parameters"}),"\n",(0,t.jsxs)(r.p,{children:["\u2022 ",(0,t.jsx)(r.strong,{children:"T"})]}),"\n",(0,t.jsx)(r.h2,{id:"source",children:"Source"}),"\n",(0,t.jsx)(r.p,{children:"src/utils/type-utils.ts:4"})]})}function d(e={}){const{wrapper:r}={...(0,n.R)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(p,{...e})}):p(e)}},2333:(e,r,s)=>{s.d(r,{R:()=>i,x:()=>l});var t=s(9474);const n={},o=t.createContext(n);function i(e){const r=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function l(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),t.createElement(o.Provider,{value:r},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[6039],{2583:(e,r,s)=>{s.r(r),s.d(r,{assets:()=>a,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var t=s(6070),n=s(1582);const o={},i="Type alias: DeepPartial<T>",l={id:"build-on-morph/sdk/type-aliases/DeepPartial",title:"DeepPartial",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/type-aliases/DeepPartial.md",sourceDirName:"build-on-morph/sdk/type-aliases",slug:"/build-on-morph/sdk/type-aliases/DeepPartial",permalink:"/docs/build-on-morph/sdk/type-aliases/DeepPartial",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/type-aliases/DeepPartial.md",tags:[],version:"current",frontMatter:{}},a={},c=[{value:"Type parameters",id:"type-parameters",level:2},{value:"Source",id:"source",level:2}];function p(e){const r={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,n.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(r.p,{children:[(0,t.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,t.jsx)(r.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,t.jsx)(r.strong,{children:"Docs"})]}),"\n",(0,t.jsx)(r.hr,{}),"\n",(0,t.jsxs)(r.p,{children:[(0,t.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / DeepPartial"]}),"\n",(0,t.jsx)(r.h1,{id:"type-alias-deeppartialt",children:"Type alias: DeepPartial<T>"}),"\n",(0,t.jsxs)(r.blockquote,{children:["\n",(0,t.jsxs)(r.p,{children:[(0,t.jsx)(r.strong,{children:"DeepPartial"}),"<",(0,t.jsx)(r.code,{children:"T"}),">: ",(0,t.jsx)(r.code,{children:"{ [P in keyof T]?: DeepPartial<T[P]> }"})]}),"\n"]}),"\n",(0,t.jsx)(r.p,{children:"Utility type for deep partials."}),"\n",(0,t.jsx)(r.h2,{id:"type-parameters",children:"Type parameters"}),"\n",(0,t.jsxs)(r.p,{children:["\u2022 ",(0,t.jsx)(r.strong,{children:"T"})]}),"\n",(0,t.jsx)(r.h2,{id:"source",children:"Source"}),"\n",(0,t.jsx)(r.p,{children:"src/utils/type-utils.ts:4"})]})}function d(e={}){const{wrapper:r}={...(0,n.R)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(p,{...e})}):p(e)}},1582:(e,r,s)=>{s.d(r,{R:()=>i,x:()=>l});var t=s(758);const n={},o=t.createContext(n);function i(e){const r=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function l(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),t.createElement(o.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/2b4bd9da.7dcb8475.js b/build/assets/js/2b4bd9da.fed01c3d.js similarity index 97% rename from build/assets/js/2b4bd9da.7dcb8475.js rename to build/assets/js/2b4bd9da.fed01c3d.js index 7a247cbc4..79d05e387 100644 --- a/build/assets/js/2b4bd9da.7dcb8475.js +++ b/build/assets/js/2b4bd9da.fed01c3d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[7481],{7397:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>o,contentTitle:()=>c,default:()=>a,frontMatter:()=>d,metadata:()=>l,toc:()=>h});var i=r(3274),s=r(2333);const d={},c="Interface: L2Transaction",l={id:"build-on-morph/sdk/interfaces/L2Transaction",title:"L2Transaction",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/interfaces/L2Transaction.md",sourceDirName:"build-on-morph/sdk/interfaces",slug:"/build-on-morph/sdk/interfaces/L2Transaction",permalink:"/docs/build-on-morph/sdk/interfaces/L2Transaction",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/interfaces/L2Transaction.md",tags:[],version:"current",frontMatter:{}},o={},h=[{value:"Extends",id:"extends",level:2},{value:"Properties",id:"properties",level:2},{value:"accessList?",id:"accesslist",level:3},{value:"Inherited from",id:"inherited-from",level:4},{value:"Source",id:"source",level:4},{value:"blockHash?",id:"blockhash",level:3},{value:"Inherited from",id:"inherited-from-1",level:4},{value:"Source",id:"source-1",level:4},{value:"blockNumber?",id:"blocknumber",level:3},{value:"Inherited from",id:"inherited-from-2",level:4},{value:"Source",id:"source-2",level:4},{value:"chainId",id:"chainid",level:3},{value:"Inherited from",id:"inherited-from-3",level:4},{value:"Source",id:"source-3",level:4},{value:"confirmations",id:"confirmations",level:3},{value:"Inherited from",id:"inherited-from-4",level:4},{value:"Source",id:"source-4",level:4},{value:"data",id:"data",level:3},{value:"Inherited from",id:"inherited-from-5",level:4},{value:"Source",id:"source-5",level:4},{value:"from",id:"from",level:3},{value:"Inherited from",id:"inherited-from-6",level:4},{value:"Source",id:"source-6",level:4},{value:"gasLimit",id:"gaslimit",level:3},{value:"Inherited from",id:"inherited-from-7",level:4},{value:"Source",id:"source-7",level:4},{value:"gasPrice?",id:"gasprice",level:3},{value:"Inherited from",id:"inherited-from-8",level:4},{value:"Source",id:"source-8",level:4},{value:"hash",id:"hash",level:3},{value:"Inherited from",id:"inherited-from-9",level:4},{value:"Source",id:"source-9",level:4},{value:"l1BlockNumber",id:"l1blocknumber",level:3},{value:"Source",id:"source-10",level:4},{value:"l1TxOrigin",id:"l1txorigin",level:3},{value:"Source",id:"source-11",level:4},{value:"maxFeePerGas?",id:"maxfeepergas",level:3},{value:"Inherited from",id:"inherited-from-10",level:4},{value:"Source",id:"source-12",level:4},{value:"maxPriorityFeePerGas?",id:"maxpriorityfeepergas",level:3},{value:"Inherited from",id:"inherited-from-11",level:4},{value:"Source",id:"source-13",level:4},{value:"nonce",id:"nonce",level:3},{value:"Inherited from",id:"inherited-from-12",level:4},{value:"Source",id:"source-14",level:4},{value:"queueOrigin",id:"queueorigin",level:3},{value:"Source",id:"source-15",level:4},{value:"r?",id:"r",level:3},{value:"Inherited from",id:"inherited-from-13",level:4},{value:"Source",id:"source-16",level:4},{value:"raw?",id:"raw",level:3},{value:"Inherited from",id:"inherited-from-14",level:4},{value:"Source",id:"source-17",level:4},{value:"rawTransaction",id:"rawtransaction",level:3},{value:"Source",id:"source-18",level:4},{value:"s?",id:"s",level:3},{value:"Inherited from",id:"inherited-from-15",level:4},{value:"Source",id:"source-19",level:4},{value:"timestamp?",id:"timestamp",level:3},{value:"Inherited from",id:"inherited-from-16",level:4},{value:"Source",id:"source-20",level:4},{value:"to?",id:"to",level:3},{value:"Inherited from",id:"inherited-from-17",level:4},{value:"Source",id:"source-21",level:4},{value:"type?",id:"type",level:3},{value:"Inherited from",id:"inherited-from-18",level:4},{value:"Source",id:"source-22",level:4},{value:"v?",id:"v",level:3},{value:"Inherited from",id:"inherited-from-19",level:4},{value:"Source",id:"source-23",level:4},{value:"value",id:"value",level:3},{value:"Inherited from",id:"inherited-from-20",level:4},{value:"Source",id:"source-24",level:4},{value:"wait()",id:"wait",level:3},{value:"Parameters",id:"parameters",level:4},{value:"Returns",id:"returns",level:4},{value:"Inherited from",id:"inherited-from-21",level:4},{value:"Source",id:"source-25",level:4}];function t(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",li:"li",p:"p",strong:"strong",ul:"ul",...(0,s.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,i.jsx)(n.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,i.jsx)(n.strong,{children:"Docs"})]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / L2Transaction"]}),"\n",(0,i.jsx)(n.h1,{id:"interface-l2transaction",children:"Interface: L2Transaction"}),"\n",(0,i.jsx)(n.p,{children:"JSON transaction representation when returned by L2Geth nodes. This is simply an extension to\nthe standard transaction response type. You do NOT need to use this type unless you care about\nhaving typed access to L2-specific fields."}),"\n",(0,i.jsx)(n.h2,{id:"extends",children:"Extends"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"TransactionResponse"})}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"properties",children:"Properties"}),"\n",(0,i.jsx)(n.h3,{id:"accesslist",children:"accessList?"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"optional"})," ",(0,i.jsx)(n.strong,{children:"accessList"}),": ",(0,i.jsx)(n.code,{children:"AccessList"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"inherited-from",children:"Inherited from"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"TransactionResponse.accessList"})}),"\n",(0,i.jsx)(n.h4,{id:"source",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"node_modules/@ethersproject/transactions/lib/index.d.ts:40"}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"blockhash",children:"blockHash?"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"optional"})," ",(0,i.jsx)(n.strong,{children:"blockHash"}),": ",(0,i.jsx)(n.code,{children:"string"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"inherited-from-1",children:"Inherited from"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"TransactionResponse.blockHash"})}),"\n",(0,i.jsx)(n.h4,{id:"source-1",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:26"}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"blocknumber",children:"blockNumber?"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"optional"})," ",(0,i.jsx)(n.strong,{children:"blockNumber"}),": ",(0,i.jsx)(n.code,{children:"number"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"inherited-from-2",children:"Inherited from"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"TransactionResponse.blockNumber"})}),"\n",(0,i.jsx)(n.h4,{id:"source-2",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:25"}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"chainid",children:"chainId"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"chainId"}),": ",(0,i.jsx)(n.code,{children:"number"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"inherited-from-3",children:"Inherited from"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"TransactionResponse.chainId"})}),"\n",(0,i.jsx)(n.h4,{id:"source-3",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"node_modules/@ethersproject/transactions/lib/index.d.ts:35"}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"confirmations",children:"confirmations"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"confirmations"}),": ",(0,i.jsx)(n.code,{children:"number"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"inherited-from-4",children:"Inherited from"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"TransactionResponse.confirmations"})}),"\n",(0,i.jsx)(n.h4,{id:"source-4",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:28"}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"data",children:"data"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"data"}),": ",(0,i.jsx)(n.code,{children:"string"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"inherited-from-5",children:"Inherited from"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"TransactionResponse.data"})}),"\n",(0,i.jsx)(n.h4,{id:"source-5",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"node_modules/@ethersproject/transactions/lib/index.d.ts:33"}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"from",children:"from"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"from"}),": ",(0,i.jsx)(n.code,{children:"string"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"inherited-from-6",children:"Inherited from"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"TransactionResponse.from"})}),"\n",(0,i.jsx)(n.h4,{id:"source-6",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:29"}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"gaslimit",children:"gasLimit"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"gasLimit"}),": ",(0,i.jsx)(n.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"inherited-from-7",children:"Inherited from"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"TransactionResponse.gasLimit"})}),"\n",(0,i.jsx)(n.h4,{id:"source-7",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"node_modules/@ethersproject/transactions/lib/index.d.ts:31"}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"gasprice",children:"gasPrice?"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"optional"})," ",(0,i.jsx)(n.strong,{children:"gasPrice"}),": ",(0,i.jsx)(n.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"inherited-from-8",children:"Inherited from"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"TransactionResponse.gasPrice"})}),"\n",(0,i.jsx)(n.h4,{id:"source-8",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"node_modules/@ethersproject/transactions/lib/index.d.ts:32"}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"hash",children:"hash"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"hash"}),": ",(0,i.jsx)(n.code,{children:"string"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"inherited-from-9",children:"Inherited from"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"TransactionResponse.hash"})}),"\n",(0,i.jsx)(n.h4,{id:"source-9",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:24"}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"l1blocknumber",children:"l1BlockNumber"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"l1BlockNumber"}),": ",(0,i.jsx)(n.code,{children:"number"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"source-10",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"src/interfaces/l2-provider.ts:16"}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"l1txorigin",children:"l1TxOrigin"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"l1TxOrigin"}),": ",(0,i.jsx)(n.code,{children:"string"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"source-11",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"src/interfaces/l2-provider.ts:17"}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"maxfeepergas",children:"maxFeePerGas?"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"optional"})," ",(0,i.jsx)(n.strong,{children:"maxFeePerGas"}),": ",(0,i.jsx)(n.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"inherited-from-10",children:"Inherited from"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"TransactionResponse.maxFeePerGas"})}),"\n",(0,i.jsx)(n.h4,{id:"source-12",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"node_modules/@ethersproject/transactions/lib/index.d.ts:42"}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"maxpriorityfeepergas",children:"maxPriorityFeePerGas?"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"optional"})," ",(0,i.jsx)(n.strong,{children:"maxPriorityFeePerGas"}),": ",(0,i.jsx)(n.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"inherited-from-11",children:"Inherited from"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"TransactionResponse.maxPriorityFeePerGas"})}),"\n",(0,i.jsx)(n.h4,{id:"source-13",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"node_modules/@ethersproject/transactions/lib/index.d.ts:41"}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"nonce",children:"nonce"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"nonce"}),": ",(0,i.jsx)(n.code,{children:"number"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"inherited-from-12",children:"Inherited from"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"TransactionResponse.nonce"})}),"\n",(0,i.jsx)(n.h4,{id:"source-14",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"node_modules/@ethersproject/transactions/lib/index.d.ts:30"}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"queueorigin",children:"queueOrigin"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"queueOrigin"}),": ",(0,i.jsx)(n.code,{children:"string"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"source-15",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"src/interfaces/l2-provider.ts:18"}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"r",children:"r?"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"optional"})," ",(0,i.jsx)(n.strong,{children:"r"}),": ",(0,i.jsx)(n.code,{children:"string"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"inherited-from-13",children:"Inherited from"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"TransactionResponse.r"})}),"\n",(0,i.jsx)(n.h4,{id:"source-16",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"node_modules/@ethersproject/transactions/lib/index.d.ts:36"}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"raw",children:"raw?"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"optional"})," ",(0,i.jsx)(n.strong,{children:"raw"}),": ",(0,i.jsx)(n.code,{children:"string"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"inherited-from-14",children:"Inherited from"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"TransactionResponse.raw"})}),"\n",(0,i.jsx)(n.h4,{id:"source-17",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:30"}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"rawtransaction",children:"rawTransaction"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"rawTransaction"}),": ",(0,i.jsx)(n.code,{children:"string"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"source-18",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"src/interfaces/l2-provider.ts:19"}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"s",children:"s?"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"optional"})," ",(0,i.jsx)(n.strong,{children:"s"}),": ",(0,i.jsx)(n.code,{children:"string"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"inherited-from-15",children:"Inherited from"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"TransactionResponse.s"})}),"\n",(0,i.jsx)(n.h4,{id:"source-19",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"node_modules/@ethersproject/transactions/lib/index.d.ts:37"}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"timestamp",children:"timestamp?"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"optional"})," ",(0,i.jsx)(n.strong,{children:"timestamp"}),": ",(0,i.jsx)(n.code,{children:"number"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"inherited-from-16",children:"Inherited from"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"TransactionResponse.timestamp"})}),"\n",(0,i.jsx)(n.h4,{id:"source-20",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:27"}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"to",children:"to?"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"optional"})," ",(0,i.jsx)(n.strong,{children:"to"}),": ",(0,i.jsx)(n.code,{children:"string"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"inherited-from-17",children:"Inherited from"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"TransactionResponse.to"})}),"\n",(0,i.jsx)(n.h4,{id:"source-21",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"node_modules/@ethersproject/transactions/lib/index.d.ts:28"}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"type",children:"type?"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"optional"})," ",(0,i.jsx)(n.strong,{children:"type"}),": ",(0,i.jsx)(n.code,{children:"number"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"inherited-from-18",children:"Inherited from"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"TransactionResponse.type"})}),"\n",(0,i.jsx)(n.h4,{id:"source-22",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"node_modules/@ethersproject/transactions/lib/index.d.ts:39"}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"v",children:"v?"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"optional"})," ",(0,i.jsx)(n.strong,{children:"v"}),": ",(0,i.jsx)(n.code,{children:"number"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"inherited-from-19",children:"Inherited from"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"TransactionResponse.v"})}),"\n",(0,i.jsx)(n.h4,{id:"source-23",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"node_modules/@ethersproject/transactions/lib/index.d.ts:38"}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"value",children:"value"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"value"}),": ",(0,i.jsx)(n.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"inherited-from-20",children:"Inherited from"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"TransactionResponse.value"})}),"\n",(0,i.jsx)(n.h4,{id:"source-24",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"node_modules/@ethersproject/transactions/lib/index.d.ts:34"}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"wait",children:"wait()"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"wait"}),": (",(0,i.jsx)(n.code,{children:"confirmations"}),"?) => ",(0,i.jsx)(n.code,{children:"Promise"}),"<",(0,i.jsx)(n.code,{children:"TransactionReceipt"}),">"]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"parameters",children:"Parameters"}),"\n",(0,i.jsxs)(n.p,{children:["\u2022 ",(0,i.jsx)(n.strong,{children:"confirmations?"}),": ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsx)(n.h4,{id:"returns",children:"Returns"}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"Promise"}),"<",(0,i.jsx)(n.code,{children:"TransactionReceipt"}),">"]}),"\n",(0,i.jsx)(n.h4,{id:"inherited-from-21",children:"Inherited from"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"TransactionResponse.wait"})}),"\n",(0,i.jsx)(n.h4,{id:"source-25",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:31"})]})}function a(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(t,{...e})}):t(e)}},2333:(e,n,r)=>{r.d(n,{R:()=>c,x:()=>l});var i=r(9474);const s={},d=i.createContext(s);function c(e){const n=i.useContext(d);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:c(e.components),i.createElement(d.Provider,{value:n},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[7481],{1767:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>o,contentTitle:()=>c,default:()=>a,frontMatter:()=>d,metadata:()=>l,toc:()=>h});var i=r(6070),s=r(1582);const d={},c="Interface: L2Transaction",l={id:"build-on-morph/sdk/interfaces/L2Transaction",title:"L2Transaction",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/interfaces/L2Transaction.md",sourceDirName:"build-on-morph/sdk/interfaces",slug:"/build-on-morph/sdk/interfaces/L2Transaction",permalink:"/docs/build-on-morph/sdk/interfaces/L2Transaction",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/interfaces/L2Transaction.md",tags:[],version:"current",frontMatter:{}},o={},h=[{value:"Extends",id:"extends",level:2},{value:"Properties",id:"properties",level:2},{value:"accessList?",id:"accesslist",level:3},{value:"Inherited from",id:"inherited-from",level:4},{value:"Source",id:"source",level:4},{value:"blockHash?",id:"blockhash",level:3},{value:"Inherited from",id:"inherited-from-1",level:4},{value:"Source",id:"source-1",level:4},{value:"blockNumber?",id:"blocknumber",level:3},{value:"Inherited from",id:"inherited-from-2",level:4},{value:"Source",id:"source-2",level:4},{value:"chainId",id:"chainid",level:3},{value:"Inherited from",id:"inherited-from-3",level:4},{value:"Source",id:"source-3",level:4},{value:"confirmations",id:"confirmations",level:3},{value:"Inherited from",id:"inherited-from-4",level:4},{value:"Source",id:"source-4",level:4},{value:"data",id:"data",level:3},{value:"Inherited from",id:"inherited-from-5",level:4},{value:"Source",id:"source-5",level:4},{value:"from",id:"from",level:3},{value:"Inherited from",id:"inherited-from-6",level:4},{value:"Source",id:"source-6",level:4},{value:"gasLimit",id:"gaslimit",level:3},{value:"Inherited from",id:"inherited-from-7",level:4},{value:"Source",id:"source-7",level:4},{value:"gasPrice?",id:"gasprice",level:3},{value:"Inherited from",id:"inherited-from-8",level:4},{value:"Source",id:"source-8",level:4},{value:"hash",id:"hash",level:3},{value:"Inherited from",id:"inherited-from-9",level:4},{value:"Source",id:"source-9",level:4},{value:"l1BlockNumber",id:"l1blocknumber",level:3},{value:"Source",id:"source-10",level:4},{value:"l1TxOrigin",id:"l1txorigin",level:3},{value:"Source",id:"source-11",level:4},{value:"maxFeePerGas?",id:"maxfeepergas",level:3},{value:"Inherited from",id:"inherited-from-10",level:4},{value:"Source",id:"source-12",level:4},{value:"maxPriorityFeePerGas?",id:"maxpriorityfeepergas",level:3},{value:"Inherited from",id:"inherited-from-11",level:4},{value:"Source",id:"source-13",level:4},{value:"nonce",id:"nonce",level:3},{value:"Inherited from",id:"inherited-from-12",level:4},{value:"Source",id:"source-14",level:4},{value:"queueOrigin",id:"queueorigin",level:3},{value:"Source",id:"source-15",level:4},{value:"r?",id:"r",level:3},{value:"Inherited from",id:"inherited-from-13",level:4},{value:"Source",id:"source-16",level:4},{value:"raw?",id:"raw",level:3},{value:"Inherited from",id:"inherited-from-14",level:4},{value:"Source",id:"source-17",level:4},{value:"rawTransaction",id:"rawtransaction",level:3},{value:"Source",id:"source-18",level:4},{value:"s?",id:"s",level:3},{value:"Inherited from",id:"inherited-from-15",level:4},{value:"Source",id:"source-19",level:4},{value:"timestamp?",id:"timestamp",level:3},{value:"Inherited from",id:"inherited-from-16",level:4},{value:"Source",id:"source-20",level:4},{value:"to?",id:"to",level:3},{value:"Inherited from",id:"inherited-from-17",level:4},{value:"Source",id:"source-21",level:4},{value:"type?",id:"type",level:3},{value:"Inherited from",id:"inherited-from-18",level:4},{value:"Source",id:"source-22",level:4},{value:"v?",id:"v",level:3},{value:"Inherited from",id:"inherited-from-19",level:4},{value:"Source",id:"source-23",level:4},{value:"value",id:"value",level:3},{value:"Inherited from",id:"inherited-from-20",level:4},{value:"Source",id:"source-24",level:4},{value:"wait()",id:"wait",level:3},{value:"Parameters",id:"parameters",level:4},{value:"Returns",id:"returns",level:4},{value:"Inherited from",id:"inherited-from-21",level:4},{value:"Source",id:"source-25",level:4}];function t(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",li:"li",p:"p",strong:"strong",ul:"ul",...(0,s.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,i.jsx)(n.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,i.jsx)(n.strong,{children:"Docs"})]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / L2Transaction"]}),"\n",(0,i.jsx)(n.h1,{id:"interface-l2transaction",children:"Interface: L2Transaction"}),"\n",(0,i.jsx)(n.p,{children:"JSON transaction representation when returned by L2Geth nodes. This is simply an extension to\nthe standard transaction response type. You do NOT need to use this type unless you care about\nhaving typed access to L2-specific fields."}),"\n",(0,i.jsx)(n.h2,{id:"extends",children:"Extends"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"TransactionResponse"})}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"properties",children:"Properties"}),"\n",(0,i.jsx)(n.h3,{id:"accesslist",children:"accessList?"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"optional"})," ",(0,i.jsx)(n.strong,{children:"accessList"}),": ",(0,i.jsx)(n.code,{children:"AccessList"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"inherited-from",children:"Inherited from"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"TransactionResponse.accessList"})}),"\n",(0,i.jsx)(n.h4,{id:"source",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"node_modules/@ethersproject/transactions/lib/index.d.ts:40"}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"blockhash",children:"blockHash?"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"optional"})," ",(0,i.jsx)(n.strong,{children:"blockHash"}),": ",(0,i.jsx)(n.code,{children:"string"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"inherited-from-1",children:"Inherited from"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"TransactionResponse.blockHash"})}),"\n",(0,i.jsx)(n.h4,{id:"source-1",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:26"}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"blocknumber",children:"blockNumber?"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"optional"})," ",(0,i.jsx)(n.strong,{children:"blockNumber"}),": ",(0,i.jsx)(n.code,{children:"number"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"inherited-from-2",children:"Inherited from"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"TransactionResponse.blockNumber"})}),"\n",(0,i.jsx)(n.h4,{id:"source-2",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:25"}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"chainid",children:"chainId"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"chainId"}),": ",(0,i.jsx)(n.code,{children:"number"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"inherited-from-3",children:"Inherited from"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"TransactionResponse.chainId"})}),"\n",(0,i.jsx)(n.h4,{id:"source-3",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"node_modules/@ethersproject/transactions/lib/index.d.ts:35"}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"confirmations",children:"confirmations"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"confirmations"}),": ",(0,i.jsx)(n.code,{children:"number"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"inherited-from-4",children:"Inherited from"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"TransactionResponse.confirmations"})}),"\n",(0,i.jsx)(n.h4,{id:"source-4",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:28"}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"data",children:"data"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"data"}),": ",(0,i.jsx)(n.code,{children:"string"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"inherited-from-5",children:"Inherited from"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"TransactionResponse.data"})}),"\n",(0,i.jsx)(n.h4,{id:"source-5",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"node_modules/@ethersproject/transactions/lib/index.d.ts:33"}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"from",children:"from"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"from"}),": ",(0,i.jsx)(n.code,{children:"string"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"inherited-from-6",children:"Inherited from"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"TransactionResponse.from"})}),"\n",(0,i.jsx)(n.h4,{id:"source-6",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:29"}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"gaslimit",children:"gasLimit"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"gasLimit"}),": ",(0,i.jsx)(n.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"inherited-from-7",children:"Inherited from"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"TransactionResponse.gasLimit"})}),"\n",(0,i.jsx)(n.h4,{id:"source-7",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"node_modules/@ethersproject/transactions/lib/index.d.ts:31"}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"gasprice",children:"gasPrice?"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"optional"})," ",(0,i.jsx)(n.strong,{children:"gasPrice"}),": ",(0,i.jsx)(n.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"inherited-from-8",children:"Inherited from"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"TransactionResponse.gasPrice"})}),"\n",(0,i.jsx)(n.h4,{id:"source-8",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"node_modules/@ethersproject/transactions/lib/index.d.ts:32"}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"hash",children:"hash"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"hash"}),": ",(0,i.jsx)(n.code,{children:"string"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"inherited-from-9",children:"Inherited from"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"TransactionResponse.hash"})}),"\n",(0,i.jsx)(n.h4,{id:"source-9",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:24"}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"l1blocknumber",children:"l1BlockNumber"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"l1BlockNumber"}),": ",(0,i.jsx)(n.code,{children:"number"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"source-10",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"src/interfaces/l2-provider.ts:16"}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"l1txorigin",children:"l1TxOrigin"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"l1TxOrigin"}),": ",(0,i.jsx)(n.code,{children:"string"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"source-11",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"src/interfaces/l2-provider.ts:17"}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"maxfeepergas",children:"maxFeePerGas?"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"optional"})," ",(0,i.jsx)(n.strong,{children:"maxFeePerGas"}),": ",(0,i.jsx)(n.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"inherited-from-10",children:"Inherited from"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"TransactionResponse.maxFeePerGas"})}),"\n",(0,i.jsx)(n.h4,{id:"source-12",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"node_modules/@ethersproject/transactions/lib/index.d.ts:42"}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"maxpriorityfeepergas",children:"maxPriorityFeePerGas?"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"optional"})," ",(0,i.jsx)(n.strong,{children:"maxPriorityFeePerGas"}),": ",(0,i.jsx)(n.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"inherited-from-11",children:"Inherited from"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"TransactionResponse.maxPriorityFeePerGas"})}),"\n",(0,i.jsx)(n.h4,{id:"source-13",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"node_modules/@ethersproject/transactions/lib/index.d.ts:41"}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"nonce",children:"nonce"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"nonce"}),": ",(0,i.jsx)(n.code,{children:"number"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"inherited-from-12",children:"Inherited from"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"TransactionResponse.nonce"})}),"\n",(0,i.jsx)(n.h4,{id:"source-14",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"node_modules/@ethersproject/transactions/lib/index.d.ts:30"}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"queueorigin",children:"queueOrigin"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"queueOrigin"}),": ",(0,i.jsx)(n.code,{children:"string"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"source-15",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"src/interfaces/l2-provider.ts:18"}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"r",children:"r?"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"optional"})," ",(0,i.jsx)(n.strong,{children:"r"}),": ",(0,i.jsx)(n.code,{children:"string"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"inherited-from-13",children:"Inherited from"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"TransactionResponse.r"})}),"\n",(0,i.jsx)(n.h4,{id:"source-16",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"node_modules/@ethersproject/transactions/lib/index.d.ts:36"}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"raw",children:"raw?"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"optional"})," ",(0,i.jsx)(n.strong,{children:"raw"}),": ",(0,i.jsx)(n.code,{children:"string"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"inherited-from-14",children:"Inherited from"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"TransactionResponse.raw"})}),"\n",(0,i.jsx)(n.h4,{id:"source-17",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:30"}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"rawtransaction",children:"rawTransaction"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"rawTransaction"}),": ",(0,i.jsx)(n.code,{children:"string"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"source-18",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"src/interfaces/l2-provider.ts:19"}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"s",children:"s?"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"optional"})," ",(0,i.jsx)(n.strong,{children:"s"}),": ",(0,i.jsx)(n.code,{children:"string"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"inherited-from-15",children:"Inherited from"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"TransactionResponse.s"})}),"\n",(0,i.jsx)(n.h4,{id:"source-19",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"node_modules/@ethersproject/transactions/lib/index.d.ts:37"}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"timestamp",children:"timestamp?"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"optional"})," ",(0,i.jsx)(n.strong,{children:"timestamp"}),": ",(0,i.jsx)(n.code,{children:"number"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"inherited-from-16",children:"Inherited from"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"TransactionResponse.timestamp"})}),"\n",(0,i.jsx)(n.h4,{id:"source-20",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:27"}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"to",children:"to?"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"optional"})," ",(0,i.jsx)(n.strong,{children:"to"}),": ",(0,i.jsx)(n.code,{children:"string"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"inherited-from-17",children:"Inherited from"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"TransactionResponse.to"})}),"\n",(0,i.jsx)(n.h4,{id:"source-21",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"node_modules/@ethersproject/transactions/lib/index.d.ts:28"}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"type",children:"type?"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"optional"})," ",(0,i.jsx)(n.strong,{children:"type"}),": ",(0,i.jsx)(n.code,{children:"number"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"inherited-from-18",children:"Inherited from"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"TransactionResponse.type"})}),"\n",(0,i.jsx)(n.h4,{id:"source-22",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"node_modules/@ethersproject/transactions/lib/index.d.ts:39"}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"v",children:"v?"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"optional"})," ",(0,i.jsx)(n.strong,{children:"v"}),": ",(0,i.jsx)(n.code,{children:"number"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"inherited-from-19",children:"Inherited from"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"TransactionResponse.v"})}),"\n",(0,i.jsx)(n.h4,{id:"source-23",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"node_modules/@ethersproject/transactions/lib/index.d.ts:38"}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"value",children:"value"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"value"}),": ",(0,i.jsx)(n.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"inherited-from-20",children:"Inherited from"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"TransactionResponse.value"})}),"\n",(0,i.jsx)(n.h4,{id:"source-24",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"node_modules/@ethersproject/transactions/lib/index.d.ts:34"}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"wait",children:"wait()"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"wait"}),": (",(0,i.jsx)(n.code,{children:"confirmations"}),"?) => ",(0,i.jsx)(n.code,{children:"Promise"}),"<",(0,i.jsx)(n.code,{children:"TransactionReceipt"}),">"]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"parameters",children:"Parameters"}),"\n",(0,i.jsxs)(n.p,{children:["\u2022 ",(0,i.jsx)(n.strong,{children:"confirmations?"}),": ",(0,i.jsx)(n.code,{children:"number"})]}),"\n",(0,i.jsx)(n.h4,{id:"returns",children:"Returns"}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"Promise"}),"<",(0,i.jsx)(n.code,{children:"TransactionReceipt"}),">"]}),"\n",(0,i.jsx)(n.h4,{id:"inherited-from-21",children:"Inherited from"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"TransactionResponse.wait"})}),"\n",(0,i.jsx)(n.h4,{id:"source-25",children:"Source"}),"\n",(0,i.jsx)(n.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:31"})]})}function a(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(t,{...e})}):t(e)}},1582:(e,n,r)=>{r.d(n,{R:()=>c,x:()=>l});var i=r(758);const s={},d=i.createContext(s);function c(e){const n=i.useContext(d);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:c(e.components),i.createElement(d.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/2ef0e7db.f26526ea.js b/build/assets/js/2ef0e7db.f26526ea.js deleted file mode 100644 index 756df64d3..000000000 --- a/build/assets/js/2ef0e7db.f26526ea.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[2792],{6024:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>d,default:()=>a,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var t=i(3274),r=i(2333);const o={title:"Difference between Morph and Ethereum",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},d=void 0,s={id:"build-on-morph/build-on-morph/difference-between-morph-and-ethereum",title:"Difference between Morph and Ethereum",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/build-on-morph/build-on-morph/1-difference-between-morph-and-ethereum.md",sourceDirName:"build-on-morph/build-on-morph",slug:"/build-on-morph/build-on-morph/difference-between-morph-and-ethereum",permalink:"/docs/build-on-morph/build-on-morph/difference-between-morph-and-ethereum",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/build-on-morph/1-difference-between-morph-and-ethereum.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{title:"Difference between Morph and Ethereum",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"}},c={},l=[{value:"EVM Opcodes",id:"evm-opcodes",level:2},{value:"EVM Precompiles",id:"evm-precompiles",level:2},{value:"Precompile Limits",id:"precompile-limits",level:3},{value:"State Account",id:"state-account",level:2},{value:"<strong>Additional Fields</strong>",id:"additional-fields",level:3},{value:"<strong>CodeHash</strong>",id:"codehash",level:3},{value:"CodeSize",id:"codesize",level:3},{value:"Block Time",id:"block-time",level:2},{value:"Future EIPs",id:"future-eips",level:2},{value:"Transaction Fees",id:"transaction-fees",level:2}];function h(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.p,{children:"There are several technical differences between Ethereum\u2019s EVM and Morph's optimistic zkEVM."}),"\n",(0,t.jsx)(n.p,{children:"We\u2019ve compiled a list to help you understand these distinctions better."}),"\n",(0,t.jsx)(n.admonition,{type:"tip",children:(0,t.jsx)(n.p,{children:"For most Solidity developers, these technical details won't significantly impact your development experience."})}),"\n",(0,t.jsx)(n.h2,{id:"evm-opcodes",children:"EVM Opcodes"}),"\n",(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Opcode"}),(0,t.jsx)(n.th,{children:"Solidity equivalent"}),(0,t.jsx)(n.th,{children:"Morph Behavior"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"BLOCKHASH"})}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"block.blockhash"})}),(0,t.jsxs)(n.td,{children:["Returns ",(0,t.jsx)(n.code,{children:"keccak(chain_id || block_number)"})," for the last 256 blocks."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"COINBASE"})}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"block.coinbase"})}),(0,t.jsxs)(n.td,{children:["Returns the pre-deployed fee vault contract address. See ",(0,t.jsx)(n.a,{href:"/docs/build-on-morph/developer-resources/contracts",children:"Contracts"})]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.code,{children:"DIFFICULTY"})," / ",(0,t.jsx)(n.code,{children:"PREVRANDAO"})]}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"block.difficulty"})}),(0,t.jsx)(n.td,{children:"Returns 0."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"SELFDESTRUCT"})}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"selfdestruct"})}),(0,t.jsx)(n.td,{children:"Disabled. If the opcode is encountered, the transaction will be reverted."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"BLOBHASH"})}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"tx.blob_versioned_hashes[index]"})}),(0,t.jsx)(n.td,{children:"Not supported"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"BLOBBASEFEE"})}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"blob_base_fee = BLOBBASEFEE()"})}),(0,t.jsx)(n.td,{children:"Not supported"})]})]})]}),"\n",(0,t.jsx)(n.h2,{id:"evm-precompiles",children:"EVM Precompiles"}),"\n",(0,t.jsxs)(n.p,{children:["The ",(0,t.jsx)(n.code,{children:"RIPEMD-160"})," (address ",(0,t.jsx)(n.code,{children:"0x3"}),") ",(0,t.jsx)(n.code,{children:"blake2f"})," (address ",(0,t.jsx)(n.code,{children:"0x9"}),"), and ",(0,t.jsx)(n.code,{children:"point evaluation"})," (address ",(0,t.jsx)(n.code,{children:"0x0a"}),") precompiles are currently not supported. Calls to unsupported precompiled contracts will revert. We plan to enable these precompiles in future hard forks."]}),"\n",(0,t.jsxs)(n.p,{children:["The ",(0,t.jsx)(n.code,{children:"modexp"})," precompile is supported but only supports inputs of size less than or equal to 32 bytes (i.e. ",(0,t.jsx)(n.code,{children:"u256"}),")."]}),"\n",(0,t.jsxs)(n.p,{children:["The ",(0,t.jsx)(n.code,{children:"ecPairing"})," precompile is supported, but the number of points(sets, pairs) is limited to 4, instead of 6."]}),"\n",(0,t.jsxs)(n.p,{children:["The other EVM precompiles are all supported: ",(0,t.jsx)(n.code,{children:"ecRecover"}),", ",(0,t.jsx)(n.code,{children:"identity"}),", ",(0,t.jsx)(n.code,{children:"ecAdd"}),", ",(0,t.jsx)(n.code,{children:"ecMul"}),"."]}),"\n",(0,t.jsx)(n.h3,{id:"precompile-limits",children:"Precompile Limits"}),"\n",(0,t.jsx)(n.p,{children:"Because of a bounded size of the zkEVM circuits, there is an upper limit on the number of calls that can be made for some precompiles. These transactions will not revert, but simply be skipped by the sequencer if they cannot fit into the space of the circuit."}),"\n",(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Precompile / Opcode"}),(0,t.jsx)(n.th,{children:"Limit"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"keccak256"})}),(0,t.jsx)(n.td,{children:"3157"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"ecRecover"})}),(0,t.jsx)(n.td,{children:"119"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"modexp"})}),(0,t.jsx)(n.td,{children:"23"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"ecAdd"})}),(0,t.jsx)(n.td,{children:"50"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"ecMul"})}),(0,t.jsx)(n.td,{children:"50"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"ecPairing"})}),(0,t.jsx)(n.td,{children:"2"})]})]})]}),"\n",(0,t.jsx)(n.admonition,{title:"Several opcode not available",type:"tip",children:(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"BLOBHASH"})," and ",(0,t.jsx)(n.code,{children:"BLOBBASEFEE"})," are not supported on Morph yet. Additionally, ",(0,t.jsx)(n.a,{href:"https://eips.ethereum.org/EIPS/eip-4788",children:"EIP-4788"})," for accessing the Beacon Chain block root is not supported."]})}),"\n",(0,t.jsx)(n.h2,{id:"state-account",children:"State Account"}),"\n",(0,t.jsx)(n.h3,{id:"additional-fields",children:(0,t.jsx)(n.strong,{children:"Additional Fields"})}),"\n",(0,t.jsxs)(n.p,{children:["We added two fields in the current ",(0,t.jsx)(n.code,{children:"StateAccount"})," object: ",(0,t.jsx)(n.code,{children:"PoseidonCodehash"})," and ",(0,t.jsx)(n.code,{children:"CodeSize"}),"."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-go",children:"type StateAccount struct {\n\tNonce uint64\n\tBalance *big.Int\n\tRoot common.Hash // merkle root of the storage trie\n\tKeccakCodeHash []byte // still the Keccak codehash\n\t// added fields\n\tPoseidonCodeHash []byte // the Poseidon codehash\n\tCodeSize uint64\n}\n"})}),"\n",(0,t.jsx)(n.h3,{id:"codehash",children:(0,t.jsx)(n.strong,{children:"CodeHash"})}),"\n",(0,t.jsx)(n.p,{children:"Related to this, we maintain two types of codehash for each contract bytecode: Keccak hash and Poseidon hash."}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"KeccakCodeHash"})," is kept to maintain compatibility for ",(0,t.jsx)(n.code,{children:"EXTCODEHASH"}),". ",(0,t.jsx)(n.code,{children:"PoseidonCodeHash"})," is used for verifying the correctness of bytecodes loaded in the zkEVM, where Poseidon hashing is far more efficient."]}),"\n",(0,t.jsx)(n.h3,{id:"codesize",children:"CodeSize"}),"\n",(0,t.jsxs)(n.p,{children:["When verifying ",(0,t.jsx)(n.code,{children:"EXTCODESIZE"}),", it is expensive to load the whole contract data into the zkEVM. Instead, we store the contract size in storage during contract creation. This way, we do not need to load the code \u2014 a storage proof is sufficient to verify this opcode."]}),"\n",(0,t.jsx)(n.h2,{id:"block-time",children:"Block Time"}),"\n",(0,t.jsx)(n.admonition,{title:"Block Time Subject to Change",type:"tip",children:(0,t.jsx)(n.p,{children:"Blocks are produced every second, with an empty block generated if there are no transactions for 5 seconds. However, this frequency may change in the future."})}),"\n",(0,t.jsx)(n.p,{children:"To compare, Ethereum has a block time of ~12 seconds."}),"\n",(0,t.jsx)(n.p,{children:"Reasons for Faster Block Time in Morph\nUser Experience:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"A faster, consistent block time provides quicker feedback, enhancing the user experience."}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Optimization: As we refine the zkEVM circuits in our testnets, we can achieve higher throughput than Ethereum, even with a smaller gas limit per block or batch."}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"Notice:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"TIMESTAMP"})," will return the timestamp of the block. It will update every second."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"BLOCKNUMBER"})," will return an actual block number. It will update every second. The one-to-one mapping between blocks and transactions will no longer apply."]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"future-eips",children:"Future EIPs"}),"\n",(0,t.jsx)(n.p,{children:"Morph closely monitors emerging Ethereum Improvement Proposals (EIPs) and adopts them when suitable. For more specifics, join our community forum or Discord for discussions."}),"\n",(0,t.jsx)(n.h2,{id:"transaction-fees",children:(0,t.jsx)(n.a,{href:"/docs/build-on-morph/build-on-morph/understand-transaction-cost-on-morph",children:"Transaction Fees"})})]})}function a(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(h,{...e})}):h(e)}},2333:(e,n,i)=>{i.d(n,{R:()=>d,x:()=>s});var t=i(9474);const r={},o=t.createContext(r);function d(e){const n=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:d(e.components),t.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/2f19d5d4.440e58b9.js b/build/assets/js/2f19d5d4.440e58b9.js deleted file mode 100644 index 909740db4..000000000 --- a/build/assets/js/2f19d5d4.440e58b9.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[9640],{582:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>l,metadata:()=>s,toc:()=>a});var r=o(3274),t=o(2333);const l={title:"Deploy Contracts on Morph",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},i=void 0,s={id:"build-on-morph/code-examples/deploy-contract-on-morph",title:"Deploy Contracts on Morph",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/build-on-morph/code-examples/1-deploy-contract-on-morph.md",sourceDirName:"build-on-morph/code-examples",slug:"/build-on-morph/code-examples/deploy-contract-on-morph",permalink:"/docs/build-on-morph/code-examples/deploy-contract-on-morph",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/code-examples/1-deploy-contract-on-morph.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{title:"Deploy Contracts on Morph",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"Development Setup",permalink:"/docs/build-on-morph/build-on-morph/development-setup"},next:{title:"Verify Your Smart Contracts",permalink:"/docs/build-on-morph/build-on-morph/verify-your-smart-contracts"}},c={},a=[{value:"Deploy with Hardhat",id:"deploy-with-hardhat",level:2},{value:"Clone the repo",id:"clone-the-repo",level:3},{value:"Install Dependencies",id:"install-dependencies",level:3},{value:"Compile",id:"compile",level:3},{value:"Test",id:"test",level:3},{value:"Deploy",id:"deploy",level:3},{value:"Verify your contracts on Morph Explorer",id:"verify-your-contracts-on-morph-explorer",level:3},{value:"Deploy contracts with Foundry",id:"deploy-contracts-with-foundry",level:2},{value:"Clone the repo",id:"clone-the-repo-1",level:3},{value:"Install Foundry",id:"install-foundry",level:3},{value:"Compile",id:"compile-1",level:3},{value:"Deploy",id:"deploy-1",level:3},{value:"Verify",id:"verify",level:3},{value:"Questions and Feedback",id:"questions-and-feedback",level:2}];function h(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h2:"h2",h3:"h3",p:"p",pre:"pre",...(0,t.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.p,{children:"The Morph Holesky Testnet allows anyone to deploy a smart contract on Morph. This tutorial will guide you through deploying a contract on Morph Holesky using common Ethereum development tools."}),"\n",(0,r.jsxs)(n.p,{children:["This ",(0,r.jsx)(n.a,{href:"https://github.com/morph-l2/morph-examples/tree/main/contract-deployment-demos",children:"demo repo"})," illustrates contract deployment with ",(0,r.jsx)(n.a,{href:"https://hardhat.org/",children:"Hardhat"})," and ",(0,r.jsx)(n.a,{href:"https://github.com/foundry-rs/foundry",children:"Foundry"}),"."]}),"\n",(0,r.jsxs)(n.admonition,{type:"tip",children:[(0,r.jsxs)(n.p,{children:["Before you start deploying the contract, you need to request test tokens from a Holesky faucet and use the\n",(0,r.jsx)(n.a,{href:"https://bridge-holesky.morphl2.io",children:"bridge"})," to transfer some test ETH from ",(0,r.jsx)(n.em,{children:"Holesky"})," to ",(0,r.jsx)(n.em,{children:"Morph Holesky"}),"."]}),(0,r.jsxs)(n.p,{children:["See our ",(0,r.jsx)(n.a,{href:"/docs/quick-start/faucet",children:"Faucet"})," for details."]})]}),"\n",(0,r.jsx)(n.h2,{id:"deploy-with-hardhat",children:"Deploy with Hardhat"}),"\n",(0,r.jsx)(n.h3,{id:"clone-the-repo",children:"Clone the repo"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"git clone https://github.com/morph-l2/morph-examples.git\n"})}),"\n",(0,r.jsx)(n.h3,{id:"install-dependencies",children:"Install Dependencies"}),"\n",(0,r.jsxs)(n.p,{children:["If you haven't already, install ",(0,r.jsx)(n.a,{href:"https://nodejs.org/en/download/",children:"nodejs"})," and ",(0,r.jsx)(n.a,{href:"https://classic.yarnpkg.com/lang/en/docs/install",children:"yarn"}),"."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"cd contract-deployment-demos/hardhat-demo\nyarn install\n"})}),"\n",(0,r.jsx)(n.p,{children:"This will install everything you need include hardhat for you."}),"\n",(0,r.jsx)(n.h3,{id:"compile",children:"Compile"}),"\n",(0,r.jsx)(n.p,{children:"Compile your contract"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"yarn compile\n"})}),"\n",(0,r.jsx)(n.h3,{id:"test",children:"Test"}),"\n",(0,r.jsx)(n.p,{children:"This will run the test script in test/Lock.ts"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"yarn test\n"})}),"\n",(0,r.jsx)(n.h3,{id:"deploy",children:"Deploy"}),"\n",(0,r.jsxs)(n.p,{children:["Create a ",(0,r.jsx)(n.code,{children:".env"})," file following the example ",(0,r.jsx)(n.code,{children:".env.example"})," in the root directory. Change ",(0,r.jsx)(n.code,{children:"PRIVATE_KEY"})," to your own account private key in the ",(0,r.jsx)(n.code,{children:".env"}),"."]}),"\n",(0,r.jsx)(n.p,{children:"And Change the network settings in the hardhat.config.ts file with the following information:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-javascript",children:' morphTestnet: {\n url: process.env.MORPH_TESTNET_URL || "",\n accounts:\n process.env.PRIVATE_KEY !== undefined ? [process.env.PRIVATE_KEY] : [],\n }\n'})}),"\n",(0,r.jsx)(n.p,{children:"Then run the following command to deploy the contract on the Morph Holesky Testnet. This will run the deployment script that set the initialing parameters, you can edit the script in scripts/deploy.ts"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"yarn deploy:morphTestnet\n"})}),"\n",(0,r.jsx)(n.h3,{id:"verify-your-contracts-on-morph-explorer",children:"Verify your contracts on Morph Explorer"}),"\n",(0,r.jsx)(n.p,{children:"To verify your contract through hardhat, you need to add the following Etherscan and Sourcify configs to your hardhat.config.js file:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-javascript",children:"module.exports = {\n networks: {\n morphTestnet: { ... }\n },\n etherscan: {\n apiKey: {\n morphTestnet: 'anything',\n },\n customChains: [\n {\n network: 'morphTestnet',\n chainId: 2810,\n urls: {\n apiURL: 'https://explorer-api-holesky.morphl2.io/api? ',\n browserURL: 'https://explorer-holesky.morphl2.io/',\n },\n },\n ],\n },\n};\n"})}),"\n",(0,r.jsx)(n.p,{children:"Then run the hardhat verify command to finish the verification"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"npx hardhat verify --network morphTestnet DEPLOYED_CONTRACT_ADDRESS <ConstructorParameter>\n"})}),"\n",(0,r.jsx)(n.p,{children:"For example"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"npx hardhat verify --network morphTestnet 0x8025985e35f1bAFfd661717f66fC5a434417448E '0.00001'\n"})}),"\n",(0,r.jsxs)(n.p,{children:["Once succeed, you can check your contract and the deployment transaction on ",(0,r.jsx)(n.a,{href:"https://explorer-holesky.morphl2.io",children:"Morph Holesky Explorer"})]}),"\n",(0,r.jsx)(n.h2,{id:"deploy-contracts-with-foundry",children:"Deploy contracts with Foundry"}),"\n",(0,r.jsx)(n.h3,{id:"clone-the-repo-1",children:"Clone the repo"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"git clone https://github.com/morph-l2/morph-examples.git\n"})}),"\n",(0,r.jsx)(n.h3,{id:"install-foundry",children:"Install Foundry"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"curl -L https://foundry.paradigm.xyz | bash\nfoundryup\n"})}),"\n",(0,r.jsx)(n.p,{children:"Then go the right folder of our example:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"cd contract-deployment-demos/foundry-demo\n"})}),"\n",(0,r.jsx)(n.h3,{id:"compile-1",children:"Compile"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"forge build\n"})}),"\n",(0,r.jsx)(n.h3,{id:"deploy-1",children:"Deploy"}),"\n",(0,r.jsx)(n.p,{children:"A Deployment script and use of environment variables has already been set up for you. You can view the script at script/Counter.s.sol"}),"\n",(0,r.jsx)(n.p,{children:"Rename your .env.example file to .env and fill in your private key. The RPC URL has already been filled in along with the verifier URL."}),"\n",(0,r.jsx)(n.p,{children:"To use the variables in your .env file run the following command:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-shell",children:"source .env\n"})}),"\n",(0,r.jsx)(n.p,{children:"You can now deploy to Morph with the following command:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-shell",children:"forge script script/Counter.s.sol --rpc-url $RPC_URL --broadcast --private-key $DEPLOYER_PRIVATE_KEY --legacy\n"})}),"\n",(0,r.jsx)(n.p,{children:"Adjust as needed for your own script names."}),"\n",(0,r.jsx)(n.h3,{id:"verify",children:"Verify"}),"\n",(0,r.jsx)(n.p,{children:"Verification requires some flags passed to the normal verification script. You can verify using the command below:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:" forge verify-contract YourContractAddress Counter\\\n --chain 2810 \\\n --verifier-url $VERIFIER_URL \\\n --verifier blockscout --watch\n"})}),"\n",(0,r.jsxs)(n.p,{children:["Once succeeded, you can check your contract and the deployment transaction on ",(0,r.jsx)(n.a,{href:"https://explorer-holesky.morphl2.io",children:"Morph Holesky Explorer"}),"."]}),"\n",(0,r.jsx)(n.h2,{id:"questions-and-feedback",children:"Questions and Feedback"}),"\n",(0,r.jsxs)(n.p,{children:["Thank you for participating in and developing on the Morph Holesky Testnet! If you encounter any issues, join our ",(0,r.jsx)(n.a,{href:"https://discord.com/invite/L2Morph",children:"Discord"})," and find us at #dev-support channel."]})]})}function d(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},2333:(e,n,o)=>{o.d(n,{R:()=>i,x:()=>s});var r=o(9474);const t={},l=r.createContext(t);function i(e){const n=r.useContext(l);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),r.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/2f19d5d4.fa2f851a.js b/build/assets/js/2f19d5d4.fa2f851a.js new file mode 100644 index 000000000..064fae924 --- /dev/null +++ b/build/assets/js/2f19d5d4.fa2f851a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[9640],{4240:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>a,contentTitle:()=>i,default:()=>d,frontMatter:()=>l,metadata:()=>s,toc:()=>c});var r=o(6070),t=o(1582);const l={title:"Deploy Contracts on Morph",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},i=void 0,s={id:"build-on-morph/code-examples/deploy-contract-on-morph",title:"Deploy Contracts on Morph",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/build-on-morph/code-examples/1-deploy-contract-on-morph.md",sourceDirName:"build-on-morph/code-examples",slug:"/build-on-morph/code-examples/deploy-contract-on-morph",permalink:"/docs/build-on-morph/code-examples/deploy-contract-on-morph",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/code-examples/1-deploy-contract-on-morph.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{title:"Deploy Contracts on Morph",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"Development Setup",permalink:"/docs/build-on-morph/build-on-morph/development-setup"},next:{title:"Verify Your Smart Contracts",permalink:"/docs/build-on-morph/build-on-morph/verify-your-smart-contracts"}},a={},c=[{value:"Deploy with Hardhat",id:"deploy-with-hardhat",level:2},{value:"Clone the repo",id:"clone-the-repo",level:3},{value:"Install Dependencies",id:"install-dependencies",level:3},{value:"Compile",id:"compile",level:3},{value:"Test",id:"test",level:3},{value:"Deploy",id:"deploy",level:3},{value:"Verify your contracts on Morph Explorer",id:"verify-your-contracts-on-morph-explorer",level:3},{value:"Deploy contracts with Foundry",id:"deploy-contracts-with-foundry",level:2},{value:"Clone the repo",id:"clone-the-repo-1",level:3},{value:"Install Foundry",id:"install-foundry",level:3},{value:"Compile",id:"compile-1",level:3},{value:"Deploy",id:"deploy-1",level:3},{value:"Verify",id:"verify",level:3},{value:"Questions and Feedback",id:"questions-and-feedback",level:2}];function h(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h2:"h2",h3:"h3",p:"p",pre:"pre",...(0,t.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.p,{children:"The Morph Holesky Testnet allows anyone to deploy a smart contract on Morph. This tutorial will guide you through deploying a contract on Morph Holesky using common Ethereum development tools."}),"\n",(0,r.jsxs)(n.p,{children:["This ",(0,r.jsx)(n.a,{href:"https://github.com/morph-l2/morph-examples/tree/main/contract-deployment-demos",children:"demo repo"})," illustrates contract deployment with ",(0,r.jsx)(n.a,{href:"https://hardhat.org/",children:"Hardhat"})," and ",(0,r.jsx)(n.a,{href:"https://github.com/foundry-rs/foundry",children:"Foundry"}),"."]}),"\n",(0,r.jsxs)(n.admonition,{type:"tip",children:[(0,r.jsxs)(n.p,{children:["Before you start deploying the contract, you need to request test tokens from a Holesky faucet and use the\n",(0,r.jsx)(n.a,{href:"https://bridge-holesky.morphl2.io",children:"bridge"})," to transfer some test ETH from ",(0,r.jsx)(n.em,{children:"Holesky"})," to ",(0,r.jsx)(n.em,{children:"Morph Holesky"}),"."]}),(0,r.jsxs)(n.p,{children:["See our ",(0,r.jsx)(n.a,{href:"/docs/quick-start/faucet",children:"Faucet"})," for details."]})]}),"\n",(0,r.jsx)(n.h2,{id:"deploy-with-hardhat",children:"Deploy with Hardhat"}),"\n",(0,r.jsx)(n.h3,{id:"clone-the-repo",children:"Clone the repo"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"git clone https://github.com/morph-l2/morph-examples.git\n"})}),"\n",(0,r.jsx)(n.h3,{id:"install-dependencies",children:"Install Dependencies"}),"\n",(0,r.jsxs)(n.p,{children:["If you haven't already, install ",(0,r.jsx)(n.a,{href:"https://nodejs.org/en/download/",children:"nodejs"})," and ",(0,r.jsx)(n.a,{href:"https://classic.yarnpkg.com/lang/en/docs/install",children:"yarn"}),"."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"cd contract-deployment-demos/hardhat-demo\nyarn install\n"})}),"\n",(0,r.jsx)(n.p,{children:"This will install everything you need include hardhat for you."}),"\n",(0,r.jsx)(n.h3,{id:"compile",children:"Compile"}),"\n",(0,r.jsx)(n.p,{children:"Compile your contract"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"yarn compile\n"})}),"\n",(0,r.jsx)(n.h3,{id:"test",children:"Test"}),"\n",(0,r.jsx)(n.p,{children:"This will run the test script in test/Lock.ts"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"yarn test\n"})}),"\n",(0,r.jsx)(n.h3,{id:"deploy",children:"Deploy"}),"\n",(0,r.jsxs)(n.p,{children:["Create a ",(0,r.jsx)(n.code,{children:".env"})," file following the example ",(0,r.jsx)(n.code,{children:".env.example"})," in the root directory. Change ",(0,r.jsx)(n.code,{children:"PRIVATE_KEY"})," to your own account private key in the ",(0,r.jsx)(n.code,{children:".env"}),"."]}),"\n",(0,r.jsx)(n.p,{children:"And Change the network settings in the hardhat.config.ts file with the following information:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-javascript",children:' morphTestnet: {\n url: process.env.MORPH_TESTNET_URL || "",\n accounts:\n process.env.PRIVATE_KEY !== undefined ? [process.env.PRIVATE_KEY] : [],\n }\n'})}),"\n",(0,r.jsx)(n.p,{children:"Then run the following command to deploy the contract on the Morph Holesky Testnet. This will run the deployment script that set the initialing parameters, you can edit the script in scripts/deploy.ts"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"yarn deploy:morphTestnet\n"})}),"\n",(0,r.jsx)(n.h3,{id:"verify-your-contracts-on-morph-explorer",children:"Verify your contracts on Morph Explorer"}),"\n",(0,r.jsx)(n.p,{children:"To verify your contract through hardhat, you need to add the following Etherscan and Sourcify configs to your hardhat.config.js file:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-javascript",children:"module.exports = {\n networks: {\n morphTestnet: { ... }\n },\n etherscan: {\n apiKey: {\n morphTestnet: 'anything',\n },\n customChains: [\n {\n network: 'morphTestnet',\n chainId: 2810,\n urls: {\n apiURL: 'https://explorer-api-holesky.morphl2.io/api? ',\n browserURL: 'https://explorer-holesky.morphl2.io/',\n },\n },\n ],\n },\n};\n"})}),"\n",(0,r.jsx)(n.p,{children:"Then run the hardhat verify command to finish the verification"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"npx hardhat verify --network morphTestnet DEPLOYED_CONTRACT_ADDRESS <ConstructorParameter>\n"})}),"\n",(0,r.jsx)(n.p,{children:"For example"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"npx hardhat verify --network morphTestnet 0x8025985e35f1bAFfd661717f66fC5a434417448E '0.00001'\n"})}),"\n",(0,r.jsxs)(n.p,{children:["Once succeed, you can check your contract and the deployment transaction on ",(0,r.jsx)(n.a,{href:"https://explorer-holesky.morphl2.io",children:"Morph Holesky Explorer"})]}),"\n",(0,r.jsx)(n.h2,{id:"deploy-contracts-with-foundry",children:"Deploy contracts with Foundry"}),"\n",(0,r.jsx)(n.h3,{id:"clone-the-repo-1",children:"Clone the repo"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"git clone https://github.com/morph-l2/morph-examples.git\n"})}),"\n",(0,r.jsx)(n.h3,{id:"install-foundry",children:"Install Foundry"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"curl -L https://foundry.paradigm.xyz | bash\nfoundryup\n"})}),"\n",(0,r.jsx)(n.p,{children:"Then go the right folder of our example:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"cd contract-deployment-demos/foundry-demo\n"})}),"\n",(0,r.jsx)(n.h3,{id:"compile-1",children:"Compile"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"forge build\n"})}),"\n",(0,r.jsx)(n.h3,{id:"deploy-1",children:"Deploy"}),"\n",(0,r.jsx)(n.p,{children:"A Deployment script and use of environment variables has already been set up for you. You can view the script at script/Counter.s.sol"}),"\n",(0,r.jsx)(n.p,{children:"Rename your .env.example file to .env and fill in your private key. The RPC URL has already been filled in along with the verifier URL."}),"\n",(0,r.jsx)(n.p,{children:"To use the variables in your .env file run the following command:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-shell",children:"source .env\n"})}),"\n",(0,r.jsx)(n.p,{children:"You can now deploy to Morph with the following command:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-shell",children:"forge script script/Counter.s.sol --rpc-url $RPC_URL --broadcast --private-key $DEPLOYER_PRIVATE_KEY --legacy\n"})}),"\n",(0,r.jsx)(n.p,{children:"Adjust as needed for your own script names."}),"\n",(0,r.jsx)(n.h3,{id:"verify",children:"Verify"}),"\n",(0,r.jsx)(n.p,{children:"Verification requires some flags passed to the normal verification script. You can verify using the command below:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:" forge verify-contract YourContractAddress Counter\\\n --chain 2810 \\\n --verifier-url $VERIFIER_URL \\\n --verifier blockscout --watch\n"})}),"\n",(0,r.jsxs)(n.p,{children:["Once succeeded, you can check your contract and the deployment transaction on ",(0,r.jsx)(n.a,{href:"https://explorer-holesky.morphl2.io",children:"Morph Holesky Explorer"}),"."]}),"\n",(0,r.jsx)(n.h2,{id:"questions-and-feedback",children:"Questions and Feedback"}),"\n",(0,r.jsxs)(n.p,{children:["Thank you for participating in and developing on the Morph Holesky Testnet! If you encounter any issues, join our ",(0,r.jsx)(n.a,{href:"https://discord.com/invite/MorphLayer",children:"Discord"})," and find us at #dev-support channel."]})]})}function d(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},1582:(e,n,o)=>{o.d(n,{R:()=>i,x:()=>s});var r=o(758);const t={},l=r.createContext(t);function i(e){const n=r.useContext(l);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),r.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/31699625.8d77373b.js b/build/assets/js/31699625.8d77373b.js deleted file mode 100644 index 4120cfc87..000000000 --- a/build/assets/js/31699625.8d77373b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[334],{4061:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-pages","id":"default"}')}}]); \ No newline at end of file diff --git a/build/assets/js/3250a443.4576d738.js b/build/assets/js/3250a443.4576d738.js new file mode 100644 index 000000000..5df4b3702 --- /dev/null +++ b/build/assets/js/3250a443.4576d738.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[6935],{2702:(e,o,n)=>{n.r(o),n.d(o,{assets:()=>a,contentTitle:()=>i,default:()=>u,frontMatter:()=>d,metadata:()=>s,toc:()=>c});var r=n(6070),t=n(1582);const d={title:"Upgrade node running from docker",lang:"en-US"},i=void 0,s={id:"build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-docker",title:"Upgrade node running from docker",description:"Docker Images",source:"@site/docs/build-on-morph/developer-resources/node-operation/upgrade-node/2-upgrade-node-docker.md",sourceDirName:"build-on-morph/developer-resources/node-operation/upgrade-node",slug:"/build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-docker",permalink:"/docs/build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-docker",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/developer-resources/node-operation/upgrade-node/2-upgrade-node-docker.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{title:"Upgrade node running from docker",lang:"en-US"},sidebar:"DeveloperSidebar",previous:{title:"Run a validator from source",permalink:"/docs/build-on-morph/developer-resources/node-operation/validator-node/run-on-host"},next:{title:"Upgrade node running on the host",permalink:"/docs/build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-host"}},a={},c=[{value:"Docker Images",id:"docker-images",level:2},{value:"If You Are Using a Custom Setup",id:"if-you-are-using-a-custom-setup",level:3},{value:"If You Are Using the Recommended Configuration",id:"if-you-are-using-the-recommended-configuration",level:3},{value:"Step1: Update docker images version",id:"step1--update-docker-images-version",level:4},{value:"Step2: Restart the container",id:"step2-restart-the-container",level:4}];function l(e){const o={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",h4:"h4",li:"li",mdxAdmonitionTitle:"mdxAdmonitionTitle",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,t.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(o.h2,{id:"docker-images",children:"Docker Images"}),"\n",(0,r.jsxs)(o.ul,{children:["\n",(0,r.jsxs)(o.li,{children:["\n",(0,r.jsxs)(o.p,{children:[(0,r.jsx)(o.code,{children:"go-ethereum:"})," ",(0,r.jsx)(o.a,{href:"https://github.com/morph-l2/go-ethereum/pkgs/container/go-ethereum",children:"ghcr.io/morph-l2/go-ethereum"})]}),"\n"]}),"\n",(0,r.jsxs)(o.li,{children:["\n",(0,r.jsxs)(o.p,{children:[(0,r.jsx)(o.code,{children:"node:"})," ",(0,r.jsx)(o.a,{href:"https://github.com/morph-l2/morph/pkgs/container/node",children:"ghcr.io/morph-l2/node"})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(o.h3,{id:"if-you-are-using-a-custom-setup",children:"If You Are Using a Custom Setup"}),"\n",(0,r.jsx)(o.p,{children:"If you are running the Docker container for the node using a custom setup, you will need to manually update the Docker image version and restart the container."}),"\n",(0,r.jsx)(o.h3,{id:"if-you-are-using-the-recommended-configuration",children:"If You Are Using the Recommended Configuration"}),"\n",(0,r.jsxs)(o.p,{children:["For those using the ",(0,r.jsx)(o.a,{href:"/docs/build-on-morph/developer-resources/node-operation/full-node/run-in-docker",children:"Run a full node with docker"})," to start the container, follow these steps to upgrade your node."]}),"\n",(0,r.jsx)(o.h4,{id:"step1--update-docker-images-version",children:"Step1: Update docker images version"}),"\n",(0,r.jsxs)(o.ul,{children:["\n",(0,r.jsxs)(o.li,{children:["\n",(0,r.jsxs)(o.p,{children:["Check the latest docker image version from ",(0,r.jsx)(o.a,{href:"#docker-images",children:"Docker Images"})]}),"\n"]}),"\n",(0,r.jsxs)(o.li,{children:["\n",(0,r.jsxs)(o.p,{children:["Update the docker image version on ",(0,r.jsx)(o.a,{href:"https://github.com/morph-l2/run-morph-node/blob/run_node_script/morph-node/docker-compose.yml",children:"morph-node/docker-compose.yml"})]}),"\n",(0,r.jsx)(o.pre,{children:(0,r.jsx)(o.code,{className:"language-yaml",metastring:'title="morph-node/docker-compose.yml"',children:"services: \ngeth: \n container_name: morph-geth\n image: ghcr.io/morph-l2/go-ethereum:{update_version} ## Specify the Geth image version\n restart: unless-stopped\n\n# ...\n\nnode:\n container_name: morph-node\n depends_on:\n geth:\n condition: service_started\n image: ghcr.io/morph-l2/node:{update_version} ## Specify the Node image version\n\n# ...\n\n"})}),"\n",(0,r.jsx)(o.admonition,{type:"tip",children:(0,r.jsx)(o.p,{children:"Optionally update the image version for go-ethereum, node, or both, depending on your requirements."})}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(o.h4,{id:"step2-restart-the-container",children:"Step2: Restart the container"}),"\n",(0,r.jsx)(o.p,{children:"Use the following commands to stop and restart the container. The updated Docker images will be pulled automatically."}),"\n",(0,r.jsx)(o.pre,{children:(0,r.jsx)(o.code,{className:"language-js",children:"// stop the docker containers\nmake stop-node\n\n// start the docker container, it will automatically pull the updated docker images\nmake run-node\n"})}),"\n",(0,r.jsxs)(o.p,{children:["If you are running a ",(0,r.jsx)(o.strong,{children:"validator"}),", use these commands instead:"]}),"\n",(0,r.jsx)(o.pre,{children:(0,r.jsx)(o.code,{className:"language-bash",children:"make stop-validator\nmake run-validator\n"})}),"\n",(0,r.jsxs)(o.admonition,{type:"note",children:[(0,r.jsx)(o.mdxAdmonitionTitle,{}),(0,r.jsxs)(o.p,{children:["Ensure that the startup parameters for the Docker container remain consistent with your previous configuration. If you previously used a custom setup, verify that the configuration and directory paths match your earlier setup. For details, please refer to ",(0,r.jsx)(o.a,{href:"/docs/build-on-morph/developer-resources/node-operation/full-node/run-in-docker#advanced-usage",children:(0,r.jsx)(o.strong,{children:"Advanced Usage"})})]})]})]})}function u(e={}){const{wrapper:o}={...(0,t.R)(),...e.components};return o?(0,r.jsx)(o,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}},1582:(e,o,n)=>{n.d(o,{R:()=>i,x:()=>s});var r=n(758);const t={},d=r.createContext(t);function i(e){const o=r.useContext(d);return r.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function s(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),r.createElement(d.Provider,{value:o},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/3250a443.c7e60e11.js b/build/assets/js/3250a443.c7e60e11.js deleted file mode 100644 index 1b5b5eb7b..000000000 --- a/build/assets/js/3250a443.c7e60e11.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[6935],{9148:(e,o,t)=>{t.r(o),t.d(o,{assets:()=>i,contentTitle:()=>s,default:()=>u,frontMatter:()=>d,metadata:()=>a,toc:()=>c});var n=t(3274),r=t(2333);const d={title:"Upgrade node running from docker",lang:"en-US"},s=void 0,a={id:"build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-docker",title:"Upgrade node running from docker",description:"If you are running the Docker container for the node using a custom setup, you will need to update the docker image yourself and then restart the container.",source:"@site/docs/build-on-morph/developer-resources/node-operation/upgrade-node/2-upgrade-node-docker.md",sourceDirName:"build-on-morph/developer-resources/node-operation/upgrade-node",slug:"/build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-docker",permalink:"/docs/build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-docker",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/developer-resources/node-operation/upgrade-node/2-upgrade-node-docker.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{title:"Upgrade node running from docker",lang:"en-US"},sidebar:"DeveloperSidebar",previous:{title:"How to Run a Morph Validator Node",permalink:"/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-validator-node"},next:{title:"Upgrade node running on the host",permalink:"/docs/build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-host"}},i={},c=[{value:"Step1: Fetch latest code version",id:"step1--fetch-latest-code-version",level:3},{value:"Step2: Stop the nodes and delete previous images",id:"step2-stop-the-nodes-and-delete-previous-images",level:3},{value:"Step3: Build the latest image and restart the container",id:"step3-build-the-latest-image-and-restart-the-container",level:3}];function p(e){const o={a:"a",admonition:"admonition",code:"code",h3:"h3",mdxAdmonitionTitle:"mdxAdmonitionTitle",p:"p",pre:"pre",strong:"strong",...(0,r.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(o.p,{children:"If you are running the Docker container for the node using a custom setup, you will need to update the docker image yourself and then restart the container."}),"\n",(0,n.jsxs)(o.p,{children:["The source code is available at ",(0,n.jsx)(o.a,{href:"https://github.com/morph-l2/morph.git",children:"https://github.com/morph-l2/morph.git"}),". You need to switch to the latest version of the code and then update your docker image."]}),"\n",(0,n.jsxs)(o.p,{children:["If you are using ",(0,n.jsx)(o.a,{href:"/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node-docker",children:"Run a Morph node with docker"})," to start the docker container, you can follow the subsequent steps to upgrade the node."]}),"\n",(0,n.jsx)(o.h3,{id:"step1--fetch-latest-code-version",children:"Step1: Fetch latest code version"}),"\n",(0,n.jsx)(o.pre,{children:(0,n.jsx)(o.code,{className:"language-bash",children:"git clone https://github.com/morph-l2/morph.git\n## checkout the latest version of the source code you need\ngit checkout ${latestVersion}\n"})}),"\n",(0,n.jsx)(o.h3,{id:"step2-stop-the-nodes-and-delete-previous-images",children:"Step2: Stop the nodes and delete previous images"}),"\n",(0,n.jsx)(o.pre,{children:(0,n.jsx)(o.code,{className:"language-bash",children:"## stop docker container\ncd ops/publicnode\nmake stop-holesky-node\nmake rm-holesky-node\n## delete the pervious docker image for node\ndocker rmi morph/node:latest\n## delete the pervious docker image for geth\ndocker rmi morph/geth-nccc:latest\n"})}),"\n",(0,n.jsx)(o.h3,{id:"step3-build-the-latest-image-and-restart-the-container",children:"Step3: Build the latest image and restart the container"}),"\n",(0,n.jsxs)(o.admonition,{type:"note",children:[(0,n.jsx)(o.mdxAdmonitionTitle,{}),(0,n.jsxs)(o.p,{children:["Please note that we need to ensure that the Docker container startup parameters are consistent with those used previously. If you used a custom configuration before, make sure that the configuration and directory paths used in this run are the same as before. For details, please refer to ",(0,n.jsx)(o.a,{href:"/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node-docker#advanced-usage",children:(0,n.jsx)(o.strong,{children:"Advanced Usage"})})]})]}),"\n",(0,n.jsx)(o.pre,{children:(0,n.jsx)(o.code,{className:"language-bash",children:"## start the docker container, it will automatically build the new docker images\nmake run-holesky-node\n"})})]})}function u(e={}){const{wrapper:o}={...(0,r.R)(),...e.components};return o?(0,n.jsx)(o,{...e,children:(0,n.jsx)(p,{...e})}):p(e)}},2333:(e,o,t)=>{t.d(o,{R:()=>s,x:()=>a});var n=t(9474);const r={},d=n.createContext(r);function s(e){const o=n.useContext(d);return n.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function a(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),n.createElement(d.Provider,{value:o},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/325638e1.8beee3a7.js b/build/assets/js/325638e1.54567db5.js similarity index 69% rename from build/assets/js/325638e1.8beee3a7.js rename to build/assets/js/325638e1.54567db5.js index bb5eacc3d..e9f74abba 100644 --- a/build/assets/js/325638e1.8beee3a7.js +++ b/build/assets/js/325638e1.54567db5.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[8318],{1456:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>c,toc:()=>h});var n=s(3274),r=s(2333);const o={title:"Faucet",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},i=void 0,c={id:"quick-start/faucet",title:"Faucet",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/quick-start/3-faucet.md",sourceDirName:"quick-start",slug:"/quick-start/faucet",permalink:"/docs/quick-start/faucet",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/quick-start/3-faucet.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{title:"Faucet",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"Wallet Setup",permalink:"/docs/quick-start/wallet-setup"},next:{title:"Bridge",permalink:"/docs/quick-start/bridge"}},l={},h=[{value:"Faucet",id:"faucet",level:2},{value:"Morph Holesky Website Faucet",id:"morph-holesky-website-faucet",level:3},{value:"3rd Party Ethereum Holesky ETH Faucet",id:"3rd-party-ethereum-holesky-eth-faucet",level:3},{value:"Discord Morph Holesky Faucet",id:"discord-morph-holesky-faucet",level:3},{value:"Morph Holesky ETH",id:"morph-holesky-eth",level:3},{value:"ERC20 USDT",id:"erc20-usdt",level:3}];function a(e){const t={a:"a",admonition:"admonition",code:"code",em:"em",h2:"h2",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",...(0,r.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h2,{id:"faucet",children:"Faucet"}),"\n",(0,n.jsx)(t.h3,{id:"morph-holesky-website-faucet",children:"Morph Holesky Website Faucet"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"website faucet",src:s(2929).A+"",width:"4026",height:"2354"})}),"\n",(0,n.jsxs)(t.p,{children:["Our ",(0,n.jsx)(t.a,{href:"https://morphfaucet.com/",children:"website faucet"})," is live!"]}),"\n",(0,n.jsx)(t.p,{children:"Users can claim Morph ETH & USDT to fund their initial activities."}),"\n",(0,n.jsx)(t.h3,{id:"3rd-party-ethereum-holesky-eth-faucet",children:"3rd Party Ethereum Holesky ETH Faucet"}),"\n",(0,n.jsx)(t.p,{children:"To use Morph's public testnet, obtain testnet ETH on Holesky, then bridge it to the Morph testnet."}),"\n",(0,n.jsx)(t.p,{children:"Here are a few Holesky faucet apps:"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.a,{href:"https://stakely.io/en/faucet/ethereum-holesky-testnet-eth",children:"https://stakely.io/en/faucet/ethereum-holesky-testnet-eth"})}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.a,{href:"https://faucet.quicknode.com/ethereum/holesky",children:"https://faucet.quicknode.com/ethereum/holesky"})}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.a,{href:"https://holesky-faucet.pk910.de/",children:"https://holesky-faucet.pk910.de/"})}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.a,{href:"https://cloud.google.com/application/web3/faucet/ethereum",children:"https://cloud.google.com/application/web3/faucet/ethereum"})," (needs a Google account)"]}),"\n",(0,n.jsx)(t.p,{children:"Once you receive ETH on Holesky, you should see it in your wallet on the Holesky Network."}),"\n",(0,n.jsxs)(t.p,{children:["It may take a few seconds for them to appear, but you can check the status by looking for a transaction to your address on the ",(0,n.jsx)(t.a,{href:"https://holesky.etherscan.io/",children:"Holesky Block Explorer"}),"."]}),"\n",(0,n.jsx)(t.h3,{id:"discord-morph-holesky-faucet",children:"Discord Morph Holesky Faucet"}),"\n",(0,n.jsx)(t.h3,{id:"morph-holesky-eth",children:"Morph Holesky ETH"}),"\n",(0,n.jsx)(t.p,{children:"You can obtain the Morph Holesky ETH in our discord too for development purposes."}),"\n",(0,n.jsxs)(t.p,{children:["Using the ",(0,n.jsx)(t.em,{children:"/morph_eth"})," command and type your address will grant you 0.01 Morph Holesky ETH."]}),"\n",(0,n.jsx)(t.p,{children:"Once succeed, you will see the following message:"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"success",src:s(5332).A+"",width:"1142",height:"1006"})}),"\n",(0,n.jsx)(t.h3,{id:"erc20-usdt",children:"ERC20 USDT"}),"\n",(0,n.jsx)(t.admonition,{type:"tip",children:(0,n.jsx)(t.p,{children:"Currently, we set the limit that for each discord user, you can only request the tokens once every 24 hours."})}),"\n",(0,n.jsx)(t.p,{children:"You can obtain morph's version of USDT on Holesky through our discord faucet, here's how it works:"}),"\n",(0,n.jsxs)(t.ol,{children:["\n",(0,n.jsxs)(t.li,{children:["\n",(0,n.jsxs)(t.p,{children:["Join our discord server through this ",(0,n.jsx)(t.a,{href:"https://discord.com/invite/L2Morph",children:"link"}),"."]}),"\n"]}),"\n",(0,n.jsxs)(t.li,{children:["\n",(0,n.jsxs)(t.p,{children:["Find the ",(0,n.jsx)(t.em,{children:"#| discord-faucet"})," channel."]}),"\n"]}),"\n",(0,n.jsxs)(t.li,{children:["\n",(0,n.jsxs)(t.p,{children:["Type ",(0,n.jsx)(t.em,{children:"/faucet"})," in the channel and add your Holesky address behind it."]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"command",src:s(7614).A+"",width:"1378",height:"656"})}),"\n",(0,n.jsxs)(t.ol,{start:"4",children:["\n",(0,n.jsxs)(t.li,{children:["\n",(0,n.jsx)(t.p,{children:"Wait for a few seconds."}),"\n"]}),"\n",(0,n.jsxs)(t.li,{children:["\n",(0,n.jsx)(t.p,{children:"Once succeeded, you will see this in the channel."}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"success",src:s(1467).A+"",width:"1390",height:"330"})}),"\n",(0,n.jsxs)(t.ol,{start:"6",children:["\n",(0,n.jsx)(t.li,{children:"Add the Morph Holesky USDT information to your wallet."}),"\n"]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{children:'\nEthereum Holesky USDT address: "0xD6e9Cd5ef382b0830653d1b2007D5Ca6987FaA26"\n\nMorph Holesky USDT address: "0x9E12AD42c4E4d2acFBADE01a96446e48e6764B98"\n\n'})}),"\n",(0,n.jsxs)(t.ol,{start:"7",children:["\n",(0,n.jsx)(t.li,{children:"Check you wallet for USDT balance and start to bridge!"}),"\n"]})]})}function d(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(a,{...e})}):a(e)}},7614:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/faucet_c-305e3bef375c3574c130e5e7cf383aa9.png"},5332:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/faucet_eth-27d4a9081af0054de2ccfdc1813c11b5.png"},1467:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/success-bb6955917712ae77607b6906bd3043a6.png"},2929:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/web_faucet-b5d9025ea3388c8c9d902fcd41898f36.jpg"},2333:(e,t,s)=>{s.d(t,{R:()=>i,x:()=>c});var n=s(9474);const r={},o=n.createContext(r);function i(e){const t=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),n.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[8318],{9926:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>c,toc:()=>h});var n=s(6070),r=s(1582);const o={title:"Faucet",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},i=void 0,c={id:"quick-start/faucet",title:"Faucet",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/quick-start/3-faucet.md",sourceDirName:"quick-start",slug:"/quick-start/faucet",permalink:"/docs/quick-start/faucet",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/quick-start/3-faucet.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{title:"Faucet",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"Wallet Setup",permalink:"/docs/quick-start/wallet-setup"},next:{title:"Bridge",permalink:"/docs/quick-start/bridge"}},l={},h=[{value:"Faucet",id:"faucet",level:2},{value:"Morph Holesky Website Faucet",id:"morph-holesky-website-faucet",level:3},{value:"3rd Party Ethereum Holesky ETH Faucet",id:"3rd-party-ethereum-holesky-eth-faucet",level:3},{value:"Discord Morph Holesky Faucet",id:"discord-morph-holesky-faucet",level:3},{value:"Morph Holesky ETH",id:"morph-holesky-eth",level:3},{value:"ERC20 USDT",id:"erc20-usdt",level:3}];function a(e){const t={a:"a",admonition:"admonition",code:"code",em:"em",h2:"h2",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",...(0,r.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h2,{id:"faucet",children:"Faucet"}),"\n",(0,n.jsx)(t.h3,{id:"morph-holesky-website-faucet",children:"Morph Holesky Website Faucet"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"website faucet",src:s(7173).A+"",width:"4026",height:"2354"})}),"\n",(0,n.jsxs)(t.p,{children:["Our ",(0,n.jsx)(t.a,{href:"https://morphfaucet.com/",children:"website faucet"})," is live!"]}),"\n",(0,n.jsx)(t.p,{children:"Users can claim Morph ETH & USDT to fund their initial activities."}),"\n",(0,n.jsx)(t.h3,{id:"3rd-party-ethereum-holesky-eth-faucet",children:"3rd Party Ethereum Holesky ETH Faucet"}),"\n",(0,n.jsx)(t.p,{children:"To use Morph's public testnet, obtain testnet ETH on Holesky, then bridge it to the Morph testnet."}),"\n",(0,n.jsx)(t.p,{children:"Here are a few Holesky faucet apps:"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.a,{href:"https://stakely.io/en/faucet/ethereum-holesky-testnet-eth",children:"https://stakely.io/en/faucet/ethereum-holesky-testnet-eth"})}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.a,{href:"https://faucet.quicknode.com/ethereum/holesky",children:"https://faucet.quicknode.com/ethereum/holesky"})}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.a,{href:"https://holesky-faucet.pk910.de/",children:"https://holesky-faucet.pk910.de/"})}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.a,{href:"https://cloud.google.com/application/web3/faucet/ethereum",children:"https://cloud.google.com/application/web3/faucet/ethereum"})," (needs a Google account)"]}),"\n",(0,n.jsx)(t.p,{children:"Once you receive ETH on Holesky, you should see it in your wallet on the Holesky Network."}),"\n",(0,n.jsxs)(t.p,{children:["It may take a few seconds for them to appear, but you can check the status by looking for a transaction to your address on the ",(0,n.jsx)(t.a,{href:"https://holesky.etherscan.io/",children:"Holesky Block Explorer"}),"."]}),"\n",(0,n.jsx)(t.h3,{id:"discord-morph-holesky-faucet",children:"Discord Morph Holesky Faucet"}),"\n",(0,n.jsx)(t.h3,{id:"morph-holesky-eth",children:"Morph Holesky ETH"}),"\n",(0,n.jsx)(t.p,{children:"You can obtain the Morph Holesky ETH in our discord too for development purposes."}),"\n",(0,n.jsxs)(t.p,{children:["Using the ",(0,n.jsx)(t.em,{children:"/morph_eth"})," command and type your address will grant you 0.01 Morph Holesky ETH."]}),"\n",(0,n.jsx)(t.p,{children:"Once succeed, you will see the following message:"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"success",src:s(3536).A+"",width:"1142",height:"1006"})}),"\n",(0,n.jsx)(t.h3,{id:"erc20-usdt",children:"ERC20 USDT"}),"\n",(0,n.jsx)(t.admonition,{type:"tip",children:(0,n.jsx)(t.p,{children:"Currently, we set the limit that for each discord user, you can only request the tokens once every 24 hours."})}),"\n",(0,n.jsx)(t.p,{children:"You can obtain morph's version of USDT on Holesky through our discord faucet, here's how it works:"}),"\n",(0,n.jsxs)(t.ol,{children:["\n",(0,n.jsxs)(t.li,{children:["\n",(0,n.jsxs)(t.p,{children:["Join our discord server through this ",(0,n.jsx)(t.a,{href:"https://discord.com/invite/MorphLayer",children:"link"}),"."]}),"\n"]}),"\n",(0,n.jsxs)(t.li,{children:["\n",(0,n.jsxs)(t.p,{children:["Find the ",(0,n.jsx)(t.em,{children:"#| discord-faucet"})," channel."]}),"\n"]}),"\n",(0,n.jsxs)(t.li,{children:["\n",(0,n.jsxs)(t.p,{children:["Type ",(0,n.jsx)(t.em,{children:"/faucet"})," in the channel and add your Holesky address behind it."]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"command",src:s(410).A+"",width:"1378",height:"656"})}),"\n",(0,n.jsxs)(t.ol,{start:"4",children:["\n",(0,n.jsxs)(t.li,{children:["\n",(0,n.jsx)(t.p,{children:"Wait for a few seconds."}),"\n"]}),"\n",(0,n.jsxs)(t.li,{children:["\n",(0,n.jsx)(t.p,{children:"Once succeeded, you will see this in the channel."}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"success",src:s(4055).A+"",width:"1390",height:"330"})}),"\n",(0,n.jsxs)(t.ol,{start:"6",children:["\n",(0,n.jsx)(t.li,{children:"Add the Morph Holesky USDT information to your wallet."}),"\n"]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{children:'\nEthereum Holesky USDT address: "0xD6e9Cd5ef382b0830653d1b2007D5Ca6987FaA26"\n\nMorph Holesky USDT address: "0x9E12AD42c4E4d2acFBADE01a96446e48e6764B98"\n\n'})}),"\n",(0,n.jsxs)(t.ol,{start:"7",children:["\n",(0,n.jsx)(t.li,{children:"Check you wallet for USDT balance and start to bridge!"}),"\n"]})]})}function d(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(a,{...e})}):a(e)}},410:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/faucet_c-305e3bef375c3574c130e5e7cf383aa9.png"},3536:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/faucet_eth-27d4a9081af0054de2ccfdc1813c11b5.png"},4055:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/success-bb6955917712ae77607b6906bd3043a6.png"},7173:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/web_faucet-b5d9025ea3388c8c9d902fcd41898f36.jpg"},1582:(e,t,s)=>{s.d(t,{R:()=>i,x:()=>c});var n=s(758);const r={},o=n.createContext(r);function i(e){const t=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),n.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/33e57971.6f4b72c2.js b/build/assets/js/33e57971.f01254b2.js similarity index 87% rename from build/assets/js/33e57971.6f4b72c2.js rename to build/assets/js/33e57971.f01254b2.js index e8b2dcb74..b47514659 100644 --- a/build/assets/js/33e57971.6f4b72c2.js +++ b/build/assets/js/33e57971.f01254b2.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[8343],{3853:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>d,frontMatter:()=>r,metadata:()=>a,toc:()=>l});var o=i(3274),n=i(2333);const r={title:"The Technology Behind Morph",lang:"en-US",keywords:["morph","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},s=void 0,a={id:"about-morph/the-technology-behind-morph",title:"The Technology Behind Morph",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/about-morph/2-the-technology-behind-morph.md",sourceDirName:"about-morph",slug:"/about-morph/the-technology-behind-morph",permalink:"/docs/about-morph/the-technology-behind-morph",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/about-morph/2-the-technology-behind-morph.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{title:"The Technology Behind Morph",lang:"en-US",keywords:["morph","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"Overview",permalink:"/docs/about-morph/overview-of-morph"},next:{title:"Morph's Architecture",permalink:"/docs/about-morph/morphs-architecture"}},c={},l=[{value:"Decentralized Sequencer Network",id:"decentralized-sequencer-network",level:2},{value:"Optimistic zkEVM Integration",id:"optimistic-zkevm-integration",level:2},{value:"Modular Design",id:"modular-design",level:2}];function h(e){const t={a:"a",h2:"h2",img:"img",li:"li",p:"p",ul:"ul",...(0,n.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.h2,{id:"decentralized-sequencer-network",children:"Decentralized Sequencer Network"}),"\n",(0,o.jsx)(t.p,{children:"Morph's Decentralized Sequencer Network is designed to enhance the security and reliability of the blockchain. Unlike traditional Layer 2 solutions that rely on a centralized sequencer, Morph employs a network of decentralized sequencers. This setup ensures that no single entity has control over the transaction sequencing process, thereby eliminating the risk of a single point of failure. If one sequencer fails or acts maliciously, the others can continue processing transactions, maintaining the system's integrity and uptime. This decentralization also prevents transaction censorship and ensures that no single entity can monopolize Miner Extractable Value (MEV), creating a fairer environment for all users."}),"\n",(0,o.jsx)(t.p,{children:"This collaborative approach not only increases security but also improves the overall efficiency and reliability of the transaction processing system, making Morph a robust and resilient Layer 2 solution."}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.img,{alt:"Sequqencer Network",src:i(6868).A+"",width:"3840",height:"2160"})}),"\n",(0,o.jsxs)(t.p,{children:["Visit Morph\u2019s ",(0,o.jsx)(t.a,{href:"/docs/how-morph-works/decentralized-sequencers/morph-decentralized-sequencer-network",children:"Decentralized Sequencer Network"})," for a more comprehensive article."]}),"\n",(0,o.jsx)(t.h2,{id:"optimistic-zkevm-integration",children:"Optimistic zkEVM Integration"}),"\n",(0,o.jsx)(t.p,{children:"Optimistic and Zero-Knowledge (ZK) rollups are two distinct approaches to scaling blockchain transactions on layer 2. Optimistic rollups simply assume all transactions are valid when submitting a batch for settlement on Ethereum. However, the validity of any transaction can be contested by entities known as challengers, by submitting proof of fraudulent activity. If the fraud-proof is successful, the incorrect transaction is rejected, ensuring security but at the cost of some potential delays and high gas fees associated with the challenge process."}),"\n",(0,o.jsx)(t.p,{children:"ZK rollups, on the other hand, use cryptographic proofs to verify the validity of transactions before these are submitted for settlement. All batches have their own ZK proof, allowing quick verification on the main chain without needing to review all the data associated with each transaction (hence \u201czero-knowledge\u201d). This offers immediate finality with higher security, but generating these proofs is computationally intensive and costly."}),"\n",(0,o.jsx)(t.p,{children:"Morph\u2019s hybrid rollup combines the best of these two approaches. Initially, the system operates optimistically, assuming transactions are valid to allow for quick processing and low costs. When a transaction is contested within Morph\u2019s challenge window, it\u2019s the sequencer that is required to produce a ZK proof to validate the transaction. We call this approach Responsive Validity Proof (RVP). It comes with the following improvements:"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:"Efficiency and Speed: A typical 7-day challenge window can be shortened to 1-3 days (a challenger no longer needs the extra time to identify malicious submissions, create a proof, and engage in multiple rounds of challenge procedures)."}),"\n",(0,o.jsx)(t.li,{children:"Reduced Costs: Employing ZK-proofs means that only minimal transaction information is retained, thereby significantly reducing the cost of L2 submissions. When no challenges arise, the cost of ZK-proof submission and verification can be ignored. RVP is therefore more cost-effective than both optimistic and ZK rollups."}),"\n"]}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.img,{alt:"Sequqencer Network",src:i(2406).A+"",width:"1920",height:"1080"})}),"\n",(0,o.jsxs)(t.p,{children:["Visit ",(0,o.jsx)(t.a,{href:"../how-morph-works/optimistic-zkevm",children:"Responsive Validity Proof"})," for a more comprehensive article."]}),"\n",(0,o.jsx)(t.h2,{id:"modular-design",children:"Modular Design"}),"\n",(0,o.jsx)(t.p,{children:"At its core, Morph is constructed using a sophisticated modular design architecture. The platform is organized into three functional modules (Sequencer Network, Rollup, Optimistic zk-EVM), each defined by distinct roles that collaborate in various configurations to meet diverse requirements. Each role within these modules operates its specific components, maintaining functional independence. This modular structure not only fosters flexibility and adaptability but also bolsters the composability of the system. It enables an efficient and interactive ecosystem, supporting the varied operational needs of our platform."}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.img,{alt:"Sequqencer Network",src:i(1267).A+"",width:"1920",height:"1080"})}),"\n",(0,o.jsxs)(t.p,{children:["Visit ",(0,o.jsx)(t.a,{href:"/docs/how-morph-works/morph-modular-design",children:"Morph\u2019s Modular Design"})," for a more comprehensive article."]})]})}function d(e={}){const{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(h,{...e})}):h(e)}},1267:(e,t,i)=>{i.d(t,{A:()=>o});const o=i.p+"assets/images/modu-01191e93311b938abebd1189bfb69b21.png"},2406:(e,t,i)=>{i.d(t,{A:()=>o});const o=i.p+"assets/images/opzk-9ae9b91f62e5e1b9e4771ee2e441c2ba.png"},6868:(e,t,i)=>{i.d(t,{A:()=>o});const o=i.p+"assets/images/seq1-e90d0e983252714740968a8aaaca0dd8.png"},2333:(e,t,i)=>{i.d(t,{R:()=>s,x:()=>a});var o=i(9474);const n={},r=o.createContext(n);function s(e){const t=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:s(e.components),o.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[8343],{6139:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>d,frontMatter:()=>r,metadata:()=>a,toc:()=>l});var o=i(6070),n=i(1582);const r={title:"The Technology Behind Morph",lang:"en-US",keywords:["morph","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},s=void 0,a={id:"about-morph/the-technology-behind-morph",title:"The Technology Behind Morph",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/about-morph/2-the-technology-behind-morph.md",sourceDirName:"about-morph",slug:"/about-morph/the-technology-behind-morph",permalink:"/docs/about-morph/the-technology-behind-morph",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/about-morph/2-the-technology-behind-morph.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{title:"The Technology Behind Morph",lang:"en-US",keywords:["morph","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"Overview",permalink:"/docs/about-morph/overview-of-morph"},next:{title:"Morph's Architecture",permalink:"/docs/about-morph/morphs-architecture"}},c={},l=[{value:"Decentralized Sequencer Network",id:"decentralized-sequencer-network",level:2},{value:"Optimistic zkEVM Integration",id:"optimistic-zkevm-integration",level:2},{value:"Modular Design",id:"modular-design",level:2}];function h(e){const t={a:"a",h2:"h2",img:"img",li:"li",p:"p",ul:"ul",...(0,n.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.h2,{id:"decentralized-sequencer-network",children:"Decentralized Sequencer Network"}),"\n",(0,o.jsx)(t.p,{children:"Morph's Decentralized Sequencer Network is designed to enhance the security and reliability of the blockchain. Unlike traditional Layer 2 solutions that rely on a centralized sequencer, Morph employs a network of decentralized sequencers. This setup ensures that no single entity has control over the transaction sequencing process, thereby eliminating the risk of a single point of failure. If one sequencer fails or acts maliciously, the others can continue processing transactions, maintaining the system's integrity and uptime. This decentralization also prevents transaction censorship and ensures that no single entity can monopolize Miner Extractable Value (MEV), creating a fairer environment for all users."}),"\n",(0,o.jsx)(t.p,{children:"This collaborative approach not only increases security but also improves the overall efficiency and reliability of the transaction processing system, making Morph a robust and resilient Layer 2 solution."}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.img,{alt:"Sequqencer Network",src:i(5928).A+"",width:"3840",height:"2160"})}),"\n",(0,o.jsxs)(t.p,{children:["Visit Morph\u2019s ",(0,o.jsx)(t.a,{href:"/docs/how-morph-works/decentralized-sequencers/morph-decentralized-sequencer-network",children:"Decentralized Sequencer Network"})," for a more comprehensive article."]}),"\n",(0,o.jsx)(t.h2,{id:"optimistic-zkevm-integration",children:"Optimistic zkEVM Integration"}),"\n",(0,o.jsx)(t.p,{children:"Optimistic and Zero-Knowledge (ZK) rollups are two distinct approaches to scaling blockchain transactions on layer 2. Optimistic rollups simply assume all transactions are valid when submitting a batch for settlement on Ethereum. However, the validity of any transaction can be contested by entities known as challengers, by submitting proof of fraudulent activity. If the fraud-proof is successful, the incorrect transaction is rejected, ensuring security but at the cost of some potential delays and high gas fees associated with the challenge process."}),"\n",(0,o.jsx)(t.p,{children:"ZK rollups, on the other hand, use cryptographic proofs to verify the validity of transactions before these are submitted for settlement. All batches have their own ZK proof, allowing quick verification on the main chain without needing to review all the data associated with each transaction (hence \u201czero-knowledge\u201d). This offers immediate finality with higher security, but generating these proofs is computationally intensive and costly."}),"\n",(0,o.jsx)(t.p,{children:"Morph\u2019s hybrid rollup combines the best of these two approaches. Initially, the system operates optimistically, assuming transactions are valid to allow for quick processing and low costs. When a transaction is contested within Morph\u2019s challenge window, it\u2019s the sequencer that is required to produce a ZK proof to validate the transaction. We call this approach Responsive Validity Proof (RVP). It comes with the following improvements:"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:"Efficiency and Speed: A typical 7-day challenge window can be shortened to 1-3 days (a challenger no longer needs the extra time to identify malicious submissions, create a proof, and engage in multiple rounds of challenge procedures)."}),"\n",(0,o.jsx)(t.li,{children:"Reduced Costs: Employing ZK-proofs means that only minimal transaction information is retained, thereby significantly reducing the cost of L2 submissions. When no challenges arise, the cost of ZK-proof submission and verification can be ignored. RVP is therefore more cost-effective than both optimistic and ZK rollups."}),"\n"]}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.img,{alt:"Sequqencer Network",src:i(8890).A+"",width:"1920",height:"1080"})}),"\n",(0,o.jsxs)(t.p,{children:["Visit ",(0,o.jsx)(t.a,{href:"../how-morph-works/optimistic-zkevm",children:"Responsive Validity Proof"})," for a more comprehensive article."]}),"\n",(0,o.jsx)(t.h2,{id:"modular-design",children:"Modular Design"}),"\n",(0,o.jsx)(t.p,{children:"At its core, Morph is constructed using a sophisticated modular design architecture. The platform is organized into three functional modules (Sequencer Network, Rollup, Optimistic zk-EVM), each defined by distinct roles that collaborate in various configurations to meet diverse requirements. Each role within these modules operates its specific components, maintaining functional independence. This modular structure not only fosters flexibility and adaptability but also bolsters the composability of the system. It enables an efficient and interactive ecosystem, supporting the varied operational needs of our platform."}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.img,{alt:"Sequqencer Network",src:i(9471).A+"",width:"1920",height:"1080"})}),"\n",(0,o.jsxs)(t.p,{children:["Visit ",(0,o.jsx)(t.a,{href:"/docs/how-morph-works/morph-modular-design",children:"Morph\u2019s Modular Design"})," for a more comprehensive article."]})]})}function d(e={}){const{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(h,{...e})}):h(e)}},9471:(e,t,i)=>{i.d(t,{A:()=>o});const o=i.p+"assets/images/modu-01191e93311b938abebd1189bfb69b21.png"},8890:(e,t,i)=>{i.d(t,{A:()=>o});const o=i.p+"assets/images/opzk-9ae9b91f62e5e1b9e4771ee2e441c2ba.png"},5928:(e,t,i)=>{i.d(t,{A:()=>o});const o=i.p+"assets/images/seq1-e90d0e983252714740968a8aaaca0dd8.png"},1582:(e,t,i)=>{i.d(t,{R:()=>s,x:()=>a});var o=i(758);const n={},r=o.createContext(n);function s(e){const t=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:s(e.components),o.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/c07bca7c.f81f8d3b.js b/build/assets/js/38a5c357.da46ef32.js similarity index 64% rename from build/assets/js/c07bca7c.f81f8d3b.js rename to build/assets/js/38a5c357.da46ef32.js index 3dc499dde..427c3ad81 100644 --- a/build/assets/js/c07bca7c.f81f8d3b.js +++ b/build/assets/js/38a5c357.da46ef32.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[7335],{7757:e=>{e.exports=JSON.parse('{"name":"docusaurus-theme-search-algolia","id":"default"}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[4286],{7757:e=>{e.exports=JSON.parse('{"name":"docusaurus-theme-search-algolia","id":"default"}')}}]); \ No newline at end of file diff --git a/build/assets/js/38e6cd8b.a8cc1a56.js b/build/assets/js/38e6cd8b.a8cc1a56.js deleted file mode 100644 index b3e8df629..000000000 --- a/build/assets/js/38e6cd8b.a8cc1a56.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[8476],{7810:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>d,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>c,toc:()=>l});var o=t(3274),n=t(2333);const r={},i="Function: estimateTotalGasCost()",c={id:"build-on-morph/sdk/functions/estimateTotalGasCost",title:"estimateTotalGasCost",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/functions/estimateTotalGasCost.md",sourceDirName:"build-on-morph/sdk/functions",slug:"/build-on-morph/sdk/functions/estimateTotalGasCost",permalink:"/docs/build-on-morph/sdk/functions/estimateTotalGasCost",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/functions/estimateTotalGasCost.md",tags:[],version:"current",frontMatter:{}},d={},l=[{value:"Parameters",id:"parameters",level:2},{value:"Returns",id:"returns",level:2},{value:"Source",id:"source",level:2}];function a(e){const s={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,n.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,o.jsx)(s.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,o.jsx)(s.strong,{children:"Docs"})]}),"\n",(0,o.jsx)(s.hr,{}),"\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / estimateTotalGasCost"]}),"\n",(0,o.jsx)(s.h1,{id:"function-estimatetotalgascost",children:"Function: estimateTotalGasCost()"}),"\n",(0,o.jsxs)(s.blockquote,{children:["\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.strong,{children:"estimateTotalGasCost"}),"(",(0,o.jsx)(s.code,{children:"l2Provider"}),", ",(0,o.jsx)(s.code,{children:"tx"}),"): ",(0,o.jsx)(s.code,{children:"Promise"}),"<",(0,o.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n"]}),"\n",(0,o.jsx)(s.p,{children:"Estimates the total gas cost for a given L2 transaction in wei."}),"\n",(0,o.jsx)(s.h2,{id:"parameters",children:"Parameters"}),"\n",(0,o.jsxs)(s.p,{children:["\u2022 ",(0,o.jsx)(s.strong,{children:"l2Provider"}),": ",(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/ProviderLike",children:(0,o.jsx)(s.code,{children:"ProviderLike"})})]}),"\n",(0,o.jsx)(s.p,{children:"L2 provider to query the gas usage from."}),"\n",(0,o.jsxs)(s.p,{children:["\u2022 ",(0,o.jsx)(s.strong,{children:"tx"}),": ",(0,o.jsx)(s.code,{children:"TransactionRequest"})]}),"\n",(0,o.jsx)(s.p,{children:"Transaction to estimate total gas cost for."}),"\n",(0,o.jsx)(s.h2,{id:"returns",children:"Returns"}),"\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.code,{children:"Promise"}),"<",(0,o.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,o.jsx)(s.p,{children:"Estimated total gas cost."}),"\n",(0,o.jsx)(s.h2,{id:"source",children:"Source"}),"\n",(0,o.jsx)(s.p,{children:"src/l2-provider.ts:136"})]})}function h(e={}){const{wrapper:s}={...(0,n.R)(),...e.components};return s?(0,o.jsx)(s,{...e,children:(0,o.jsx)(a,{...e})}):a(e)}},2333:(e,s,t)=>{t.d(s,{R:()=>i,x:()=>c});var o=t(9474);const n={},r=o.createContext(n);function i(e){const s=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),o.createElement(r.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/38e6cd8b.aaca03cd.js b/build/assets/js/38e6cd8b.aaca03cd.js new file mode 100644 index 000000000..500abe4b6 --- /dev/null +++ b/build/assets/js/38e6cd8b.aaca03cd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[8476],{760:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>d,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>c,toc:()=>l});var o=t(6070),n=t(1582);const r={},i="Function: estimateTotalGasCost()",c={id:"build-on-morph/sdk/functions/estimateTotalGasCost",title:"estimateTotalGasCost",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/functions/estimateTotalGasCost.md",sourceDirName:"build-on-morph/sdk/functions",slug:"/build-on-morph/sdk/functions/estimateTotalGasCost",permalink:"/docs/build-on-morph/sdk/functions/estimateTotalGasCost",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/functions/estimateTotalGasCost.md",tags:[],version:"current",frontMatter:{}},d={},l=[{value:"Parameters",id:"parameters",level:2},{value:"Returns",id:"returns",level:2},{value:"Source",id:"source",level:2}];function a(e){const s={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,n.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,o.jsx)(s.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,o.jsx)(s.strong,{children:"Docs"})]}),"\n",(0,o.jsx)(s.hr,{}),"\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / estimateTotalGasCost"]}),"\n",(0,o.jsx)(s.h1,{id:"function-estimatetotalgascost",children:"Function: estimateTotalGasCost()"}),"\n",(0,o.jsxs)(s.blockquote,{children:["\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.strong,{children:"estimateTotalGasCost"}),"(",(0,o.jsx)(s.code,{children:"l2Provider"}),", ",(0,o.jsx)(s.code,{children:"tx"}),"): ",(0,o.jsx)(s.code,{children:"Promise"}),"<",(0,o.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n"]}),"\n",(0,o.jsx)(s.p,{children:"Estimates the total gas cost for a given L2 transaction in wei."}),"\n",(0,o.jsx)(s.h2,{id:"parameters",children:"Parameters"}),"\n",(0,o.jsxs)(s.p,{children:["\u2022 ",(0,o.jsx)(s.strong,{children:"l2Provider"}),": ",(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/ProviderLike",children:(0,o.jsx)(s.code,{children:"ProviderLike"})})]}),"\n",(0,o.jsx)(s.p,{children:"L2 provider to query the gas usage from."}),"\n",(0,o.jsxs)(s.p,{children:["\u2022 ",(0,o.jsx)(s.strong,{children:"tx"}),": ",(0,o.jsx)(s.code,{children:"TransactionRequest"})]}),"\n",(0,o.jsx)(s.p,{children:"Transaction to estimate total gas cost for."}),"\n",(0,o.jsx)(s.h2,{id:"returns",children:"Returns"}),"\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.code,{children:"Promise"}),"<",(0,o.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,o.jsx)(s.p,{children:"Estimated total gas cost."}),"\n",(0,o.jsx)(s.h2,{id:"source",children:"Source"}),"\n",(0,o.jsx)(s.p,{children:"src/l2-provider.ts:136"})]})}function h(e={}){const{wrapper:s}={...(0,n.R)(),...e.components};return s?(0,o.jsx)(s,{...e,children:(0,o.jsx)(a,{...e})}):a(e)}},1582:(e,s,t)=>{t.d(s,{R:()=>i,x:()=>c});var o=t(758);const n={},r=o.createContext(n);function i(e){const s=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),o.createElement(r.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/39f485e7.b6b5a1c7.js b/build/assets/js/39f485e7.b6b5a1c7.js deleted file mode 100644 index cf74a10cc..000000000 --- a/build/assets/js/39f485e7.b6b5a1c7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[5980],{3597:(e,o,t)=>{t.r(o),t.d(o,{assets:()=>p,contentTitle:()=>s,default:()=>h,frontMatter:()=>n,metadata:()=>l,toc:()=>a});var i=t(3274),r=t(2333);const n={title:"FAQs",lang:"en-US",keywords:["morph","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},s=void 0,l={id:"about-morph/faqs",title:"FAQs",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/about-morph/7-faqs.md",sourceDirName:"about-morph",slug:"/about-morph/faqs",permalink:"/docs/about-morph/faqs",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/about-morph/7-faqs.md",tags:[],version:"current",sidebarPosition:7,frontMatter:{title:"FAQs",lang:"en-US",keywords:["morph","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"Roadmap",permalink:"/docs/about-morph/roadmap"},next:{title:"Morph Points",permalink:"/docs/quick-start/morph-zoo/morph-points"}},p={},a=[{value:"What Kind of Rollup is Morph?",id:"what-kind-of-rollup-is-morph",level:2},{value:"What Sets Morph Apart from Other Rollups?",id:"what-sets-morph-apart-from-other-rollups",level:2},{value:"As a Solidity Developer, Will I Notice Differences Deploying on Morph Compared to Ethereum?",id:"as-a-solidity-developer-will-i-notice-differences-deploying-on-morph-compared-to-ethereum",level:2}];function c(e){const o={a:"a",h2:"h2",p:"p",strong:"strong",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(o.h2,{id:"what-kind-of-rollup-is-morph",children:"What Kind of Rollup is Morph?"}),"\n",(0,i.jsx)(o.p,{children:'Morph uses a hybrid rollup model called "Optimistic zkEVM & RVP". This combines the strengths of both zkRollups and Optimistic Rollups, optimizing for efficiency, cost, and speed. This unique approach places Morph at the cutting edge of rollup technology.'}),"\n",(0,i.jsx)(o.h2,{id:"what-sets-morph-apart-from-other-rollups",children:"What Sets Morph Apart from Other Rollups?"}),"\n",(0,i.jsx)(o.p,{children:"Morph stands out with its innovative features:"}),"\n",(0,i.jsxs)(o.p,{children:[(0,i.jsx)(o.strong,{children:"State Verification"}),": The Optimistic zkEVM & RVP method enhances efficiency by combining zkRollups and Optimistic Rollups."]}),"\n",(0,i.jsxs)(o.p,{children:[(0,i.jsx)(o.strong,{children:"Efficiency and Cost Reduction"}),": Morph ensures fast transaction execution and cost-effectiveness while maintaining decentralization."]}),"\n",(0,i.jsxs)(o.p,{children:[(0,i.jsx)(o.strong,{children:"Decentralized Sequencer Network"}),": This pioneering network setup addresses security concerns and ensures robustness at a Layer 1 level."]}),"\n",(0,i.jsxs)(o.p,{children:[(0,i.jsx)(o.strong,{children:"Modular Architecture"}),": Morph\u2019s adaptable and composable architecture fosters a flexible and interactive ecosystem."]}),"\n",(0,i.jsx)(o.h2,{id:"as-a-solidity-developer-will-i-notice-differences-deploying-on-morph-compared-to-ethereum",children:"As a Solidity Developer, Will I Notice Differences Deploying on Morph Compared to Ethereum?"}),"\n",(0,i.jsxs)(o.p,{children:["Deploying on Morph is very similar to deploying on Ethereum, thanks to its EVM compatibility. Ethereum applications can be migrated to Morph with minimal adjustments. For more detailed guidance, check out the ",(0,i.jsx)(o.a,{href:"/docs/build-on-morph/build-on-morph/development-setup",children:"Development Guides"})," section."]})]})}function h(e={}){const{wrapper:o}={...(0,r.R)(),...e.components};return o?(0,i.jsx)(o,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},2333:(e,o,t)=>{t.d(o,{R:()=>s,x:()=>l});var i=t(9474);const r={},n=i.createContext(r);function s(e){const o=i.useContext(n);return i.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function l(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),i.createElement(n.Provider,{value:o},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/39f485e7.e4d15ea7.js b/build/assets/js/39f485e7.e4d15ea7.js new file mode 100644 index 000000000..b9239f0b3 --- /dev/null +++ b/build/assets/js/39f485e7.e4d15ea7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[5980],{6747:(e,o,t)=>{t.r(o),t.d(o,{assets:()=>h,contentTitle:()=>s,default:()=>d,frontMatter:()=>r,metadata:()=>a,toc:()=>l});var i=t(6070),n=t(1582);const r={title:"FAQs",lang:"en-US",keywords:["morph","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},s=void 0,a={id:"about-morph/faqs",title:"FAQs",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/about-morph/7-faqs.md",sourceDirName:"about-morph",slug:"/about-morph/faqs",permalink:"/docs/about-morph/faqs",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/about-morph/7-faqs.md",tags:[],version:"current",sidebarPosition:7,frontMatter:{title:"FAQs",lang:"en-US",keywords:["morph","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"Roadmap",permalink:"/docs/about-morph/roadmap"},next:{title:"Wallet Setup",permalink:"/docs/quick-start/wallet-setup"}},h={},l=[{value:"What Kind of Rollup is Morph?",id:"what-kind-of-rollup-is-morph",level:2},{value:"What Sets Morph Apart from Other Rollups?",id:"what-sets-morph-apart-from-other-rollups",level:2},{value:"As a Solidity Developer, Will I Notice Differences Deploying on Morph Compared to Ethereum?",id:"as-a-solidity-developer-will-i-notice-differences-deploying-on-morph-compared-to-ethereum",level:2},{value:"The L2 gas price is too high to execute transactions or deploy contracts, what should i do?",id:"the-l2-gas-price-is-too-high-to-execute-transactions-or-deploy-contracts-what-should-i-do",level:2},{value:"How long should I wait for my funds to withdraw from Morph?",id:"how-long-should-i-wait-for-my-funds-to-withdraw-from-morph",level:2},{value:"How do i speed the transaction on Morph?",id:"how-do-i-speed-the-transaction-on-morph",level:2},{value:"My Transaction is Pending, What Should I Do?",id:"my-transaction-is-pending-what-should-i-do",level:2}];function c(e){const o={a:"a",h2:"h2",p:"p",strong:"strong",...(0,n.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(o.h2,{id:"what-kind-of-rollup-is-morph",children:"What Kind of Rollup is Morph?"}),"\n",(0,i.jsx)(o.p,{children:'Morph uses a hybrid rollup model called "Optimistic zkEVM & RVP". This combines the strengths of both zkRollups and Optimistic Rollups, optimizing for efficiency, cost, and speed. This unique approach places Morph at the cutting edge of rollup technology.'}),"\n",(0,i.jsx)(o.h2,{id:"what-sets-morph-apart-from-other-rollups",children:"What Sets Morph Apart from Other Rollups?"}),"\n",(0,i.jsx)(o.p,{children:"Morph stands out with its innovative features:"}),"\n",(0,i.jsxs)(o.p,{children:[(0,i.jsx)(o.strong,{children:"State Verification"}),": The Optimistic zkEVM & RVP method enhances efficiency by combining zkRollups and Optimistic Rollups."]}),"\n",(0,i.jsxs)(o.p,{children:[(0,i.jsx)(o.strong,{children:"Efficiency and Cost Reduction"}),": Morph ensures fast transaction execution and cost-effectiveness while maintaining decentralization."]}),"\n",(0,i.jsxs)(o.p,{children:[(0,i.jsx)(o.strong,{children:"Decentralized Sequencer Network"}),": This pioneering network setup addresses security concerns and ensures robustness at a Layer 1 level."]}),"\n",(0,i.jsxs)(o.p,{children:[(0,i.jsx)(o.strong,{children:"Modular Architecture"}),": Morph\u2019s adaptable and composable architecture fosters a flexible and interactive ecosystem."]}),"\n",(0,i.jsx)(o.h2,{id:"as-a-solidity-developer-will-i-notice-differences-deploying-on-morph-compared-to-ethereum",children:"As a Solidity Developer, Will I Notice Differences Deploying on Morph Compared to Ethereum?"}),"\n",(0,i.jsxs)(o.p,{children:["Deploying on Morph is very similar to deploying on Ethereum, thanks to its EVM compatibility. Ethereum applications can be migrated to Morph with minimal adjustments. For more detailed guidance, check out the ",(0,i.jsx)(o.a,{href:"/docs/build-on-morph/build-on-morph/development-setup",children:"Development Guides"})," section."]}),"\n",(0,i.jsx)(o.h2,{id:"the-l2-gas-price-is-too-high-to-execute-transactions-or-deploy-contracts-what-should-i-do",children:"The L2 gas price is too high to execute transactions or deploy contracts, what should i do?"}),"\n",(0,i.jsx)(o.p,{children:"The L2 Gas Price you obtained from external resources (eg. RPC) is typically derived from the average or median of confirmed transactions over a certain period. This figure reflects the recommended settings to ensure your transaction gets confirmed, rather than representing the most cost-effective value."}),"\n",(0,i.jsx)(o.p,{children:"In some cases, certain users may intentionally raise the priority fee (hence the total gas fee) to earn more campaign points, resulting in abnormally high Gas Prices. We recommend that you can reduce your transaction costs by manually setting the L2 Gas Price."}),"\n",(0,i.jsxs)(o.p,{children:["Currently, Morph's L2 Base Fee is ",(0,i.jsx)(o.strong,{children:"0.001 gwei"}),", and as long as the number of transactions per block does not reach the limit, you only need to pay the Base Fee to ensure your transaction confirmation, without needing to pay an excess Priority Fee."]}),"\n",(0,i.jsx)(o.p,{children:"Here is a transaction example that only pays the L2 Base Fee and got confirmed:"}),"\n",(0,i.jsx)(o.p,{children:(0,i.jsx)(o.a,{href:"https://explorer.morphl2.io/tx/0x5968aa54ca3072f56ee3d26602f4e8104d1239a7b1cef6847e0306f81881bf50",children:"https://explorer.morphl2.io/tx/0x5968aa54ca3072f56ee3d26602f4e8104d1239a7b1cef6847e0306f81881bf50"})}),"\n",(0,i.jsx)(o.h2,{id:"how-long-should-i-wait-for-my-funds-to-withdraw-from-morph",children:"How long should I wait for my funds to withdraw from Morph?"}),"\n",(0,i.jsx)(o.p,{children:"Currently, the Morph mainnet has a 48-hour (2 days) challenge window. This means that if you are using our canonical bridge, you need to wait 48 hours (2 days) to receive your funds. There are several third-party bridges that offer a faster withdrawal experience by using a liquidity pool mechanism."}),"\n",(0,i.jsx)(o.h2,{id:"how-do-i-speed-the-transaction-on-morph",children:"How do i speed the transaction on Morph?"}),"\n",(0,i.jsx)(o.p,{children:"Same like Ethereum mainnet and any other EIP 1559 chains. If your transaction is pending and not confirmed, you can replace it with a new one that has a higher gas price. This involves sending the same transaction again but with an incrementally higher gas price, using the same nonce as the original."}),"\n",(0,i.jsx)(o.p,{children:"A lot of the wallet have built in features to help you do this."}),"\n",(0,i.jsx)(o.h2,{id:"my-transaction-is-pending-what-should-i-do",children:"My Transaction is Pending, What Should I Do?"}),"\n",(0,i.jsx)(o.p,{children:"For the testnet, if the priority fee you paid is too low, less than 0.01 gwei, your transaction will not be processed. This is to prevent spam transactions from impacting the whole network. If you encounter this situation, please accelerate your transaction by providing a higher priority fee that meets the requirements."}),"\n",(0,i.jsx)(o.p,{children:"For the mainnet, this is usually because each block is currently full, so you need to provide a more competitive priority fee to ensure your transaction is confirmed."}),"\n",(0,i.jsx)(o.p,{children:"Additionally, if your previous transaction has not yet been confirmed, your newly submitted transaction will wait for the previous transaction to be fully confirmed."})]})}function d(e={}){const{wrapper:o}={...(0,n.R)(),...e.components};return o?(0,i.jsx)(o,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},1582:(e,o,t)=>{t.d(o,{R:()=>s,x:()=>a});var i=t(758);const n={},r=i.createContext(n);function s(e){const o=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function a(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:s(e.components),i.createElement(r.Provider,{value:o},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/3d947c8b.f16157a9.js b/build/assets/js/3d947c8b.f16157a9.js deleted file mode 100644 index 500222fef..000000000 --- a/build/assets/js/3d947c8b.f16157a9.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[177],{3567:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>i,default:()=>h,frontMatter:()=>s,metadata:()=>l,toc:()=>c});var o=t(3274),r=t(2333);const s={title:"Run a Morph Full Node from Source",lang:"en-US"},i=void 0,l={id:"build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node",title:"Run a Morph Full Node from Source",description:"This guide outlines the steps to start a Morph node. The example assumes the home directory is ~/.morph",source:"@site/docs/build-on-morph/developer-resources/node-operation/1-how-to-run-a-morph-node.md",sourceDirName:"build-on-morph/developer-resources/node-operation",slug:"/build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node",permalink:"/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/developer-resources/node-operation/1-how-to-run-a-morph-node.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{title:"Run a Morph Full Node from Source",lang:"en-US"},sidebar:"DeveloperSidebar",previous:{title:"Run a Morph Full Node with Docker",permalink:"/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node-docker"},next:{title:"How to Run a Morph Validator Node",permalink:"/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-validator-node"}},d={},c=[{value:"Hardware requirements",id:"hardware-requirements",level:2},{value:"Build executable binary",id:"build-executable-binary",level:2},{value:"Clone morph",id:"clone-morph",level:3},{value:"Build Geth",id:"build-geth",level:3},{value:"Build Node",id:"build-node",level:3},{value:"Config Preparation",id:"config-preparation",level:2},{value:"Sync from genesis block(For mainnet)",id:"sync-from-genesis-blockfor-mainnet",level:2},{value:"Start execution client",id:"start-execution-client",level:3},{value:"Start consensus client",id:"start-consensus-client",level:3},{value:"Check sync status",id:"check-sync-status",level:3},{value:"Sync from snapshot(Recommended for testnet)",id:"sync-from-snapshotrecommended-for-testnet",level:2},{value:"Download snapshot",id:"download-snapshot",level:3}];function a(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",pre:"pre",ul:"ul",...(0,r.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(n.p,{children:["This guide outlines the steps to start a Morph node. The example assumes the home directory is ",(0,o.jsx)(n.code,{children:"~/.morph"})]}),"\n",(0,o.jsx)(n.h2,{id:"hardware-requirements",children:"Hardware requirements"}),"\n",(0,o.jsxs)(n.p,{children:["Running the morph node requires 2 processes: ",(0,o.jsx)(n.code,{children:"geth"})," and ",(0,o.jsx)(n.code,{children:"node"}),"."]}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"Geth"}),":the"," Morph execution layer which needs to meet the requirements as below"]}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:"Fast CPU with 4+ cores"}),"\n",(0,o.jsx)(n.li,{children:"32GB+ RAM"}),"\n",(0,o.jsx)(n.li,{children:"High-performance SSD with at least 1TB of free space"}),"\n",(0,o.jsx)(n.li,{children:"25+ MBit/sec download Internet service"}),"\n"]}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"Node"}),":the"," Morph consensus layer embedded tendermint which needs to meet the ",(0,o.jsx)(n.a,{href:"https://docs.tendermint.com/v0.34/tendermint-core/running-in-production.html#processor-and-memory",children:"tendermint hardware requirements"}),"."]}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(n.admonition,{type:"tip",children:(0,o.jsx)(n.p,{children:"According to limitations of the current geth implementation, we only support archive mode for launching a Geth. So the storage size of Geth will constantly increase along with blocks produced."})}),"\n",(0,o.jsx)(n.h2,{id:"build-executable-binary",children:"Build executable binary"}),"\n",(0,o.jsx)(n.h3,{id:"clone-morph",children:"Clone morph"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"mkdir -p ~/.morph \ncd ~/.morph\ngit clone https://github.com/morph-l2/morph.git\n"})}),"\n",(0,o.jsx)(n.p,{children:"Currently, we use tag v0.4.0 as our version."}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"cd morph\ngit checkout v0.4.0\n"})}),"\n",(0,o.jsx)(n.h3,{id:"build-geth",children:"Build Geth"}),"\n",(0,o.jsx)(n.p,{children:"Notice: You need C compiler to build geth"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"make geth\n"})}),"\n",(0,o.jsx)(n.h3,{id:"build-node",children:"Build Node"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"cd ~/.morph/morph/node \nmake build\n"})}),"\n",(0,o.jsx)(n.h2,{id:"config-preparation",children:"Config Preparation"}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsx)(n.li,{children:"Download the config files and make data dir"}),"\n"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"cd ~/.morph\n\n## mainnet\nwget https://raw.githubusercontent.com/morph-l2/config-template/main/mainnet/data.zip\n\n## testnet\nwget https://raw.githubusercontent.com/morph-l2/config-template/main/holesky/data.zip\n\nunzip data.zip\n"})}),"\n",(0,o.jsxs)(n.ol,{start:"2",children:["\n",(0,o.jsx)(n.li,{children:"Create a shared secret with node"}),"\n"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"cd ~/.morph\nopenssl rand -hex 32 > jwt-secret.txt\n"})}),"\n",(0,o.jsx)(n.h2,{id:"sync-from-genesis-blockfor-mainnet",children:"Sync from genesis block(For mainnet)"}),"\n",(0,o.jsx)(n.p,{children:"Start the execution client and consensus client directly without downloading snapshot."}),"\n",(0,o.jsx)(n.h3,{id:"start-execution-client",children:"Start execution client"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",metastring:'title="Script for starting mainnet geth"',children:'./morph/go-ethereum/build/bin/geth --morph \\\n --datadir "./geth-data" \\\n --http --http.api=web3,debug,eth,txpool,net,engine \\\n --authrpc.addr localhost \\\n --authrpc.vhosts="localhost" \\\n --authrpc.port 8551 \\\n --authrpc.jwtsecret=./jwt-secret.txt \\\n --log.filename=./geth.log\n\n'})}),"\n",(0,o.jsx)(n.admonition,{type:"note",children:(0,o.jsxs)(n.p,{children:["For testnet, using ",(0,o.jsx)(n.code,{children:"--morph-holesky"})," instead"]})}),"\n",(0,o.jsx)(n.p,{children:"tail -f geth.log to check if the Geth is running properly, or you can also execute the curl command below to check if you are connected to the peer."}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-Shell",children:'curl -X POST -H \'Content-Type: application/json\' --data \'{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":74}\' localhost:8545\n\n{"jsonrpc":"2.0","id":74,"result":"0x6"}\n'})}),"\n",(0,o.jsx)(n.h3,{id:"start-consensus-client",children:"Start consensus client"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-Bash",children:" ./morph/node/build/bin/morphnode --home ./node-data \\\n --l2.jwt-secret ./jwt-secret.txt \\\n --l2.eth http://localhost:8545 \\\n --l2.engine http://localhost:8551 \\\n --log.filename ./node.log \n"})}),"\n",(0,o.jsx)(n.p,{children:"tail -f node.log to check if the node is running properly, and you can also execute the command curl to check your node connection status."}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-Bash",children:'curl http://localhost:26657/net_info\n\n{\n "jsonrpc": "2.0",\n "id": -1,\n "result": {\n "listening": true,\n "listeners": [\n "Listener(@)"\n ],\n "n_peers": "7",\n "peers": [\n {\n "node_info": {\n "protocol_version": {\n "p2p": "8",\n "block": "11",\n "app": "0"\n },\n "id": "b4ac59de479b0251d441ca0385429bc21713a208",\n "listen_addr": "tcp://0.0.0.0:26610",\n "network": "chain-morph-mainnet",\n "version": "0.37.0-alpha.1",\n "channels": "402021222338606100",\n "moniker": "morph-dataseed-node-0",\n "other": {\n "tx_index": "on",\n "rpc_address": "tcp://0.0.0.0:26657"\n }\n },\n "is_outbound": true,\n ....... \n'})}),"\n",(0,o.jsx)(n.h3,{id:"check-sync-status",children:"Check sync status"}),"\n",(0,o.jsxs)(n.p,{children:["curl ",(0,o.jsx)(n.a,{href:"http://localhost:26657/status",children:"http://localhost:26657/status"})," to check the sync status of the node"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-Bash",children:'{\n "jsonrpc": "2.0",\n "id": -1,\n "result": {\n "node_info": {\n "protocol_version": {\n "p2p": "8",\n "block": "11",\n "app": "0"\n },\n "id": "cde0d7cecfe9c82244c1dfa72c951759d02f1024",\n "listen_addr": "tcp://0.0.0.0:26656",\n "network": "chain-morph-mainnet",\n "version": "0.37.0-alpha.1",\n "channels": "402021222338606100",\n "moniker": "my-morph-node",\n "other": {\n "tx_index": "on",\n "rpc_address": "tcp://0.0.0.0:26657"\n }\n },\n "sync_info": {\n "latest_block_hash": "B4C0E514CD984B101FA89D7DB48C1FE18384F64C25E5565F618A5FE2851C42A9",\n "latest_app_hash": "",\n "latest_block_height": "2410",\n "latest_block_time": "2024-10-21T08:49:09.952573291Z",\n "earliest_block_hash": "0D66D908033DA7A3F5A95179B8D64261EDD887B944E59502A1C9EFBC1C9C4EF5",\n "earliest_app_hash": "",\n "earliest_block_height": "1",\n "earliest_block_time": "2024-10-21T06:00:00Z",\n "catching_up": false\n },\n "validator_info": {\n "address": "B7395023EFF719D0EE15AD96FFC7F69B6B9E52EF",\n "pub_key": {\n "type": "tendermint/PubKeyEd25519",\n "value": "tZI+wTExwoKeyUFgdSSYmf4sAYp4BhJu13UgPy1wDOc="\n },\n "voting_power": "0"\n }\n }\n}\n'})}),"\n",(0,o.jsxs)(n.p,{children:['The returned "catching_up" indicates whether the node is in sync or not. ',(0,o.jsx)(n.em,{children:"True"})," means it is in sync. Meanwhile, the returned latest_block_height indicates the latest block height this node synced."]}),"\n",(0,o.jsx)(n.h2,{id:"sync-from-snapshotrecommended-for-testnet",children:"Sync from snapshot(Recommended for testnet)"}),"\n",(0,o.jsx)(n.p,{children:"You should build the binary and prepare the config files in the above steps first, then download the snapshot."}),"\n",(0,o.jsx)(n.h3,{id:"download-snapshot",children:"Download snapshot"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",children:"\n## testnet\nwget -q --show-progress https://snapshot.morphl2.io/holesky/snapshot-20240805-1.tar.gz\ntar -xzvf snapshot-20240805-1.tar.gz\n"})}),"\n",(0,o.jsx)(n.p,{children:"Extracting snapshot data to the data directory your node points to"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",children:"mv snapshot-20240805-1/geth geth-data\nmv snapshot-20240805-1/data node-data\n"})}),"\n",(0,o.jsx)(n.p,{children:"Start the execution client and consensus client."})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(a,{...e})}):a(e)}},2333:(e,n,t)=>{t.d(n,{R:()=>i,x:()=>l});var o=t(9474);const r={},s=o.createContext(r);function i(e){const n=o.useContext(s);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),o.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/3f6197d4.238ab34e.js b/build/assets/js/3f6197d4.3649865e.js similarity index 54% rename from build/assets/js/3f6197d4.238ab34e.js rename to build/assets/js/3f6197d4.3649865e.js index 8f1a69709..71b85cc5c 100644 --- a/build/assets/js/3f6197d4.238ab34e.js +++ b/build/assets/js/3f6197d4.3649865e.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[835],{1165:(e,o,n)=>{n.r(o),n.d(o,{assets:()=>c,contentTitle:()=>s,default:()=>h,frontMatter:()=>t,metadata:()=>l,toc:()=>d});var r=n(3274),i=n(2333);const t={title:"Developer Docs",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},s=void 0,l={id:"build-on-morph/intro",title:"Developer Docs",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/build-on-morph/1-intro.md",sourceDirName:"build-on-morph",slug:"/build-on-morph/intro",permalink:"/docs/build-on-morph/intro",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/1-intro.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{title:"Developer Docs",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"}},c={},d=[{value:"What's next",id:"whats-next",level:2},{value:"Engage in Our Developer Community",id:"engage-in-our-developer-community",level:2}];function p(e){const o={a:"a",h2:"h2",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(o.p,{children:"Welcome to Morph\u2019s Developer Docs!"}),"\n",(0,r.jsx)(o.p,{children:"Are you eager to build applications on Morph but unsure where to start?"}),"\n",(0,r.jsx)(o.p,{children:"You're in the right place \u2013 we've got you covered!"}),"\n",(0,r.jsx)(o.p,{children:(0,r.jsx)(o.img,{alt:"devintro",src:n(2147).A+"",width:"4000",height:"2000"})}),"\n",(0,r.jsx)(o.p,{children:"As the first optimistic zkEVM Ethereum Layer 2 solution, Morph is 100% EVM compatible."}),"\n",(0,r.jsx)(o.p,{children:"Building on morph is just like building on Ethereum. If you\u2019re experienced in Ethereum development, you'll find your existing code, tooling, and dependencies are fully compatible with Morph."}),"\n",(0,r.jsx)(o.h2,{id:"whats-next",children:"What's next"}),"\n",(0,r.jsx)(o.p,{children:(0,r.jsx)(o.strong,{children:"Depending on what do you need"})}),"\n",(0,r.jsxs)(o.ul,{children:["\n",(0,r.jsxs)(o.li,{children:["\n",(0,r.jsxs)(o.p,{children:["For foundational knowledge: Check out our ",(0,r.jsx)(o.a,{href:"/docs/build-on-morph/build-on-morph/difference-between-morph-and-ethereum",children:"development basics"})]}),"\n"]}),"\n",(0,r.jsxs)(o.li,{children:["\n",(0,r.jsxs)(o.p,{children:["For handy step by step ",(0,r.jsx)(o.a,{href:"/docs/build-on-morph/code-examples/deploy-contract-on-morph",children:"contract deployment tutorial"})]}),"\n"]}),"\n",(0,r.jsxs)(o.li,{children:["\n",(0,r.jsxs)(o.p,{children:["If you're well-versed and need specific ",(0,r.jsx)(o.a,{href:"/docs/build-on-morph/developer-resources/contracts",children:"developer resources"})," like contract addresses, they are readily available."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(o.h2,{id:"engage-in-our-developer-community",children:"Engage in Our Developer Community"}),"\n",(0,r.jsx)(o.p,{children:"We're actively enhancing our network with more integrations and support infrastructure, progressing towards our Mainnet release."}),"\n",(0,r.jsxs)(o.p,{children:["Join our growing developer community. You can find us on ",(0,r.jsx)(o.a,{href:"https://discord.com/invite/L2Morph",children:"Discord"}),", join our discussion forum, or follow our progress on ",(0,r.jsx)(o.a,{href:"https://twitter.com/Morphl2",children:"Twitter"}),"."]})]})}function h(e={}){const{wrapper:o}={...(0,i.R)(),...e.components};return o?(0,r.jsx)(o,{...e,children:(0,r.jsx)(p,{...e})}):p(e)}},2147:(e,o,n)=>{n.d(o,{A:()=>r});const r=n.p+"assets/images/devintro-af1fa91181efcded8682d179b40db272.png"},2333:(e,o,n)=>{n.d(o,{R:()=>s,x:()=>l});var r=n(9474);const i={},t=r.createContext(i);function s(e){const o=r.useContext(t);return r.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function l(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),r.createElement(t.Provider,{value:o},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[835],{4215:(e,o,n)=>{n.r(o),n.d(o,{assets:()=>c,contentTitle:()=>s,default:()=>h,frontMatter:()=>t,metadata:()=>l,toc:()=>d});var r=n(6070),i=n(1582);const t={title:"Developer Docs",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},s=void 0,l={id:"build-on-morph/intro",title:"Developer Docs",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/build-on-morph/1-intro.md",sourceDirName:"build-on-morph",slug:"/build-on-morph/intro",permalink:"/docs/build-on-morph/intro",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/1-intro.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{title:"Developer Docs",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"}},c={},d=[{value:"What's next",id:"whats-next",level:2},{value:"Engage in Our Developer Community",id:"engage-in-our-developer-community",level:2}];function p(e){const o={a:"a",h2:"h2",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(o.p,{children:"Welcome to Morph\u2019s Developer Docs!"}),"\n",(0,r.jsx)(o.p,{children:"Are you eager to build applications on Morph but unsure where to start?"}),"\n",(0,r.jsx)(o.p,{children:"You're in the right place \u2013 we've got you covered!"}),"\n",(0,r.jsx)(o.p,{children:(0,r.jsx)(o.img,{alt:"devintro",src:n(2015).A+"",width:"4000",height:"2000"})}),"\n",(0,r.jsx)(o.p,{children:"As the first optimistic zkEVM Ethereum Layer 2 solution, Morph is 100% EVM compatible."}),"\n",(0,r.jsx)(o.p,{children:"Building on morph is just like building on Ethereum. If you\u2019re experienced in Ethereum development, you'll find your existing code, tooling, and dependencies are fully compatible with Morph."}),"\n",(0,r.jsx)(o.h2,{id:"whats-next",children:"What's next"}),"\n",(0,r.jsx)(o.p,{children:(0,r.jsx)(o.strong,{children:"Depending on what do you need"})}),"\n",(0,r.jsxs)(o.ul,{children:["\n",(0,r.jsxs)(o.li,{children:["\n",(0,r.jsxs)(o.p,{children:["For foundational knowledge: Check out our ",(0,r.jsx)(o.a,{href:"/docs/build-on-morph/build-on-morph/development-setup",children:"development basics"})]}),"\n"]}),"\n",(0,r.jsxs)(o.li,{children:["\n",(0,r.jsxs)(o.p,{children:["For handy step by step ",(0,r.jsx)(o.a,{href:"/docs/build-on-morph/code-examples/deploy-contract-on-morph",children:"contract deployment tutorial"})]}),"\n"]}),"\n",(0,r.jsxs)(o.li,{children:["\n",(0,r.jsxs)(o.p,{children:["If you're well-versed and need specific ",(0,r.jsx)(o.a,{href:"/docs/build-on-morph/developer-resources/contracts",children:"developer resources"})," like contract addresses, they are readily available."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(o.h2,{id:"engage-in-our-developer-community",children:"Engage in Our Developer Community"}),"\n",(0,r.jsx)(o.p,{children:"We're actively enhancing our network with more integrations and support infrastructure, progressing towards our Mainnet release."}),"\n",(0,r.jsxs)(o.p,{children:["Join our growing developer community. You can find us on ",(0,r.jsx)(o.a,{href:"https://discord.com/invite/MorphLayer",children:"Discord"}),", join our discussion forum, or follow our progress on ",(0,r.jsx)(o.a,{href:"https://x.com/MorphLayer",children:"Twitter"}),"."]})]})}function h(e={}){const{wrapper:o}={...(0,i.R)(),...e.components};return o?(0,r.jsx)(o,{...e,children:(0,r.jsx)(p,{...e})}):p(e)}},2015:(e,o,n)=>{n.d(o,{A:()=>r});const r=n.p+"assets/images/devintro-af1fa91181efcded8682d179b40db272.png"},1582:(e,o,n)=>{n.d(o,{R:()=>s,x:()=>l});var r=n(758);const i={},t=r.createContext(i);function s(e){const o=r.useContext(t);return r.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function l(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),r.createElement(t.Provider,{value:o},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/405a8a84.afa08ab0.js b/build/assets/js/405a8a84.afa08ab0.js new file mode 100644 index 000000000..9afd4cc25 --- /dev/null +++ b/build/assets/js/405a8a84.afa08ab0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[6632],{7578:(e,o,r)=>{r.r(o),r.d(o,{assets:()=>i,contentTitle:()=>n,default:()=>d,frontMatter:()=>l,metadata:()=>c,toc:()=>a});var s=r(6070),t=r(1582);const l={title:"Block Explorer",lang:"en-US"},n=void 0,c={id:"build-on-morph/developer-resources/use-ecosystem-developer-tools/block-explorer",title:"Block Explorer",description:"Besides the native Morph explorer, we have also partnered with 3rd party providers for different Morph blockchain data presentations forms.",source:"@site/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/6-block-explorer.md",sourceDirName:"build-on-morph/developer-resources/use-ecosystem-developer-tools",slug:"/build-on-morph/developer-resources/use-ecosystem-developer-tools/block-explorer",permalink:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/block-explorer",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/6-block-explorer.md",tags:[],version:"current",sidebarPosition:6,frontMatter:{title:"Block Explorer",lang:"en-US"},sidebar:"DeveloperSidebar",previous:{title:"Blockchain Oracles",permalink:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-oracles"},next:{title:"Artificial Intelligence",permalink:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/artificial-intelligence"}},i={},a=[{value:"Socialscan",id:"socialscan",level:3}];function p(e){const o={a:"a",h3:"h3",img:"img",p:"p",...(0,t.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(o.p,{children:["Besides the native ",(0,s.jsx)(o.a,{href:"https://explorer.morphl2.io/",children:"Morph explorer"}),", we have also partnered with 3rd party providers for different Morph blockchain data presentations forms."]}),"\n",(0,s.jsx)(o.h3,{id:"socialscan",children:"Socialscan"}),"\n",(0,s.jsxs)(o.p,{children:["Track Morph transactions and wallets on the ",(0,s.jsx)(o.a,{href:"https://morphl2.socialscan.io/",children:"SocialScan Explorer"}),"."]}),"\n",(0,s.jsx)(o.p,{children:(0,s.jsx)(o.img,{alt:"socialscan",src:r(4706).A+"",width:"2830",height:"1250"})})]})}function d(e={}){const{wrapper:o}={...(0,t.R)(),...e.components};return o?(0,s.jsx)(o,{...e,children:(0,s.jsx)(p,{...e})}):p(e)}},4706:(e,o,r)=>{r.d(o,{A:()=>s});const s=r.p+"assets/images/socialscan-64f9f8181cf2e033709c7dda3a153e1f.png"},1582:(e,o,r)=>{r.d(o,{R:()=>n,x:()=>c});var s=r(758);const t={},l=s.createContext(t);function n(e){const o=s.useContext(l);return s.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function c(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:n(e.components),s.createElement(l.Provider,{value:o},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/405a8a84.e1de3e69.js b/build/assets/js/405a8a84.e1de3e69.js deleted file mode 100644 index 5ff767caa..000000000 --- a/build/assets/js/405a8a84.e1de3e69.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[6632],{4080:(e,o,r)=>{r.r(o),r.d(o,{assets:()=>i,contentTitle:()=>l,default:()=>d,frontMatter:()=>n,metadata:()=>c,toc:()=>a});var s=r(3274),t=r(2333);const n={title:"Block Explorer",lang:"en-US"},l=void 0,c={id:"build-on-morph/developer-resources/use-ecosystem-developer-tools/block-explorer",title:"Block Explorer",description:"Besides the official Morph explorer, we have also partnered with 3rd party providers for different Morph blockchain data presentations forms.",source:"@site/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/6-block-explorer.md",sourceDirName:"build-on-morph/developer-resources/use-ecosystem-developer-tools",slug:"/build-on-morph/developer-resources/use-ecosystem-developer-tools/block-explorer",permalink:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/block-explorer",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/6-block-explorer.md",tags:[],version:"current",sidebarPosition:6,frontMatter:{title:"Block Explorer",lang:"en-US"},sidebar:"DeveloperSidebar",previous:{title:"Blockchain Oracles",permalink:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-oracles"},next:{title:"Run a Morph Full Node with Docker",permalink:"/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node-docker"}},i={},a=[{value:"Socialscan",id:"socialscan",level:3}];function p(e){const o={a:"a",h3:"h3",img:"img",p:"p",...(0,t.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(o.p,{children:["Besides the official ",(0,s.jsx)(o.a,{href:"https://explorer-testnet.morphl2.io/",children:"Morph explorer"}),", we have also partnered with 3rd party providers for different Morph blockchain data presentations forms."]}),"\n",(0,s.jsx)(o.h3,{id:"socialscan",children:"Socialscan"}),"\n",(0,s.jsxs)(o.p,{children:["Track Morph Testnet transactions and wallets on the ",(0,s.jsx)(o.a,{href:"https://morphl2-testnet.socialscan.io/",children:"SocialScan Explorer"}),"."]}),"\n",(0,s.jsx)(o.p,{children:(0,s.jsx)(o.img,{alt:"socialscan",src:r(7606).A+"",width:"2878",height:"1972"})})]})}function d(e={}){const{wrapper:o}={...(0,t.R)(),...e.components};return o?(0,s.jsx)(o,{...e,children:(0,s.jsx)(p,{...e})}):p(e)}},7606:(e,o,r)=>{r.d(o,{A:()=>s});const s=r.p+"assets/images/socialscan-05653c195d1623c32f28c7ab2d944adc.png"},2333:(e,o,r)=>{r.d(o,{R:()=>l,x:()=>c});var s=r(9474);const t={},n=s.createContext(t);function l(e){const o=s.useContext(n);return s.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function c(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:l(e.components),s.createElement(n.Provider,{value:o},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/40b4f046.c692e7f7.js b/build/assets/js/40b4f046.d2ffc80e.js similarity index 79% rename from build/assets/js/40b4f046.c692e7f7.js rename to build/assets/js/40b4f046.d2ffc80e.js index 2b4776597..888fe8250 100644 --- a/build/assets/js/40b4f046.c692e7f7.js +++ b/build/assets/js/40b4f046.d2ffc80e.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[4145],{8561:(e,r,o)=>{o.r(r),o.d(r,{assets:()=>c,contentTitle:()=>t,default:()=>h,frontMatter:()=>i,metadata:()=>d,toc:()=>l});var n=o(3274),s=o(2333);const i={},t="Type alias: SignerOrProviderLike",d={id:"build-on-morph/sdk/type-aliases/SignerOrProviderLike",title:"SignerOrProviderLike",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/type-aliases/SignerOrProviderLike.md",sourceDirName:"build-on-morph/sdk/type-aliases",slug:"/build-on-morph/sdk/type-aliases/SignerOrProviderLike",permalink:"/docs/build-on-morph/sdk/type-aliases/SignerOrProviderLike",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/type-aliases/SignerOrProviderLike.md",tags:[],version:"current",frontMatter:{}},c={},l=[{value:"Source",id:"source",level:2}];function a(e){const r={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,s.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,n.jsx)(r.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,n.jsx)(r.strong,{children:"Docs"})]}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / SignerOrProviderLike"]}),"\n",(0,n.jsx)(r.h1,{id:"type-alias-signerorproviderlike",children:"Type alias: SignerOrProviderLike"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"SignerOrProviderLike"}),": ",(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/type-aliases/SignerLike",children:(0,n.jsx)(r.code,{children:"SignerLike"})})," | ",(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/type-aliases/ProviderLike",children:(0,n.jsx)(r.code,{children:"ProviderLike"})})]}),"\n"]}),"\n",(0,n.jsx)(r.p,{children:"Stuff that can be coerced into a signer or provider."}),"\n",(0,n.jsx)(r.h2,{id:"source",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/interfaces/types.ts:386"})]})}function h(e={}){const{wrapper:r}={...(0,s.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(a,{...e})}):a(e)}},2333:(e,r,o)=>{o.d(r,{R:()=>t,x:()=>d});var n=o(9474);const s={},i=n.createContext(s);function t(e){const r=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function d(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:t(e.components),n.createElement(i.Provider,{value:r},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[4145],{4379:(e,r,o)=>{o.r(r),o.d(r,{assets:()=>c,contentTitle:()=>t,default:()=>h,frontMatter:()=>i,metadata:()=>d,toc:()=>l});var n=o(6070),s=o(1582);const i={},t="Type alias: SignerOrProviderLike",d={id:"build-on-morph/sdk/type-aliases/SignerOrProviderLike",title:"SignerOrProviderLike",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/type-aliases/SignerOrProviderLike.md",sourceDirName:"build-on-morph/sdk/type-aliases",slug:"/build-on-morph/sdk/type-aliases/SignerOrProviderLike",permalink:"/docs/build-on-morph/sdk/type-aliases/SignerOrProviderLike",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/type-aliases/SignerOrProviderLike.md",tags:[],version:"current",frontMatter:{}},c={},l=[{value:"Source",id:"source",level:2}];function a(e){const r={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,s.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,n.jsx)(r.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,n.jsx)(r.strong,{children:"Docs"})]}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / SignerOrProviderLike"]}),"\n",(0,n.jsx)(r.h1,{id:"type-alias-signerorproviderlike",children:"Type alias: SignerOrProviderLike"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"SignerOrProviderLike"}),": ",(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/type-aliases/SignerLike",children:(0,n.jsx)(r.code,{children:"SignerLike"})})," | ",(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/type-aliases/ProviderLike",children:(0,n.jsx)(r.code,{children:"ProviderLike"})})]}),"\n"]}),"\n",(0,n.jsx)(r.p,{children:"Stuff that can be coerced into a signer or provider."}),"\n",(0,n.jsx)(r.h2,{id:"source",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/interfaces/types.ts:386"})]})}function h(e={}){const{wrapper:r}={...(0,s.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(a,{...e})}):a(e)}},1582:(e,r,o)=>{o.d(r,{R:()=>t,x:()=>d});var n=o(758);const s={},i=n.createContext(s);function t(e){const r=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function d(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:t(e.components),n.createElement(i.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/44bbd017.0b5ff9e6.js b/build/assets/js/44bbd017.f25bc314.js similarity index 76% rename from build/assets/js/44bbd017.0b5ff9e6.js rename to build/assets/js/44bbd017.f25bc314.js index 6166aefca..00ab44555 100644 --- a/build/assets/js/44bbd017.0b5ff9e6.js +++ b/build/assets/js/44bbd017.f25bc314.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[5223],{3018:(e,r,o)=>{o.r(r),o.d(r,{assets:()=>i,contentTitle:()=>d,default:()=>h,frontMatter:()=>t,metadata:()=>c,toc:()=>l});var n=o(3274),s=o(2333);const t={},d="Variable: l2BridgeName",c={id:"build-on-morph/sdk/variables/l2BridgeName",title:"l2BridgeName",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/variables/l2BridgeName.md",sourceDirName:"build-on-morph/sdk/variables",slug:"/build-on-morph/sdk/variables/l2BridgeName",permalink:"/docs/build-on-morph/sdk/variables/l2BridgeName",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/variables/l2BridgeName.md",tags:[],version:"current",frontMatter:{}},i={},l=[{value:"Source",id:"source",level:2}];function a(e){const r={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,s.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,n.jsx)(r.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,n.jsx)(r.strong,{children:"Docs"})]}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / l2BridgeName"]}),"\n",(0,n.jsx)(r.h1,{id:"variable-l2bridgename",children:"Variable: l2BridgeName"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.code,{children:"const"})," ",(0,n.jsx)(r.strong,{children:"l2BridgeName"}),": ",(0,n.jsx)(r.code,{children:'"L2GatewayRouter"'})," = ",(0,n.jsx)(r.code,{children:"'L2GatewayRouter'"})]}),"\n"]}),"\n",(0,n.jsx)(r.h2,{id:"source",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/cross-chain-messenger.ts:70"})]})}function h(e={}){const{wrapper:r}={...(0,s.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(a,{...e})}):a(e)}},2333:(e,r,o)=>{o.d(r,{R:()=>d,x:()=>c});var n=o(9474);const s={},t=n.createContext(s);function d(e){const r=n.useContext(t);return n.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function c(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:d(e.components),n.createElement(t.Provider,{value:r},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[5223],{8480:(e,r,o)=>{o.r(r),o.d(r,{assets:()=>i,contentTitle:()=>d,default:()=>h,frontMatter:()=>t,metadata:()=>c,toc:()=>l});var n=o(6070),s=o(1582);const t={},d="Variable: l2BridgeName",c={id:"build-on-morph/sdk/variables/l2BridgeName",title:"l2BridgeName",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/variables/l2BridgeName.md",sourceDirName:"build-on-morph/sdk/variables",slug:"/build-on-morph/sdk/variables/l2BridgeName",permalink:"/docs/build-on-morph/sdk/variables/l2BridgeName",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/variables/l2BridgeName.md",tags:[],version:"current",frontMatter:{}},i={},l=[{value:"Source",id:"source",level:2}];function a(e){const r={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,s.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,n.jsx)(r.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,n.jsx)(r.strong,{children:"Docs"})]}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / l2BridgeName"]}),"\n",(0,n.jsx)(r.h1,{id:"variable-l2bridgename",children:"Variable: l2BridgeName"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.code,{children:"const"})," ",(0,n.jsx)(r.strong,{children:"l2BridgeName"}),": ",(0,n.jsx)(r.code,{children:'"L2GatewayRouter"'})," = ",(0,n.jsx)(r.code,{children:"'L2GatewayRouter'"})]}),"\n"]}),"\n",(0,n.jsx)(r.h2,{id:"source",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/cross-chain-messenger.ts:70"})]})}function h(e={}){const{wrapper:r}={...(0,s.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(a,{...e})}):a(e)}},1582:(e,r,o)=>{o.d(r,{R:()=>d,x:()=>c});var n=o(758);const s={},t=n.createContext(s);function d(e){const r=n.useContext(t);return n.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function c(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:d(e.components),n.createElement(t.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/465c0bc5.6bfdb2fc.js b/build/assets/js/465c0bc5.e3b956eb.js similarity index 78% rename from build/assets/js/465c0bc5.6bfdb2fc.js rename to build/assets/js/465c0bc5.e3b956eb.js index 31b81eba4..c79e08472 100644 --- a/build/assets/js/465c0bc5.6bfdb2fc.js +++ b/build/assets/js/465c0bc5.e3b956eb.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[655],{6197:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>a,contentTitle:()=>c,default:()=>m,frontMatter:()=>t,metadata:()=>i,toc:()=>l});var o=n(3274),r=n(2333);const t={},c="Variable: l1CrossDomainMessengerName",i={id:"build-on-morph/sdk/variables/l1CrossDomainMessengerName",title:"l1CrossDomainMessengerName",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/variables/l1CrossDomainMessengerName.md",sourceDirName:"build-on-morph/sdk/variables",slug:"/build-on-morph/sdk/variables/l1CrossDomainMessengerName",permalink:"/docs/build-on-morph/sdk/variables/l1CrossDomainMessengerName",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/variables/l1CrossDomainMessengerName.md",tags:[],version:"current",frontMatter:{}},a={},l=[{value:"Source",id:"source",level:2}];function d(e){const s={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,r.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,o.jsx)(s.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,o.jsx)(s.strong,{children:"Docs"})]}),"\n",(0,o.jsx)(s.hr,{}),"\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / l1CrossDomainMessengerName"]}),"\n",(0,o.jsx)(s.h1,{id:"variable-l1crossdomainmessengername",children:"Variable: l1CrossDomainMessengerName"}),"\n",(0,o.jsxs)(s.blockquote,{children:["\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.code,{children:"const"})," ",(0,o.jsx)(s.strong,{children:"l1CrossDomainMessengerName"}),": ",(0,o.jsx)(s.code,{children:'"L1CrossDomainMessenger"'})," = ",(0,o.jsx)(s.code,{children:"'L1CrossDomainMessenger'"})]}),"\n"]}),"\n",(0,o.jsx)(s.h2,{id:"source",children:"Source"}),"\n",(0,o.jsx)(s.p,{children:"src/cross-chain-messenger.ts:67"})]})}function m(e={}){const{wrapper:s}={...(0,r.R)(),...e.components};return s?(0,o.jsx)(s,{...e,children:(0,o.jsx)(d,{...e})}):d(e)}},2333:(e,s,n)=>{n.d(s,{R:()=>c,x:()=>i});var o=n(9474);const r={},t=o.createContext(r);function c(e){const s=o.useContext(t);return o.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function i(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:c(e.components),o.createElement(t.Provider,{value:s},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[655],{8963:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>a,contentTitle:()=>c,default:()=>m,frontMatter:()=>t,metadata:()=>i,toc:()=>l});var o=n(6070),r=n(1582);const t={},c="Variable: l1CrossDomainMessengerName",i={id:"build-on-morph/sdk/variables/l1CrossDomainMessengerName",title:"l1CrossDomainMessengerName",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/variables/l1CrossDomainMessengerName.md",sourceDirName:"build-on-morph/sdk/variables",slug:"/build-on-morph/sdk/variables/l1CrossDomainMessengerName",permalink:"/docs/build-on-morph/sdk/variables/l1CrossDomainMessengerName",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/variables/l1CrossDomainMessengerName.md",tags:[],version:"current",frontMatter:{}},a={},l=[{value:"Source",id:"source",level:2}];function d(e){const s={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,r.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,o.jsx)(s.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,o.jsx)(s.strong,{children:"Docs"})]}),"\n",(0,o.jsx)(s.hr,{}),"\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / l1CrossDomainMessengerName"]}),"\n",(0,o.jsx)(s.h1,{id:"variable-l1crossdomainmessengername",children:"Variable: l1CrossDomainMessengerName"}),"\n",(0,o.jsxs)(s.blockquote,{children:["\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.code,{children:"const"})," ",(0,o.jsx)(s.strong,{children:"l1CrossDomainMessengerName"}),": ",(0,o.jsx)(s.code,{children:'"L1CrossDomainMessenger"'})," = ",(0,o.jsx)(s.code,{children:"'L1CrossDomainMessenger'"})]}),"\n"]}),"\n",(0,o.jsx)(s.h2,{id:"source",children:"Source"}),"\n",(0,o.jsx)(s.p,{children:"src/cross-chain-messenger.ts:67"})]})}function m(e={}){const{wrapper:s}={...(0,r.R)(),...e.components};return s?(0,o.jsx)(s,{...e,children:(0,o.jsx)(d,{...e})}):d(e)}},1582:(e,s,n)=>{n.d(s,{R:()=>c,x:()=>i});var o=n(758);const r={},t=o.createContext(r);function c(e){const s=o.useContext(t);return o.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function i(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:c(e.components),o.createElement(t.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/46618904.0e02e9d8.js b/build/assets/js/46618904.0e02e9d8.js new file mode 100644 index 000000000..05b7e3159 --- /dev/null +++ b/build/assets/js/46618904.0e02e9d8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[8991],{6935:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>d,contentTitle:()=>t,default:()=>u,frontMatter:()=>c,metadata:()=>i,toc:()=>l});var s=n(6070),o=n(1582);const c={},t="Function: getL1GasPrice()",i={id:"build-on-morph/sdk/functions/getL1GasPrice",title:"getL1GasPrice",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/functions/getL1GasPrice.md",sourceDirName:"build-on-morph/sdk/functions",slug:"/build-on-morph/sdk/functions/getL1GasPrice",permalink:"/docs/build-on-morph/sdk/functions/getL1GasPrice",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/functions/getL1GasPrice.md",tags:[],version:"current",frontMatter:{}},d={},l=[{value:"Parameters",id:"parameters",level:2},{value:"Returns",id:"returns",level:2},{value:"Source",id:"source",level:2}];function h(e){const r={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,o.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,s.jsx)(r.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,s.jsx)(r.strong,{children:"Docs"})]}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / getL1GasPrice"]}),"\n",(0,s.jsx)(r.h1,{id:"function-getl1gasprice",children:"Function: getL1GasPrice()"}),"\n",(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"getL1GasPrice"}),"(",(0,s.jsx)(r.code,{children:"l2Provider"}),"): ",(0,s.jsx)(r.code,{children:"Promise"}),"<",(0,s.jsx)(r.code,{children:"BigNumber"}),">"]}),"\n"]}),"\n",(0,s.jsx)(r.p,{children:"Gets the current L1 gas price as seen on L2."}),"\n",(0,s.jsx)(r.h2,{id:"parameters",children:"Parameters"}),"\n",(0,s.jsxs)(r.p,{children:["\u2022 ",(0,s.jsx)(r.strong,{children:"l2Provider"}),": ",(0,s.jsx)(r.a,{href:"/docs/build-on-morph/sdk/type-aliases/ProviderLike",children:(0,s.jsx)(r.code,{children:"ProviderLike"})})]}),"\n",(0,s.jsx)(r.p,{children:"L2 provider to query the L1 gas price from."}),"\n",(0,s.jsx)(r.h2,{id:"returns",children:"Returns"}),"\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.code,{children:"Promise"}),"<",(0,s.jsx)(r.code,{children:"BigNumber"}),">"]}),"\n",(0,s.jsx)(r.p,{children:"Current L1 gas price as seen on L2."}),"\n",(0,s.jsx)(r.h2,{id:"source",children:"Source"}),"\n",(0,s.jsx)(r.p,{children:"src/l2-provider.ts:57"})]})}function u(e={}){const{wrapper:r}={...(0,o.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},1582:(e,r,n)=>{n.d(r,{R:()=>t,x:()=>i});var s=n(758);const o={},c=s.createContext(o);function t(e){const r=s.useContext(c);return s.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:t(e.components),s.createElement(c.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/46618904.aa956f14.js b/build/assets/js/46618904.aa956f14.js deleted file mode 100644 index a4e7a1f34..000000000 --- a/build/assets/js/46618904.aa956f14.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[8991],{269:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>d,contentTitle:()=>t,default:()=>u,frontMatter:()=>c,metadata:()=>i,toc:()=>l});var s=n(3274),o=n(2333);const c={},t="Function: getL1GasPrice()",i={id:"build-on-morph/sdk/functions/getL1GasPrice",title:"getL1GasPrice",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/functions/getL1GasPrice.md",sourceDirName:"build-on-morph/sdk/functions",slug:"/build-on-morph/sdk/functions/getL1GasPrice",permalink:"/docs/build-on-morph/sdk/functions/getL1GasPrice",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/functions/getL1GasPrice.md",tags:[],version:"current",frontMatter:{}},d={},l=[{value:"Parameters",id:"parameters",level:2},{value:"Returns",id:"returns",level:2},{value:"Source",id:"source",level:2}];function h(e){const r={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,o.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,s.jsx)(r.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,s.jsx)(r.strong,{children:"Docs"})]}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / getL1GasPrice"]}),"\n",(0,s.jsx)(r.h1,{id:"function-getl1gasprice",children:"Function: getL1GasPrice()"}),"\n",(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"getL1GasPrice"}),"(",(0,s.jsx)(r.code,{children:"l2Provider"}),"): ",(0,s.jsx)(r.code,{children:"Promise"}),"<",(0,s.jsx)(r.code,{children:"BigNumber"}),">"]}),"\n"]}),"\n",(0,s.jsx)(r.p,{children:"Gets the current L1 gas price as seen on L2."}),"\n",(0,s.jsx)(r.h2,{id:"parameters",children:"Parameters"}),"\n",(0,s.jsxs)(r.p,{children:["\u2022 ",(0,s.jsx)(r.strong,{children:"l2Provider"}),": ",(0,s.jsx)(r.a,{href:"/docs/build-on-morph/sdk/type-aliases/ProviderLike",children:(0,s.jsx)(r.code,{children:"ProviderLike"})})]}),"\n",(0,s.jsx)(r.p,{children:"L2 provider to query the L1 gas price from."}),"\n",(0,s.jsx)(r.h2,{id:"returns",children:"Returns"}),"\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.code,{children:"Promise"}),"<",(0,s.jsx)(r.code,{children:"BigNumber"}),">"]}),"\n",(0,s.jsx)(r.p,{children:"Current L1 gas price as seen on L2."}),"\n",(0,s.jsx)(r.h2,{id:"source",children:"Source"}),"\n",(0,s.jsx)(r.p,{children:"src/l2-provider.ts:57"})]})}function u(e={}){const{wrapper:r}={...(0,o.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},2333:(e,r,n)=>{n.d(r,{R:()=>t,x:()=>i});var s=n(9474);const o={},c=s.createContext(o);function t(e){const r=s.useContext(c);return s.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:t(e.components),s.createElement(c.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/4784893f.379a37aa.js b/build/assets/js/4784893f.0785ce05.js similarity index 81% rename from build/assets/js/4784893f.379a37aa.js rename to build/assets/js/4784893f.0785ce05.js index e40b9264a..b3db8d48f 100644 --- a/build/assets/js/4784893f.379a37aa.js +++ b/build/assets/js/4784893f.0785ce05.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[2286],{6296:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>d,contentTitle:()=>i,default:()=>h,frontMatter:()=>t,metadata:()=>c,toc:()=>u});var o=r(3274),s=r(2333);const t={},i="Function: toBigNumber()",c={id:"build-on-morph/sdk/functions/toBigNumber",title:"toBigNumber",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/functions/toBigNumber.md",sourceDirName:"build-on-morph/sdk/functions",slug:"/build-on-morph/sdk/functions/toBigNumber",permalink:"/docs/build-on-morph/sdk/functions/toBigNumber",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/functions/toBigNumber.md",tags:[],version:"current",frontMatter:{}},d={},u=[{value:"Parameters",id:"parameters",level:2},{value:"Returns",id:"returns",level:2},{value:"Source",id:"source",level:2}];function l(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,s.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,o.jsx)(n.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,o.jsx)(n.strong,{children:"Docs"})]}),"\n",(0,o.jsx)(n.hr,{}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / toBigNumber"]}),"\n",(0,o.jsx)(n.h1,{id:"function-tobignumber",children:"Function: toBigNumber()"}),"\n",(0,o.jsxs)(n.blockquote,{children:["\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.strong,{children:"toBigNumber"}),"(",(0,o.jsx)(n.code,{children:"num"}),"): ",(0,o.jsx)(n.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:"Converts a number-like into an ethers BigNumber."}),"\n",(0,o.jsx)(n.h2,{id:"parameters",children:"Parameters"}),"\n",(0,o.jsxs)(n.p,{children:["\u2022 ",(0,o.jsx)(n.strong,{children:"num"}),": ",(0,o.jsx)(n.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,o.jsx)(n.code,{children:"NumberLike"})})]}),"\n",(0,o.jsx)(n.p,{children:"Number-like to convert into a BigNumber."}),"\n",(0,o.jsx)(n.h2,{id:"returns",children:"Returns"}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.code,{children:"BigNumber"})}),"\n",(0,o.jsx)(n.p,{children:"Number-like as a BigNumber."}),"\n",(0,o.jsx)(n.h2,{id:"source",children:"Source"}),"\n",(0,o.jsx)(n.p,{children:"src/utils/coercion.ts:84"})]})}function h(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},2333:(e,n,r)=>{r.d(n,{R:()=>i,x:()=>c});var o=r(9474);const s={},t=o.createContext(s);function i(e){const n=o.useContext(t);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),o.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[2286],{6158:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>d,contentTitle:()=>i,default:()=>h,frontMatter:()=>t,metadata:()=>c,toc:()=>u});var o=r(6070),s=r(1582);const t={},i="Function: toBigNumber()",c={id:"build-on-morph/sdk/functions/toBigNumber",title:"toBigNumber",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/functions/toBigNumber.md",sourceDirName:"build-on-morph/sdk/functions",slug:"/build-on-morph/sdk/functions/toBigNumber",permalink:"/docs/build-on-morph/sdk/functions/toBigNumber",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/functions/toBigNumber.md",tags:[],version:"current",frontMatter:{}},d={},u=[{value:"Parameters",id:"parameters",level:2},{value:"Returns",id:"returns",level:2},{value:"Source",id:"source",level:2}];function l(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,s.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,o.jsx)(n.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,o.jsx)(n.strong,{children:"Docs"})]}),"\n",(0,o.jsx)(n.hr,{}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / toBigNumber"]}),"\n",(0,o.jsx)(n.h1,{id:"function-tobignumber",children:"Function: toBigNumber()"}),"\n",(0,o.jsxs)(n.blockquote,{children:["\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.strong,{children:"toBigNumber"}),"(",(0,o.jsx)(n.code,{children:"num"}),"): ",(0,o.jsx)(n.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:"Converts a number-like into an ethers BigNumber."}),"\n",(0,o.jsx)(n.h2,{id:"parameters",children:"Parameters"}),"\n",(0,o.jsxs)(n.p,{children:["\u2022 ",(0,o.jsx)(n.strong,{children:"num"}),": ",(0,o.jsx)(n.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,o.jsx)(n.code,{children:"NumberLike"})})]}),"\n",(0,o.jsx)(n.p,{children:"Number-like to convert into a BigNumber."}),"\n",(0,o.jsx)(n.h2,{id:"returns",children:"Returns"}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.code,{children:"BigNumber"})}),"\n",(0,o.jsx)(n.p,{children:"Number-like as a BigNumber."}),"\n",(0,o.jsx)(n.h2,{id:"source",children:"Source"}),"\n",(0,o.jsx)(n.p,{children:"src/utils/coercion.ts:84"})]})}function h(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},1582:(e,n,r)=>{r.d(n,{R:()=>i,x:()=>c});var o=r(758);const s={},t=o.createContext(s);function i(e){const n=o.useContext(t);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),o.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/4a10ae38.1df24a9e.js b/build/assets/js/4a10ae38.accc9646.js similarity index 77% rename from build/assets/js/4a10ae38.1df24a9e.js rename to build/assets/js/4a10ae38.accc9646.js index 482488c55..84037a9ba 100644 --- a/build/assets/js/4a10ae38.1df24a9e.js +++ b/build/assets/js/4a10ae38.accc9646.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[866],{6937:(n,e,o)=>{o.r(e),o.d(e,{assets:()=>d,contentTitle:()=>c,default:()=>h,frontMatter:()=>t,metadata:()=>i,toc:()=>l});var r=o(3274),s=o(2333);const t={},c="Variable: DEPOSIT_CONFIRMATION_BLOCKS",i={id:"build-on-morph/sdk/variables/DEPOSIT_CONFIRMATION_BLOCKS",title:"DEPOSIT_CONFIRMATION_BLOCKS",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/variables/DEPOSIT_CONFIRMATION_BLOCKS.md",sourceDirName:"build-on-morph/sdk/variables",slug:"/build-on-morph/sdk/variables/DEPOSIT_CONFIRMATION_BLOCKS",permalink:"/docs/build-on-morph/sdk/variables/DEPOSIT_CONFIRMATION_BLOCKS",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/variables/DEPOSIT_CONFIRMATION_BLOCKS.md",tags:[],version:"current",frontMatter:{}},d={},l=[{value:"Source",id:"source",level:2}];function a(n){const e={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,s.R)(),...n.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,r.jsx)(e.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,r.jsx)(e.strong,{children:"Docs"})]}),"\n",(0,r.jsx)(e.hr,{}),"\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / DEPOSIT_CONFIRMATION_BLOCKS"]}),"\n",(0,r.jsx)(e.h1,{id:"variable-deposit_confirmation_blocks",children:"Variable: DEPOSIT_CONFIRMATION_BLOCKS"}),"\n",(0,r.jsxs)(e.blockquote,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.code,{children:"const"})," ",(0,r.jsx)(e.strong,{children:"DEPOSIT_CONFIRMATION_BLOCKS"}),": ",(0,r.jsx)(e.code,{children:"{ [ChainID in L2ChainID]: number }"})]}),"\n"]}),"\n",(0,r.jsx)(e.h2,{id:"source",children:"Source"}),"\n",(0,r.jsx)(e.p,{children:"src/utils/chain-constants.ts:12"})]})}function h(n={}){const{wrapper:e}={...(0,s.R)(),...n.components};return e?(0,r.jsx)(e,{...n,children:(0,r.jsx)(a,{...n})}):a(n)}},2333:(n,e,o)=>{o.d(e,{R:()=>c,x:()=>i});var r=o(9474);const s={},t=r.createContext(s);function c(n){const e=r.useContext(t);return r.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function i(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(s):n.components||s:c(n.components),r.createElement(t.Provider,{value:e},n.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[866],{5887:(n,e,o)=>{o.r(e),o.d(e,{assets:()=>d,contentTitle:()=>c,default:()=>h,frontMatter:()=>t,metadata:()=>i,toc:()=>l});var r=o(6070),s=o(1582);const t={},c="Variable: DEPOSIT_CONFIRMATION_BLOCKS",i={id:"build-on-morph/sdk/variables/DEPOSIT_CONFIRMATION_BLOCKS",title:"DEPOSIT_CONFIRMATION_BLOCKS",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/variables/DEPOSIT_CONFIRMATION_BLOCKS.md",sourceDirName:"build-on-morph/sdk/variables",slug:"/build-on-morph/sdk/variables/DEPOSIT_CONFIRMATION_BLOCKS",permalink:"/docs/build-on-morph/sdk/variables/DEPOSIT_CONFIRMATION_BLOCKS",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/variables/DEPOSIT_CONFIRMATION_BLOCKS.md",tags:[],version:"current",frontMatter:{}},d={},l=[{value:"Source",id:"source",level:2}];function a(n){const e={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,s.R)(),...n.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,r.jsx)(e.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,r.jsx)(e.strong,{children:"Docs"})]}),"\n",(0,r.jsx)(e.hr,{}),"\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / DEPOSIT_CONFIRMATION_BLOCKS"]}),"\n",(0,r.jsx)(e.h1,{id:"variable-deposit_confirmation_blocks",children:"Variable: DEPOSIT_CONFIRMATION_BLOCKS"}),"\n",(0,r.jsxs)(e.blockquote,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.code,{children:"const"})," ",(0,r.jsx)(e.strong,{children:"DEPOSIT_CONFIRMATION_BLOCKS"}),": ",(0,r.jsx)(e.code,{children:"{ [ChainID in L2ChainID]: number }"})]}),"\n"]}),"\n",(0,r.jsx)(e.h2,{id:"source",children:"Source"}),"\n",(0,r.jsx)(e.p,{children:"src/utils/chain-constants.ts:12"})]})}function h(n={}){const{wrapper:e}={...(0,s.R)(),...n.components};return e?(0,r.jsx)(e,{...n,children:(0,r.jsx)(a,{...n})}):a(n)}},1582:(n,e,o)=>{o.d(e,{R:()=>c,x:()=>i});var r=o(758);const s={},t=r.createContext(s);function c(n){const e=r.useContext(t);return r.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function i(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(s):n.components||s:c(n.components),r.createElement(t.Provider,{value:e},n.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/4a269d4a.cb3dd122.js b/build/assets/js/4a269d4a.a94aba76.js similarity index 83% rename from build/assets/js/4a269d4a.cb3dd122.js rename to build/assets/js/4a269d4a.a94aba76.js index 7028b4ed8..58eddab3e 100644 --- a/build/assets/js/4a269d4a.cb3dd122.js +++ b/build/assets/js/4a269d4a.a94aba76.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[7396],{7093:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>d,contentTitle:()=>o,default:()=>p,frontMatter:()=>c,metadata:()=>i,toc:()=>a});var n=t(3274),r=t(2333);const c={},o="Interface: MessageReceipt",i={id:"build-on-morph/sdk/interfaces/MessageReceipt",title:"MessageReceipt",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/interfaces/MessageReceipt.md",sourceDirName:"build-on-morph/sdk/interfaces",slug:"/build-on-morph/sdk/interfaces/MessageReceipt",permalink:"/docs/build-on-morph/sdk/interfaces/MessageReceipt",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/interfaces/MessageReceipt.md",tags:[],version:"current",frontMatter:{}},d={},a=[{value:"Properties",id:"properties",level:2},{value:"receiptStatus",id:"receiptstatus",level:3},{value:"Source",id:"source",level:4},{value:"transactionReceipt?",id:"transactionreceipt",level:3},{value:"Source",id:"source-1",level:4}];function l(e){const s={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",p:"p",strong:"strong",...(0,r.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,n.jsx)(s.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,n.jsx)(s.strong,{children:"Docs"})]}),"\n",(0,n.jsx)(s.hr,{}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / MessageReceipt"]}),"\n",(0,n.jsx)(s.h1,{id:"interface-messagereceipt",children:"Interface: MessageReceipt"}),"\n",(0,n.jsx)(s.p,{children:"CrossDomainMessage receipt."}),"\n",(0,n.jsx)(s.h2,{id:"properties",children:"Properties"}),"\n",(0,n.jsx)(s.h3,{id:"receiptstatus",children:"receiptStatus"}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"receiptStatus"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/enumerations/MessageReceiptStatus",children:(0,n.jsx)(s.code,{children:"MessageReceiptStatus"})})]}),"\n"]}),"\n",(0,n.jsx)(s.h4,{id:"source",children:"Source"}),"\n",(0,n.jsx)(s.p,{children:"src/interfaces/types.ts:307"}),"\n",(0,n.jsx)(s.hr,{}),"\n",(0,n.jsx)(s.h3,{id:"transactionreceipt",children:"transactionReceipt?"}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.code,{children:"optional"})," ",(0,n.jsx)(s.strong,{children:"transactionReceipt"}),": ",(0,n.jsx)(s.code,{children:"TransactionReceipt"})]}),"\n"]}),"\n",(0,n.jsx)(s.h4,{id:"source-1",children:"Source"}),"\n",(0,n.jsx)(s.p,{children:"src/interfaces/types.ts:308"})]})}function p(e={}){const{wrapper:s}={...(0,r.R)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},2333:(e,s,t)=>{t.d(s,{R:()=>o,x:()=>i});var n=t(9474);const r={},c=n.createContext(r);function o(e){const s=n.useContext(c);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function i(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),n.createElement(c.Provider,{value:s},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[7396],{5768:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>d,contentTitle:()=>o,default:()=>p,frontMatter:()=>c,metadata:()=>i,toc:()=>a});var n=t(6070),r=t(1582);const c={},o="Interface: MessageReceipt",i={id:"build-on-morph/sdk/interfaces/MessageReceipt",title:"MessageReceipt",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/interfaces/MessageReceipt.md",sourceDirName:"build-on-morph/sdk/interfaces",slug:"/build-on-morph/sdk/interfaces/MessageReceipt",permalink:"/docs/build-on-morph/sdk/interfaces/MessageReceipt",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/interfaces/MessageReceipt.md",tags:[],version:"current",frontMatter:{}},d={},a=[{value:"Properties",id:"properties",level:2},{value:"receiptStatus",id:"receiptstatus",level:3},{value:"Source",id:"source",level:4},{value:"transactionReceipt?",id:"transactionreceipt",level:3},{value:"Source",id:"source-1",level:4}];function l(e){const s={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",p:"p",strong:"strong",...(0,r.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,n.jsx)(s.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,n.jsx)(s.strong,{children:"Docs"})]}),"\n",(0,n.jsx)(s.hr,{}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / MessageReceipt"]}),"\n",(0,n.jsx)(s.h1,{id:"interface-messagereceipt",children:"Interface: MessageReceipt"}),"\n",(0,n.jsx)(s.p,{children:"CrossDomainMessage receipt."}),"\n",(0,n.jsx)(s.h2,{id:"properties",children:"Properties"}),"\n",(0,n.jsx)(s.h3,{id:"receiptstatus",children:"receiptStatus"}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"receiptStatus"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/enumerations/MessageReceiptStatus",children:(0,n.jsx)(s.code,{children:"MessageReceiptStatus"})})]}),"\n"]}),"\n",(0,n.jsx)(s.h4,{id:"source",children:"Source"}),"\n",(0,n.jsx)(s.p,{children:"src/interfaces/types.ts:307"}),"\n",(0,n.jsx)(s.hr,{}),"\n",(0,n.jsx)(s.h3,{id:"transactionreceipt",children:"transactionReceipt?"}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.code,{children:"optional"})," ",(0,n.jsx)(s.strong,{children:"transactionReceipt"}),": ",(0,n.jsx)(s.code,{children:"TransactionReceipt"})]}),"\n"]}),"\n",(0,n.jsx)(s.h4,{id:"source-1",children:"Source"}),"\n",(0,n.jsx)(s.p,{children:"src/interfaces/types.ts:308"})]})}function p(e={}){const{wrapper:s}={...(0,r.R)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},1582:(e,s,t)=>{t.d(s,{R:()=>o,x:()=>i});var n=t(758);const r={},c=n.createContext(r);function o(e){const s=n.useContext(c);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function i(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),n.createElement(c.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/4cbe5783.3425072e.js b/build/assets/js/4cbe5783.3425072e.js new file mode 100644 index 000000000..99a23b5ca --- /dev/null +++ b/build/assets/js/4cbe5783.3425072e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[6736],{3053:(n,s,o)=>{o.r(s),o.d(s,{assets:()=>a,contentTitle:()=>c,default:()=>l,frontMatter:()=>e,metadata:()=>i,toc:()=>d});var t=o(6070),r=o(1582);const e={},c="Function: toTransactionHash()",i={id:"build-on-morph/sdk/functions/toTransactionHash",title:"toTransactionHash",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/functions/toTransactionHash.md",sourceDirName:"build-on-morph/sdk/functions",slug:"/build-on-morph/sdk/functions/toTransactionHash",permalink:"/docs/build-on-morph/sdk/functions/toTransactionHash",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/functions/toTransactionHash.md",tags:[],version:"current",frontMatter:{}},a={},d=[{value:"Parameters",id:"parameters",level:2},{value:"Returns",id:"returns",level:2},{value:"Source",id:"source",level:2}];function h(n){const s={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,r.R)(),...n.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,t.jsx)(s.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,t.jsx)(s.strong,{children:"Docs"})]}),"\n",(0,t.jsx)(s.hr,{}),"\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / toTransactionHash"]}),"\n",(0,t.jsx)(s.h1,{id:"function-totransactionhash",children:"Function: toTransactionHash()"}),"\n",(0,t.jsxs)(s.blockquote,{children:["\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.strong,{children:"toTransactionHash"}),"(",(0,t.jsx)(s.code,{children:"transaction"}),"): ",(0,t.jsx)(s.code,{children:"string"})]}),"\n"]}),"\n",(0,t.jsx)(s.p,{children:"Pulls a transaction hash out of a TransactionLike object."}),"\n",(0,t.jsx)(s.h2,{id:"parameters",children:"Parameters"}),"\n",(0,t.jsxs)(s.p,{children:["\u2022 ",(0,t.jsx)(s.strong,{children:"transaction"}),": ",(0,t.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/TransactionLike",children:(0,t.jsx)(s.code,{children:"TransactionLike"})})]}),"\n",(0,t.jsx)(s.p,{children:"TransactionLike to convert into a transaction hash."}),"\n",(0,t.jsx)(s.h2,{id:"returns",children:"Returns"}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.code,{children:"string"})}),"\n",(0,t.jsx)(s.p,{children:"Transaction hash corresponding to the TransactionLike input."}),"\n",(0,t.jsx)(s.h2,{id:"source",children:"Source"}),"\n",(0,t.jsx)(s.p,{children:"src/utils/coercion.ts:62"})]})}function l(n={}){const{wrapper:s}={...(0,r.R)(),...n.components};return s?(0,t.jsx)(s,{...n,children:(0,t.jsx)(h,{...n})}):h(n)}},1582:(n,s,o)=>{o.d(s,{R:()=>c,x:()=>i});var t=o(758);const r={},e=t.createContext(r);function c(n){const s=t.useContext(e);return t.useMemo((function(){return"function"==typeof n?n(s):{...s,...n}}),[s,n])}function i(n){let s;return s=n.disableParentContext?"function"==typeof n.components?n.components(r):n.components||r:c(n.components),t.createElement(e.Provider,{value:s},n.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/4cbe5783.9ebc7cfc.js b/build/assets/js/4cbe5783.9ebc7cfc.js deleted file mode 100644 index 5ff1b1483..000000000 --- a/build/assets/js/4cbe5783.9ebc7cfc.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[6736],{63:(n,s,o)=>{o.r(s),o.d(s,{assets:()=>a,contentTitle:()=>c,default:()=>l,frontMatter:()=>e,metadata:()=>i,toc:()=>d});var t=o(3274),r=o(2333);const e={},c="Function: toTransactionHash()",i={id:"build-on-morph/sdk/functions/toTransactionHash",title:"toTransactionHash",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/functions/toTransactionHash.md",sourceDirName:"build-on-morph/sdk/functions",slug:"/build-on-morph/sdk/functions/toTransactionHash",permalink:"/docs/build-on-morph/sdk/functions/toTransactionHash",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/functions/toTransactionHash.md",tags:[],version:"current",frontMatter:{}},a={},d=[{value:"Parameters",id:"parameters",level:2},{value:"Returns",id:"returns",level:2},{value:"Source",id:"source",level:2}];function h(n){const s={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,r.R)(),...n.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,t.jsx)(s.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,t.jsx)(s.strong,{children:"Docs"})]}),"\n",(0,t.jsx)(s.hr,{}),"\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / toTransactionHash"]}),"\n",(0,t.jsx)(s.h1,{id:"function-totransactionhash",children:"Function: toTransactionHash()"}),"\n",(0,t.jsxs)(s.blockquote,{children:["\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.strong,{children:"toTransactionHash"}),"(",(0,t.jsx)(s.code,{children:"transaction"}),"): ",(0,t.jsx)(s.code,{children:"string"})]}),"\n"]}),"\n",(0,t.jsx)(s.p,{children:"Pulls a transaction hash out of a TransactionLike object."}),"\n",(0,t.jsx)(s.h2,{id:"parameters",children:"Parameters"}),"\n",(0,t.jsxs)(s.p,{children:["\u2022 ",(0,t.jsx)(s.strong,{children:"transaction"}),": ",(0,t.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/TransactionLike",children:(0,t.jsx)(s.code,{children:"TransactionLike"})})]}),"\n",(0,t.jsx)(s.p,{children:"TransactionLike to convert into a transaction hash."}),"\n",(0,t.jsx)(s.h2,{id:"returns",children:"Returns"}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.code,{children:"string"})}),"\n",(0,t.jsx)(s.p,{children:"Transaction hash corresponding to the TransactionLike input."}),"\n",(0,t.jsx)(s.h2,{id:"source",children:"Source"}),"\n",(0,t.jsx)(s.p,{children:"src/utils/coercion.ts:62"})]})}function l(n={}){const{wrapper:s}={...(0,r.R)(),...n.components};return s?(0,t.jsx)(s,{...n,children:(0,t.jsx)(h,{...n})}):h(n)}},2333:(n,s,o)=>{o.d(s,{R:()=>c,x:()=>i});var t=o(9474);const r={},e=t.createContext(r);function c(n){const s=t.useContext(e);return t.useMemo((function(){return"function"==typeof n?n(s):{...s,...n}}),[s,n])}function i(n){let s;return s=n.disableParentContext?"function"==typeof n.components?n.components(r):n.components||r:c(n.components),t.createElement(e.Provider,{value:s},n.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/4f7a49ab.68e103c7.js b/build/assets/js/4f7a49ab.68e103c7.js new file mode 100644 index 000000000..36a33becf --- /dev/null +++ b/build/assets/js/4f7a49ab.68e103c7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[749],{2877:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>d,contentTitle:()=>i,default:()=>l,frontMatter:()=>s,metadata:()=>a,toc:()=>h});var t=o(6070),r=o(1582);const s={title:"Run a validator with docker",lang:"en-US"},i=void 0,a={id:"build-on-morph/developer-resources/node-operation/validator-node/run-in-docker",title:"Run a validator with docker",description:"This guide will help you start a validator node running in the docker container using run-morph-node",source:"@site/docs/build-on-morph/developer-resources/node-operation/validator-node/1-run-in-docker.md",sourceDirName:"build-on-morph/developer-resources/node-operation/validator-node",slug:"/build-on-morph/developer-resources/node-operation/validator-node/run-in-docker",permalink:"/docs/build-on-morph/developer-resources/node-operation/validator-node/run-in-docker",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/developer-resources/node-operation/validator-node/1-run-in-docker.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{title:"Run a validator with docker",lang:"en-US"},sidebar:"DeveloperSidebar",previous:{title:"Run a full node from source",permalink:"/docs/build-on-morph/developer-resources/node-operation/full-node/run-on-host"},next:{title:"Run a validator from source",permalink:"/docs/build-on-morph/developer-resources/node-operation/validator-node/run-on-host"}},d={},h=[{value:"Quick Start",id:"quick-start",level:3},{value:"Sync from snapshot",id:"sync-from-snapshot",level:3},{value:"1. Clone the dockerfile repository",id:"1-clone-the-dockerfile-repository",level:4},{value:"2. Download the Snapshot",id:"2-download-the-snapshot",level:4},{value:"3. Set up the snapshot",id:"3-set-up-the-snapshot",level:4},{value:"4. Update the Environment Variables",id:"4-update-the-environment-variables",level:4},{value:"5. Run the Validator",id:"5-run-the-validator",level:4}];function c(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h3:"h3",h4:"h4",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(n.p,{children:["This guide will help you start a validator node running in the docker container using ",(0,t.jsx)(n.a,{href:"https://github.com/morph-l2/run-morph-node",children:"run-morph-node"})]}),"\n",(0,t.jsx)(n.h3,{id:"quick-start",children:"Quick Start"}),"\n",(0,t.jsx)(n.admonition,{type:"info",children:(0,t.jsxs)(n.p,{children:["The following quick start steps are only applicable for running a validator node on the mainnet. To set up and operate a Holesky validator node, please refer to ",(0,t.jsx)(n.a,{href:"#sync-from-snapshot",children:(0,t.jsx)(n.strong,{children:"Sync from Snapshot"})}),"."]})}),"\n",(0,t.jsx)(n.admonition,{type:"note",children:(0,t.jsxs)(n.p,{children:["Starting with the ",(0,t.jsx)(n.code,{children:"Quick Start"})," initiates synchronization from height 0, which can be extremely time-consuming to reach the latest state. We highly recommend using the ",(0,t.jsx)(n.a,{href:"#sync-from-snapshot",children:(0,t.jsx)(n.strong,{children:"Sync from Snapshot"})})," approach outlined below for a faster and more efficient startup."]})}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"1. Clone the dockerfile repository"})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"git clone https://github.com/morph-l2/run-morph-node.git\n"})}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsxs)(n.strong,{children:["2. Configure ",(0,t.jsx)(n.code,{children:"morph-node/.env"})]})}),"\n",(0,t.jsxs)(n.p,{children:["The ",(0,t.jsx)(n.code,{children:"morph-node/.env"})," file defines the environment variables required for deploying a validator node. Below is an example configuration:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-js",metastring:'title="morph-node/.env"',children:"// General settings\nMORPH_HOME=../mainnet\nMORPH_FLAG=morph\nJWT_SECRET_FILE=${MORPH_HOME}/jwt-secret.txt\nGETH_ENTRYPOINT_FILE=./entrypoint-geth.sh\n\n// Environment variables for validator node\nL1_CHAIN_ID=1\nL1_ETH_RPC=${your_layer1_execution_client_rpc_url}\nL1_BEACON_CHAIN_RPC=${your_layer1_beacon_client_rpc_url}\nL1MESSAGEQUEUE_CONTRACT=0x3931ade842f5bb8763164bdd81e5361dce6cc1ef\nROLLUP_CONTRACY=0x759894ced0e6af42c26668076ffa84d02e3cef60\nDERIVATION_START_HEIGHT=20996776\nL1_MSG_START_HEIGHT=20996776\n"})}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.em,{children:(0,t.jsx)(n.strong,{children:(0,t.jsx)(n.code,{children:"Default Directory:"})})}),"\nFor running a validator on the mainnet, the ",(0,t.jsx)(n.code,{children:"MORPH_HOME"})," directory defaults to ",(0,t.jsx)(n.code,{children:"../mainnet"}),". You can customize this path to suit your setup."]}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.em,{children:(0,t.jsx)(n.strong,{children:(0,t.jsx)(n.code,{children:"Layer1 RPC URLs:"})})}),"\nEnsure you provide the correct RPC URLs for the Layer 1 execution client (L1_ETH_RPC) and the beacon chain client (L1_BEACON_CHAIN_RPC). These URLs are essential for the validator to fetch rollup batches and maintain synchronization."]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"3. Run the following command"})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"cd morph-node\nmake run-validator\n"})}),"\n",(0,t.jsx)(n.h3,{id:"sync-from-snapshot",children:"Sync from snapshot"}),"\n",(0,t.jsx)(n.p,{children:"We recommend synchronizing blocks using snapshot data to reduce the time required for block synchronization. This approach allows you to start the node from a specific block height, significantly reducing the time needed to reach the latest state."}),"\n",(0,t.jsx)(n.h4,{id:"1-clone-the-dockerfile-repository",children:"1. Clone the dockerfile repository"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"git clone https://github.com/morph-l2/run-morph-node.git\n"})}),"\n",(0,t.jsx)(n.h4,{id:"2-download-the-snapshot",children:"2. Download the Snapshot"}),"\n",(0,t.jsxs)(n.p,{children:["The ",(0,t.jsx)(n.code,{children:"morph-node/.env"})," configuration file in the repository you just cloned is designed for setting up the Morph node on the mainnet. By default, it is pre-configured to use the latest snapshot."]}),"\n",(0,t.jsxs)(n.p,{children:["If you need a historical snapshot, you must manually update the ",(0,t.jsx)(n.strong,{children:"SNAPSHOT_NAME"})," in the ",(0,t.jsx)(n.code,{children:"morph-node/.env"})," file. (Note: For the ",(0,t.jsx)(n.strong,{children:"testnet"}),", the corresponding file is ",(0,t.jsx)(n.code,{children:"morph-node/.env_holesky"}),".)"]}),"\n",(0,t.jsxs)(n.p,{children:["You can find the historical snapshot names from ",(0,t.jsx)(n.a,{href:"https://github.com/morph-l2/run-morph-node?tab=readme-ov-file#snapshot-information",children:(0,t.jsx)(n.strong,{children:"Snapshot Information"})}),"."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-js",children:"// ...\n\nMAINNET_SNAPSHOT_NAME={your expected snapshot name} \n\n// ...\n"})}),"\n",(0,t.jsx)(n.p,{children:"Run the following command to download and decompress the snapshot for your network:"}),"\n",(0,t.jsx)(n.p,{children:"For the mainnet:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"make download-and-decompress-mainnet-snapshot\n"})}),"\n",(0,t.jsx)(n.p,{children:"For the testnet:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"make download-and-decompress-holesky-snapshot\n"})}),"\n",(0,t.jsx)(n.h4,{id:"3-set-up-the-snapshot",children:"3. Set up the snapshot"}),"\n",(0,t.jsxs)(n.p,{children:["After downloading, locate the snapshot by placing the extracted data files in the correct directory specified by the ",(0,t.jsx)(n.strong,{children:"MORPH_HOME"})," path in your ",(0,t.jsx)(n.code,{children:"morph-node/.env"})," file. Ensure the data files align with the node's expected structure to allow seamless synchronization."]}),"\n",(0,t.jsxs)(n.p,{children:["For example, if the snapshot folder is named ",(0,t.jsx)(n.code,{children:"snapshot-20241218-1"}),","]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["move the directory ",(0,t.jsx)(n.code,{children:"snapshot-20241218-1/geth"})," to the ",(0,t.jsx)(n.code,{children:"${MORPH_HOME}/geth-data"})," directory."]}),"\n",(0,t.jsxs)(n.li,{children:["move the contents from ",(0,t.jsx)(n.code,{children:"snapshot-20241218-1/data"})," to the ",(0,t.jsx)(n.code,{children:"${NODE_DATA_DIR}/data"})," directory."]}),"\n"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"mv ./morph-node/snapshot-20241218-1/geth ${MORPH_HOME}/geth-data\nmv ./morph-node/snapshot-20241218-1/data/* ${MORPH_HOME}/node-data/data\n"})}),"\n",(0,t.jsx)(n.p,{children:"The folder structure will be like"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-javascript",children:"\u2514\u2500\u2500 ${MORPH_HOME}\n \u251c\u2500\u2500 geth-data // data directory for geth\n \u2502\xa0\xa0 \u2514\u2500\u2500 static-nodes.json\n \u2502\xa0\xa0 \u2514\u2500\u2500 geth // directory from snapshot/geth \n \u2514\u2500\u2500 node-data // data directory for node\n \u251c\u2500\u2500 config\n \u2502\xa0\xa0 \u251c\u2500\u2500 config.toml\n \u2502\xa0\xa0 \u2514\u2500\u2500 genesis.json\n \u2514\u2500\u2500 data // data directory from snapshot/node\n"})}),"\n",(0,t.jsx)(n.h4,{id:"4-update-the-environment-variables",children:"4. Update the Environment Variables"}),"\n",(0,t.jsxs)(n.p,{children:["Before running the node, update the ",(0,t.jsx)(n.code,{children:"DERIVATION_START_HEIGHT"})," and ",(0,t.jsx)(n.code,{children:"L1_MSG_START_HEIGHT"})," variables in the ",(0,t.jsx)(n.code,{children:"morph-node/.env"})," file (or ",(0,t.jsx)(n.code,{children:".env_holesky"})," for the testnet)."]}),"\n",(0,t.jsxs)(n.p,{children:["Refer to ",(0,t.jsx)(n.a,{href:"https://github.com/morph-l2/run-morph-node?tab=readme-ov-file#snapshot-information",children:"snapshot-information"})," for the specific values of the configuration heights. Ensure that the corresponding height values match the snapshot version you are configuring."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-js",children:"// ...\nMAINNET_SNAPSHOT_NAME={your expected snapshot name} \n\n// ...\nDERIVATION_START_HEIGHT={the expected start height match the snapshot}\nL1_MSG_START_HEIGHT={the expected start height match the snapshot}\n\n"})}),"\n",(0,t.jsx)(n.h4,{id:"5-run-the-validator",children:"5. Run the Validator"}),"\n",(0,t.jsx)(n.p,{children:"With the snapshot and configuration files ready, navigate to the morph-node folder under your cloned repository, and start the node using the provided command"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"cd morph-node\nmake run-validator\n\n// or for testnet\ncd morph-node\nmake run-holesky-validator\n"})})]})}function l(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},1582:(e,n,o)=>{o.d(n,{R:()=>i,x:()=>a});var t=o(758);const r={},s=t.createContext(r);function i(e){const n=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),t.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/5081.08af33ec.js b/build/assets/js/5081.08af33ec.js new file mode 100644 index 000000000..6c8a22953 --- /dev/null +++ b/build/assets/js/5081.08af33ec.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[5081],{5081:(c,a,e)=>{e.r(a),e.d(a,{DocSearchModal:()=>h.a1});var h=e(2525)}}]); \ No newline at end of file diff --git a/build/assets/js/52171187.db8af086.js b/build/assets/js/52171187.077ab897.js similarity index 88% rename from build/assets/js/52171187.db8af086.js rename to build/assets/js/52171187.077ab897.js index 45af058e8..ef4da0827 100644 --- a/build/assets/js/52171187.db8af086.js +++ b/build/assets/js/52171187.077ab897.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[5027],{9226:(e,o,r)=>{r.r(o),r.d(o,{assets:()=>h,contentTitle:()=>s,default:()=>d,frontMatter:()=>i,metadata:()=>a,toc:()=>c});var t=r(3274),n=r(2333);const i={title:"Where Should I Start?",lang:"en-US",keywords:["morph","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},s=void 0,a={id:"about-morph/where-should-i-start",title:"Where Should I Start?",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/about-morph/3-where-should-i-start.md",sourceDirName:"about-morph",slug:"/about-morph/where-should-i-start",permalink:"/docs/about-morph/where-should-i-start",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/about-morph/3-where-should-i-start.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{title:"Where Should I Start?",lang:"en-US",keywords:["morph","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"}},h={},c=[{value:"For Developers: Dive Into Building On Morph",id:"for-developers-dive-into-building-on-morph",level:2},{value:"For Users: Embark On Your Morph Journey",id:"for-users-embark-on-your-morph-journey",level:2},{value:"For Researchers: Unraveling The Technical Depth Of Morph",id:"for-researchers-unraveling-the-technical-depth-of-morph",level:2}];function l(e){const o={a:"a",h2:"h2",p:"p",...(0,n.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(o.h2,{id:"for-developers-dive-into-building-on-morph",children:"For Developers: Dive Into Building On Morph"}),"\n",(0,t.jsxs)(o.p,{children:['As a developer keen on harnessing the innovative capabilities of the Morph network, your journey begins in the "Build on Morph" section of our documentation. Here, you\'ll find all the resources you need \u2013 from comprehensive guides and tutorials to practical examples. These materials are designed to elucidate the core concepts and features of Morph, enabling you to integrate with our APIs, deploy sophisticated smart contracts, and utilize an array of tools and libraries. The ',(0,t.jsx)(o.a,{href:"/docs/build-on-morph/intro",children:'"Build on Morph"'})," guide is your gateway to crafting powerful, decentralized applications that leverage the full potential of our network."]}),"\n",(0,t.jsx)(o.h2,{id:"for-users-embark-on-your-morph-journey",children:"For Users: Embark On Your Morph Journey"}),"\n",(0,t.jsxs)(o.p,{children:["If you're eager to explore the possibilities within the Morph network, the \"Quick Start\" section in our documentation is your ideal starting point. Tailored for ease of understanding, this guide walks you through the essentials \u2013 from setting up your wallet to engaging in transactions on the network. It's designed to introduce you to the world of asset transfers, decentralized finance, and the diverse range of dApps available on Morph. Follow the ",(0,t.jsx)(o.a,{href:"/docs/quick-start/welcome-to-morph",children:'"Quick Start"'})," guide for a smooth, user-friendly introduction to leveraging Morph's functionalities in your everyday activities."]}),"\n",(0,t.jsx)(o.h2,{id:"for-researchers-unraveling-the-technical-depth-of-morph",children:"For Researchers: Unraveling The Technical Depth Of Morph"}),"\n",(0,t.jsxs)(o.p,{children:["For those intrigued by the technical intricacies of the Morph network, the ",(0,t.jsx)(o.a,{href:"/docs/how-morph-works/intro",children:'"How Morph Works"'})," section offers an in-depth exploration of its underlying architecture and mechanisms. This comprehensive resource is rich in technical details, providing an extensive understanding of Morph's innovative features and foundational principles. Whether you're delving into research or seeking a thorough grasp of blockchain technology, this section unveils the nuances and sophisticated engineering that define the Morph network."]}),"\n",(0,t.jsx)(o.p,{children:"No matter your background \u2013 developer, user, or researcher \u2013 our documentation is structured to offer you a customized pathway into the Morph ecosystem. Each guide is designed to help you leverage and understand our state-of-the-art technology and features, ensuring a rewarding experience on the Morph network."})]})}function d(e={}){const{wrapper:o}={...(0,n.R)(),...e.components};return o?(0,t.jsx)(o,{...e,children:(0,t.jsx)(l,{...e})}):l(e)}},2333:(e,o,r)=>{r.d(o,{R:()=>s,x:()=>a});var t=r(9474);const n={},i=t.createContext(n);function s(e){const o=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function a(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:s(e.components),t.createElement(i.Provider,{value:o},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[5027],{1520:(e,o,r)=>{r.r(o),r.d(o,{assets:()=>h,contentTitle:()=>s,default:()=>d,frontMatter:()=>i,metadata:()=>a,toc:()=>c});var t=r(6070),n=r(1582);const i={title:"Where Should I Start?",lang:"en-US",keywords:["morph","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},s=void 0,a={id:"about-morph/where-should-i-start",title:"Where Should I Start?",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/about-morph/3-where-should-i-start.md",sourceDirName:"about-morph",slug:"/about-morph/where-should-i-start",permalink:"/docs/about-morph/where-should-i-start",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/about-morph/3-where-should-i-start.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{title:"Where Should I Start?",lang:"en-US",keywords:["morph","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"}},h={},c=[{value:"For Developers: Dive Into Building On Morph",id:"for-developers-dive-into-building-on-morph",level:2},{value:"For Users: Embark On Your Morph Journey",id:"for-users-embark-on-your-morph-journey",level:2},{value:"For Researchers: Unraveling The Technical Depth Of Morph",id:"for-researchers-unraveling-the-technical-depth-of-morph",level:2}];function l(e){const o={a:"a",h2:"h2",p:"p",...(0,n.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(o.h2,{id:"for-developers-dive-into-building-on-morph",children:"For Developers: Dive Into Building On Morph"}),"\n",(0,t.jsxs)(o.p,{children:['As a developer keen on harnessing the innovative capabilities of the Morph network, your journey begins in the "Build on Morph" section of our documentation. Here, you\'ll find all the resources you need \u2013 from comprehensive guides and tutorials to practical examples. These materials are designed to elucidate the core concepts and features of Morph, enabling you to integrate with our APIs, deploy sophisticated smart contracts, and utilize an array of tools and libraries. The ',(0,t.jsx)(o.a,{href:"/docs/build-on-morph/intro",children:'"Build on Morph"'})," guide is your gateway to crafting powerful, decentralized applications that leverage the full potential of our network."]}),"\n",(0,t.jsx)(o.h2,{id:"for-users-embark-on-your-morph-journey",children:"For Users: Embark On Your Morph Journey"}),"\n",(0,t.jsxs)(o.p,{children:["If you're eager to explore the possibilities within the Morph network, the \"Quick Start\" section in our documentation is your ideal starting point. Tailored for ease of understanding, this guide walks you through the essentials \u2013 from setting up your wallet to engaging in transactions on the network. It's designed to introduce you to the world of asset transfers, decentralized finance, and the diverse range of dApps available on Morph. Follow the ",(0,t.jsx)(o.a,{href:"/docs/quick-start/welcome-to-morph",children:'"Quick Start"'})," guide for a smooth, user-friendly introduction to leveraging Morph's functionalities in your everyday activities."]}),"\n",(0,t.jsx)(o.h2,{id:"for-researchers-unraveling-the-technical-depth-of-morph",children:"For Researchers: Unraveling The Technical Depth Of Morph"}),"\n",(0,t.jsxs)(o.p,{children:["For those intrigued by the technical intricacies of the Morph network, the ",(0,t.jsx)(o.a,{href:"/docs/how-morph-works/intro",children:'"How Morph Works"'})," section offers an in-depth exploration of its underlying architecture and mechanisms. This comprehensive resource is rich in technical details, providing an extensive understanding of Morph's innovative features and foundational principles. Whether you're delving into research or seeking a thorough grasp of blockchain technology, this section unveils the nuances and sophisticated engineering that define the Morph network."]}),"\n",(0,t.jsx)(o.p,{children:"No matter your background \u2013 developer, user, or researcher \u2013 our documentation is structured to offer you a customized pathway into the Morph ecosystem. Each guide is designed to help you leverage and understand our state-of-the-art technology and features, ensuring a rewarding experience on the Morph network."})]})}function d(e={}){const{wrapper:o}={...(0,n.R)(),...e.components};return o?(0,t.jsx)(o,{...e,children:(0,t.jsx)(l,{...e})}):l(e)}},1582:(e,o,r)=>{r.d(o,{R:()=>s,x:()=>a});var t=r(758);const n={},i=t.createContext(n);function s(e){const o=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function a(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:s(e.components),t.createElement(i.Provider,{value:o},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/578ca001.4379dd90.js b/build/assets/js/578ca001.4379dd90.js deleted file mode 100644 index 2e9186665..000000000 --- a/build/assets/js/578ca001.4379dd90.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[6142],{2111:(e,i,n)=>{n.r(i),n.d(i,{assets:()=>l,contentTitle:()=>r,default:()=>d,frontMatter:()=>o,metadata:()=>a,toc:()=>c});var t=n(3274),s=n(2333);const o={title:"Optimistic zkEVM",lang:"en-US",keywords:["morph","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},r=void 0,a={id:"how-morph-works/optimistic-zkevm",title:"Optimistic zkEVM",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/how-morph-works/3-optimistic-zkevm.md",sourceDirName:"how-morph-works",slug:"/how-morph-works/optimistic-zkevm",permalink:"/docs/how-morph-works/optimistic-zkevm",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/how-morph-works/3-optimistic-zkevm.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{title:"Optimistic zkEVM",lang:"en-US",keywords:["morph","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"Morph Modular Design",permalink:"/docs/how-morph-works/morph-modular-design"},next:{title:"Morph's Decentralized Sequencer Network",permalink:"/docs/how-morph-works/decentralized-sequencers/morph-decentralized-sequencer-network"}},l={},c=[{value:"Introduction to State Verification",id:"introduction-to-state-verification",level:2},{value:"The Problem with Optimistic Rollups",id:"the-problem-with-optimistic-rollups",level:2},{value:"What is RVP?\u200b",id:"what-is-rvp",level:2},{value:"Advantages of RVP Compared to Interactive Fraud Proofs",id:"advantages-of-rvp-compared-to-interactive-fraud-proofs",level:3},{value:"How Can RVP Shorten the Challenge Period of an Optimistic Rollup?",id:"how-can-rvp-shorten-the-challenge-period-of-an-optimistic-rollup",level:3},{value:"The Need for a Challenge Period",id:"the-need-for-a-challenge-period",level:4},{value:"Solutions to Shorten the Challenge Period",id:"solutions-to-shorten-the-challenge-period",level:4},{value:"Key Benefits of RVP in Reducing the Challenge Period",id:"key-benefits-of-rvp-in-reducing-the-challenge-period",level:4},{value:"Why is the Operating Cost Lower for L2 Based on RVP?",id:"why-is-the-operating-cost-lower-for-l2-based-on-rvp",level:3},{value:"Compression of Transactions",id:"compression-of-transactions",level:4},{value:"Efficient Data Submission",id:"efficient-data-submission",level:4},{value:"Comparison with Existing Solutions",id:"comparison-with-existing-solutions",level:4},{value:"RVP is Friendly to Challengers",id:"rvp-is-friendly-to-challengers",level:3},{value:"Why do sequencers have to take on the responsibility of submitting ZK-proofs?\u200b",id:"why-do-sequencers-have-to-take-on-the-responsibility-of-submitting-zk-proofs",level:3},{value:"Why Not Simply Employ ZK-Rollups?",id:"why-not-simply-employ-zk-rollups",level:3},{value:"The Cost of ZK-Rollup",id:"the-cost-of-zk-rollup",level:4},{value:"Block Finalization Time in ZK-Rollups",id:"block-finalization-time-in-zk-rollups",level:4},{value:"Seamless Transition with RVP-Based Rollups",id:"seamless-transition-with-rvp-based-rollups",level:4}];function h(e){const i={annotation:"annotation",h2:"h2",h3:"h3",h4:"h4",img:"img",li:"li",math:"math",mi:"mi",mn:"mn",mrow:"mrow",ol:"ol",p:"p",semantics:"semantics",span:"span",strong:"strong",ul:"ul",...(0,s.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(i.p,{children:(0,t.jsx)(i.img,{alt:"RVP",src:n(81).A+"",width:"4000",height:"2000"})}),"\n",(0,t.jsx)(i.h2,{id:"introduction-to-state-verification",children:"Introduction to State Verification"}),"\n",(0,t.jsx)(i.p,{children:"Layer 2 state verification traditionally falls into two categories: fraud proofs and validity proofs. Morph introduces a new verification method called Responsive Validity Proof (RVP), combining the benefits of both approaches to address their limitations. Fraud proofs, while effective, suffer from capital inefficiency and low security assumptions. Additionally, no Optimistic Rollup (OP-Rollup) has fully implemented a permissionless fraud-proof challenge mechanism. Conversely, validity proofs offer high security but face practical issues with cost and efficiency that hinder Rollup scalability."}),"\n",(0,t.jsx)(i.h2,{id:"the-problem-with-optimistic-rollups",children:"The Problem with Optimistic Rollups"}),"\n",(0,t.jsx)(i.p,{children:"In this model, Layer 2 (L2) optimistically assumes that the state changes submitted by the sequencer are valid without actively verifying their authenticity. Instead, a challenge period is introduced before the state changes are confirmed on Layer 1 (L1). During this period, external challengers verify the sequencer's submissions based on their own synchronized network status. If they find discrepancies, challengers can trigger a challenge process on L1 to prevent incorrect states from being confirmed."}),"\n",(0,t.jsxs)(i.p,{children:[(0,t.jsx)(i.strong,{children:"Challenge Mechanism"}),": Although all optimistic rollups claim to implement fraud proofs, only Arbitrum has successfully deployed them on the mainnet. Furthermore, the challengers are often limited to several whitelisted addresses. Fraud proofs in current optimistic rollup projects can be categorized into two types:"]}),"\n",(0,t.jsxs)(i.p,{children:[(0,t.jsx)(i.strong,{children:"Non-Interactive Fraud Proofs"}),": When a new state submitted by the sequencer is challenged, L1 re-executes all corresponding L2 transactions to generate a valid state for comparison with the state submitted by the sequencer. This process incurs significant gas costs and may lead to discrepancies between L2 and L1, as some transactions might produce different outcomes on L2 compared to L1, or L1 might not be able to execute certain L2 transactions. Optimism (OP) once used this approach but abandoned it due to these issues."]}),"\n",(0,t.jsxs)(i.p,{children:[(0,t.jsx)(i.strong,{children:"Interactive Fraud Proofs"}),": To address the issues of non-interactive fraud proofs, multi-round interactive fraud proofs were introduced. This method involves determining the specific instruction execution that caused the incorrectness through multiple rounds of interaction between the sequencer and the challenger, then confirming fraud by executing the corresponding instructions on L1. This approach reduces computational costs and diminishes the issue of incongruent outcomes between L1 and L2. However, it introduces complexities, such as:"]}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"Higher implementation difficulty"}),"\n",(0,t.jsx)(i.li,{children:"Longer challenge periods (sufficient time must be reserved for complex interactions)"}),"\n",(0,t.jsx)(i.li,{children:"Increased standards, impacting challengers' motivation"}),"\n"]}),"\n",(0,t.jsx)(i.p,{children:"Currently, only several OP Rollups have implemented a complete interactive fraud proof mechanism on its mainnet among optimistic rollup projects. In contrast, several ZK-rollup projects have already launched on the mainnet."}),"\n",(0,t.jsx)(i.p,{children:"These complexities highlight the need for improvement in existing optimistic rollup models. Hence, Morph introduces the Responsive Validity Proof (RVP)."}),"\n",(0,t.jsx)(i.h2,{id:"what-is-rvp",children:"What is RVP?\u200b"}),"\n",(0,t.jsx)(i.p,{children:(0,t.jsx)(i.img,{alt:"RVP",src:n(2566).A+"",width:"1770",height:"996"})}),"\n",(0,t.jsx)(i.p,{children:"Responsive Validity Proof (RVP) integrates ZK-based validity proofs into the optimistic rollup framework. The process is as follows:"}),"\n",(0,t.jsx)(i.p,{children:"When challengers detect that the sequencer has submitted incorrect data, they initiate a challenge request to the sequencer on Layer 1 (L1). The sequencer must then generate the corresponding Zero-Knowledge (ZK) proof within a specified time (challenge period) and pass the verification of the L1 contract. If the verification passes, the challenge fails; otherwise, the challenge succeeds. This process combines the benefits of optimistic rollups and ZK-rollups, providing a balanced approach to security and efficiency."}),"\n",(0,t.jsx)(i.h3,{id:"advantages-of-rvp-compared-to-interactive-fraud-proofs",children:"Advantages of RVP Compared to Interactive Fraud Proofs"}),"\n",(0,t.jsxs)(i.ol,{children:["\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.strong,{children:"Shorter Challenge Period"}),": RVP can reduce the challenge period from the typical 7 days to just 1-3 days, improving overall efficiency and user experience."]}),"\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.strong,{children:"Reduced L2 Submission Costs"}),": By using validity proofs, Layer 2 (L2) does not need to include most transaction bytes, significantly lowering submission costs."]}),"\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.strong,{children:"Improved Challenger Experience"}),": With RVP, challengers only need to initiate the challenge. The sequencer must prove their correctness by generating and verifying the corresponding ZK-proof, simplifying the challenger's responsibilities."]}),"\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.strong,{children:"Seamless Transition to ZK-Rollup"}),": The architectural design of RVP allows for an easy transition to a complete ZK-rollup. The primary change required is adjusting the sequencer's ZK-proof submission methods from responsive to active."]}),"\n"]}),"\n",(0,t.jsx)(i.p,{children:"RVP enhances the optimistic rollup model by incorporating ZK-proofs, offering a more efficient, cost-effective, and secure solution. It addresses the limitations of traditional fraud proofs and paves the way for a seamless transition to full ZK-rollup implementations in the future."}),"\n",(0,t.jsx)(i.h3,{id:"how-can-rvp-shorten-the-challenge-period-of-an-optimistic-rollup",children:"How Can RVP Shorten the Challenge Period of an Optimistic Rollup?"}),"\n",(0,t.jsx)(i.h4,{id:"the-need-for-a-challenge-period",children:"The Need for a Challenge Period"}),"\n",(0,t.jsx)(i.p,{children:"Optimistic rollups incorporate a challenge period (or withdrawal period) to ensure that any malicious submissions by the sequencer can be identified and contested. This period provides sufficient time for challengers to verify transactions, conduct fraud proofs, and complete the challenge process, thereby ensuring that only valid state changes are confirmed on Layer 1 (L1).\nTwo main factors influence the length of the challenge period:"}),"\n",(0,t.jsxs)(i.ol,{children:["\n",(0,t.jsx)(i.li,{children:"Completion Time: The time required for both parties to complete the challenge process."}),"\n",(0,t.jsx)(i.li,{children:"Mitigating Malicious Behavior: Ensuring that there is enough time to address any attempts by sequencers to maliciously block the challenger\u2019s transactions on L1."}),"\n"]}),"\n",(0,t.jsx)(i.h4,{id:"solutions-to-shorten-the-challenge-period",children:"Solutions to Shorten the Challenge Period"}),"\n",(0,t.jsxs)(i.p,{children:[(0,t.jsx)(i.strong,{children:"Concise and Direct Challenge Process:"})," For multi-round interactive fraud proofs, the entire challenge process might require several rounds of interaction, each demanding significant time. For example, if the process requires 10 rounds, at least 20 blocks of time are needed to complete the challenge, considering the back-and-forth responses.\nIn contrast, RVP simplifies the challenge process by requiring only one interaction: the sequencer uploads the ZK-proof of the batch, which is then verified on L1. This streamlined process addresses the main problem of whether challengers have enough time to detect and prove incorrectness, thus significantly reducing the challenge period."]}),"\n",(0,t.jsxs)(i.p,{children:[(0,t.jsx)(i.strong,{children:"Protection Against Malicious Behavior"}),": In interactive fraud-proof systems, the challenged party might attempt to interfere with the challenge progress, such as launching a DoS attack on L1 to prevent challengers from interacting with L1 and submitting proofs.\nWith RVP, challengers only need to trigger the challenge. Once the challenge is initiated, the sequencer has no opportunity to interfere. The sequencer must then prove the correctness of its submission through the ZK-proof. This ensures that the normal challenge process is not affected by malicious behavior, further shortening the challenge period."]}),"\n",(0,t.jsx)(i.h4,{id:"key-benefits-of-rvp-in-reducing-the-challenge-period",children:"Key Benefits of RVP in Reducing the Challenge Period"}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.strong,{children:"Efficiency"}),": The single interaction required for RVP simplifies the challenge process, reducing the time needed for resolution."]}),"\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.strong,{children:"Security"}),": By relying on ZK-proofs, RVP provides a robust mechanism to validate state changes without lengthy interactions."]}),"\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.strong,{children:"Cost-Effectiveness"}),": The reduction in the number of interactions lowers the gas costs associated with challenge processes on L1."]}),"\n"]}),"\n",(0,t.jsx)(i.p,{children:"By addressing these factors, RVP effectively shortens the challenge period from the traditional 7 days to just 1-3 days, offering a more efficient and secure solution for optimistic rollups."}),"\n",(0,t.jsx)(i.h3,{id:"why-is-the-operating-cost-lower-for-l2-based-on-rvp",children:"Why is the Operating Cost Lower for L2 Based on RVP?"}),"\n",(0,t.jsx)(i.h4,{id:"compression-of-transactions",children:"Compression of Transactions"}),"\n",(0,t.jsx)(i.p,{children:"In ZK-rollups, the validity of each transaction is confirmed through a submitted ZK-proof, which eliminates the need to include extensive transaction details. For example, the length of an Ethereum transaction is approximately 110 bytes, with the signature occupying around 68 bytes. In optimistic rollups, because transactions need to be replayed on L1, these signatures must be included to ensure validity. This increases the cost.\nHowever, ZK-rollups only need to retain basic transaction information because the validity proof covers the entire batch. This compression capability reduces the amount of data that needs to be submitted to L1, significantly lowering costs."}),"\n",(0,t.jsx)(i.h4,{id:"efficient-data-submission",children:"Efficient Data Submission"}),"\n",(0,t.jsx)(i.p,{children:"RVP utilizes ZK-proofs to validate transactions, adopting the ZK-rollup advantage of transaction compression during batch data submission. This reduces the overall data volume and associated costs. Additionally, when there are no challenges, the sequencer does not incur the cost of generating and submitting ZK-proofs, further lowering operational expenses."}),"\n",(0,t.jsx)(i.h4,{id:"comparison-with-existing-solutions",children:"Comparison with Existing Solutions"}),"\n",(0,t.jsx)(i.p,{children:"The design of RVP ensures that the cost of rollup operations is lower than that of both existing optimistic rollups and traditional ZK-rollups. This efficiency is achieved by:"}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"Reducing the need for detailed transaction replays on L1."}),"\n",(0,t.jsx)(i.li,{children:"Leveraging ZK-proofs only when necessary, minimizing unnecessary proof generation costs."}),"\n"]}),"\n",(0,t.jsx)(i.h3,{id:"rvp-is-friendly-to-challengers",children:"RVP is Friendly to Challengers"}),"\n",(0,t.jsx)(i.p,{children:"The core of RVP is the use of validity proofs to ultimately validate challenged data. This benefits challengers in the following ways:"}),"\n",(0,t.jsxs)(i.ol,{children:["\n",(0,t.jsx)(i.li,{children:(0,t.jsx)(i.strong,{children:"Simplified Challenge Process:"})}),"\n"]}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"In RVP, the sequencer is responsible for generating and verifying proofs. Challengers only need to initiate a challenge through staking, reducing the complexity and burden on challengers."}),"\n",(0,t.jsx)(i.li,{children:"This contrasts with traditional fraud proofs, where challengers must interact multiple times with the sequencer, making the process cumbersome and complex."}),"\n"]}),"\n",(0,t.jsxs)(i.ol,{start:"2",children:["\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.strong,{children:"Lower Threshold for Challengers"}),":"]}),"\n"]}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"In many Layer 2 projects, sequencers have a high incentive to act maliciously due to potential high returns. Conversely, challengers typically see lower direct benefits, leading to a lack of motivation to challenge fraudulent transactions."}),"\n",(0,t.jsx)(i.li,{children:"RVP lowers the threshold for challengers by shifting the responsibility of proof generation to the sequencers, thus increasing the likelihood of detecting and correcting fraudulent behavior."}),"\n"]}),"\n",(0,t.jsxs)(i.ol,{start:"3",children:["\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.strong,{children:"Mitigating Malicious Challenges"}),":"]}),"\n"]}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"While there is a risk of challengers initiating unnecessary challenges to increase costs for sequencers, RVP mitigates this by requiring challengers to compensate sequencers for the costs incurred if a challenge is unsuccessful."}),"\n",(0,t.jsx)(i.li,{children:"This mechanism discourages frivolous challenges and ensures that only legitimate disputes are raised."}),"\n"]}),"\n",(0,t.jsx)(i.p,{children:"By adopting these strategies, RVP ensures a fairer and more efficient process for validating Layer 2 transactions, ultimately lowering operating costs and enhancing the security and integrity of the network."}),"\n",(0,t.jsx)(i.h3,{id:"why-do-sequencers-have-to-take-on-the-responsibility-of-submitting-zk-proofs",children:"Why do sequencers have to take on the responsibility of submitting ZK-proofs?\u200b"}),"\n",(0,t.jsx)(i.p,{children:"Some proposals have suggested that challengers could demonstrate the falsehood of a sequencer's submission by providing their own submission and corresponding ZK-proof. The two submissions could then be compared to identify any fraudulent activity by the sequencer. However, there are significant concerns with this approach:"}),"\n",(0,t.jsx)(i.p,{children:"Challengers would need to generate ZK-proofs using the transactions provided by the sequencer. If the sequencer submits invalid transactions, challengers cannot create ZK-proofs that can be authenticated on Layer 1 (L1). Therefore, it is more effective for sequencers to prove the correctness of their submissions. This approach ensures that the entity responsible for the transactions verifies their accuracy, maintaining the integrity of the system.."}),"\n",(0,t.jsx)(i.h3,{id:"why-not-simply-employ-zk-rollups",children:"Why Not Simply Employ ZK-Rollups?"}),"\n",(0,t.jsx)(i.p,{children:"While verifying the validity of every state submission by the sequencer through numerous cryptographic calculations, as seen in current ZK-rollups, theoretically offers higher security, this approach presents several challenges:"}),"\n",(0,t.jsx)(i.h4,{id:"the-cost-of-zk-rollup",children:"The Cost of ZK-Rollup"}),"\n",(0,t.jsxs)(i.p,{children:["Currently, projects such as zkSync and Polygon zkEVM have launched on the mainnet, showing that generating and verifying ZK-proofs is no longer the most pressing issue. However, these ZK-proofs still face cost and efficiency constraints. For instance, the average transaction cost on zkSync Era ranges from ",(0,t.jsxs)(i.span,{className:"katex",children:[(0,t.jsx)(i.span,{className:"katex-mathml",children:(0,t.jsx)(i.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,t.jsxs)(i.semantics,{children:[(0,t.jsxs)(i.mrow,{children:[(0,t.jsx)(i.mn,{children:"0.51"}),(0,t.jsx)(i.mi,{children:"t"}),(0,t.jsx)(i.mi,{children:"o"}),(0,t.jsx)(i.mi,{children:"a"}),(0,t.jsx)(i.mi,{children:"s"}),(0,t.jsx)(i.mi,{children:"h"}),(0,t.jsx)(i.mi,{children:"i"}),(0,t.jsx)(i.mi,{children:"g"}),(0,t.jsx)(i.mi,{children:"h"}),(0,t.jsx)(i.mi,{children:"a"}),(0,t.jsx)(i.mi,{children:"s"})]}),(0,t.jsx)(i.annotation,{encoding:"application/x-tex",children:"0.51 to as high as "})]})})}),(0,t.jsx)(i.span,{className:"katex-html","aria-hidden":"true",children:(0,t.jsxs)(i.span,{className:"base",children:[(0,t.jsx)(i.span,{className:"strut",style:{height:"0.8889em",verticalAlign:"-0.1944em"}}),(0,t.jsx)(i.span,{className:"mord",children:"0.51"}),(0,t.jsx)(i.span,{className:"mord mathnormal",children:"t"}),(0,t.jsx)(i.span,{className:"mord mathnormal",children:"o"}),(0,t.jsx)(i.span,{className:"mord mathnormal",children:"a"}),(0,t.jsx)(i.span,{className:"mord mathnormal",children:"s"}),(0,t.jsx)(i.span,{className:"mord mathnormal",children:"hi"}),(0,t.jsx)(i.span,{className:"mord mathnormal",style:{marginRight:"0.03588em"},children:"g"}),(0,t.jsx)(i.span,{className:"mord mathnormal",children:"ha"}),(0,t.jsx)(i.span,{className:"mord mathnormal",children:"s"})]})})]}),"310, depending on L1 gas fees. This is significantly more expensive than the transaction costs of optimistic rollup projects like Arbitrum and Optimism. In contrast, with RVP, the high cost is avoided during normal network operation by only compressing transaction data using ZK-proofs when challenged. Normal operation incurs minimal costs, maintaining efficiency and affordability."]}),"\n",(0,t.jsx)(i.h4,{id:"block-finalization-time-in-zk-rollups",children:"Block Finalization Time in ZK-Rollups"}),"\n",(0,t.jsx)(i.p,{children:"Theoretically, ZK-rollups should have no withdrawal period because the entire L2 state transition verification process through ZK-proof should be completed in minutes or even seconds. However, the practical reality is different. Due to technical limitations, the time required for final verification of ZK-proofs on L1 is much slower than expected. For example, zkSync Era takes about 20-24 hours for L2 blocks to be finalized, which is not significantly different from the optimized withdrawal periods of optimistic rollups."}),"\n",(0,t.jsx)(i.h4,{id:"seamless-transition-with-rvp-based-rollups",children:"Seamless Transition with RVP-Based Rollups"}),"\n",(0,t.jsx)(i.p,{children:"L2 scaling solutions incorporating RVP technology can be designed using the ZK-rollup framework, allowing for an easy transition from RVP-based L2 to standard ZK-rollup L2 as ZK technology matures. The primary adjustment needed is changing the sequencer's ZK-proof submission methods from responsive to active. Thus, RVP-based systems can seamlessly adopt full ZK-rollup benefits in the future."})]})}function d(e={}){const{wrapper:i}={...(0,s.R)(),...e.components};return i?(0,t.jsx)(i,{...e,children:(0,t.jsx)(h,{...e})}):h(e)}},2566:(e,i,n)=>{n.d(i,{A:()=>t});const t=n.p+"assets/images/compare3-4c06621b13d69cb38eec6f6ba9ee49b9.png"},81:(e,i,n)=>{n.d(i,{A:()=>t});const t=n.p+"assets/images/rvpbanner1-6a61bf43aee91ff017a046a76e3c85d8.jpg"},2333:(e,i,n)=>{n.d(i,{R:()=>r,x:()=>a});var t=n(9474);const s={},o=t.createContext(s);function r(e){const i=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function a(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),t.createElement(o.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/578ca001.54e90cd3.js b/build/assets/js/578ca001.54e90cd3.js new file mode 100644 index 000000000..7c559a3f6 --- /dev/null +++ b/build/assets/js/578ca001.54e90cd3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[6142],{761:(e,i,s)=>{s.r(i),s.d(i,{assets:()=>l,contentTitle:()=>o,default:()=>d,frontMatter:()=>r,metadata:()=>a,toc:()=>c});var t=s(6070),n=s(1582);const r={title:"Optimistic zkEVM",lang:"en-US",keywords:["morph","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},o=void 0,a={id:"how-morph-works/optimistic-zkevm",title:"Optimistic zkEVM",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/how-morph-works/3-optimistic-zkevm.md",sourceDirName:"how-morph-works",slug:"/how-morph-works/optimistic-zkevm",permalink:"/docs/how-morph-works/optimistic-zkevm",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/how-morph-works/3-optimistic-zkevm.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{title:"Optimistic zkEVM",lang:"en-US",keywords:["morph","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"Morph Modular Design",permalink:"/docs/how-morph-works/morph-modular-design"},next:{title:"Morph's Decentralized Sequencer Network",permalink:"/docs/how-morph-works/decentralized-sequencers/morph-decentralized-sequencer-network"}},l={},c=[{value:"Introduction to State Verification",id:"introduction-to-state-verification",level:2},{value:"The Problem with Optimistic Rollups",id:"the-problem-with-optimistic-rollups",level:2},{value:"What is RVP?\u200b",id:"what-is-rvp",level:2},{value:"Advantages of RVP Compared to Interactive Fraud Proofs",id:"advantages-of-rvp-compared-to-interactive-fraud-proofs",level:3},{value:"How Can RVP Shorten the Challenge Period of an Optimistic Rollup?",id:"how-can-rvp-shorten-the-challenge-period-of-an-optimistic-rollup",level:3},{value:"The Need for a Challenge Period",id:"the-need-for-a-challenge-period",level:4},{value:"Solutions to Shorten the Challenge Period",id:"solutions-to-shorten-the-challenge-period",level:4},{value:"Key Benefits of RVP in Reducing the Challenge Period",id:"key-benefits-of-rvp-in-reducing-the-challenge-period",level:4},{value:"Why is the Operating Cost Lower for L2 Based on RVP?",id:"why-is-the-operating-cost-lower-for-l2-based-on-rvp",level:3},{value:"Compression of Transactions",id:"compression-of-transactions",level:4},{value:"Efficient Data Submission",id:"efficient-data-submission",level:4},{value:"Comparison with Existing Solutions",id:"comparison-with-existing-solutions",level:4},{value:"RVP is Friendly to Challengers",id:"rvp-is-friendly-to-challengers",level:3},{value:"Why do sequencers have to take on the responsibility of submitting ZK-proofs?\u200b",id:"why-do-sequencers-have-to-take-on-the-responsibility-of-submitting-zk-proofs",level:3},{value:"Why Not Simply Employ ZK-Rollups?",id:"why-not-simply-employ-zk-rollups",level:3},{value:"The Cost of ZK-Rollup",id:"the-cost-of-zk-rollup",level:4},{value:"Block Finalization Time in ZK-Rollups",id:"block-finalization-time-in-zk-rollups",level:4},{value:"Seamless Transition with RVP-Based Rollups",id:"seamless-transition-with-rvp-based-rollups",level:4},{value:"SP1 on Morph Mainnet",id:"sp1-on-morph-mainnet",level:3},{value:"Morph Challengers Address List",id:"morph-challengers-address-list",level:3},{value:"Challenger Address List",id:"challenger-address-list",level:4}];function h(e){const i={a:"a",annotation:"annotation",h2:"h2",h3:"h3",h4:"h4",img:"img",li:"li",math:"math",mi:"mi",mn:"mn",mrow:"mrow",ol:"ol",p:"p",semantics:"semantics",span:"span",strong:"strong",ul:"ul",...(0,n.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(i.p,{children:(0,t.jsx)(i.img,{alt:"RVP",src:s(8453).A+"",width:"4000",height:"2000"})}),"\n",(0,t.jsx)(i.h2,{id:"introduction-to-state-verification",children:"Introduction to State Verification"}),"\n",(0,t.jsx)(i.p,{children:"Layer 2 state verification traditionally falls into two categories: fraud proofs and validity proofs. Morph introduces a new verification method called Responsive Validity Proof (RVP), combining the benefits of both approaches to address their limitations. Fraud proofs, while effective, suffer from capital inefficiency and low security assumptions. Additionally, no Optimistic Rollup (OP-Rollup) has fully implemented a permissionless fraud-proof challenge mechanism. Conversely, validity proofs offer high security but face practical issues with cost and efficiency that hinder Rollup scalability."}),"\n",(0,t.jsx)(i.h2,{id:"the-problem-with-optimistic-rollups",children:"The Problem with Optimistic Rollups"}),"\n",(0,t.jsx)(i.p,{children:"In this model, Layer 2 (L2) optimistically assumes that the state changes submitted by the sequencer are valid without actively verifying their authenticity. Instead, a challenge period is introduced before the state changes are confirmed on Layer 1 (L1). During this period, external challengers verify the sequencer's submissions based on their own synchronized network status. If they find discrepancies, challengers can trigger a challenge process on L1 to prevent incorrect states from being confirmed."}),"\n",(0,t.jsxs)(i.p,{children:[(0,t.jsx)(i.strong,{children:"Challenge Mechanism"}),": Although all optimistic rollups claim to implement fraud proofs, only very a few had successfully deployed them on the mainnet. Furthermore, the challengers are often limited to several whitelisted addresses. Fraud proofs in current optimistic rollup projects can be categorized into two types:"]}),"\n",(0,t.jsxs)(i.p,{children:[(0,t.jsx)(i.strong,{children:"Non-Interactive Fraud Proofs"}),": When a new state submitted by the sequencer is challenged, L1 re-executes all corresponding L2 transactions to generate a valid state for comparison with the state submitted by the sequencer. This process incurs significant gas costs and may lead to discrepancies between L2 and L1, as some transactions might produce different outcomes on L2 compared to L1, or L1 might not be able to execute certain L2 transactions. Optimism (OP) once used this approach but abandoned it due to these issues."]}),"\n",(0,t.jsxs)(i.p,{children:[(0,t.jsx)(i.strong,{children:"Interactive Fraud Proofs"}),": To address the issues of non-interactive fraud proofs, multi-round interactive fraud proofs were introduced. This method involves determining the specific instruction execution that caused the incorrectness through multiple rounds of interaction between the sequencer and the challenger, then confirming fraud by executing the corresponding instructions on L1. This approach reduces computational costs and diminishes the issue of incongruent outcomes between L1 and L2. However, it introduces complexities, such as:"]}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"Higher implementation difficulty"}),"\n",(0,t.jsx)(i.li,{children:"Longer challenge periods (sufficient time must be reserved for complex interactions)"}),"\n",(0,t.jsx)(i.li,{children:"Increased standards, impacting challengers' motivation"}),"\n"]}),"\n",(0,t.jsx)(i.p,{children:"Currently, only several OP Rollups have implemented a complete interactive fraud proof mechanism on its mainnet among optimistic rollup projects. In contrast, several ZK-rollup projects have already launched on the mainnet."}),"\n",(0,t.jsx)(i.p,{children:"These complexities highlight the need for improvement in existing optimistic rollup models. Hence, Morph introduces the Responsive Validity Proof (RVP)."}),"\n",(0,t.jsx)(i.h2,{id:"what-is-rvp",children:"What is RVP?\u200b"}),"\n",(0,t.jsx)(i.p,{children:(0,t.jsx)(i.img,{alt:"RVP",src:s(5514).A+"",width:"1770",height:"996"})}),"\n",(0,t.jsx)(i.p,{children:"Responsive Validity Proof (RVP) integrates ZK-based validity proofs into the optimistic rollup framework. The process is as follows:"}),"\n",(0,t.jsx)(i.p,{children:"When challengers detect that the sequencer has submitted incorrect data, they initiate a challenge request to the sequencer on Layer 1 (L1). The sequencer must then generate the corresponding Zero-Knowledge (ZK) proof within a specified time (challenge period) and pass the verification of the L1 contract. If the verification passes, the challenge fails; otherwise, the challenge succeeds. This process combines the benefits of optimistic rollups and ZK-rollups, providing a balanced approach to security and efficiency."}),"\n",(0,t.jsx)(i.h3,{id:"advantages-of-rvp-compared-to-interactive-fraud-proofs",children:"Advantages of RVP Compared to Interactive Fraud Proofs"}),"\n",(0,t.jsxs)(i.ol,{children:["\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.strong,{children:"Shorter Challenge Period"}),": RVP can reduce the challenge period from the typical 7 days to just 1-3 days, improving overall efficiency and user experience. Right now the Morph mainnet has 48 hrs (2 days) challenge window."]}),"\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.strong,{children:"Reduced L2 Submission Costs"}),": By using validity proofs, Layer 2 (L2) does not need to include most transaction bytes, significantly lowering submission costs."]}),"\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.strong,{children:"Improved Challenger Experience"}),": With RVP, challengers only need to initiate the challenge. The sequencer must prove their correctness by generating and verifying the corresponding ZK-proof, simplifying the challenger's responsibilities."]}),"\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.strong,{children:"Seamless Transition to ZK-Rollup"}),": The architectural design of RVP allows for an easy transition to a complete ZK-rollup. The primary change required is adjusting the sequencer's ZK-proof submission methods from responsive to active."]}),"\n"]}),"\n",(0,t.jsx)(i.p,{children:"RVP enhances the optimistic rollup model by incorporating ZK-proofs, offering a more efficient, cost-effective, and secure solution. It addresses the limitations of traditional fraud proofs and paves the way for a seamless transition to full ZK-rollup implementations in the future."}),"\n",(0,t.jsx)(i.h3,{id:"how-can-rvp-shorten-the-challenge-period-of-an-optimistic-rollup",children:"How Can RVP Shorten the Challenge Period of an Optimistic Rollup?"}),"\n",(0,t.jsx)(i.h4,{id:"the-need-for-a-challenge-period",children:"The Need for a Challenge Period"}),"\n",(0,t.jsx)(i.p,{children:"Optimistic rollups incorporate a challenge period (or withdrawal period) to ensure that any malicious submissions by the sequencer can be identified and contested. This period provides sufficient time for challengers to verify transactions, conduct fraud proofs, and complete the challenge process, thereby ensuring that only valid state changes are confirmed on Layer 1 (L1).\nTwo main factors influence the length of the challenge period:"}),"\n",(0,t.jsxs)(i.ol,{children:["\n",(0,t.jsx)(i.li,{children:"Completion Time: The time required for both parties to complete the challenge process."}),"\n",(0,t.jsx)(i.li,{children:"Mitigating Malicious Behavior: Ensuring that there is enough time to address any attempts by sequencers to maliciously block the challenger\u2019s transactions on L1."}),"\n"]}),"\n",(0,t.jsx)(i.h4,{id:"solutions-to-shorten-the-challenge-period",children:"Solutions to Shorten the Challenge Period"}),"\n",(0,t.jsxs)(i.p,{children:[(0,t.jsx)(i.strong,{children:"Concise and Direct Challenge Process:"})," For multi-round interactive fraud proofs, the entire challenge process might require several rounds of interaction, each demanding significant time. For example, if the process requires 10 rounds, at least 20 blocks of time are needed to complete the challenge, considering the back-and-forth responses.\nIn contrast, RVP simplifies the challenge process by requiring only one interaction: the sequencer uploads the ZK-proof of the batch, which is then verified on L1. This streamlined process addresses the main problem of whether challengers have enough time to detect and prove incorrectness, thus significantly reducing the challenge period."]}),"\n",(0,t.jsxs)(i.p,{children:[(0,t.jsx)(i.strong,{children:"Protection Against Malicious Behavior"}),": In interactive fraud-proof systems, the challenged party might attempt to interfere with the challenge progress, such as launching a DoS attack on L1 to prevent challengers from interacting with L1 and submitting proofs.\nWith RVP, challengers only need to trigger the challenge. Once the challenge is initiated, the sequencer has no opportunity to interfere. The sequencer must then prove the correctness of its submission through the ZK-proof. This ensures that the normal challenge process is not affected by malicious behavior, further shortening the challenge period."]}),"\n",(0,t.jsx)(i.h4,{id:"key-benefits-of-rvp-in-reducing-the-challenge-period",children:"Key Benefits of RVP in Reducing the Challenge Period"}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.strong,{children:"Efficiency"}),": The single interaction required for RVP simplifies the challenge process, reducing the time needed for resolution."]}),"\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.strong,{children:"Security"}),": By relying on ZK-proofs, RVP provides a robust mechanism to validate state changes without lengthy interactions."]}),"\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.strong,{children:"Cost-Effectiveness"}),": The reduction in the number of interactions lowers the gas costs associated with challenge processes on L1."]}),"\n"]}),"\n",(0,t.jsx)(i.p,{children:"By addressing these factors, RVP effectively shortens the challenge period from the traditional 7 days to just 1-3 days, offering a more efficient and secure solution for optimistic rollups."}),"\n",(0,t.jsx)(i.h3,{id:"why-is-the-operating-cost-lower-for-l2-based-on-rvp",children:"Why is the Operating Cost Lower for L2 Based on RVP?"}),"\n",(0,t.jsx)(i.h4,{id:"compression-of-transactions",children:"Compression of Transactions"}),"\n",(0,t.jsx)(i.p,{children:"In ZK-rollups, the validity of each transaction is confirmed through a submitted ZK-proof, which eliminates the need to include extensive transaction details. For example, the length of an Ethereum transaction is approximately 110 bytes, with the signature occupying around 68 bytes. In optimistic rollups, because transactions need to be replayed on L1, these signatures must be included to ensure validity. This increases the cost.\nHowever, ZK-rollups only need to retain basic transaction information because the validity proof covers the entire batch. This compression capability reduces the amount of data that needs to be submitted to L1, significantly lowering costs."}),"\n",(0,t.jsx)(i.h4,{id:"efficient-data-submission",children:"Efficient Data Submission"}),"\n",(0,t.jsx)(i.p,{children:"RVP utilizes ZK-proofs to validate transactions, adopting the ZK-rollup advantage of transaction compression during batch data submission. This reduces the overall data volume and associated costs. Additionally, when there are no challenges, the sequencer does not incur the cost of generating and submitting ZK-proofs, further lowering operational expenses."}),"\n",(0,t.jsx)(i.h4,{id:"comparison-with-existing-solutions",children:"Comparison with Existing Solutions"}),"\n",(0,t.jsx)(i.p,{children:"The design of RVP ensures that the cost of rollup operations is lower than that of both existing optimistic rollups and traditional ZK-rollups. This efficiency is achieved by:"}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"Reducing the need for detailed transaction replays on L1."}),"\n",(0,t.jsx)(i.li,{children:"Leveraging ZK-proofs only when necessary, minimizing unnecessary proof generation costs."}),"\n"]}),"\n",(0,t.jsx)(i.h3,{id:"rvp-is-friendly-to-challengers",children:"RVP is Friendly to Challengers"}),"\n",(0,t.jsx)(i.p,{children:"The core of RVP is the use of validity proofs to ultimately validate challenged data. This benefits challengers in the following ways:"}),"\n",(0,t.jsxs)(i.ol,{children:["\n",(0,t.jsx)(i.li,{children:(0,t.jsx)(i.strong,{children:"Simplified Challenge Process:"})}),"\n"]}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"In RVP, the sequencer is responsible for generating and verifying proofs. Challengers only need to initiate a challenge through staking, reducing the complexity and burden on challengers."}),"\n",(0,t.jsx)(i.li,{children:"This contrasts with traditional fraud proofs, where challengers must interact multiple times with the sequencer, making the process cumbersome and complex."}),"\n"]}),"\n",(0,t.jsxs)(i.ol,{start:"2",children:["\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.strong,{children:"Lower Threshold for Challengers"}),":"]}),"\n"]}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"In many Layer 2 projects, sequencers have a high incentive to act maliciously due to potential high returns. Conversely, challengers typically see lower direct benefits, leading to a lack of motivation to challenge fraudulent transactions."}),"\n",(0,t.jsx)(i.li,{children:"RVP lowers the threshold for challengers by shifting the responsibility of proof generation to the sequencers, thus increasing the likelihood of detecting and correcting fraudulent behavior."}),"\n"]}),"\n",(0,t.jsxs)(i.ol,{start:"3",children:["\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.strong,{children:"Mitigating Malicious Challenges"}),":"]}),"\n"]}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"While there is a risk of challengers initiating unnecessary challenges to increase costs for sequencers, RVP mitigates this by requiring challengers to compensate sequencers for the costs incurred if a challenge is unsuccessful."}),"\n",(0,t.jsx)(i.li,{children:"This mechanism discourages frivolous challenges and ensures that only legitimate disputes are raised."}),"\n"]}),"\n",(0,t.jsx)(i.p,{children:"By adopting these strategies, RVP ensures a fairer and more efficient process for validating Layer 2 transactions, ultimately lowering operating costs and enhancing the security and integrity of the network."}),"\n",(0,t.jsx)(i.h3,{id:"why-do-sequencers-have-to-take-on-the-responsibility-of-submitting-zk-proofs",children:"Why do sequencers have to take on the responsibility of submitting ZK-proofs?\u200b"}),"\n",(0,t.jsx)(i.p,{children:"Some proposals have suggested that challengers could demonstrate the falsehood of a sequencer's submission by providing their own submission and corresponding ZK-proof. The two submissions could then be compared to identify any fraudulent activity by the sequencer. However, there are significant concerns with this approach:"}),"\n",(0,t.jsx)(i.p,{children:"Challengers would need to generate ZK-proofs using the transactions provided by the sequencer. If the sequencer submits invalid transactions, challengers cannot create ZK-proofs that can be authenticated on Layer 1 (L1). Therefore, it is more effective for sequencers to prove the correctness of their submissions. This approach ensures that the entity responsible for the transactions verifies their accuracy, maintaining the integrity of the system.."}),"\n",(0,t.jsx)(i.h3,{id:"why-not-simply-employ-zk-rollups",children:"Why Not Simply Employ ZK-Rollups?"}),"\n",(0,t.jsx)(i.p,{children:"While verifying the validity of every state submission by the sequencer through numerous cryptographic calculations, as seen in current ZK-rollups, theoretically offers higher security, this approach presents several challenges:"}),"\n",(0,t.jsx)(i.h4,{id:"the-cost-of-zk-rollup",children:"The Cost of ZK-Rollup"}),"\n",(0,t.jsxs)(i.p,{children:["Currently, projects such as zkSync and Polygon zkEVM have launched on the mainnet, showing that generating and verifying ZK-proofs is no longer the most pressing issue. However, these ZK-proofs still face cost and efficiency constraints. For instance, the average transaction cost on zkSync Era ranges from ",(0,t.jsxs)(i.span,{className:"katex",children:[(0,t.jsx)(i.span,{className:"katex-mathml",children:(0,t.jsx)(i.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,t.jsxs)(i.semantics,{children:[(0,t.jsxs)(i.mrow,{children:[(0,t.jsx)(i.mn,{children:"0.51"}),(0,t.jsx)(i.mi,{children:"t"}),(0,t.jsx)(i.mi,{children:"o"}),(0,t.jsx)(i.mi,{children:"a"}),(0,t.jsx)(i.mi,{children:"s"}),(0,t.jsx)(i.mi,{children:"h"}),(0,t.jsx)(i.mi,{children:"i"}),(0,t.jsx)(i.mi,{children:"g"}),(0,t.jsx)(i.mi,{children:"h"}),(0,t.jsx)(i.mi,{children:"a"}),(0,t.jsx)(i.mi,{children:"s"})]}),(0,t.jsx)(i.annotation,{encoding:"application/x-tex",children:"0.51 to as high as "})]})})}),(0,t.jsx)(i.span,{className:"katex-html","aria-hidden":"true",children:(0,t.jsxs)(i.span,{className:"base",children:[(0,t.jsx)(i.span,{className:"strut",style:{height:"0.8889em",verticalAlign:"-0.1944em"}}),(0,t.jsx)(i.span,{className:"mord",children:"0.51"}),(0,t.jsx)(i.span,{className:"mord mathnormal",children:"t"}),(0,t.jsx)(i.span,{className:"mord mathnormal",children:"o"}),(0,t.jsx)(i.span,{className:"mord mathnormal",children:"a"}),(0,t.jsx)(i.span,{className:"mord mathnormal",children:"s"}),(0,t.jsx)(i.span,{className:"mord mathnormal",children:"hi"}),(0,t.jsx)(i.span,{className:"mord mathnormal",style:{marginRight:"0.03588em"},children:"g"}),(0,t.jsx)(i.span,{className:"mord mathnormal",children:"ha"}),(0,t.jsx)(i.span,{className:"mord mathnormal",children:"s"})]})})]}),"310, depending on L1 gas fees. This is significantly more expensive than the transaction costs of optimistic rollup projects like Arbitrum and Optimism. In contrast, with RVP, the high cost is avoided during normal network operation by only compressing transaction data using ZK-proofs when challenged. Normal operation incurs minimal costs, maintaining efficiency and affordability."]}),"\n",(0,t.jsx)(i.h4,{id:"block-finalization-time-in-zk-rollups",children:"Block Finalization Time in ZK-Rollups"}),"\n",(0,t.jsx)(i.p,{children:"Theoretically, ZK-rollups should have no withdrawal period because the entire L2 state transition verification process through ZK-proof should be completed in minutes or even seconds. However, the practical reality is different. Due to technical limitations, the time required for final verification of ZK-proofs on L1 is much slower than expected. For example, zkSync Era takes about 20-24 hours for L2 blocks to be finalized, which is not significantly different from the optimized withdrawal periods of optimistic rollups."}),"\n",(0,t.jsx)(i.h4,{id:"seamless-transition-with-rvp-based-rollups",children:"Seamless Transition with RVP-Based Rollups"}),"\n",(0,t.jsx)(i.p,{children:"L2 scaling solutions incorporating RVP technology can be designed using the ZK-rollup framework, allowing for an easy transition from RVP-based L2 to standard ZK-rollup L2 as ZK technology matures. The primary adjustment needed is changing the sequencer's ZK-proof submission methods from responsive to active. Thus, RVP-based systems can seamlessly adopt full ZK-rollup benefits in the future."}),"\n",(0,t.jsx)(i.h3,{id:"sp1-on-morph-mainnet",children:"SP1 on Morph Mainnet"}),"\n",(0,t.jsx)(i.p,{children:"Morph\u2019s Responsive Validity Proof (RVP) system morphed into the optimal design with our mainnet launch, enhanced by SP1."}),"\n",(0,t.jsx)(i.p,{children:"Succinct, uniquely enables Morph\u2019s RVP with their blazing fast zkVM and excellent developer experience. It represents a generational shift in how zkEVMs are built, custom circuits are a relic of that past. This upgrade refines RVP's capabilities, pushing the boundaries of scalability and security in blockchain applications."}),"\n",(0,t.jsx)(i.p,{children:"Our RVP system with SP1 is:"}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"Uses a generic, more developer-friendly Rust-based implementation"}),"\n",(0,t.jsx)(i.li,{children:"Generates proofs orders of magnitudes faster with SP1\u2019s Prover Network"}),"\n",(0,t.jsx)(i.li,{children:"Handles unlimited transactions per block (previously capped at 100)"}),"\n"]}),"\n",(0,t.jsx)(i.p,{children:"For users, this means:"}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"Improved security and smoother user experience (thoroughly audited codes with faster challenge resolution and 2-day settlement)"}),"\n",(0,t.jsx)(i.li,{children:"Lower costs (more efficient proof generation for off-chain computation)"}),"\n",(0,t.jsx)(i.li,{children:"More scalable (no more transaction caps)"}),"\n"]}),"\n",(0,t.jsx)(i.h3,{id:"morph-challengers-address-list",children:"Morph Challengers Address List"}),"\n",(0,t.jsx)(i.p,{children:"As per our commitment to the decentralization of the challenging process, here is the list of all challenger addresses."}),"\n",(0,t.jsx)(i.p,{children:"These addresses are responsible for monitoring the L2 state changes and responding to any malicious activities from the sequencers."}),"\n",(0,t.jsx)(i.h4,{id:"challenger-address-list",children:"Challenger Address List"}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.a,{href:"https://etherscan.io/address/0x77b29534738e3f0f297d36635d7884965c7c8ce1",children:"0x77b29534738e3f0f297d36635d7884965c7c8ce1"})," - ",(0,t.jsx)(i.a,{href:"https://morphl2.io",children:"Morph"})]}),"\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.a,{href:"https://etherscan.io/address/0x95417708f67f4a5df1a447efe40c6c74e38ab832",children:"0x95417708f67f4a5df1a447efe40c6c74e38ab832"})," - ",(0,t.jsx)(i.a,{href:"https://morphl2.io",children:"Morph"})]}),"\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.a,{href:"https://etherscan.io/address/0xd11f9c4f5d9b1fec2d14581d3674066442b68772",children:"0xd11f9c4f5d9b1fec2d14581d3674066442b68772"})," - ",(0,t.jsx)(i.a,{href:"https://morphl2.io",children:"Morph"})]}),"\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.a,{href:"https://etherscan.io/address/0x323a78c1c910b282de98a557d735628a02e00983",children:"0x323a78c1c910b282de98a557d735628a02e00983"})," - ",(0,t.jsx)(i.a,{href:"https://morphl2.io",children:"Morph"})]}),"\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.a,{href:"https://etherscan.io/address/0x74204e3801e9394848abdbad6f378d0b11e9a091",children:"0x74204e3801e9394848abdbad6f378d0b11e9a091"})," - ",(0,t.jsx)(i.a,{href:"https://morphl2.io",children:"Morph"})]}),"\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.a,{href:"https://etherscan.io/address/0xbd9f4fdc48a9a8c7ea1075cfdf4f3bd365d50bab",children:"0xbd9f4fdc48a9a8c7ea1075cfdf4f3bd365d50bab"})," - ",(0,t.jsx)(i.a,{href:"https://morphl2.io",children:"Morph"})]}),"\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.a,{href:"https://etherscan.io/address/0x9ac29d4f41a139d9b7be32c2906df9f86fa51b2b",children:"0x9ac29d4f41a139d9b7be32c2906df9f86fa51b2b"})," - ",(0,t.jsx)(i.a,{href:"https://morphl2.io",children:"Morph"})]}),"\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.a,{href:"https://etherscan.io/address/0xbfd62b7915da8c19c701fd13237b555ad38c4b4c",children:"0xbfd62b7915da8c19c701fd13237b555ad38c4b4c"})," - ",(0,t.jsx)(i.a,{href:"https://morphl2.io",children:"Morph"})]}),"\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.a,{href:"https://etherscan.io/address/0xca00091a35d0b546a15d000f8bceda56255ee4d0",children:"0xca00091a35d0b546a15d000f8bceda56255ee4d0"})," - ",(0,t.jsx)(i.a,{href:"https://bitget.com",children:"Bitget"})]}),"\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.a,{href:"https://etherscan.io/address/0x6d7cc6c62cd6ccdac482e82aa7a3763926e93854",children:"0x6d7cc6c62cd6ccdac482e82aa7a3763926e93854"})," - ",(0,t.jsx)(i.a,{href:"https://bitget.com",children:"Bitget"})]}),"\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.a,{href:"https://etherscan.io/address/0x8c0cffcbab44c7ab6e96eb607c49188de99a17cd",children:"0x8c0cffcbab44c7ab6e96eb607c49188de99a17cd"})," - ",(0,t.jsx)(i.a,{href:"https://bitget.com",children:"Bitget"})]}),"\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.a,{href:"https://etherscan.io/address/0xc4db900f76293042349448d1ba30f71518325bb3",children:"0xc4db900f76293042349448d1ba30f71518325bb3"})," - ",(0,t.jsx)(i.a,{href:"https://bitget.com",children:"Bitget"})]}),"\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.a,{href:"https://etherscan.io/address/0xf2ff0509520faf35b511074466a509e00d73c307",children:"0xf2ff0509520faf35b511074466a509e00d73c307"})," - ",(0,t.jsx)(i.a,{href:"https://bitget.com",children:"Bitget"})]}),"\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.a,{href:"https://etherscan.io/address/0xf6ee30269db1854987ca6812e1ff66c3a5f660fd",children:"0xf6ee30269db1854987ca6812e1ff66c3a5f660fd"})," - ",(0,t.jsx)(i.a,{href:"https://bitget.com",children:"Bitget"})]}),"\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.a,{href:"https://etherscan.io/address/0xf50a81c771ad3237aea2fd18e4ee8055cc4cd2b9",children:"0xf50a81c771ad3237aea2fd18e4ee8055cc4cd2b9"})," - ",(0,t.jsx)(i.a,{href:"https://bitget.com",children:"Bitget"})]}),"\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.a,{href:"https://etherscan.io/address/0x71c10870dc38e54d987c22e96ab32b46cc08564f",children:"0x71c10870dc38e54d987c22e96ab32b46cc08564f"})," - ",(0,t.jsx)(i.a,{href:"https://bitget.com",children:"Bitget"})]}),"\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.a,{href:"https://etherscan.io/address/0xb4a20d473e8c378ae742a8017dd67756a358eab6",children:"0xb4a20d473e8c378ae742a8017dd67756a358eab6"})," - ",(0,t.jsx)(i.a,{href:"https://bitget.com",children:"Bitget"})]}),"\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.a,{href:"https://etherscan.io/address/0xe48ea86dcde15e28624e5de9d6d3738fc52b6bfe",children:"0xe48ea86dcde15e28624e5de9d6d3738fc52b6bfe"})," - ",(0,t.jsx)(i.a,{href:"https://bitget.com",children:"Bitget"})]}),"\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.a,{href:"https://etherscan.io/address/0x03fd36aed3b2597aa79bb5f543f3a0eaf9deb0fa",children:"0x03fd36aed3b2597aa79bb5f543f3a0eaf9deb0fa"})," - ",(0,t.jsx)(i.a,{href:"https://bitget.com",children:"Bitget"})]}),"\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.a,{href:"https://etherscan.io/address/0x4ee3690901157be86a33371bec1e5021a10ba47c",children:"0x4ee3690901157be86a33371bec1e5021a10ba47c"})," - ",(0,t.jsx)(i.a,{href:"https://bitget.com",children:"Bitget"})]}),"\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.a,{href:"https://etherscan.io/address/0xc8f7daef4b49c1593cc3996ab2afa8b56e00fcf8",children:"0xc8f7daef4b49c1593cc3996ab2afa8b56e00fcf8"})," - ",(0,t.jsx)(i.a,{href:"https://web3.bitget.com",children:"Bitget Wallet"})]}),"\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.a,{href:"https://etherscan.io/address/0x0092bc49078f130d27e70dbeee441e227280b97d",children:"0x0092bc49078f130d27e70dbeee441e227280b97d"})," - ",(0,t.jsx)(i.a,{href:"https://web3.bitget.com",children:"Bitget Wallet"})]}),"\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.a,{href:"https://etherscan.io/address/0xc412b4e6399f694cff21d038d225373fd6596811",children:"0xc412b4e6399f694cff21d038d225373fd6596811"})," - ",(0,t.jsx)(i.a,{href:"https://web3.bitget.com",children:"Bitget Wallet"})]}),"\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.a,{href:"https://etherscan.io/address/0x1721d3ae2d68e3dd32525400ed2a29060f1300c6",children:"0x1721d3ae2d68e3dd32525400ed2a29060f1300c6"})," - ",(0,t.jsx)(i.a,{href:"https://web3.bitget.com",children:"Bitget Wallet"})]}),"\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.a,{href:"https://etherscan.io/address/0xdf063faeb46de1b4336bc70da7175f16ab4a7272",children:"0xdf063faeb46de1b4336bc70da7175f16ab4a7272"})," - ",(0,t.jsx)(i.a,{href:"https://web3.bitget.com",children:"Bitget Wallet"})]}),"\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.a,{href:"https://etherscan.io/address/0x611e4b24e89bc524fc06f73b6fd02be3ec73d6db",children:"0x611e4b24e89bc524fc06f73b6fd02be3ec73d6db"})," - ",(0,t.jsx)(i.a,{href:"https://web3.bitget.com",children:"Bitget Wallet"})]}),"\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.a,{href:"https://etherscan.io/address/0x92c4d5d9cadd1af74080de7aa078434007f710bb",children:"0x92c4d5d9cadd1af74080de7aa078434007f710bb"})," - ",(0,t.jsx)(i.a,{href:"https://web3.bitget.com",children:"Bitget Wallet"})]}),"\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.a,{href:"https://etherscan.io/address/0x234acb24b1deea7f6c7530b8c29a6378ba21e1d0",children:"0x234acb24b1deea7f6c7530b8c29a6378ba21e1d0"})," - ",(0,t.jsx)(i.a,{href:"https://web3.bitget.com",children:"Bitget Wallet"})]}),"\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.a,{href:"https://etherscan.io/address/0x5c6e1011cd3b5d7d2937c098b8f61d6b3d1aee7e",children:"0x5c6e1011cd3b5d7d2937c098b8f61d6b3d1aee7e"})," - ",(0,t.jsx)(i.a,{href:"https://web3.bitget.com",children:"Bitget Wallet"})]}),"\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.a,{href:"https://etherscan.io/address/0x95c373754c66fef1eb2dbb6934af821c551d9738",children:"0x95c373754c66fef1eb2dbb6934af821c551d9738"})," - ",(0,t.jsx)(i.a,{href:"https://web3.bitget.com",children:"Bitget Wallet"})]}),"\n"]})]})}function d(e={}){const{wrapper:i}={...(0,n.R)(),...e.components};return i?(0,t.jsx)(i,{...e,children:(0,t.jsx)(h,{...e})}):h(e)}},5514:(e,i,s)=>{s.d(i,{A:()=>t});const t=s.p+"assets/images/compare3-4c06621b13d69cb38eec6f6ba9ee49b9.png"},8453:(e,i,s)=>{s.d(i,{A:()=>t});const t=s.p+"assets/images/rvpbanner1-6a61bf43aee91ff017a046a76e3c85d8.jpg"},1582:(e,i,s)=>{s.d(i,{R:()=>o,x:()=>a});var t=s(758);const n={},r=t.createContext(n);function o(e){const i=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function a(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:o(e.components),t.createElement(r.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/57c15217.a3848b2e.js b/build/assets/js/57c15217.beeb4523.js similarity index 94% rename from build/assets/js/57c15217.a3848b2e.js rename to build/assets/js/57c15217.beeb4523.js index 1659248da..ca2cd7b56 100644 --- a/build/assets/js/57c15217.a3848b2e.js +++ b/build/assets/js/57c15217.beeb4523.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[4766],{3877:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>d,frontMatter:()=>o,metadata:()=>a,toc:()=>c});var i=n(3274),s=n(2333);const o={title:"Rollup",lang:"en-US",keywords:["morph","ethereum","rollup"],description:"Explain how rollup process works in Morph"},r=void 0,a={id:"how-morph-works/general-protocol-design/rollup",title:"Rollup",description:"Explain how rollup process works in Morph",source:"@site/docs/how-morph-works/general-protocol-design/1-rollup.md",sourceDirName:"how-morph-works/general-protocol-design",slug:"/how-morph-works/general-protocol-design/rollup",permalink:"/docs/how-morph-works/general-protocol-design/rollup",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/how-morph-works/general-protocol-design/1-rollup.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{title:"Rollup",lang:"en-US",keywords:["morph","ethereum","rollup"],description:"Explain how rollup process works in Morph"},sidebar:"DeveloperSidebar",previous:{title:"Morph's Decentralized Sequencer Network",permalink:"/docs/how-morph-works/decentralized-sequencers/morph-decentralized-sequencer-network"},next:{title:"Communication between Morph and Ethereum",permalink:"/docs/how-morph-works/general-protocol-design/communicate-between-morph-and-ethereum"}},l={},c=[{value:"An overview of Morph Rollup Design:",id:"an-overview-of-morph-rollup-design",level:3},{value:"Constructing the Batch\u200b",id:"constructing-the-batch",level:2},{value:"Putting Multiple Batches into a Single Rollup Transaction\u200b",id:"putting-multiple-batches-into-a-single-rollup-transaction",level:2},{value:"Submitting Batch Data to the Rollup Contract\u200b",id:"submitting-batch-data-to-the-rollup-contract",level:2},{value:"Finalize the batches",id:"finalize-the-batches",level:2},{value:"What is Batch Submitter?",id:"what-is-batch-submitter",level:2},{value:"What is the relationship between Sequencers & Batch Submitters\uff1f",id:"what-is-the-relationship-between-sequencers--batch-submitters",level:2},{value:"How to decentralize the Batch Submitter\uff1f",id:"how-to-decentralize-the-batch-submitter",level:2},{value:"Submitter Rotation",id:"submitter-rotation",level:3},{value:"Timeout",id:"timeout",level:3},{value:"Penalties for Timeout",id:"penalties-for-timeout",level:3},{value:"Module Design",id:"module-design",level:2},{value:"Layer1",id:"layer1",level:3},{value:"Layer2",id:"layer2",level:3}];function h(e){const t={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,s.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(t.admonition,{type:"info",children:[(0,i.jsx)(t.p,{children:'As the foundation of a Layer 2 project, the "Rollup" process refers to the method by which Layer 2 assembles L2 transactions and state into batches and subsequently submits them to L1, along with the L2 state.'}),(0,i.jsxs)(t.p,{children:["Within ",(0,i.jsx)(t.a,{href:"/docs/how-morph-works/morph-modular-design",children:"Morph's architecture"}),", this Rollup process is executed by the ",(0,i.jsx)(t.code,{children:"Batch Submitter"})," components."]})]}),"\n",(0,i.jsx)(t.h3,{id:"an-overview-of-morph-rollup-design",children:"An overview of Morph Rollup Design:"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"rollup",src:n(7133).A+"",width:"1920",height:"1080"})}),"\n",(0,i.jsx)(t.h2,{id:"constructing-the-batch",children:"Constructing the Batch\u200b"}),"\n",(0,i.jsx)(t.p,{children:"The L2 Node within the sequencer generates L2 blocks based on consensus results and updates the local state of L2. The batch submitter must query the L2 node to retrieve the latest L2 blocks."}),"\n",(0,i.jsx)(t.p,{children:"The batch submitter then reconstructs L2 blocks, compiling:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"Transactions: All transactions contained within the blocks."}),"\n",(0,i.jsx)(t.li,{children:"Blockinfo : Essential information from each block."}),"\n"]}),"\n",(0,i.jsx)(t.p,{children:"The batch submitter continues fetching and reconstructing blocks until it processes a block with a BLS signature, indicating the batch point has been reached. The reconstructed block data is used to construct a batch, which contains:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"lastBlocknumber : The number of the final block in the batch."}),"\n",(0,i.jsx)(t.li,{children:"Transactions : Encoded transactions within the batch."}),"\n",(0,i.jsx)(t.li,{children:"BlockWitness : Encoded blockinfos, utilized for zkProof."}),"\n",(0,i.jsx)(t.li,{children:"PreStateRoot : The stateRoot before the batch is applied."}),"\n",(0,i.jsx)(t.li,{children:"PostStateRoot : The stateRoot after the batch is applied."}),"\n",(0,i.jsx)(t.li,{children:"WithdrawalRoot : L2 withdrawal Merkle tree root."}),"\n",(0,i.jsx)(t.li,{children:"Signature : The batch\u2019s BLS signature."}),"\n"]}),"\n",(0,i.jsx)(t.admonition,{type:"info",children:(0,i.jsx)(t.p,{children:"Blockinfo (BlockWitness) is needed since Morph employs zk technology to prove the accuracy of submitted batch data. It serves as a witness in the Zero-Knowledge Proof."})}),"\n",(0,i.jsx)(t.h2,{id:"putting-multiple-batches-into-a-single-rollup-transaction",children:"Putting Multiple Batches into a Single Rollup Transaction\u200b"}),"\n",(0,i.jsx)(t.p,{children:"While it's standard for roll-up projects to include only one batch per L1 roll-up transaction, Morph optimizes by inserting as many batches as feasible into a single L1 transaction.\nThis efficiency-driven approach significantly reduces overall costs, as the L1 fee is a predominant component of the transaction costs associated with the L2. By optimizing the utilization of available space, Morph achieves cost-effectiveness without compromising transaction integrity."}),"\n",(0,i.jsx)(t.h2,{id:"submitting-batch-data-to-the-rollup-contract",children:"Submitting Batch Data to the Rollup Contract\u200b"}),"\n",(0,i.jsx)(t.p,{children:"The batch submitter will eventually send an Ethereum transaction from its L1 account to Morph's main contract."}),"\n",(0,i.jsx)(t.p,{children:"The transaction's calldata contains the batch data."}),"\n",(0,i.jsx)(t.admonition,{type:"info",children:(0,i.jsx)(t.p,{children:"Based on the development process of ERC-4337, future batch data will likely be incorporated into a new \u2018blob\u2019 structure to further decrease costs."})}),"\n",(0,i.jsx)(t.p,{children:"Once the transaction is submitted and confirmed on Ethereum, validator nodes can reconstruct and verify the validity of sequencers' submissions using the transactional data within the batch."}),"\n",(0,i.jsx)(t.h2,{id:"finalize-the-batches",children:"Finalize the batches"}),"\n",(0,i.jsxs)(t.p,{children:["If batches are valid according to Morph's ",(0,i.jsx)(t.a,{href:"/docs/how-morph-works/optimistic-zkevm",children:"responsive validity proof"})," standards, all transactions within the batches will be finalized, including withdrawal transactions."]}),"\n",(0,i.jsx)(t.p,{children:"Consequently, withdrawal requests will be fulfilled, and the corresponding locked assets on Layer 1 will be released."}),"\n",(0,i.jsx)(t.h1,{id:"decentralize-batch-submitter",children:"Decentralize Batch Submitter"}),"\n",(0,i.jsx)(t.h2,{id:"what-is-batch-submitter",children:"What is Batch Submitter?"}),"\n",(0,i.jsx)(t.p,{children:'A Batch Submitter plays a crucial role in the "rollup" process, acting as the bridge that connects Layer 2 (L2) data with Ethereum (Layer 1 or L1). Their primary responsibilities include:'}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"Collecting L2 transactions and block data, assembling them into a cohesive batch."}),"\n",(0,i.jsx)(t.li,{children:"Embedding this batch data within a Layer 1 transaction."}),"\n",(0,i.jsx)(t.li,{children:"Executing this transaction by calling the Layer 1 contract to complete the rollup process."}),"\n"]}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"rollup",src:n(7133).A+"",width:"1920",height:"1080"})}),"\n",(0,i.jsx)(t.h2,{id:"what-is-the-relationship-between-sequencers--batch-submitters",children:"What is the relationship between Sequencers & Batch Submitters\uff1f"}),"\n",(0,i.jsx)(t.p,{children:"The Batch submitter function is often integrated within the broader 'sequencer' role. In a decentralized sequencer network architecture, each sequencer is equipped with or has access to a batch submitter component. This integration is key to achieving and maintaining the highest levels of decentralization."}),"\n",(0,i.jsx)(t.p,{children:"This structure ensures that the data uploaded to Layer 1 remains decentralized, preventing a single entity from controlling the rollup process."}),"\n",(0,i.jsx)(t.h2,{id:"how-to-decentralize-the-batch-submitter",children:"How to decentralize the Batch Submitter\uff1f"}),"\n",(0,i.jsx)(t.p,{children:"To uphold the aforementioned principles, it is essential to ensure that multiple sequencers can share rollup tasks evenly within the same time frame. Our approach to achieving this involves a rotation system for sequencers to take turns with the responsibility of calling the batch submitter, as detailed below:"}),"\n",(0,i.jsx)(t.h3,{id:"submitter-rotation",children:"Submitter Rotation"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"Epoch Cycle Role Switching"}),": Sequencers alternate roles as batch submitters within an established Epoch cycle."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"Cross-Epoch Execution Capability"}),": Any Sequencer can perform a Rollup for another Sequencer's Epoch."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"Timeout Logging"}),": The system records instances when not a single rollup happens during an epoch, the epoch will be marked as \u201ctimeout\u201d as well as the responsible sequencer."]}),"\n"]}),"\n",(0,i.jsx)(t.h3,{id:"timeout",children:"Timeout"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.strong,{children:"Timeout Identification"}),': If an epoch passes without a rollup (batch submission), it\'s identified as a "timeout." The timing of a rollup is pegged to the confirmation time of the Layer 1 rollup transaction.']}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.strong,{children:"Epoch Rotation"}),": The duration of an epoch and the rotation schedule are governed by the sequencer network governance. Sequencers are assigned indexes which determine their responsibility for an epoch. With changes in the sequencer set, indexes are reassigned, and epochs rotate accordingly based on these new assignments."]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(t.h3,{id:"penalties-for-timeout",children:"Penalties for Timeout"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"Accumulated Penalties"}),": Sequencers that frequently exhibit timeout behaviors may face penalties that related to their Layer 1 ETH staking, if the timeout records reaches to a certain level, sequencer may/will be slashed from the sequencer network."]}),"\n"]}),"\n",(0,i.jsx)(t.h2,{id:"module-design",children:"Module Design"}),"\n",(0,i.jsx)(t.p,{children:"Below you can find the contracts that are responsible for each module and their responsibilities:"}),"\n",(0,i.jsx)(t.h3,{id:"layer1",children:"Layer1"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"RollupContract"}),": records the rollup executor and sync with L2"]}),"\n"]}),"\n",(0,i.jsx)(t.h3,{id:"layer2",children:"Layer2"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"SequencerContract"}),": Sync Sequencers"]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"GovContract"}),": Manage Batch & Epoch Parameters"]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"SubmitterContract"}),":","\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"Record Epoch information"}),"\n",(0,i.jsx)(t.li,{children:"Record Rollup history"}),"\n",(0,i.jsx)(t.li,{children:"Record Submitter Workload"}),"\n",(0,i.jsx)(t.li,{children:"Record Submitter Timeouts"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"IncentiveContract"}),": Conducts Incentive and Penalty actions"]}),"\n"]})]})}function d(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},7133:(e,t,n)=>{n.d(t,{A:()=>i});const i=n.p+"assets/images/rollup-768caf2d310d19ce9909d718badd44e5.png"},2333:(e,t,n)=>{n.d(t,{R:()=>r,x:()=>a});var i=n(9474);const s={},o=i.createContext(s);function r(e){const t=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),i.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[4766],{3499:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>d,frontMatter:()=>o,metadata:()=>a,toc:()=>c});var i=n(6070),s=n(1582);const o={title:"Rollup",lang:"en-US",keywords:["morph","ethereum","rollup"],description:"Explain how rollup process works in Morph"},r=void 0,a={id:"how-morph-works/general-protocol-design/rollup",title:"Rollup",description:"Explain how rollup process works in Morph",source:"@site/docs/how-morph-works/general-protocol-design/1-rollup.md",sourceDirName:"how-morph-works/general-protocol-design",slug:"/how-morph-works/general-protocol-design/rollup",permalink:"/docs/how-morph-works/general-protocol-design/rollup",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/how-morph-works/general-protocol-design/1-rollup.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{title:"Rollup",lang:"en-US",keywords:["morph","ethereum","rollup"],description:"Explain how rollup process works in Morph"},sidebar:"DeveloperSidebar",previous:{title:"Morph's Decentralized Sequencer Network",permalink:"/docs/how-morph-works/decentralized-sequencers/morph-decentralized-sequencer-network"},next:{title:"Communication between Morph and Ethereum",permalink:"/docs/how-morph-works/general-protocol-design/communicate-between-morph-and-ethereum"}},l={},c=[{value:"An overview of Morph Rollup Design:",id:"an-overview-of-morph-rollup-design",level:3},{value:"Constructing the Batch\u200b",id:"constructing-the-batch",level:2},{value:"Putting Multiple Batches into a Single Rollup Transaction\u200b",id:"putting-multiple-batches-into-a-single-rollup-transaction",level:2},{value:"Submitting Batch Data to the Rollup Contract\u200b",id:"submitting-batch-data-to-the-rollup-contract",level:2},{value:"Finalize the batches",id:"finalize-the-batches",level:2},{value:"What is Batch Submitter?",id:"what-is-batch-submitter",level:2},{value:"What is the relationship between Sequencers & Batch Submitters\uff1f",id:"what-is-the-relationship-between-sequencers--batch-submitters",level:2},{value:"How to decentralize the Batch Submitter\uff1f",id:"how-to-decentralize-the-batch-submitter",level:2},{value:"Submitter Rotation",id:"submitter-rotation",level:3},{value:"Timeout",id:"timeout",level:3},{value:"Penalties for Timeout",id:"penalties-for-timeout",level:3},{value:"Module Design",id:"module-design",level:2},{value:"Layer1",id:"layer1",level:3},{value:"Layer2",id:"layer2",level:3}];function h(e){const t={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,s.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(t.admonition,{type:"info",children:[(0,i.jsx)(t.p,{children:'As the foundation of a Layer 2 project, the "Rollup" process refers to the method by which Layer 2 assembles L2 transactions and state into batches and subsequently submits them to L1, along with the L2 state.'}),(0,i.jsxs)(t.p,{children:["Within ",(0,i.jsx)(t.a,{href:"/docs/how-morph-works/morph-modular-design",children:"Morph's architecture"}),", this Rollup process is executed by the ",(0,i.jsx)(t.code,{children:"Batch Submitter"})," components."]})]}),"\n",(0,i.jsx)(t.h3,{id:"an-overview-of-morph-rollup-design",children:"An overview of Morph Rollup Design:"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"rollup",src:n(5633).A+"",width:"1920",height:"1080"})}),"\n",(0,i.jsx)(t.h2,{id:"constructing-the-batch",children:"Constructing the Batch\u200b"}),"\n",(0,i.jsx)(t.p,{children:"The L2 Node within the sequencer generates L2 blocks based on consensus results and updates the local state of L2. The batch submitter must query the L2 node to retrieve the latest L2 blocks."}),"\n",(0,i.jsx)(t.p,{children:"The batch submitter then reconstructs L2 blocks, compiling:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"Transactions: All transactions contained within the blocks."}),"\n",(0,i.jsx)(t.li,{children:"Blockinfo : Essential information from each block."}),"\n"]}),"\n",(0,i.jsx)(t.p,{children:"The batch submitter continues fetching and reconstructing blocks until it processes a block with a BLS signature, indicating the batch point has been reached. The reconstructed block data is used to construct a batch, which contains:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"lastBlocknumber : The number of the final block in the batch."}),"\n",(0,i.jsx)(t.li,{children:"Transactions : Encoded transactions within the batch."}),"\n",(0,i.jsx)(t.li,{children:"BlockWitness : Encoded blockinfos, utilized for zkProof."}),"\n",(0,i.jsx)(t.li,{children:"PreStateRoot : The stateRoot before the batch is applied."}),"\n",(0,i.jsx)(t.li,{children:"PostStateRoot : The stateRoot after the batch is applied."}),"\n",(0,i.jsx)(t.li,{children:"WithdrawalRoot : L2 withdrawal Merkle tree root."}),"\n",(0,i.jsx)(t.li,{children:"Signature : The batch\u2019s BLS signature."}),"\n"]}),"\n",(0,i.jsx)(t.admonition,{type:"info",children:(0,i.jsx)(t.p,{children:"Blockinfo (BlockWitness) is needed since Morph employs zk technology to prove the accuracy of submitted batch data. It serves as a witness in the Zero-Knowledge Proof."})}),"\n",(0,i.jsx)(t.h2,{id:"putting-multiple-batches-into-a-single-rollup-transaction",children:"Putting Multiple Batches into a Single Rollup Transaction\u200b"}),"\n",(0,i.jsx)(t.p,{children:"While it's standard for roll-up projects to include only one batch per L1 roll-up transaction, Morph optimizes by inserting as many batches as feasible into a single L1 transaction.\nThis efficiency-driven approach significantly reduces overall costs, as the L1 fee is a predominant component of the transaction costs associated with the L2. By optimizing the utilization of available space, Morph achieves cost-effectiveness without compromising transaction integrity."}),"\n",(0,i.jsx)(t.h2,{id:"submitting-batch-data-to-the-rollup-contract",children:"Submitting Batch Data to the Rollup Contract\u200b"}),"\n",(0,i.jsx)(t.p,{children:"The batch submitter will eventually send an Ethereum transaction from its L1 account to Morph's main contract."}),"\n",(0,i.jsx)(t.p,{children:"The transaction's calldata contains the batch data."}),"\n",(0,i.jsx)(t.admonition,{type:"info",children:(0,i.jsx)(t.p,{children:"Based on the development process of ERC-4337, future batch data will likely be incorporated into a new \u2018blob\u2019 structure to further decrease costs."})}),"\n",(0,i.jsx)(t.p,{children:"Once the transaction is submitted and confirmed on Ethereum, validator nodes can reconstruct and verify the validity of sequencers' submissions using the transactional data within the batch."}),"\n",(0,i.jsx)(t.h2,{id:"finalize-the-batches",children:"Finalize the batches"}),"\n",(0,i.jsxs)(t.p,{children:["If batches are valid according to Morph's ",(0,i.jsx)(t.a,{href:"/docs/how-morph-works/optimistic-zkevm",children:"responsive validity proof"})," standards, all transactions within the batches will be finalized, including withdrawal transactions."]}),"\n",(0,i.jsx)(t.p,{children:"Consequently, withdrawal requests will be fulfilled, and the corresponding locked assets on Layer 1 will be released."}),"\n",(0,i.jsx)(t.h1,{id:"decentralize-batch-submitter",children:"Decentralize Batch Submitter"}),"\n",(0,i.jsx)(t.h2,{id:"what-is-batch-submitter",children:"What is Batch Submitter?"}),"\n",(0,i.jsx)(t.p,{children:'A Batch Submitter plays a crucial role in the "rollup" process, acting as the bridge that connects Layer 2 (L2) data with Ethereum (Layer 1 or L1). Their primary responsibilities include:'}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"Collecting L2 transactions and block data, assembling them into a cohesive batch."}),"\n",(0,i.jsx)(t.li,{children:"Embedding this batch data within a Layer 1 transaction."}),"\n",(0,i.jsx)(t.li,{children:"Executing this transaction by calling the Layer 1 contract to complete the rollup process."}),"\n"]}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"rollup",src:n(5633).A+"",width:"1920",height:"1080"})}),"\n",(0,i.jsx)(t.h2,{id:"what-is-the-relationship-between-sequencers--batch-submitters",children:"What is the relationship between Sequencers & Batch Submitters\uff1f"}),"\n",(0,i.jsx)(t.p,{children:"The Batch submitter function is often integrated within the broader 'sequencer' role. In a decentralized sequencer network architecture, each sequencer is equipped with or has access to a batch submitter component. This integration is key to achieving and maintaining the highest levels of decentralization."}),"\n",(0,i.jsx)(t.p,{children:"This structure ensures that the data uploaded to Layer 1 remains decentralized, preventing a single entity from controlling the rollup process."}),"\n",(0,i.jsx)(t.h2,{id:"how-to-decentralize-the-batch-submitter",children:"How to decentralize the Batch Submitter\uff1f"}),"\n",(0,i.jsx)(t.p,{children:"To uphold the aforementioned principles, it is essential to ensure that multiple sequencers can share rollup tasks evenly within the same time frame. Our approach to achieving this involves a rotation system for sequencers to take turns with the responsibility of calling the batch submitter, as detailed below:"}),"\n",(0,i.jsx)(t.h3,{id:"submitter-rotation",children:"Submitter Rotation"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"Epoch Cycle Role Switching"}),": Sequencers alternate roles as batch submitters within an established Epoch cycle."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"Cross-Epoch Execution Capability"}),": Any Sequencer can perform a Rollup for another Sequencer's Epoch."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"Timeout Logging"}),": The system records instances when not a single rollup happens during an epoch, the epoch will be marked as \u201ctimeout\u201d as well as the responsible sequencer."]}),"\n"]}),"\n",(0,i.jsx)(t.h3,{id:"timeout",children:"Timeout"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.strong,{children:"Timeout Identification"}),': If an epoch passes without a rollup (batch submission), it\'s identified as a "timeout." The timing of a rollup is pegged to the confirmation time of the Layer 1 rollup transaction.']}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.strong,{children:"Epoch Rotation"}),": The duration of an epoch and the rotation schedule are governed by the sequencer network governance. Sequencers are assigned indexes which determine their responsibility for an epoch. With changes in the sequencer set, indexes are reassigned, and epochs rotate accordingly based on these new assignments."]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(t.h3,{id:"penalties-for-timeout",children:"Penalties for Timeout"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"Accumulated Penalties"}),": Sequencers that frequently exhibit timeout behaviors may face penalties that related to their Layer 1 ETH staking, if the timeout records reaches to a certain level, sequencer may/will be slashed from the sequencer network."]}),"\n"]}),"\n",(0,i.jsx)(t.h2,{id:"module-design",children:"Module Design"}),"\n",(0,i.jsx)(t.p,{children:"Below you can find the contracts that are responsible for each module and their responsibilities:"}),"\n",(0,i.jsx)(t.h3,{id:"layer1",children:"Layer1"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"RollupContract"}),": records the rollup executor and sync with L2"]}),"\n"]}),"\n",(0,i.jsx)(t.h3,{id:"layer2",children:"Layer2"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"SequencerContract"}),": Sync Sequencers"]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"GovContract"}),": Manage Batch & Epoch Parameters"]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"SubmitterContract"}),":","\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"Record Epoch information"}),"\n",(0,i.jsx)(t.li,{children:"Record Rollup history"}),"\n",(0,i.jsx)(t.li,{children:"Record Submitter Workload"}),"\n",(0,i.jsx)(t.li,{children:"Record Submitter Timeouts"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"IncentiveContract"}),": Conducts Incentive and Penalty actions"]}),"\n"]})]})}function d(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},5633:(e,t,n)=>{n.d(t,{A:()=>i});const i=n.p+"assets/images/rollup-768caf2d310d19ce9909d718badd44e5.png"},1582:(e,t,n)=>{n.d(t,{R:()=>r,x:()=>a});var i=n(758);const s={},o=i.createContext(s);function r(e){const t=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),i.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/59db22f4.da3f45e1.js b/build/assets/js/59db22f4.9c92db8f.js similarity index 98% rename from build/assets/js/59db22f4.da3f45e1.js rename to build/assets/js/59db22f4.9c92db8f.js index 98925e126..ac85495a4 100644 --- a/build/assets/js/59db22f4.da3f45e1.js +++ b/build/assets/js/59db22f4.9c92db8f.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[3197],{4400:(e,s,r)=>{r.r(s),r.d(s,{assets:()=>o,contentTitle:()=>l,default:()=>a,frontMatter:()=>i,metadata:()=>c,toc:()=>h});var d=r(3274),n=r(2333);const i={},l="Class: ETHBridgeAdapter",c={id:"build-on-morph/sdk/classes/ETHBridgeAdapter",title:"ETHBridgeAdapter",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/classes/ETHBridgeAdapter.md",sourceDirName:"build-on-morph/sdk/classes",slug:"/build-on-morph/sdk/classes/ETHBridgeAdapter",permalink:"/docs/build-on-morph/sdk/classes/ETHBridgeAdapter",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/classes/ETHBridgeAdapter.md",tags:[],version:"current",frontMatter:{}},o={},h=[{value:"Extends",id:"extends",level:2},{value:"Constructors",id:"constructors",level:2},{value:"new ETHBridgeAdapter()",id:"new-ethbridgeadapter",level:3},{value:"Parameters",id:"parameters",level:4},{value:"Returns",id:"returns",level:4},{value:"Inherited from",id:"inherited-from",level:4},{value:"Source",id:"source",level:4},{value:"Properties",id:"properties",level:2},{value:"estimateGas",id:"estimategas",level:3},{value:"approve()",id:"approve",level:4},{value:"Parameters",id:"parameters-1",level:5},{value:"Returns",id:"returns-1",level:5},{value:"deposit()",id:"deposit",level:4},{value:"Parameters",id:"parameters-2",level:5},{value:"Returns",id:"returns-2",level:5},{value:"withdraw()",id:"withdraw",level:4},{value:"Parameters",id:"parameters-3",level:5},{value:"Returns",id:"returns-3",level:5},{value:"Inherited from",id:"inherited-from-1",level:4},{value:"Source",id:"source-1",level:4},{value:"l1Bridge",id:"l1bridge",level:3},{value:"Inherited from",id:"inherited-from-2",level:4},{value:"Source",id:"source-2",level:4},{value:"l2Bridge",id:"l2bridge",level:3},{value:"Inherited from",id:"inherited-from-3",level:4},{value:"Source",id:"source-3",level:4},{value:"messenger",id:"messenger",level:3},{value:"Inherited from",id:"inherited-from-4",level:4},{value:"Source",id:"source-4",level:4},{value:"populateTransaction",id:"populatetransaction",level:3},{value:"approve()",id:"approve-1",level:4},{value:"Parameters",id:"parameters-4",level:5},{value:"Returns",id:"returns-4",level:5},{value:"deposit()",id:"deposit-1",level:4},{value:"Parameters",id:"parameters-5",level:5},{value:"Returns",id:"returns-5",level:5},{value:"withdraw()",id:"withdraw-1",level:4},{value:"Parameters",id:"parameters-6",level:5},{value:"Returns",id:"returns-6",level:5},{value:"Overrides",id:"overrides",level:4},{value:"Source",id:"source-5",level:4},{value:"Methods",id:"methods",level:2},{value:"approval()",id:"approval",level:3},{value:"Parameters",id:"parameters-7",level:4},{value:"Returns",id:"returns-7",level:4},{value:"Overrides",id:"overrides-1",level:4},{value:"Source",id:"source-6",level:4},{value:"approve()",id:"approve-2",level:3},{value:"Parameters",id:"parameters-8",level:4},{value:"Returns",id:"returns-8",level:4},{value:"Inherited from",id:"inherited-from-5",level:4},{value:"Source",id:"source-7",level:4},{value:"deposit()",id:"deposit-2",level:3},{value:"Parameters",id:"parameters-9",level:4},{value:"Returns",id:"returns-9",level:4},{value:"Inherited from",id:"inherited-from-6",level:4},{value:"Source",id:"source-8",level:4},{value:"getDepositsByAddress()",id:"getdepositsbyaddress",level:3},{value:"Parameters",id:"parameters-10",level:4},{value:"Returns",id:"returns-10",level:4},{value:"Overrides",id:"overrides-2",level:4},{value:"Source",id:"source-9",level:4},{value:"getWithdrawalsByAddress()",id:"getwithdrawalsbyaddress",level:3},{value:"Parameters",id:"parameters-11",level:4},{value:"Returns",id:"returns-11",level:4},{value:"Overrides",id:"overrides-3",level:4},{value:"Source",id:"source-10",level:4},{value:"supportsTokenPair()",id:"supportstokenpair",level:3},{value:"Parameters",id:"parameters-12",level:4},{value:"Returns",id:"returns-12",level:4},{value:"Overrides",id:"overrides-4",level:4},{value:"Source",id:"source-11",level:4},{value:"withdraw()",id:"withdraw-2",level:3},{value:"Parameters",id:"parameters-13",level:4},{value:"Returns",id:"returns-13",level:4},{value:"Inherited from",id:"inherited-from-7",level:4},{value:"Source",id:"source-12",level:4}];function t(e){const s={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",hr:"hr",li:"li",p:"p",strong:"strong",ul:"ul",...(0,n.R)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,d.jsx)(s.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,d.jsx)(s.strong,{children:"Docs"})]}),"\n",(0,d.jsx)(s.hr,{}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / ETHBridgeAdapter"]}),"\n",(0,d.jsx)(s.h1,{id:"class-ethbridgeadapter",children:"Class: ETHBridgeAdapter"}),"\n",(0,d.jsx)(s.p,{children:"Bridge adapter for the ETH bridge."}),"\n",(0,d.jsx)(s.h2,{id:"extends",children:"Extends"}),"\n",(0,d.jsxs)(s.ul,{children:["\n",(0,d.jsx)(s.li,{children:(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter",children:(0,d.jsx)(s.code,{children:"StandardBridgeAdapter"})})}),"\n"]}),"\n",(0,d.jsx)(s.h2,{id:"constructors",children:"Constructors"}),"\n",(0,d.jsx)(s.h3,{id:"new-ethbridgeadapter",children:"new ETHBridgeAdapter()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"new ETHBridgeAdapter"}),"(",(0,d.jsx)(s.code,{children:"opts"}),"): ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/ETHBridgeAdapter",children:(0,d.jsx)(s.code,{children:"ETHBridgeAdapter"})})]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"Creates a StandardBridgeAdapter instance."}),"\n",(0,d.jsx)(s.h4,{id:"parameters",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts"})]}),"\n",(0,d.jsx)(s.p,{children:"Options for the adapter."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts.l1Bridge"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"L1 bridge contract."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts.l2Bridge"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"L2 bridge contract."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts.messenger"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/CrossChainMessenger",children:(0,d.jsx)(s.code,{children:"CrossChainMessenger"})})]}),"\n",(0,d.jsx)(s.p,{children:"Provider used to make queries related to cross-chain interactions."}),"\n",(0,d.jsx)(s.h4,{id:"returns",children:"Returns"}),"\n",(0,d.jsx)(s.p,{children:(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/ETHBridgeAdapter",children:(0,d.jsx)(s.code,{children:"ETHBridgeAdapter"})})}),"\n",(0,d.jsx)(s.h4,{id:"inherited-from",children:"Inherited from"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter",children:(0,d.jsx)(s.code,{children:"StandardBridgeAdapter"})}),".",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter#constructors",children:(0,d.jsx)(s.code,{children:"constructor"})})]}),"\n",(0,d.jsx)(s.h4,{id:"source",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/standard-bridge.ts:52"}),"\n",(0,d.jsx)(s.h2,{id:"properties",children:"Properties"}),"\n",(0,d.jsx)(s.h3,{id:"estimategas",children:"estimateGas"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"estimateGas"}),": ",(0,d.jsx)(s.code,{children:"object"})]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"Object that holds the functions that estimates the gas required for a given transaction.\nFollows the pattern used by ethers.js."}),"\n",(0,d.jsx)(s.h4,{id:"approve",children:"approve()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"approve"}),": (",(0,d.jsx)(s.code,{children:"l1Token"}),", ",(0,d.jsx)(s.code,{children:"l2Token"}),", ",(0,d.jsx)(s.code,{children:"amount"}),", ",(0,d.jsx)(s.code,{children:"opts"}),"?) => ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n"]}),"\n",(0,d.jsx)(s.h5,{id:"parameters-1",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l1Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l2Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"amount"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,d.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts?"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,d.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,d.jsx)(s.h5,{id:"returns-1",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,d.jsx)(s.h4,{id:"deposit",children:"deposit()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"deposit"}),": (",(0,d.jsx)(s.code,{children:"l1Token"}),", ",(0,d.jsx)(s.code,{children:"l2Token"}),", ",(0,d.jsx)(s.code,{children:"amount"}),", ",(0,d.jsx)(s.code,{children:"opts"}),"?) => ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n"]}),"\n",(0,d.jsx)(s.h5,{id:"parameters-2",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l1Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l2Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"amount"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,d.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts?"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,d.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,d.jsx)(s.h5,{id:"returns-2",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,d.jsx)(s.h4,{id:"withdraw",children:"withdraw()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"withdraw"}),": (",(0,d.jsx)(s.code,{children:"l1Token"}),", ",(0,d.jsx)(s.code,{children:"l2Token"}),", ",(0,d.jsx)(s.code,{children:"amount"}),", ",(0,d.jsx)(s.code,{children:"opts"}),"?) => ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n"]}),"\n",(0,d.jsx)(s.h5,{id:"parameters-3",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l1Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l2Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"amount"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,d.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts?"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,d.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,d.jsx)(s.h5,{id:"returns-3",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,d.jsx)(s.h4,{id:"inherited-from-1",children:"Inherited from"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter",children:(0,d.jsx)(s.code,{children:"StandardBridgeAdapter"})}),".",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter#estimategas",children:(0,d.jsx)(s.code,{children:"estimateGas"})})]}),"\n",(0,d.jsx)(s.h4,{id:"source-1",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/standard-bridge.ts:405"}),"\n",(0,d.jsx)(s.hr,{}),"\n",(0,d.jsx)(s.h3,{id:"l1bridge",children:"l1Bridge"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"l1Bridge"}),": ",(0,d.jsx)(s.code,{children:"Contract"})]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"L1 bridge contract."}),"\n",(0,d.jsx)(s.h4,{id:"inherited-from-2",children:"Inherited from"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter",children:(0,d.jsx)(s.code,{children:"StandardBridgeAdapter"})}),".",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter#l1bridge",children:(0,d.jsx)(s.code,{children:"l1Bridge"})})]}),"\n",(0,d.jsx)(s.h4,{id:"source-2",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/standard-bridge.ts:41"}),"\n",(0,d.jsx)(s.hr,{}),"\n",(0,d.jsx)(s.h3,{id:"l2bridge",children:"l2Bridge"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"l2Bridge"}),": ",(0,d.jsx)(s.code,{children:"Contract"})]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"L2 bridge contract."}),"\n",(0,d.jsx)(s.h4,{id:"inherited-from-3",children:"Inherited from"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter",children:(0,d.jsx)(s.code,{children:"StandardBridgeAdapter"})}),".",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter#l2bridge",children:(0,d.jsx)(s.code,{children:"l2Bridge"})})]}),"\n",(0,d.jsx)(s.h4,{id:"source-3",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/standard-bridge.ts:42"}),"\n",(0,d.jsx)(s.hr,{}),"\n",(0,d.jsx)(s.h3,{id:"messenger",children:"messenger"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"messenger"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/CrossChainMessenger",children:(0,d.jsx)(s.code,{children:"CrossChainMessenger"})})]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"Provider used to make queries related to cross-chain interactions."}),"\n",(0,d.jsx)(s.h4,{id:"inherited-from-4",children:"Inherited from"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter",children:(0,d.jsx)(s.code,{children:"StandardBridgeAdapter"})}),".",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter#messenger",children:(0,d.jsx)(s.code,{children:"messenger"})})]}),"\n",(0,d.jsx)(s.h4,{id:"source-4",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/standard-bridge.ts:40"}),"\n",(0,d.jsx)(s.hr,{}),"\n",(0,d.jsx)(s.h3,{id:"populatetransaction",children:"populateTransaction"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"populateTransaction"}),": ",(0,d.jsx)(s.code,{children:"object"})]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"Object that holds the functions that generate transactions to be signed by the user.\nFollows the pattern used by ethers.js."}),"\n",(0,d.jsx)(s.h4,{id:"approve-1",children:"approve()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"approve"}),": (",(0,d.jsx)(s.code,{children:"l1Token"}),", ",(0,d.jsx)(s.code,{children:"l2Token"}),", ",(0,d.jsx)(s.code,{children:"amount"}),", ",(0,d.jsx)(s.code,{children:"opts"}),"?) => ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"never"}),">"]}),"\n"]}),"\n",(0,d.jsx)(s.h5,{id:"parameters-4",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l1Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l2Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"amount"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,d.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts?"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,d.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,d.jsx)(s.h5,{id:"returns-4",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"never"}),">"]}),"\n",(0,d.jsx)(s.h4,{id:"deposit-1",children:"deposit()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"deposit"}),": (",(0,d.jsx)(s.code,{children:"l1Token"}),", ",(0,d.jsx)(s.code,{children:"l2Token"}),", ",(0,d.jsx)(s.code,{children:"amount"}),", ",(0,d.jsx)(s.code,{children:"opts"}),") => ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n"]}),"\n",(0,d.jsx)(s.h5,{id:"parameters-5",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l1Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l2Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"amount"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,d.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,d.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,d.jsx)(s.h5,{id:"returns-5",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n",(0,d.jsx)(s.h4,{id:"withdraw-1",children:"withdraw()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"withdraw"}),": (",(0,d.jsx)(s.code,{children:"l1Token"}),", ",(0,d.jsx)(s.code,{children:"l2Token"}),", ",(0,d.jsx)(s.code,{children:"amount"}),", ",(0,d.jsx)(s.code,{children:"opts"}),") => ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n"]}),"\n",(0,d.jsx)(s.h5,{id:"parameters-6",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l1Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l2Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"amount"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,d.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,d.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,d.jsx)(s.h5,{id:"returns-6",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n",(0,d.jsx)(s.h4,{id:"overrides",children:"Overrides"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter",children:(0,d.jsx)(s.code,{children:"StandardBridgeAdapter"})}),".",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter#populatetransaction",children:(0,d.jsx)(s.code,{children:"populateTransaction"})})]}),"\n",(0,d.jsx)(s.h4,{id:"source-5",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/eth-bridge.ts:116"}),"\n",(0,d.jsx)(s.h2,{id:"methods",children:"Methods"}),"\n",(0,d.jsx)(s.h3,{id:"approval",children:"approval()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"approval"}),"(",(0,d.jsx)(s.code,{children:"l1Token"}),", ",(0,d.jsx)(s.code,{children:"l2Token"}),", ",(0,d.jsx)(s.code,{children:"opts"}),"?): ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"Queries the account's approval amount for a given L1 token."}),"\n",(0,d.jsx)(s.h4,{id:"parameters-7",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l1Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"The L1 token address."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l2Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"The L2 token address."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts?"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,d.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,d.jsx)(s.p,{children:"Additional options."}),"\n",(0,d.jsx)(s.h4,{id:"returns-7",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,d.jsx)(s.p,{children:"Amount of tokens approved for deposits from the account."}),"\n",(0,d.jsx)(s.h4,{id:"overrides-1",children:"Overrides"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter",children:(0,d.jsx)(s.code,{children:"StandardBridgeAdapter"})}),".",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter#approval",children:(0,d.jsx)(s.code,{children:"approval"})})]}),"\n",(0,d.jsx)(s.h4,{id:"source-6",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/eth-bridge.ts:22"}),"\n",(0,d.jsx)(s.hr,{}),"\n",(0,d.jsx)(s.h3,{id:"approve-2",children:"approve()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"approve"}),"(",(0,d.jsx)(s.code,{children:"l1Token"}),", ",(0,d.jsx)(s.code,{children:"l2Token"}),", ",(0,d.jsx)(s.code,{children:"amount"}),", ",(0,d.jsx)(s.code,{children:"signer"}),", ",(0,d.jsx)(s.code,{children:"opts"}),"?): ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"Approves a deposit into the L2 chain."}),"\n",(0,d.jsx)(s.h4,{id:"parameters-8",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l1Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"The L1 token address."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l2Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"The L2 token address."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"amount"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,d.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"Amount of the token to approve."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"signer"}),": ",(0,d.jsx)(s.code,{children:"Signer"})]}),"\n",(0,d.jsx)(s.p,{children:"Signer used to sign and send the transaction."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts?"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,d.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,d.jsx)(s.p,{children:"Additional options."}),"\n",(0,d.jsx)(s.h4,{id:"returns-8",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n",(0,d.jsx)(s.p,{children:"Transaction response for the approval transaction."}),"\n",(0,d.jsx)(s.h4,{id:"inherited-from-5",children:"Inherited from"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter",children:(0,d.jsx)(s.code,{children:"StandardBridgeAdapter"})}),".",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter#approve-2",children:(0,d.jsx)(s.code,{children:"approve"})})]}),"\n",(0,d.jsx)(s.h4,{id:"source-7",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/standard-bridge.ts:250"}),"\n",(0,d.jsx)(s.hr,{}),"\n",(0,d.jsx)(s.h3,{id:"deposit-2",children:"deposit()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"deposit"}),"(",(0,d.jsx)(s.code,{children:"l1Token"}),", ",(0,d.jsx)(s.code,{children:"l2Token"}),", ",(0,d.jsx)(s.code,{children:"amount"}),", ",(0,d.jsx)(s.code,{children:"signer"}),", ",(0,d.jsx)(s.code,{children:"opts"}),"?): ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"Deposits some tokens into the L2 chain."}),"\n",(0,d.jsx)(s.h4,{id:"parameters-9",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l1Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"The L1 token address."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l2Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"The L2 token address."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"amount"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,d.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"Amount of the token to deposit."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"signer"}),": ",(0,d.jsx)(s.code,{children:"Signer"})]}),"\n",(0,d.jsx)(s.p,{children:"Signer used to sign and send the transaction."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts?"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,d.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,d.jsx)(s.p,{children:"Additional options."}),"\n",(0,d.jsx)(s.h4,{id:"returns-9",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n",(0,d.jsx)(s.p,{children:"Transaction response for the deposit transaction."}),"\n",(0,d.jsx)(s.h4,{id:"inherited-from-6",children:"Inherited from"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter",children:(0,d.jsx)(s.code,{children:"StandardBridgeAdapter"})}),".",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter#deposit-2",children:(0,d.jsx)(s.code,{children:"deposit"})})]}),"\n",(0,d.jsx)(s.h4,{id:"source-8",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/standard-bridge.ts:262"}),"\n",(0,d.jsx)(s.hr,{}),"\n",(0,d.jsx)(s.h3,{id:"getdepositsbyaddress",children:"getDepositsByAddress()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"getDepositsByAddress"}),"(",(0,d.jsx)(s.code,{children:"address"}),", ",(0,d.jsx)(s.code,{children:"opts"}),"?): ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage",children:(0,d.jsx)(s.code,{children:"TokenBridgeMessage"})}),"[]>"]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"Gets all deposits for a given address."}),"\n",(0,d.jsx)(s.h4,{id:"parameters-10",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"address"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"Address to search for messages from."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts?"})]}),"\n",(0,d.jsx)(s.p,{children:"Options object."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts.fromBlock?"}),": ",(0,d.jsx)(s.code,{children:"BlockTag"})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts.toBlock?"}),": ",(0,d.jsx)(s.code,{children:"BlockTag"})]}),"\n",(0,d.jsx)(s.h4,{id:"returns-10",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage",children:(0,d.jsx)(s.code,{children:"TokenBridgeMessage"})}),"[]>"]}),"\n",(0,d.jsx)(s.p,{children:"All deposit token bridge messages sent by the given address."}),"\n",(0,d.jsx)(s.h4,{id:"overrides-2",children:"Overrides"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter",children:(0,d.jsx)(s.code,{children:"StandardBridgeAdapter"})}),".",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter#getdepositsbyaddress",children:(0,d.jsx)(s.code,{children:"getDepositsByAddress"})})]}),"\n",(0,d.jsx)(s.h4,{id:"source-9",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/eth-bridge.ts:30"}),"\n",(0,d.jsx)(s.hr,{}),"\n",(0,d.jsx)(s.h3,{id:"getwithdrawalsbyaddress",children:"getWithdrawalsByAddress()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"getWithdrawalsByAddress"}),"(",(0,d.jsx)(s.code,{children:"address"}),", ",(0,d.jsx)(s.code,{children:"opts"}),"?): ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage",children:(0,d.jsx)(s.code,{children:"TokenBridgeMessage"})}),"[]>"]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"Gets all withdrawals for a given address."}),"\n",(0,d.jsx)(s.h4,{id:"parameters-11",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"address"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"Address to search for messages from."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts?"})]}),"\n",(0,d.jsx)(s.p,{children:"Options object."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts.fromBlock?"}),": ",(0,d.jsx)(s.code,{children:"BlockTag"})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts.toBlock?"}),": ",(0,d.jsx)(s.code,{children:"BlockTag"})]}),"\n",(0,d.jsx)(s.h4,{id:"returns-11",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage",children:(0,d.jsx)(s.code,{children:"TokenBridgeMessage"})}),"[]>"]}),"\n",(0,d.jsx)(s.p,{children:"All withdrawal token bridge messages sent by the given address."}),"\n",(0,d.jsx)(s.h4,{id:"overrides-3",children:"Overrides"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter",children:(0,d.jsx)(s.code,{children:"StandardBridgeAdapter"})}),".",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter#getwithdrawalsbyaddress",children:(0,d.jsx)(s.code,{children:"getWithdrawalsByAddress"})})]}),"\n",(0,d.jsx)(s.h4,{id:"source-10",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/eth-bridge.ts:64"}),"\n",(0,d.jsx)(s.hr,{}),"\n",(0,d.jsx)(s.h3,{id:"supportstokenpair",children:"supportsTokenPair()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"supportsTokenPair"}),"(",(0,d.jsx)(s.code,{children:"l1Token"}),", ",(0,d.jsx)(s.code,{children:"l2Token"}),"): ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"boolean"}),">"]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"Checks whether the given token pair is supported by the bridge."}),"\n",(0,d.jsx)(s.h4,{id:"parameters-12",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l1Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"The L1 token address."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l2Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"The L2 token address."}),"\n",(0,d.jsx)(s.h4,{id:"returns-12",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"boolean"}),">"]}),"\n",(0,d.jsx)(s.p,{children:"Whether the given token pair is supported by the bridge."}),"\n",(0,d.jsx)(s.h4,{id:"overrides-4",children:"Overrides"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter",children:(0,d.jsx)(s.code,{children:"StandardBridgeAdapter"})}),".",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter#supportstokenpair",children:(0,d.jsx)(s.code,{children:"supportsTokenPair"})})]}),"\n",(0,d.jsx)(s.h4,{id:"source-11",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/eth-bridge.ts:105"}),"\n",(0,d.jsx)(s.hr,{}),"\n",(0,d.jsx)(s.h3,{id:"withdraw-2",children:"withdraw()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"withdraw"}),"(",(0,d.jsx)(s.code,{children:"l1Token"}),", ",(0,d.jsx)(s.code,{children:"l2Token"}),", ",(0,d.jsx)(s.code,{children:"amount"}),", ",(0,d.jsx)(s.code,{children:"signer"}),", ",(0,d.jsx)(s.code,{children:"opts"}),"?): ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"Withdraws some tokens back to the L1 chain."}),"\n",(0,d.jsx)(s.h4,{id:"parameters-13",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l1Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"The L1 token address."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l2Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"The L2 token address."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"amount"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,d.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"Amount of the token to withdraw."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"signer"}),": ",(0,d.jsx)(s.code,{children:"Signer"})]}),"\n",(0,d.jsx)(s.p,{children:"Signer used to sign and send the transaction."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts?"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,d.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,d.jsx)(s.p,{children:"Additional options."}),"\n",(0,d.jsx)(s.h4,{id:"returns-13",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n",(0,d.jsx)(s.p,{children:"Transaction response for the withdraw transaction."}),"\n",(0,d.jsx)(s.h4,{id:"inherited-from-7",children:"Inherited from"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter",children:(0,d.jsx)(s.code,{children:"StandardBridgeAdapter"})}),".",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter#withdraw-2",children:(0,d.jsx)(s.code,{children:"withdraw"})})]}),"\n",(0,d.jsx)(s.h4,{id:"source-12",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/standard-bridge.ts:274"})]})}function a(e={}){const{wrapper:s}={...(0,n.R)(),...e.components};return s?(0,d.jsx)(s,{...e,children:(0,d.jsx)(t,{...e})}):t(e)}},2333:(e,s,r)=>{r.d(s,{R:()=>l,x:()=>c});var d=r(9474);const n={},i=d.createContext(n);function l(e){const s=d.useContext(i);return d.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:l(e.components),d.createElement(i.Provider,{value:s},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[3197],{9642:(e,s,r)=>{r.r(s),r.d(s,{assets:()=>o,contentTitle:()=>l,default:()=>a,frontMatter:()=>i,metadata:()=>c,toc:()=>h});var d=r(6070),n=r(1582);const i={},l="Class: ETHBridgeAdapter",c={id:"build-on-morph/sdk/classes/ETHBridgeAdapter",title:"ETHBridgeAdapter",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/classes/ETHBridgeAdapter.md",sourceDirName:"build-on-morph/sdk/classes",slug:"/build-on-morph/sdk/classes/ETHBridgeAdapter",permalink:"/docs/build-on-morph/sdk/classes/ETHBridgeAdapter",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/classes/ETHBridgeAdapter.md",tags:[],version:"current",frontMatter:{}},o={},h=[{value:"Extends",id:"extends",level:2},{value:"Constructors",id:"constructors",level:2},{value:"new ETHBridgeAdapter()",id:"new-ethbridgeadapter",level:3},{value:"Parameters",id:"parameters",level:4},{value:"Returns",id:"returns",level:4},{value:"Inherited from",id:"inherited-from",level:4},{value:"Source",id:"source",level:4},{value:"Properties",id:"properties",level:2},{value:"estimateGas",id:"estimategas",level:3},{value:"approve()",id:"approve",level:4},{value:"Parameters",id:"parameters-1",level:5},{value:"Returns",id:"returns-1",level:5},{value:"deposit()",id:"deposit",level:4},{value:"Parameters",id:"parameters-2",level:5},{value:"Returns",id:"returns-2",level:5},{value:"withdraw()",id:"withdraw",level:4},{value:"Parameters",id:"parameters-3",level:5},{value:"Returns",id:"returns-3",level:5},{value:"Inherited from",id:"inherited-from-1",level:4},{value:"Source",id:"source-1",level:4},{value:"l1Bridge",id:"l1bridge",level:3},{value:"Inherited from",id:"inherited-from-2",level:4},{value:"Source",id:"source-2",level:4},{value:"l2Bridge",id:"l2bridge",level:3},{value:"Inherited from",id:"inherited-from-3",level:4},{value:"Source",id:"source-3",level:4},{value:"messenger",id:"messenger",level:3},{value:"Inherited from",id:"inherited-from-4",level:4},{value:"Source",id:"source-4",level:4},{value:"populateTransaction",id:"populatetransaction",level:3},{value:"approve()",id:"approve-1",level:4},{value:"Parameters",id:"parameters-4",level:5},{value:"Returns",id:"returns-4",level:5},{value:"deposit()",id:"deposit-1",level:4},{value:"Parameters",id:"parameters-5",level:5},{value:"Returns",id:"returns-5",level:5},{value:"withdraw()",id:"withdraw-1",level:4},{value:"Parameters",id:"parameters-6",level:5},{value:"Returns",id:"returns-6",level:5},{value:"Overrides",id:"overrides",level:4},{value:"Source",id:"source-5",level:4},{value:"Methods",id:"methods",level:2},{value:"approval()",id:"approval",level:3},{value:"Parameters",id:"parameters-7",level:4},{value:"Returns",id:"returns-7",level:4},{value:"Overrides",id:"overrides-1",level:4},{value:"Source",id:"source-6",level:4},{value:"approve()",id:"approve-2",level:3},{value:"Parameters",id:"parameters-8",level:4},{value:"Returns",id:"returns-8",level:4},{value:"Inherited from",id:"inherited-from-5",level:4},{value:"Source",id:"source-7",level:4},{value:"deposit()",id:"deposit-2",level:3},{value:"Parameters",id:"parameters-9",level:4},{value:"Returns",id:"returns-9",level:4},{value:"Inherited from",id:"inherited-from-6",level:4},{value:"Source",id:"source-8",level:4},{value:"getDepositsByAddress()",id:"getdepositsbyaddress",level:3},{value:"Parameters",id:"parameters-10",level:4},{value:"Returns",id:"returns-10",level:4},{value:"Overrides",id:"overrides-2",level:4},{value:"Source",id:"source-9",level:4},{value:"getWithdrawalsByAddress()",id:"getwithdrawalsbyaddress",level:3},{value:"Parameters",id:"parameters-11",level:4},{value:"Returns",id:"returns-11",level:4},{value:"Overrides",id:"overrides-3",level:4},{value:"Source",id:"source-10",level:4},{value:"supportsTokenPair()",id:"supportstokenpair",level:3},{value:"Parameters",id:"parameters-12",level:4},{value:"Returns",id:"returns-12",level:4},{value:"Overrides",id:"overrides-4",level:4},{value:"Source",id:"source-11",level:4},{value:"withdraw()",id:"withdraw-2",level:3},{value:"Parameters",id:"parameters-13",level:4},{value:"Returns",id:"returns-13",level:4},{value:"Inherited from",id:"inherited-from-7",level:4},{value:"Source",id:"source-12",level:4}];function t(e){const s={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",hr:"hr",li:"li",p:"p",strong:"strong",ul:"ul",...(0,n.R)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,d.jsx)(s.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,d.jsx)(s.strong,{children:"Docs"})]}),"\n",(0,d.jsx)(s.hr,{}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / ETHBridgeAdapter"]}),"\n",(0,d.jsx)(s.h1,{id:"class-ethbridgeadapter",children:"Class: ETHBridgeAdapter"}),"\n",(0,d.jsx)(s.p,{children:"Bridge adapter for the ETH bridge."}),"\n",(0,d.jsx)(s.h2,{id:"extends",children:"Extends"}),"\n",(0,d.jsxs)(s.ul,{children:["\n",(0,d.jsx)(s.li,{children:(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter",children:(0,d.jsx)(s.code,{children:"StandardBridgeAdapter"})})}),"\n"]}),"\n",(0,d.jsx)(s.h2,{id:"constructors",children:"Constructors"}),"\n",(0,d.jsx)(s.h3,{id:"new-ethbridgeadapter",children:"new ETHBridgeAdapter()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"new ETHBridgeAdapter"}),"(",(0,d.jsx)(s.code,{children:"opts"}),"): ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/ETHBridgeAdapter",children:(0,d.jsx)(s.code,{children:"ETHBridgeAdapter"})})]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"Creates a StandardBridgeAdapter instance."}),"\n",(0,d.jsx)(s.h4,{id:"parameters",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts"})]}),"\n",(0,d.jsx)(s.p,{children:"Options for the adapter."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts.l1Bridge"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"L1 bridge contract."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts.l2Bridge"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"L2 bridge contract."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts.messenger"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/CrossChainMessenger",children:(0,d.jsx)(s.code,{children:"CrossChainMessenger"})})]}),"\n",(0,d.jsx)(s.p,{children:"Provider used to make queries related to cross-chain interactions."}),"\n",(0,d.jsx)(s.h4,{id:"returns",children:"Returns"}),"\n",(0,d.jsx)(s.p,{children:(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/ETHBridgeAdapter",children:(0,d.jsx)(s.code,{children:"ETHBridgeAdapter"})})}),"\n",(0,d.jsx)(s.h4,{id:"inherited-from",children:"Inherited from"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter",children:(0,d.jsx)(s.code,{children:"StandardBridgeAdapter"})}),".",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter#constructors",children:(0,d.jsx)(s.code,{children:"constructor"})})]}),"\n",(0,d.jsx)(s.h4,{id:"source",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/standard-bridge.ts:52"}),"\n",(0,d.jsx)(s.h2,{id:"properties",children:"Properties"}),"\n",(0,d.jsx)(s.h3,{id:"estimategas",children:"estimateGas"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"estimateGas"}),": ",(0,d.jsx)(s.code,{children:"object"})]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"Object that holds the functions that estimates the gas required for a given transaction.\nFollows the pattern used by ethers.js."}),"\n",(0,d.jsx)(s.h4,{id:"approve",children:"approve()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"approve"}),": (",(0,d.jsx)(s.code,{children:"l1Token"}),", ",(0,d.jsx)(s.code,{children:"l2Token"}),", ",(0,d.jsx)(s.code,{children:"amount"}),", ",(0,d.jsx)(s.code,{children:"opts"}),"?) => ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n"]}),"\n",(0,d.jsx)(s.h5,{id:"parameters-1",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l1Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l2Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"amount"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,d.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts?"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,d.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,d.jsx)(s.h5,{id:"returns-1",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,d.jsx)(s.h4,{id:"deposit",children:"deposit()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"deposit"}),": (",(0,d.jsx)(s.code,{children:"l1Token"}),", ",(0,d.jsx)(s.code,{children:"l2Token"}),", ",(0,d.jsx)(s.code,{children:"amount"}),", ",(0,d.jsx)(s.code,{children:"opts"}),"?) => ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n"]}),"\n",(0,d.jsx)(s.h5,{id:"parameters-2",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l1Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l2Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"amount"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,d.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts?"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,d.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,d.jsx)(s.h5,{id:"returns-2",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,d.jsx)(s.h4,{id:"withdraw",children:"withdraw()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"withdraw"}),": (",(0,d.jsx)(s.code,{children:"l1Token"}),", ",(0,d.jsx)(s.code,{children:"l2Token"}),", ",(0,d.jsx)(s.code,{children:"amount"}),", ",(0,d.jsx)(s.code,{children:"opts"}),"?) => ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n"]}),"\n",(0,d.jsx)(s.h5,{id:"parameters-3",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l1Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l2Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"amount"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,d.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts?"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,d.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,d.jsx)(s.h5,{id:"returns-3",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,d.jsx)(s.h4,{id:"inherited-from-1",children:"Inherited from"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter",children:(0,d.jsx)(s.code,{children:"StandardBridgeAdapter"})}),".",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter#estimategas",children:(0,d.jsx)(s.code,{children:"estimateGas"})})]}),"\n",(0,d.jsx)(s.h4,{id:"source-1",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/standard-bridge.ts:405"}),"\n",(0,d.jsx)(s.hr,{}),"\n",(0,d.jsx)(s.h3,{id:"l1bridge",children:"l1Bridge"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"l1Bridge"}),": ",(0,d.jsx)(s.code,{children:"Contract"})]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"L1 bridge contract."}),"\n",(0,d.jsx)(s.h4,{id:"inherited-from-2",children:"Inherited from"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter",children:(0,d.jsx)(s.code,{children:"StandardBridgeAdapter"})}),".",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter#l1bridge",children:(0,d.jsx)(s.code,{children:"l1Bridge"})})]}),"\n",(0,d.jsx)(s.h4,{id:"source-2",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/standard-bridge.ts:41"}),"\n",(0,d.jsx)(s.hr,{}),"\n",(0,d.jsx)(s.h3,{id:"l2bridge",children:"l2Bridge"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"l2Bridge"}),": ",(0,d.jsx)(s.code,{children:"Contract"})]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"L2 bridge contract."}),"\n",(0,d.jsx)(s.h4,{id:"inherited-from-3",children:"Inherited from"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter",children:(0,d.jsx)(s.code,{children:"StandardBridgeAdapter"})}),".",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter#l2bridge",children:(0,d.jsx)(s.code,{children:"l2Bridge"})})]}),"\n",(0,d.jsx)(s.h4,{id:"source-3",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/standard-bridge.ts:42"}),"\n",(0,d.jsx)(s.hr,{}),"\n",(0,d.jsx)(s.h3,{id:"messenger",children:"messenger"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"messenger"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/CrossChainMessenger",children:(0,d.jsx)(s.code,{children:"CrossChainMessenger"})})]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"Provider used to make queries related to cross-chain interactions."}),"\n",(0,d.jsx)(s.h4,{id:"inherited-from-4",children:"Inherited from"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter",children:(0,d.jsx)(s.code,{children:"StandardBridgeAdapter"})}),".",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter#messenger",children:(0,d.jsx)(s.code,{children:"messenger"})})]}),"\n",(0,d.jsx)(s.h4,{id:"source-4",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/standard-bridge.ts:40"}),"\n",(0,d.jsx)(s.hr,{}),"\n",(0,d.jsx)(s.h3,{id:"populatetransaction",children:"populateTransaction"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"populateTransaction"}),": ",(0,d.jsx)(s.code,{children:"object"})]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"Object that holds the functions that generate transactions to be signed by the user.\nFollows the pattern used by ethers.js."}),"\n",(0,d.jsx)(s.h4,{id:"approve-1",children:"approve()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"approve"}),": (",(0,d.jsx)(s.code,{children:"l1Token"}),", ",(0,d.jsx)(s.code,{children:"l2Token"}),", ",(0,d.jsx)(s.code,{children:"amount"}),", ",(0,d.jsx)(s.code,{children:"opts"}),"?) => ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"never"}),">"]}),"\n"]}),"\n",(0,d.jsx)(s.h5,{id:"parameters-4",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l1Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l2Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"amount"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,d.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts?"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,d.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,d.jsx)(s.h5,{id:"returns-4",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"never"}),">"]}),"\n",(0,d.jsx)(s.h4,{id:"deposit-1",children:"deposit()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"deposit"}),": (",(0,d.jsx)(s.code,{children:"l1Token"}),", ",(0,d.jsx)(s.code,{children:"l2Token"}),", ",(0,d.jsx)(s.code,{children:"amount"}),", ",(0,d.jsx)(s.code,{children:"opts"}),") => ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n"]}),"\n",(0,d.jsx)(s.h5,{id:"parameters-5",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l1Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l2Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"amount"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,d.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,d.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,d.jsx)(s.h5,{id:"returns-5",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n",(0,d.jsx)(s.h4,{id:"withdraw-1",children:"withdraw()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"withdraw"}),": (",(0,d.jsx)(s.code,{children:"l1Token"}),", ",(0,d.jsx)(s.code,{children:"l2Token"}),", ",(0,d.jsx)(s.code,{children:"amount"}),", ",(0,d.jsx)(s.code,{children:"opts"}),") => ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n"]}),"\n",(0,d.jsx)(s.h5,{id:"parameters-6",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l1Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l2Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"amount"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,d.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,d.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,d.jsx)(s.h5,{id:"returns-6",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n",(0,d.jsx)(s.h4,{id:"overrides",children:"Overrides"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter",children:(0,d.jsx)(s.code,{children:"StandardBridgeAdapter"})}),".",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter#populatetransaction",children:(0,d.jsx)(s.code,{children:"populateTransaction"})})]}),"\n",(0,d.jsx)(s.h4,{id:"source-5",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/eth-bridge.ts:116"}),"\n",(0,d.jsx)(s.h2,{id:"methods",children:"Methods"}),"\n",(0,d.jsx)(s.h3,{id:"approval",children:"approval()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"approval"}),"(",(0,d.jsx)(s.code,{children:"l1Token"}),", ",(0,d.jsx)(s.code,{children:"l2Token"}),", ",(0,d.jsx)(s.code,{children:"opts"}),"?): ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"Queries the account's approval amount for a given L1 token."}),"\n",(0,d.jsx)(s.h4,{id:"parameters-7",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l1Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"The L1 token address."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l2Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"The L2 token address."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts?"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,d.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,d.jsx)(s.p,{children:"Additional options."}),"\n",(0,d.jsx)(s.h4,{id:"returns-7",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,d.jsx)(s.p,{children:"Amount of tokens approved for deposits from the account."}),"\n",(0,d.jsx)(s.h4,{id:"overrides-1",children:"Overrides"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter",children:(0,d.jsx)(s.code,{children:"StandardBridgeAdapter"})}),".",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter#approval",children:(0,d.jsx)(s.code,{children:"approval"})})]}),"\n",(0,d.jsx)(s.h4,{id:"source-6",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/eth-bridge.ts:22"}),"\n",(0,d.jsx)(s.hr,{}),"\n",(0,d.jsx)(s.h3,{id:"approve-2",children:"approve()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"approve"}),"(",(0,d.jsx)(s.code,{children:"l1Token"}),", ",(0,d.jsx)(s.code,{children:"l2Token"}),", ",(0,d.jsx)(s.code,{children:"amount"}),", ",(0,d.jsx)(s.code,{children:"signer"}),", ",(0,d.jsx)(s.code,{children:"opts"}),"?): ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"Approves a deposit into the L2 chain."}),"\n",(0,d.jsx)(s.h4,{id:"parameters-8",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l1Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"The L1 token address."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l2Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"The L2 token address."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"amount"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,d.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"Amount of the token to approve."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"signer"}),": ",(0,d.jsx)(s.code,{children:"Signer"})]}),"\n",(0,d.jsx)(s.p,{children:"Signer used to sign and send the transaction."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts?"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,d.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,d.jsx)(s.p,{children:"Additional options."}),"\n",(0,d.jsx)(s.h4,{id:"returns-8",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n",(0,d.jsx)(s.p,{children:"Transaction response for the approval transaction."}),"\n",(0,d.jsx)(s.h4,{id:"inherited-from-5",children:"Inherited from"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter",children:(0,d.jsx)(s.code,{children:"StandardBridgeAdapter"})}),".",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter#approve-2",children:(0,d.jsx)(s.code,{children:"approve"})})]}),"\n",(0,d.jsx)(s.h4,{id:"source-7",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/standard-bridge.ts:250"}),"\n",(0,d.jsx)(s.hr,{}),"\n",(0,d.jsx)(s.h3,{id:"deposit-2",children:"deposit()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"deposit"}),"(",(0,d.jsx)(s.code,{children:"l1Token"}),", ",(0,d.jsx)(s.code,{children:"l2Token"}),", ",(0,d.jsx)(s.code,{children:"amount"}),", ",(0,d.jsx)(s.code,{children:"signer"}),", ",(0,d.jsx)(s.code,{children:"opts"}),"?): ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"Deposits some tokens into the L2 chain."}),"\n",(0,d.jsx)(s.h4,{id:"parameters-9",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l1Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"The L1 token address."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l2Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"The L2 token address."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"amount"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,d.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"Amount of the token to deposit."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"signer"}),": ",(0,d.jsx)(s.code,{children:"Signer"})]}),"\n",(0,d.jsx)(s.p,{children:"Signer used to sign and send the transaction."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts?"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,d.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,d.jsx)(s.p,{children:"Additional options."}),"\n",(0,d.jsx)(s.h4,{id:"returns-9",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n",(0,d.jsx)(s.p,{children:"Transaction response for the deposit transaction."}),"\n",(0,d.jsx)(s.h4,{id:"inherited-from-6",children:"Inherited from"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter",children:(0,d.jsx)(s.code,{children:"StandardBridgeAdapter"})}),".",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter#deposit-2",children:(0,d.jsx)(s.code,{children:"deposit"})})]}),"\n",(0,d.jsx)(s.h4,{id:"source-8",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/standard-bridge.ts:262"}),"\n",(0,d.jsx)(s.hr,{}),"\n",(0,d.jsx)(s.h3,{id:"getdepositsbyaddress",children:"getDepositsByAddress()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"getDepositsByAddress"}),"(",(0,d.jsx)(s.code,{children:"address"}),", ",(0,d.jsx)(s.code,{children:"opts"}),"?): ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage",children:(0,d.jsx)(s.code,{children:"TokenBridgeMessage"})}),"[]>"]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"Gets all deposits for a given address."}),"\n",(0,d.jsx)(s.h4,{id:"parameters-10",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"address"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"Address to search for messages from."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts?"})]}),"\n",(0,d.jsx)(s.p,{children:"Options object."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts.fromBlock?"}),": ",(0,d.jsx)(s.code,{children:"BlockTag"})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts.toBlock?"}),": ",(0,d.jsx)(s.code,{children:"BlockTag"})]}),"\n",(0,d.jsx)(s.h4,{id:"returns-10",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage",children:(0,d.jsx)(s.code,{children:"TokenBridgeMessage"})}),"[]>"]}),"\n",(0,d.jsx)(s.p,{children:"All deposit token bridge messages sent by the given address."}),"\n",(0,d.jsx)(s.h4,{id:"overrides-2",children:"Overrides"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter",children:(0,d.jsx)(s.code,{children:"StandardBridgeAdapter"})}),".",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter#getdepositsbyaddress",children:(0,d.jsx)(s.code,{children:"getDepositsByAddress"})})]}),"\n",(0,d.jsx)(s.h4,{id:"source-9",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/eth-bridge.ts:30"}),"\n",(0,d.jsx)(s.hr,{}),"\n",(0,d.jsx)(s.h3,{id:"getwithdrawalsbyaddress",children:"getWithdrawalsByAddress()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"getWithdrawalsByAddress"}),"(",(0,d.jsx)(s.code,{children:"address"}),", ",(0,d.jsx)(s.code,{children:"opts"}),"?): ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage",children:(0,d.jsx)(s.code,{children:"TokenBridgeMessage"})}),"[]>"]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"Gets all withdrawals for a given address."}),"\n",(0,d.jsx)(s.h4,{id:"parameters-11",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"address"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"Address to search for messages from."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts?"})]}),"\n",(0,d.jsx)(s.p,{children:"Options object."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts.fromBlock?"}),": ",(0,d.jsx)(s.code,{children:"BlockTag"})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts.toBlock?"}),": ",(0,d.jsx)(s.code,{children:"BlockTag"})]}),"\n",(0,d.jsx)(s.h4,{id:"returns-11",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage",children:(0,d.jsx)(s.code,{children:"TokenBridgeMessage"})}),"[]>"]}),"\n",(0,d.jsx)(s.p,{children:"All withdrawal token bridge messages sent by the given address."}),"\n",(0,d.jsx)(s.h4,{id:"overrides-3",children:"Overrides"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter",children:(0,d.jsx)(s.code,{children:"StandardBridgeAdapter"})}),".",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter#getwithdrawalsbyaddress",children:(0,d.jsx)(s.code,{children:"getWithdrawalsByAddress"})})]}),"\n",(0,d.jsx)(s.h4,{id:"source-10",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/eth-bridge.ts:64"}),"\n",(0,d.jsx)(s.hr,{}),"\n",(0,d.jsx)(s.h3,{id:"supportstokenpair",children:"supportsTokenPair()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"supportsTokenPair"}),"(",(0,d.jsx)(s.code,{children:"l1Token"}),", ",(0,d.jsx)(s.code,{children:"l2Token"}),"): ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"boolean"}),">"]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"Checks whether the given token pair is supported by the bridge."}),"\n",(0,d.jsx)(s.h4,{id:"parameters-12",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l1Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"The L1 token address."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l2Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"The L2 token address."}),"\n",(0,d.jsx)(s.h4,{id:"returns-12",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"boolean"}),">"]}),"\n",(0,d.jsx)(s.p,{children:"Whether the given token pair is supported by the bridge."}),"\n",(0,d.jsx)(s.h4,{id:"overrides-4",children:"Overrides"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter",children:(0,d.jsx)(s.code,{children:"StandardBridgeAdapter"})}),".",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter#supportstokenpair",children:(0,d.jsx)(s.code,{children:"supportsTokenPair"})})]}),"\n",(0,d.jsx)(s.h4,{id:"source-11",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/eth-bridge.ts:105"}),"\n",(0,d.jsx)(s.hr,{}),"\n",(0,d.jsx)(s.h3,{id:"withdraw-2",children:"withdraw()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"withdraw"}),"(",(0,d.jsx)(s.code,{children:"l1Token"}),", ",(0,d.jsx)(s.code,{children:"l2Token"}),", ",(0,d.jsx)(s.code,{children:"amount"}),", ",(0,d.jsx)(s.code,{children:"signer"}),", ",(0,d.jsx)(s.code,{children:"opts"}),"?): ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"Withdraws some tokens back to the L1 chain."}),"\n",(0,d.jsx)(s.h4,{id:"parameters-13",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l1Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"The L1 token address."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l2Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"The L2 token address."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"amount"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,d.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"Amount of the token to withdraw."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"signer"}),": ",(0,d.jsx)(s.code,{children:"Signer"})]}),"\n",(0,d.jsx)(s.p,{children:"Signer used to sign and send the transaction."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts?"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,d.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,d.jsx)(s.p,{children:"Additional options."}),"\n",(0,d.jsx)(s.h4,{id:"returns-13",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n",(0,d.jsx)(s.p,{children:"Transaction response for the withdraw transaction."}),"\n",(0,d.jsx)(s.h4,{id:"inherited-from-7",children:"Inherited from"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter",children:(0,d.jsx)(s.code,{children:"StandardBridgeAdapter"})}),".",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter#withdraw-2",children:(0,d.jsx)(s.code,{children:"withdraw"})})]}),"\n",(0,d.jsx)(s.h4,{id:"source-12",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/standard-bridge.ts:274"})]})}function a(e={}){const{wrapper:s}={...(0,n.R)(),...e.components};return s?(0,d.jsx)(s,{...e,children:(0,d.jsx)(t,{...e})}):t(e)}},1582:(e,s,r)=>{r.d(s,{R:()=>l,x:()=>c});var d=r(758);const n={},i=d.createContext(n);function l(e){const s=d.useContext(i);return d.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:l(e.components),d.createElement(i.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/59f4fb6c.43a18475.js b/build/assets/js/59f4fb6c.b63e39f4.js similarity index 91% rename from build/assets/js/59f4fb6c.43a18475.js rename to build/assets/js/59f4fb6c.b63e39f4.js index 21ece2612..691b73cf0 100644 --- a/build/assets/js/59f4fb6c.43a18475.js +++ b/build/assets/js/59f4fb6c.b63e39f4.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[3186],{5637:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>s,default:()=>d,frontMatter:()=>r,metadata:()=>c,toc:()=>l});var o=t(3274),i=t(2333);const r={title:"Transactions Life Cycle",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},s=void 0,c={id:"how-morph-works/general-protocol-design/transactions-life-cycle",title:"Transactions Life Cycle",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/how-morph-works/general-protocol-design/4-transactions-life-cycle.md",sourceDirName:"how-morph-works/general-protocol-design",slug:"/how-morph-works/general-protocol-design/transactions-life-cycle",permalink:"/docs/how-morph-works/general-protocol-design/transactions-life-cycle",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/how-morph-works/general-protocol-design/4-transactions-life-cycle.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{title:"Transactions Life Cycle",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"Communication between Morph and Ethereum",permalink:"/docs/how-morph-works/general-protocol-design/communicate-between-morph-and-ethereum"},next:{title:"Difference between Morph and Ethereum",permalink:"/docs/how-morph-works/general-protocol-design/difference-between-ethereum-and-morph"}},a={},l=[{value:"How is a L2 transaction processed on Morph",id:"how-is-a-l2-transaction-processed-on-morph",level:2},{value:"Morph Transaction Status",id:"morph-transaction-status",level:2},{value:"Processing\u200b",id:"processing",level:3},{value:"Confirmed\u200b",id:"confirmed",level:3},{value:"Safe",id:"safe",level:3},{value:"Finalized\u200b",id:"finalized",level:3}];function h(e){const n={a:"a",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",...(0,i.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.h2,{id:"how-is-a-l2-transaction-processed-on-morph",children:"How is a L2 transaction processed on Morph"}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsx)(n.li,{children:"Submit Transaction"}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:"User-initiated transactions are first sent to the L2 node's mempool, where they await selection and processing by a sequencer."}),"\n",(0,o.jsxs)(n.ol,{start:"2",children:["\n",(0,o.jsx)(n.li,{children:"Transaction Consensus"}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:"Within the sequencer network, transactions undergo a consensus process. A selected sequencer proposes a block containing the transaction and then send the blocks to the consensus layer (consensus client)."}),"\n",(0,o.jsx)(n.p,{children:"Other sequencers then validate this block by executing this block, effectively verifying the transaction's legitimacy."}),"\n",(0,o.jsxs)(n.ol,{start:"3",children:["\n",(0,o.jsx)(n.li,{children:"Transaction Execution"}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:"Once all the votes on the block are finalized, each sequencer & node will apply this block to update its local state."}),"\n",(0,o.jsxs)(n.ol,{start:"4",children:["\n",(0,o.jsx)(n.li,{children:"Transaction Batching"}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:"When batch point is reached, each sequencer will need to construct the batch with all the blocks consensussed for the last epoch, the batch will go through consensus by requiring each sequencer to sign, all of the signature will be aggregated with BLS signature."}),"\n",(0,o.jsxs)(n.ol,{start:"5",children:["\n",(0,o.jsx)(n.li,{children:"Batch Sequencing"}),"\n"]}),"\n",(0,o.jsxs)(n.p,{children:["The ",(0,o.jsx)(n.a,{href:"/docs/how-morph-works/general-protocol-design/rollup",children:"selected sequencer"})," will commit the batches to the Layer 1 Rollup contract for both verification and to ensure data availability."]}),"\n",(0,o.jsxs)(n.ol,{start:"6",children:["\n",(0,o.jsx)(n.li,{children:"Batch Verification"}),"\n"]}),"\n",(0,o.jsxs)(n.p,{children:["A batch (so do the transactions within the batch) will first go through the BLS signature verification by the rollup contract to confirm the L2 consensus results, and then a batch will go through a ",(0,o.jsx)(n.a,{href:"/docs/how-morph-works/optimistic-zkevm",children:"challenge period"})," to be marked as finalized, solidifying their status within the L1 and L2 state."]}),"\n",(0,o.jsx)(n.h2,{id:"morph-transaction-status",children:"Morph Transaction Status"}),"\n",(0,o.jsx)(n.h3,{id:"processing",children:"Processing\u200b"}),"\n",(0,o.jsx)(n.p,{children:"Once submitted, a transaction enters the consensus phase managed by sequencers and is placed into a block pre-execution."}),"\n",(0,o.jsx)(n.h3,{id:"confirmed",children:"Confirmed\u200b"}),"\n",(0,o.jsx)(n.p,{children:"Post-execution by the Sequencer, the transaction\u2019s updated state is local to L2. It is then batched and sent to L1, where it must undergo a challenge period before finalization."}),"\n",(0,o.jsx)(n.h3,{id:"safe",children:"Safe"}),"\n",(0,o.jsx)(n.p,{children:"The batch that contains the transaction is submitted to Layer 1 but not finalized yet."}),"\n",(0,o.jsx)(n.h3,{id:"finalized",children:"Finalized\u200b"}),"\n",(0,o.jsx)(n.p,{children:"A transaction is considered finalized after it survives the challenge period or is verified by a Zero-Knowledge Proof (ZK-Proof). Only then is it officially integrated into the final L1 and L2 state."})]})}function d(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(h,{...e})}):h(e)}},2333:(e,n,t)=>{t.d(n,{R:()=>s,x:()=>c});var o=t(9474);const i={},r=o.createContext(i);function s(e){const n=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),o.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[3186],{1615:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>s,default:()=>d,frontMatter:()=>r,metadata:()=>c,toc:()=>l});var o=t(6070),i=t(1582);const r={title:"Transactions Life Cycle",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},s=void 0,c={id:"how-morph-works/general-protocol-design/transactions-life-cycle",title:"Transactions Life Cycle",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/how-morph-works/general-protocol-design/4-transactions-life-cycle.md",sourceDirName:"how-morph-works/general-protocol-design",slug:"/how-morph-works/general-protocol-design/transactions-life-cycle",permalink:"/docs/how-morph-works/general-protocol-design/transactions-life-cycle",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/how-morph-works/general-protocol-design/4-transactions-life-cycle.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{title:"Transactions Life Cycle",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"Communication between Morph and Ethereum",permalink:"/docs/how-morph-works/general-protocol-design/communicate-between-morph-and-ethereum"},next:{title:"Difference between Morph and Ethereum",permalink:"/docs/how-morph-works/general-protocol-design/difference-between-ethereum-and-morph"}},a={},l=[{value:"How is a L2 transaction processed on Morph",id:"how-is-a-l2-transaction-processed-on-morph",level:2},{value:"Morph Transaction Status",id:"morph-transaction-status",level:2},{value:"Processing\u200b",id:"processing",level:3},{value:"Confirmed\u200b",id:"confirmed",level:3},{value:"Safe",id:"safe",level:3},{value:"Finalized\u200b",id:"finalized",level:3}];function h(e){const n={a:"a",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",...(0,i.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.h2,{id:"how-is-a-l2-transaction-processed-on-morph",children:"How is a L2 transaction processed on Morph"}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsx)(n.li,{children:"Submit Transaction"}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:"User-initiated transactions are first sent to the L2 node's mempool, where they await selection and processing by a sequencer."}),"\n",(0,o.jsxs)(n.ol,{start:"2",children:["\n",(0,o.jsx)(n.li,{children:"Transaction Consensus"}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:"Within the sequencer network, transactions undergo a consensus process. A selected sequencer proposes a block containing the transaction and then send the blocks to the consensus layer (consensus client)."}),"\n",(0,o.jsx)(n.p,{children:"Other sequencers then validate this block by executing this block, effectively verifying the transaction's legitimacy."}),"\n",(0,o.jsxs)(n.ol,{start:"3",children:["\n",(0,o.jsx)(n.li,{children:"Transaction Execution"}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:"Once all the votes on the block are finalized, each sequencer & node will apply this block to update its local state."}),"\n",(0,o.jsxs)(n.ol,{start:"4",children:["\n",(0,o.jsx)(n.li,{children:"Transaction Batching"}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:"When batch point is reached, each sequencer will need to construct the batch with all the blocks consensussed for the last epoch, the batch will go through consensus by requiring each sequencer to sign, all of the signature will be aggregated with BLS signature."}),"\n",(0,o.jsxs)(n.ol,{start:"5",children:["\n",(0,o.jsx)(n.li,{children:"Batch Sequencing"}),"\n"]}),"\n",(0,o.jsxs)(n.p,{children:["The ",(0,o.jsx)(n.a,{href:"/docs/how-morph-works/general-protocol-design/rollup",children:"selected sequencer"})," will commit the batches to the Layer 1 Rollup contract for both verification and to ensure data availability."]}),"\n",(0,o.jsxs)(n.ol,{start:"6",children:["\n",(0,o.jsx)(n.li,{children:"Batch Verification"}),"\n"]}),"\n",(0,o.jsxs)(n.p,{children:["A batch (so do the transactions within the batch) will first go through the BLS signature verification by the rollup contract to confirm the L2 consensus results, and then a batch will go through a ",(0,o.jsx)(n.a,{href:"/docs/how-morph-works/optimistic-zkevm",children:"challenge period"})," to be marked as finalized, solidifying their status within the L1 and L2 state."]}),"\n",(0,o.jsx)(n.h2,{id:"morph-transaction-status",children:"Morph Transaction Status"}),"\n",(0,o.jsx)(n.h3,{id:"processing",children:"Processing\u200b"}),"\n",(0,o.jsx)(n.p,{children:"Once submitted, a transaction enters the consensus phase managed by sequencers and is placed into a block pre-execution."}),"\n",(0,o.jsx)(n.h3,{id:"confirmed",children:"Confirmed\u200b"}),"\n",(0,o.jsx)(n.p,{children:"Post-execution by the Sequencer, the transaction\u2019s updated state is local to L2. It is then batched and sent to L1, where it must undergo a challenge period before finalization."}),"\n",(0,o.jsx)(n.h3,{id:"safe",children:"Safe"}),"\n",(0,o.jsx)(n.p,{children:"The batch that contains the transaction is submitted to Layer 1 but not finalized yet."}),"\n",(0,o.jsx)(n.h3,{id:"finalized",children:"Finalized\u200b"}),"\n",(0,o.jsx)(n.p,{children:"A transaction is considered finalized after it survives the challenge period or is verified by a Zero-Knowledge Proof (ZK-Proof). Only then is it officially integrated into the final L1 and L2 state."})]})}function d(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(h,{...e})}):h(e)}},1582:(e,n,t)=>{t.d(n,{R:()=>s,x:()=>c});var o=t(758);const i={},r=o.createContext(i);function s(e){const n=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),o.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/5a91095f.da8a5e5b.js b/build/assets/js/5a91095f.bc5d777d.js similarity index 78% rename from build/assets/js/5a91095f.da8a5e5b.js rename to build/assets/js/5a91095f.bc5d777d.js index c8dd07ca6..7a0fa20f9 100644 --- a/build/assets/js/5a91095f.da8a5e5b.js +++ b/build/assets/js/5a91095f.bc5d777d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[6819],{7038:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>d,contentTitle:()=>i,default:()=>a,frontMatter:()=>t,metadata:()=>c,toc:()=>l});var s=r(3274),o=r(2333);const t={},i="Type alias: NumberLike",c={id:"build-on-morph/sdk/type-aliases/NumberLike",title:"NumberLike",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/type-aliases/NumberLike.md",sourceDirName:"build-on-morph/sdk/type-aliases",slug:"/build-on-morph/sdk/type-aliases/NumberLike",permalink:"/docs/build-on-morph/sdk/type-aliases/NumberLike",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/type-aliases/NumberLike.md",tags:[],version:"current",frontMatter:{}},d={},l=[{value:"Source",id:"source",level:2}];function u(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,o.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,s.jsx)(n.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,s.jsx)(n.strong,{children:"Docs"})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / NumberLike"]}),"\n",(0,s.jsx)(n.h1,{id:"type-alias-numberlike",children:"Type alias: NumberLike"}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"NumberLike"}),": ",(0,s.jsx)(n.code,{children:"string"})," | ",(0,s.jsx)(n.code,{children:"number"})," | ",(0,s.jsx)(n.code,{children:"BigNumber"})," | ",(0,s.jsx)(n.code,{children:"bigint"})]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Stuff that can be coerced into a number."}),"\n",(0,s.jsx)(n.h2,{id:"source",children:"Source"}),"\n",(0,s.jsx)(n.p,{children:"src/interfaces/types.ts:396"})]})}function a(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(u,{...e})}):u(e)}},2333:(e,n,r)=>{r.d(n,{R:()=>i,x:()=>c});var s=r(9474);const o={},t=s.createContext(o);function i(e){const n=s.useContext(t);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),s.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[6819],{4284:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>d,contentTitle:()=>i,default:()=>a,frontMatter:()=>t,metadata:()=>c,toc:()=>l});var s=r(6070),o=r(1582);const t={},i="Type alias: NumberLike",c={id:"build-on-morph/sdk/type-aliases/NumberLike",title:"NumberLike",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/type-aliases/NumberLike.md",sourceDirName:"build-on-morph/sdk/type-aliases",slug:"/build-on-morph/sdk/type-aliases/NumberLike",permalink:"/docs/build-on-morph/sdk/type-aliases/NumberLike",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/type-aliases/NumberLike.md",tags:[],version:"current",frontMatter:{}},d={},l=[{value:"Source",id:"source",level:2}];function u(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,o.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,s.jsx)(n.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,s.jsx)(n.strong,{children:"Docs"})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / NumberLike"]}),"\n",(0,s.jsx)(n.h1,{id:"type-alias-numberlike",children:"Type alias: NumberLike"}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"NumberLike"}),": ",(0,s.jsx)(n.code,{children:"string"})," | ",(0,s.jsx)(n.code,{children:"number"})," | ",(0,s.jsx)(n.code,{children:"BigNumber"})," | ",(0,s.jsx)(n.code,{children:"bigint"})]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Stuff that can be coerced into a number."}),"\n",(0,s.jsx)(n.h2,{id:"source",children:"Source"}),"\n",(0,s.jsx)(n.p,{children:"src/interfaces/types.ts:396"})]})}function a(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(u,{...e})}):u(e)}},1582:(e,n,r)=>{r.d(n,{R:()=>i,x:()=>c});var s=r(758);const o={},t=s.createContext(o);function i(e){const n=s.useContext(t);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),s.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/5aa3c257.a2b68266.js b/build/assets/js/5aa3c257.869d8531.js similarity index 96% rename from build/assets/js/5aa3c257.a2b68266.js rename to build/assets/js/5aa3c257.869d8531.js index d9a735951..ff039132b 100644 --- a/build/assets/js/5aa3c257.a2b68266.js +++ b/build/assets/js/5aa3c257.869d8531.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[7362],{1591:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>h,contentTitle:()=>a,default:()=>l,frontMatter:()=>i,metadata:()=>o,toc:()=>d});var r=t(3274),n=t(2333);const i={title:"Communication between Morph and Ethereum",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},a=void 0,o={id:"how-morph-works/general-protocol-design/communicate-between-morph-and-ethereum",title:"Communication between Morph and Ethereum",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/how-morph-works/general-protocol-design/2-communicate-between-morph-and-ethereum.md",sourceDirName:"how-morph-works/general-protocol-design",slug:"/how-morph-works/general-protocol-design/communicate-between-morph-and-ethereum",permalink:"/docs/how-morph-works/general-protocol-design/communicate-between-morph-and-ethereum",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/how-morph-works/general-protocol-design/2-communicate-between-morph-and-ethereum.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{title:"Communication between Morph and Ethereum",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"Rollup",permalink:"/docs/how-morph-works/general-protocol-design/rollup"},next:{title:"Transactions Life Cycle",permalink:"/docs/how-morph-works/general-protocol-design/transactions-life-cycle"}},h={},d=[{value:"The Basics of Morph - Ethereum Bridge\u200b",id:"the-basics-of-morph---ethereum-bridge",level:2},{value:"Understanding the Gateway",id:"understanding-the-gateway",level:2},{value:"Deposit (L1 to L2 message)",id:"deposit-l1-to-l2-message",level:2},{value:"Constructing a Deposit Request Through the Gateway",id:"constructing-a-deposit-request-through-the-gateway",level:3},{value:"Passing the Message Through the CrossDomainMessenger",id:"passing-the-message-through-the-crossdomainmessenger",level:3},{value:"Executing the Message on Layer 2",id:"executing-the-message-on-layer-2",level:3},{value:"How to make sure Sequencer doesn't fake a deposit transaction?",id:"how-to-make-sure-sequencer-doesnt-fake-a-deposit-transaction",level:3},{value:"Finalizing the Deposit Message",id:"finalizing-the-deposit-message",level:3},{value:"Withdraw (L2 -> L1 message)",id:"withdraw-l2---l1-message",level:2},{value:"Finalizing a Withdrawal",id:"finalizing-a-withdrawal",level:3},{value:"Understanding the Withdraw Tree",id:"understanding-the-withdraw-tree",level:3},{value:"Understanding the Challenge Period & Batch Finalization",id:"understanding-the-challenge-period--batch-finalization",level:3},{value:"Cross-layer (Bridge) Errors",id:"cross-layer-bridge-errors",level:2},{value:"Cross-layer (Bridge) Failure Scenarios:",id:"cross-layer-bridge-failure-scenarios",level:3},{value:"Handling Cross-layer (Bridge) Failures:",id:"handling-cross-layer-bridge-failures",level:3}];function c(e){const s={code:"code",h2:"h2",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,n.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(s.p,{children:"Although Morph is a Layer 2 solution built atop Ethereum, it remains a separate and distinct blockchain. Thus, it\u2019s essential to establish a communication channel between Morph and Ethereum to facilitate the smooth transfer of assets and messages. The communication can occur in two directions: from Ethereum to Morph and from Morph to Ethereum."}),"\n",(0,r.jsx)(s.h2,{id:"the-basics-of-morph---ethereum-bridge",children:"The Basics of Morph - Ethereum Bridge\u200b"}),"\n",(0,r.jsx)(s.p,{children:"Transferring assets between Ethereum and Morph involves the following process:"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["\n",(0,r.jsx)(s.p,{children:'Asset Locking and Wrapping: To initiate the transfer, a user must lock their asset on the cross-layer bridge. When the lock is confirmed, Morph mints a Wrapped Token that represents the value of the locked asset, in a procedure referred to as a "deposit".'}),"\n"]}),"\n",(0,r.jsxs)(s.li,{children:["\n",(0,r.jsx)(s.p,{children:"Asset Reception: Following the minting, the user or intended recipient will receive the asset on Morph, reflecting the value of the originally locked asset."}),"\n"]}),"\n",(0,r.jsxs)(s.li,{children:["\n",(0,r.jsx)(s.p,{children:'Reverse Process: Conversely, to transfer assets back to Ethereum, the bridge can unlock the original asset on Ethereum by burning the Wrapped Token on Morph. This is referred to as "withdraw".'}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Furthermore, the bridge\u2019s utility extends beyond asset transfers. It employs the same foundational principle for message transfers, enabling the conveyance of data payloads across two network layers."}),"\n",(0,r.jsx)(s.h2,{id:"understanding-the-gateway",children:"Understanding the Gateway"}),"\n",(0,r.jsx)(s.p,{children:"The Gateway serves as the primary entry point for users to interact with the entire bridge system. While the core process of transferring assets across layers still relies on message transmission, we recommend using the Gateway approach for efficient cross-layer transactions."}),"\n",(0,r.jsx)(s.p,{children:"Catering to diverse cross-layer asset transfer needs, we have designed distinct Gateways such as the ETH Gateway, standard ERC20 Gateway, and others."}),"\n",(0,r.jsx)(s.p,{children:"Furthermore, we have implemented the Gateway Router to call on different Gateways based on the type of assets you have. This facilitates seamless interaction with the Gateway Router contract."}),"\n",(0,r.jsxs)(s.table,{children:[(0,r.jsx)(s.thead,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.th,{children:"L1 Gateway Contract"}),(0,r.jsx)(s.th,{children:"Description"})]})}),(0,r.jsxs)(s.tbody,{children:[(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"L1GatewayRouter"})}),(0,r.jsx)(s.td,{children:"The gateway router supports the deposit of ETH and ERC20 tokens."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"L1ETHGateway"})}),(0,r.jsx)(s.td,{children:"The gateway to deposit ETH."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"L1StandardERC20Gateway"})}),(0,r.jsx)(s.td,{children:"The gateway for standard ERC20 token deposits."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"L1CustomERC20Gateway"})}),(0,r.jsx)(s.td,{children:"The gateway for custom ERC20 token deposits."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"L1WETHGateway"})}),(0,r.jsx)(s.td,{children:"The gateway for Wrapped ETH deposits."})]})]})]}),"\n",(0,r.jsxs)(s.table,{children:[(0,r.jsx)(s.thead,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.th,{children:"L2 Gateway Contract"}),(0,r.jsx)(s.th,{children:"Description"})]})}),(0,r.jsxs)(s.tbody,{children:[(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"L2GatewayRouter"})}),(0,r.jsx)(s.td,{children:"The gateway router supports the withdraw of ETH and ERC20 tokens."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"L2ETHGateway"})}),(0,r.jsx)(s.td,{children:"The gateway to withdraw ETH."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"L2StandardERC20Gateway"})}),(0,r.jsx)(s.td,{children:"The gateway for standard ERC20 token withdraw."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"L2CustomERC20Gateway"})}),(0,r.jsx)(s.td,{children:"The gateway for custom ERC20 token withdraw."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"L2WETHGateway"})}),(0,r.jsx)(s.td,{children:"The gateway for Wrapped ETH withdraw."})]})]})]}),"\n",(0,r.jsx)(s.h2,{id:"deposit-l1-to-l2-message",children:"Deposit (L1 to L2 message)"}),"\n",(0,r.jsx)(s.p,{children:(0,r.jsx)(s.img,{alt:"Deposit Process",src:t(5996).A+"",width:"2516",height:"3640"})}),"\n",(0,r.jsx)(s.h3,{id:"constructing-a-deposit-request-through-the-gateway",children:"Constructing a Deposit Request Through the Gateway"}),"\n",(0,r.jsx)(s.p,{children:"A bridge request, whether it is for ETH, ERC20, or ERC721, is essentially a cross-layer message, which necessitates the initial construction of a message."}),"\n",(0,r.jsx)(s.p,{children:"Generally, the message structure remains consistent, especially for ETH & ERC20 Gateways."}),"\n",(0,r.jsxs)(s.p,{children:["Employing a token gateway compiles a standard token gateway message and relays it to the ",(0,r.jsx)(s.code,{children:"CrossDomainMessenger"}),"."]}),"\n",(0,r.jsx)(s.h3,{id:"passing-the-message-through-the-crossdomainmessenger",children:"Passing the Message Through the CrossDomainMessenger"}),"\n",(0,r.jsxs)(s.p,{children:["The ",(0,r.jsx)(s.code,{children:"CrossDomainMessenger"})," serves as the core unit of cross-layer communication,\nwith corresponding messenger contracts on both Layer 1 and Layer 2."]}),"\n",(0,r.jsx)(s.p,{children:"For a deposit, the L1 messenger sends a message to the L2 messenger, akin to a contract call on Layer 1, which means custom messages (contract interactions) can be constructed to perform various types of cross-layer interactions."}),"\n",(0,r.jsx)(s.h3,{id:"executing-the-message-on-layer-2",children:"Executing the Message on Layer 2"}),"\n",(0,r.jsxs)(s.p,{children:["The cross-domain message is delivered to the ",(0,r.jsx)(s.code,{children:"L1MessageQueueWithGasPriceOracle"}),", which then triggers an event called ",(0,r.jsx)(s.code,{children:"QueueTransaction"}),"."]}),"\n",(0,r.jsx)(s.p,{children:"The Sequencer will monitor this event and include a Layer 2 transaction in its next block."}),"\n",(0,r.jsx)(s.h3,{id:"how-to-make-sure-sequencer-doesnt-fake-a-deposit-transaction",children:"How to make sure Sequencer doesn't fake a deposit transaction?"}),"\n",(0,r.jsx)(s.p,{children:"Sequencers may have the motivation to forge a non-existent deposit transaction, such as minting a large amount of Layer 2 tokens and transferring these to an address they own."}),"\n",(0,r.jsx)(s.p,{children:"Morph prevents these risks with two measures:"}),"\n",(0,r.jsx)(s.p,{children:"Due to Morph\u2019s decentralized Sequencer architecture, forging transactions would require control of at least two-thirds of the Sequencers, a challenging feat."}),"\n",(0,r.jsx)(s.p,{children:"Morph's optimistic zkEVM framework allows challengers to detect such malicious behavior and initiate challenges to correct the misconduct."}),"\n",(0,r.jsx)(s.p,{children:"A Layer 2 executor, holding the cross-layer message, interacts with the L2 messenger to execute the message, which may include transferring L2 ETH or ERC20 tokens to the recipient."}),"\n",(0,r.jsx)(s.h3,{id:"finalizing-the-deposit-message",children:"Finalizing the Deposit Message"}),"\n",(0,r.jsx)(s.p,{children:"The completion of the deposit process involves more than just executing the request on Layer 2. There is a possibility that the Layer 2 execution and its corresponding state update could be reverted due to incorrect batch data being identified through the challenge process."}),"\n",(0,r.jsx)(s.p,{children:"Therefore, a deposit request is only considered complete once the corresponding batch of the deposit execution transaction is finalized."}),"\n",(0,r.jsx)(s.p,{children:"Typically, this follows a simple workflow:"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["\n",(0,r.jsx)(s.p,{children:"The deposit execution transactions are compiled into a batch and submitted to Layer 1 by batch submitters."}),"\n"]}),"\n",(0,r.jsxs)(s.li,{children:["\n",(0,r.jsxs)(s.p,{children:["Following the challenge period, valid batches are finalized by subsequent batch submissions using ",(0,r.jsx)(s.code,{children:"rollup.commitBatch"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(s.li,{children:["\n",(0,r.jsxs)(s.p,{children:["During finalization, the ",(0,r.jsx)(s.code,{children:"L1MessageQueueAndGasPriceOracle"})," removes(pop) the deposit message from the queue, marking the completion of the deposit process."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(s.h2,{id:"withdraw-l2---l1-message",children:"Withdraw (L2 -> L1 message)"}),"\n",(0,r.jsx)(s.p,{children:(0,r.jsx)(s.img,{alt:"Withdraw Process",src:t(5182).A+"",width:"1420",height:"1772"})}),"\n",(0,r.jsx)(s.h3,{id:"finalizing-a-withdrawal",children:"Finalizing a Withdrawal"}),"\n",(0,r.jsx)(s.p,{children:"Unlike Deposits, a withdrawal request must undergo 2 processes for execution:"}),"\n",(0,r.jsxs)(s.ol,{children:["\n",(0,r.jsxs)(s.li,{children:["\n",(0,r.jsx)(s.p,{children:"Prove that a withdraw request actually happened on Layer 2 by verifying a Merkle tree proof against the withdrawal tree root committed by sequencers."}),"\n"]}),"\n",(0,r.jsxs)(s.li,{children:["\n",(0,r.jsx)(s.p,{children:"Wait for the challenge period to end and finalize the withdraw tree root, addressing the risk of sequencer submitting incorrect batch data, including the withdraw tree root."}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(s.p,{children:["Typically, these 2 processes happen at the same time. Once the withdraw tree root is finalized, users can call the ",(0,r.jsx)(s.code,{children:"proveAndRelayMessage"})," method within the ",(0,r.jsx)(s.code,{children:"L1CrossDomainMessenger"})," contract to execute the withdrawal message."]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-solidity",children:"function proveAndRelayMessage(\n address _from,\n address _to,\n uint256 _value,\n uint256 _nonce,\n bytes memory _message,\n bytes32[32] calldata _withdrawalProof,\n bytes32 _withdrawalRoot\n )\n\n"})}),"\n",(0,r.jsx)(s.p,{children:"This function serves two primary purposes:"}),"\n",(0,r.jsxs)(s.ol,{children:["\n",(0,r.jsx)(s.li,{children:"It checks if the withdraw tree root associated with this message has been finalized through the rollup contract."}),"\n",(0,r.jsx)(s.li,{children:"It verifies whether the withdraw request actually occurred by validating the provided Merkle proof."}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Upon successful completion of both processes, this method will execute the corresponding action, such as releasing the user's ETH on Layer 1 for a standard ETH withdrawal request."}),"\n",(0,r.jsx)(s.h3,{id:"understanding-the-withdraw-tree",children:"Understanding the Withdraw Tree"}),"\n",(0,r.jsx)(s.p,{children:"Withdrawal actions involve interacting with L1 assets/contracts as a result of a Layer 2 transaction. Consequently, it\u2019s imperative to verify the existence of a Layer 2 transaction that triggers a withdrawal request, in a manner that is verifiable on Layer 1."}),"\n",(0,r.jsx)(s.p,{children:"To achieve this, we introduce a structure known as a Withdraw Tree, which records every L2 withdrawal transaction within a Merkle tree. Thus, a Merkle tree's properties can be leveraged to confirm a withdrawal request\u2019s occurrence."}),"\n",(0,r.jsx)(s.p,{children:"The term Withdraw Tree refers to an append-only Sparse Merkle Tree (SMT) with leaf nodes that capture information on assets being transferred out of the network.\nEach leaf in the Withdraw Tree, known as a Withdraw leaf, falls into two categories: type 0 for recording asset(s) information and type 1 for recording messaging information."}),"\n",(0,r.jsx)(s.p,{children:"A withdraw leaf, in particular, is a Keccak256 hash of the ABI encoded packed structure with cross domain message."}),"\n",(0,r.jsx)(s.p,{children:"The Withdraw Tree is instrumental in cataloging withdrawal transactions and ascertaining the legitimacy of withdrawal requests."}),"\n",(0,r.jsx)(s.p,{children:"Morph has pre-deployed a Simple Merkle Tree contract dedicated to constructing the Layer 2 withdraw tree."}),"\n",(0,r.jsx)(s.p,{children:"This tree incorporates three methods:"}),"\n",(0,r.jsxs)(s.ol,{children:["\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.code,{children:"getTreeroot"})," - Retrieves the current tree's root hash."]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.code,{children:"appendMessageHash"})," - Appends a new leaf node to the tree."]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.code,{children:"verifyMerkleProof"})," - Verifies if a leaf node exists in the tree, indicating the validity of the bridge request it represents."]}),"\n"]}),"\n",(0,r.jsx)(s.h3,{id:"understanding-the-challenge-period--batch-finalization",children:"Understanding the Challenge Period & Batch Finalization"}),"\n",(0,r.jsx)(s.p,{children:"The Optimistic zkEVM architecture mandates that each L2 transaction be submitted to Layer 1 and undergo a challenge period before finalization."}),"\n",(0,r.jsx)(s.p,{children:"This process is vital to validate the Layer 2 state, eventually validating the authenticity of the withdraw request."}),"\n",(0,r.jsx)(s.p,{children:"The withdraw tree root, integral for withdrawal request verification, is also submitted by sequencers once the challenge period, batches, and states have been finalized."}),"\n",(0,r.jsx)(s.h2,{id:"cross-layer-bridge-errors",children:"Cross-layer (Bridge) Errors"}),"\n",(0,r.jsx)(s.p,{children:"With the design of cross-layer bridges, the cross-layer message for deposits needs to be executed and have its Layer 2 states updated. Sending a cross-chain request successfully does not guarantee its successful execution on L2."}),"\n",(0,r.jsx)(s.p,{children:"Prior to this, there is a possibility of the cross-layer message failing during execution on Layer 2.\nThis section outlines the potential scenarios and solutions for handling failed cross-layer deposit messages."}),"\n",(0,r.jsx)(s.h3,{id:"cross-layer-bridge-failure-scenarios",children:"Cross-layer (Bridge) Failure Scenarios:"}),"\n",(0,r.jsx)(s.p,{children:"Two primary types of failures can occur in cross-layer (bridge) communications:"}),"\n",(0,r.jsxs)(s.ol,{children:["\n",(0,r.jsxs)(s.li,{children:["\n",(0,r.jsx)(s.p,{children:"Gas Failure: Cross-layer messages sent from the L1 to the L2 might fail during execution on the L2 due to limitations in gasLimit or code logic."}),"\n"]}),"\n",(0,r.jsxs)(s.li,{children:["\n",(0,r.jsx)(s.p,{children:"Skipped Message: Some data executions may trigger overflows in the circuits of L2 nodes, leading to the omission or skipping of cross-layer messages."}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(s.h3,{id:"handling-cross-layer-bridge-failures",children:"Handling Cross-layer (Bridge) Failures:"}),"\n",(0,r.jsx)(s.p,{children:"For Gas Failures:"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["\n",(0,r.jsxs)(s.p,{children:["When the ",(0,r.jsx)(s.code,{children:"L1CrossDomainMessenger"})," contract on L1 dispatches a cross-layer message, it records the corresponding message hash but does not incorporate the gasLimit in this record. Post-execution on L2, the ",(0,r.jsx)(s.code,{children:"L2CrossDomainMessenger"})," performs an equivalent calculation, storing the contract call result in ",(0,r.jsx)(s.code,{children:"mapping(isL1MessageExecuted)"}),". This measure prevents multiple executions of the same message and facilitates the adjustment of gasLimit parameters for replaying failed messages."]}),"\n"]}),"\n",(0,r.jsxs)(s.li,{children:["\n",(0,r.jsxs)(s.p,{children:["Replay Message: If gasLimit is insufficient, causing a failed execution on the L2, a new cross-layer message with a revised gasLimit parameter can be sent by calling ",(0,r.jsx)(s.code,{children:"L1CrossDomainMessenger.replayMessage"}),"."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"For Skipped Messages:"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["\n",(0,r.jsxs)(s.p,{children:["Messages dropped due to potential circuit overflow on the L2 are skipped and not executed. Custom cross-layer calling contracts need to implement the\n",(0,r.jsx)(s.code,{children:"onDropMessage"})," method to consider such cases."]}),"\n"]}),"\n",(0,r.jsxs)(s.li,{children:["\n",(0,r.jsx)(s.p,{children:"The gateway contract includes the onDropMessage method, designed to refund the initiator of the cross-layer message."}),"\n"]}),"\n",(0,r.jsxs)(s.li,{children:["\n",(0,r.jsxs)(s.p,{children:["Calling ",(0,r.jsx)(s.code,{children:"L1CrossDomainMessenger.dropMessage"})," discards the cross-layer message and triggers the onDropMessage method in the originating contract, passing the transaction's value and message as msg.value and method parameters, accordingly."]}),"\n"]}),"\n"]})]})}function l(e={}){const{wrapper:s}={...(0,n.R)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},5996:(e,s,t)=>{t.d(s,{A:()=>r});const r=t.p+"assets/images/deposit-cf5de32f737bb412d4f2e8043a984287.png"},5182:(e,s,t)=>{t.d(s,{A:()=>r});const r=t.p+"assets/images/withdraw-e4ea40dac68ef9cc3ee73a43eb46a3b2.png"},2333:(e,s,t)=>{t.d(s,{R:()=>a,x:()=>o});var r=t(9474);const n={},i=r.createContext(n);function a(e){const s=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:a(e.components),r.createElement(i.Provider,{value:s},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[7362],{4885:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>h,contentTitle:()=>a,default:()=>l,frontMatter:()=>i,metadata:()=>o,toc:()=>d});var r=t(6070),n=t(1582);const i={title:"Communication between Morph and Ethereum",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},a=void 0,o={id:"how-morph-works/general-protocol-design/communicate-between-morph-and-ethereum",title:"Communication between Morph and Ethereum",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/how-morph-works/general-protocol-design/2-communicate-between-morph-and-ethereum.md",sourceDirName:"how-morph-works/general-protocol-design",slug:"/how-morph-works/general-protocol-design/communicate-between-morph-and-ethereum",permalink:"/docs/how-morph-works/general-protocol-design/communicate-between-morph-and-ethereum",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/how-morph-works/general-protocol-design/2-communicate-between-morph-and-ethereum.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{title:"Communication between Morph and Ethereum",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"Rollup",permalink:"/docs/how-morph-works/general-protocol-design/rollup"},next:{title:"Transactions Life Cycle",permalink:"/docs/how-morph-works/general-protocol-design/transactions-life-cycle"}},h={},d=[{value:"The Basics of Morph - Ethereum Bridge\u200b",id:"the-basics-of-morph---ethereum-bridge",level:2},{value:"Understanding the Gateway",id:"understanding-the-gateway",level:2},{value:"Deposit (L1 to L2 message)",id:"deposit-l1-to-l2-message",level:2},{value:"Constructing a Deposit Request Through the Gateway",id:"constructing-a-deposit-request-through-the-gateway",level:3},{value:"Passing the Message Through the CrossDomainMessenger",id:"passing-the-message-through-the-crossdomainmessenger",level:3},{value:"Executing the Message on Layer 2",id:"executing-the-message-on-layer-2",level:3},{value:"How to make sure Sequencer doesn't fake a deposit transaction?",id:"how-to-make-sure-sequencer-doesnt-fake-a-deposit-transaction",level:3},{value:"Finalizing the Deposit Message",id:"finalizing-the-deposit-message",level:3},{value:"Withdraw (L2 -> L1 message)",id:"withdraw-l2---l1-message",level:2},{value:"Finalizing a Withdrawal",id:"finalizing-a-withdrawal",level:3},{value:"Understanding the Withdraw Tree",id:"understanding-the-withdraw-tree",level:3},{value:"Understanding the Challenge Period & Batch Finalization",id:"understanding-the-challenge-period--batch-finalization",level:3},{value:"Cross-layer (Bridge) Errors",id:"cross-layer-bridge-errors",level:2},{value:"Cross-layer (Bridge) Failure Scenarios:",id:"cross-layer-bridge-failure-scenarios",level:3},{value:"Handling Cross-layer (Bridge) Failures:",id:"handling-cross-layer-bridge-failures",level:3}];function c(e){const s={code:"code",h2:"h2",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,n.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(s.p,{children:"Although Morph is a Layer 2 solution built atop Ethereum, it remains a separate and distinct blockchain. Thus, it\u2019s essential to establish a communication channel between Morph and Ethereum to facilitate the smooth transfer of assets and messages. The communication can occur in two directions: from Ethereum to Morph and from Morph to Ethereum."}),"\n",(0,r.jsx)(s.h2,{id:"the-basics-of-morph---ethereum-bridge",children:"The Basics of Morph - Ethereum Bridge\u200b"}),"\n",(0,r.jsx)(s.p,{children:"Transferring assets between Ethereum and Morph involves the following process:"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["\n",(0,r.jsx)(s.p,{children:'Asset Locking and Wrapping: To initiate the transfer, a user must lock their asset on the cross-layer bridge. When the lock is confirmed, Morph mints a Wrapped Token that represents the value of the locked asset, in a procedure referred to as a "deposit".'}),"\n"]}),"\n",(0,r.jsxs)(s.li,{children:["\n",(0,r.jsx)(s.p,{children:"Asset Reception: Following the minting, the user or intended recipient will receive the asset on Morph, reflecting the value of the originally locked asset."}),"\n"]}),"\n",(0,r.jsxs)(s.li,{children:["\n",(0,r.jsx)(s.p,{children:'Reverse Process: Conversely, to transfer assets back to Ethereum, the bridge can unlock the original asset on Ethereum by burning the Wrapped Token on Morph. This is referred to as "withdraw".'}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Furthermore, the bridge\u2019s utility extends beyond asset transfers. It employs the same foundational principle for message transfers, enabling the conveyance of data payloads across two network layers."}),"\n",(0,r.jsx)(s.h2,{id:"understanding-the-gateway",children:"Understanding the Gateway"}),"\n",(0,r.jsx)(s.p,{children:"The Gateway serves as the primary entry point for users to interact with the entire bridge system. While the core process of transferring assets across layers still relies on message transmission, we recommend using the Gateway approach for efficient cross-layer transactions."}),"\n",(0,r.jsx)(s.p,{children:"Catering to diverse cross-layer asset transfer needs, we have designed distinct Gateways such as the ETH Gateway, standard ERC20 Gateway, and others."}),"\n",(0,r.jsx)(s.p,{children:"Furthermore, we have implemented the Gateway Router to call on different Gateways based on the type of assets you have. This facilitates seamless interaction with the Gateway Router contract."}),"\n",(0,r.jsxs)(s.table,{children:[(0,r.jsx)(s.thead,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.th,{children:"L1 Gateway Contract"}),(0,r.jsx)(s.th,{children:"Description"})]})}),(0,r.jsxs)(s.tbody,{children:[(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"L1GatewayRouter"})}),(0,r.jsx)(s.td,{children:"The gateway router supports the deposit of ETH and ERC20 tokens."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"L1ETHGateway"})}),(0,r.jsx)(s.td,{children:"The gateway to deposit ETH."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"L1StandardERC20Gateway"})}),(0,r.jsx)(s.td,{children:"The gateway for standard ERC20 token deposits."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"L1CustomERC20Gateway"})}),(0,r.jsx)(s.td,{children:"The gateway for custom ERC20 token deposits."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"L1WETHGateway"})}),(0,r.jsx)(s.td,{children:"The gateway for Wrapped ETH deposits."})]})]})]}),"\n",(0,r.jsxs)(s.table,{children:[(0,r.jsx)(s.thead,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.th,{children:"L2 Gateway Contract"}),(0,r.jsx)(s.th,{children:"Description"})]})}),(0,r.jsxs)(s.tbody,{children:[(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"L2GatewayRouter"})}),(0,r.jsx)(s.td,{children:"The gateway router supports the withdraw of ETH and ERC20 tokens."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"L2ETHGateway"})}),(0,r.jsx)(s.td,{children:"The gateway to withdraw ETH."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"L2StandardERC20Gateway"})}),(0,r.jsx)(s.td,{children:"The gateway for standard ERC20 token withdraw."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"L2CustomERC20Gateway"})}),(0,r.jsx)(s.td,{children:"The gateway for custom ERC20 token withdraw."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"L2WETHGateway"})}),(0,r.jsx)(s.td,{children:"The gateway for Wrapped ETH withdraw."})]})]})]}),"\n",(0,r.jsx)(s.h2,{id:"deposit-l1-to-l2-message",children:"Deposit (L1 to L2 message)"}),"\n",(0,r.jsx)(s.p,{children:(0,r.jsx)(s.img,{alt:"Deposit Process",src:t(2320).A+"",width:"2516",height:"3640"})}),"\n",(0,r.jsx)(s.h3,{id:"constructing-a-deposit-request-through-the-gateway",children:"Constructing a Deposit Request Through the Gateway"}),"\n",(0,r.jsx)(s.p,{children:"A bridge request, whether it is for ETH, ERC20, or ERC721, is essentially a cross-layer message, which necessitates the initial construction of a message."}),"\n",(0,r.jsx)(s.p,{children:"Generally, the message structure remains consistent, especially for ETH & ERC20 Gateways."}),"\n",(0,r.jsxs)(s.p,{children:["Employing a token gateway compiles a standard token gateway message and relays it to the ",(0,r.jsx)(s.code,{children:"CrossDomainMessenger"}),"."]}),"\n",(0,r.jsx)(s.h3,{id:"passing-the-message-through-the-crossdomainmessenger",children:"Passing the Message Through the CrossDomainMessenger"}),"\n",(0,r.jsxs)(s.p,{children:["The ",(0,r.jsx)(s.code,{children:"CrossDomainMessenger"})," serves as the core unit of cross-layer communication,\nwith corresponding messenger contracts on both Layer 1 and Layer 2."]}),"\n",(0,r.jsx)(s.p,{children:"For a deposit, the L1 messenger sends a message to the L2 messenger, akin to a contract call on Layer 1, which means custom messages (contract interactions) can be constructed to perform various types of cross-layer interactions."}),"\n",(0,r.jsx)(s.h3,{id:"executing-the-message-on-layer-2",children:"Executing the Message on Layer 2"}),"\n",(0,r.jsxs)(s.p,{children:["The cross-domain message is delivered to the ",(0,r.jsx)(s.code,{children:"L1MessageQueueWithGasPriceOracle"}),", which then triggers an event called ",(0,r.jsx)(s.code,{children:"QueueTransaction"}),"."]}),"\n",(0,r.jsx)(s.p,{children:"The Sequencer will monitor this event and include a Layer 2 transaction in its next block."}),"\n",(0,r.jsx)(s.h3,{id:"how-to-make-sure-sequencer-doesnt-fake-a-deposit-transaction",children:"How to make sure Sequencer doesn't fake a deposit transaction?"}),"\n",(0,r.jsx)(s.p,{children:"Sequencers may have the motivation to forge a non-existent deposit transaction, such as minting a large amount of Layer 2 tokens and transferring these to an address they own."}),"\n",(0,r.jsx)(s.p,{children:"Morph prevents these risks with two measures:"}),"\n",(0,r.jsx)(s.p,{children:"Due to Morph\u2019s decentralized Sequencer architecture, forging transactions would require control of at least two-thirds of the Sequencers, a challenging feat."}),"\n",(0,r.jsx)(s.p,{children:"Morph's optimistic zkEVM framework allows challengers to detect such malicious behavior and initiate challenges to correct the misconduct."}),"\n",(0,r.jsx)(s.p,{children:"A Layer 2 executor, holding the cross-layer message, interacts with the L2 messenger to execute the message, which may include transferring L2 ETH or ERC20 tokens to the recipient."}),"\n",(0,r.jsx)(s.h3,{id:"finalizing-the-deposit-message",children:"Finalizing the Deposit Message"}),"\n",(0,r.jsx)(s.p,{children:"The completion of the deposit process involves more than just executing the request on Layer 2. There is a possibility that the Layer 2 execution and its corresponding state update could be reverted due to incorrect batch data being identified through the challenge process."}),"\n",(0,r.jsx)(s.p,{children:"Therefore, a deposit request is only considered complete once the corresponding batch of the deposit execution transaction is finalized."}),"\n",(0,r.jsx)(s.p,{children:"Typically, this follows a simple workflow:"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["\n",(0,r.jsx)(s.p,{children:"The deposit execution transactions are compiled into a batch and submitted to Layer 1 by batch submitters."}),"\n"]}),"\n",(0,r.jsxs)(s.li,{children:["\n",(0,r.jsxs)(s.p,{children:["Following the challenge period, valid batches are finalized by subsequent batch submissions using ",(0,r.jsx)(s.code,{children:"rollup.commitBatch"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(s.li,{children:["\n",(0,r.jsxs)(s.p,{children:["During finalization, the ",(0,r.jsx)(s.code,{children:"L1MessageQueueAndGasPriceOracle"})," removes(pop) the deposit message from the queue, marking the completion of the deposit process."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(s.h2,{id:"withdraw-l2---l1-message",children:"Withdraw (L2 -> L1 message)"}),"\n",(0,r.jsx)(s.p,{children:(0,r.jsx)(s.img,{alt:"Withdraw Process",src:t(7866).A+"",width:"1420",height:"1772"})}),"\n",(0,r.jsx)(s.h3,{id:"finalizing-a-withdrawal",children:"Finalizing a Withdrawal"}),"\n",(0,r.jsx)(s.p,{children:"Unlike Deposits, a withdrawal request must undergo 2 processes for execution:"}),"\n",(0,r.jsxs)(s.ol,{children:["\n",(0,r.jsxs)(s.li,{children:["\n",(0,r.jsx)(s.p,{children:"Prove that a withdraw request actually happened on Layer 2 by verifying a Merkle tree proof against the withdrawal tree root committed by sequencers."}),"\n"]}),"\n",(0,r.jsxs)(s.li,{children:["\n",(0,r.jsx)(s.p,{children:"Wait for the challenge period to end and finalize the withdraw tree root, addressing the risk of sequencer submitting incorrect batch data, including the withdraw tree root."}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(s.p,{children:["Typically, these 2 processes happen at the same time. Once the withdraw tree root is finalized, users can call the ",(0,r.jsx)(s.code,{children:"proveAndRelayMessage"})," method within the ",(0,r.jsx)(s.code,{children:"L1CrossDomainMessenger"})," contract to execute the withdrawal message."]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-solidity",children:"function proveAndRelayMessage(\n address _from,\n address _to,\n uint256 _value,\n uint256 _nonce,\n bytes memory _message,\n bytes32[32] calldata _withdrawalProof,\n bytes32 _withdrawalRoot\n )\n\n"})}),"\n",(0,r.jsx)(s.p,{children:"This function serves two primary purposes:"}),"\n",(0,r.jsxs)(s.ol,{children:["\n",(0,r.jsx)(s.li,{children:"It checks if the withdraw tree root associated with this message has been finalized through the rollup contract."}),"\n",(0,r.jsx)(s.li,{children:"It verifies whether the withdraw request actually occurred by validating the provided Merkle proof."}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Upon successful completion of both processes, this method will execute the corresponding action, such as releasing the user's ETH on Layer 1 for a standard ETH withdrawal request."}),"\n",(0,r.jsx)(s.h3,{id:"understanding-the-withdraw-tree",children:"Understanding the Withdraw Tree"}),"\n",(0,r.jsx)(s.p,{children:"Withdrawal actions involve interacting with L1 assets/contracts as a result of a Layer 2 transaction. Consequently, it\u2019s imperative to verify the existence of a Layer 2 transaction that triggers a withdrawal request, in a manner that is verifiable on Layer 1."}),"\n",(0,r.jsx)(s.p,{children:"To achieve this, we introduce a structure known as a Withdraw Tree, which records every L2 withdrawal transaction within a Merkle tree. Thus, a Merkle tree's properties can be leveraged to confirm a withdrawal request\u2019s occurrence."}),"\n",(0,r.jsx)(s.p,{children:"The term Withdraw Tree refers to an append-only Sparse Merkle Tree (SMT) with leaf nodes that capture information on assets being transferred out of the network.\nEach leaf in the Withdraw Tree, known as a Withdraw leaf, falls into two categories: type 0 for recording asset(s) information and type 1 for recording messaging information."}),"\n",(0,r.jsx)(s.p,{children:"A withdraw leaf, in particular, is a Keccak256 hash of the ABI encoded packed structure with cross domain message."}),"\n",(0,r.jsx)(s.p,{children:"The Withdraw Tree is instrumental in cataloging withdrawal transactions and ascertaining the legitimacy of withdrawal requests."}),"\n",(0,r.jsx)(s.p,{children:"Morph has pre-deployed a Simple Merkle Tree contract dedicated to constructing the Layer 2 withdraw tree."}),"\n",(0,r.jsx)(s.p,{children:"This tree incorporates three methods:"}),"\n",(0,r.jsxs)(s.ol,{children:["\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.code,{children:"getTreeroot"})," - Retrieves the current tree's root hash."]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.code,{children:"appendMessageHash"})," - Appends a new leaf node to the tree."]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.code,{children:"verifyMerkleProof"})," - Verifies if a leaf node exists in the tree, indicating the validity of the bridge request it represents."]}),"\n"]}),"\n",(0,r.jsx)(s.h3,{id:"understanding-the-challenge-period--batch-finalization",children:"Understanding the Challenge Period & Batch Finalization"}),"\n",(0,r.jsx)(s.p,{children:"The Optimistic zkEVM architecture mandates that each L2 transaction be submitted to Layer 1 and undergo a challenge period before finalization."}),"\n",(0,r.jsx)(s.p,{children:"This process is vital to validate the Layer 2 state, eventually validating the authenticity of the withdraw request."}),"\n",(0,r.jsx)(s.p,{children:"The withdraw tree root, integral for withdrawal request verification, is also submitted by sequencers once the challenge period, batches, and states have been finalized."}),"\n",(0,r.jsx)(s.h2,{id:"cross-layer-bridge-errors",children:"Cross-layer (Bridge) Errors"}),"\n",(0,r.jsx)(s.p,{children:"With the design of cross-layer bridges, the cross-layer message for deposits needs to be executed and have its Layer 2 states updated. Sending a cross-chain request successfully does not guarantee its successful execution on L2."}),"\n",(0,r.jsx)(s.p,{children:"Prior to this, there is a possibility of the cross-layer message failing during execution on Layer 2.\nThis section outlines the potential scenarios and solutions for handling failed cross-layer deposit messages."}),"\n",(0,r.jsx)(s.h3,{id:"cross-layer-bridge-failure-scenarios",children:"Cross-layer (Bridge) Failure Scenarios:"}),"\n",(0,r.jsx)(s.p,{children:"Two primary types of failures can occur in cross-layer (bridge) communications:"}),"\n",(0,r.jsxs)(s.ol,{children:["\n",(0,r.jsxs)(s.li,{children:["\n",(0,r.jsx)(s.p,{children:"Gas Failure: Cross-layer messages sent from the L1 to the L2 might fail during execution on the L2 due to limitations in gasLimit or code logic."}),"\n"]}),"\n",(0,r.jsxs)(s.li,{children:["\n",(0,r.jsx)(s.p,{children:"Skipped Message: Some data executions may trigger overflows in the circuits of L2 nodes, leading to the omission or skipping of cross-layer messages."}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(s.h3,{id:"handling-cross-layer-bridge-failures",children:"Handling Cross-layer (Bridge) Failures:"}),"\n",(0,r.jsx)(s.p,{children:"For Gas Failures:"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["\n",(0,r.jsxs)(s.p,{children:["When the ",(0,r.jsx)(s.code,{children:"L1CrossDomainMessenger"})," contract on L1 dispatches a cross-layer message, it records the corresponding message hash but does not incorporate the gasLimit in this record. Post-execution on L2, the ",(0,r.jsx)(s.code,{children:"L2CrossDomainMessenger"})," performs an equivalent calculation, storing the contract call result in ",(0,r.jsx)(s.code,{children:"mapping(isL1MessageExecuted)"}),". This measure prevents multiple executions of the same message and facilitates the adjustment of gasLimit parameters for replaying failed messages."]}),"\n"]}),"\n",(0,r.jsxs)(s.li,{children:["\n",(0,r.jsxs)(s.p,{children:["Replay Message: If gasLimit is insufficient, causing a failed execution on the L2, a new cross-layer message with a revised gasLimit parameter can be sent by calling ",(0,r.jsx)(s.code,{children:"L1CrossDomainMessenger.replayMessage"}),"."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"For Skipped Messages:"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["\n",(0,r.jsxs)(s.p,{children:["Messages dropped due to potential circuit overflow on the L2 are skipped and not executed. Custom cross-layer calling contracts need to implement the\n",(0,r.jsx)(s.code,{children:"onDropMessage"})," method to consider such cases."]}),"\n"]}),"\n",(0,r.jsxs)(s.li,{children:["\n",(0,r.jsx)(s.p,{children:"The gateway contract includes the onDropMessage method, designed to refund the initiator of the cross-layer message."}),"\n"]}),"\n",(0,r.jsxs)(s.li,{children:["\n",(0,r.jsxs)(s.p,{children:["Calling ",(0,r.jsx)(s.code,{children:"L1CrossDomainMessenger.dropMessage"})," discards the cross-layer message and triggers the onDropMessage method in the originating contract, passing the transaction's value and message as msg.value and method parameters, accordingly."]}),"\n"]}),"\n"]})]})}function l(e={}){const{wrapper:s}={...(0,n.R)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},2320:(e,s,t)=>{t.d(s,{A:()=>r});const r=t.p+"assets/images/deposit-cf5de32f737bb412d4f2e8043a984287.png"},7866:(e,s,t)=>{t.d(s,{A:()=>r});const r=t.p+"assets/images/withdraw-e4ea40dac68ef9cc3ee73a43eb46a3b2.png"},1582:(e,s,t)=>{t.d(s,{R:()=>a,x:()=>o});var r=t(758);const n={},i=r.createContext(n);function a(e){const s=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:a(e.components),r.createElement(i.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/5acb1cf6.380e90a3.js b/build/assets/js/5acb1cf6.9f129d6c.js similarity index 75% rename from build/assets/js/5acb1cf6.380e90a3.js rename to build/assets/js/5acb1cf6.9f129d6c.js index 3b6104822..5edfe033b 100644 --- a/build/assets/js/5acb1cf6.380e90a3.js +++ b/build/assets/js/5acb1cf6.9f129d6c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[3210],{5067:(e,r,t)=>{t.r(r),t.d(r,{assets:()=>i,contentTitle:()=>s,default:()=>h,frontMatter:()=>o,metadata:()=>a,toc:()=>c});var n=t(3274),d=t(2333);const o={},s="Interface: BridgeAdapterData",a={id:"build-on-morph/sdk/interfaces/BridgeAdapterData",title:"BridgeAdapterData",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/interfaces/BridgeAdapterData.md",sourceDirName:"build-on-morph/sdk/interfaces",slug:"/build-on-morph/sdk/interfaces/BridgeAdapterData",permalink:"/docs/build-on-morph/sdk/interfaces/BridgeAdapterData",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/interfaces/BridgeAdapterData.md",tags:[],version:"current",frontMatter:{}},i={},c=[{value:"Indexable",id:"indexable",level:2}];function l(e){const r={a:"a",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,d.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,n.jsx)(r.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,n.jsx)(r.strong,{children:"Docs"})]}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / BridgeAdapterData"]}),"\n",(0,n.jsx)(r.h1,{id:"interface-bridgeadapterdata",children:"Interface: BridgeAdapterData"}),"\n",(0,n.jsx)(r.p,{children:"Something that looks like the list of custom bridges."}),"\n",(0,n.jsx)(r.h2,{id:"indexable",children:"Indexable"}),"\n",(0,n.jsxs)(r.p,{children:["[",(0,n.jsx)(r.code,{children:"name"}),": ",(0,n.jsx)(r.code,{children:"string"}),"]: ",(0,n.jsx)(r.code,{children:"object"})]})]})}function h(e={}){const{wrapper:r}={...(0,d.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},2333:(e,r,t)=>{t.d(r,{R:()=>s,x:()=>a});var n=t(9474);const d={},o=n.createContext(d);function s(e){const r=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function a(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:s(e.components),n.createElement(o.Provider,{value:r},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[3210],{3593:(e,r,t)=>{t.r(r),t.d(r,{assets:()=>i,contentTitle:()=>s,default:()=>h,frontMatter:()=>o,metadata:()=>a,toc:()=>c});var n=t(6070),d=t(1582);const o={},s="Interface: BridgeAdapterData",a={id:"build-on-morph/sdk/interfaces/BridgeAdapterData",title:"BridgeAdapterData",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/interfaces/BridgeAdapterData.md",sourceDirName:"build-on-morph/sdk/interfaces",slug:"/build-on-morph/sdk/interfaces/BridgeAdapterData",permalink:"/docs/build-on-morph/sdk/interfaces/BridgeAdapterData",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/interfaces/BridgeAdapterData.md",tags:[],version:"current",frontMatter:{}},i={},c=[{value:"Indexable",id:"indexable",level:2}];function l(e){const r={a:"a",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,d.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,n.jsx)(r.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,n.jsx)(r.strong,{children:"Docs"})]}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / BridgeAdapterData"]}),"\n",(0,n.jsx)(r.h1,{id:"interface-bridgeadapterdata",children:"Interface: BridgeAdapterData"}),"\n",(0,n.jsx)(r.p,{children:"Something that looks like the list of custom bridges."}),"\n",(0,n.jsx)(r.h2,{id:"indexable",children:"Indexable"}),"\n",(0,n.jsxs)(r.p,{children:["[",(0,n.jsx)(r.code,{children:"name"}),": ",(0,n.jsx)(r.code,{children:"string"}),"]: ",(0,n.jsx)(r.code,{children:"object"})]})]})}function h(e={}){const{wrapper:r}={...(0,d.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},1582:(e,r,t)=>{t.d(r,{R:()=>s,x:()=>a});var n=t(758);const d={},o=n.createContext(d);function s(e){const r=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function a(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:s(e.components),n.createElement(o.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/5bc5b9ce.db1d3170.js b/build/assets/js/5bc5b9ce.f3bc9251.js similarity index 75% rename from build/assets/js/5bc5b9ce.db1d3170.js rename to build/assets/js/5bc5b9ce.f3bc9251.js index 8e0815aa2..f6853e2af 100644 --- a/build/assets/js/5bc5b9ce.db1d3170.js +++ b/build/assets/js/5bc5b9ce.f3bc9251.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[3457],{5500:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>s,default:()=>c,frontMatter:()=>i,metadata:()=>d,toc:()=>h});var o=t(3274),r=t(2333);const i={title:"Bridge between Morph and Ethereum",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},s=void 0,d={id:"build-on-morph/build-on-morph/bridge-between-morph-and-ethereum",title:"Bridge between Morph and Ethereum",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/build-on-morph/build-on-morph/3-bridge-between-morph-and-ethereum.md",sourceDirName:"build-on-morph/build-on-morph",slug:"/build-on-morph/build-on-morph/bridge-between-morph-and-ethereum",permalink:"/docs/build-on-morph/build-on-morph/bridge-between-morph-and-ethereum",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/build-on-morph/3-bridge-between-morph-and-ethereum.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{title:"Bridge between Morph and Ethereum",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"Verify Your Smart Contracts",permalink:"/docs/build-on-morph/build-on-morph/verify-your-smart-contracts"},next:{title:"Use SDK to interact with Morph",permalink:"/docs/build-on-morph/sdk/globals"}},a={},h=[{value:"Deposit ETH and ERC20 Tokens from L1\u200b",id:"deposit-eth-and-erc20-tokens-from-l1",level:2},{value:"Withdraw ETH and ERC20 tokens from L2",id:"withdraw-eth-and-erc20-tokens-from-l2",level:2},{value:"Finalize your Withdrawal",id:"finalize-your-withdrawal",level:3},{value:"Add your Token to the Official Bridge",id:"add-your-token-to-the-official-bridge",level:2},{value:"Add Tokens to the gateway through Morph Bridge Frontend",id:"add-tokens-to-the-gateway-through-morph-bridge-frontend",level:3},{value:"Add token support to the bridge frontend",id:"add-token-support-to-the-bridge-frontend",level:3}];function l(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(n.p,{children:["Please first review our documentation on ",(0,o.jsx)(n.a,{href:"/docs/how-morph-works/general-protocol-design/communicate-between-morph-and-ethereum",children:"Communication Between Morph and Ethereum"})," for some required fundamental knowledge."]}),"\n",(0,o.jsx)(n.h2,{id:"deposit-eth-and-erc20-tokens-from-l1",children:"Deposit ETH and ERC20 Tokens from L1\u200b"}),"\n",(0,o.jsx)(n.p,{children:"The Gateway Router allows ETH and ERC20 token bridging from L1 to L2 using the depositETH and depositERC20 functions respectively. It is a permissionless bridge deployed on L1. Notice that ERC20 tokens will have a different address on L2, you can use the getL2ERC20Address function to query the new address."}),"\n",(0,o.jsx)(n.admonition,{type:"tip",children:(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.strong,{children:(0,o.jsx)(n.code,{children:"depositETH"})})," and ",(0,o.jsx)(n.strong,{children:(0,o.jsx)(n.code,{children:"depositERC20"})})," are payable functions, the amount of ETH sent to these functions will be used\nto pay for L2 fees. If the amount is not enough, the transaction will not be sent. All excess ETH will be sent back to\nthe sender. ",(0,o.jsx)(n.code,{children:"0.00001 ETH"})," should be more than enough to process a token deposit."]})}),"\n",(0,o.jsxs)(n.p,{children:["When bridging ERC20 tokens, you don\u2019t have to worry about selecting the right Gateway. This is because the ",(0,o.jsx)(n.code,{children:"L1GatewayRouter"})," will choose the correct underlying entry point to send the message:"]}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsxs)(n.strong,{children:[(0,o.jsx)(n.code,{children:"L1StandardERC20Gateway"}),":"]})," This Gateway permits any ERC20 deposit and will be selected as the default by the L1GatewayRouter for an ERC20 token that doesn\u2019t need custom logic on L2. On the very first token bridging, a new token will be created on L2 that implements the MorphStandardERC20. To bridge a token, call the ",(0,o.jsx)(n.code,{children:"depositERC20"})," function on the ",(0,o.jsx)(n.code,{children:"L1GatewayRouter"}),"."]}),"\n"]}),"\n",(0,o.jsxs)(n.p,{children:["All Gateway contracts will form the message and send it to the ",(0,o.jsx)(n.code,{children:"L1CrossDomainMessenger"})," which can send arbitrary messages to L2. The ",(0,o.jsx)(n.code,{children:"L1CrossDomainMessenger"})," passes the message to the ",(0,o.jsx)(n.code,{children:"L1MessageQueueWithGasPriceOracle"}),". Any user can send messages directly to the Messenger to execute arbitrary data on L2."]}),"\n",(0,o.jsx)(n.p,{children:"This means they can execute any function on L2 from a transaction made on L1 via the bridge. Although an application could directly pass messages to existing token contracts, the Gateway abstracts the specifics and simplifies making transfers and calls."}),"\n",(0,o.jsxs)(n.p,{children:["When a new block gets created on L1, the Sequencer will detect the message on the ",(0,o.jsx)(n.code,{children:"L1MessageQueue"}),", and submit the transaction to the L2 via the L2 node. Finally, the L2 node will pass the transaction to the ",(0,o.jsx)(n.code,{children:"L2CrossDomainMessenger"})," contract for execution on L2."]}),"\n",(0,o.jsx)(n.h2,{id:"withdraw-eth-and-erc20-tokens-from-l2",children:"Withdraw ETH and ERC20 tokens from L2"}),"\n",(0,o.jsxs)(n.p,{children:["The L2 Gateway is very similar to the L1 Gateway. We can withdraw ETH and ERC20 tokens back to L1 using the ",(0,o.jsx)(n.code,{children:"withdrawETH"})," and ",(0,o.jsx)(n.code,{children:"withdrawERC20"})," functions. The contract address is deployed on L2. We use the ",(0,o.jsx)(n.code,{children:"getL1ERC20Address"})," to retrieve the token address on L1."]}),"\n",(0,o.jsx)(n.admonition,{type:"tip",children:(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.strong,{children:(0,o.jsx)(n.code,{children:"withdrawETH"})})," and ",(0,o.jsx)(n.strong,{children:(0,o.jsx)(n.code,{children:"withdrawERC20"})})," are payable functions, and the amount of ETH sent to these functions will be used to pay for L1 fees. If the amount is not enough, the transaction will not be sent. All excess ETH will be sent back to the sender. Fees will depend on L1 activity but ",(0,o.jsx)(n.code,{children:"0.005 ETH"})," should be enough to process a token withdrawal."]})}),"\n",(0,o.jsx)(n.admonition,{type:"tip",children:(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.strong,{children:"Ensure transactions won\u2019t revert on L1 while sending from L2"})," There is no way to recover bridged ETH, tokens, or NFTs if your transaction reverts on L1. All assets are burned on Morph when the transaction is sent, and it's impossible to mint them again."]})}),"\n",(0,o.jsx)(n.h3,{id:"finalize-your-withdrawal",children:"Finalize your Withdrawal"}),"\n",(0,o.jsx)(n.p,{children:"Besides starting a withdrawal request on Morph, there is one additional step to do. You need to finalize your withdrawal on Ethereum."}),"\n",(0,o.jsxs)(n.p,{children:["This is because of Morph's optimistic zkEVM design, you can read the details ",(0,o.jsx)(n.a,{href:"/docs/how-morph-works/general-protocol-design/communicate-between-morph-and-ethereum",children:"here"}),":"]}),"\n",(0,o.jsx)(n.p,{children:"To do this, first you need to make sure:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["The batch containing the withdraw transactions has passed the challenge period and is marked as finalized (meaning in the ",(0,o.jsx)(n.code,{children:"Rollup"}),"contract, ",(0,o.jsx)(n.strong,{children:"withdrawalRoots[batchDataStore[_batchIndex].withdrawalRoot] = true"}),")."]}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:"Once confirmed, you can call our backend services interface:"}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.code,{children:"/getProof?nonce=withdraw.index"})}),"\n",(0,o.jsx)(n.p,{children:"to obtain all the information you need to finalize your withdraw, which include:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:"Index: The position of the withdrawal transaction in the withdraw tree, or rank of your transaction among all the L2->L1 transactions."}),"\n",(0,o.jsx)(n.li,{children:"Leaf: The hash value of your withdraw transaction that stored in the tree."}),"\n",(0,o.jsx)(n.li,{children:"Proof: The merkel proof of your withdraw transaction."}),"\n",(0,o.jsx)(n.li,{children:"Root: The withdraw tree root."}),"\n"]}),"\n",(0,o.jsxs)(n.p,{children:["you need to use the ",(0,o.jsx)(n.code,{children:"proveAndRelayMessage"})," function of the ",(0,o.jsx)(n.code,{children:"L1CrossDomainMessenger"})," contract."]}),"\n",(0,o.jsxs)(n.p,{children:["After obtaining the above information, the finalization of the withdraw operation can be carried out by calling ",(0,o.jsx)(n.code,{children:"L1CrossDomainMessenger.proveAndRelayMessage()"}),"."]}),"\n",(0,o.jsx)(n.p,{children:"The required parameters are"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-solidity",children:" address _from, \n address _to, \n uint256 _value, \n uint256 _nonce, \n bytes memory _message, \n bytes32[32] calldata _withdrawalProof, \n bytes32 _withdrawalRoot\n"})}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"_from"}),", ",(0,o.jsx)(n.code,{children:"_to"}),", ",(0,o.jsx)(n.code,{children:"_value"}),", ",(0,o.jsx)(n.code,{children:"_nonce"}),", and ",(0,o.jsx)(n.code,{children:"_message"})," are the original content of the withdraw transaction, which can be obtained from the Event ",(0,o.jsx)(n.code,{children:"SentMessage"})," included in the transaction initiated by the L2 layer withdraw."]}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"_withdrawalProof"})," and ",(0,o.jsx)(n.code,{children:"_withdrawalRoot"})," can be obtained from the aforementioned backend API interface."]}),"\n",(0,o.jsx)(n.admonition,{title:"Use the SDK",type:"tip",children:(0,o.jsxs)(n.p,{children:["You can also try our SDK to interact with the bridge system by referring to our ",(0,o.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:"SDK Doc"}),"."]})}),"\n",(0,o.jsx)(n.h2,{id:"add-your-token-to-the-official-bridge",children:"Add your Token to the Official Bridge"}),"\n",(0,o.jsx)(n.p,{children:"Currently, our official bridge only supports certain pre-defined tokens to be bridged. If you want to bridge your own tokens, you need to manually add the token, and here is how to do it."}),"\n",(0,o.jsx)(n.h3,{id:"add-tokens-to-the-gateway-through-morph-bridge-frontend",children:"Add Tokens to the gateway through Morph Bridge Frontend"}),"\n",(0,o.jsxs)(n.p,{children:["The easiest way to support your token is to manually add it on our ",(0,o.jsx)(n.a,{href:"https://bridge-holesky.morphl2.io/",children:"official bridge frontend"}),", you can simply do it with the following steps:"]}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsx)(n.li,{children:"Click the token selection button on Morph Holesky Bridge"}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{alt:"tokenlist1",src:t(1354).A+"",width:"2826",height:"1722"})}),"\n",(0,o.jsxs)(n.ol,{start:"2",children:["\n",(0,o.jsx)(n.li,{children:"Input & Confirm your desire Ethereum token contract address under the custom token section"}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{alt:"tokenlist2",src:t(2465).A+"",width:"2838",height:"1750"})}),"\n",(0,o.jsxs)(n.ol,{start:"3",children:["\n",(0,o.jsx)(n.li,{children:"Get the Layer 2 token contract address and confirm it."}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{alt:"tokenlist3",src:t(2248).A+"",width:"2852",height:"1752"})}),"\n",(0,o.jsxs)(n.ol,{start:"4",children:["\n",(0,o.jsx)(n.li,{children:"Now it is supported and you and other users can start to bridge it!"}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{alt:"tokenlist4",src:t(1863).A+"",width:"2870",height:"1758"})}),"\n",(0,o.jsx)(n.h3,{id:"add-token-support-to-the-bridge-frontend",children:"Add token support to the bridge frontend"}),"\n",(0,o.jsx)(n.p,{children:"By adding your token to the gateway, you and other users can bridge the token by inputting the token address.You need to raise a PR to our bridge repo if you want your token shown on the bridge frontend token list."}),"\n",(0,o.jsxs)(n.p,{children:["You can find how to do it in the ",(0,o.jsx)(n.a,{href:"https://github.com/morph-l2/morph-list",children:"morph list repo"}),"."]}),"\n",(0,o.jsx)(n.p,{children:"Keep in mind that:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:"You need to add both your L1 & L2 token to the list."}),"\n",(0,o.jsx)(n.li,{children:"The L2 token contract address is obtained by adding your tokens through Morph bridge frontend."}),"\n"]}),"\n",(0,o.jsxs)(n.p,{children:["Here is an ",(0,o.jsx)(n.a,{href:"https://github.com/morph-l2/morph-list/pull/27/commits/228481db6b8d69b8f40e7369dae62722aa570eb7",children:"example PR commit"})," for your reference."]})]})}function c(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},1354:(e,n,t)=>{t.d(n,{A:()=>o});const o=t.p+"assets/images/tokenlist1-ec52b3b1b3f60e802cf106df55eb4090.png"},2465:(e,n,t)=>{t.d(n,{A:()=>o});const o=t.p+"assets/images/tokenlist2-0fbc5cfcd77ce1b4d2306b9afd179a98.png"},2248:(e,n,t)=>{t.d(n,{A:()=>o});const o=t.p+"assets/images/tokenlist3-28ed57c8d69932cab63386f505f5c970.png"},1863:(e,n,t)=>{t.d(n,{A:()=>o});const o=t.p+"assets/images/tokenlist4-0c123dddfae82f9b16ef1bedc26e5476.png"},2333:(e,n,t)=>{t.d(n,{R:()=>s,x:()=>d});var o=t(9474);const r={},i=o.createContext(r);function s(e){const n=o.useContext(i);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),o.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[3457],{9010:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>s,default:()=>c,frontMatter:()=>i,metadata:()=>d,toc:()=>h});var o=t(6070),r=t(1582);const i={title:"Bridge between Morph and Ethereum",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},s=void 0,d={id:"build-on-morph/build-on-morph/bridge-between-morph-and-ethereum",title:"Bridge between Morph and Ethereum",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/build-on-morph/build-on-morph/3-bridge-between-morph-and-ethereum.md",sourceDirName:"build-on-morph/build-on-morph",slug:"/build-on-morph/build-on-morph/bridge-between-morph-and-ethereum",permalink:"/docs/build-on-morph/build-on-morph/bridge-between-morph-and-ethereum",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/build-on-morph/3-bridge-between-morph-and-ethereum.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{title:"Bridge between Morph and Ethereum",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"Verify Your Smart Contracts",permalink:"/docs/build-on-morph/build-on-morph/verify-your-smart-contracts"},next:{title:"Use SDK to interact with Morph",permalink:"/docs/build-on-morph/sdk/globals"}},a={},h=[{value:"Deposit ETH and ERC20 Tokens from L1\u200b",id:"deposit-eth-and-erc20-tokens-from-l1",level:2},{value:"Withdraw ETH and ERC20 tokens from L2",id:"withdraw-eth-and-erc20-tokens-from-l2",level:2},{value:"Finalize your Withdrawal",id:"finalize-your-withdrawal",level:3},{value:"Add your Token to the Official Bridge",id:"add-your-token-to-the-official-bridge",level:2},{value:"Add Tokens to the gateway through Morph Bridge Frontend",id:"add-tokens-to-the-gateway-through-morph-bridge-frontend",level:3},{value:"Add token support to the bridge frontend",id:"add-token-support-to-the-bridge-frontend",level:3}];function l(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(n.p,{children:["Please first review our documentation on ",(0,o.jsx)(n.a,{href:"/docs/how-morph-works/general-protocol-design/communicate-between-morph-and-ethereum",children:"Communication Between Morph and Ethereum"})," for some required fundamental knowledge."]}),"\n",(0,o.jsx)(n.h2,{id:"deposit-eth-and-erc20-tokens-from-l1",children:"Deposit ETH and ERC20 Tokens from L1\u200b"}),"\n",(0,o.jsx)(n.p,{children:"The Gateway Router allows ETH and ERC20 token bridging from L1 to L2 using the depositETH and depositERC20 functions respectively. It is a permissionless bridge deployed on L1. Notice that ERC20 tokens will have a different address on L2, you can use the getL2ERC20Address function to query the new address."}),"\n",(0,o.jsx)(n.admonition,{type:"tip",children:(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.strong,{children:(0,o.jsx)(n.code,{children:"depositETH"})})," and ",(0,o.jsx)(n.strong,{children:(0,o.jsx)(n.code,{children:"depositERC20"})})," are payable functions, the amount of ETH sent to these functions will be used\nto pay for L2 fees. If the amount is not enough, the transaction will not be sent. All excess ETH will be sent back to\nthe sender. ",(0,o.jsx)(n.code,{children:"0.00001 ETH"})," should be more than enough to process a token deposit."]})}),"\n",(0,o.jsxs)(n.p,{children:["When bridging ERC20 tokens, you don\u2019t have to worry about selecting the right Gateway. This is because the ",(0,o.jsx)(n.code,{children:"L1GatewayRouter"})," will choose the correct underlying entry point to send the message:"]}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsxs)(n.strong,{children:[(0,o.jsx)(n.code,{children:"L1StandardERC20Gateway"}),":"]})," This Gateway permits any ERC20 deposit and will be selected as the default by the L1GatewayRouter for an ERC20 token that doesn\u2019t need custom logic on L2. On the very first token bridging, a new token will be created on L2 that implements the MorphStandardERC20. To bridge a token, call the ",(0,o.jsx)(n.code,{children:"depositERC20"})," function on the ",(0,o.jsx)(n.code,{children:"L1GatewayRouter"}),"."]}),"\n"]}),"\n",(0,o.jsxs)(n.p,{children:["All Gateway contracts will form the message and send it to the ",(0,o.jsx)(n.code,{children:"L1CrossDomainMessenger"})," which can send arbitrary messages to L2. The ",(0,o.jsx)(n.code,{children:"L1CrossDomainMessenger"})," passes the message to the ",(0,o.jsx)(n.code,{children:"L1MessageQueueWithGasPriceOracle"}),". Any user can send messages directly to the Messenger to execute arbitrary data on L2."]}),"\n",(0,o.jsx)(n.p,{children:"This means they can execute any function on L2 from a transaction made on L1 via the bridge. Although an application could directly pass messages to existing token contracts, the Gateway abstracts the specifics and simplifies making transfers and calls."}),"\n",(0,o.jsxs)(n.p,{children:["When a new block gets created on L1, the Sequencer will detect the message on the ",(0,o.jsx)(n.code,{children:"L1MessageQueue"}),", and submit the transaction to the L2 via the L2 node. Finally, the L2 node will pass the transaction to the ",(0,o.jsx)(n.code,{children:"L2CrossDomainMessenger"})," contract for execution on L2."]}),"\n",(0,o.jsx)(n.h2,{id:"withdraw-eth-and-erc20-tokens-from-l2",children:"Withdraw ETH and ERC20 tokens from L2"}),"\n",(0,o.jsxs)(n.p,{children:["The L2 Gateway is very similar to the L1 Gateway. We can withdraw ETH and ERC20 tokens back to L1 using the ",(0,o.jsx)(n.code,{children:"withdrawETH"})," and ",(0,o.jsx)(n.code,{children:"withdrawERC20"})," functions. The contract address is deployed on L2. We use the ",(0,o.jsx)(n.code,{children:"getL1ERC20Address"})," to retrieve the token address on L1."]}),"\n",(0,o.jsx)(n.admonition,{type:"tip",children:(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.strong,{children:(0,o.jsx)(n.code,{children:"withdrawETH"})})," and ",(0,o.jsx)(n.strong,{children:(0,o.jsx)(n.code,{children:"withdrawERC20"})})," are payable functions, and the amount of ETH sent to these functions will be used to pay for L1 fees. If the amount is not enough, the transaction will not be sent. All excess ETH will be sent back to the sender. Fees will depend on L1 activity but ",(0,o.jsx)(n.code,{children:"0.005 ETH"})," should be enough to process a token withdrawal."]})}),"\n",(0,o.jsx)(n.admonition,{type:"tip",children:(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.strong,{children:"Ensure transactions won\u2019t revert on L1 while sending from L2"})," There is no way to recover bridged ETH, tokens, or NFTs if your transaction reverts on L1. All assets are burned on Morph when the transaction is sent, and it's impossible to mint them again."]})}),"\n",(0,o.jsx)(n.h3,{id:"finalize-your-withdrawal",children:"Finalize your Withdrawal"}),"\n",(0,o.jsx)(n.p,{children:"Besides starting a withdrawal request on Morph, there is one additional step to do. You need to finalize your withdrawal on Ethereum."}),"\n",(0,o.jsxs)(n.p,{children:["This is because of Morph's optimistic zkEVM design, you can read the details ",(0,o.jsx)(n.a,{href:"/docs/how-morph-works/general-protocol-design/communicate-between-morph-and-ethereum",children:"here"}),":"]}),"\n",(0,o.jsx)(n.p,{children:"To do this, first you need to make sure:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["The batch containing the withdraw transactions has passed the challenge period and is marked as finalized (meaning in the ",(0,o.jsx)(n.code,{children:"Rollup"}),"contract, ",(0,o.jsx)(n.strong,{children:"withdrawalRoots[batchDataStore[_batchIndex].withdrawalRoot] = true"}),")."]}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:"Once confirmed, you can call our backend services interface:"}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.code,{children:"/getProof?nonce=withdraw.index"})}),"\n",(0,o.jsx)(n.p,{children:"to obtain all the information you need to finalize your withdraw, which include:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:"Index: The position of the withdrawal transaction in the withdraw tree, or rank of your transaction among all the L2->L1 transactions."}),"\n",(0,o.jsx)(n.li,{children:"Leaf: The hash value of your withdraw transaction that stored in the tree."}),"\n",(0,o.jsx)(n.li,{children:"Proof: The merkel proof of your withdraw transaction."}),"\n",(0,o.jsx)(n.li,{children:"Root: The withdraw tree root."}),"\n"]}),"\n",(0,o.jsxs)(n.p,{children:["you need to use the ",(0,o.jsx)(n.code,{children:"proveAndRelayMessage"})," function of the ",(0,o.jsx)(n.code,{children:"L1CrossDomainMessenger"})," contract."]}),"\n",(0,o.jsxs)(n.p,{children:["After obtaining the above information, the finalization of the withdraw operation can be carried out by calling ",(0,o.jsx)(n.code,{children:"L1CrossDomainMessenger.proveAndRelayMessage()"}),"."]}),"\n",(0,o.jsx)(n.p,{children:"The required parameters are"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-solidity",children:" address _from, \n address _to, \n uint256 _value, \n uint256 _nonce, \n bytes memory _message, \n bytes32[32] calldata _withdrawalProof, \n bytes32 _withdrawalRoot\n"})}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"_from"}),", ",(0,o.jsx)(n.code,{children:"_to"}),", ",(0,o.jsx)(n.code,{children:"_value"}),", ",(0,o.jsx)(n.code,{children:"_nonce"}),", and ",(0,o.jsx)(n.code,{children:"_message"})," are the original content of the withdraw transaction, which can be obtained from the Event ",(0,o.jsx)(n.code,{children:"SentMessage"})," included in the transaction initiated by the L2 layer withdraw."]}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"_withdrawalProof"})," and ",(0,o.jsx)(n.code,{children:"_withdrawalRoot"})," can be obtained from the aforementioned backend API interface."]}),"\n",(0,o.jsx)(n.admonition,{title:"Use the SDK",type:"tip",children:(0,o.jsxs)(n.p,{children:["You can also try our SDK to interact with the bridge system by referring to our ",(0,o.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:"SDK Doc"}),"."]})}),"\n",(0,o.jsx)(n.h2,{id:"add-your-token-to-the-official-bridge",children:"Add your Token to the Official Bridge"}),"\n",(0,o.jsx)(n.p,{children:"Currently, our canonical bridge only supports certain pre-defined tokens to be bridged. If you want to bridge your own tokens, you need to manually add the token, and here is how to do it."}),"\n",(0,o.jsx)(n.h3,{id:"add-tokens-to-the-gateway-through-morph-bridge-frontend",children:"Add Tokens to the gateway through Morph Bridge Frontend"}),"\n",(0,o.jsxs)(n.p,{children:["The easiest way to support your token is to manually add it on our ",(0,o.jsx)(n.a,{href:"https://bridge-holesky.morphl2.io/",children:"canonical bridge frontend"}),", you can simply do it with the following steps:"]}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsx)(n.li,{children:"Click the token selection button on Morph Holesky Bridge"}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{alt:"tokenlist1",src:t(2334).A+"",width:"2826",height:"1722"})}),"\n",(0,o.jsxs)(n.ol,{start:"2",children:["\n",(0,o.jsx)(n.li,{children:"Input & Confirm your desire Ethereum token contract address under the custom token section"}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{alt:"tokenlist2",src:t(165).A+"",width:"2838",height:"1750"})}),"\n",(0,o.jsxs)(n.ol,{start:"3",children:["\n",(0,o.jsx)(n.li,{children:"Get the Layer 2 token contract address and confirm it."}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{alt:"tokenlist3",src:t(4252).A+"",width:"2852",height:"1752"})}),"\n",(0,o.jsxs)(n.ol,{start:"4",children:["\n",(0,o.jsx)(n.li,{children:"Now it is supported and you and other users can start to bridge it!"}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{alt:"tokenlist4",src:t(1651).A+"",width:"2870",height:"1758"})}),"\n",(0,o.jsx)(n.h3,{id:"add-token-support-to-the-bridge-frontend",children:"Add token support to the bridge frontend"}),"\n",(0,o.jsx)(n.p,{children:"By adding your token to the gateway, you and other users can bridge the token by inputting the token address.You need to raise a PR to our bridge repo if you want your token shown on the bridge frontend token list."}),"\n",(0,o.jsxs)(n.p,{children:["You can find how to do it in the ",(0,o.jsx)(n.a,{href:"https://github.com/morph-l2/morph-list",children:"morph list repo"}),"."]}),"\n",(0,o.jsx)(n.p,{children:"Keep in mind that:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:"You need to add both your L1 & L2 token to the list."}),"\n",(0,o.jsx)(n.li,{children:"The L2 token contract address is obtained by adding your tokens through Morph bridge frontend."}),"\n"]}),"\n",(0,o.jsxs)(n.p,{children:["Here is an ",(0,o.jsx)(n.a,{href:"https://github.com/morph-l2/morph-list/pull/27/commits/228481db6b8d69b8f40e7369dae62722aa570eb7",children:"example PR commit"})," for your reference."]})]})}function c(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},2334:(e,n,t)=>{t.d(n,{A:()=>o});const o=t.p+"assets/images/tokenlist1-ec52b3b1b3f60e802cf106df55eb4090.png"},165:(e,n,t)=>{t.d(n,{A:()=>o});const o=t.p+"assets/images/tokenlist2-0fbc5cfcd77ce1b4d2306b9afd179a98.png"},4252:(e,n,t)=>{t.d(n,{A:()=>o});const o=t.p+"assets/images/tokenlist3-28ed57c8d69932cab63386f505f5c970.png"},1651:(e,n,t)=>{t.d(n,{A:()=>o});const o=t.p+"assets/images/tokenlist4-0c123dddfae82f9b16ef1bedc26e5476.png"},1582:(e,n,t)=>{t.d(n,{R:()=>s,x:()=>d});var o=t(758);const r={},i=o.createContext(r);function s(e){const n=o.useContext(i);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),o.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/5c242b2e.9bf0dbba.js b/build/assets/js/5c242b2e.9bf0dbba.js deleted file mode 100644 index 798e7de93..000000000 --- a/build/assets/js/5c242b2e.9bf0dbba.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[1394],{7006:(e,o,t)=>{t.r(o),t.d(o,{assets:()=>l,contentTitle:()=>c,default:()=>u,frontMatter:()=>r,metadata:()=>i,toc:()=>d});var s=t(3274),n=t(2333);const r={title:"Account Abstraction",lang:"en-US"},c=void 0,i={id:"build-on-morph/developer-resources/use-ecosystem-developer-tools/account-abstraction",title:"Account Abstraction",description:"Biconomy",source:"@site/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/3-account-abstraction.md",sourceDirName:"build-on-morph/developer-resources/use-ecosystem-developer-tools",slug:"/build-on-morph/developer-resources/use-ecosystem-developer-tools/account-abstraction",permalink:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/account-abstraction",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/3-account-abstraction.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{title:"Account Abstraction",lang:"en-US"},sidebar:"DeveloperSidebar",previous:{title:"RPC Services",permalink:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/rpc-services"},next:{title:"Blockchain Indexing Services",permalink:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-indexing-services"}},l={},d=[{value:"Biconomy",id:"biconomy",level:3}];function a(e){const o={a:"a",h3:"h3",img:"img",p:"p",...(0,n.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(o.h3,{id:"biconomy",children:"Biconomy"}),"\n",(0,s.jsx)(o.p,{children:(0,s.jsx)(o.img,{alt:"biconomy",src:t(3570).A+"",width:"2880",height:"1476"})}),"\n",(0,s.jsx)(o.p,{children:"Biconomy is in the progress of integrating Morph Mainnet."}),"\n",(0,s.jsxs)(o.p,{children:["Documentation: ",(0,s.jsx)(o.a,{href:"https://docs.biconomy.io",children:"https://docs.biconomy.io"})]})]})}function u(e={}){const{wrapper:o}={...(0,n.R)(),...e.components};return o?(0,s.jsx)(o,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},3570:(e,o,t)=>{t.d(o,{A:()=>s});const s=t.p+"assets/images/biconomy-837b6cf4a7c94f3bf1da46a565cc25e6.png"},2333:(e,o,t)=>{t.d(o,{R:()=>c,x:()=>i});var s=t(9474);const n={},r=s.createContext(n);function c(e){const o=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function i(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:c(e.components),s.createElement(r.Provider,{value:o},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/5c242b2e.a21dcfac.js b/build/assets/js/5c242b2e.a21dcfac.js new file mode 100644 index 000000000..7f1bd11c0 --- /dev/null +++ b/build/assets/js/5c242b2e.a21dcfac.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[1394],{7216:(e,o,t)=>{t.r(o),t.d(o,{assets:()=>l,contentTitle:()=>c,default:()=>d,frontMatter:()=>r,metadata:()=>i,toc:()=>a});var n=t(6070),s=t(1582);const r={title:"Account Abstraction",lang:"en-US"},c=void 0,i={id:"build-on-morph/developer-resources/use-ecosystem-developer-tools/account-abstraction",title:"Account Abstraction",description:"Biconomy",source:"@site/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/3-account-abstraction.md",sourceDirName:"build-on-morph/developer-resources/use-ecosystem-developer-tools",slug:"/build-on-morph/developer-resources/use-ecosystem-developer-tools/account-abstraction",permalink:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/account-abstraction",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/3-account-abstraction.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{title:"Account Abstraction",lang:"en-US"},sidebar:"DeveloperSidebar",previous:{title:"RPC Services",permalink:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/rpc-services"},next:{title:"Blockchain Indexing Services",permalink:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-indexing-services"}},l={},a=[{value:"Biconomy",id:"biconomy",level:3}];function u(e){const o={a:"a",h3:"h3",img:"img",p:"p",...(0,s.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(o.h3,{id:"biconomy",children:"Biconomy"}),"\n",(0,n.jsx)(o.p,{children:(0,n.jsx)(o.img,{alt:"biconomy",src:t(1078).A+"",width:"2880",height:"1476"})}),"\n",(0,n.jsx)(o.p,{children:"The Biconomy SDK is an Account Abstraction toolkit that enables the simplest UX on your dApp, wallet, or appchain. Built on top of ERC 4337, Biconomy offer a full-stack solution for tapping into the power of our Smart Accounts Platform, Paymasters, and Bundlers."}),"\n",(0,n.jsx)(o.p,{children:"Biconomy is live on Morph Mainnet."}),"\n",(0,n.jsx)(o.p,{children:(0,n.jsx)(o.a,{href:"https://docs.biconomy.io/smartAccountsV2/quickstart-react",children:"Integration Documentation"})})]})}function d(e={}){const{wrapper:o}={...(0,s.R)(),...e.components};return o?(0,n.jsx)(o,{...e,children:(0,n.jsx)(u,{...e})}):u(e)}},1078:(e,o,t)=>{t.d(o,{A:()=>n});const n=t.p+"assets/images/biconomy-837b6cf4a7c94f3bf1da46a565cc25e6.png"},1582:(e,o,t)=>{t.d(o,{R:()=>c,x:()=>i});var n=t(758);const s={},r=n.createContext(s);function c(e){const o=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function i(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:c(e.components),n.createElement(r.Provider,{value:o},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/5d313dc3.562fab67.js b/build/assets/js/5d313dc3.562fab67.js new file mode 100644 index 000000000..f7c6576ca --- /dev/null +++ b/build/assets/js/5d313dc3.562fab67.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[3147],{365:(e,o,n)=>{n.r(o),n.d(o,{assets:()=>a,contentTitle:()=>i,default:()=>h,frontMatter:()=>s,metadata:()=>d,toc:()=>l});var t=n(6070),r=n(1582);const s={title:"Prune State",lang:"en-US"},i=void 0,d={id:"build-on-morph/developer-resources/node-operation/prune-state",title:"Prune State",description:"The performance of a full node will degrade when the storage size reaches a high volume. We suggest that the fullnode always keep light storage by pruning the storage.",source:"@site/docs/build-on-morph/developer-resources/node-operation/1-prune-state.md",sourceDirName:"build-on-morph/developer-resources/node-operation",slug:"/build-on-morph/developer-resources/node-operation/prune-state",permalink:"/docs/build-on-morph/developer-resources/node-operation/prune-state",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/developer-resources/node-operation/1-prune-state.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{title:"Prune State",lang:"en-US"},sidebar:"DeveloperSidebar",previous:{title:"Upgrade node running on the host",permalink:"/docs/build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-host"},next:{title:"Contract Addresses",permalink:"/docs/build-on-morph/developer-resources/contracts"}},a={},l=[{value:"How to Prune",id:"how-to-prune",level:3}];function u(e){const o={admonition:"admonition",code:"code",h3:"h3",li:"li",ol:"ol",p:"p",strong:"strong",...(0,r.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(o.p,{children:"The performance of a full node will degrade when the storage size reaches a high volume. We suggest that the fullnode always keep light storage by pruning the storage."}),"\n",(0,t.jsx)(o.h3,{id:"how-to-prune",children:"How to Prune"}),"\n",(0,t.jsxs)(o.ol,{children:["\n",(0,t.jsx)(o.li,{children:"Stop the node, including the consensus client(morphnode) and the execution client(geth)"}),"\n",(0,t.jsxs)(o.li,{children:["Run ",(0,t.jsx)(o.code,{children:'nohup geth snapshot prune-zk-state --datadir "$GETH_DB_DIR" > prune.log &'}),". It will take 5~7 hours to finish."]}),"\n",(0,t.jsx)(o.li,{children:"Start the node once it is done."}),"\n"]}),"\n",(0,t.jsxs)(o.p,{children:["The hardware is important, ",(0,t.jsx)(o.strong,{children:"make sure the SSD meets: solid-state drive(SSD), 8k IOPS, 500 MB/S throughput, read latency < 1ms."})]}),"\n",(0,t.jsx)(o.admonition,{type:"note",children:(0,t.jsx)(o.p,{children:"To prune a Geth node at least 200 GB of free disk space is recommended. This means pruning cannot be used to save a hard drive that has been completely filled. A good rule of thumb is to prune before the node fills ~80% of the available disk space."})})]})}function h(e={}){const{wrapper:o}={...(0,r.R)(),...e.components};return o?(0,t.jsx)(o,{...e,children:(0,t.jsx)(u,{...e})}):u(e)}},1582:(e,o,n)=>{n.d(o,{R:()=>i,x:()=>d});var t=n(758);const r={},s=t.createContext(r);function i(e){const o=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function d(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),t.createElement(s.Provider,{value:o},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/5e95c892.9856b0c7.js b/build/assets/js/5e95c892.9856b0c7.js new file mode 100644 index 000000000..6e1570a5f --- /dev/null +++ b/build/assets/js/5e95c892.9856b0c7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[9647],{6130:(e,r,s)=>{s.r(r),s.d(r,{default:()=>n});s(758);var c=s(3526),u=s(926),a=s(7998),o=s(1977),d=s(8437),h=s(6070);function n(e){return(0,h.jsx)(u.e3,{className:(0,c.A)(a.G.wrapper.docsPages),children:(0,h.jsx)(d.A,{children:(0,o.v)(e.route.routes)})})}}}]); \ No newline at end of file diff --git a/build/assets/js/5e95c892.f83fa08e.js b/build/assets/js/5e95c892.f83fa08e.js deleted file mode 100644 index ade0bba2a..000000000 --- a/build/assets/js/5e95c892.f83fa08e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[9647],{7729:(e,r,s)=>{s.r(r),s.d(r,{default:()=>n});s(9474);var c=s(8923),u=s(961),a=s(1552),o=s(7221),d=s(7367),h=s(3274);function n(e){return(0,h.jsx)(u.e3,{className:(0,c.A)(a.G.wrapper.docsPages),children:(0,h.jsx)(d.A,{children:(0,o.v)(e.route.routes)})})}}}]); \ No newline at end of file diff --git a/build/assets/js/60479fa4.69d66973.js b/build/assets/js/60479fa4.69d66973.js new file mode 100644 index 000000000..d96f833c9 --- /dev/null +++ b/build/assets/js/60479fa4.69d66973.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[44],{3264:(e,o,r)=>{r.r(o),r.d(o,{assets:()=>l,contentTitle:()=>c,default:()=>d,frontMatter:()=>n,metadata:()=>s,toc:()=>p});var t=r(6070),i=r(1582);const n={title:"Introduction",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},c=void 0,s={id:"how-morph-works/intro",title:"Introduction",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/how-morph-works/1-intro.md",sourceDirName:"how-morph-works",slug:"/how-morph-works/intro",permalink:"/docs/how-morph-works/intro",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/how-morph-works/1-intro.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{title:"Introduction",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"}},l={},p=[];function h(e){const o={li:"li",p:"p",ul:"ul",...(0,i.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(o.p,{children:"This section provides an overview of Morph\u2019s protocol architecture, including:"}),"\n",(0,t.jsxs)(o.ul,{children:["\n",(0,t.jsx)(o.li,{children:"The Decentralized Sequencer Network"}),"\n",(0,t.jsx)(o.li,{children:"Optimistic zkEVM & Responsive Validity Proof (RVP)"}),"\n",(0,t.jsx)(o.li,{children:"Morph's Modular Architecture"}),"\n",(0,t.jsx)(o.li,{children:"General Protocol Design"}),"\n"]})]})}function d(e={}){const{wrapper:o}={...(0,i.R)(),...e.components};return o?(0,t.jsx)(o,{...e,children:(0,t.jsx)(h,{...e})}):h(e)}},1582:(e,o,r)=>{r.d(o,{R:()=>c,x:()=>s});var t=r(758);const i={},n=t.createContext(i);function c(e){const o=t.useContext(n);return t.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function s(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:c(e.components),t.createElement(n.Provider,{value:o},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/60479fa4.b4988a59.js b/build/assets/js/60479fa4.b4988a59.js deleted file mode 100644 index 56a897aef..000000000 --- a/build/assets/js/60479fa4.b4988a59.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[44],{314:(e,o,r)=>{r.r(o),r.d(o,{assets:()=>l,contentTitle:()=>c,default:()=>d,frontMatter:()=>n,metadata:()=>s,toc:()=>p});var t=r(3274),i=r(2333);const n={title:"Introduction",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},c=void 0,s={id:"how-morph-works/intro",title:"Introduction",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/how-morph-works/1-intro.md",sourceDirName:"how-morph-works",slug:"/how-morph-works/intro",permalink:"/docs/how-morph-works/intro",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/how-morph-works/1-intro.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{title:"Introduction",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"}},l={},p=[];function h(e){const o={li:"li",p:"p",ul:"ul",...(0,i.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(o.p,{children:"This section provides an overview of Morph\u2019s protocol architecture, including:"}),"\n",(0,t.jsxs)(o.ul,{children:["\n",(0,t.jsx)(o.li,{children:"The Decentralized Sequencer Network"}),"\n",(0,t.jsx)(o.li,{children:"Optimistic zkEVM & Responsive Validity Proof (RVP)"}),"\n",(0,t.jsx)(o.li,{children:"Morph's Modular Architecture"}),"\n",(0,t.jsx)(o.li,{children:"General Protocol Design"}),"\n"]})]})}function d(e={}){const{wrapper:o}={...(0,i.R)(),...e.components};return o?(0,t.jsx)(o,{...e,children:(0,t.jsx)(h,{...e})}):h(e)}},2333:(e,o,r)=>{r.d(o,{R:()=>c,x:()=>s});var t=r(9474);const i={},n=t.createContext(i);function c(e){const o=t.useContext(n);return t.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function s(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:c(e.components),t.createElement(n.Provider,{value:o},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/618914bf.8575a75c.js b/build/assets/js/618914bf.ad5ace09.js similarity index 78% rename from build/assets/js/618914bf.8575a75c.js rename to build/assets/js/618914bf.ad5ace09.js index 1c8a05555..508c594a5 100644 --- a/build/assets/js/618914bf.8575a75c.js +++ b/build/assets/js/618914bf.ad5ace09.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[9266],{7571:(e,o,t)=>{t.r(o),t.d(o,{assets:()=>a,contentTitle:()=>s,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>h});var r=t(3274),n=t(2333);const i={title:"Welcome to Morph!",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},s=void 0,c={id:"quick-start/welcome-to-morph",title:"Welcome to Morph!",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/quick-start/1-welcome-to-morph.md",sourceDirName:"quick-start",slug:"/quick-start/welcome-to-morph",permalink:"/docs/quick-start/welcome-to-morph",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/quick-start/1-welcome-to-morph.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{title:"Welcome to Morph!",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"}},a={},h=[{value:"Looking for help",id:"looking-for-help",level:3}];function l(e){const o={a:"a",admonition:"admonition",h3:"h3",p:"p",strong:"strong",...(0,n.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(o.p,{children:"Thank you for choosing Morph! We're excited to have you onboard with the first optimistic ZK-EVM scaling solution for Ethereum. Morph is designed to meet a variety of needs, and you can easily navigate to the most relevant information for your interests."}),"\n",(0,r.jsx)(o.admonition,{type:"tip",children:(0,r.jsx)(o.p,{children:"Mainnet Beta Stage: Morph is currently in the mainnet beta phase, offering a brand-new platform for exploration. We encourage you to delve into its features and capabilities."})}),"\n",(0,r.jsxs)(o.p,{children:[(0,r.jsx)(o.strong,{children:"Web3 Enthusiasts"}),": If you are a web3 enthusiast who wants to try out the Morph, you can start with how to ",(0,r.jsx)(o.a,{href:"/docs/quick-start/wallet-setup",children:"connect to Morph"}),"."]}),"\n",(0,r.jsxs)(o.p,{children:[(0,r.jsx)(o.strong,{children:"Researchers"}),": For those seeking in-depth understanding of Morph's unique offerings compared to other solutions, the ",(0,r.jsx)(o.a,{href:"/docs/how-morph-works/intro",children:"how Morph works"})," section is your go-to resource for comprehensive details."]}),"\n",(0,r.jsxs)(o.p,{children:[(0,r.jsx)(o.strong,{children:"Developers"}),": As a skilled developer ready to build on Morph, the ",(0,r.jsx)(o.a,{href:"/docs/build-on-morph/intro",children:"developer documentation"})," provides all necessary resources and guides to kickstart your development journey."]}),"\n",(0,r.jsx)(o.h3,{id:"looking-for-help",children:"Looking for help"}),"\n",(0,r.jsxs)(o.p,{children:["Having issues while developing or exploring? Join our ",(0,r.jsx)(o.a,{href:"https://discord.com/invite/L2Morph",children:"discord channel"})," and talk to us in the right channel. We would love to hear your thoughts or feedback on how we can improve your experience, too."]})]})}function p(e={}){const{wrapper:o}={...(0,n.R)(),...e.components};return o?(0,r.jsx)(o,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}},2333:(e,o,t)=>{t.d(o,{R:()=>s,x:()=>c});var r=t(9474);const n={},i=r.createContext(n);function s(e){const o=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function c(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:s(e.components),r.createElement(i.Provider,{value:o},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[9266],{7333:(e,o,t)=>{t.r(o),t.d(o,{assets:()=>a,contentTitle:()=>s,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>h});var r=t(6070),n=t(1582);const i={title:"Welcome to Morph!",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},s=void 0,c={id:"quick-start/welcome-to-morph",title:"Welcome to Morph!",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/quick-start/1-welcome-to-morph.md",sourceDirName:"quick-start",slug:"/quick-start/welcome-to-morph",permalink:"/docs/quick-start/welcome-to-morph",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/quick-start/1-welcome-to-morph.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{title:"Welcome to Morph!",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"}},a={},h=[{value:"Looking for help",id:"looking-for-help",level:3}];function l(e){const o={a:"a",admonition:"admonition",h3:"h3",p:"p",strong:"strong",...(0,n.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(o.p,{children:"Thank you for choosing Morph! We're excited to have you onboard with the first optimistic ZK-EVM scaling solution for Ethereum. Morph is designed to meet a variety of needs, and you can easily navigate to the most relevant information for your interests."}),"\n",(0,r.jsx)(o.admonition,{type:"tip",children:(0,r.jsx)(o.p,{children:"Mainnet Beta Stage: Morph is currently in the mainnet beta phase, offering a brand-new platform for exploration. We encourage you to delve into its features and capabilities."})}),"\n",(0,r.jsxs)(o.p,{children:[(0,r.jsx)(o.strong,{children:"Web3 Enthusiasts"}),": If you are a web3 enthusiast who wants to try out the Morph, you can start with how to ",(0,r.jsx)(o.a,{href:"/docs/quick-start/wallet-setup",children:"connect to Morph"}),"."]}),"\n",(0,r.jsxs)(o.p,{children:[(0,r.jsx)(o.strong,{children:"Researchers"}),": For those seeking in-depth understanding of Morph's unique offerings compared to other solutions, the ",(0,r.jsx)(o.a,{href:"/docs/how-morph-works/intro",children:"how Morph works"})," section is your go-to resource for comprehensive details."]}),"\n",(0,r.jsxs)(o.p,{children:[(0,r.jsx)(o.strong,{children:"Developers"}),": As a skilled developer ready to build on Morph, the ",(0,r.jsx)(o.a,{href:"/docs/build-on-morph/intro",children:"developer documentation"})," provides all necessary resources and guides to kickstart your development journey."]}),"\n",(0,r.jsx)(o.h3,{id:"looking-for-help",children:"Looking for help"}),"\n",(0,r.jsxs)(o.p,{children:["Having issues while developing or exploring? Join our ",(0,r.jsx)(o.a,{href:"https://discord.com/invite/MorphLayer",children:"discord channel"})," and talk to us in the right channel. We would love to hear your thoughts or feedback on how we can improve your experience, too."]})]})}function p(e={}){const{wrapper:o}={...(0,n.R)(),...e.components};return o?(0,r.jsx)(o,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}},1582:(e,o,t)=>{t.d(o,{R:()=>s,x:()=>c});var r=t(758);const n={},i=r.createContext(n);function s(e){const o=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function c(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:s(e.components),r.createElement(i.Provider,{value:o},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/61b1ff91.a74aaf75.js b/build/assets/js/61b1ff91.01109030.js similarity index 95% rename from build/assets/js/61b1ff91.a74aaf75.js rename to build/assets/js/61b1ff91.01109030.js index 42cd8a625..5385533b8 100644 --- a/build/assets/js/61b1ff91.a74aaf75.js +++ b/build/assets/js/61b1ff91.01109030.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[8525],{6368:(s,e,i)=>{i.r(e),i.d(e,{assets:()=>h,contentTitle:()=>o,default:()=>t,frontMatter:()=>d,metadata:()=>l,toc:()=>c});var r=i(3274),n=i(2333);const d={},o="@morph-l2/sdk",l={id:"build-on-morph/sdk/intro",title:"intro",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/intro.md",sourceDirName:"build-on-morph/sdk",slug:"/build-on-morph/sdk/intro",permalink:"/docs/build-on-morph/sdk/intro",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/intro.md",tags:[],version:"current",frontMatter:{}},h={},c=[{value:"Enumerations",id:"enumerations",level:2},{value:"Classes",id:"classes",level:2},{value:"Interfaces",id:"interfaces",level:2},{value:"Type Aliases",id:"type-aliases",level:2},{value:"Variables",id:"variables",level:2},{value:"Functions",id:"functions",level:2}];function a(s){const e={a:"a",h1:"h1",h2:"h2",hr:"hr",li:"li",p:"p",strong:"strong",ul:"ul",...(0,n.R)(),...s.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,r.jsx)(e.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,r.jsx)(e.strong,{children:"Docs"})]}),"\n",(0,r.jsx)(e.hr,{}),"\n",(0,r.jsx)(e.h1,{id:"morph-l2sdk",children:"@morph-l2/sdk"}),"\n",(0,r.jsx)(e.h2,{id:"enumerations",children:"Enumerations"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/enumerations/L1ChainID",children:"L1ChainID"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/enumerations/L1RpcUrls",children:"L1RpcUrls"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/enumerations/L2ChainID",children:"L2ChainID"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/enumerations/L2RpcUrls",children:"L2RpcUrls"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/enumerations/MessageDirection",children:"MessageDirection"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/enumerations/MessageReceiptStatus",children:"MessageReceiptStatus"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/enumerations/MessageStatus",children:"MessageStatus"})}),"\n"]}),"\n",(0,r.jsx)(e.h2,{id:"classes",children:"Classes"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/classes/CrossChainMessenger",children:"CrossChainMessenger"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/classes/ETHBridgeAdapter",children:"ETHBridgeAdapter"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter",children:"StandardBridgeAdapter"})}),"\n"]}),"\n",(0,r.jsx)(e.h2,{id:"interfaces",children:"Interfaces"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/interfaces/BridgeAdapterData",children:"BridgeAdapterData"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/interfaces/BridgeAdapters",children:"BridgeAdapters"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage",children:"CoreCrossChainMessage"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/interfaces/CrossChainMessage",children:"CrossChainMessage"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/interfaces/CrossChainMessageRequest",children:"CrossChainMessageRequest"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:"IActionOptions"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter",children:"IBridgeAdapter"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/interfaces/L2Block",children:"L2Block"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/interfaces/L2BlockWithTransactions",children:"L2BlockWithTransactions"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/interfaces/L2Transaction",children:"L2Transaction"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/interfaces/MessageReceipt",children:"MessageReceipt"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/interfaces/OEContracts",children:"OEContracts"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/interfaces/OEContractsLike",children:"OEContractsLike"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/interfaces/OEL1Contracts",children:"OEL1Contracts"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/interfaces/OEL2Contracts",children:"OEL2Contracts"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/interfaces/ProvenWithdrawal",children:"ProvenWithdrawal"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/interfaces/StateRoot",children:"StateRoot"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/interfaces/StateRootBatch",children:"StateRootBatch"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/interfaces/StateRootBatchHeader",children:"StateRootBatchHeader"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage",children:"TokenBridgeMessage"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/interfaces/WithdrawMessageProof",children:"WithdrawMessageProof"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/interfaces/WithdrawalEntry",children:"WithdrawalEntry"})}),"\n"]}),"\n",(0,r.jsx)(e.h2,{id:"type-aliases",children:"Type Aliases"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:"AddressLike"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/type-aliases/DeepPartial",children:"DeepPartial"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/type-aliases/L1Provider",children:"L1Provider"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/type-aliases/L2Provider",children:"L2Provider"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/type-aliases/LowLevelMessage",children:"LowLevelMessage"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/type-aliases/MessageLike",children:"MessageLike"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/type-aliases/MessageRequestLike",children:"MessageRequestLike"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:"NumberLike"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/type-aliases/OEL1ContractsLike",children:"OEL1ContractsLike"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/type-aliases/OEL2ContractsLike",children:"OEL2ContractsLike"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/type-aliases/ProviderLike",children:"ProviderLike"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/type-aliases/SignerLike",children:"SignerLike"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/type-aliases/SignerOrProviderLike",children:"SignerOrProviderLike"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/type-aliases/TransactionLike",children:"TransactionLike"})}),"\n"]}),"\n",(0,r.jsx)(e.h2,{id:"variables",children:"Variables"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/variables/BRIDGE_ADAPTER_DATA",children:"BRIDGE_ADAPTER_DATA"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/variables/CHAIN_BLOCK_TIMES",children:"CHAIN_BLOCK_TIMES"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/variables/CONTRACT_ADDRESSES",children:"CONTRACT_ADDRESSES"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/variables/DEFAULT_L1_CONTRACT_ADDRESSES",children:"DEFAULT_L1_CONTRACT_ADDRESSES"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/variables/DEFAULT_L2_CONTRACT_ADDRESSES",children:"DEFAULT_L2_CONTRACT_ADDRESSES"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/variables/DEPOSIT_CONFIRMATION_BLOCKS",children:"DEPOSIT_CONFIRMATION_BLOCKS"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/variables/l1BridgeName",children:"l1BridgeName"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/variables/l1CrossDomainMessengerName",children:"l1CrossDomainMessengerName"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/variables/l2BridgeName",children:"l2BridgeName"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/variables/l2CrossDomainMessengerName",children:"l2CrossDomainMessengerName"})}),"\n"]}),"\n",(0,r.jsx)(e.h2,{id:"functions",children:"Functions"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/functions/asL2Provider",children:"asL2Provider"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/functions/estimateL1Gas",children:"estimateL1Gas"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/functions/estimateL1GasCost",children:"estimateL1GasCost"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/functions/estimateL2GasCost",children:"estimateL2GasCost"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/functions/estimateTotalGasCost",children:"estimateTotalGasCost"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/functions/getAllOEContracts",children:"getAllOEContracts"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/functions/getBridgeAdapters",children:"getBridgeAdapters"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/functions/getL1GasPrice",children:"getL1GasPrice"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/functions/getOEContract",children:"getOEContract"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/functions/hashLowLevelMessageV2",children:"hashLowLevelMessageV2"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/functions/hashMessageHash",children:"hashMessageHash"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/functions/isL2Provider",children:"isL2Provider"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/functions/migratedWithdrawalGasLimit",children:"migratedWithdrawalGasLimit"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/functions/omit",children:"omit"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/functions/toAddress",children:"toAddress"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/functions/toBigNumber",children:"toBigNumber"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/functions/toNumber",children:"toNumber"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/functions/toProvider",children:"toProvider"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/functions/toSignerOrProvider",children:"toSignerOrProvider"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/functions/toTransactionHash",children:"toTransactionHash"})}),"\n"]})]})}function t(s={}){const{wrapper:e}={...(0,n.R)(),...s.components};return e?(0,r.jsx)(e,{...s,children:(0,r.jsx)(a,{...s})}):a(s)}},2333:(s,e,i)=>{i.d(e,{R:()=>o,x:()=>l});var r=i(9474);const n={},d=r.createContext(n);function o(s){const e=r.useContext(d);return r.useMemo((function(){return"function"==typeof s?s(e):{...e,...s}}),[e,s])}function l(s){let e;return e=s.disableParentContext?"function"==typeof s.components?s.components(n):s.components||n:o(s.components),r.createElement(d.Provider,{value:e},s.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[8525],{3830:(s,e,i)=>{i.r(e),i.d(e,{assets:()=>h,contentTitle:()=>o,default:()=>t,frontMatter:()=>d,metadata:()=>l,toc:()=>c});var r=i(6070),n=i(1582);const d={},o="@morph-l2/sdk",l={id:"build-on-morph/sdk/intro",title:"intro",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/intro.md",sourceDirName:"build-on-morph/sdk",slug:"/build-on-morph/sdk/intro",permalink:"/docs/build-on-morph/sdk/intro",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/intro.md",tags:[],version:"current",frontMatter:{}},h={},c=[{value:"Enumerations",id:"enumerations",level:2},{value:"Classes",id:"classes",level:2},{value:"Interfaces",id:"interfaces",level:2},{value:"Type Aliases",id:"type-aliases",level:2},{value:"Variables",id:"variables",level:2},{value:"Functions",id:"functions",level:2}];function a(s){const e={a:"a",h1:"h1",h2:"h2",hr:"hr",li:"li",p:"p",strong:"strong",ul:"ul",...(0,n.R)(),...s.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,r.jsx)(e.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,r.jsx)(e.strong,{children:"Docs"})]}),"\n",(0,r.jsx)(e.hr,{}),"\n",(0,r.jsx)(e.h1,{id:"morph-l2sdk",children:"@morph-l2/sdk"}),"\n",(0,r.jsx)(e.h2,{id:"enumerations",children:"Enumerations"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/enumerations/L1ChainID",children:"L1ChainID"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/enumerations/L1RpcUrls",children:"L1RpcUrls"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/enumerations/L2ChainID",children:"L2ChainID"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/enumerations/L2RpcUrls",children:"L2RpcUrls"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/enumerations/MessageDirection",children:"MessageDirection"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/enumerations/MessageReceiptStatus",children:"MessageReceiptStatus"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/enumerations/MessageStatus",children:"MessageStatus"})}),"\n"]}),"\n",(0,r.jsx)(e.h2,{id:"classes",children:"Classes"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/classes/CrossChainMessenger",children:"CrossChainMessenger"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/classes/ETHBridgeAdapter",children:"ETHBridgeAdapter"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter",children:"StandardBridgeAdapter"})}),"\n"]}),"\n",(0,r.jsx)(e.h2,{id:"interfaces",children:"Interfaces"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/interfaces/BridgeAdapterData",children:"BridgeAdapterData"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/interfaces/BridgeAdapters",children:"BridgeAdapters"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage",children:"CoreCrossChainMessage"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/interfaces/CrossChainMessage",children:"CrossChainMessage"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/interfaces/CrossChainMessageRequest",children:"CrossChainMessageRequest"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:"IActionOptions"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter",children:"IBridgeAdapter"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/interfaces/L2Block",children:"L2Block"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/interfaces/L2BlockWithTransactions",children:"L2BlockWithTransactions"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/interfaces/L2Transaction",children:"L2Transaction"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/interfaces/MessageReceipt",children:"MessageReceipt"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/interfaces/OEContracts",children:"OEContracts"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/interfaces/OEContractsLike",children:"OEContractsLike"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/interfaces/OEL1Contracts",children:"OEL1Contracts"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/interfaces/OEL2Contracts",children:"OEL2Contracts"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/interfaces/ProvenWithdrawal",children:"ProvenWithdrawal"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/interfaces/StateRoot",children:"StateRoot"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/interfaces/StateRootBatch",children:"StateRootBatch"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/interfaces/StateRootBatchHeader",children:"StateRootBatchHeader"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage",children:"TokenBridgeMessage"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/interfaces/WithdrawMessageProof",children:"WithdrawMessageProof"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/interfaces/WithdrawalEntry",children:"WithdrawalEntry"})}),"\n"]}),"\n",(0,r.jsx)(e.h2,{id:"type-aliases",children:"Type Aliases"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:"AddressLike"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/type-aliases/DeepPartial",children:"DeepPartial"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/type-aliases/L1Provider",children:"L1Provider"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/type-aliases/L2Provider",children:"L2Provider"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/type-aliases/LowLevelMessage",children:"LowLevelMessage"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/type-aliases/MessageLike",children:"MessageLike"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/type-aliases/MessageRequestLike",children:"MessageRequestLike"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:"NumberLike"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/type-aliases/OEL1ContractsLike",children:"OEL1ContractsLike"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/type-aliases/OEL2ContractsLike",children:"OEL2ContractsLike"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/type-aliases/ProviderLike",children:"ProviderLike"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/type-aliases/SignerLike",children:"SignerLike"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/type-aliases/SignerOrProviderLike",children:"SignerOrProviderLike"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/type-aliases/TransactionLike",children:"TransactionLike"})}),"\n"]}),"\n",(0,r.jsx)(e.h2,{id:"variables",children:"Variables"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/variables/BRIDGE_ADAPTER_DATA",children:"BRIDGE_ADAPTER_DATA"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/variables/CHAIN_BLOCK_TIMES",children:"CHAIN_BLOCK_TIMES"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/variables/CONTRACT_ADDRESSES",children:"CONTRACT_ADDRESSES"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/variables/DEFAULT_L1_CONTRACT_ADDRESSES",children:"DEFAULT_L1_CONTRACT_ADDRESSES"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/variables/DEFAULT_L2_CONTRACT_ADDRESSES",children:"DEFAULT_L2_CONTRACT_ADDRESSES"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/variables/DEPOSIT_CONFIRMATION_BLOCKS",children:"DEPOSIT_CONFIRMATION_BLOCKS"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/variables/l1BridgeName",children:"l1BridgeName"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/variables/l1CrossDomainMessengerName",children:"l1CrossDomainMessengerName"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/variables/l2BridgeName",children:"l2BridgeName"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/variables/l2CrossDomainMessengerName",children:"l2CrossDomainMessengerName"})}),"\n"]}),"\n",(0,r.jsx)(e.h2,{id:"functions",children:"Functions"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/functions/asL2Provider",children:"asL2Provider"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/functions/estimateL1Gas",children:"estimateL1Gas"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/functions/estimateL1GasCost",children:"estimateL1GasCost"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/functions/estimateL2GasCost",children:"estimateL2GasCost"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/functions/estimateTotalGasCost",children:"estimateTotalGasCost"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/functions/getAllOEContracts",children:"getAllOEContracts"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/functions/getBridgeAdapters",children:"getBridgeAdapters"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/functions/getL1GasPrice",children:"getL1GasPrice"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/functions/getOEContract",children:"getOEContract"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/functions/hashLowLevelMessageV2",children:"hashLowLevelMessageV2"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/functions/hashMessageHash",children:"hashMessageHash"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/functions/isL2Provider",children:"isL2Provider"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/functions/migratedWithdrawalGasLimit",children:"migratedWithdrawalGasLimit"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/functions/omit",children:"omit"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/functions/toAddress",children:"toAddress"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/functions/toBigNumber",children:"toBigNumber"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/functions/toNumber",children:"toNumber"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/functions/toProvider",children:"toProvider"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/functions/toSignerOrProvider",children:"toSignerOrProvider"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/functions/toTransactionHash",children:"toTransactionHash"})}),"\n"]})]})}function t(s={}){const{wrapper:e}={...(0,n.R)(),...s.components};return e?(0,r.jsx)(e,{...s,children:(0,r.jsx)(a,{...s})}):a(s)}},1582:(s,e,i)=>{i.d(e,{R:()=>o,x:()=>l});var r=i(758);const n={},d=r.createContext(n);function o(s){const e=r.useContext(d);return r.useMemo((function(){return"function"==typeof s?s(e):{...e,...s}}),[e,s])}function l(s){let e;return e=s.disableParentContext?"function"==typeof s.components?s.components(n):s.components||n:o(s.components),r.createElement(d.Provider,{value:e},s.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/acba9d96.e6a02dbe.js b/build/assets/js/68efb262.36868b50.js similarity index 64% rename from build/assets/js/acba9d96.e6a02dbe.js rename to build/assets/js/68efb262.36868b50.js index 4ed39cc74..88ec8d3fe 100644 --- a/build/assets/js/acba9d96.e6a02dbe.js +++ b/build/assets/js/68efb262.36868b50.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[3398],{1966:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"default"}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[8744],{1966:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"default"}')}}]); \ No newline at end of file diff --git a/build/assets/js/69301e8b.f649c8f2.js b/build/assets/js/69301e8b.f3c5089c.js similarity index 84% rename from build/assets/js/69301e8b.f649c8f2.js rename to build/assets/js/69301e8b.f3c5089c.js index b61340840..c70d94793 100644 --- a/build/assets/js/69301e8b.f649c8f2.js +++ b/build/assets/js/69301e8b.f3c5089c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[6913],{7843:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>i,contentTitle:()=>l,default:()=>u,frontMatter:()=>c,metadata:()=>t,toc:()=>d});var r=s(3274),o=s(2333);const c={},l="Enumeration: L1RpcUrls",t={id:"build-on-morph/sdk/enumerations/L1RpcUrls",title:"L1RpcUrls",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/enumerations/L1RpcUrls.md",sourceDirName:"build-on-morph/sdk/enumerations",slug:"/build-on-morph/sdk/enumerations/L1RpcUrls",permalink:"/docs/build-on-morph/sdk/enumerations/L1RpcUrls",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/enumerations/L1RpcUrls.md",tags:[],version:"current",frontMatter:{}},i={},d=[{value:"Enumeration Members",id:"enumeration-members",level:2},{value:"HOLESKY",id:"holesky",level:3},{value:"Source",id:"source",level:4},{value:"MORPH_LOCAL_DEVNET",id:"morph_local_devnet",level:3},{value:"Source",id:"source-1",level:4},{value:"SEPOLIA",id:"sepolia",level:3},{value:"Source",id:"source-2",level:4}];function h(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",p:"p",strong:"strong",...(0,o.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,r.jsx)(n.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,r.jsx)(n.strong,{children:"Docs"})]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / L1RpcUrls"]}),"\n",(0,r.jsx)(n.h1,{id:"enumeration-l1rpcurls",children:"Enumeration: L1RpcUrls"}),"\n",(0,r.jsx)(n.h2,{id:"enumeration-members",children:"Enumeration Members"}),"\n",(0,r.jsx)(n.h3,{id:"holesky",children:"HOLESKY"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"HOLESKY"}),": ",(0,r.jsx)(n.code,{children:'"https://1rpc.io/holesky"'})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"source",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/interfaces/types.ts:41"}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"morph_local_devnet",children:"MORPH_LOCAL_DEVNET"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"MORPH_LOCAL_DEVNET"}),": ",(0,r.jsx)(n.code,{children:'"http://localhost:9545"'})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"source-1",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/interfaces/types.ts:39"}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"sepolia",children:"SEPOLIA"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"SEPOLIA"}),": ",(0,r.jsx)(n.code,{children:'"https://1rpc.io/sepolia"'})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"source-2",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/interfaces/types.ts:40"})]})}function u(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},2333:(e,n,s)=>{s.d(n,{R:()=>l,x:()=>t});var r=s(9474);const o={},c=r.createContext(o);function l(e){const n=r.useContext(c);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function t(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:l(e.components),r.createElement(c.Provider,{value:n},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[6913],{6121:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>i,contentTitle:()=>l,default:()=>u,frontMatter:()=>c,metadata:()=>t,toc:()=>d});var r=s(6070),o=s(1582);const c={},l="Enumeration: L1RpcUrls",t={id:"build-on-morph/sdk/enumerations/L1RpcUrls",title:"L1RpcUrls",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/enumerations/L1RpcUrls.md",sourceDirName:"build-on-morph/sdk/enumerations",slug:"/build-on-morph/sdk/enumerations/L1RpcUrls",permalink:"/docs/build-on-morph/sdk/enumerations/L1RpcUrls",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/enumerations/L1RpcUrls.md",tags:[],version:"current",frontMatter:{}},i={},d=[{value:"Enumeration Members",id:"enumeration-members",level:2},{value:"HOLESKY",id:"holesky",level:3},{value:"Source",id:"source",level:4},{value:"MORPH_LOCAL_DEVNET",id:"morph_local_devnet",level:3},{value:"Source",id:"source-1",level:4},{value:"SEPOLIA",id:"sepolia",level:3},{value:"Source",id:"source-2",level:4}];function h(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",p:"p",strong:"strong",...(0,o.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,r.jsx)(n.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,r.jsx)(n.strong,{children:"Docs"})]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / L1RpcUrls"]}),"\n",(0,r.jsx)(n.h1,{id:"enumeration-l1rpcurls",children:"Enumeration: L1RpcUrls"}),"\n",(0,r.jsx)(n.h2,{id:"enumeration-members",children:"Enumeration Members"}),"\n",(0,r.jsx)(n.h3,{id:"holesky",children:"HOLESKY"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"HOLESKY"}),": ",(0,r.jsx)(n.code,{children:'"https://1rpc.io/holesky"'})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"source",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/interfaces/types.ts:41"}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"morph_local_devnet",children:"MORPH_LOCAL_DEVNET"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"MORPH_LOCAL_DEVNET"}),": ",(0,r.jsx)(n.code,{children:'"http://localhost:9545"'})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"source-1",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/interfaces/types.ts:39"}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"sepolia",children:"SEPOLIA"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"SEPOLIA"}),": ",(0,r.jsx)(n.code,{children:'"https://1rpc.io/sepolia"'})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"source-2",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/interfaces/types.ts:40"})]})}function u(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},1582:(e,n,s)=>{s.d(n,{R:()=>l,x:()=>t});var r=s(758);const o={},c=r.createContext(o);function l(e){const n=r.useContext(c);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function t(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:l(e.components),r.createElement(c.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/6a8ddb26.a8d54b20.js b/build/assets/js/6a8ddb26.a8d54b20.js new file mode 100644 index 000000000..c7088028f --- /dev/null +++ b/build/assets/js/6a8ddb26.a8d54b20.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[7762],{213:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>a,contentTitle:()=>i,default:()=>h,frontMatter:()=>t,metadata:()=>c,toc:()=>d});var o=n(6070),r=n(1582);const t={},i="Type alias: MessageRequestLike",c={id:"build-on-morph/sdk/type-aliases/MessageRequestLike",title:"MessageRequestLike",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/type-aliases/MessageRequestLike.md",sourceDirName:"build-on-morph/sdk/type-aliases",slug:"/build-on-morph/sdk/type-aliases/MessageRequestLike",permalink:"/docs/build-on-morph/sdk/type-aliases/MessageRequestLike",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/type-aliases/MessageRequestLike.md",tags:[],version:"current",frontMatter:{}},a={},d=[{value:"Source",id:"source",level:2}];function l(e){const s={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,r.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,o.jsx)(s.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,o.jsx)(s.strong,{children:"Docs"})]}),"\n",(0,o.jsx)(s.hr,{}),"\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / MessageRequestLike"]}),"\n",(0,o.jsx)(s.h1,{id:"type-alias-messagerequestlike",children:"Type alias: MessageRequestLike"}),"\n",(0,o.jsxs)(s.blockquote,{children:["\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.strong,{children:"MessageRequestLike"}),": ",(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CrossChainMessageRequest",children:(0,o.jsx)(s.code,{children:"CrossChainMessageRequest"})})," | ",(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CrossChainMessage",children:(0,o.jsx)(s.code,{children:"CrossChainMessage"})})," | ",(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/TransactionLike",children:(0,o.jsx)(s.code,{children:"TransactionLike"})})," | ",(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage",children:(0,o.jsx)(s.code,{children:"TokenBridgeMessage"})})]}),"\n"]}),"\n",(0,o.jsx)(s.p,{children:"Stuff that can be coerced into a CrossChainMessageRequest."}),"\n",(0,o.jsx)(s.h2,{id:"source",children:"Source"}),"\n",(0,o.jsx)(s.p,{children:"src/interfaces/types.ts:367"})]})}function h(e={}){const{wrapper:s}={...(0,r.R)(),...e.components};return s?(0,o.jsx)(s,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},1582:(e,s,n)=>{n.d(s,{R:()=>i,x:()=>c});var o=n(758);const r={},t=o.createContext(r);function i(e){const s=o.useContext(t);return o.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),o.createElement(t.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/6a8ddb26.bb20b217.js b/build/assets/js/6a8ddb26.bb20b217.js deleted file mode 100644 index 841aa5bda..000000000 --- a/build/assets/js/6a8ddb26.bb20b217.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[7762],{1839:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>a,contentTitle:()=>i,default:()=>h,frontMatter:()=>t,metadata:()=>c,toc:()=>d});var o=n(3274),r=n(2333);const t={},i="Type alias: MessageRequestLike",c={id:"build-on-morph/sdk/type-aliases/MessageRequestLike",title:"MessageRequestLike",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/type-aliases/MessageRequestLike.md",sourceDirName:"build-on-morph/sdk/type-aliases",slug:"/build-on-morph/sdk/type-aliases/MessageRequestLike",permalink:"/docs/build-on-morph/sdk/type-aliases/MessageRequestLike",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/type-aliases/MessageRequestLike.md",tags:[],version:"current",frontMatter:{}},a={},d=[{value:"Source",id:"source",level:2}];function l(e){const s={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,r.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,o.jsx)(s.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,o.jsx)(s.strong,{children:"Docs"})]}),"\n",(0,o.jsx)(s.hr,{}),"\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / MessageRequestLike"]}),"\n",(0,o.jsx)(s.h1,{id:"type-alias-messagerequestlike",children:"Type alias: MessageRequestLike"}),"\n",(0,o.jsxs)(s.blockquote,{children:["\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.strong,{children:"MessageRequestLike"}),": ",(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CrossChainMessageRequest",children:(0,o.jsx)(s.code,{children:"CrossChainMessageRequest"})})," | ",(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CrossChainMessage",children:(0,o.jsx)(s.code,{children:"CrossChainMessage"})})," | ",(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/TransactionLike",children:(0,o.jsx)(s.code,{children:"TransactionLike"})})," | ",(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage",children:(0,o.jsx)(s.code,{children:"TokenBridgeMessage"})})]}),"\n"]}),"\n",(0,o.jsx)(s.p,{children:"Stuff that can be coerced into a CrossChainMessageRequest."}),"\n",(0,o.jsx)(s.h2,{id:"source",children:"Source"}),"\n",(0,o.jsx)(s.p,{children:"src/interfaces/types.ts:367"})]})}function h(e={}){const{wrapper:s}={...(0,r.R)(),...e.components};return s?(0,o.jsx)(s,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},2333:(e,s,n)=>{n.d(s,{R:()=>i,x:()=>c});var o=n(9474);const r={},t=o.createContext(r);function i(e){const s=o.useContext(t);return o.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),o.createElement(t.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/6ba36391.47baf76a.js b/build/assets/js/6ba36391.bdee8d58.js similarity index 82% rename from build/assets/js/6ba36391.47baf76a.js rename to build/assets/js/6ba36391.bdee8d58.js index 42f90d37a..0c02e4da9 100644 --- a/build/assets/js/6ba36391.47baf76a.js +++ b/build/assets/js/6ba36391.bdee8d58.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[9720],{2802:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>a,contentTitle:()=>o,default:()=>h,frontMatter:()=>s,metadata:()=>d,toc:()=>c});var t=n(3274),i=n(2333);const s={},o="Function: migratedWithdrawalGasLimit()",d={id:"build-on-morph/sdk/functions/migratedWithdrawalGasLimit",title:"migratedWithdrawalGasLimit",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/functions/migratedWithdrawalGasLimit.md",sourceDirName:"build-on-morph/sdk/functions",slug:"/build-on-morph/sdk/functions/migratedWithdrawalGasLimit",permalink:"/docs/build-on-morph/sdk/functions/migratedWithdrawalGasLimit",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/functions/migratedWithdrawalGasLimit.md",tags:[],version:"current",frontMatter:{}},a={},c=[{value:"Parameters",id:"parameters",level:2},{value:"Returns",id:"returns",level:2},{value:"Source",id:"source",level:2}];function l(e){const r={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,i.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(r.p,{children:[(0,t.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,t.jsx)(r.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,t.jsx)(r.strong,{children:"Docs"})]}),"\n",(0,t.jsx)(r.hr,{}),"\n",(0,t.jsxs)(r.p,{children:[(0,t.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / migratedWithdrawalGasLimit"]}),"\n",(0,t.jsx)(r.h1,{id:"function-migratedwithdrawalgaslimit",children:"Function: migratedWithdrawalGasLimit()"}),"\n",(0,t.jsxs)(r.blockquote,{children:["\n",(0,t.jsxs)(r.p,{children:[(0,t.jsx)(r.strong,{children:"migratedWithdrawalGasLimit"}),"(",(0,t.jsx)(r.code,{children:"data"}),", ",(0,t.jsx)(r.code,{children:"chainID"}),"): ",(0,t.jsx)(r.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,t.jsx)(r.p,{children:"Compute the min gas limit for a migrated withdrawal."}),"\n",(0,t.jsx)(r.h2,{id:"parameters",children:"Parameters"}),"\n",(0,t.jsxs)(r.p,{children:["\u2022 ",(0,t.jsx)(r.strong,{children:"data"}),": ",(0,t.jsx)(r.code,{children:"string"})]}),"\n",(0,t.jsxs)(r.p,{children:["\u2022 ",(0,t.jsx)(r.strong,{children:"chainID"}),": ",(0,t.jsx)(r.code,{children:"number"})]}),"\n",(0,t.jsx)(r.h2,{id:"returns",children:"Returns"}),"\n",(0,t.jsx)(r.p,{children:(0,t.jsx)(r.code,{children:"BigNumber"})}),"\n",(0,t.jsx)(r.h2,{id:"source",children:"Source"}),"\n",(0,t.jsx)(r.p,{children:"src/utils/message-utils.ts:35"})]})}function h(e={}){const{wrapper:r}={...(0,i.R)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(l,{...e})}):l(e)}},2333:(e,r,n)=>{n.d(r,{R:()=>o,x:()=>d});var t=n(9474);const i={},s=t.createContext(i);function o(e){const r=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function d(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),t.createElement(s.Provider,{value:r},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[9720],{8256:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>a,contentTitle:()=>o,default:()=>h,frontMatter:()=>s,metadata:()=>d,toc:()=>c});var t=n(6070),i=n(1582);const s={},o="Function: migratedWithdrawalGasLimit()",d={id:"build-on-morph/sdk/functions/migratedWithdrawalGasLimit",title:"migratedWithdrawalGasLimit",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/functions/migratedWithdrawalGasLimit.md",sourceDirName:"build-on-morph/sdk/functions",slug:"/build-on-morph/sdk/functions/migratedWithdrawalGasLimit",permalink:"/docs/build-on-morph/sdk/functions/migratedWithdrawalGasLimit",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/functions/migratedWithdrawalGasLimit.md",tags:[],version:"current",frontMatter:{}},a={},c=[{value:"Parameters",id:"parameters",level:2},{value:"Returns",id:"returns",level:2},{value:"Source",id:"source",level:2}];function l(e){const r={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,i.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(r.p,{children:[(0,t.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,t.jsx)(r.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,t.jsx)(r.strong,{children:"Docs"})]}),"\n",(0,t.jsx)(r.hr,{}),"\n",(0,t.jsxs)(r.p,{children:[(0,t.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / migratedWithdrawalGasLimit"]}),"\n",(0,t.jsx)(r.h1,{id:"function-migratedwithdrawalgaslimit",children:"Function: migratedWithdrawalGasLimit()"}),"\n",(0,t.jsxs)(r.blockquote,{children:["\n",(0,t.jsxs)(r.p,{children:[(0,t.jsx)(r.strong,{children:"migratedWithdrawalGasLimit"}),"(",(0,t.jsx)(r.code,{children:"data"}),", ",(0,t.jsx)(r.code,{children:"chainID"}),"): ",(0,t.jsx)(r.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,t.jsx)(r.p,{children:"Compute the min gas limit for a migrated withdrawal."}),"\n",(0,t.jsx)(r.h2,{id:"parameters",children:"Parameters"}),"\n",(0,t.jsxs)(r.p,{children:["\u2022 ",(0,t.jsx)(r.strong,{children:"data"}),": ",(0,t.jsx)(r.code,{children:"string"})]}),"\n",(0,t.jsxs)(r.p,{children:["\u2022 ",(0,t.jsx)(r.strong,{children:"chainID"}),": ",(0,t.jsx)(r.code,{children:"number"})]}),"\n",(0,t.jsx)(r.h2,{id:"returns",children:"Returns"}),"\n",(0,t.jsx)(r.p,{children:(0,t.jsx)(r.code,{children:"BigNumber"})}),"\n",(0,t.jsx)(r.h2,{id:"source",children:"Source"}),"\n",(0,t.jsx)(r.p,{children:"src/utils/message-utils.ts:35"})]})}function h(e={}){const{wrapper:r}={...(0,i.R)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(l,{...e})}):l(e)}},1582:(e,r,n)=>{n.d(r,{R:()=>o,x:()=>d});var t=n(758);const i={},s=t.createContext(i);function o(e){const r=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function d(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),t.createElement(s.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/6f037fd7.de0d89b6.js b/build/assets/js/6f037fd7.be4f334b.js similarity index 95% rename from build/assets/js/6f037fd7.de0d89b6.js rename to build/assets/js/6f037fd7.be4f334b.js index 47b25188c..a4e03048d 100644 --- a/build/assets/js/6f037fd7.de0d89b6.js +++ b/build/assets/js/6f037fd7.be4f334b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[8308],{5341:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>o,contentTitle:()=>c,default:()=>a,frontMatter:()=>d,metadata:()=>l,toc:()=>t});var i=n(3274),s=n(2333);const d={},c="Interface: L2BlockWithTransactions",l={id:"build-on-morph/sdk/interfaces/L2BlockWithTransactions",title:"L2BlockWithTransactions",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/interfaces/L2BlockWithTransactions.md",sourceDirName:"build-on-morph/sdk/interfaces",slug:"/build-on-morph/sdk/interfaces/L2BlockWithTransactions",permalink:"/docs/build-on-morph/sdk/interfaces/L2BlockWithTransactions",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/interfaces/L2BlockWithTransactions.md",tags:[],version:"current",frontMatter:{}},o={},t=[{value:"Extends",id:"extends",level:2},{value:"Properties",id:"properties",level:2},{value:"_difficulty",id:"_difficulty",level:3},{value:"Inherited from",id:"inherited-from",level:4},{value:"Source",id:"source",level:4},{value:"baseFeePerGas?",id:"basefeepergas",level:3},{value:"Inherited from",id:"inherited-from-1",level:4},{value:"Source",id:"source-1",level:4},{value:"difficulty",id:"difficulty",level:3},{value:"Inherited from",id:"inherited-from-2",level:4},{value:"Source",id:"source-2",level:4},{value:"extraData",id:"extradata",level:3},{value:"Inherited from",id:"inherited-from-3",level:4},{value:"Source",id:"source-3",level:4},{value:"gasLimit",id:"gaslimit",level:3},{value:"Inherited from",id:"inherited-from-4",level:4},{value:"Source",id:"source-4",level:4},{value:"gasUsed",id:"gasused",level:3},{value:"Inherited from",id:"inherited-from-5",level:4},{value:"Source",id:"source-5",level:4},{value:"hash",id:"hash",level:3},{value:"Inherited from",id:"inherited-from-6",level:4},{value:"Source",id:"source-6",level:4},{value:"miner",id:"miner",level:3},{value:"Inherited from",id:"inherited-from-7",level:4},{value:"Source",id:"source-7",level:4},{value:"nonce",id:"nonce",level:3},{value:"Inherited from",id:"inherited-from-8",level:4},{value:"Source",id:"source-8",level:4},{value:"number",id:"number",level:3},{value:"Inherited from",id:"inherited-from-9",level:4},{value:"Source",id:"source-9",level:4},{value:"parentHash",id:"parenthash",level:3},{value:"Inherited from",id:"inherited-from-10",level:4},{value:"Source",id:"source-10",level:4},{value:"stateRoot",id:"stateroot",level:3},{value:"Source",id:"source-11",level:4},{value:"timestamp",id:"timestamp",level:3},{value:"Inherited from",id:"inherited-from-11",level:4},{value:"Source",id:"source-12",level:4},{value:"transactions",id:"transactions",level:3},{value:"Overrides",id:"overrides",level:4},{value:"Source",id:"source-13",level:4}];function h(e){const r={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",li:"li",p:"p",strong:"strong",ul:"ul",...(0,s.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,i.jsx)(r.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,i.jsx)(r.strong,{children:"Docs"})]}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / L2BlockWithTransactions"]}),"\n",(0,i.jsx)(r.h1,{id:"interface-l2blockwithtransactions",children:"Interface: L2BlockWithTransactions"}),"\n",(0,i.jsx)(r.p,{children:"JSON block representation when returned by L2Geth nodes. Just a normal block but with\nL2Transaction objects instead of the standard transaction response object."}),"\n",(0,i.jsx)(r.h2,{id:"extends",children:"Extends"}),"\n",(0,i.jsxs)(r.ul,{children:["\n",(0,i.jsx)(r.li,{children:(0,i.jsx)(r.code,{children:"BlockWithTransactions"})}),"\n"]}),"\n",(0,i.jsx)(r.h2,{id:"properties",children:"Properties"}),"\n",(0,i.jsx)(r.h3,{id:"_difficulty",children:"_difficulty"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"_difficulty"}),": ",(0,i.jsx)(r.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"inherited-from",children:"Inherited from"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"BlockWithTransactions._difficulty"})}),"\n",(0,i.jsx)(r.h4,{id:"source",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:41"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"basefeepergas",children:"baseFeePerGas?"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.code,{children:"optional"})," ",(0,i.jsx)(r.strong,{children:"baseFeePerGas"}),": ",(0,i.jsx)(r.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"inherited-from-1",children:"Inherited from"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"BlockWithTransactions.baseFeePerGas"})}),"\n",(0,i.jsx)(r.h4,{id:"source-1",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:46"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"difficulty",children:"difficulty"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"difficulty"}),": ",(0,i.jsx)(r.code,{children:"number"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"inherited-from-2",children:"Inherited from"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"BlockWithTransactions.difficulty"})}),"\n",(0,i.jsx)(r.h4,{id:"source-2",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:40"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"extradata",children:"extraData"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"extraData"}),": ",(0,i.jsx)(r.code,{children:"string"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"inherited-from-3",children:"Inherited from"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"BlockWithTransactions.extraData"})}),"\n",(0,i.jsx)(r.h4,{id:"source-3",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:45"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"gaslimit",children:"gasLimit"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"gasLimit"}),": ",(0,i.jsx)(r.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"inherited-from-4",children:"Inherited from"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"BlockWithTransactions.gasLimit"})}),"\n",(0,i.jsx)(r.h4,{id:"source-4",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:42"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"gasused",children:"gasUsed"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"gasUsed"}),": ",(0,i.jsx)(r.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"inherited-from-5",children:"Inherited from"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"BlockWithTransactions.gasUsed"})}),"\n",(0,i.jsx)(r.h4,{id:"source-5",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:43"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"hash",children:"hash"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"hash"}),": ",(0,i.jsx)(r.code,{children:"string"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"inherited-from-6",children:"Inherited from"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"BlockWithTransactions.hash"})}),"\n",(0,i.jsx)(r.h4,{id:"source-6",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:35"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"miner",children:"miner"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"miner"}),": ",(0,i.jsx)(r.code,{children:"string"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"inherited-from-7",children:"Inherited from"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"BlockWithTransactions.miner"})}),"\n",(0,i.jsx)(r.h4,{id:"source-7",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:44"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"nonce",children:"nonce"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"nonce"}),": ",(0,i.jsx)(r.code,{children:"string"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"inherited-from-8",children:"Inherited from"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"BlockWithTransactions.nonce"})}),"\n",(0,i.jsx)(r.h4,{id:"source-8",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:39"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"number",children:"number"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"number"}),": ",(0,i.jsx)(r.code,{children:"number"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"inherited-from-9",children:"Inherited from"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"BlockWithTransactions.number"})}),"\n",(0,i.jsx)(r.h4,{id:"source-9",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:37"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"parenthash",children:"parentHash"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"parentHash"}),": ",(0,i.jsx)(r.code,{children:"string"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"inherited-from-10",children:"Inherited from"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"BlockWithTransactions.parentHash"})}),"\n",(0,i.jsx)(r.h4,{id:"source-10",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:36"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"stateroot",children:"stateRoot"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"stateRoot"}),": ",(0,i.jsx)(r.code,{children:"string"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"source-11",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"src/interfaces/l2-provider.ts:35"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"timestamp",children:"timestamp"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"timestamp"}),": ",(0,i.jsx)(r.code,{children:"number"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"inherited-from-11",children:"Inherited from"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"BlockWithTransactions.timestamp"})}),"\n",(0,i.jsx)(r.h4,{id:"source-12",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:38"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"transactions",children:"transactions"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"transactions"}),": [",(0,i.jsx)(r.a,{href:"/docs/build-on-morph/sdk/interfaces/L2Transaction",children:(0,i.jsx)(r.code,{children:"L2Transaction"})}),"]"]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"overrides",children:"Overrides"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"BlockWithTransactions.transactions"})}),"\n",(0,i.jsx)(r.h4,{id:"source-13",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"src/interfaces/l2-provider.ts:36"})]})}function a(e={}){const{wrapper:r}={...(0,s.R)(),...e.components};return r?(0,i.jsx)(r,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},2333:(e,r,n)=>{n.d(r,{R:()=>c,x:()=>l});var i=n(9474);const s={},d=i.createContext(s);function c(e){const r=i.useContext(d);return i.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function l(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:c(e.components),i.createElement(d.Provider,{value:r},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[8308],{3711:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>o,contentTitle:()=>c,default:()=>a,frontMatter:()=>d,metadata:()=>l,toc:()=>t});var i=n(6070),s=n(1582);const d={},c="Interface: L2BlockWithTransactions",l={id:"build-on-morph/sdk/interfaces/L2BlockWithTransactions",title:"L2BlockWithTransactions",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/interfaces/L2BlockWithTransactions.md",sourceDirName:"build-on-morph/sdk/interfaces",slug:"/build-on-morph/sdk/interfaces/L2BlockWithTransactions",permalink:"/docs/build-on-morph/sdk/interfaces/L2BlockWithTransactions",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/interfaces/L2BlockWithTransactions.md",tags:[],version:"current",frontMatter:{}},o={},t=[{value:"Extends",id:"extends",level:2},{value:"Properties",id:"properties",level:2},{value:"_difficulty",id:"_difficulty",level:3},{value:"Inherited from",id:"inherited-from",level:4},{value:"Source",id:"source",level:4},{value:"baseFeePerGas?",id:"basefeepergas",level:3},{value:"Inherited from",id:"inherited-from-1",level:4},{value:"Source",id:"source-1",level:4},{value:"difficulty",id:"difficulty",level:3},{value:"Inherited from",id:"inherited-from-2",level:4},{value:"Source",id:"source-2",level:4},{value:"extraData",id:"extradata",level:3},{value:"Inherited from",id:"inherited-from-3",level:4},{value:"Source",id:"source-3",level:4},{value:"gasLimit",id:"gaslimit",level:3},{value:"Inherited from",id:"inherited-from-4",level:4},{value:"Source",id:"source-4",level:4},{value:"gasUsed",id:"gasused",level:3},{value:"Inherited from",id:"inherited-from-5",level:4},{value:"Source",id:"source-5",level:4},{value:"hash",id:"hash",level:3},{value:"Inherited from",id:"inherited-from-6",level:4},{value:"Source",id:"source-6",level:4},{value:"miner",id:"miner",level:3},{value:"Inherited from",id:"inherited-from-7",level:4},{value:"Source",id:"source-7",level:4},{value:"nonce",id:"nonce",level:3},{value:"Inherited from",id:"inherited-from-8",level:4},{value:"Source",id:"source-8",level:4},{value:"number",id:"number",level:3},{value:"Inherited from",id:"inherited-from-9",level:4},{value:"Source",id:"source-9",level:4},{value:"parentHash",id:"parenthash",level:3},{value:"Inherited from",id:"inherited-from-10",level:4},{value:"Source",id:"source-10",level:4},{value:"stateRoot",id:"stateroot",level:3},{value:"Source",id:"source-11",level:4},{value:"timestamp",id:"timestamp",level:3},{value:"Inherited from",id:"inherited-from-11",level:4},{value:"Source",id:"source-12",level:4},{value:"transactions",id:"transactions",level:3},{value:"Overrides",id:"overrides",level:4},{value:"Source",id:"source-13",level:4}];function h(e){const r={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",li:"li",p:"p",strong:"strong",ul:"ul",...(0,s.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,i.jsx)(r.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,i.jsx)(r.strong,{children:"Docs"})]}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / L2BlockWithTransactions"]}),"\n",(0,i.jsx)(r.h1,{id:"interface-l2blockwithtransactions",children:"Interface: L2BlockWithTransactions"}),"\n",(0,i.jsx)(r.p,{children:"JSON block representation when returned by L2Geth nodes. Just a normal block but with\nL2Transaction objects instead of the standard transaction response object."}),"\n",(0,i.jsx)(r.h2,{id:"extends",children:"Extends"}),"\n",(0,i.jsxs)(r.ul,{children:["\n",(0,i.jsx)(r.li,{children:(0,i.jsx)(r.code,{children:"BlockWithTransactions"})}),"\n"]}),"\n",(0,i.jsx)(r.h2,{id:"properties",children:"Properties"}),"\n",(0,i.jsx)(r.h3,{id:"_difficulty",children:"_difficulty"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"_difficulty"}),": ",(0,i.jsx)(r.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"inherited-from",children:"Inherited from"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"BlockWithTransactions._difficulty"})}),"\n",(0,i.jsx)(r.h4,{id:"source",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:41"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"basefeepergas",children:"baseFeePerGas?"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.code,{children:"optional"})," ",(0,i.jsx)(r.strong,{children:"baseFeePerGas"}),": ",(0,i.jsx)(r.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"inherited-from-1",children:"Inherited from"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"BlockWithTransactions.baseFeePerGas"})}),"\n",(0,i.jsx)(r.h4,{id:"source-1",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:46"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"difficulty",children:"difficulty"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"difficulty"}),": ",(0,i.jsx)(r.code,{children:"number"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"inherited-from-2",children:"Inherited from"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"BlockWithTransactions.difficulty"})}),"\n",(0,i.jsx)(r.h4,{id:"source-2",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:40"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"extradata",children:"extraData"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"extraData"}),": ",(0,i.jsx)(r.code,{children:"string"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"inherited-from-3",children:"Inherited from"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"BlockWithTransactions.extraData"})}),"\n",(0,i.jsx)(r.h4,{id:"source-3",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:45"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"gaslimit",children:"gasLimit"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"gasLimit"}),": ",(0,i.jsx)(r.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"inherited-from-4",children:"Inherited from"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"BlockWithTransactions.gasLimit"})}),"\n",(0,i.jsx)(r.h4,{id:"source-4",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:42"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"gasused",children:"gasUsed"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"gasUsed"}),": ",(0,i.jsx)(r.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"inherited-from-5",children:"Inherited from"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"BlockWithTransactions.gasUsed"})}),"\n",(0,i.jsx)(r.h4,{id:"source-5",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:43"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"hash",children:"hash"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"hash"}),": ",(0,i.jsx)(r.code,{children:"string"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"inherited-from-6",children:"Inherited from"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"BlockWithTransactions.hash"})}),"\n",(0,i.jsx)(r.h4,{id:"source-6",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:35"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"miner",children:"miner"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"miner"}),": ",(0,i.jsx)(r.code,{children:"string"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"inherited-from-7",children:"Inherited from"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"BlockWithTransactions.miner"})}),"\n",(0,i.jsx)(r.h4,{id:"source-7",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:44"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"nonce",children:"nonce"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"nonce"}),": ",(0,i.jsx)(r.code,{children:"string"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"inherited-from-8",children:"Inherited from"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"BlockWithTransactions.nonce"})}),"\n",(0,i.jsx)(r.h4,{id:"source-8",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:39"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"number",children:"number"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"number"}),": ",(0,i.jsx)(r.code,{children:"number"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"inherited-from-9",children:"Inherited from"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"BlockWithTransactions.number"})}),"\n",(0,i.jsx)(r.h4,{id:"source-9",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:37"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"parenthash",children:"parentHash"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"parentHash"}),": ",(0,i.jsx)(r.code,{children:"string"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"inherited-from-10",children:"Inherited from"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"BlockWithTransactions.parentHash"})}),"\n",(0,i.jsx)(r.h4,{id:"source-10",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:36"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"stateroot",children:"stateRoot"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"stateRoot"}),": ",(0,i.jsx)(r.code,{children:"string"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"source-11",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"src/interfaces/l2-provider.ts:35"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"timestamp",children:"timestamp"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"timestamp"}),": ",(0,i.jsx)(r.code,{children:"number"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"inherited-from-11",children:"Inherited from"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"BlockWithTransactions.timestamp"})}),"\n",(0,i.jsx)(r.h4,{id:"source-12",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:38"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"transactions",children:"transactions"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"transactions"}),": [",(0,i.jsx)(r.a,{href:"/docs/build-on-morph/sdk/interfaces/L2Transaction",children:(0,i.jsx)(r.code,{children:"L2Transaction"})}),"]"]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"overrides",children:"Overrides"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"BlockWithTransactions.transactions"})}),"\n",(0,i.jsx)(r.h4,{id:"source-13",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"src/interfaces/l2-provider.ts:36"})]})}function a(e={}){const{wrapper:r}={...(0,s.R)(),...e.components};return r?(0,i.jsx)(r,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},1582:(e,r,n)=>{n.d(r,{R:()=>c,x:()=>l});var i=n(758);const s={},d=i.createContext(s);function c(e){const r=i.useContext(d);return i.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function l(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:c(e.components),i.createElement(d.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/6f5ac92b.3d93dd47.js b/build/assets/js/6f5ac92b.3d93dd47.js new file mode 100644 index 000000000..e52696211 --- /dev/null +++ b/build/assets/js/6f5ac92b.3d93dd47.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[7049],{96:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>h,frontMatter:()=>r,metadata:()=>o,toc:()=>l});var s=i(6070),n=i(1582);const r={title:"Bridge",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},a=void 0,o={id:"quick-start/bridge",title:"Bridge",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/quick-start/4-bridge.md",sourceDirName:"quick-start",slug:"/quick-start/bridge",permalink:"/docs/quick-start/bridge",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/quick-start/4-bridge.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{title:"Bridge",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"Faucet",permalink:"/docs/quick-start/faucet"},next:{title:"Build on Morph",permalink:"/docs/build-on-morph/developer-navigation-page"}},c={},l=[{value:"Deposit from Ethereum to Morph Mainnet",id:"deposit-from-ethereum-to-morph-mainnet",level:2},{value:"Instructions:",id:"instructions",level:2},{value:"How long does it take for a token to arrive to Morph Testnet ?",id:"how-long-does-it-take-for-a-token-to-arrive-to-morph-testnet-",level:2},{value:"Initiate withdrawal",id:"initiate-withdrawal",level:2},{value:"Waiting for the verification challenge period",id:"waiting-for-the-verification-challenge-period",level:2},{value:"Claim the Withdrawal",id:"claim-the-withdrawal",level:2}];function d(e){const t={a:"a",admonition:"admonition",em:"em",h1:"h1",h2:"h2",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",...(0,n.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"deposit-from-ethereum-to-morph-mainnet",children:"Deposit from Ethereum to Morph Mainnet"}),"\n",(0,s.jsxs)(t.p,{children:["Please refer to the ",(0,s.jsx)(t.a,{href:"https://morph.ghost.io/how-to-bridge-eth-to-morph-official-bridge/",children:"Morph Season 2 - Bridge Guide."})]}),"\n",(0,s.jsx)(t.h1,{id:"deposit-from-ethereum-holesky-to-morph-testnet",children:"Deposit from Ethereum Holesky to Morph Testnet"}),"\n",(0,s.jsx)(t.h2,{id:"instructions",children:"Instructions:"}),"\n",(0,s.jsx)(t.admonition,{title:"Use the bridge here",type:"tip",children:(0,s.jsx)(t.p,{children:(0,s.jsx)(t.a,{href:"https://bridge-holesky.morphl2.io",children:"https://bridge-holesky.morphl2.io"})})}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["Open your MetaMask wallet and switch to the ",(0,s.jsx)(t.strong,{children:"Holesky"})," network."]}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.img,{alt:"image1",src:i(8280).A+"",width:"2556",height:"1052"}),"\n",(0,s.jsx)(t.img,{alt:"image1",src:i(2771).A+"",width:"1830",height:"1278"})]}),"\n",(0,s.jsxs)(t.ol,{start:"2",children:["\n",(0,s.jsxs)(t.li,{children:["Within Morph\u2019s Bridge app, click ",(0,s.jsx)(t.strong,{children:"Connect wallet"}),", select MetaMask, and approve the connection if prompted."]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image2",src:i(7562).A+"",width:"2588",height:"1288"})}),"\n",(0,s.jsxs)(t.ol,{start:"3",children:["\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Make sure that ",(0,s.jsx)(t.strong,{children:"Holesky"}),' is selected under \u2018From\u2019 and Morph L2 under \u2018To\u2019. If not, click the "\u2193" button to switch their positions.']}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"Select the token that you want to transfer."}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"Click the Send button to initiate the deposit."}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(t.admonition,{type:"tip",children:(0,s.jsxs)(t.p,{children:["If this is your first time transferring an ERC20 token, you need to approve the ",(0,s.jsx)(t.strong,{children:"Holesky"})," Bridge contract to access your ERC20 token."]})}),"\n",(0,s.jsxs)(t.ol,{start:"6",children:["\n",(0,s.jsxs)(t.li,{children:["A window will pop up asking for confirmation of the transfer transaction, click ",(0,s.jsx)(t.strong,{children:"Deposit"}),"."]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image3",src:i(2229).A+"",width:"1302",height:"1268"})}),"\n",(0,s.jsxs)(t.ol,{start:"7",children:["\n",(0,s.jsxs)(t.li,{children:["Click the Confirm button in MetaMask. Once the transfer transaction is finalized, the token will be deducted from your ",(0,s.jsx)(t.strong,{children:"Holesky"})," wallet address."]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image5",src:i(9164).A+"",width:"1964",height:"1312"})}),"\n",(0,s.jsxs)(t.ol,{start:"8",children:["\n",(0,s.jsx)(t.li,{children:"While you wait, you can check status of your transactions by clicking on the transactions button."}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image6",src:i(3447).A+"",width:"1386",height:"1132"})}),"\n",(0,s.jsx)(t.h2,{id:"how-long-does-it-take-for-a-token-to-arrive-to-morph-testnet-",children:"How long does it take for a token to arrive to Morph Testnet ?"}),"\n",(0,s.jsxs)(t.p,{children:["A token transfer from ",(0,s.jsx)(t.strong,{children:"Holesky"})," to Morph Testnet may take 8 to 14 minutes (time for block to become Safe on ",(0,s.jsx)(t.strong,{children:"Holesky"}),") before it appears in your Morph wallet. To check the progress of your deposit transactions, follow these steps:"]}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsx)(t.li,{children:"Click your wallet address at the top-right corner of the Bridge web app."}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image6",src:i(430).A+"",width:"2580",height:"1072"})}),"\n",(0,s.jsxs)(t.ol,{start:"2",children:["\n",(0,s.jsx)(t.li,{children:"Click on Transactions. A pop-up panel will display your recent transactions."}),"\n"]}),"\n",(0,s.jsx)(t.admonition,{type:"tip",children:(0,s.jsxs)(t.p,{children:["Note: For deposit transactions (L1 -> L2), once your transaction is confirmed as Safe on ",(0,s.jsx)(t.strong,{children:"Holesky"})," (8 to 14 minutes), you will see a ",(0,s.jsx)(t.strong,{children:"Success"})," status. Your funds will then be relayed to L2."]})}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image8",src:i(9817).A+"",width:"1712",height:"1258"})}),"\n",(0,s.jsxs)(t.ol,{start:"3",children:["\n",(0,s.jsxs)(t.li,{children:["Click on the most recent ",(0,s.jsx)(t.strong,{children:"Holesky"})," transaction hash."]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image9",src:i(2912).A+"",width:"1674",height:"1202"})}),"\n",(0,s.jsxs)(t.ol,{start:"4",children:["\n",(0,s.jsxs)(t.li,{children:["You will be taken to a Transaction Details page in the Explorer. Verify your transaction status (this transaction is confirmed on ",(0,s.jsx)(t.strong,{children:"Holesky"}),")."]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image10",src:i(8697).A+"",width:"2808",height:"1340"})}),"\n",(0,s.jsxs)(t.ol,{start:"5",children:["\n",(0,s.jsxs)(t.li,{children:["Once your transaction status shows ",(0,s.jsx)(t.em,{children:"success"})," on L2, return to the Bridge app to see a transaction hash and funds in your Morph L2 wallet."]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image11",src:i(95).A+"",width:"1602",height:"1216"})}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image12",src:i(5604).A+"",width:"2578",height:"1316"})}),"\n",(0,s.jsx)(t.h1,{id:"withdraw-from-morph-testnet-to-holesky",children:"Withdraw from Morph Testnet to Holesky"}),"\n",(0,s.jsx)(t.p,{children:"To withdraw funds from Morph Testnet, follow these steps:"}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsx)(t.li,{children:"Initiate the withdrawal on Morph Testnet."}),"\n",(0,s.jsxs)(t.li,{children:["Wait for the withdrawal root to be published on L1 (",(0,s.jsx)(t.strong,{children:"Holesky"}),"). This usually takes a few minutes, but it may take longer during outages."]}),"\n",(0,s.jsx)(t.li,{children:"Prove withdrawal."}),"\n",(0,s.jsxs)(t.li,{children:["Wait for the verification challenge period, which lasts seven days from the time the withdrawal is proven on L1 (",(0,s.jsx)(t.strong,{children:"Holesky"}),")."]}),"\n",(0,s.jsx)(t.li,{children:"Claim your withdrawal."}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"initiate-withdrawal",children:"Initiate withdrawal"}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"Click Connect Wallet and select MetaMask. If prompted, approve the connection in your wallet."}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"Select Withdraw. Choose the asset and amount you wish to withdraw."}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image13",src:i(2285).A+"",width:"2616",height:"1382"})}),"\n",(0,s.jsxs)(t.ol,{start:"3",children:["\n",(0,s.jsxs)(t.li,{children:["Click Send ETH to ",(0,s.jsx)(t.strong,{children:"Holesky"}),"."]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image14",src:i(4386).A+"",width:"2642",height:"1350"})}),"\n",(0,s.jsxs)(t.ol,{start:"4",children:["\n",(0,s.jsxs)(t.li,{children:["Click Initiate withdrawal, wait for a few minutes to confirm. After it is finished, you need to switch the network in your wallet and then prove the withdrawal on ",(0,s.jsx)(t.strong,{children:"Holesky"}),"."]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image15",src:i(5515).A+"",width:"1372",height:"1356"})}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image16",src:i(7872).A+"",width:"1976",height:"1388"})}),"\n",(0,s.jsxs)(t.ol,{start:"5",children:["\n",(0,s.jsx)(t.li,{children:"Waiting for the batch submission to be completed."}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image17",src:i(4121).A+"",width:"1678",height:"1348"})}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image18",src:i(8558).A+"",width:"2380",height:"1342"})}),"\n",(0,s.jsx)(t.h2,{id:"waiting-for-the-verification-challenge-period",children:"Waiting for the verification challenge period"}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"Click your address in the top right corner."}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"Click Transactions and then Withdrawals. This will display a list of your recent withdrawals and their status. Or you can find a notice in the top area, by clicking the button View Account (see the pic below)."}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image19",src:i(7783).A+"",width:"2640",height:"1332"})}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image20",src:i(4631).A+"",width:"1880",height:"1354"})}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image21",src:i(5134).A+"",width:"1852",height:"996"})}),"\n",(0,s.jsxs)(t.ol,{start:"3",children:["\n",(0,s.jsx)(t.li,{children:"You can search for the transaction hash on Morph Explorer."}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image22",src:i(5346).A+"",width:"1796",height:"1282"})}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image23",src:i(7052).A+"",width:"2768",height:"1366"})}),"\n",(0,s.jsxs)(t.ol,{start:"4",children:["\n",(0,s.jsxs)(t.li,{children:["Click the L1 State Root Submission Tx to see when the transaction was written to L1 (",(0,s.jsx)(t.strong,{children:"Holesky"}),")."]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image24",src:i(6832).A+"",width:"1436",height:"1360"})}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image25",src:i(2538).A+"",width:"2804",height:"1358"})}),"\n",(0,s.jsx)(t.h2,{id:"claim-the-withdrawal",children:"Claim the Withdrawal"}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"Once the challenge period is over, the status will change to Claim."}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"Click Claim withdrawal."}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image26",src:i(9969).A+"",width:"2206",height:"1354"})}),"\n",(0,s.jsxs)(t.ol,{start:"3",children:["\n",(0,s.jsx)(t.li,{children:"Confirm the withdrawal in the wallet."}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image27",src:i(2488).A+"",width:"2264",height:"1348"})}),"\n",(0,s.jsxs)(t.ol,{start:"4",children:["\n",(0,s.jsx)(t.li,{children:"Wait until the withdrawal is completed."}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image28",src:i(3647).A+"",width:"1642",height:"1198"})})]})}function h(e={}){const{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},8280:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/01-27c2bb7d636a043d7e9859ebb561ba98.png"},2771:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/02-a0499364bd8da9980f211fea46b17ec1.png"},7562:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/03-c1219d2dc11ccb23f6043454dce9a2a1.png"},2229:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/04-40bfbd2ff4078468d5c5de03ce00125a.png"},9164:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/05-5906b94018c7589aa9c344af312053a6.png"},3447:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/06-32a22c9b9717a8dbbb8f80d04883e82c.png"},430:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/07-c39cf238bd5f1deaa6b66c55c3232c3e.png"},9817:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/08-2b75b7405e667c0a4ed326be801fdcbe.png"},2912:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/09-8820ab91b63c915f3d5988102715c995.png"},8697:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/10-22bdf9fc91c5cf629702a9b651d92b72.png"},95:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/11-4ed536df5ccab515473817e33da2ffb5.png"},5604:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/12-689f052e4e05db6cd8619f0a89b59bec.png"},2285:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/13-dfc7aa5bd7cc571ffed44adadfed733e.png"},4386:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/14-073db2dbe7b98001dd879cf588200ab2.png"},5515:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/15-d71cb25489e0f745d61b4d0572448e53.png"},7872:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/16-8d5a6c2144ac9e120f115e876ca15585.png"},4121:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/17-bdc095149fa2ee4c57adca17afe51ca2.png"},8558:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/18-34ab2ce5edad2dd1d8e8dbedbe8f7e46.png"},7783:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/19-48a3d1813850255cd74a906d9f1c91a3.png"},4631:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/20-1f256a3865f337d6c591d0014665770d.png"},5134:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/21-aa2ebc001ed51cd738a38ed8c7cbe1ed.png"},5346:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/22-0c7c91c0d8518e4c85479aa7c0a3a5b5.png"},7052:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/23-173e326fab8effac22e791dfeeefa625.png"},6832:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/24-2e2eeb94c0330ccd9a2afb58ac75b8e9.png"},2538:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/25-e2de55a3cc831069b95f71de2478a8d8.png"},9969:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/26-9ab4dc9cf17d1b6cc93d11743824f3c9.png"},2488:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/27-1832e352f87b6354eaa7ad6830abefea.png"},3647:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/28-ca053a5f739981b7b18302d6db12669d.png"},1582:(e,t,i)=>{i.d(t,{R:()=>a,x:()=>o});var s=i(758);const n={},r=s.createContext(n);function a(e){const t=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:a(e.components),s.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/6f5ac92b.7c64324c.js b/build/assets/js/6f5ac92b.7c64324c.js deleted file mode 100644 index 400ef97e6..000000000 --- a/build/assets/js/6f5ac92b.7c64324c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[7049],{3362:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>h,frontMatter:()=>r,metadata:()=>o,toc:()=>l});var s=i(3274),n=i(2333);const r={title:"Bridge",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},a="Deposit from Holesky to Morph Testnet",o={id:"quick-start/bridge",title:"Bridge",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/quick-start/4-bridge.md",sourceDirName:"quick-start",slug:"/quick-start/bridge",permalink:"/docs/quick-start/bridge",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/quick-start/4-bridge.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{title:"Bridge",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"Faucet",permalink:"/docs/quick-start/faucet"},next:{title:"Developer Docs",permalink:"/docs/build-on-morph/developer-navigation-page"}},c={},l=[{value:"Instructions:",id:"instructions",level:2},{value:"How long does it take for a token to arrive to Morph Testnet ?",id:"how-long-does-it-take-for-a-token-to-arrive-to-morph-testnet-",level:2},{value:"Initiate withdrawal",id:"initiate-withdrawal",level:2},{value:"Waiting for the verification challenge period",id:"waiting-for-the-verification-challenge-period",level:2},{value:"Claim the Withdrawal",id:"claim-the-withdrawal",level:2}];function d(e){const t={a:"a",admonition:"admonition",em:"em",h1:"h1",h2:"h2",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",...(0,n.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h1,{id:"deposit-from-holesky-to-morph-testnet",children:"Deposit from Holesky to Morph Testnet"}),"\n",(0,s.jsx)(t.h2,{id:"instructions",children:"Instructions:"}),"\n",(0,s.jsx)(t.admonition,{title:"Use the bridge here",type:"tip",children:(0,s.jsx)(t.p,{children:(0,s.jsx)(t.a,{href:"https://bridge-holesky.morphl2.io",children:"https://bridge-holesky.morphl2.io"})})}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["Open your MetaMask wallet and switch to the ",(0,s.jsx)(t.strong,{children:"Holesky"})," network."]}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.img,{alt:"image1",src:i(4236).A+"",width:"2556",height:"1052"}),"\n",(0,s.jsx)(t.img,{alt:"image1",src:i(4871).A+"",width:"1830",height:"1278"})]}),"\n",(0,s.jsxs)(t.ol,{start:"2",children:["\n",(0,s.jsxs)(t.li,{children:["Within Morph\u2019s Bridge app, click ",(0,s.jsx)(t.strong,{children:"Connect wallet"}),", select MetaMask, and approve the connection if prompted."]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image2",src:i(5502).A+"",width:"2588",height:"1288"})}),"\n",(0,s.jsxs)(t.ol,{start:"3",children:["\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Make sure that ",(0,s.jsx)(t.strong,{children:"Holesky"}),' is selected under \u2018From\u2019 and Morph L2 under \u2018To\u2019. If not, click the "\u2193" button to switch their positions.']}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"Select the token that you want to transfer."}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"Click the Send button to initiate the deposit."}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(t.admonition,{type:"tip",children:(0,s.jsxs)(t.p,{children:["If this is your first time transferring an ERC20 token, you need to approve the ",(0,s.jsx)(t.strong,{children:"Holesky"})," Bridge contract to access your ERC20 token."]})}),"\n",(0,s.jsxs)(t.ol,{start:"6",children:["\n",(0,s.jsxs)(t.li,{children:["A window will pop up asking for confirmation of the transfer transaction, click ",(0,s.jsx)(t.strong,{children:"Deposit"}),"."]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image3",src:i(7969).A+"",width:"1302",height:"1268"})}),"\n",(0,s.jsxs)(t.ol,{start:"7",children:["\n",(0,s.jsxs)(t.li,{children:["Click the Confirm button in MetaMask. Once the transfer transaction is finalized, the token will be deducted from your ",(0,s.jsx)(t.strong,{children:"Holesky"})," wallet address."]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image5",src:i(3352).A+"",width:"1964",height:"1312"})}),"\n",(0,s.jsxs)(t.ol,{start:"8",children:["\n",(0,s.jsx)(t.li,{children:"While you wait, you can check status of your transactions by clicking on the transactions button."}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image6",src:i(224).A+"",width:"1386",height:"1132"})}),"\n",(0,s.jsx)(t.h2,{id:"how-long-does-it-take-for-a-token-to-arrive-to-morph-testnet-",children:"How long does it take for a token to arrive to Morph Testnet ?"}),"\n",(0,s.jsxs)(t.p,{children:["A token transfer from ",(0,s.jsx)(t.strong,{children:"Holesky"})," to Morph Testnet may take 8 to 14 minutes (time for block to become Safe on ",(0,s.jsx)(t.strong,{children:"Holesky"}),") before it appears in your Morph wallet. To check the progress of your deposit transactions, follow these steps:"]}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsx)(t.li,{children:"Click your wallet address at the top-right corner of the Bridge web app."}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image6",src:i(8986).A+"",width:"2580",height:"1072"})}),"\n",(0,s.jsxs)(t.ol,{start:"2",children:["\n",(0,s.jsx)(t.li,{children:"Click on Transactions. A pop-up panel will display your recent transactions."}),"\n"]}),"\n",(0,s.jsx)(t.admonition,{type:"tip",children:(0,s.jsxs)(t.p,{children:["Note: For deposit transactions (L1 -> L2), once your transaction is confirmed as Safe on ",(0,s.jsx)(t.strong,{children:"Holesky"})," (8 to 14 minutes), you will see a ",(0,s.jsx)(t.strong,{children:"Success"})," status. Your funds will then be relayed to L2."]})}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image8",src:i(3053).A+"",width:"1712",height:"1258"})}),"\n",(0,s.jsxs)(t.ol,{start:"3",children:["\n",(0,s.jsxs)(t.li,{children:["Click on the most recent ",(0,s.jsx)(t.strong,{children:"Holesky"})," transaction hash."]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image9",src:i(1924).A+"",width:"1674",height:"1202"})}),"\n",(0,s.jsxs)(t.ol,{start:"4",children:["\n",(0,s.jsxs)(t.li,{children:["You will be taken to a Transaction Details page in the Explorer. Verify your transaction status (this transaction is confirmed on ",(0,s.jsx)(t.strong,{children:"Holesky"}),")."]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image10",src:i(3946).A+"",width:"2808",height:"1340"})}),"\n",(0,s.jsxs)(t.ol,{start:"5",children:["\n",(0,s.jsxs)(t.li,{children:["Once your transaction status shows ",(0,s.jsx)(t.em,{children:"success"})," on L2, return to the Bridge app to see a transaction hash and funds in your Morph L2 wallet."]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image11",src:i(5523).A+"",width:"1602",height:"1216"})}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image12",src:i(8664).A+"",width:"2578",height:"1316"})}),"\n",(0,s.jsx)(t.h1,{id:"withdraw-from-morph-testnet-to-holesky",children:"Withdraw from Morph Testnet to Holesky"}),"\n",(0,s.jsx)(t.p,{children:"To withdraw funds from Morph Testnet, follow these steps:"}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsx)(t.li,{children:"Initiate the withdrawal on Morph Testnet."}),"\n",(0,s.jsxs)(t.li,{children:["Wait for the withdrawal root to be published on L1 (",(0,s.jsx)(t.strong,{children:"Holesky"}),"). This usually takes a few minutes, but it may take longer during outages."]}),"\n",(0,s.jsx)(t.li,{children:"Prove withdrawal."}),"\n",(0,s.jsxs)(t.li,{children:["Wait for the verification challenge period, which lasts seven days from the time the withdrawal is proven on L1 (",(0,s.jsx)(t.strong,{children:"Holesky"}),")."]}),"\n",(0,s.jsx)(t.li,{children:"Claim your withdrawal."}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"initiate-withdrawal",children:"Initiate withdrawal"}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"Click Connect Wallet and select MetaMask. If prompted, approve the connection in your wallet."}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"Select Withdraw. Choose the asset and amount you wish to withdraw."}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image13",src:i(8609).A+"",width:"2616",height:"1382"})}),"\n",(0,s.jsxs)(t.ol,{start:"3",children:["\n",(0,s.jsxs)(t.li,{children:["Click Send ETH to ",(0,s.jsx)(t.strong,{children:"Holesky"}),"."]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image14",src:i(2494).A+"",width:"2642",height:"1350"})}),"\n",(0,s.jsxs)(t.ol,{start:"4",children:["\n",(0,s.jsxs)(t.li,{children:["Click Initiate withdrawal, wait for a few minutes to confirm. After it is finished, you need to switch the network in your wallet and then prove the withdrawal on ",(0,s.jsx)(t.strong,{children:"Holesky"}),"."]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image15",src:i(3831).A+"",width:"1372",height:"1356"})}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image16",src:i(5356).A+"",width:"1976",height:"1388"})}),"\n",(0,s.jsxs)(t.ol,{start:"5",children:["\n",(0,s.jsx)(t.li,{children:"Waiting for the batch submission to be completed."}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image17",src:i(8245).A+"",width:"1678",height:"1348"})}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image18",src:i(6242).A+"",width:"2380",height:"1342"})}),"\n",(0,s.jsx)(t.h2,{id:"waiting-for-the-verification-challenge-period",children:"Waiting for the verification challenge period"}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"Click your address in the top right corner."}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"Click Transactions and then Withdrawals. This will display a list of your recent withdrawals and their status. Or you can find a notice in the top area, by clicking the button View Account (see the pic below)."}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image19",src:i(5243).A+"",width:"2640",height:"1332"})}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image20",src:i(3515).A+"",width:"1880",height:"1354"})}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image21",src:i(3010).A+"",width:"1852",height:"996"})}),"\n",(0,s.jsxs)(t.ol,{start:"3",children:["\n",(0,s.jsx)(t.li,{children:"You can search for the transaction hash on Morph Explorer."}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image22",src:i(9593).A+"",width:"1796",height:"1282"})}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image23",src:i(3344).A+"",width:"2768",height:"1366"})}),"\n",(0,s.jsxs)(t.ol,{start:"4",children:["\n",(0,s.jsxs)(t.li,{children:["Click the L1 State Root Submission Tx to see when the transaction was written to L1 (",(0,s.jsx)(t.strong,{children:"Holesky"}),")."]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image24",src:i(8719).A+"",width:"1436",height:"1360"})}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image25",src:i(7174).A+"",width:"2804",height:"1358"})}),"\n",(0,s.jsx)(t.h2,{id:"claim-the-withdrawal",children:"Claim the Withdrawal"}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"Once the challenge period is over, the status will change to Claim."}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"Click Claim withdrawal."}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image26",src:i(4733).A+"",width:"2206",height:"1354"})}),"\n",(0,s.jsxs)(t.ol,{start:"3",children:["\n",(0,s.jsx)(t.li,{children:"Confirm the withdrawal in the wallet."}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image27",src:i(7252).A+"",width:"2264",height:"1348"})}),"\n",(0,s.jsxs)(t.ol,{start:"4",children:["\n",(0,s.jsx)(t.li,{children:"Wait until the withdrawal is completed."}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"image28",src:i(9523).A+"",width:"1642",height:"1198"})})]})}function h(e={}){const{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},4236:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/01-27c2bb7d636a043d7e9859ebb561ba98.png"},4871:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/02-a0499364bd8da9980f211fea46b17ec1.png"},5502:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/03-c1219d2dc11ccb23f6043454dce9a2a1.png"},7969:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/04-40bfbd2ff4078468d5c5de03ce00125a.png"},3352:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/05-5906b94018c7589aa9c344af312053a6.png"},224:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/06-32a22c9b9717a8dbbb8f80d04883e82c.png"},8986:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/07-c39cf238bd5f1deaa6b66c55c3232c3e.png"},3053:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/08-2b75b7405e667c0a4ed326be801fdcbe.png"},1924:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/09-8820ab91b63c915f3d5988102715c995.png"},3946:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/10-22bdf9fc91c5cf629702a9b651d92b72.png"},5523:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/11-4ed536df5ccab515473817e33da2ffb5.png"},8664:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/12-689f052e4e05db6cd8619f0a89b59bec.png"},8609:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/13-dfc7aa5bd7cc571ffed44adadfed733e.png"},2494:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/14-073db2dbe7b98001dd879cf588200ab2.png"},3831:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/15-d71cb25489e0f745d61b4d0572448e53.png"},5356:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/16-8d5a6c2144ac9e120f115e876ca15585.png"},8245:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/17-bdc095149fa2ee4c57adca17afe51ca2.png"},6242:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/18-34ab2ce5edad2dd1d8e8dbedbe8f7e46.png"},5243:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/19-48a3d1813850255cd74a906d9f1c91a3.png"},3515:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/20-1f256a3865f337d6c591d0014665770d.png"},3010:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/21-aa2ebc001ed51cd738a38ed8c7cbe1ed.png"},9593:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/22-0c7c91c0d8518e4c85479aa7c0a3a5b5.png"},3344:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/23-173e326fab8effac22e791dfeeefa625.png"},8719:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/24-2e2eeb94c0330ccd9a2afb58ac75b8e9.png"},7174:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/25-e2de55a3cc831069b95f71de2478a8d8.png"},4733:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/26-9ab4dc9cf17d1b6cc93d11743824f3c9.png"},7252:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/27-1832e352f87b6354eaa7ad6830abefea.png"},9523:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/28-ca053a5f739981b7b18302d6db12669d.png"},2333:(e,t,i)=>{i.d(t,{R:()=>a,x:()=>o});var s=i(9474);const n={},r=s.createContext(n);function a(e){const t=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:a(e.components),s.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/70e8639a.f501f0e6.js b/build/assets/js/70e8639a.a7b63da5.js similarity index 82% rename from build/assets/js/70e8639a.f501f0e6.js rename to build/assets/js/70e8639a.a7b63da5.js index 50c5dfe1a..690941cd8 100644 --- a/build/assets/js/70e8639a.f501f0e6.js +++ b/build/assets/js/70e8639a.a7b63da5.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[5130],{9215:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>c,default:()=>a,frontMatter:()=>o,metadata:()=>i,toc:()=>d});var r=s(3274),t=s(2333);const o={},c="Interface: OEContractsLike",i={id:"build-on-morph/sdk/interfaces/OEContractsLike",title:"OEContractsLike",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/interfaces/OEContractsLike.md",sourceDirName:"build-on-morph/sdk/interfaces",slug:"/build-on-morph/sdk/interfaces/OEContractsLike",permalink:"/docs/build-on-morph/sdk/interfaces/OEContractsLike",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/interfaces/OEContractsLike.md",tags:[],version:"current",frontMatter:{}},l={},d=[{value:"Properties",id:"properties",level:2},{value:"l1",id:"l1",level:3},{value:"Source",id:"source",level:4},{value:"l2",id:"l2",level:3},{value:"Source",id:"source-1",level:4}];function h(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",p:"p",strong:"strong",...(0,t.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,r.jsx)(n.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,r.jsx)(n.strong,{children:"Docs"})]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / OEContractsLike"]}),"\n",(0,r.jsx)(n.h1,{id:"interface-oecontractslike",children:"Interface: OEContractsLike"}),"\n",(0,r.jsx)(n.p,{children:"Convenience type for something that looks like the OE contract interface but could be\naddresses instead of actual contract objects."}),"\n",(0,r.jsx)(n.h2,{id:"properties",children:"Properties"}),"\n",(0,r.jsx)(n.h3,{id:"l1",children:"l1"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"l1"}),": ",(0,r.jsx)(n.a,{href:"/docs/build-on-morph/sdk/type-aliases/OEL1ContractsLike",children:(0,r.jsx)(n.code,{children:"OEL1ContractsLike"})})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"source",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/interfaces/types.ts:146"}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"l2",children:"l2"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"l2"}),": ",(0,r.jsx)(n.a,{href:"/docs/build-on-morph/sdk/type-aliases/OEL2ContractsLike",children:(0,r.jsx)(n.code,{children:"OEL2ContractsLike"})})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"source-1",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/interfaces/types.ts:147"})]})}function a(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},2333:(e,n,s)=>{s.d(n,{R:()=>c,x:()=>i});var r=s(9474);const t={},o=r.createContext(t);function c(e){const n=r.useContext(o);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:c(e.components),r.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[5130],{2205:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>c,default:()=>a,frontMatter:()=>o,metadata:()=>i,toc:()=>d});var r=s(6070),t=s(1582);const o={},c="Interface: OEContractsLike",i={id:"build-on-morph/sdk/interfaces/OEContractsLike",title:"OEContractsLike",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/interfaces/OEContractsLike.md",sourceDirName:"build-on-morph/sdk/interfaces",slug:"/build-on-morph/sdk/interfaces/OEContractsLike",permalink:"/docs/build-on-morph/sdk/interfaces/OEContractsLike",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/interfaces/OEContractsLike.md",tags:[],version:"current",frontMatter:{}},l={},d=[{value:"Properties",id:"properties",level:2},{value:"l1",id:"l1",level:3},{value:"Source",id:"source",level:4},{value:"l2",id:"l2",level:3},{value:"Source",id:"source-1",level:4}];function h(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",p:"p",strong:"strong",...(0,t.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,r.jsx)(n.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,r.jsx)(n.strong,{children:"Docs"})]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / OEContractsLike"]}),"\n",(0,r.jsx)(n.h1,{id:"interface-oecontractslike",children:"Interface: OEContractsLike"}),"\n",(0,r.jsx)(n.p,{children:"Convenience type for something that looks like the OE contract interface but could be\naddresses instead of actual contract objects."}),"\n",(0,r.jsx)(n.h2,{id:"properties",children:"Properties"}),"\n",(0,r.jsx)(n.h3,{id:"l1",children:"l1"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"l1"}),": ",(0,r.jsx)(n.a,{href:"/docs/build-on-morph/sdk/type-aliases/OEL1ContractsLike",children:(0,r.jsx)(n.code,{children:"OEL1ContractsLike"})})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"source",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/interfaces/types.ts:146"}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"l2",children:"l2"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"l2"}),": ",(0,r.jsx)(n.a,{href:"/docs/build-on-morph/sdk/type-aliases/OEL2ContractsLike",children:(0,r.jsx)(n.code,{children:"OEL2ContractsLike"})})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"source-1",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/interfaces/types.ts:147"})]})}function a(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},1582:(e,n,s)=>{s.d(n,{R:()=>c,x:()=>i});var r=s(758);const t={},o=r.createContext(t);function c(e){const n=r.useContext(o);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:c(e.components),r.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/71cc7c85.13becfa5.js b/build/assets/js/71cc7c85.13becfa5.js deleted file mode 100644 index 0ab96a0fd..000000000 --- a/build/assets/js/71cc7c85.13becfa5.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[586],{1352:(e,o,t)=>{t.r(o),t.d(o,{assets:()=>c,contentTitle:()=>s,default:()=>h,frontMatter:()=>r,metadata:()=>a,toc:()=>l});var i=t(3274),n=t(2333);const r={title:"Voting Rules in Voice of the Jungle",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},s=void 0,a={id:"quick-start/morph-zoo/voting-rules",title:"Voting Rules in Voice of the Jungle",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/quick-start/morph-zoo/2-voting-rules.md",sourceDirName:"quick-start/morph-zoo",slug:"/quick-start/morph-zoo/voting-rules",permalink:"/docs/quick-start/morph-zoo/voting-rules",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/quick-start/morph-zoo/2-voting-rules.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{title:"Voting Rules in Voice of the Jungle",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"Morph Points",permalink:"/docs/quick-start/morph-zoo/morph-points"},next:{title:"Wallet Setup",permalink:"/docs/quick-start/wallet-setup"}},c={},l=[{value:"What is voting power?",id:"what-is-voting-power",level:3},{value:"How can I use my Voting Power?",id:"how-can-i-use-my-voting-power",level:3},{value:"Voting rules\uff1a",id:"voting-rules",level:3},{value:"Daily Check-in Rules\uff1a",id:"daily-check-in-rules",level:3}];function u(e){const o={admonition:"admonition",h3:"h3",li:"li",ol:"ol",p:"p",strong:"strong",...(0,n.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(o.p,{children:"Make your voice heard in our second Jungle activity: Voice of the Jungle. Use Voting power to vote for your favorite DApps, your votes help shape the ecosystem, make your 'roar' heard and you will be rewarded with Morph Points."}),"\n",(0,i.jsx)(o.h3,{id:"what-is-voting-power",children:"What is voting power?"}),"\n",(0,i.jsx)(o.p,{children:"To enhance our ecosystem and community, we\u2019ve introduced a voting program to attract more valuable projects and DApps to the Morph ecosystem. Earn Voting Power through daily check-ins and unlocking bonus Mystery Boxes. Remember, it is the act of spending your Voting Power that earns you Morph Points, not the amount of unused Voting Power. At the end of the event, your Moph Points rewards will be calculated based on how much Voting Power you utilized, so be sure to vote every day!"}),"\n",(0,i.jsx)(o.h3,{id:"how-can-i-use-my-voting-power",children:"How can I use my Voting Power?"}),"\n",(0,i.jsx)(o.p,{children:"You can utilize your Voting Power on the voting page to support projects that you like. You can vote for different projects and earn Points for the projects you vote for."}),"\n",(0,i.jsx)(o.h3,{id:"voting-rules",children:"Voting rules\uff1a"}),"\n",(0,i.jsx)(o.p,{children:"1\uff09Acquire Voting Power in two ways: daily check-ins and bonus Mystery Boxes."}),"\n",(0,i.jsxs)(o.ol,{start:"2",children:["\n",(0,i.jsxs)(o.li,{children:["\n",(0,i.jsx)(o.p,{children:"To record your Voting Power and voting activities, you must sign in with your Web3 wallet. This verifies your Voting Power, without granting access to your assets."}),"\n"]}),"\n",(0,i.jsxs)(o.li,{children:["\n",(0,i.jsx)(o.p,{children:"You can allocate up to 100 Voting Power to each individual project per day. If you wish to vote more, you must wait until the next day."}),"\n"]}),"\n",(0,i.jsxs)(o.li,{children:["\n",(0,i.jsx)(o.p,{children:"Voting Power spent on a project is immediately consumed; it cannot be reused for multiple projects."}),"\n"]}),"\n",(0,i.jsxs)(o.li,{children:["\n",(0,i.jsx)(o.p,{children:"Only the act of voting will earn you Morph Points; simply accumulating Voting Power without using it will not earn you Morph Points for this activity."}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(o.h3,{id:"daily-check-in-rules",children:"Daily Check-in Rules\uff1a"}),"\n",(0,i.jsx)(o.p,{children:"Earn Voting Power by checking in daily. On the first day that you check-in, you will receive 2 Voting Power. On day two, you will receive 2 more Voting Power plus the same amount of Voting Power you received the previous day. After checking in for 7 days in a row, your Voting Power reward for that 7th day will be doubled to 28. So if you consistently check in for a week, you will receive 70 Voting Power total:"}),"\n",(0,i.jsx)(o.p,{children:(0,i.jsx)(o.strong,{children:"2(Day 1) + 4(Day 2) + 6(Day 3) + 8(Day 4) + 10(Day 5) + 12(Day 6) + 28(Day 7 you get a 2x multiplier bonus [14*2]) = 70"})}),"\n",(0,i.jsx)(o.p,{children:"Please remember that on the 8th consecutive check-in day, your Voting Power reward will be reset back to 2, as this marks the beginning of a new 7-day cycle. However, to reward your commitment, on the 14th consecutive day, your bonus multiplier will be increased to 3x for that day. This means that on the fourteenth day, you actually receive 56 Voting Power. In fact, every consecutive day that you check in that lands on a multiple of 7, your bonus multiplier will increase by an additional factor compared to the previous week."}),"\n",(0,i.jsx)(o.p,{children:"So if you consistently check in every day for a month or four weeks in a row, you will receive a total of 448 Voting Power:"}),"\n",(0,i.jsxs)(o.p,{children:[(0,i.jsx)(o.strong,{children:"(2+4+6+8+10+12)x4=168"}),"\nThe same increasing Voting Power for the first 6 days of each week\n+\n",(0,i.jsx)(o.strong,{children:"(28+56+84+112) = 280"})," The 7th day reward with an increasing multiplier each week\n= ",(0,i.jsx)(o.strong,{children:"448"})]}),"\n",(0,i.jsx)(o.admonition,{type:"tip",children:(0,i.jsx)(o.p,{children:"Please note that forgetting to check in one day will disrupt the 7-day cycle resetting it completely. This means you will start over from day one if that happens. For instance, if you have consistently checked in for 2 days but forgot on the 3rd day, you will only receive 2 Voting Power on the 4th day instead of 8."})})]})}function h(e={}){const{wrapper:o}={...(0,n.R)(),...e.components};return o?(0,i.jsx)(o,{...e,children:(0,i.jsx)(u,{...e})}):u(e)}},2333:(e,o,t)=>{t.d(o,{R:()=>s,x:()=>a});var i=t(9474);const n={},r=i.createContext(n);function s(e){const o=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function a(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:s(e.components),i.createElement(r.Provider,{value:o},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/720f9cb5.3ce027f4.js b/build/assets/js/720f9cb5.1be73404.js similarity index 81% rename from build/assets/js/720f9cb5.3ce027f4.js rename to build/assets/js/720f9cb5.1be73404.js index d252a032f..8c7985e02 100644 --- a/build/assets/js/720f9cb5.3ce027f4.js +++ b/build/assets/js/720f9cb5.1be73404.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[1141],{5763:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>i,default:()=>u,frontMatter:()=>t,metadata:()=>c,toc:()=>l});var r=s(3274),o=s(2333);const t={},i="Enumeration: MessageDirection",c={id:"build-on-morph/sdk/enumerations/MessageDirection",title:"MessageDirection",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/enumerations/MessageDirection.md",sourceDirName:"build-on-morph/sdk/enumerations",slug:"/build-on-morph/sdk/enumerations/MessageDirection",permalink:"/docs/build-on-morph/sdk/enumerations/MessageDirection",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/enumerations/MessageDirection.md",tags:[],version:"current",frontMatter:{}},d={},l=[{value:"Enumeration Members",id:"enumeration-members",level:2},{value:"L1_TO_L2",id:"l1_to_l2",level:3},{value:"Source",id:"source",level:4},{value:"L2_TO_L1",id:"l2_to_l1",level:3},{value:"Source",id:"source-1",level:4}];function h(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",p:"p",strong:"strong",...(0,o.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,r.jsx)(n.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,r.jsx)(n.strong,{children:"Docs"})]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / MessageDirection"]}),"\n",(0,r.jsx)(n.h1,{id:"enumeration-messagedirection",children:"Enumeration: MessageDirection"}),"\n",(0,r.jsx)(n.p,{children:"Enum describing the direction of a message."}),"\n",(0,r.jsx)(n.h2,{id:"enumeration-members",children:"Enumeration Members"}),"\n",(0,r.jsx)(n.h3,{id:"l1_to_l2",children:"L1_TO_L2"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"L1_TO_L2"}),": ",(0,r.jsx)(n.code,{children:"0"})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"source",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/interfaces/types.ts:223"}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"l2_to_l1",children:"L2_TO_L1"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"L2_TO_L1"}),": ",(0,r.jsx)(n.code,{children:"1"})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"source-1",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/interfaces/types.ts:224"})]})}function u(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},2333:(e,n,s)=>{s.d(n,{R:()=>i,x:()=>c});var r=s(9474);const o={},t=r.createContext(o);function i(e){const n=r.useContext(t);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),r.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[1141],{5329:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>i,default:()=>u,frontMatter:()=>t,metadata:()=>c,toc:()=>l});var r=s(6070),o=s(1582);const t={},i="Enumeration: MessageDirection",c={id:"build-on-morph/sdk/enumerations/MessageDirection",title:"MessageDirection",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/enumerations/MessageDirection.md",sourceDirName:"build-on-morph/sdk/enumerations",slug:"/build-on-morph/sdk/enumerations/MessageDirection",permalink:"/docs/build-on-morph/sdk/enumerations/MessageDirection",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/enumerations/MessageDirection.md",tags:[],version:"current",frontMatter:{}},d={},l=[{value:"Enumeration Members",id:"enumeration-members",level:2},{value:"L1_TO_L2",id:"l1_to_l2",level:3},{value:"Source",id:"source",level:4},{value:"L2_TO_L1",id:"l2_to_l1",level:3},{value:"Source",id:"source-1",level:4}];function h(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",p:"p",strong:"strong",...(0,o.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,r.jsx)(n.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,r.jsx)(n.strong,{children:"Docs"})]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / MessageDirection"]}),"\n",(0,r.jsx)(n.h1,{id:"enumeration-messagedirection",children:"Enumeration: MessageDirection"}),"\n",(0,r.jsx)(n.p,{children:"Enum describing the direction of a message."}),"\n",(0,r.jsx)(n.h2,{id:"enumeration-members",children:"Enumeration Members"}),"\n",(0,r.jsx)(n.h3,{id:"l1_to_l2",children:"L1_TO_L2"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"L1_TO_L2"}),": ",(0,r.jsx)(n.code,{children:"0"})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"source",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/interfaces/types.ts:223"}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"l2_to_l1",children:"L2_TO_L1"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"L2_TO_L1"}),": ",(0,r.jsx)(n.code,{children:"1"})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"source-1",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/interfaces/types.ts:224"})]})}function u(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},1582:(e,n,s)=>{s.d(n,{R:()=>i,x:()=>c});var r=s(758);const o={},t=r.createContext(o);function i(e){const n=r.useContext(t);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),r.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/72171cd8.54c5ee4c.js b/build/assets/js/72171cd8.74acb7db.js similarity index 85% rename from build/assets/js/72171cd8.54c5ee4c.js rename to build/assets/js/72171cd8.74acb7db.js index 02cca1611..e23f7d533 100644 --- a/build/assets/js/72171cd8.54c5ee4c.js +++ b/build/assets/js/72171cd8.74acb7db.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[8324],{4765:(r,e,n)=>{n.r(e),n.d(e,{assets:()=>c,contentTitle:()=>i,default:()=>h,frontMatter:()=>d,metadata:()=>t,toc:()=>l});var o=n(3274),s=n(2333);const d={},i="Function: asL2Provider()",t={id:"build-on-morph/sdk/functions/asL2Provider",title:"asL2Provider",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/functions/asL2Provider.md",sourceDirName:"build-on-morph/sdk/functions",slug:"/build-on-morph/sdk/functions/asL2Provider",permalink:"/docs/build-on-morph/sdk/functions/asL2Provider",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/functions/asL2Provider.md",tags:[],version:"current",frontMatter:{}},c={},l=[{value:"Type parameters",id:"type-parameters",level:2},{value:"Parameters",id:"parameters",level:2},{value:"Returns",id:"returns",level:2},{value:"Source",id:"source",level:2}];function a(r){const e={a:"a",blockquote:"blockquote",code:"code",em:"em",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,s.R)(),...r.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(e.p,{children:[(0,o.jsx)(e.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,o.jsx)(e.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,o.jsx)(e.strong,{children:"Docs"})]}),"\n",(0,o.jsx)(e.hr,{}),"\n",(0,o.jsxs)(e.p,{children:[(0,o.jsx)(e.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / asL2Provider"]}),"\n",(0,o.jsx)(e.h1,{id:"function-asl2provider",children:"Function: asL2Provider()"}),"\n",(0,o.jsxs)(e.blockquote,{children:["\n",(0,o.jsxs)(e.p,{children:[(0,o.jsx)(e.strong,{children:"asL2Provider"}),"<",(0,o.jsx)(e.code,{children:"TProvider"}),">(",(0,o.jsx)(e.code,{children:"provider"}),"): ",(0,o.jsx)(e.a,{href:"/docs/build-on-morph/sdk/type-aliases/L2Provider",children:(0,o.jsx)(e.code,{children:"L2Provider"})}),"<",(0,o.jsx)(e.code,{children:"TProvider"}),">"]}),"\n"]}),"\n",(0,o.jsx)(e.p,{children:"Returns an provider wrapped as an Morph L2 provider. Adds a few extra helper functions to\nsimplify the process of estimating the gas usage for a transaction on Morph. Returns a COPY\nof the original provider."}),"\n",(0,o.jsx)(e.h2,{id:"type-parameters",children:"Type parameters"}),"\n",(0,o.jsxs)(e.p,{children:["\u2022 ",(0,o.jsx)(e.strong,{children:"TProvider"})," ",(0,o.jsx)(e.em,{children:"extends"})," ",(0,o.jsx)(e.code,{children:"Provider"}),"<",(0,o.jsx)(e.code,{children:"TProvider"}),">"]}),"\n",(0,o.jsx)(e.h2,{id:"parameters",children:"Parameters"}),"\n",(0,o.jsxs)(e.p,{children:["\u2022 ",(0,o.jsx)(e.strong,{children:"provider"}),": ",(0,o.jsx)(e.code,{children:"TProvider"})]}),"\n",(0,o.jsx)(e.p,{children:"Provider to wrap into an L2 provider."}),"\n",(0,o.jsx)(e.h2,{id:"returns",children:"Returns"}),"\n",(0,o.jsxs)(e.p,{children:[(0,o.jsx)(e.a,{href:"/docs/build-on-morph/sdk/type-aliases/L2Provider",children:(0,o.jsx)(e.code,{children:"L2Provider"})}),"<",(0,o.jsx)(e.code,{children:"TProvider"}),">"]}),"\n",(0,o.jsx)(e.p,{children:"Provider wrapped as an L2 provider."}),"\n",(0,o.jsx)(e.h2,{id:"source",children:"Source"}),"\n",(0,o.jsx)(e.p,{children:"src/l2-provider.ts:171"})]})}function h(r={}){const{wrapper:e}={...(0,s.R)(),...r.components};return e?(0,o.jsx)(e,{...r,children:(0,o.jsx)(a,{...r})}):a(r)}},2333:(r,e,n)=>{n.d(e,{R:()=>i,x:()=>t});var o=n(9474);const s={},d=o.createContext(s);function i(r){const e=o.useContext(d);return o.useMemo((function(){return"function"==typeof r?r(e):{...e,...r}}),[e,r])}function t(r){let e;return e=r.disableParentContext?"function"==typeof r.components?r.components(s):r.components||s:i(r.components),o.createElement(d.Provider,{value:e},r.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[8324],{9415:(r,e,n)=>{n.r(e),n.d(e,{assets:()=>c,contentTitle:()=>i,default:()=>h,frontMatter:()=>d,metadata:()=>t,toc:()=>l});var o=n(6070),s=n(1582);const d={},i="Function: asL2Provider()",t={id:"build-on-morph/sdk/functions/asL2Provider",title:"asL2Provider",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/functions/asL2Provider.md",sourceDirName:"build-on-morph/sdk/functions",slug:"/build-on-morph/sdk/functions/asL2Provider",permalink:"/docs/build-on-morph/sdk/functions/asL2Provider",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/functions/asL2Provider.md",tags:[],version:"current",frontMatter:{}},c={},l=[{value:"Type parameters",id:"type-parameters",level:2},{value:"Parameters",id:"parameters",level:2},{value:"Returns",id:"returns",level:2},{value:"Source",id:"source",level:2}];function a(r){const e={a:"a",blockquote:"blockquote",code:"code",em:"em",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,s.R)(),...r.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(e.p,{children:[(0,o.jsx)(e.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,o.jsx)(e.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,o.jsx)(e.strong,{children:"Docs"})]}),"\n",(0,o.jsx)(e.hr,{}),"\n",(0,o.jsxs)(e.p,{children:[(0,o.jsx)(e.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / asL2Provider"]}),"\n",(0,o.jsx)(e.h1,{id:"function-asl2provider",children:"Function: asL2Provider()"}),"\n",(0,o.jsxs)(e.blockquote,{children:["\n",(0,o.jsxs)(e.p,{children:[(0,o.jsx)(e.strong,{children:"asL2Provider"}),"<",(0,o.jsx)(e.code,{children:"TProvider"}),">(",(0,o.jsx)(e.code,{children:"provider"}),"): ",(0,o.jsx)(e.a,{href:"/docs/build-on-morph/sdk/type-aliases/L2Provider",children:(0,o.jsx)(e.code,{children:"L2Provider"})}),"<",(0,o.jsx)(e.code,{children:"TProvider"}),">"]}),"\n"]}),"\n",(0,o.jsx)(e.p,{children:"Returns an provider wrapped as an Morph L2 provider. Adds a few extra helper functions to\nsimplify the process of estimating the gas usage for a transaction on Morph. Returns a COPY\nof the original provider."}),"\n",(0,o.jsx)(e.h2,{id:"type-parameters",children:"Type parameters"}),"\n",(0,o.jsxs)(e.p,{children:["\u2022 ",(0,o.jsx)(e.strong,{children:"TProvider"})," ",(0,o.jsx)(e.em,{children:"extends"})," ",(0,o.jsx)(e.code,{children:"Provider"}),"<",(0,o.jsx)(e.code,{children:"TProvider"}),">"]}),"\n",(0,o.jsx)(e.h2,{id:"parameters",children:"Parameters"}),"\n",(0,o.jsxs)(e.p,{children:["\u2022 ",(0,o.jsx)(e.strong,{children:"provider"}),": ",(0,o.jsx)(e.code,{children:"TProvider"})]}),"\n",(0,o.jsx)(e.p,{children:"Provider to wrap into an L2 provider."}),"\n",(0,o.jsx)(e.h2,{id:"returns",children:"Returns"}),"\n",(0,o.jsxs)(e.p,{children:[(0,o.jsx)(e.a,{href:"/docs/build-on-morph/sdk/type-aliases/L2Provider",children:(0,o.jsx)(e.code,{children:"L2Provider"})}),"<",(0,o.jsx)(e.code,{children:"TProvider"}),">"]}),"\n",(0,o.jsx)(e.p,{children:"Provider wrapped as an L2 provider."}),"\n",(0,o.jsx)(e.h2,{id:"source",children:"Source"}),"\n",(0,o.jsx)(e.p,{children:"src/l2-provider.ts:171"})]})}function h(r={}){const{wrapper:e}={...(0,s.R)(),...r.components};return e?(0,o.jsx)(e,{...r,children:(0,o.jsx)(a,{...r})}):a(r)}},1582:(r,e,n)=>{n.d(e,{R:()=>i,x:()=>t});var o=n(758);const s={},d=o.createContext(s);function i(r){const e=o.useContext(d);return o.useMemo((function(){return"function"==typeof r?r(e):{...e,...r}}),[e,r])}function t(r){let e;return e=r.disableParentContext?"function"==typeof r.components?r.components(s):r.components||s:i(r.components),o.createElement(d.Provider,{value:e},r.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/7242.6da46571.js b/build/assets/js/7242.6da46571.js new file mode 100644 index 000000000..3c7336b6e --- /dev/null +++ b/build/assets/js/7242.6da46571.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[7242],{6900:(e,t,n)=>{n.d(t,{A:()=>a});n(758);var o=n(3526),i=n(7260),s=n(2406),r=n(6070);function a(e){let{className:t}=e;return(0,r.jsx)("main",{className:(0,o.A)("container margin-vert--xl",t),children:(0,r.jsx)("div",{className:"row",children:(0,r.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,r.jsx)(s.A,{as:"h1",className:"hero__title",children:(0,r.jsx)(i.A,{id:"theme.NotFound.title",description:"The title of the 404 page",children:"Page Not Found"})}),(0,r.jsx)("p",{children:(0,r.jsx)(i.A,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page",children:"We could not find what you were looking for."})}),(0,r.jsx)("p",{children:(0,r.jsx)(i.A,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page",children:"Please contact the owner of the site that linked you to the original URL and let them know their link is broken."})})]})})})}},7242:(e,t,n)=>{n.r(t),n.d(t,{default:()=>h});n(758);var o=n(7260),i=n(926),s=n(8437),r=n(6900),a=n(6070);function h(){const e=(0,o.T)({id:"theme.NotFound.title",message:"Page Not Found"});return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(i.be,{title:e}),(0,a.jsx)(s.A,{children:(0,a.jsx)(r.A,{})})]})}}}]); \ No newline at end of file diff --git a/build/assets/js/73af12fb.015067f7.js b/build/assets/js/73af12fb.015067f7.js new file mode 100644 index 000000000..5def27e77 --- /dev/null +++ b/build/assets/js/73af12fb.015067f7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[5577],{3702:(e,r,o)=>{o.r(r),o.d(r,{assets:()=>l,contentTitle:()=>s,default:()=>c,frontMatter:()=>i,metadata:()=>h,toc:()=>d});var t=o(6070),n=o(1582);const i={title:"Morph Integration One Page",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},s=void 0,h={id:"build-on-morph/build-on-morph/integration-one-page",title:"Morph Integration One Page",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/build-on-morph/build-on-morph/1-integration-one-page.md",sourceDirName:"build-on-morph/build-on-morph",slug:"/build-on-morph/build-on-morph/integration-one-page",permalink:"/docs/build-on-morph/build-on-morph/integration-one-page",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/build-on-morph/1-integration-one-page.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{title:"Morph Integration One Page",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"Understand Transaction Cost on Morph",permalink:"/docs/build-on-morph/build-on-morph/understand-transaction-cost-on-morph"},next:{title:"Development Setup",permalink:"/docs/build-on-morph/build-on-morph/development-setup"}},l={},d=[{value:"Network Parameters",id:"network-parameters",level:3},{value:"Explorer Information",id:"explorer-information",level:3},{value:"Bridge Information",id:"bridge-information",level:3},{value:"New Bridge Asset Support:",id:"new-bridge-asset-support",level:4},{value:"Transaction Fees & Blocks",id:"transaction-fees--blocks",level:3},{value:"Important Contracts",id:"important-contracts",level:3},{value:"Node Deployment",id:"node-deployment",level:3}];function p(e){const r={a:"a",admonition:"admonition",h3:"h3",h4:"h4",p:"p",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,n.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.h3,{id:"network-parameters",children:"Network Parameters"}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"Network"}),(0,t.jsx)(r.th,{children:"Chain ID"}),(0,t.jsx)(r.th,{children:"RPC URL"}),(0,t.jsx)(r.th,{children:"Block Explorer URL"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Morph Mainnet"}),(0,t.jsx)(r.td,{children:"2818"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.a,{href:"https://rpc-quicknode.morphl2.io",children:"https://rpc-quicknode.morphl2.io"})}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.a,{href:"https://explorer.morphl2.io/",children:"https://explorer.morphl2.io/"})})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Ethereum Mainnet"}),(0,t.jsx)(r.td,{children:"1"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.a,{href:"https://ethereum-rpc.publicnode.com/",children:"https://ethereum-rpc.publicnode.com/"})}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.a,{href:"https://etherscan.io/",children:"https://etherscan.io/"})})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Morph Holesky Testnet"}),(0,t.jsx)(r.td,{children:"2810"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.a,{href:"https://rpc-quicknode-holesky.morphl2.io",children:"https://rpc-quicknode-holesky.morphl2.io"})}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.a,{href:"https://explorer-holesky.morphl2.io/",children:"https://explorer-holesky.morphl2.io/"})})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Holesky Testnet"}),(0,t.jsx)(r.td,{children:"17000"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.a,{href:"https://ethereum-holesky-rpc.publicnode.com/",children:"https://ethereum-holesky-rpc.publicnode.com/"})}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.a,{href:"https://holesky.etherscan.io/",children:"https://holesky.etherscan.io/"})})]})]})]}),"\n",(0,t.jsx)(r.p,{children:"To notice, we have set a rate limit for the public RPC access, currently 600 requests per minute per IP."}),"\n",(0,t.jsxs)(r.p,{children:["If you need higher tps, please contact our team for private RPC access. You can also use our partner ",(0,t.jsx)(r.a,{href:"https://www.quicknode.com/",children:"quicknode"})," or ",(0,t.jsx)(r.a,{href:"https://tenderly.co/",children:"tenderly"})," to create your own private RPC."]}),"\n",(0,t.jsx)(r.admonition,{title:"Websocket Connection",type:"tip",children:(0,t.jsx)(r.p,{children:"wss://rpc-quicknode.morphl2.io"})}),"\n",(0,t.jsx)(r.h3,{id:"explorer-information",children:"Explorer Information"}),"\n",(0,t.jsx)(r.p,{children:(0,t.jsx)(r.a,{href:"https://explorer.morphl2.io",children:"Official Mainnet Explorer"})}),"\n",(0,t.jsx)(r.p,{children:(0,t.jsx)(r.a,{href:"https://explorer-holesky.morphl2.io",children:"Official Testnet Explorer"})}),"\n",(0,t.jsx)(r.p,{children:(0,t.jsx)(r.a,{href:"https://explorer.morphl2.io/api-docs",children:"Explorer API Documentation"})}),"\n",(0,t.jsxs)(r.p,{children:["Explorer API: ",(0,t.jsx)(r.a,{href:"https://explorer-api.morphl2.io/api",children:"https://explorer-api.morphl2.io/api"})]}),"\n",(0,t.jsxs)(r.p,{children:["Testnet Explorer API: ",(0,t.jsx)(r.a,{href:"https://explorer-holesky-api.morphl2.io/api",children:"https://explorer-holesky-api.morphl2.io/api"})]}),"\n",(0,t.jsxs)(r.p,{children:["For detail guide on how to verify your contract on Morph explorer, ",(0,t.jsx)(r.a,{href:"/docs/build-on-morph/build-on-morph/verify-your-smart-contracts",children:"click here"})]}),"\n",(0,t.jsx)(r.h3,{id:"bridge-information",children:"Bridge Information"}),"\n",(0,t.jsx)(r.p,{children:(0,t.jsx)(r.a,{href:"https://bridge.morphl2.io",children:"Official Bridge"})}),"\n",(0,t.jsx)(r.p,{children:(0,t.jsx)(r.a,{href:"https://bridge-holesky.morphl2.io",children:"Official Testnet Bridge"})}),"\n",(0,t.jsxs)(r.admonition,{title:"Withdrawal and Deposit Time",type:"tip",children:[(0,t.jsx)(r.p,{children:"Due to Morph opzkEVM design, each withdrawal request will need to go through a 48 hours withdrawal period (challenge window) to be finalized."}),(0,t.jsx)(r.p,{children:"Deposit needs to wait for 2 Ethereum epoch (about 13~20 min)."})]}),"\n",(0,t.jsx)(r.h4,{id:"new-bridge-asset-support",children:"New Bridge Asset Support:"}),"\n",(0,t.jsx)(r.p,{children:(0,t.jsx)(r.a,{href:"https://docs.morphl2.io/docs/build-on-morph/build-on-morph/bridge-between-morph-and-ethereum#add-your-token-to-the-official-bridge",children:"Add your Token to the Official Bridge"})}),"\n",(0,t.jsx)(r.p,{children:"You can also use LayerZero to wrap your token:"}),"\n",(0,t.jsx)(r.p,{children:(0,t.jsx)(r.a,{href:"https://docs.layerzero.network/v2/developers/evm/technical-reference/deployed-contracts#morph",children:"LayerZero on Morph"})}),"\n",(0,t.jsx)(r.h3,{id:"transaction-fees--blocks",children:"Transaction Fees & Blocks"}),"\n",(0,t.jsx)(r.p,{children:"For Ethereum Layer2, there are 2 part of fees: L1 fee and L2 fee."}),"\n",(0,t.jsxs)(r.p,{children:["For L2 fee, Morph currently using the ",(0,t.jsx)(r.a,{href:"https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1559.md",children:"EIP-1559"})," mechanism for transaction fees same as Ethereum mainnet. Each transaction will have a base fee and a priority fee. The base fee is set to 0.001 Gwei. If the block transaction limit (100 per block) is not reached, only pay base fee is enough."]}),"\n",(0,t.jsx)(r.admonition,{type:"tip",children:(0,t.jsx)(r.p,{children:"Please note we have a lowest L2 priority fee setting (0.01 gwei) for testnet, this is in order to prevent spams. For mainnet, we are able process transaction without priority fee."})}),"\n",(0,t.jsx)(r.p,{children:"Morph currently produce 1 block per second for non-empty block, if there is no new transaction, we will produce 1 empty block every 5 seconds."}),"\n",(0,t.jsx)(r.p,{children:"Each block can have 100 transactions maximum and we will keep raising the limit."}),"\n",(0,t.jsx)(r.h3,{id:"important-contracts",children:"Important Contracts"}),"\n",(0,t.jsxs)(r.p,{children:["We have documented all the important contracts on Morph, you can find them ",(0,t.jsx)(r.a,{href:"/docs/build-on-morph/developer-resources/contracts",children:"here"})]}),"\n",(0,t.jsx)(r.h3,{id:"node-deployment",children:"Node Deployment"}),"\n",(0,t.jsx)(r.p,{children:"Right now we support you to run the Morph node (full node and validator node) in docker and run on host."}),"\n",(0,t.jsxs)(r.p,{children:["You can check the ",(0,t.jsx)(r.a,{href:"/docs/build-on-morph/developer-resources/node-operation/full-node/run-in-docker",children:"node deployment guide"})," for more details."]})]})}function c(e={}){const{wrapper:r}={...(0,n.R)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(p,{...e})}):p(e)}},1582:(e,r,o)=>{o.d(r,{R:()=>s,x:()=>h});var t=o(758);const n={},i=t.createContext(n);function s(e){const r=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function h(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:s(e.components),t.createElement(i.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/1022.47537bec.js b/build/assets/js/7426.0fe1a9ef.js similarity index 56% rename from build/assets/js/1022.47537bec.js rename to build/assets/js/7426.0fe1a9ef.js index cc9e13131..22d8a19d0 100644 --- a/build/assets/js/1022.47537bec.js +++ b/build/assets/js/7426.0fe1a9ef.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[1022],{1022:(c,e,h)=>{h.r(e)}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[7426],{7426:(c,e,h)=>{h.r(e)}}]); \ No newline at end of file diff --git a/build/assets/js/74fdc727.cc9416e7.js b/build/assets/js/74fdc727.cc9416e7.js deleted file mode 100644 index 47e648371..000000000 --- a/build/assets/js/74fdc727.cc9416e7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[3051],{9648:(e,o,i)=>{i.r(o),i.d(o,{assets:()=>p,contentTitle:()=>s,default:()=>c,frontMatter:()=>r,metadata:()=>a,toc:()=>h});var t=i(3274),n=i(2333);const r={title:"Morph Points",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},s=void 0,a={id:"quick-start/morph-zoo/morph-points",title:"Morph Points",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/quick-start/morph-zoo/1-morph-points.md",sourceDirName:"quick-start/morph-zoo",slug:"/quick-start/morph-zoo/morph-points",permalink:"/docs/quick-start/morph-zoo/morph-points",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/quick-start/morph-zoo/1-morph-points.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{title:"Morph Points",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"FAQs",permalink:"/docs/about-morph/faqs"},next:{title:"Voting Rules in Voice of the Jungle",permalink:"/docs/quick-start/morph-zoo/voting-rules"}},p={},h=[{value:"How Do I Earn Morph Points?",id:"how-do-i-earn-morph-points",level:3},{value:"Where will Morph Points be displayed\uff1f",id:"where-will-morph-points-be-displayed",level:3},{value:"What can I do with Morph Points?",id:"what-can-i-do-with-morph-points",level:3},{value:"Can I transfer Morph Points?",id:"can-i-transfer-morph-points",level:3}];function l(e){const o={a:"a",h3:"h3",li:"li",ol:"ol",p:"p",ul:"ul",...(0,n.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(o.p,{children:["To bring our community even closer to the action, we're excited to announce the ",(0,t.jsx)(o.a,{href:"https://www.morphl2.io/points/",children:"Morph Zoo"}),"."]}),"\n",(0,t.jsxs)(o.ul,{children:["\n",(0,t.jsx)(o.li,{children:"a multiphase program designed to engage, reward, and celebrate the vibrant ecosystem within our testnet and, eventually, our mainnet. Our aim is to immerse you in our world, one where consumer needs are prioritized and where your input directly impacts our growth trajectory."}),"\n"]}),"\n",(0,t.jsx)(o.p,{children:"Morph Points are used to measure your engagement and contributions within the Morph ecosystem with a variety of campaigns which will be listed in Morph Zoo. They represent your active participation and achievements in our world."}),"\n",(0,t.jsx)(o.p,{children:"Morph Zoo's Season 1: The Genesis Jungle was officially launched on May 13, 2024."}),"\n",(0,t.jsx)(o.h3,{id:"how-do-i-earn-morph-points",children:"How Do I Earn Morph Points?"}),"\n",(0,t.jsx)(o.p,{children:"To earn Morph points, you can participate in the following activities within Season 1:"}),"\n",(0,t.jsxs)(o.ol,{children:["\n",(0,t.jsx)(o.li,{children:"Engage with our ecosystem DApps. The more you do, the more you earn!"}),"\n",(0,t.jsx)(o.li,{children:"Check in daily to earn voting power, which can then be used to vote for your favorite projects. Voting earns you Morph Points!"}),"\n",(0,t.jsx)(o.li,{children:"Lastly, you can earn additional points by participating in events organized by Morph partners."}),"\n"]}),"\n",(0,t.jsx)(o.h3,{id:"where-will-morph-points-be-displayed",children:"Where will Morph Points be displayed\uff1f"}),"\n",(0,t.jsx)(o.p,{children:'Morph Points for season 1 will be recorded on the "My Points" page of the official campaign site. However, please note that Morph Points earned through dapp engagement will be calculated and displayed at the conclusion of the event, along with the final tally of all points earned through all activities.'}),"\n",(0,t.jsx)(o.h3,{id:"what-can-i-do-with-morph-points",children:"What can I do with Morph Points?"}),"\n",(0,t.jsx)(o.p,{children:"Morph points will play an important role when taking into account future airdrops and other exclusive rewards. Stay tuned for more!"}),"\n",(0,t.jsx)(o.h3,{id:"can-i-transfer-morph-points",children:"Can I transfer Morph Points?"}),"\n",(0,t.jsx)(o.p,{children:"No. Morph Points are linked to specific users and wallets with no way to transfer.\nIt's time to explore Morph's Genesis Jungle, discovering special dapps while earning generous Morph Points as you do!"})]})}function c(e={}){const{wrapper:o}={...(0,n.R)(),...e.components};return o?(0,t.jsx)(o,{...e,children:(0,t.jsx)(l,{...e})}):l(e)}},2333:(e,o,i)=>{i.d(o,{R:()=>s,x:()=>a});var t=i(9474);const n={},r=t.createContext(n);function s(e){const o=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function a(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:s(e.components),t.createElement(r.Provider,{value:o},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/76db7a6d.0afe694c.js b/build/assets/js/76db7a6d.2bcc76ed.js similarity index 80% rename from build/assets/js/76db7a6d.0afe694c.js rename to build/assets/js/76db7a6d.2bcc76ed.js index 9f8f4f63b..b8deae4fc 100644 --- a/build/assets/js/76db7a6d.0afe694c.js +++ b/build/assets/js/76db7a6d.2bcc76ed.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[408],{2658:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>a,contentTitle:()=>t,default:()=>h,frontMatter:()=>i,metadata:()=>c,toc:()=>d});var o=n(3274),r=n(2333);const i={},t="Type alias: MessageLike",c={id:"build-on-morph/sdk/type-aliases/MessageLike",title:"MessageLike",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/type-aliases/MessageLike.md",sourceDirName:"build-on-morph/sdk/type-aliases",slug:"/build-on-morph/sdk/type-aliases/MessageLike",permalink:"/docs/build-on-morph/sdk/type-aliases/MessageLike",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/type-aliases/MessageLike.md",tags:[],version:"current",frontMatter:{}},a={},d=[{value:"Source",id:"source",level:2}];function l(e){const s={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,r.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,o.jsx)(s.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,o.jsx)(s.strong,{children:"Docs"})]}),"\n",(0,o.jsx)(s.hr,{}),"\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / MessageLike"]}),"\n",(0,o.jsx)(s.h1,{id:"type-alias-messagelike",children:"Type alias: MessageLike"}),"\n",(0,o.jsxs)(s.blockquote,{children:["\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.strong,{children:"MessageLike"}),": ",(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CrossChainMessage",children:(0,o.jsx)(s.code,{children:"CrossChainMessage"})})," | ",(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/TransactionLike",children:(0,o.jsx)(s.code,{children:"TransactionLike"})})," | ",(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage",children:(0,o.jsx)(s.code,{children:"TokenBridgeMessage"})})]}),"\n"]}),"\n",(0,o.jsx)(s.p,{children:"Stuff that can be coerced into a CrossChainMessage."}),"\n",(0,o.jsx)(s.h2,{id:"source",children:"Source"}),"\n",(0,o.jsx)(s.p,{children:"src/interfaces/types.ts:359"})]})}function h(e={}){const{wrapper:s}={...(0,r.R)(),...e.components};return s?(0,o.jsx)(s,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},2333:(e,s,n)=>{n.d(s,{R:()=>t,x:()=>c});var o=n(9474);const r={},i=o.createContext(r);function t(e){const s=o.useContext(i);return o.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:t(e.components),o.createElement(i.Provider,{value:s},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[408],{6068:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>a,contentTitle:()=>t,default:()=>h,frontMatter:()=>i,metadata:()=>c,toc:()=>d});var o=n(6070),r=n(1582);const i={},t="Type alias: MessageLike",c={id:"build-on-morph/sdk/type-aliases/MessageLike",title:"MessageLike",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/type-aliases/MessageLike.md",sourceDirName:"build-on-morph/sdk/type-aliases",slug:"/build-on-morph/sdk/type-aliases/MessageLike",permalink:"/docs/build-on-morph/sdk/type-aliases/MessageLike",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/type-aliases/MessageLike.md",tags:[],version:"current",frontMatter:{}},a={},d=[{value:"Source",id:"source",level:2}];function l(e){const s={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,r.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,o.jsx)(s.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,o.jsx)(s.strong,{children:"Docs"})]}),"\n",(0,o.jsx)(s.hr,{}),"\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / MessageLike"]}),"\n",(0,o.jsx)(s.h1,{id:"type-alias-messagelike",children:"Type alias: MessageLike"}),"\n",(0,o.jsxs)(s.blockquote,{children:["\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.strong,{children:"MessageLike"}),": ",(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CrossChainMessage",children:(0,o.jsx)(s.code,{children:"CrossChainMessage"})})," | ",(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/TransactionLike",children:(0,o.jsx)(s.code,{children:"TransactionLike"})})," | ",(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage",children:(0,o.jsx)(s.code,{children:"TokenBridgeMessage"})})]}),"\n"]}),"\n",(0,o.jsx)(s.p,{children:"Stuff that can be coerced into a CrossChainMessage."}),"\n",(0,o.jsx)(s.h2,{id:"source",children:"Source"}),"\n",(0,o.jsx)(s.p,{children:"src/interfaces/types.ts:359"})]})}function h(e={}){const{wrapper:s}={...(0,r.R)(),...e.components};return s?(0,o.jsx)(s,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},1582:(e,s,n)=>{n.d(s,{R:()=>t,x:()=>c});var o=n(758);const r={},i=o.createContext(r);function t(e){const s=o.useContext(i);return o.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:t(e.components),o.createElement(i.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/7824cff9.3096b8d9.js b/build/assets/js/7824cff9.dde82ce4.js similarity index 86% rename from build/assets/js/7824cff9.3096b8d9.js rename to build/assets/js/7824cff9.dde82ce4.js index 379fb3c77..eacb04b4c 100644 --- a/build/assets/js/7824cff9.3096b8d9.js +++ b/build/assets/js/7824cff9.dde82ce4.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[8676],{5702:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>i,default:()=>u,frontMatter:()=>c,metadata:()=>l,toc:()=>t});var r=s(3274),o=s(2333);const c={},i="Enumeration: L1ChainID",l={id:"build-on-morph/sdk/enumerations/L1ChainID",title:"L1ChainID",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/enumerations/L1ChainID.md",sourceDirName:"build-on-morph/sdk/enumerations",slug:"/build-on-morph/sdk/enumerations/L1ChainID",permalink:"/docs/build-on-morph/sdk/enumerations/L1ChainID",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/enumerations/L1ChainID.md",tags:[],version:"current",frontMatter:{}},d={},t=[{value:"Enumeration Members",id:"enumeration-members",level:2},{value:"HOLESKY",id:"holesky",level:3},{value:"Source",id:"source",level:4},{value:"MAINNET",id:"mainnet",level:3},{value:"Source",id:"source-1",level:4},{value:"MORPH_LOCAL_DEVNET",id:"morph_local_devnet",level:3},{value:"Source",id:"source-2",level:4},{value:"MORPH_QANET",id:"morph_qanet",level:3},{value:"Source",id:"source-3",level:4},{value:"SEPOLIA",id:"sepolia",level:3},{value:"Source",id:"source-4",level:4}];function h(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",p:"p",strong:"strong",...(0,o.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,r.jsx)(n.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,r.jsx)(n.strong,{children:"Docs"})]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / L1ChainID"]}),"\n",(0,r.jsx)(n.h1,{id:"enumeration-l1chainid",children:"Enumeration: L1ChainID"}),"\n",(0,r.jsx)(n.p,{children:"L1 network chain IDs"}),"\n",(0,r.jsx)(n.h2,{id:"enumeration-members",children:"Enumeration Members"}),"\n",(0,r.jsx)(n.h3,{id:"holesky",children:"HOLESKY"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"HOLESKY"}),": ",(0,r.jsx)(n.code,{children:"17000"})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"source",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/interfaces/types.ts:23"}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"mainnet",children:"MAINNET"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"MAINNET"}),": ",(0,r.jsx)(n.code,{children:"1"})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"source-1",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/interfaces/types.ts:17"}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"morph_local_devnet",children:"MORPH_LOCAL_DEVNET"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"MORPH_LOCAL_DEVNET"}),": ",(0,r.jsx)(n.code,{children:"900"})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"source-2",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/interfaces/types.ts:20"}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"morph_qanet",children:"MORPH_QANET"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"MORPH_QANET"}),": ",(0,r.jsx)(n.code,{children:"900"})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"source-3",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/interfaces/types.ts:21"}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"sepolia",children:"SEPOLIA"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"SEPOLIA"}),": ",(0,r.jsx)(n.code,{children:"11155111"})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"source-4",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/interfaces/types.ts:22"})]})}function u(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},2333:(e,n,s)=>{s.d(n,{R:()=>i,x:()=>l});var r=s(9474);const o={},c=r.createContext(o);function i(e){const n=r.useContext(c);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),r.createElement(c.Provider,{value:n},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[8676],{2644:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>i,default:()=>u,frontMatter:()=>c,metadata:()=>l,toc:()=>t});var r=s(6070),o=s(1582);const c={},i="Enumeration: L1ChainID",l={id:"build-on-morph/sdk/enumerations/L1ChainID",title:"L1ChainID",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/enumerations/L1ChainID.md",sourceDirName:"build-on-morph/sdk/enumerations",slug:"/build-on-morph/sdk/enumerations/L1ChainID",permalink:"/docs/build-on-morph/sdk/enumerations/L1ChainID",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/enumerations/L1ChainID.md",tags:[],version:"current",frontMatter:{}},d={},t=[{value:"Enumeration Members",id:"enumeration-members",level:2},{value:"HOLESKY",id:"holesky",level:3},{value:"Source",id:"source",level:4},{value:"MAINNET",id:"mainnet",level:3},{value:"Source",id:"source-1",level:4},{value:"MORPH_LOCAL_DEVNET",id:"morph_local_devnet",level:3},{value:"Source",id:"source-2",level:4},{value:"MORPH_QANET",id:"morph_qanet",level:3},{value:"Source",id:"source-3",level:4},{value:"SEPOLIA",id:"sepolia",level:3},{value:"Source",id:"source-4",level:4}];function h(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",p:"p",strong:"strong",...(0,o.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,r.jsx)(n.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,r.jsx)(n.strong,{children:"Docs"})]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / L1ChainID"]}),"\n",(0,r.jsx)(n.h1,{id:"enumeration-l1chainid",children:"Enumeration: L1ChainID"}),"\n",(0,r.jsx)(n.p,{children:"L1 network chain IDs"}),"\n",(0,r.jsx)(n.h2,{id:"enumeration-members",children:"Enumeration Members"}),"\n",(0,r.jsx)(n.h3,{id:"holesky",children:"HOLESKY"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"HOLESKY"}),": ",(0,r.jsx)(n.code,{children:"17000"})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"source",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/interfaces/types.ts:23"}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"mainnet",children:"MAINNET"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"MAINNET"}),": ",(0,r.jsx)(n.code,{children:"1"})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"source-1",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/interfaces/types.ts:17"}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"morph_local_devnet",children:"MORPH_LOCAL_DEVNET"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"MORPH_LOCAL_DEVNET"}),": ",(0,r.jsx)(n.code,{children:"900"})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"source-2",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/interfaces/types.ts:20"}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"morph_qanet",children:"MORPH_QANET"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"MORPH_QANET"}),": ",(0,r.jsx)(n.code,{children:"900"})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"source-3",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/interfaces/types.ts:21"}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"sepolia",children:"SEPOLIA"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"SEPOLIA"}),": ",(0,r.jsx)(n.code,{children:"11155111"})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"source-4",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/interfaces/types.ts:22"})]})}function u(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},1582:(e,n,s)=>{s.d(n,{R:()=>i,x:()=>l});var r=s(758);const o={},c=r.createContext(o);function i(e){const n=r.useContext(c);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),r.createElement(c.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/79dc0904.36cbb9fb.js b/build/assets/js/79dc0904.3b3a5e18.js similarity index 75% rename from build/assets/js/79dc0904.36cbb9fb.js rename to build/assets/js/79dc0904.3b3a5e18.js index 1a10af990..02953aff0 100644 --- a/build/assets/js/79dc0904.36cbb9fb.js +++ b/build/assets/js/79dc0904.3b3a5e18.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[4405],{9525:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>i,default:()=>h,frontMatter:()=>t,metadata:()=>c,toc:()=>l});var r=s(3274),o=s(2333);const t={},i="Type alias: SignerLike",c={id:"build-on-morph/sdk/type-aliases/SignerLike",title:"SignerLike",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/type-aliases/SignerLike.md",sourceDirName:"build-on-morph/sdk/type-aliases",slug:"/build-on-morph/sdk/type-aliases/SignerLike",permalink:"/docs/build-on-morph/sdk/type-aliases/SignerLike",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/type-aliases/SignerLike.md",tags:[],version:"current",frontMatter:{}},d={},l=[{value:"Source",id:"source",level:2}];function a(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,o.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,r.jsx)(n.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,r.jsx)(n.strong,{children:"Docs"})]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / SignerLike"]}),"\n",(0,r.jsx)(n.h1,{id:"type-alias-signerlike",children:"Type alias: SignerLike"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"SignerLike"}),": ",(0,r.jsx)(n.code,{children:"string"})," | ",(0,r.jsx)(n.code,{children:"Signer"})]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"Stuff that can be coerced into a signer."}),"\n",(0,r.jsx)(n.h2,{id:"source",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/interfaces/types.ts:381"})]})}function h(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(a,{...e})}):a(e)}},2333:(e,n,s)=>{s.d(n,{R:()=>i,x:()=>c});var r=s(9474);const o={},t=r.createContext(o);function i(e){const n=r.useContext(t);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),r.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[4405],{9247:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>i,default:()=>h,frontMatter:()=>t,metadata:()=>c,toc:()=>l});var r=s(6070),o=s(1582);const t={},i="Type alias: SignerLike",c={id:"build-on-morph/sdk/type-aliases/SignerLike",title:"SignerLike",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/type-aliases/SignerLike.md",sourceDirName:"build-on-morph/sdk/type-aliases",slug:"/build-on-morph/sdk/type-aliases/SignerLike",permalink:"/docs/build-on-morph/sdk/type-aliases/SignerLike",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/type-aliases/SignerLike.md",tags:[],version:"current",frontMatter:{}},d={},l=[{value:"Source",id:"source",level:2}];function a(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,o.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,r.jsx)(n.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,r.jsx)(n.strong,{children:"Docs"})]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / SignerLike"]}),"\n",(0,r.jsx)(n.h1,{id:"type-alias-signerlike",children:"Type alias: SignerLike"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"SignerLike"}),": ",(0,r.jsx)(n.code,{children:"string"})," | ",(0,r.jsx)(n.code,{children:"Signer"})]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"Stuff that can be coerced into a signer."}),"\n",(0,r.jsx)(n.h2,{id:"source",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/interfaces/types.ts:381"})]})}function h(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(a,{...e})}):a(e)}},1582:(e,n,s)=>{s.d(n,{R:()=>i,x:()=>c});var r=s(758);const o={},t=r.createContext(o);function i(e){const n=r.useContext(t);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),r.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/7a5975a7.4c71ff63.js b/build/assets/js/7a5975a7.6a0313ab.js similarity index 80% rename from build/assets/js/7a5975a7.4c71ff63.js rename to build/assets/js/7a5975a7.6a0313ab.js index daa074c59..a230bbf9e 100644 --- a/build/assets/js/7a5975a7.4c71ff63.js +++ b/build/assets/js/7a5975a7.6a0313ab.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[3961],{7337:(e,o,s)=>{s.r(o),s.d(o,{assets:()=>d,contentTitle:()=>t,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>l});var n=s(3274),r=s(2333);const i={title:"Blockchain Indexing Services",lang:"en-US"},t=void 0,c={id:"build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-indexing-services",title:"Blockchain Indexing Services",description:"Goldsky",source:"@site/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/4-blockchain-indexing-services.md",sourceDirName:"build-on-morph/developer-resources/use-ecosystem-developer-tools",slug:"/build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-indexing-services",permalink:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-indexing-services",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/4-blockchain-indexing-services.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{title:"Blockchain Indexing Services",lang:"en-US"},sidebar:"DeveloperSidebar",previous:{title:"Account Abstraction",permalink:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/account-abstraction"},next:{title:"Blockchain Oracles",permalink:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-oracles"}},d={},l=[{value:"Goldsky",id:"goldsky",level:3},{value:"Envio",id:"envio",level:3}];function a(e){const o={a:"a",h3:"h3",img:"img",p:"p",...(0,r.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(o.h3,{id:"goldsky",children:"Goldsky"}),"\n",(0,n.jsx)(o.p,{children:(0,n.jsx)(o.img,{alt:"goldsky",src:s(8115).A+"",width:"2284",height:"1548"})}),"\n",(0,n.jsx)(o.p,{children:"We have partnered with Goldsky to provide indexing and subgraph services for Morph Holesky and Morph Mainnet."}),"\n",(0,n.jsx)(o.p,{children:"Goldsky also allow us to grant selected developers with free subgraph services now. If you want to deploy a subgraph with Goldsky, please raise a ticket in our Discord to let us know how we can help."}),"\n",(0,n.jsxs)(o.p,{children:["For more information, please refer to ",(0,n.jsx)(o.a,{href:"https://docs.goldsky.com/chains/morph",children:"their documentation"}),"."]}),"\n",(0,n.jsx)(o.h3,{id:"envio",children:"Envio"}),"\n",(0,n.jsx)(o.p,{children:(0,n.jsx)(o.img,{alt:"envio",src:s(3091).A+"",width:"1920",height:"1080"})}),"\n",(0,n.jsx)(o.p,{children:"Envio is a modern, multi-chain EVM blockchain indexing framework speed-optimized for querying real-time and historical data on Morph Holesky and Morph Mainnet."}),"\n",(0,n.jsx)(o.p,{children:"Designed with a core focus on delivering superior performance and seamless developer experience, Envio empowers the next generation of consumer apps."}),"\n",(0,n.jsxs)(o.p,{children:["The ",(0,n.jsx)(o.a,{href:"https://docs.envio.dev/docs/HyperIndex/contract-import",children:"Quickstart"})," allows you to instantly autogenerate a basic indexer and query your smart contract data on Morph. This is the quickest way to get going and likely the starting point for most developers."]}),"\n",(0,n.jsxs)(o.p,{children:["For more information, please refer to ",(0,n.jsx)(o.a,{href:"https://docs.envio.dev",children:"their documentation"}),"."]}),"\n",(0,n.jsxs)(o.p,{children:["Click ",(0,n.jsx)(o.a,{href:"https://envio.dev/explorer",children:"here"})," for live indexer examples to be inspired."]})]})}function p(e={}){const{wrapper:o}={...(0,r.R)(),...e.components};return o?(0,n.jsx)(o,{...e,children:(0,n.jsx)(a,{...e})}):a(e)}},3091:(e,o,s)=>{s.d(o,{A:()=>n});const n=s.p+"assets/images/envio-b6ab67a576429dcc70f99275a1c85f04.png"},8115:(e,o,s)=>{s.d(o,{A:()=>n});const n=s.p+"assets/images/goldsky-c0d8510a51ed749e42c2752506049baa.png"},2333:(e,o,s)=>{s.d(o,{R:()=>t,x:()=>c});var n=s(9474);const r={},i=n.createContext(r);function t(e){const o=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function c(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:t(e.components),n.createElement(i.Provider,{value:o},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[3961],{4059:(e,o,s)=>{s.r(o),s.d(o,{assets:()=>d,contentTitle:()=>t,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>l});var n=s(6070),r=s(1582);const i={title:"Blockchain Indexing Services",lang:"en-US"},t=void 0,c={id:"build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-indexing-services",title:"Blockchain Indexing Services",description:"Goldsky",source:"@site/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/4-blockchain-indexing-services.md",sourceDirName:"build-on-morph/developer-resources/use-ecosystem-developer-tools",slug:"/build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-indexing-services",permalink:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-indexing-services",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/4-blockchain-indexing-services.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{title:"Blockchain Indexing Services",lang:"en-US"},sidebar:"DeveloperSidebar",previous:{title:"Account Abstraction",permalink:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/account-abstraction"},next:{title:"Blockchain Oracles",permalink:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-oracles"}},d={},l=[{value:"Goldsky",id:"goldsky",level:3},{value:"Envio",id:"envio",level:3}];function a(e){const o={a:"a",h3:"h3",img:"img",p:"p",...(0,r.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(o.h3,{id:"goldsky",children:"Goldsky"}),"\n",(0,n.jsx)(o.p,{children:(0,n.jsx)(o.img,{alt:"goldsky",src:s(1087).A+"",width:"2284",height:"1548"})}),"\n",(0,n.jsx)(o.p,{children:"We have partnered with Goldsky to provide indexing and subgraph services for Morph Holesky and Morph Mainnet."}),"\n",(0,n.jsx)(o.p,{children:"Goldsky also allow us to grant selected developers with free subgraph services now. If you want to deploy a subgraph with Goldsky, please raise a ticket in our Discord to let us know how we can help."}),"\n",(0,n.jsxs)(o.p,{children:["For more information, please refer to ",(0,n.jsx)(o.a,{href:"https://docs.goldsky.com/chains/morph",children:"their documentation"}),"."]}),"\n",(0,n.jsx)(o.h3,{id:"envio",children:"Envio"}),"\n",(0,n.jsx)(o.p,{children:(0,n.jsx)(o.img,{alt:"envio",src:s(1359).A+"",width:"1920",height:"1080"})}),"\n",(0,n.jsx)(o.p,{children:"Envio is a modern, multi-chain EVM blockchain indexing framework speed-optimized for querying real-time and historical data on Morph Holesky and Morph Mainnet."}),"\n",(0,n.jsx)(o.p,{children:"Designed with a core focus on delivering superior performance and seamless developer experience, Envio empowers the next generation of consumer apps."}),"\n",(0,n.jsxs)(o.p,{children:["The ",(0,n.jsx)(o.a,{href:"https://docs.envio.dev/docs/HyperIndex/contract-import",children:"Quickstart"})," allows you to instantly autogenerate a basic indexer and query your smart contract data on Morph. This is the quickest way to get going and likely the starting point for most developers."]}),"\n",(0,n.jsxs)(o.p,{children:["For more information, please refer to ",(0,n.jsx)(o.a,{href:"https://docs.envio.dev",children:"their documentation"}),"."]}),"\n",(0,n.jsxs)(o.p,{children:["Click ",(0,n.jsx)(o.a,{href:"https://envio.dev/explorer",children:"here"})," for live indexer examples to be inspired."]})]})}function p(e={}){const{wrapper:o}={...(0,r.R)(),...e.components};return o?(0,n.jsx)(o,{...e,children:(0,n.jsx)(a,{...e})}):a(e)}},1359:(e,o,s)=>{s.d(o,{A:()=>n});const n=s.p+"assets/images/envio-b6ab67a576429dcc70f99275a1c85f04.png"},1087:(e,o,s)=>{s.d(o,{A:()=>n});const n=s.p+"assets/images/goldsky-c0d8510a51ed749e42c2752506049baa.png"},1582:(e,o,s)=>{s.d(o,{R:()=>t,x:()=>c});var n=s(758);const r={},i=n.createContext(r);function t(e){const o=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function c(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:t(e.components),n.createElement(i.Provider,{value:o},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/7c1e7b23.aea15d1f.js b/build/assets/js/7c1e7b23.0cceff70.js similarity index 85% rename from build/assets/js/7c1e7b23.aea15d1f.js rename to build/assets/js/7c1e7b23.0cceff70.js index 2fd72d06b..e8072c7ee 100644 --- a/build/assets/js/7c1e7b23.aea15d1f.js +++ b/build/assets/js/7c1e7b23.0cceff70.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[841],{5358:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>d,contentTitle:()=>i,default:()=>a,frontMatter:()=>t,metadata:()=>c,toc:()=>l});var r=n(3274),o=n(2333);const t={},i="Interface: CrossChainMessageRequest",c={id:"build-on-morph/sdk/interfaces/CrossChainMessageRequest",title:"CrossChainMessageRequest",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/interfaces/CrossChainMessageRequest.md",sourceDirName:"build-on-morph/sdk/interfaces",slug:"/build-on-morph/sdk/interfaces/CrossChainMessageRequest",permalink:"/docs/build-on-morph/sdk/interfaces/CrossChainMessageRequest",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/interfaces/CrossChainMessageRequest.md",tags:[],version:"current",frontMatter:{}},d={},l=[{value:"Properties",id:"properties",level:2},{value:"direction",id:"direction",level:3},{value:"Source",id:"source",level:4},{value:"message",id:"message",level:3},{value:"Source",id:"source-1",level:4},{value:"target",id:"target",level:3},{value:"Source",id:"source-2",level:4}];function h(e){const s={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",p:"p",strong:"strong",...(0,o.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,r.jsx)(s.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,r.jsx)(s.strong,{children:"Docs"})]}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / CrossChainMessageRequest"]}),"\n",(0,r.jsx)(s.h1,{id:"interface-crosschainmessagerequest",children:"Interface: CrossChainMessageRequest"}),"\n",(0,r.jsx)(s.p,{children:"Partial message that needs to be signed and executed by a specific signer."}),"\n",(0,r.jsx)(s.h2,{id:"properties",children:"Properties"}),"\n",(0,r.jsx)(s.h3,{id:"direction",children:"direction"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"direction"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/enumerations/MessageDirection",children:(0,r.jsx)(s.code,{children:"MessageDirection"})})]}),"\n"]}),"\n",(0,r.jsx)(s.h4,{id:"source",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/interfaces/types.ts:231"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"message",children:"message"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"message"}),": ",(0,r.jsx)(s.code,{children:"string"})]}),"\n"]}),"\n",(0,r.jsx)(s.h4,{id:"source-1",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/interfaces/types.ts:233"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"target",children:"target"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"target"}),": ",(0,r.jsx)(s.code,{children:"string"})]}),"\n"]}),"\n",(0,r.jsx)(s.h4,{id:"source-2",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/interfaces/types.ts:232"})]})}function a(e={}){const{wrapper:s}={...(0,o.R)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},2333:(e,s,n)=>{n.d(s,{R:()=>i,x:()=>c});var r=n(9474);const o={},t=r.createContext(o);function i(e){const s=r.useContext(t);return r.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),r.createElement(t.Provider,{value:s},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[841],{5968:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>d,contentTitle:()=>i,default:()=>a,frontMatter:()=>t,metadata:()=>c,toc:()=>l});var r=n(6070),o=n(1582);const t={},i="Interface: CrossChainMessageRequest",c={id:"build-on-morph/sdk/interfaces/CrossChainMessageRequest",title:"CrossChainMessageRequest",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/interfaces/CrossChainMessageRequest.md",sourceDirName:"build-on-morph/sdk/interfaces",slug:"/build-on-morph/sdk/interfaces/CrossChainMessageRequest",permalink:"/docs/build-on-morph/sdk/interfaces/CrossChainMessageRequest",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/interfaces/CrossChainMessageRequest.md",tags:[],version:"current",frontMatter:{}},d={},l=[{value:"Properties",id:"properties",level:2},{value:"direction",id:"direction",level:3},{value:"Source",id:"source",level:4},{value:"message",id:"message",level:3},{value:"Source",id:"source-1",level:4},{value:"target",id:"target",level:3},{value:"Source",id:"source-2",level:4}];function h(e){const s={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",p:"p",strong:"strong",...(0,o.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,r.jsx)(s.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,r.jsx)(s.strong,{children:"Docs"})]}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / CrossChainMessageRequest"]}),"\n",(0,r.jsx)(s.h1,{id:"interface-crosschainmessagerequest",children:"Interface: CrossChainMessageRequest"}),"\n",(0,r.jsx)(s.p,{children:"Partial message that needs to be signed and executed by a specific signer."}),"\n",(0,r.jsx)(s.h2,{id:"properties",children:"Properties"}),"\n",(0,r.jsx)(s.h3,{id:"direction",children:"direction"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"direction"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/enumerations/MessageDirection",children:(0,r.jsx)(s.code,{children:"MessageDirection"})})]}),"\n"]}),"\n",(0,r.jsx)(s.h4,{id:"source",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/interfaces/types.ts:231"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"message",children:"message"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"message"}),": ",(0,r.jsx)(s.code,{children:"string"})]}),"\n"]}),"\n",(0,r.jsx)(s.h4,{id:"source-1",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/interfaces/types.ts:233"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"target",children:"target"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"target"}),": ",(0,r.jsx)(s.code,{children:"string"})]}),"\n"]}),"\n",(0,r.jsx)(s.h4,{id:"source-2",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/interfaces/types.ts:232"})]})}function a(e={}){const{wrapper:s}={...(0,o.R)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},1582:(e,s,n)=>{n.d(s,{R:()=>i,x:()=>c});var r=n(758);const o={},t=r.createContext(o);function i(e){const s=r.useContext(t);return r.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),r.createElement(t.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/7c45cc48.04c9c3e7.js b/build/assets/js/7c45cc48.04c9c3e7.js deleted file mode 100644 index a4305b613..000000000 --- a/build/assets/js/7c45cc48.04c9c3e7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[1282],{176:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>i,contentTitle:()=>c,default:()=>u,frontMatter:()=>t,metadata:()=>l,toc:()=>d});var s=r(3274),o=r(2333);const t={},c="Enumeration: L2RpcUrls",l={id:"build-on-morph/sdk/enumerations/L2RpcUrls",title:"L2RpcUrls",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/enumerations/L2RpcUrls.md",sourceDirName:"build-on-morph/sdk/enumerations",slug:"/build-on-morph/sdk/enumerations/L2RpcUrls",permalink:"/docs/build-on-morph/sdk/enumerations/L2RpcUrls",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/enumerations/L2RpcUrls.md",tags:[],version:"current",frontMatter:{}},i={},d=[{value:"Enumeration Members",id:"enumeration-members",level:2},{value:"MORPH_HOLESKY",id:"morph_holesky",level:3},{value:"Source",id:"source",level:4},{value:"MORPH_LOCAL_DEVNET",id:"morph_local_devnet",level:3},{value:"Source",id:"source-1",level:4},{value:"MORPH_TESTNET",id:"morph_testnet",level:3},{value:"Source",id:"source-2",level:4}];function h(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",p:"p",strong:"strong",...(0,o.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,s.jsx)(n.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,s.jsx)(n.strong,{children:"Docs"})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / L2RpcUrls"]}),"\n",(0,s.jsx)(n.h1,{id:"enumeration-l2rpcurls",children:"Enumeration: L2RpcUrls"}),"\n",(0,s.jsx)(n.h2,{id:"enumeration-members",children:"Enumeration Members"}),"\n",(0,s.jsx)(n.h3,{id:"morph_holesky",children:"MORPH_HOLESKY"}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"MORPH_HOLESKY"}),": ",(0,s.jsx)(n.code,{children:'"https://rpc-holesky.morphl2.io"'})]}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"source",children:"Source"}),"\n",(0,s.jsx)(n.p,{children:"src/interfaces/types.ts:47"}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h3,{id:"morph_local_devnet",children:"MORPH_LOCAL_DEVNET"}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"MORPH_LOCAL_DEVNET"}),": ",(0,s.jsx)(n.code,{children:'"http://localhost:8545"'})]}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"source-1",children:"Source"}),"\n",(0,s.jsx)(n.p,{children:"src/interfaces/types.ts:45"}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h3,{id:"morph_testnet",children:"MORPH_TESTNET"}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"MORPH_TESTNET"}),": ",(0,s.jsx)(n.code,{children:'"https://rpc-testnet.morphl2.io"'})]}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"source-2",children:"Source"}),"\n",(0,s.jsx)(n.p,{children:"src/interfaces/types.ts:46"})]})}function u(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},2333:(e,n,r)=>{r.d(n,{R:()=>c,x:()=>l});var s=r(9474);const o={},t=s.createContext(o);function c(e){const n=s.useContext(t);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:c(e.components),s.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/7c45cc48.7deaf08e.js b/build/assets/js/7c45cc48.7deaf08e.js new file mode 100644 index 000000000..55e08eaa2 --- /dev/null +++ b/build/assets/js/7c45cc48.7deaf08e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[1282],{2122:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>i,contentTitle:()=>c,default:()=>u,frontMatter:()=>t,metadata:()=>l,toc:()=>d});var s=r(6070),o=r(1582);const t={},c="Enumeration: L2RpcUrls",l={id:"build-on-morph/sdk/enumerations/L2RpcUrls",title:"L2RpcUrls",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/enumerations/L2RpcUrls.md",sourceDirName:"build-on-morph/sdk/enumerations",slug:"/build-on-morph/sdk/enumerations/L2RpcUrls",permalink:"/docs/build-on-morph/sdk/enumerations/L2RpcUrls",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/enumerations/L2RpcUrls.md",tags:[],version:"current",frontMatter:{}},i={},d=[{value:"Enumeration Members",id:"enumeration-members",level:2},{value:"MORPH_HOLESKY",id:"morph_holesky",level:3},{value:"Source",id:"source",level:4},{value:"MORPH_LOCAL_DEVNET",id:"morph_local_devnet",level:3},{value:"Source",id:"source-1",level:4},{value:"MORPH_TESTNET",id:"morph_testnet",level:3},{value:"Source",id:"source-2",level:4}];function h(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",p:"p",strong:"strong",...(0,o.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,s.jsx)(n.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,s.jsx)(n.strong,{children:"Docs"})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / L2RpcUrls"]}),"\n",(0,s.jsx)(n.h1,{id:"enumeration-l2rpcurls",children:"Enumeration: L2RpcUrls"}),"\n",(0,s.jsx)(n.h2,{id:"enumeration-members",children:"Enumeration Members"}),"\n",(0,s.jsx)(n.h3,{id:"morph_holesky",children:"MORPH_HOLESKY"}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"MORPH_HOLESKY"}),": ",(0,s.jsx)(n.code,{children:'"https://rpc-holesky.morphl2.io"'})]}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"source",children:"Source"}),"\n",(0,s.jsx)(n.p,{children:"src/interfaces/types.ts:47"}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h3,{id:"morph_local_devnet",children:"MORPH_LOCAL_DEVNET"}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"MORPH_LOCAL_DEVNET"}),": ",(0,s.jsx)(n.code,{children:'"http://localhost:8545"'})]}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"source-1",children:"Source"}),"\n",(0,s.jsx)(n.p,{children:"src/interfaces/types.ts:45"}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h3,{id:"morph_testnet",children:"MORPH_TESTNET"}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"MORPH_TESTNET"}),": ",(0,s.jsx)(n.code,{children:'"https://rpc-testnet.morphl2.io"'})]}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"source-2",children:"Source"}),"\n",(0,s.jsx)(n.p,{children:"src/interfaces/types.ts:46"})]})}function u(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},1582:(e,n,r)=>{r.d(n,{R:()=>c,x:()=>l});var s=r(758);const o={},t=s.createContext(o);function c(e){const n=s.useContext(t);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:c(e.components),s.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/81f29526.947baab7.js b/build/assets/js/81f29526.ef9fe313.js similarity index 77% rename from build/assets/js/81f29526.947baab7.js rename to build/assets/js/81f29526.ef9fe313.js index 6978408fd..a0c5e20e8 100644 --- a/build/assets/js/81f29526.947baab7.js +++ b/build/assets/js/81f29526.ef9fe313.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[1508],{8338:(e,r,o)=>{o.r(r),o.d(r,{assets:()=>c,contentTitle:()=>i,default:()=>h,frontMatter:()=>t,metadata:()=>d,toc:()=>l});var s=o(3274),n=o(2333);const t={},i="Type alias: ProviderLike",d={id:"build-on-morph/sdk/type-aliases/ProviderLike",title:"ProviderLike",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/type-aliases/ProviderLike.md",sourceDirName:"build-on-morph/sdk/type-aliases",slug:"/build-on-morph/sdk/type-aliases/ProviderLike",permalink:"/docs/build-on-morph/sdk/type-aliases/ProviderLike",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/type-aliases/ProviderLike.md",tags:[],version:"current",frontMatter:{}},c={},l=[{value:"Source",id:"source",level:2}];function a(e){const r={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,n.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,s.jsx)(r.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,s.jsx)(r.strong,{children:"Docs"})]}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / ProviderLike"]}),"\n",(0,s.jsx)(r.h1,{id:"type-alias-providerlike",children:"Type alias: ProviderLike"}),"\n",(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"ProviderLike"}),": ",(0,s.jsx)(r.code,{children:"string"})," | ",(0,s.jsx)(r.code,{children:"Provider"})]}),"\n"]}),"\n",(0,s.jsx)(r.p,{children:"Stuff that can be coerced into a provider."}),"\n",(0,s.jsx)(r.h2,{id:"source",children:"Source"}),"\n",(0,s.jsx)(r.p,{children:"src/interfaces/types.ts:376"})]})}function h(e={}){const{wrapper:r}={...(0,n.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},2333:(e,r,o)=>{o.d(r,{R:()=>i,x:()=>d});var s=o(9474);const n={},t=s.createContext(n);function i(e){const r=s.useContext(t);return s.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function d(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),s.createElement(t.Provider,{value:r},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[1508],{5356:(e,r,o)=>{o.r(r),o.d(r,{assets:()=>c,contentTitle:()=>i,default:()=>h,frontMatter:()=>t,metadata:()=>d,toc:()=>l});var s=o(6070),n=o(1582);const t={},i="Type alias: ProviderLike",d={id:"build-on-morph/sdk/type-aliases/ProviderLike",title:"ProviderLike",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/type-aliases/ProviderLike.md",sourceDirName:"build-on-morph/sdk/type-aliases",slug:"/build-on-morph/sdk/type-aliases/ProviderLike",permalink:"/docs/build-on-morph/sdk/type-aliases/ProviderLike",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/type-aliases/ProviderLike.md",tags:[],version:"current",frontMatter:{}},c={},l=[{value:"Source",id:"source",level:2}];function a(e){const r={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,n.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,s.jsx)(r.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,s.jsx)(r.strong,{children:"Docs"})]}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / ProviderLike"]}),"\n",(0,s.jsx)(r.h1,{id:"type-alias-providerlike",children:"Type alias: ProviderLike"}),"\n",(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"ProviderLike"}),": ",(0,s.jsx)(r.code,{children:"string"})," | ",(0,s.jsx)(r.code,{children:"Provider"})]}),"\n"]}),"\n",(0,s.jsx)(r.p,{children:"Stuff that can be coerced into a provider."}),"\n",(0,s.jsx)(r.h2,{id:"source",children:"Source"}),"\n",(0,s.jsx)(r.p,{children:"src/interfaces/types.ts:376"})]})}function h(e={}){const{wrapper:r}={...(0,n.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},1582:(e,r,o)=>{o.d(r,{R:()=>i,x:()=>d});var s=o(758);const n={},t=s.createContext(n);function i(e){const r=s.useContext(t);return s.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function d(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),s.createElement(t.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/82419dfd.11312935.js b/build/assets/js/82419dfd.11312935.js new file mode 100644 index 000000000..7d6b772b7 --- /dev/null +++ b/build/assets/js/82419dfd.11312935.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[2061],{6825:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>p,frontMatter:()=>n,metadata:()=>c,toc:()=>d});var o=r(6070),i=r(1582),s=r(1601);const n={title:"Welcome to Morph",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},a=void 0,c={id:"about-morph/user-navigation-page",title:"Welcome to Morph",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/about-morph/0-user-navigation-page.md",sourceDirName:"about-morph",slug:"/about-morph/user-navigation-page",permalink:"/docs/about-morph/user-navigation-page",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/about-morph/0-user-navigation-page.md",tags:[],version:"current",sidebarPosition:0,frontMatter:{title:"Welcome to Morph",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",next:{title:"Overview",permalink:"/docs/about-morph/overview-of-morph"}},l={},d=[{value:"What is Morph?",id:"what-is-morph",level:3},{value:"Getting Started",id:"getting-started",level:3},{value:"Engage in Our Ecosystem",id:"engage-in-our-ecosystem",level:3},{value:"Explore and Connect",id:"explore-and-connect",level:3}];function h(e){const t={a:"a",h3:"h3",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(t.p,{children:["We\u2019re thrilled to have you here, exploring the world of Morph. If you\u2019re a developer looking for technical documentation, head over to our ",(0,o.jsx)(t.a,{href:"/docs/build-on-morph/developer-navigation-page",children:"For Developers section"}),". But if you\u2019re here to understand what Morph is all about, you\u2019re in the right place!"]}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.img,{alt:"userpage",src:r(9516).A+"",width:"4000",height:"2000"})}),"\n",(0,o.jsx)(t.h3,{id:"what-is-morph",children:"What is Morph?"}),"\n",(0,o.jsx)(t.p,{children:"Morph is a cutting-edge Layer 2 solution built on Ethereum, combining the best of optimistic rollups and zk technology. This makes us scalable, secure, and perfect for everyday applications. Our mission is to build the first blockchain for consumers, where user-friendly applications integrate seamlessly into everyday life, becoming indispensable utilities. We prioritize enabling blockchain applications that enhance daily experiences over chasing trivial technical milestones. Our focus is on creating meaningful, practical solutions that transform blockchain technology into core aspects of daily life"}),"\n",(0,o.jsx)(t.h3,{id:"getting-started",children:"Getting Started"}),"\n",(0,o.jsx)(t.p,{children:"To help you navigate through our resources, here\u2019s a quick guide:"}),"\n",(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.strong,{children:"Introductory Concepts"}),": Get a general understanding of Morph, including what makes it unique, our vision and mission, key concepts, and a look at our roadmap. This section will help you grasp the basics and understand the foundation of Morph."]}),"\n",(0,o.jsxs)(s.A,{className:"md:grid-cols-2 xl:grid-cols-3",children:[(0,o.jsx)(s.Z,{href:"/docs/about-morph/morphs-vision-and-mission",icon:"/img/cards/users.svg",text:"Morph's Vision and Mission"}),(0,o.jsx)(s.Z,{href:"/docs/about-morph/morphs-architecture",icon:"/img/cards/research.svg",text:"Morph's Architecture"}),(0,o.jsx)(s.Z,{href:"/docs/about-morph/roadmap",icon:"/img/cards/guide.svg",text:"Roadmap"})]}),"\n",(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.strong,{children:"Step-by-Step Guides"}),": Follow these practical tutorials for setting up your wallet, using the faucet, bridging assets, and exploring the Morph ecosystem. These guides are perfect for hands-on learning and getting started with Morph."]}),"\n",(0,o.jsxs)(s.A,{className:"md:grid-cols-2 xl:grid-cols-3",children:[(0,o.jsx)(s.Z,{href:"/docs/quick-start/wallet-setup",icon:"/img/cards/wallet.svg",text:"Wallet Setup"}),(0,o.jsx)(s.Z,{href:"/docs/quick-start/wallet-setup",icon:"./img/cards/faucet.svg",text:"Faucet"}),(0,o.jsx)(s.Z,{href:"/docs/quick-start/wallet-setup",icon:"/img/cards/bridge.svg",text:"Bridge"})]}),"\n",(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.strong,{children:"Links and Tools"}),": Access useful tools such as the Morph Holesky Explorer and the official bridge. This section provides all the necessary links and resources to interact with and explore the Morph network effectively."]}),"\n",(0,o.jsxs)(s.A,{className:"md:grid-cols-2 xl:grid-cols-3",children:[(0,o.jsx)(s.Z,{href:"https://bridge.morphl2.io/",icon:"./img/cards/bridge.svg",text:"Morph Bridge"}),(0,o.jsx)(s.Z,{href:"https://explorer.morphl2.io/",icon:"/img/cards/guide.svg",text:"Morph Explorer"}),(0,o.jsx)(s.Z,{href:"https://morphfaucet.com",icon:"/img/cards/faucet.svg",text:"Morph Faucet"})]}),"\n",(0,o.jsx)(t.h3,{id:"engage-in-our-ecosystem",children:"Engage in Our Ecosystem"}),"\n",(0,o.jsx)(t.p,{children:"Want to skip most of the reading and get started with exploring more right away? These are the guides that will get you right into the action:"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.strong,{children:"Wallet Setup"}),": Learn how to set up your wallet to interact with Morph."]}),"\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.strong,{children:"Using the Faucet"}),": Get test tokens to start experimenting on our testnet."]}),"\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.strong,{children:"Bridging Assets"}),": Understand how to bridge assets between Morph and Ethereum."]}),"\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.strong,{children:"Exploring Morph Zoo"}),": Dive into the diverse range of dApps and projects in the Morph ecosystem."]}),"\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.strong,{children:"Morph Holesky Explorer"}),": Use our explorer to track transactions and explore the blockchain."]}),"\n"]}),"\n",(0,o.jsx)(t.h3,{id:"explore-and-connect",children:"Explore and Connect"}),"\n",(0,o.jsxs)(t.p,{children:["We believe in building a vibrant community around Morph. Join us on ",(0,o.jsx)(t.a,{href:"https://discord.com/invite/MorphLayer",children:"Discord"})," to engage with other users and follow us on ",(0,o.jsx)(t.a,{href:"https://x.com/MorphLayer",children:"Twitter"})," to stay updated with our latest news and developments."]})]})}function p(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(h,{...e})}):h(e)}},1601:(e,t,r)=>{r.d(t,{A:()=>c,Z:()=>l});var o=r(7500),i=r.n(o),s=r(7838),n=r(3958),a=r(6070);const c=e=>{let{className:t,children:r}=e;return(0,a.jsx)("div",{className:"flex gap-4 mb-8 grid "+t,children:r})},l=e=>{let{className:t,href:r,icon:o,darkIcon:c,text:l,children:d}=e;const{withBaseUrl:h}=(0,s.h)(),p={light:h(o),dark:h(c??o)};return(0,a.jsxs)("a",{href:r,target:r?.startsWith("http")?"_blank":"_self",className:i()("no-underline items-center hover:no-underline bg-card-background cursor-pointer rounded-[4px] text-card-text border border-solid border-card-border py-5 px-4 flex flex-row",{"hover:border-[#14A800] hover:text-brand":r}),children:[(0,a.jsx)(n.A,{className:i()("w-6 h-6"),alt:o,sources:p}),(0,a.jsx)("span",{className:"ml-2 text-[16px] leading-[20px]",children:l})]})}},9516:(e,t,r)=>{r.d(t,{A:()=>o});const o=r.p+"assets/images/userpage-dd6c915f303c8e17ee4c99d625ca9fd6.png"},1582:(e,t,r)=>{r.d(t,{R:()=>n,x:()=>a});var o=r(758);const i={},s=o.createContext(i);function n(e){const t=o.useContext(s);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:n(e.components),o.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/82419dfd.f69d5af3.js b/build/assets/js/82419dfd.f69d5af3.js deleted file mode 100644 index 14803eaa0..000000000 --- a/build/assets/js/82419dfd.f69d5af3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[2061],{2847:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>d,frontMatter:()=>i,metadata:()=>a,toc:()=>c});var n=o(3274),r=o(2333);const i={title:"Welcome to Morph",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},s=void 0,a={id:"about-morph/user-navigation-page",title:"Welcome to Morph",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/about-morph/0-user-navigation-page.md",sourceDirName:"about-morph",slug:"/about-morph/user-navigation-page",permalink:"/docs/about-morph/user-navigation-page",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/about-morph/0-user-navigation-page.md",tags:[],version:"current",sidebarPosition:0,frontMatter:{title:"Welcome to Morph",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",next:{title:"Overview",permalink:"/docs/about-morph/overview-of-morph"}},l={},c=[{value:"What is Morph?",id:"what-is-morph",level:3},{value:"Getting Started",id:"getting-started",level:3},{value:"Engage in Our Ecosystem",id:"engage-in-our-ecosystem",level:3},{value:"Explore and Connect",id:"explore-and-connect",level:3}];function h(e){const t={a:"a",h3:"h3",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(t.p,{children:["We\u2019re thrilled to have you here, exploring the world of Morph. If you\u2019re a developer looking for technical documentation, head over to our ",(0,n.jsx)(t.a,{href:"/docs/build-on-morph/developer-navigation-page",children:"For Developers section"}),". But if you\u2019re here to understand what Morph is all about, you\u2019re in the right place!"]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"userpage",src:o(416).A+"",width:"4000",height:"2000"})}),"\n",(0,n.jsx)(t.h3,{id:"what-is-morph",children:"What is Morph?"}),"\n",(0,n.jsx)(t.p,{children:"Morph is a cutting-edge Layer 2 solution built on Ethereum, combining the best of optimistic rollups and zk technology. This makes us scalable, secure, and perfect for everyday applications. Our mission is to build the first blockchain for consumers, where user-friendly applications integrate seamlessly into everyday life, becoming indispensable utilities. We prioritize enabling blockchain applications that enhance daily experiences over chasing trivial technical milestones. Our focus is on creating meaningful, practical solutions that transform blockchain technology into core aspects of daily life"}),"\n",(0,n.jsx)(t.h3,{id:"getting-started",children:"Getting Started"}),"\n",(0,n.jsx)(t.p,{children:"To help you navigate through our resources, here\u2019s a quick guide:"}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"Introductory Concepts"}),": Get a general understanding of Morph, including what makes it unique, our vision and mission, key concepts, and a look at our roadmap. This section will help you grasp the basics and understand the foundation of Morph."]}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"Step-by-Step Guides"}),": Follow these practical tutorials for setting up your wallet, using the faucet, bridging assets, and exploring the Morph ecosystem. These guides are perfect for hands-on learning and getting started with Morph."]}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"Links and Tools"}),": Access useful tools such as the Morph Holesky Explorer and the official bridge. This section provides all the necessary links and resources to interact with and explore the Morph network effectively."]}),"\n",(0,n.jsx)(t.h3,{id:"engage-in-our-ecosystem",children:"Engage in Our Ecosystem"}),"\n",(0,n.jsx)(t.p,{children:"Want to skip most of the reading and get started with exploring more right away? These are the guides that will get you right into the action:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.strong,{children:"Wallet Setup"}),": Learn how to set up your wallet to interact with Morph."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.strong,{children:"Using the Faucet"}),": Get test tokens to start experimenting on our testnet."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.strong,{children:"Bridging Assets"}),": Understand how to bridge assets between Morph and Ethereum."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.strong,{children:"Exploring Morph Zoo"}),": Dive into the diverse range of dApps and projects in the Morph ecosystem."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.strong,{children:"Morph Holesky Explorer"}),": Use our explorer to track transactions and explore the blockchain."]}),"\n"]}),"\n",(0,n.jsx)(t.h3,{id:"explore-and-connect",children:"Explore and Connect"}),"\n",(0,n.jsxs)(t.p,{children:["We believe in building a vibrant community around Morph. Join us on ",(0,n.jsx)(t.a,{href:"https://discord.com/invite/L2Morph",children:"Discord"})," to engage with other users and follow us on ",(0,n.jsx)(t.a,{href:"https://twitter.com/Morphl2",children:"Twitter"})," to stay updated with our latest news and developments."]})]})}function d(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},416:(e,t,o)=>{o.d(t,{A:()=>n});const n=o.p+"assets/images/userpage-dd6c915f303c8e17ee4c99d625ca9fd6.png"},2333:(e,t,o)=>{o.d(t,{R:()=>s,x:()=>a});var n=o(9474);const r={},i=n.createContext(r);function s(e){const t=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),n.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/829b4b9b.52726404.js b/build/assets/js/829b4b9b.d5f25fd7.js similarity index 79% rename from build/assets/js/829b4b9b.52726404.js rename to build/assets/js/829b4b9b.d5f25fd7.js index 9b1756b9d..f597c2896 100644 --- a/build/assets/js/829b4b9b.52726404.js +++ b/build/assets/js/829b4b9b.d5f25fd7.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[3427],{8836:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>l,contentTitle:()=>c,default:()=>h,frontMatter:()=>t,metadata:()=>d,toc:()=>i});var o=n(3274),r=n(2333);const t={},c="Variable: DEFAULT_L2_CONTRACT_ADDRESSES",d={id:"build-on-morph/sdk/variables/DEFAULT_L2_CONTRACT_ADDRESSES",title:"DEFAULT_L2_CONTRACT_ADDRESSES",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/variables/DEFAULT_L2_CONTRACT_ADDRESSES.md",sourceDirName:"build-on-morph/sdk/variables",slug:"/build-on-morph/sdk/variables/DEFAULT_L2_CONTRACT_ADDRESSES",permalink:"/docs/build-on-morph/sdk/variables/DEFAULT_L2_CONTRACT_ADDRESSES",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/variables/DEFAULT_L2_CONTRACT_ADDRESSES.md",tags:[],version:"current",frontMatter:{}},l={},i=[{value:"Source",id:"source",level:2}];function a(e){const s={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,r.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,o.jsx)(s.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,o.jsx)(s.strong,{children:"Docs"})]}),"\n",(0,o.jsx)(s.hr,{}),"\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / DEFAULT_L2_CONTRACT_ADDRESSES"]}),"\n",(0,o.jsx)(s.h1,{id:"variable-default_l2_contract_addresses",children:"Variable: DEFAULT_L2_CONTRACT_ADDRESSES"}),"\n",(0,o.jsxs)(s.blockquote,{children:["\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.code,{children:"const"})," ",(0,o.jsx)(s.strong,{children:"DEFAULT_L2_CONTRACT_ADDRESSES"}),": ",(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/OEL2ContractsLike",children:(0,o.jsx)(s.code,{children:"OEL2ContractsLike"})})]}),"\n"]}),"\n",(0,o.jsx)(s.p,{children:"Full list of default L2 contract addresses."}),"\n",(0,o.jsx)(s.h2,{id:"source",children:"Source"}),"\n",(0,o.jsx)(s.p,{children:"src/utils/chain-constants.ts:37"})]})}function h(e={}){const{wrapper:s}={...(0,r.R)(),...e.components};return s?(0,o.jsx)(s,{...e,children:(0,o.jsx)(a,{...e})}):a(e)}},2333:(e,s,n)=>{n.d(s,{R:()=>c,x:()=>d});var o=n(9474);const r={},t=o.createContext(r);function c(e){const s=o.useContext(t);return o.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function d(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:c(e.components),o.createElement(t.Provider,{value:s},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[3427],{7706:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>l,contentTitle:()=>c,default:()=>h,frontMatter:()=>t,metadata:()=>d,toc:()=>i});var o=n(6070),r=n(1582);const t={},c="Variable: DEFAULT_L2_CONTRACT_ADDRESSES",d={id:"build-on-morph/sdk/variables/DEFAULT_L2_CONTRACT_ADDRESSES",title:"DEFAULT_L2_CONTRACT_ADDRESSES",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/variables/DEFAULT_L2_CONTRACT_ADDRESSES.md",sourceDirName:"build-on-morph/sdk/variables",slug:"/build-on-morph/sdk/variables/DEFAULT_L2_CONTRACT_ADDRESSES",permalink:"/docs/build-on-morph/sdk/variables/DEFAULT_L2_CONTRACT_ADDRESSES",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/variables/DEFAULT_L2_CONTRACT_ADDRESSES.md",tags:[],version:"current",frontMatter:{}},l={},i=[{value:"Source",id:"source",level:2}];function a(e){const s={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,r.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,o.jsx)(s.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,o.jsx)(s.strong,{children:"Docs"})]}),"\n",(0,o.jsx)(s.hr,{}),"\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / DEFAULT_L2_CONTRACT_ADDRESSES"]}),"\n",(0,o.jsx)(s.h1,{id:"variable-default_l2_contract_addresses",children:"Variable: DEFAULT_L2_CONTRACT_ADDRESSES"}),"\n",(0,o.jsxs)(s.blockquote,{children:["\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.code,{children:"const"})," ",(0,o.jsx)(s.strong,{children:"DEFAULT_L2_CONTRACT_ADDRESSES"}),": ",(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/OEL2ContractsLike",children:(0,o.jsx)(s.code,{children:"OEL2ContractsLike"})})]}),"\n"]}),"\n",(0,o.jsx)(s.p,{children:"Full list of default L2 contract addresses."}),"\n",(0,o.jsx)(s.h2,{id:"source",children:"Source"}),"\n",(0,o.jsx)(s.p,{children:"src/utils/chain-constants.ts:37"})]})}function h(e={}){const{wrapper:s}={...(0,r.R)(),...e.components};return s?(0,o.jsx)(s,{...e,children:(0,o.jsx)(a,{...e})}):a(e)}},1582:(e,s,n)=>{n.d(s,{R:()=>c,x:()=>d});var o=n(758);const r={},t=o.createContext(r);function c(e){const s=o.useContext(t);return o.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function d(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:c(e.components),o.createElement(t.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/829cd294.d14b23ab.js b/build/assets/js/829cd294.d14b23ab.js new file mode 100644 index 000000000..58e481434 --- /dev/null +++ b/build/assets/js/829cd294.d14b23ab.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[9248],{164:(e,o,r)=>{r.r(o),r.d(o,{assets:()=>d,contentTitle:()=>i,default:()=>p,frontMatter:()=>n,metadata:()=>c,toc:()=>l});var s=r(6070),t=r(1582);const n={title:"RPC Services",lang:"en-US"},i=void 0,c={id:"build-on-morph/developer-resources/use-ecosystem-developer-tools/rpc-services",title:"RPC Services",description:"Quicknode",source:"@site/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/2-rpc-services.md",sourceDirName:"build-on-morph/developer-resources/use-ecosystem-developer-tools",slug:"/build-on-morph/developer-resources/use-ecosystem-developer-tools/rpc-services",permalink:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/rpc-services",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/2-rpc-services.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{title:"RPC Services",lang:"en-US"},sidebar:"DeveloperSidebar",previous:{title:"Safe Multi-Signature Wallet",permalink:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/safe-multi-signature-wallet"},next:{title:"Account Abstraction",permalink:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/account-abstraction"}},d={},l=[{value:"Quicknode",id:"quicknode",level:3},{value:"Tenderly",id:"tenderly",level:3}];function a(e){const o={a:"a",h3:"h3",img:"img",p:"p",...(0,t.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(o.h3,{id:"quicknode",children:"Quicknode"}),"\n",(0,s.jsx)(o.p,{children:"QuickNode is transforming blockchain infrastructure and tooling by simplifying web3 development and providing high-performance access to Morph."}),"\n",(0,s.jsx)(o.p,{children:"Developers in the Morph ecosystem are now eligible for free QuickNode credits/discounts!"}),"\n",(0,s.jsx)(o.p,{children:"Read more about what you can get here:"}),"\n",(0,s.jsx)(o.p,{children:(0,s.jsx)(o.a,{href:"https://quicknode.notion.site/QuickNode-Benefits-for-Morph-Developers-4baf42f78dd64f389a2405e61350a0a6",children:"Quicknode Partnership"})}),"\n",(0,s.jsx)(o.p,{children:(0,s.jsx)(o.img,{alt:"QuickNode",src:r(7231).A+"",width:"1440",height:"1845"})}),"\n",(0,s.jsx)(o.h3,{id:"tenderly",children:"Tenderly"}),"\n",(0,s.jsx)(o.p,{children:"Tenderly is a full-stack Web3 infrastructure \u2013 node RPC, dev environments & exploration tools."}),"\n",(0,s.jsxs)(o.p,{children:["Build & scale with ease. Get started ",(0,s.jsx)(o.a,{href:"https://blog.tenderly.co/building-dapps-on-morph-with-tenderly/",children:"here"})]}),"\n",(0,s.jsx)(o.p,{children:(0,s.jsx)(o.img,{alt:"tenderly",src:r(3615).A+"",width:"2558",height:"1590"})})]})}function p(e={}){const{wrapper:o}={...(0,t.R)(),...e.components};return o?(0,s.jsx)(o,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},7231:(e,o,r)=>{r.d(o,{A:()=>s});const s=r.p+"assets/images/quicknode-945411ff7555a71106ac7e989720c510.png"},3615:(e,o,r)=>{r.d(o,{A:()=>s});const s=r.p+"assets/images/tenderly-37aa9e647d64e8a05c58b91fa7c7786a.png"},1582:(e,o,r)=>{r.d(o,{R:()=>i,x:()=>c});var s=r(758);const t={},n=s.createContext(t);function i(e){const o=s.useContext(n);return s.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function c(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),s.createElement(n.Provider,{value:o},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/829cd294.ef34853e.js b/build/assets/js/829cd294.ef34853e.js deleted file mode 100644 index 7df92ecf5..000000000 --- a/build/assets/js/829cd294.ef34853e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[9248],{605:(e,o,s)=>{s.r(o),s.d(o,{assets:()=>d,contentTitle:()=>c,default:()=>p,frontMatter:()=>n,metadata:()=>i,toc:()=>l});var r=s(3274),t=s(2333);const n={title:"RPC Services",lang:"en-US"},c=void 0,i={id:"build-on-morph/developer-resources/use-ecosystem-developer-tools/rpc-services",title:"RPC Services",description:"Quicknode",source:"@site/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/2-rpc-services.md",sourceDirName:"build-on-morph/developer-resources/use-ecosystem-developer-tools",slug:"/build-on-morph/developer-resources/use-ecosystem-developer-tools/rpc-services",permalink:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/rpc-services",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/2-rpc-services.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{title:"RPC Services",lang:"en-US"},sidebar:"DeveloperSidebar",previous:{title:"Safe Multi-Signature Wallet",permalink:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/safe-multi-signature-wallet"},next:{title:"Account Abstraction",permalink:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/account-abstraction"}},d={},l=[{value:"Quicknode",id:"quicknode",level:3}];function u(e){const o={a:"a",h3:"h3",img:"img",p:"p",...(0,t.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(o.h3,{id:"quicknode",children:"Quicknode"}),"\n",(0,r.jsx)(o.p,{children:"QuickNode is transforming blockchain infrastructure and tooling by simplifying web3 development and providing high-performance access to Morph."}),"\n",(0,r.jsx)(o.p,{children:"Developers in the Morph ecosystem are now eligible for free QuickNode credits/discounts!"}),"\n",(0,r.jsx)(o.p,{children:"Read more about what you can get here:"}),"\n",(0,r.jsx)(o.p,{children:(0,r.jsx)(o.a,{href:"https://quicknode.notion.site/QuickNode-Benefits-for-Morph-Developers-4baf42f78dd64f389a2405e61350a0a6",children:"Quicknode Partnership"})}),"\n",(0,r.jsx)(o.p,{children:(0,r.jsx)(o.img,{alt:"QuickNode",src:s(7211).A+"",width:"1440",height:"1845"})})]})}function p(e={}){const{wrapper:o}={...(0,t.R)(),...e.components};return o?(0,r.jsx)(o,{...e,children:(0,r.jsx)(u,{...e})}):u(e)}},7211:(e,o,s)=>{s.d(o,{A:()=>r});const r=s.p+"assets/images/quicknode-945411ff7555a71106ac7e989720c510.png"},2333:(e,o,s)=>{s.d(o,{R:()=>c,x:()=>i});var r=s(9474);const t={},n=r.createContext(t);function c(e){const o=r.useContext(n);return r.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function i(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:c(e.components),r.createElement(n.Provider,{value:o},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/833a0690.57155aee.js b/build/assets/js/833a0690.57155aee.js new file mode 100644 index 000000000..833894ad8 --- /dev/null +++ b/build/assets/js/833a0690.57155aee.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[8237],{5629:(e,s,r)=>{r.r(s),r.d(s,{assets:()=>l,contentTitle:()=>o,default:()=>a,frontMatter:()=>d,metadata:()=>c,toc:()=>h});var n=r(6070),i=r(1582);const d={},o="Interface: CrossChainMessage",c={id:"build-on-morph/sdk/interfaces/CrossChainMessage",title:"CrossChainMessage",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/interfaces/CrossChainMessage.md",sourceDirName:"build-on-morph/sdk/interfaces",slug:"/build-on-morph/sdk/interfaces/CrossChainMessage",permalink:"/docs/build-on-morph/sdk/interfaces/CrossChainMessage",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/interfaces/CrossChainMessage.md",tags:[],version:"current",frontMatter:{}},l={},h=[{value:"Extends",id:"extends",level:2},{value:"Properties",id:"properties",level:2},{value:"blockNumber",id:"blocknumber",level:3},{value:"Source",id:"source",level:4},{value:"direction",id:"direction",level:3},{value:"Source",id:"source-1",level:4},{value:"logIndex",id:"logindex",level:3},{value:"Source",id:"source-2",level:4},{value:"message",id:"message",level:3},{value:"Inherited from",id:"inherited-from",level:4},{value:"Source",id:"source-3",level:4},{value:"messageNonce",id:"messagenonce",level:3},{value:"Inherited from",id:"inherited-from-1",level:4},{value:"Source",id:"source-4",level:4},{value:"minGasLimit",id:"mingaslimit",level:3},{value:"Inherited from",id:"inherited-from-2",level:4},{value:"Source",id:"source-5",level:4},{value:"sender",id:"sender",level:3},{value:"Inherited from",id:"inherited-from-3",level:4},{value:"Source",id:"source-6",level:4},{value:"target",id:"target",level:3},{value:"Inherited from",id:"inherited-from-4",level:4},{value:"Source",id:"source-7",level:4},{value:"transactionHash",id:"transactionhash",level:3},{value:"Source",id:"source-8",level:4},{value:"value",id:"value",level:3},{value:"Inherited from",id:"inherited-from-5",level:4},{value:"Source",id:"source-9",level:4}];function t(e){const s={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,n.jsx)(s.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,n.jsx)(s.strong,{children:"Docs"})]}),"\n",(0,n.jsx)(s.hr,{}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / CrossChainMessage"]}),"\n",(0,n.jsx)(s.h1,{id:"interface-crosschainmessage",children:"Interface: CrossChainMessage"}),"\n",(0,n.jsx)(s.p,{children:"Describes a message that is sent between L1 and L2. Direction determines where the message was\nsent from and where it's being sent to."}),"\n",(0,n.jsx)(s.h2,{id:"extends",children:"Extends"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage",children:(0,n.jsx)(s.code,{children:"CoreCrossChainMessage"})})}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"properties",children:"Properties"}),"\n",(0,n.jsx)(s.h3,{id:"blocknumber",children:"blockNumber"}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"blockNumber"}),": ",(0,n.jsx)(s.code,{children:"number"})]}),"\n"]}),"\n",(0,n.jsx)(s.h4,{id:"source",children:"Source"}),"\n",(0,n.jsx)(s.p,{children:"src/interfaces/types.ts:255"}),"\n",(0,n.jsx)(s.hr,{}),"\n",(0,n.jsx)(s.h3,{id:"direction",children:"direction"}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"direction"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/enumerations/MessageDirection",children:(0,n.jsx)(s.code,{children:"MessageDirection"})})]}),"\n"]}),"\n",(0,n.jsx)(s.h4,{id:"source-1",children:"Source"}),"\n",(0,n.jsx)(s.p,{children:"src/interfaces/types.ts:253"}),"\n",(0,n.jsx)(s.hr,{}),"\n",(0,n.jsx)(s.h3,{id:"logindex",children:"logIndex"}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"logIndex"}),": ",(0,n.jsx)(s.code,{children:"number"})]}),"\n"]}),"\n",(0,n.jsx)(s.h4,{id:"source-2",children:"Source"}),"\n",(0,n.jsx)(s.p,{children:"src/interfaces/types.ts:254"}),"\n",(0,n.jsx)(s.hr,{}),"\n",(0,n.jsx)(s.h3,{id:"message",children:"message"}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"message"}),": ",(0,n.jsx)(s.code,{children:"string"})]}),"\n"]}),"\n",(0,n.jsx)(s.h4,{id:"inherited-from",children:"Inherited from"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage",children:(0,n.jsx)(s.code,{children:"CoreCrossChainMessage"})}),".",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage#message",children:(0,n.jsx)(s.code,{children:"message"})})]}),"\n",(0,n.jsx)(s.h4,{id:"source-3",children:"Source"}),"\n",(0,n.jsx)(s.p,{children:"src/interfaces/types.ts:242"}),"\n",(0,n.jsx)(s.hr,{}),"\n",(0,n.jsx)(s.h3,{id:"messagenonce",children:"messageNonce"}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"messageNonce"}),": ",(0,n.jsx)(s.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,n.jsx)(s.h4,{id:"inherited-from-1",children:"Inherited from"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage",children:(0,n.jsx)(s.code,{children:"CoreCrossChainMessage"})}),".",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage#messagenonce",children:(0,n.jsx)(s.code,{children:"messageNonce"})})]}),"\n",(0,n.jsx)(s.h4,{id:"source-4",children:"Source"}),"\n",(0,n.jsx)(s.p,{children:"src/interfaces/types.ts:243"}),"\n",(0,n.jsx)(s.hr,{}),"\n",(0,n.jsx)(s.h3,{id:"mingaslimit",children:"minGasLimit"}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"minGasLimit"}),": ",(0,n.jsx)(s.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,n.jsx)(s.h4,{id:"inherited-from-2",children:"Inherited from"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage",children:(0,n.jsx)(s.code,{children:"CoreCrossChainMessage"})}),".",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage#mingaslimit",children:(0,n.jsx)(s.code,{children:"minGasLimit"})})]}),"\n",(0,n.jsx)(s.h4,{id:"source-5",children:"Source"}),"\n",(0,n.jsx)(s.p,{children:"src/interfaces/types.ts:245"}),"\n",(0,n.jsx)(s.hr,{}),"\n",(0,n.jsx)(s.h3,{id:"sender",children:"sender"}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"sender"}),": ",(0,n.jsx)(s.code,{children:"string"})]}),"\n"]}),"\n",(0,n.jsx)(s.h4,{id:"inherited-from-3",children:"Inherited from"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage",children:(0,n.jsx)(s.code,{children:"CoreCrossChainMessage"})}),".",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage#sender",children:(0,n.jsx)(s.code,{children:"sender"})})]}),"\n",(0,n.jsx)(s.h4,{id:"source-6",children:"Source"}),"\n",(0,n.jsx)(s.p,{children:"src/interfaces/types.ts:240"}),"\n",(0,n.jsx)(s.hr,{}),"\n",(0,n.jsx)(s.h3,{id:"target",children:"target"}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"target"}),": ",(0,n.jsx)(s.code,{children:"string"})]}),"\n"]}),"\n",(0,n.jsx)(s.h4,{id:"inherited-from-4",children:"Inherited from"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage",children:(0,n.jsx)(s.code,{children:"CoreCrossChainMessage"})}),".",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage#target",children:(0,n.jsx)(s.code,{children:"target"})})]}),"\n",(0,n.jsx)(s.h4,{id:"source-7",children:"Source"}),"\n",(0,n.jsx)(s.p,{children:"src/interfaces/types.ts:241"}),"\n",(0,n.jsx)(s.hr,{}),"\n",(0,n.jsx)(s.h3,{id:"transactionhash",children:"transactionHash"}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"transactionHash"}),": ",(0,n.jsx)(s.code,{children:"string"})]}),"\n"]}),"\n",(0,n.jsx)(s.h4,{id:"source-8",children:"Source"}),"\n",(0,n.jsx)(s.p,{children:"src/interfaces/types.ts:256"}),"\n",(0,n.jsx)(s.hr,{}),"\n",(0,n.jsx)(s.h3,{id:"value",children:"value"}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"value"}),": ",(0,n.jsx)(s.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,n.jsx)(s.h4,{id:"inherited-from-5",children:"Inherited from"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage",children:(0,n.jsx)(s.code,{children:"CoreCrossChainMessage"})}),".",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage#value",children:(0,n.jsx)(s.code,{children:"value"})})]}),"\n",(0,n.jsx)(s.h4,{id:"source-9",children:"Source"}),"\n",(0,n.jsx)(s.p,{children:"src/interfaces/types.ts:244"})]})}function a(e={}){const{wrapper:s}={...(0,i.R)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(t,{...e})}):t(e)}},1582:(e,s,r)=>{r.d(s,{R:()=>o,x:()=>c});var n=r(758);const i={},d=n.createContext(i);function o(e){const s=n.useContext(d);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),n.createElement(d.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/833a0690.c32e479c.js b/build/assets/js/833a0690.c32e479c.js deleted file mode 100644 index e104a4fd6..000000000 --- a/build/assets/js/833a0690.c32e479c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[8237],{535:(e,s,r)=>{r.r(s),r.d(s,{assets:()=>l,contentTitle:()=>o,default:()=>a,frontMatter:()=>d,metadata:()=>c,toc:()=>h});var n=r(3274),i=r(2333);const d={},o="Interface: CrossChainMessage",c={id:"build-on-morph/sdk/interfaces/CrossChainMessage",title:"CrossChainMessage",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/interfaces/CrossChainMessage.md",sourceDirName:"build-on-morph/sdk/interfaces",slug:"/build-on-morph/sdk/interfaces/CrossChainMessage",permalink:"/docs/build-on-morph/sdk/interfaces/CrossChainMessage",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/interfaces/CrossChainMessage.md",tags:[],version:"current",frontMatter:{}},l={},h=[{value:"Extends",id:"extends",level:2},{value:"Properties",id:"properties",level:2},{value:"blockNumber",id:"blocknumber",level:3},{value:"Source",id:"source",level:4},{value:"direction",id:"direction",level:3},{value:"Source",id:"source-1",level:4},{value:"logIndex",id:"logindex",level:3},{value:"Source",id:"source-2",level:4},{value:"message",id:"message",level:3},{value:"Inherited from",id:"inherited-from",level:4},{value:"Source",id:"source-3",level:4},{value:"messageNonce",id:"messagenonce",level:3},{value:"Inherited from",id:"inherited-from-1",level:4},{value:"Source",id:"source-4",level:4},{value:"minGasLimit",id:"mingaslimit",level:3},{value:"Inherited from",id:"inherited-from-2",level:4},{value:"Source",id:"source-5",level:4},{value:"sender",id:"sender",level:3},{value:"Inherited from",id:"inherited-from-3",level:4},{value:"Source",id:"source-6",level:4},{value:"target",id:"target",level:3},{value:"Inherited from",id:"inherited-from-4",level:4},{value:"Source",id:"source-7",level:4},{value:"transactionHash",id:"transactionhash",level:3},{value:"Source",id:"source-8",level:4},{value:"value",id:"value",level:3},{value:"Inherited from",id:"inherited-from-5",level:4},{value:"Source",id:"source-9",level:4}];function t(e){const s={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,n.jsx)(s.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,n.jsx)(s.strong,{children:"Docs"})]}),"\n",(0,n.jsx)(s.hr,{}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / CrossChainMessage"]}),"\n",(0,n.jsx)(s.h1,{id:"interface-crosschainmessage",children:"Interface: CrossChainMessage"}),"\n",(0,n.jsx)(s.p,{children:"Describes a message that is sent between L1 and L2. Direction determines where the message was\nsent from and where it's being sent to."}),"\n",(0,n.jsx)(s.h2,{id:"extends",children:"Extends"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage",children:(0,n.jsx)(s.code,{children:"CoreCrossChainMessage"})})}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"properties",children:"Properties"}),"\n",(0,n.jsx)(s.h3,{id:"blocknumber",children:"blockNumber"}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"blockNumber"}),": ",(0,n.jsx)(s.code,{children:"number"})]}),"\n"]}),"\n",(0,n.jsx)(s.h4,{id:"source",children:"Source"}),"\n",(0,n.jsx)(s.p,{children:"src/interfaces/types.ts:255"}),"\n",(0,n.jsx)(s.hr,{}),"\n",(0,n.jsx)(s.h3,{id:"direction",children:"direction"}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"direction"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/enumerations/MessageDirection",children:(0,n.jsx)(s.code,{children:"MessageDirection"})})]}),"\n"]}),"\n",(0,n.jsx)(s.h4,{id:"source-1",children:"Source"}),"\n",(0,n.jsx)(s.p,{children:"src/interfaces/types.ts:253"}),"\n",(0,n.jsx)(s.hr,{}),"\n",(0,n.jsx)(s.h3,{id:"logindex",children:"logIndex"}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"logIndex"}),": ",(0,n.jsx)(s.code,{children:"number"})]}),"\n"]}),"\n",(0,n.jsx)(s.h4,{id:"source-2",children:"Source"}),"\n",(0,n.jsx)(s.p,{children:"src/interfaces/types.ts:254"}),"\n",(0,n.jsx)(s.hr,{}),"\n",(0,n.jsx)(s.h3,{id:"message",children:"message"}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"message"}),": ",(0,n.jsx)(s.code,{children:"string"})]}),"\n"]}),"\n",(0,n.jsx)(s.h4,{id:"inherited-from",children:"Inherited from"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage",children:(0,n.jsx)(s.code,{children:"CoreCrossChainMessage"})}),".",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage#message",children:(0,n.jsx)(s.code,{children:"message"})})]}),"\n",(0,n.jsx)(s.h4,{id:"source-3",children:"Source"}),"\n",(0,n.jsx)(s.p,{children:"src/interfaces/types.ts:242"}),"\n",(0,n.jsx)(s.hr,{}),"\n",(0,n.jsx)(s.h3,{id:"messagenonce",children:"messageNonce"}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"messageNonce"}),": ",(0,n.jsx)(s.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,n.jsx)(s.h4,{id:"inherited-from-1",children:"Inherited from"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage",children:(0,n.jsx)(s.code,{children:"CoreCrossChainMessage"})}),".",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage#messagenonce",children:(0,n.jsx)(s.code,{children:"messageNonce"})})]}),"\n",(0,n.jsx)(s.h4,{id:"source-4",children:"Source"}),"\n",(0,n.jsx)(s.p,{children:"src/interfaces/types.ts:243"}),"\n",(0,n.jsx)(s.hr,{}),"\n",(0,n.jsx)(s.h3,{id:"mingaslimit",children:"minGasLimit"}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"minGasLimit"}),": ",(0,n.jsx)(s.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,n.jsx)(s.h4,{id:"inherited-from-2",children:"Inherited from"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage",children:(0,n.jsx)(s.code,{children:"CoreCrossChainMessage"})}),".",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage#mingaslimit",children:(0,n.jsx)(s.code,{children:"minGasLimit"})})]}),"\n",(0,n.jsx)(s.h4,{id:"source-5",children:"Source"}),"\n",(0,n.jsx)(s.p,{children:"src/interfaces/types.ts:245"}),"\n",(0,n.jsx)(s.hr,{}),"\n",(0,n.jsx)(s.h3,{id:"sender",children:"sender"}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"sender"}),": ",(0,n.jsx)(s.code,{children:"string"})]}),"\n"]}),"\n",(0,n.jsx)(s.h4,{id:"inherited-from-3",children:"Inherited from"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage",children:(0,n.jsx)(s.code,{children:"CoreCrossChainMessage"})}),".",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage#sender",children:(0,n.jsx)(s.code,{children:"sender"})})]}),"\n",(0,n.jsx)(s.h4,{id:"source-6",children:"Source"}),"\n",(0,n.jsx)(s.p,{children:"src/interfaces/types.ts:240"}),"\n",(0,n.jsx)(s.hr,{}),"\n",(0,n.jsx)(s.h3,{id:"target",children:"target"}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"target"}),": ",(0,n.jsx)(s.code,{children:"string"})]}),"\n"]}),"\n",(0,n.jsx)(s.h4,{id:"inherited-from-4",children:"Inherited from"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage",children:(0,n.jsx)(s.code,{children:"CoreCrossChainMessage"})}),".",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage#target",children:(0,n.jsx)(s.code,{children:"target"})})]}),"\n",(0,n.jsx)(s.h4,{id:"source-7",children:"Source"}),"\n",(0,n.jsx)(s.p,{children:"src/interfaces/types.ts:241"}),"\n",(0,n.jsx)(s.hr,{}),"\n",(0,n.jsx)(s.h3,{id:"transactionhash",children:"transactionHash"}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"transactionHash"}),": ",(0,n.jsx)(s.code,{children:"string"})]}),"\n"]}),"\n",(0,n.jsx)(s.h4,{id:"source-8",children:"Source"}),"\n",(0,n.jsx)(s.p,{children:"src/interfaces/types.ts:256"}),"\n",(0,n.jsx)(s.hr,{}),"\n",(0,n.jsx)(s.h3,{id:"value",children:"value"}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"value"}),": ",(0,n.jsx)(s.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,n.jsx)(s.h4,{id:"inherited-from-5",children:"Inherited from"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage",children:(0,n.jsx)(s.code,{children:"CoreCrossChainMessage"})}),".",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage#value",children:(0,n.jsx)(s.code,{children:"value"})})]}),"\n",(0,n.jsx)(s.h4,{id:"source-9",children:"Source"}),"\n",(0,n.jsx)(s.p,{children:"src/interfaces/types.ts:244"})]})}function a(e={}){const{wrapper:s}={...(0,i.R)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(t,{...e})}):t(e)}},2333:(e,s,r)=>{r.d(s,{R:()=>o,x:()=>c});var n=r(9474);const i={},d=n.createContext(i);function o(e){const s=n.useContext(d);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),n.createElement(d.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/8347fa88.ca8e39f6.js b/build/assets/js/8347fa88.ca8e39f6.js new file mode 100644 index 000000000..9d3df1a02 --- /dev/null +++ b/build/assets/js/8347fa88.ca8e39f6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[8752],{8547:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>i,default:()=>l,frontMatter:()=>s,metadata:()=>a,toc:()=>c});var o=t(6070),r=t(1582);const s={title:"Bridge between Morph and Ethereum",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},i=void 0,a={id:"build-on-morph/code-examples/bridge-between-morph-and-ethereum",title:"Bridge between Morph and Ethereum",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/build-on-morph/code-examples/2-bridge-between-morph-and-ethereum.md",sourceDirName:"build-on-morph/code-examples",slug:"/build-on-morph/code-examples/bridge-between-morph-and-ethereum",permalink:"/docs/build-on-morph/code-examples/bridge-between-morph-and-ethereum",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/code-examples/2-bridge-between-morph-and-ethereum.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{title:"Bridge between Morph and Ethereum",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"}},d={},c=[{value:"Bridge an ERC20 through custom gateway",id:"bridge-an-erc20-through-custom-gateway",level:2},{value:"Step 1: Launch a token on Holesky",id:"step-1-launch-a-token-on-holesky",level:2},{value:"Step 2: Launch the counterpart token on Morph Holesky testnet",id:"step-2-launch-the-counterpart-token-on-morph-holesky-testnet",level:2},{value:"Step 3: Add the token to the Morph Bridge",id:"step-3-add-the-token-to-the-morph-bridge",level:2},{value:"Step 4: Deposit tokens",id:"step-4-deposit-tokens",level:2},{value:"Step 5: Withdraw tokens",id:"step-5-withdraw-tokens",level:2},{value:"Send messages between Morph and Ethereum",id:"send-messages-between-morph-and-ethereum",level:2},{value:"Deploying the Contracts",id:"deploying-the-contracts",level:2},{value:"Target Smart Contract",id:"target-smart-contract",level:3},{value:"Operator Smart Contract",id:"operator-smart-contract",level:3},{value:"Calling a Cross-chain Function",id:"calling-a-cross-chain-function",level:2},{value:"Relay the Message when sending from L2 to L1",id:"relay-the-message-when-sending-from-l2-to-l1",level:3}];function h(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.h2,{id:"bridge-an-erc20-through-custom-gateway",children:"Bridge an ERC20 through custom gateway"}),"\n",(0,o.jsx)(n.h2,{id:"step-1-launch-a-token-on-holesky",children:"Step 1: Launch a token on Holesky"}),"\n",(0,o.jsx)(n.p,{children:"First, we need a token to bridge. There is no need for a particular ERC20 implementation in order for a token to be compatible with L2. If you already have a token, feel free to skip this step. If you want to deploy a new token, use the following contract of a simple ERC20 token that mints 1 million tokens to the deployer when launched."}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-solidity",children:'// SPDX-License-Identifier: MIT\npragma solidity ^0.8.16;\n\nimport "@openzeppelin/contracts/token/ERC20/ERC20.sol";\n\ncontract L1Token is ERC20 {\n constructor() ERC20("My Token L1", "MTL1") {\n _mint(msg.sender, 1_000_000 ether);\n }\n}\n'})}),"\n",(0,o.jsx)(n.h2,{id:"step-2-launch-the-counterpart-token-on-morph-holesky-testnet",children:"Step 2: Launch the counterpart token on Morph Holesky testnet"}),"\n",(0,o.jsx)(n.p,{children:"Next, you'll launch a counterpart to this token on Morph, which will represent the original token on Holesky. This token can implement custom logic to match that of the L1 token or even add additional features beyond those of the L1 token."}),"\n",(0,o.jsx)(n.p,{children:"For this to work:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["The token must implement the ",(0,o.jsx)(n.code,{children:"IMorphStandardERC20"})," interface in order to be compatible with the bridge."]}),"\n",(0,o.jsxs)(n.li,{children:["The contract should provide the gateway address and the counterpart token addresses (the L1 token we just launched) under the ",(0,o.jsx)(n.code,{children:"gateway()"})," and ",(0,o.jsx)(n.code,{children:"counterpart()"})," functions. It should also allow the L2 gateway to call the token ",(0,o.jsx)(n.code,{children:"mint()"})," and ",(0,o.jsx)(n.code,{children:"burn()"})," functions, which are called when a token is deposited and withdrawn."]}),"\n"]}),"\n",(0,o.jsxs)(n.p,{children:["The following is a complete example of a token compatible with the bridge. To the constructor, you will pass the official Morph Custom Gateway address (",(0,o.jsx)(n.code,{children:"0x058dec71E53079F9ED053F3a0bBca877F6f3eAcf"}),") and the address of the token launched on Holesky."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-solidity",children:'// SPDX-License-Identifier: MIT\npragma solidity ^0.8.16;\n\nimport "@openzeppelin/contracts/token/ERC20/ERC20.sol";\nimport "@Morph-tech/contracts@0.1.0/libraries/token/IMorphERC20Extension.sol";\n\ncontract L2Token is ERC20, IMorphERC20Extension {\n // We store the gateway and the L1 token address to provide the gateway() and counterpart() functions which are needed from the Morph Standard ERC20 interface\n address _gateway;\n address _counterpart;\n\n // In the constructor we pass as parameter the Custom L2 Gateway and the L1 token address as parameters\n constructor(address gateway_, address counterpart_) ERC20("My Token L2", "MTL2") {\n _gateway = gateway_;\n _counterpart = counterpart_;\n }\n\n function gateway() public view returns (address) {\n return _gateway;\n }\n\n function counterpart() external view returns (address) {\n return _counterpart;\n }\n\n // We allow minting only to the Gateway so it can mint new tokens when bridged from L1\n function transferAndCall(address receiver, uint256 amount, bytes calldata data) external returns (bool success) {\n transfer(receiver, amount);\n data;\n return true;\n }\n\n // We allow minting only to the Gateway so it can mint new tokens when bridged from L1\n function mint(address _to, uint256 _amount) external onlyGateway {\n _mint(_to, _amount);\n }\n\n // Similarly to minting, the Gateway is able to burn tokens when bridged from L2 to L1\n function burn(address _from, uint256 _amount) external onlyGateway {\n _burn(_from, _amount);\n }\n\n modifier onlyGateway() {\n require(gateway() == _msgSender(), "Ownable: caller is not the gateway");\n _;\n }\n}\n'})}),"\n",(0,o.jsx)(n.h2,{id:"step-3-add-the-token-to-the-morph-bridge",children:"Step 3: Add the token to the Morph Bridge"}),"\n",(0,o.jsxs)(n.p,{children:["You need to contact the Morph team to add the token to ",(0,o.jsx)(n.code,{children:"L2CustomERC20Gateway"})," contract in Morph and ",(0,o.jsx)(n.code,{children:"L1CustomERC20Gateway"})," contract in L1. In addition, follow the instructions on the ",(0,o.jsx)(n.a,{href:"https://github.com/Morph-tech/token-list",children:"token lists"})," repository to add your token to the Morph canonical bridge frontend."]}),"\n",(0,o.jsx)(n.h2,{id:"step-4-deposit-tokens",children:"Step 4: Deposit tokens"}),"\n",(0,o.jsxs)(n.p,{children:["Once your token has been approved by the Morph team, you should be able to deposit tokens from L1. To do so, you must first approve the ",(0,o.jsx)(n.code,{children:"L1CustomGateway"})," contract address on Holesky (",(0,o.jsx)(n.code,{children:"0x31C994F2017E71b82fd4D8118F140c81215bbb37"}),"). Then, deposit tokens by calling the ",(0,o.jsx)(n.code,{children:"depositERC20"})," function from the ",(0,o.jsx)(n.code,{children:"L1CustomGateway"})," contract. This can be done using ",(0,o.jsx)(n.a,{href:"https://Morph.io/bridge",children:"our bridge UI"}),", ",(0,o.jsx)(n.a,{href:"https://Holesky.etherscan.io/address/0x31C994F2017E71b82fd4D8118F140c81215bbb37#writeProxyContract",children:"Etherscan Holesky"}),", or a smart contract."]}),"\n",(0,o.jsx)(n.h2,{id:"step-5-withdraw-tokens",children:"Step 5: Withdraw tokens"}),"\n",(0,o.jsxs)(n.p,{children:["You will follow similar steps to send tokens back from L2 to L1. First, approve the ",(0,o.jsx)(n.code,{children:"L2CustomGateway"})," address (",(0,o.jsx)(n.code,{children:"0x058dec71E53079F9ED053F3a0bBca877F6f3eAcf"}),") and then withdraw the tokens calling the ",(0,o.jsx)(n.code,{children:"withdrawERC20"})," from the ",(0,o.jsx)(n.code,{children:"L2CustomGateway"})," contract."]}),"\n",(0,o.jsx)(n.h2,{id:"send-messages-between-morph-and-ethereum",children:"Send messages between Morph and Ethereum"}),"\n",(0,o.jsx)(n.h2,{id:"deploying-the-contracts",children:"Deploying the Contracts"}),"\n",(0,o.jsx)(n.h3,{id:"target-smart-contract",children:"Target Smart Contract"}),"\n",(0,o.jsx)(n.p,{children:"Let\u2019s start by deploying the target smart contract. We will use the Greeter contract for this\nexample, but you can use any other contract. Deploy it to either Holesky or Morph. On Morph, L1\nand L2 use the same API, so it\u2019s up to you."}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-solidity",children:'// SPDX-License-Identifier: MIT\npragma solidity ^0.8.16;\n\n// This Greeter contract will be interacted with through the MorphMessenger across the bridge\ncontract Greeter {\n string public greeting = "Hello World!";\n\n // This function will be called by executeFunctionCrosschain on the Operator Smart Contract\n function setGreeting(string memory greeting_) public {\n greeting = greeting_;\n }\n}\n'})}),"\n",(0,o.jsxs)(n.p,{children:["We will now execute ",(0,o.jsx)(n.code,{children:"setGreeting"})," in a cross-chain way."]}),"\n",(0,o.jsx)(n.h3,{id:"operator-smart-contract",children:"Operator Smart Contract"}),"\n",(0,o.jsxs)(n.p,{children:["Switch to the other chain and deploy the ",(0,o.jsx)(n.code,{children:"GreeterOperator"}),". So, if you deployed the ",(0,o.jsx)(n.code,{children:"Greeter"})," contract on L1, deploy the ",(0,o.jsx)(n.code,{children:"GreeterOperator"})," on L2 or vice versa."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-solidity",children:'// SPDX-License-Identifier: MIT\npragma solidity ^0.8.16;\n\n// The Morph Messenger interface is the same on both L1 and L2, it allows sending cross-chain transactions\n// Let\'s import it directly from the Morph Contracts library\nimport "@Morph-tech/contracts@0.1.0/libraries/IMorphMessenger.sol";\n\n// The GreeterOperator is capable of executing the Greeter function through the bridge\ncontract GreeterOperator {\n // This function will execute setGreeting on the Greeter contract\n function executeFunctionCrosschain(\n address MorphMessengerAddress,\n address targetAddress,\n uint256 value,\n string memory greeting,\n uint32 gasLimit\n ) public payable {\n IMorphMessenger MorphMessenger = IMorphMessenger(MorphMessengerAddress);\n // sendMessage is able to execute any function by encoding the abi using the encodeWithSignature function\n MorphMessenger.sendMessage{ value: msg.value }(\n targetAddress,\n value,\n abi.encodeWithSignature("setGreeting(string)", greeting),\n gasLimit,\n msg.sender\n );\n }\n}\n'})}),"\n",(0,o.jsx)(n.h2,{id:"calling-a-cross-chain-function",children:"Calling a Cross-chain Function"}),"\n",(0,o.jsxs)(n.p,{children:["We pass the message by executing ",(0,o.jsx)(n.code,{children:"executeFunctionCrosschain"})," and passing the following parameters:"]}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"MorphMessengerAddress"}),": This will depend on where you deployed the ",(0,o.jsx)(n.code,{children:"GreeterOperator"})," contract.","\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["If you deployed it on Holesky use ",(0,o.jsx)(n.code,{children:"0x50c7d3e7f7c656493D1D76aaa1a836CedfCBB16A"}),". If you deployed on Morph Holesky use ",(0,o.jsx)(n.code,{children:"0xBa50f5340FB9F3Bd074bD638c9BE13eCB36E603d"}),"."]}),"\n"]}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"targetAddress"}),": The address of the ",(0,o.jsx)(n.code,{children:"Greeter"})," contract on the opposite chain."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"value"}),": In this case, it is ",(0,o.jsx)(n.code,{children:"0"})," because the ",(0,o.jsx)(n.code,{children:"setGreeting"}),"is not payable."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"greeting"}),": This is the parameter that will be sent through the message. Try passing ",(0,o.jsx)(n.code,{children:"\u201cThis message was cross-chain!\u201d"})]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"gasLimit"}),":","\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["If you are sending the message from L1 to L2, around ",(0,o.jsx)(n.code,{children:"1000000"})," gas limit should be more than enough. That said, if you set this too high, and ",(0,o.jsx)(n.code,{children:"msg.value"})," doesn't cover ",(0,o.jsx)(n.code,{children:"gasLimit"})," * ",(0,o.jsx)(n.code,{children:"baseFee"}),", the transaction will revert. If ",(0,o.jsx)(n.code,{children:"msg.value"})," is greater than the gas fee, the unused portion will be refunded."]}),"\n",(0,o.jsxs)(n.li,{children:["If you are sending the message from L2 to L1, pass ",(0,o.jsx)(n.code,{children:"0"}),", as the transaction will be completed by executing an additional transaction on L1."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(n.h3,{id:"relay-the-message-when-sending-from-l2-to-l1",children:"Relay the Message when sending from L2 to L1"}),"\n",(0,o.jsxs)(n.p,{children:['When a transaction is passed from L2 to L1, an additional "execute withdrawal transaction" must be sent on L1. To do this, you must call ',(0,o.jsx)(n.code,{children:"relayMessageWithProof"})," on the L1 Morph Messenger\ncontract from an EOA wallet."]}),"\n",(0,o.jsxs)(n.p,{children:["You can do this directly on ",(0,o.jsx)(n.a,{href:"https://Holesky.etherscan.io/address/0x50c7d3e7f7c656493d1d76aaa1a836cedfcbb16a#writeProxyContract#F3",children:"Etherscan Holesky"}),".\nTo do so, you will need to pass a Merkle inclusion proof for the bridged transaction and other parameters. You'll query these using the Morph Bridge API."]}),"\n","\n",(0,o.jsx)(n.p,{children:"We're finalizing the API specifics, but for now, fetch or curl the following endpoint:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",children:'curl "https://Holesky-api-bridge.Morph.io/api/claimable?page_size=10&page=1&address=GREETER_OPERATOR_ADDRESS_ON_L2"\n'})}),"\n",(0,o.jsx)(n.admonition,{type:"tip",children:(0,o.jsx)(n.p,{children:"This API was made for our Bridge UI. It is not yet finalized and may change in the future. We will update this guide\nwhen the API is finalized."})}),"\n",(0,o.jsx)(n.admonition,{title:"Anyone can execute your message",type:"tip",children:(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"relayMessageWithProof"})," is fully permissionless, so anyone can call it on your behalf if they're willing to pay the L1\ngas fees. This feature allows for additional support infrastructure, including tooling to automate this process for\napplications and users."]})}),"\n",(0,o.jsxs)(n.p,{children:["After executing and confirming the transaction on both L1 and L2, the new state of ",(0,o.jsx)(n.code,{children:"greeting"})," on the ",(0,o.jsx)(n.code,{children:"Greeter"})," contract should be ",(0,o.jsx)(n.code,{children:"\u201cThis message was cross-chain!\u201d"}),". Sending a message from one chain to the other should take around 20 minutes after the transactions are confirmed on the origin chain."]}),"\n",(0,o.jsx)(n.p,{children:"Congratulations, you now executed a transaction from one chain to the other using our native bridge!"})]})}function l(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(h,{...e})}):h(e)}},1582:(e,n,t)=>{t.d(n,{R:()=>i,x:()=>a});var o=t(758);const r={},s=o.createContext(r);function i(e){const n=o.useContext(s);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),o.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/8347fa88.e4b09989.js b/build/assets/js/8347fa88.e4b09989.js deleted file mode 100644 index 5d375b366..000000000 --- a/build/assets/js/8347fa88.e4b09989.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[8752],{361:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>i,default:()=>l,frontMatter:()=>s,metadata:()=>a,toc:()=>c});var o=t(3274),r=t(2333);const s={title:"Bridge between Morph and Ethereum",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},i=void 0,a={id:"build-on-morph/code-examples/bridge-between-morph-and-ethereum",title:"Bridge between Morph and Ethereum",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/build-on-morph/code-examples/2-bridge-between-morph-and-ethereum.md",sourceDirName:"build-on-morph/code-examples",slug:"/build-on-morph/code-examples/bridge-between-morph-and-ethereum",permalink:"/docs/build-on-morph/code-examples/bridge-between-morph-and-ethereum",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/code-examples/2-bridge-between-morph-and-ethereum.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{title:"Bridge between Morph and Ethereum",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"}},d={},c=[{value:"Bridge an ERC20 through custom gateway",id:"bridge-an-erc20-through-custom-gateway",level:2},{value:"Step 1: Launch a token on Holesky",id:"step-1-launch-a-token-on-holesky",level:2},{value:"Step 2: Launch the counterpart token on Morph Holesky testnet",id:"step-2-launch-the-counterpart-token-on-morph-holesky-testnet",level:2},{value:"Step 3: Add the token to the Morph Bridge",id:"step-3-add-the-token-to-the-morph-bridge",level:2},{value:"Step 4: Deposit tokens",id:"step-4-deposit-tokens",level:2},{value:"Step 5: Withdraw tokens",id:"step-5-withdraw-tokens",level:2},{value:"Send messages between Morph and Ethereum",id:"send-messages-between-morph-and-ethereum",level:2},{value:"Deploying the Contracts",id:"deploying-the-contracts",level:2},{value:"Target Smart Contract",id:"target-smart-contract",level:3},{value:"Operator Smart Contract",id:"operator-smart-contract",level:3},{value:"Calling a Cross-chain Function",id:"calling-a-cross-chain-function",level:2},{value:"Relay the Message when sending from L2 to L1",id:"relay-the-message-when-sending-from-l2-to-l1",level:3}];function h(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.h2,{id:"bridge-an-erc20-through-custom-gateway",children:"Bridge an ERC20 through custom gateway"}),"\n",(0,o.jsx)(n.h2,{id:"step-1-launch-a-token-on-holesky",children:"Step 1: Launch a token on Holesky"}),"\n",(0,o.jsx)(n.p,{children:"First, we need a token to bridge. There is no need for a particular ERC20 implementation in order for a token to be compatible with L2. If you already have a token, feel free to skip this step. If you want to deploy a new token, use the following contract of a simple ERC20 token that mints 1 million tokens to the deployer when launched."}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-solidity",children:'// SPDX-License-Identifier: MIT\npragma solidity ^0.8.16;\n\nimport "@openzeppelin/contracts/token/ERC20/ERC20.sol";\n\ncontract L1Token is ERC20 {\n constructor() ERC20("My Token L1", "MTL1") {\n _mint(msg.sender, 1_000_000 ether);\n }\n}\n'})}),"\n",(0,o.jsx)(n.h2,{id:"step-2-launch-the-counterpart-token-on-morph-holesky-testnet",children:"Step 2: Launch the counterpart token on Morph Holesky testnet"}),"\n",(0,o.jsx)(n.p,{children:"Next, you'll launch a counterpart to this token on Morph, which will represent the original token on Holesky. This token can implement custom logic to match that of the L1 token or even add additional features beyond those of the L1 token."}),"\n",(0,o.jsx)(n.p,{children:"For this to work:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["The token must implement the ",(0,o.jsx)(n.code,{children:"IMorphStandardERC20"})," interface in order to be compatible with the bridge."]}),"\n",(0,o.jsxs)(n.li,{children:["The contract should provide the gateway address and the counterpart token addresses (the L1 token we just launched) under the ",(0,o.jsx)(n.code,{children:"gateway()"})," and ",(0,o.jsx)(n.code,{children:"counterpart()"})," functions. It should also allow the L2 gateway to call the token ",(0,o.jsx)(n.code,{children:"mint()"})," and ",(0,o.jsx)(n.code,{children:"burn()"})," functions, which are called when a token is deposited and withdrawn."]}),"\n"]}),"\n",(0,o.jsxs)(n.p,{children:["The following is a complete example of a token compatible with the bridge. To the constructor, you will pass the official Morph Custom Gateway address (",(0,o.jsx)(n.code,{children:"0x058dec71E53079F9ED053F3a0bBca877F6f3eAcf"}),") and the address of the token launched on Holesky."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-solidity",children:'// SPDX-License-Identifier: MIT\npragma solidity ^0.8.16;\n\nimport "@openzeppelin/contracts/token/ERC20/ERC20.sol";\nimport "@Morph-tech/contracts@0.1.0/libraries/token/IMorphERC20Extension.sol";\n\ncontract L2Token is ERC20, IMorphERC20Extension {\n // We store the gateway and the L1 token address to provide the gateway() and counterpart() functions which are needed from the Morph Standard ERC20 interface\n address _gateway;\n address _counterpart;\n\n // In the constructor we pass as parameter the Custom L2 Gateway and the L1 token address as parameters\n constructor(address gateway_, address counterpart_) ERC20("My Token L2", "MTL2") {\n _gateway = gateway_;\n _counterpart = counterpart_;\n }\n\n function gateway() public view returns (address) {\n return _gateway;\n }\n\n function counterpart() external view returns (address) {\n return _counterpart;\n }\n\n // We allow minting only to the Gateway so it can mint new tokens when bridged from L1\n function transferAndCall(address receiver, uint256 amount, bytes calldata data) external returns (bool success) {\n transfer(receiver, amount);\n data;\n return true;\n }\n\n // We allow minting only to the Gateway so it can mint new tokens when bridged from L1\n function mint(address _to, uint256 _amount) external onlyGateway {\n _mint(_to, _amount);\n }\n\n // Similarly to minting, the Gateway is able to burn tokens when bridged from L2 to L1\n function burn(address _from, uint256 _amount) external onlyGateway {\n _burn(_from, _amount);\n }\n\n modifier onlyGateway() {\n require(gateway() == _msgSender(), "Ownable: caller is not the gateway");\n _;\n }\n}\n'})}),"\n",(0,o.jsx)(n.h2,{id:"step-3-add-the-token-to-the-morph-bridge",children:"Step 3: Add the token to the Morph Bridge"}),"\n",(0,o.jsxs)(n.p,{children:["You need to contact the Morph team to add the token to ",(0,o.jsx)(n.code,{children:"L2CustomERC20Gateway"})," contract in Morph and ",(0,o.jsx)(n.code,{children:"L1CustomERC20Gateway"})," contract in L1. In addition, follow the instructions on the ",(0,o.jsx)(n.a,{href:"https://github.com/Morph-tech/token-list",children:"token lists"})," repository to add your token to the Morph official bridge frontend."]}),"\n",(0,o.jsx)(n.h2,{id:"step-4-deposit-tokens",children:"Step 4: Deposit tokens"}),"\n",(0,o.jsxs)(n.p,{children:["Once your token has been approved by the Morph team, you should be able to deposit tokens from L1. To do so, you must first approve the ",(0,o.jsx)(n.code,{children:"L1CustomGateway"})," contract address on Holesky (",(0,o.jsx)(n.code,{children:"0x31C994F2017E71b82fd4D8118F140c81215bbb37"}),"). Then, deposit tokens by calling the ",(0,o.jsx)(n.code,{children:"depositERC20"})," function from the ",(0,o.jsx)(n.code,{children:"L1CustomGateway"})," contract. This can be done using ",(0,o.jsx)(n.a,{href:"https://Morph.io/bridge",children:"our bridge UI"}),", ",(0,o.jsx)(n.a,{href:"https://Holesky.etherscan.io/address/0x31C994F2017E71b82fd4D8118F140c81215bbb37#writeProxyContract",children:"Etherscan Holesky"}),", or a smart contract."]}),"\n",(0,o.jsx)(n.h2,{id:"step-5-withdraw-tokens",children:"Step 5: Withdraw tokens"}),"\n",(0,o.jsxs)(n.p,{children:["You will follow similar steps to send tokens back from L2 to L1. First, approve the ",(0,o.jsx)(n.code,{children:"L2CustomGateway"})," address (",(0,o.jsx)(n.code,{children:"0x058dec71E53079F9ED053F3a0bBca877F6f3eAcf"}),") and then withdraw the tokens calling the ",(0,o.jsx)(n.code,{children:"withdrawERC20"})," from the ",(0,o.jsx)(n.code,{children:"L2CustomGateway"})," contract."]}),"\n",(0,o.jsx)(n.h2,{id:"send-messages-between-morph-and-ethereum",children:"Send messages between Morph and Ethereum"}),"\n",(0,o.jsx)(n.h2,{id:"deploying-the-contracts",children:"Deploying the Contracts"}),"\n",(0,o.jsx)(n.h3,{id:"target-smart-contract",children:"Target Smart Contract"}),"\n",(0,o.jsx)(n.p,{children:"Let\u2019s start by deploying the target smart contract. We will use the Greeter contract for this\nexample, but you can use any other contract. Deploy it to either Holesky or Morph. On Morph, L1\nand L2 use the same API, so it\u2019s up to you."}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-solidity",children:'// SPDX-License-Identifier: MIT\npragma solidity ^0.8.16;\n\n// This Greeter contract will be interacted with through the MorphMessenger across the bridge\ncontract Greeter {\n string public greeting = "Hello World!";\n\n // This function will be called by executeFunctionCrosschain on the Operator Smart Contract\n function setGreeting(string memory greeting_) public {\n greeting = greeting_;\n }\n}\n'})}),"\n",(0,o.jsxs)(n.p,{children:["We will now execute ",(0,o.jsx)(n.code,{children:"setGreeting"})," in a cross-chain way."]}),"\n",(0,o.jsx)(n.h3,{id:"operator-smart-contract",children:"Operator Smart Contract"}),"\n",(0,o.jsxs)(n.p,{children:["Switch to the other chain and deploy the ",(0,o.jsx)(n.code,{children:"GreeterOperator"}),". So, if you deployed the ",(0,o.jsx)(n.code,{children:"Greeter"})," contract on L1, deploy the ",(0,o.jsx)(n.code,{children:"GreeterOperator"})," on L2 or vice versa."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-solidity",children:'// SPDX-License-Identifier: MIT\npragma solidity ^0.8.16;\n\n// The Morph Messenger interface is the same on both L1 and L2, it allows sending cross-chain transactions\n// Let\'s import it directly from the Morph Contracts library\nimport "@Morph-tech/contracts@0.1.0/libraries/IMorphMessenger.sol";\n\n// The GreeterOperator is capable of executing the Greeter function through the bridge\ncontract GreeterOperator {\n // This function will execute setGreeting on the Greeter contract\n function executeFunctionCrosschain(\n address MorphMessengerAddress,\n address targetAddress,\n uint256 value,\n string memory greeting,\n uint32 gasLimit\n ) public payable {\n IMorphMessenger MorphMessenger = IMorphMessenger(MorphMessengerAddress);\n // sendMessage is able to execute any function by encoding the abi using the encodeWithSignature function\n MorphMessenger.sendMessage{ value: msg.value }(\n targetAddress,\n value,\n abi.encodeWithSignature("setGreeting(string)", greeting),\n gasLimit,\n msg.sender\n );\n }\n}\n'})}),"\n",(0,o.jsx)(n.h2,{id:"calling-a-cross-chain-function",children:"Calling a Cross-chain Function"}),"\n",(0,o.jsxs)(n.p,{children:["We pass the message by executing ",(0,o.jsx)(n.code,{children:"executeFunctionCrosschain"})," and passing the following parameters:"]}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"MorphMessengerAddress"}),": This will depend on where you deployed the ",(0,o.jsx)(n.code,{children:"GreeterOperator"})," contract.","\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["If you deployed it on Holesky use ",(0,o.jsx)(n.code,{children:"0x50c7d3e7f7c656493D1D76aaa1a836CedfCBB16A"}),". If you deployed on Morph Holesky use ",(0,o.jsx)(n.code,{children:"0xBa50f5340FB9F3Bd074bD638c9BE13eCB36E603d"}),"."]}),"\n"]}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"targetAddress"}),": The address of the ",(0,o.jsx)(n.code,{children:"Greeter"})," contract on the opposite chain."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"value"}),": In this case, it is ",(0,o.jsx)(n.code,{children:"0"})," because the ",(0,o.jsx)(n.code,{children:"setGreeting"}),"is not payable."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"greeting"}),": This is the parameter that will be sent through the message. Try passing ",(0,o.jsx)(n.code,{children:"\u201cThis message was cross-chain!\u201d"})]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"gasLimit"}),":","\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["If you are sending the message from L1 to L2, around ",(0,o.jsx)(n.code,{children:"1000000"})," gas limit should be more than enough. That said, if you set this too high, and ",(0,o.jsx)(n.code,{children:"msg.value"})," doesn't cover ",(0,o.jsx)(n.code,{children:"gasLimit"})," * ",(0,o.jsx)(n.code,{children:"baseFee"}),", the transaction will revert. If ",(0,o.jsx)(n.code,{children:"msg.value"})," is greater than the gas fee, the unused portion will be refunded."]}),"\n",(0,o.jsxs)(n.li,{children:["If you are sending the message from L2 to L1, pass ",(0,o.jsx)(n.code,{children:"0"}),", as the transaction will be completed by executing an additional transaction on L1."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(n.h3,{id:"relay-the-message-when-sending-from-l2-to-l1",children:"Relay the Message when sending from L2 to L1"}),"\n",(0,o.jsxs)(n.p,{children:['When a transaction is passed from L2 to L1, an additional "execute withdrawal transaction" must be sent on L1. To do this, you must call ',(0,o.jsx)(n.code,{children:"relayMessageWithProof"})," on the L1 Morph Messenger\ncontract from an EOA wallet."]}),"\n",(0,o.jsxs)(n.p,{children:["You can do this directly on ",(0,o.jsx)(n.a,{href:"https://Holesky.etherscan.io/address/0x50c7d3e7f7c656493d1d76aaa1a836cedfcbb16a#writeProxyContract#F3",children:"Etherscan Holesky"}),".\nTo do so, you will need to pass a Merkle inclusion proof for the bridged transaction and other parameters. You'll query these using the Morph Bridge API."]}),"\n","\n",(0,o.jsx)(n.p,{children:"We're finalizing the API specifics, but for now, fetch or curl the following endpoint:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",children:'curl "https://Holesky-api-bridge.Morph.io/api/claimable?page_size=10&page=1&address=GREETER_OPERATOR_ADDRESS_ON_L2"\n'})}),"\n",(0,o.jsx)(n.admonition,{type:"tip",children:(0,o.jsx)(n.p,{children:"This API was made for our Bridge UI. It is not yet finalized and may change in the future. We will update this guide\nwhen the API is finalized."})}),"\n",(0,o.jsx)(n.admonition,{title:"Anyone can execute your message",type:"tip",children:(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"relayMessageWithProof"})," is fully permissionless, so anyone can call it on your behalf if they're willing to pay the L1\ngas fees. This feature allows for additional support infrastructure, including tooling to automate this process for\napplications and users."]})}),"\n",(0,o.jsxs)(n.p,{children:["After executing and confirming the transaction on both L1 and L2, the new state of ",(0,o.jsx)(n.code,{children:"greeting"})," on the ",(0,o.jsx)(n.code,{children:"Greeter"})," contract should be ",(0,o.jsx)(n.code,{children:"\u201cThis message was cross-chain!\u201d"}),". Sending a message from one chain to the other should take around 20 minutes after the transactions are confirmed on the origin chain."]}),"\n",(0,o.jsx)(n.p,{children:"Congratulations, you now executed a transaction from one chain to the other using our native bridge!"})]})}function l(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(h,{...e})}):h(e)}},2333:(e,n,t)=>{t.d(n,{R:()=>i,x:()=>a});var o=t(9474);const r={},s=o.createContext(r);function i(e){const n=o.useContext(s);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),o.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/8589.ab857865.js b/build/assets/js/8589.ab857865.js deleted file mode 100644 index 68fc5360d..000000000 --- a/build/assets/js/8589.ab857865.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[8589],{8589:(e,t,r)=>{function n(e,t){var r=void 0;return function(){for(var n=arguments.length,o=new Array(n),i=0;i<n;i++)o[i]=arguments[i];r&&clearTimeout(r),r=setTimeout((function(){return e.apply(void 0,o)}),t)}}function o(e){return e!==Object(e)}function i(e,t){if(e===t)return!0;if(o(e)||o(t)||"function"==typeof e||"function"==typeof t)return e===t;if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var r=0,n=Object.keys(e);r<n.length;r++){var a=n[r];if(!(a in t))return!1;if(!i(e[a],t[a]))return!1}return!0}r.r(t),r.d(t,{DocSearchModal:()=>pn});var a=function(){};function c(e){var t=e.item,r=e.items;return{index:t.__autocomplete_indexName,items:[t],positions:[1+r.findIndex((function(e){return e.objectID===t.objectID}))],queryID:t.__autocomplete_queryID,algoliaSource:["autocomplete"]}}function l(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,c=[],l=!0,u=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=i.call(r)).done)&&(c.push(n.value),c.length!==t);l=!0);}catch(s){u=!0,o=s}finally{try{if(!l&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(u)throw o}}return c}}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return u(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return u(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var s=["items"],f=["items"];function m(e){return m="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},m(e)}function p(e){return function(e){if(Array.isArray(e))return v(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return v(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return v(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function v(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function d(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function y(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 h(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?y(Object(r),!0).forEach((function(t){b(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):y(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function b(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==m(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==m(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===m(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function g(e){return e.map((function(e){var t=e.items,r=d(e,s);return h(h({},r),{},{objectIDs:(null==t?void 0:t.map((function(e){return e.objectID})))||r.objectIDs})}))}function O(e){var t,r,n,o=(t=l((e.version||"").split(".").map(Number),2),r=t[0],n=t[1],r>=3||2===r&&n>=4||1===r&&n>=10);function i(t,r,n){if(o&&void 0!==n){var i=n[0].__autocomplete_algoliaCredentials,a={"X-Algolia-Application-Id":i.appId,"X-Algolia-API-Key":i.apiKey};e.apply(void 0,[t].concat(p(r),[{headers:a}]))}else e.apply(void 0,[t].concat(p(r)))}return{init:function(t,r){e("init",{appId:t,apiKey:r})},setUserToken:function(t){e("setUserToken",t)},clickedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];t.length>0&&i("clickedObjectIDsAfterSearch",g(t),t[0].items)},clickedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];t.length>0&&i("clickedObjectIDs",g(t),t[0].items)},clickedFilters:function(){for(var t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];r.length>0&&e.apply(void 0,["clickedFilters"].concat(r))},convertedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];t.length>0&&i("convertedObjectIDsAfterSearch",g(t),t[0].items)},convertedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];t.length>0&&i("convertedObjectIDs",g(t),t[0].items)},convertedFilters:function(){for(var t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];r.length>0&&e.apply(void 0,["convertedFilters"].concat(r))},viewedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];t.length>0&&t.reduce((function(e,t){var r=t.items,n=d(t,f);return[].concat(p(e),p(function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:20,r=[],n=0;n<e.objectIDs.length;n+=t)r.push(h(h({},e),{},{objectIDs:e.objectIDs.slice(n,n+t)}));return r}(h(h({},n),{},{objectIDs:(null==r?void 0:r.map((function(e){return e.objectID})))||n.objectIDs})).map((function(e){return{items:r,payload:e}}))))}),[]).forEach((function(e){var t=e.items;return i("viewedObjectIDs",[e.payload],t)}))},viewedFilters:function(){for(var t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];r.length>0&&e.apply(void 0,["viewedFilters"].concat(r))}}}function S(e){var t=e.items.reduce((function(e,t){var r;return e[t.__autocomplete_indexName]=(null!==(r=e[t.__autocomplete_indexName])&&void 0!==r?r:[]).concat(t),e}),{});return Object.keys(t).map((function(e){return{index:e,items:t[e],algoliaSource:["autocomplete"]}}))}function j(e){return e.objectID&&e.__autocomplete_indexName&&e.__autocomplete_queryID}function w(e){return w="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},w(e)}function E(e){return function(e){if(Array.isArray(e))return P(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return P(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return P(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function P(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function I(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 D(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?I(Object(r),!0).forEach((function(t){A(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):I(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function A(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==w(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==w(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===w(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var k="2.6.0",x="https://cdn.jsdelivr.net/npm/search-insights@".concat(k,"/dist/search-insights.min.js"),C=n((function(e){var t=e.onItemsChange,r=e.items,n=e.insights,o=e.state;t({insights:n,insightsEvents:S({items:r}).map((function(e){return D({eventName:"Items Viewed"},e)})),state:o})}),400);function _(e){var t=function(e){return D({onItemsChange:function(e){var t=e.insights,r=e.insightsEvents;t.viewedObjectIDs.apply(t,E(r.map((function(e){return D(D({},e),{},{algoliaSource:[].concat(E(e.algoliaSource||[]),["autocomplete-internal"])})}))))},onSelect:function(e){var t=e.insights,r=e.insightsEvents;t.clickedObjectIDsAfterSearch.apply(t,E(r.map((function(e){return D(D({},e),{},{algoliaSource:[].concat(E(e.algoliaSource||[]),["autocomplete-internal"])})}))))},onActive:a},e)}(e),r=t.insightsClient,o=t.onItemsChange,l=t.onSelect,u=t.onActive,s=r;r||function(e){if("undefined"!=typeof window)e({window:window})}((function(e){var t=e.window,r=t.AlgoliaAnalyticsObject||"aa";"string"==typeof r&&(s=t[r]),s||(t.AlgoliaAnalyticsObject=r,t[r]||(t[r]=function(){t[r].queue||(t[r].queue=[]);for(var e=arguments.length,n=new Array(e),o=0;o<e;o++)n[o]=arguments[o];t[r].queue.push(n)}),t[r].version=k,s=t[r],function(e){var t="[Autocomplete]: Could not load search-insights.js. Please load it manually following https://alg.li/insights-autocomplete";try{var r=e.document.createElement("script");r.async=!0,r.src=x,r.onerror=function(){console.error(t)},document.body.appendChild(r)}catch(n){console.error(t)}}(t))}));var f=O(s),m={current:[]},p=n((function(e){var t=e.state;if(t.isOpen){var r=t.collections.reduce((function(e,t){return[].concat(E(e),E(t.items))}),[]).filter(j);i(m.current.map((function(e){return e.objectID})),r.map((function(e){return e.objectID})))||(m.current=r,r.length>0&&C({onItemsChange:o,items:r,insights:f,state:t}))}}),0);return{name:"aa.algoliaInsightsPlugin",subscribe:function(e){var t=e.setContext,r=e.onSelect,n=e.onActive;s("addAlgoliaAgent","insights-plugin"),t({algoliaInsightsPlugin:{__algoliaSearchParameters:{clickAnalytics:!0},insights:f}}),r((function(e){var t=e.item,r=e.state,n=e.event;j(t)&&l({state:r,event:n,insights:f,item:t,insightsEvents:[D({eventName:"Item Selected"},c({item:t,items:m.current}))]})})),n((function(e){var t=e.item,r=e.state,n=e.event;j(t)&&u({state:r,event:n,insights:f,item:t,insightsEvents:[D({eventName:"Item Active"},c({item:t,items:m.current}))]})}))},onStateChange:function(e){var t=e.state;p({state:t})},__autocomplete_pluginOptions:e}}function N(e){return N="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},N(e)}function T(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 q(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==N(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==N(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===N(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function R(e,t,r){var n,o=t.initialState;return{getState:function(){return o},dispatch:function(n,i){var a=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?T(Object(r),!0).forEach((function(t){q(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):T(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({},o);o=e(o,{type:n,props:t,payload:i}),r({state:o,prevState:a})},pendingRequests:(n=[],{add:function(e){return n.push(e),e.finally((function(){n=n.filter((function(t){return t!==e}))}))},cancelAll:function(){n.forEach((function(e){return e.cancel()}))},isEmpty:function(){return 0===n.length}})}}function L(e){return e.reduce((function(e,t){return e.concat(t)}),[])}function M(e){return M="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},M(e)}function H(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 F(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?H(Object(r),!0).forEach((function(t){U(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):H(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function U(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==M(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==M(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===M(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function B(e){return 0===e.collections.length?0:e.collections.reduce((function(e,t){return e+t.items.length}),0)}var V=0;function K(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 $(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?K(Object(r),!0).forEach((function(t){J(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):K(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function J(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==z(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==z(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===z(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function z(e){return z="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},z(e)}function W(e){return W="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},W(e)}function Q(e){return function(e){if(Array.isArray(e))return Z(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return Z(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Z(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Z(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function G(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 X(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?G(Object(r),!0).forEach((function(t){Y(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):G(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Y(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==W(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==W(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===W(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function ee(e,t){var r,n="undefined"!=typeof window?window:{},o=e.plugins||[];return X(X({debug:!1,openOnFocus:!1,placeholder:"",autoFocus:!1,defaultActiveItemId:null,stallThreshold:300,insights:!1,environment:n,shouldPanelOpen:function(e){return B(e.state)>0},reshape:function(e){return e.sources}},e),{},{id:null!==(r=e.id)&&void 0!==r?r:"autocomplete-".concat(V++),plugins:o,initialState:X({activeItemId:null,query:"",completion:null,collections:[],isOpen:!1,status:"idle",context:{}},e.initialState),onStateChange:function(t){var r;null===(r=e.onStateChange)||void 0===r||r.call(e,t),o.forEach((function(e){var r;return null===(r=e.onStateChange)||void 0===r?void 0:r.call(e,t)}))},onSubmit:function(t){var r;null===(r=e.onSubmit)||void 0===r||r.call(e,t),o.forEach((function(e){var r;return null===(r=e.onSubmit)||void 0===r?void 0:r.call(e,t)}))},onReset:function(t){var r;null===(r=e.onReset)||void 0===r||r.call(e,t),o.forEach((function(e){var r;return null===(r=e.onReset)||void 0===r?void 0:r.call(e,t)}))},getSources:function(r){return Promise.all([].concat(Q(o.map((function(e){return e.getSources}))),[e.getSources]).filter(Boolean).map((function(e){return function(e,t){var r=[];return Promise.resolve(e(t)).then((function(e){return Array.isArray(e),Promise.all(e.filter((function(e){return Boolean(e)})).map((function(e){if(e.sourceId,r.includes(e.sourceId))throw new Error("[Autocomplete] The `sourceId` ".concat(JSON.stringify(e.sourceId)," is not unique."));r.push(e.sourceId);var t={getItemInputValue:function(e){return e.state.query},getItemUrl:function(){},onSelect:function(e){(0,e.setIsOpen)(!1)},onActive:a,onResolve:a};Object.keys(t).forEach((function(e){t[e].__default=!0}));var n=$($({},t),e);return Promise.resolve(n)})))}))}(e,r)}))).then((function(e){return L(e)})).then((function(e){return e.map((function(e){return X(X({},e),{},{onSelect:function(r){e.onSelect(r),t.forEach((function(e){var t;return null===(t=e.onSelect)||void 0===t?void 0:t.call(e,r)}))},onActive:function(r){e.onActive(r),t.forEach((function(e){var t;return null===(t=e.onActive)||void 0===t?void 0:t.call(e,r)}))},onResolve:function(r){e.onResolve(r),t.forEach((function(e){var t;return null===(t=e.onResolve)||void 0===t?void 0:t.call(e,r)}))}})}))}))},navigator:X({navigate:function(e){var t=e.itemUrl;n.location.assign(t)},navigateNewTab:function(e){var t=e.itemUrl,r=n.open(t,"_blank","noopener");null==r||r.focus()},navigateNewWindow:function(e){var t=e.itemUrl;n.open(t,"_blank","noopener")}},e.navigator)})}function te(e){return te="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},te(e)}function re(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 ne(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?re(Object(r),!0).forEach((function(t){oe(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):re(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function oe(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==te(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==te(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===te(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function ie(e){return ie="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ie(e)}function ae(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 ce(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ae(Object(r),!0).forEach((function(t){le(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ae(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function le(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==ie(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==ie(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===ie(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function ue(e){return function(e){if(Array.isArray(e))return se(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return se(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return se(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function se(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function fe(e){return Boolean(e.execute)}function me(e,t,r){if(o=e,Boolean(null==o?void 0:o.execute)){var n="algolia"===e.requesterId?Object.assign.apply(Object,[{}].concat(ue(Object.keys(r.context).map((function(e){var t;return null===(t=r.context[e])||void 0===t?void 0:t.__algoliaSearchParameters}))))):{};return ce(ce({},e),{},{requests:e.queries.map((function(r){return{query:"algolia"===e.requesterId?ce(ce({},r),{},{params:ce(ce({},n),r.params)}):r,sourceId:t,transformResponse:e.transformResponse}}))})}var o;return{items:e,sourceId:t}}function pe(e){var t=e.reduce((function(e,t){if(!fe(t))return e.push(t),e;var r=t.searchClient,n=t.execute,o=t.requesterId,i=t.requests,a=e.find((function(e){return fe(t)&&fe(e)&&e.searchClient===r&&Boolean(o)&&e.requesterId===o}));if(a){var c;(c=a.items).push.apply(c,ue(i))}else{var l={execute:n,requesterId:o,items:i,searchClient:r};e.push(l)}return e}),[]).map((function(e){if(!fe(e))return Promise.resolve(e);var t=e,r=t.execute,n=t.items;return r({searchClient:t.searchClient,requests:n})}));return Promise.all(t).then((function(e){return L(e)}))}function ve(e,t,r){return t.map((function(t){var n,o=e.filter((function(e){return e.sourceId===t.sourceId})),i=o.map((function(e){return e.items})),a=o[0].transformResponse,c=a?a({results:n=i,hits:n.map((function(e){return e.hits})).filter(Boolean),facetHits:n.map((function(e){var t;return null===(t=e.facetHits)||void 0===t?void 0:t.map((function(e){return{label:e.value,count:e.count,_highlightResult:{label:{value:e.highlighted}}}}))})).filter(Boolean)}):i;return t.onResolve({source:t,results:i,items:c,state:r.getState()}),Array.isArray(c),c.every(Boolean),'The `getItems` function from source "'.concat(t.sourceId,'" must return an array of items but returned ').concat(JSON.stringify(void 0),".\n\nDid you forget to return items?\n\nSee: https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/sources/#param-getitems"),{source:t,items:c}}))}function de(e,t){var r=t;return{then:function(t,n){return de(e.then(be(t,r,e),be(n,r,e)),r)},catch:function(t){return de(e.catch(be(t,r,e)),r)},finally:function(t){return t&&r.onCancelList.push(t),de(e.finally(be(t&&function(){return r.onCancelList=[],t()},r,e)),r)},cancel:function(){r.isCanceled=!0;var e=r.onCancelList;r.onCancelList=[],e.forEach((function(e){e()}))},isCanceled:function(){return!0===r.isCanceled}}}function ye(e){return de(new Promise((function(t,r){return e(t,r)})),{isCanceled:!1,onCancelList:[]})}function he(e){return de(e,{isCanceled:!1,onCancelList:[]})}function be(e,t,r){return e?function(r){return t.isCanceled?r:e(r)}:r}function ge(e){var t=function(e){var t=e.collections.map((function(e){return e.items.length})).reduce((function(e,t,r){var n=(e[r-1]||0)+t;return e.push(n),e}),[]).reduce((function(t,r){return r<=e.activeItemId?t+1:t}),0);return e.collections[t]}(e);if(!t)return null;var r=t.items[function(e){for(var t=e.state,r=e.collection,n=!1,o=0,i=0;!1===n;){var a=t.collections[o];if(a===r){n=!0;break}i+=a.items.length,o++}return t.activeItemId-i}({state:e,collection:t})],n=t.source;return{item:r,itemInputValue:n.getItemInputValue({item:r,state:e}),itemUrl:n.getItemUrl({item:r,state:e}),source:n}}function Oe(e){return Oe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Oe(e)}ye.resolve=function(e){return he(Promise.resolve(e))},ye.reject=function(e){return he(Promise.reject(e))};var Se=["event","nextState","props","query","refresh","store"];function je(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 we(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?je(Object(r),!0).forEach((function(t){Ee(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):je(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Ee(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==Oe(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==Oe(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===Oe(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Pe(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var Ie,De,Ae,ke=null,xe=(Ie=-1,De=-1,Ae=void 0,function(e){var t=++Ie;return Promise.resolve(e).then((function(e){return Ae&&t<De?Ae:(De=t,Ae=e,e)}))});function Ce(e){var t=e.event,r=e.nextState,n=void 0===r?{}:r,o=e.props,i=e.query,a=e.refresh,c=e.store,l=Pe(e,Se);ke&&o.environment.clearTimeout(ke);var u=l.setCollections,s=l.setIsOpen,f=l.setQuery,m=l.setActiveItemId,p=l.setStatus;if(f(i),m(o.defaultActiveItemId),!i&&!1===o.openOnFocus){var v,d=c.getState().collections.map((function(e){return we(we({},e),{},{items:[]})}));p("idle"),u(d),s(null!==(v=n.isOpen)&&void 0!==v?v:o.shouldPanelOpen({state:c.getState()}));var y=he(xe(d).then((function(){return Promise.resolve()})));return c.pendingRequests.add(y)}p("loading"),ke=o.environment.setTimeout((function(){p("stalled")}),o.stallThreshold);var h=he(xe(o.getSources(we({query:i,refresh:a,state:c.getState()},l)).then((function(e){return Promise.all(e.map((function(e){return Promise.resolve(e.getItems(we({query:i,refresh:a,state:c.getState()},l))).then((function(t){return me(t,e.sourceId,c.getState())}))}))).then(pe).then((function(t){return ve(t,e,c)})).then((function(e){return function(e){var t=e.collections,r=e.props,n=e.state,o=t.reduce((function(e,t){return ne(ne({},e),{},oe({},t.source.sourceId,ne(ne({},t.source),{},{getItems:function(){return L(t.items)}})))}),{}),i=r.plugins.reduce((function(e,t){return t.reshape?t.reshape(e):e}),{sourcesBySourceId:o,state:n}).sourcesBySourceId;return L(r.reshape({sourcesBySourceId:i,sources:Object.values(i),state:n})).filter(Boolean).map((function(e){return{source:e,items:e.getItems()}}))}({collections:e,props:o,state:c.getState()})}))})))).then((function(e){var r;p("idle"),u(e);var f=o.shouldPanelOpen({state:c.getState()});s(null!==(r=n.isOpen)&&void 0!==r?r:o.openOnFocus&&!i&&f||f);var m=ge(c.getState());if(null!==c.getState().activeItemId&&m){var v=m.item,d=m.itemInputValue,y=m.itemUrl,h=m.source;h.onActive(we({event:t,item:v,itemInputValue:d,itemUrl:y,refresh:a,source:h,state:c.getState()},l))}})).finally((function(){p("idle"),ke&&o.environment.clearTimeout(ke)}));return c.pendingRequests.add(h)}function _e(e){return _e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_e(e)}var Ne=["event","props","refresh","store"];function Te(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 qe(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Te(Object(r),!0).forEach((function(t){Re(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Te(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Re(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==_e(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==_e(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===_e(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Le(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var Me=/((gt|sm)-|galaxy nexus)|samsung[- ]|samsungbrowser/i;function He(e){return He="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},He(e)}var Fe=["props","refresh","store"],Ue=["inputElement","formElement","panelElement"],Be=["inputElement"],Ve=["inputElement","maxLength"],Ke=["sourceIndex"],$e=["sourceIndex"],Je=["item","source","sourceIndex"];function ze(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 We(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ze(Object(r),!0).forEach((function(t){Qe(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ze(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Qe(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==He(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==He(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===He(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Ze(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function Ge(e){var t=e.props,r=e.refresh,n=e.store,o=Ze(e,Fe),i=function(e,t){return void 0!==t?"".concat(e,"-").concat(t):e};return{getEnvironmentProps:function(e){var r=e.inputElement,o=e.formElement,i=e.panelElement;function a(e){!n.getState().isOpen&&n.pendingRequests.isEmpty()||e.target===r||!1===[o,i].some((function(t){return r=t,n=e.target,r===n||r.contains(n);var r,n}))&&(n.dispatch("blur",null),t.debug||n.pendingRequests.cancelAll())}return We({onTouchStart:a,onMouseDown:a,onTouchMove:function(e){!1!==n.getState().isOpen&&r===t.environment.document.activeElement&&e.target!==r&&r.blur()}},Ze(e,Ue))},getRootProps:function(e){return We({role:"combobox","aria-expanded":n.getState().isOpen,"aria-haspopup":"listbox","aria-owns":n.getState().isOpen?"".concat(t.id,"-list"):void 0,"aria-labelledby":"".concat(t.id,"-label")},e)},getFormProps:function(e){e.inputElement;return We({action:"",noValidate:!0,role:"search",onSubmit:function(i){var a;i.preventDefault(),t.onSubmit(We({event:i,refresh:r,state:n.getState()},o)),n.dispatch("submit",null),null===(a=e.inputElement)||void 0===a||a.blur()},onReset:function(i){var a;i.preventDefault(),t.onReset(We({event:i,refresh:r,state:n.getState()},o)),n.dispatch("reset",null),null===(a=e.inputElement)||void 0===a||a.focus()}},Ze(e,Be))},getLabelProps:function(e){var r=e||{},n=r.sourceIndex,o=Ze(r,Ke);return We({htmlFor:"".concat(i(t.id,n),"-input"),id:"".concat(i(t.id,n),"-label")},o)},getInputProps:function(e){var i;function c(e){(t.openOnFocus||Boolean(n.getState().query))&&Ce(We({event:e,props:t,query:n.getState().completion||n.getState().query,refresh:r,store:n},o)),n.dispatch("focus",null)}var l=e||{},u=(l.inputElement,l.maxLength),s=void 0===u?512:u,f=Ze(l,Ve),m=ge(n.getState()),p=function(e){return Boolean(e&&e.match(Me))}((null===(i=t.environment.navigator)||void 0===i?void 0:i.userAgent)||""),v=null!=m&&m.itemUrl&&!p?"go":"search";return We({"aria-autocomplete":"both","aria-activedescendant":n.getState().isOpen&&null!==n.getState().activeItemId?"".concat(t.id,"-item-").concat(n.getState().activeItemId):void 0,"aria-controls":n.getState().isOpen?"".concat(t.id,"-list"):void 0,"aria-labelledby":"".concat(t.id,"-label"),value:n.getState().completion||n.getState().query,id:"".concat(t.id,"-input"),autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",enterKeyHint:v,spellCheck:"false",autoFocus:t.autoFocus,placeholder:t.placeholder,maxLength:s,type:"search",onChange:function(e){Ce(We({event:e,props:t,query:e.currentTarget.value.slice(0,s),refresh:r,store:n},o))},onKeyDown:function(e){!function(e){var t=e.event,r=e.props,n=e.refresh,o=e.store,i=Le(e,Ne);if("ArrowUp"===t.key||"ArrowDown"===t.key){var a=function(){var e=r.environment.document.getElementById("".concat(r.id,"-item-").concat(o.getState().activeItemId));e&&(e.scrollIntoViewIfNeeded?e.scrollIntoViewIfNeeded(!1):e.scrollIntoView(!1))},c=function(){var e=ge(o.getState());if(null!==o.getState().activeItemId&&e){var r=e.item,a=e.itemInputValue,c=e.itemUrl,l=e.source;l.onActive(qe({event:t,item:r,itemInputValue:a,itemUrl:c,refresh:n,source:l,state:o.getState()},i))}};t.preventDefault(),!1===o.getState().isOpen&&(r.openOnFocus||Boolean(o.getState().query))?Ce(qe({event:t,props:r,query:o.getState().query,refresh:n,store:o},i)).then((function(){o.dispatch(t.key,{nextActiveItemId:r.defaultActiveItemId}),c(),setTimeout(a,0)})):(o.dispatch(t.key,{}),c(),a())}else if("Escape"===t.key)t.preventDefault(),o.dispatch(t.key,null),o.pendingRequests.cancelAll();else if("Tab"===t.key)o.dispatch("blur",null),o.pendingRequests.cancelAll();else if("Enter"===t.key){if(null===o.getState().activeItemId||o.getState().collections.every((function(e){return 0===e.items.length})))return void(r.debug||o.pendingRequests.cancelAll());t.preventDefault();var l=ge(o.getState()),u=l.item,s=l.itemInputValue,f=l.itemUrl,m=l.source;if(t.metaKey||t.ctrlKey)void 0!==f&&(m.onSelect(qe({event:t,item:u,itemInputValue:s,itemUrl:f,refresh:n,source:m,state:o.getState()},i)),r.navigator.navigateNewTab({itemUrl:f,item:u,state:o.getState()}));else if(t.shiftKey)void 0!==f&&(m.onSelect(qe({event:t,item:u,itemInputValue:s,itemUrl:f,refresh:n,source:m,state:o.getState()},i)),r.navigator.navigateNewWindow({itemUrl:f,item:u,state:o.getState()}));else if(t.altKey);else{if(void 0!==f)return m.onSelect(qe({event:t,item:u,itemInputValue:s,itemUrl:f,refresh:n,source:m,state:o.getState()},i)),void r.navigator.navigate({itemUrl:f,item:u,state:o.getState()});Ce(qe({event:t,nextState:{isOpen:!1},props:r,query:s,refresh:n,store:o},i)).then((function(){m.onSelect(qe({event:t,item:u,itemInputValue:s,itemUrl:f,refresh:n,source:m,state:o.getState()},i))}))}}}(We({event:e,props:t,refresh:r,store:n},o))},onFocus:c,onBlur:a,onClick:function(r){e.inputElement!==t.environment.document.activeElement||n.getState().isOpen||c(r)}},f)},getPanelProps:function(e){return We({onMouseDown:function(e){e.preventDefault()},onMouseLeave:function(){n.dispatch("mouseleave",null)}},e)},getListProps:function(e){var r=e||{},n=r.sourceIndex,o=Ze(r,$e);return We({role:"listbox","aria-labelledby":"".concat(i(t.id,n),"-label"),id:"".concat(i(t.id,n),"-list")},o)},getItemProps:function(e){var a=e.item,c=e.source,l=e.sourceIndex,u=Ze(e,Je);return We({id:"".concat(i(t.id,l),"-item-").concat(a.__autocomplete_id),role:"option","aria-selected":n.getState().activeItemId===a.__autocomplete_id,onMouseMove:function(e){if(a.__autocomplete_id!==n.getState().activeItemId){n.dispatch("mousemove",a.__autocomplete_id);var t=ge(n.getState());if(null!==n.getState().activeItemId&&t){var i=t.item,c=t.itemInputValue,l=t.itemUrl,u=t.source;u.onActive(We({event:e,item:i,itemInputValue:c,itemUrl:l,refresh:r,source:u,state:n.getState()},o))}}},onMouseDown:function(e){e.preventDefault()},onClick:function(e){var i=c.getItemInputValue({item:a,state:n.getState()}),l=c.getItemUrl({item:a,state:n.getState()});(l?Promise.resolve():Ce(We({event:e,nextState:{isOpen:!1},props:t,query:i,refresh:r,store:n},o))).then((function(){c.onSelect(We({event:e,item:a,itemInputValue:i,itemUrl:l,refresh:r,source:c,state:n.getState()},o))}))}},u)}}}var Xe=[{segment:"autocomplete-core",version:"1.9.3"}];function Ye(e){return Ye="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ye(e)}function et(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 tt(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?et(Object(r),!0).forEach((function(t){rt(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):et(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function rt(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==Ye(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==Ye(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===Ye(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function nt(e){var t,r,n,o,i=e.plugins,a=e.options,c=null===(t=((null===(r=a.__autocomplete_metadata)||void 0===r?void 0:r.userAgents)||[])[0])||void 0===t?void 0:t.segment,l=c?rt({},c,Object.keys((null===(n=a.__autocomplete_metadata)||void 0===n?void 0:n.options)||{})):{};return{plugins:i.map((function(e){return{name:e.name,options:Object.keys(e.__autocomplete_pluginOptions||[])}})),options:tt({"autocomplete-core":Object.keys(a)},l),ua:Xe.concat((null===(o=a.__autocomplete_metadata)||void 0===o?void 0:o.userAgents)||[])}}function ot(e){var t,r=e.state;return!1===r.isOpen||null===r.activeItemId?null:(null===(t=ge(r))||void 0===t?void 0:t.itemInputValue)||null}function it(e,t,r,n){if(!r)return null;if(e<0&&(null===t||null!==n&&0===t))return r+e;var o=(null===t?-1:t)+e;return o<=-1||o>=r?null===n?null:0:o}function at(e){return at="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},at(e)}function ct(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 lt(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ct(Object(r),!0).forEach((function(t){ut(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ct(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function ut(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==at(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==at(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===at(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var st=function(e,t){switch(t.type){case"setActiveItemId":case"mousemove":return lt(lt({},e),{},{activeItemId:t.payload});case"setQuery":return lt(lt({},e),{},{query:t.payload,completion:null});case"setCollections":return lt(lt({},e),{},{collections:t.payload});case"setIsOpen":return lt(lt({},e),{},{isOpen:t.payload});case"setStatus":return lt(lt({},e),{},{status:t.payload});case"setContext":return lt(lt({},e),{},{context:lt(lt({},e.context),t.payload)});case"ArrowDown":var r=lt(lt({},e),{},{activeItemId:t.payload.hasOwnProperty("nextActiveItemId")?t.payload.nextActiveItemId:it(1,e.activeItemId,B(e),t.props.defaultActiveItemId)});return lt(lt({},r),{},{completion:ot({state:r})});case"ArrowUp":var n=lt(lt({},e),{},{activeItemId:it(-1,e.activeItemId,B(e),t.props.defaultActiveItemId)});return lt(lt({},n),{},{completion:ot({state:n})});case"Escape":return e.isOpen?lt(lt({},e),{},{activeItemId:null,isOpen:!1,completion:null}):lt(lt({},e),{},{activeItemId:null,query:"",status:"idle",collections:[]});case"submit":return lt(lt({},e),{},{activeItemId:null,isOpen:!1,status:"idle"});case"reset":return lt(lt({},e),{},{activeItemId:!0===t.props.openOnFocus?t.props.defaultActiveItemId:null,status:"idle",query:""});case"focus":return lt(lt({},e),{},{activeItemId:t.props.defaultActiveItemId,isOpen:(t.props.openOnFocus||Boolean(e.query))&&t.props.shouldPanelOpen({state:e})});case"blur":return t.props.debug?e:lt(lt({},e),{},{isOpen:!1,activeItemId:null});case"mouseleave":return lt(lt({},e),{},{activeItemId:t.props.defaultActiveItemId});default:return"The reducer action ".concat(JSON.stringify(t.type)," is not supported."),e}};function ft(e){return ft="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ft(e)}function mt(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 pt(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?mt(Object(r),!0).forEach((function(t){vt(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):mt(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function vt(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==ft(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==ft(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===ft(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function dt(e){var t=[],r=ee(e,t),n=R(st,r,(function(e){var t=e.prevState,n=e.state;r.onStateChange(pt({prevState:t,state:n,refresh:a,navigator:r.navigator},o))})),o=function(e){var t=e.store;return{setActiveItemId:function(e){t.dispatch("setActiveItemId",e)},setQuery:function(e){t.dispatch("setQuery",e)},setCollections:function(e){var r=0,n=e.map((function(e){return F(F({},e),{},{items:L(e.items).map((function(e){return F(F({},e),{},{__autocomplete_id:r++})}))})}));t.dispatch("setCollections",n)},setIsOpen:function(e){t.dispatch("setIsOpen",e)},setStatus:function(e){t.dispatch("setStatus",e)},setContext:function(e){t.dispatch("setContext",e)}}}({store:n}),i=Ge(pt({props:r,refresh:a,store:n,navigator:r.navigator},o));function a(){return Ce(pt({event:new Event("input"),nextState:{isOpen:n.getState().isOpen},props:r,navigator:r.navigator,query:n.getState().query,refresh:a,store:n},o))}if(e.insights&&!r.plugins.some((function(e){return"aa.algoliaInsightsPlugin"===e.name}))){var c="boolean"==typeof e.insights?{}:e.insights;r.plugins.push(_(c))}return r.plugins.forEach((function(e){var n;return null===(n=e.subscribe)||void 0===n?void 0:n.call(e,pt(pt({},o),{},{navigator:r.navigator,refresh:a,onSelect:function(e){t.push({onSelect:e})},onActive:function(e){t.push({onActive:e})},onResolve:function(e){t.push({onResolve:e})}}))})),function(e){var t,r,n=e.metadata,o=e.environment;if(null===(t=o.navigator)||void 0===t||null===(r=t.userAgent)||void 0===r?void 0:r.includes("Algolia Crawler")){var i=o.document.createElement("meta"),a=o.document.querySelector("head");i.name="algolia:metadata",setTimeout((function(){i.content=JSON.stringify(n),a.appendChild(i)}),0)}}({metadata:nt({plugins:r.plugins,options:e}),environment:r.environment}),pt(pt({refresh:a,navigator:r.navigator},i),o)}var yt=r(9474),ht=64;function bt(e){var t=e.translations,r=(void 0===t?{}:t).searchByText,n=void 0===r?"Search by":r;return yt.createElement("a",{href:"https://www.algolia.com/ref/docsearch/?utm_source=".concat(window.location.hostname,"&utm_medium=referral&utm_content=powered_by&utm_campaign=docsearch"),target:"_blank",rel:"noopener noreferrer"},yt.createElement("span",{className:"DocSearch-Label"},n),yt.createElement("svg",{width:"77",height:"19","aria-label":"Algolia",role:"img",id:"Layer_1",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 2196.2 500"},yt.createElement("defs",null,yt.createElement("style",null,".cls-1,.cls-2{fill:#003dff;}.cls-2{fill-rule:evenodd;}")),yt.createElement("path",{className:"cls-2",d:"M1070.38,275.3V5.91c0-3.63-3.24-6.39-6.82-5.83l-50.46,7.94c-2.87,.45-4.99,2.93-4.99,5.84l.17,273.22c0,12.92,0,92.7,95.97,95.49,3.33,.1,6.09-2.58,6.09-5.91v-40.78c0-2.96-2.19-5.51-5.12-5.84-34.85-4.01-34.85-47.57-34.85-54.72Z"}),yt.createElement("rect",{className:"cls-1",x:"1845.88",y:"104.73",width:"62.58",height:"277.9",rx:"5.9",ry:"5.9"}),yt.createElement("path",{className:"cls-2",d:"M1851.78,71.38h50.77c3.26,0,5.9-2.64,5.9-5.9V5.9c0-3.62-3.24-6.39-6.82-5.83l-50.77,7.95c-2.87,.45-4.99,2.92-4.99,5.83v51.62c0,3.26,2.64,5.9,5.9,5.9Z"}),yt.createElement("path",{className:"cls-2",d:"M1764.03,275.3V5.91c0-3.63-3.24-6.39-6.82-5.83l-50.46,7.94c-2.87,.45-4.99,2.93-4.99,5.84l.17,273.22c0,12.92,0,92.7,95.97,95.49,3.33,.1,6.09-2.58,6.09-5.91v-40.78c0-2.96-2.19-5.51-5.12-5.84-34.85-4.01-34.85-47.57-34.85-54.72Z"}),yt.createElement("path",{className:"cls-2",d:"M1631.95,142.72c-11.14-12.25-24.83-21.65-40.78-28.31-15.92-6.53-33.26-9.85-52.07-9.85-18.78,0-36.15,3.17-51.92,9.85-15.59,6.66-29.29,16.05-40.76,28.31-11.47,12.23-20.38,26.87-26.76,44.03-6.38,17.17-9.24,37.37-9.24,58.36,0,20.99,3.19,36.87,9.55,54.21,6.38,17.32,15.14,32.11,26.45,44.36,11.29,12.23,24.83,21.62,40.6,28.46,15.77,6.83,40.12,10.33,52.4,10.48,12.25,0,36.78-3.82,52.7-10.48,15.92-6.68,29.46-16.23,40.78-28.46,11.29-12.25,20.05-27.04,26.25-44.36,6.22-17.34,9.24-33.22,9.24-54.21,0-20.99-3.34-41.19-10.03-58.36-6.38-17.17-15.14-31.8-26.43-44.03Zm-44.43,163.75c-11.47,15.75-27.56,23.7-48.09,23.7-20.55,0-36.63-7.8-48.1-23.7-11.47-15.75-17.21-34.01-17.21-61.2,0-26.89,5.59-49.14,17.06-64.87,11.45-15.75,27.54-23.52,48.07-23.52,20.55,0,36.63,7.78,48.09,23.52,11.47,15.57,17.36,37.98,17.36,64.87,0,27.19-5.72,45.3-17.19,61.2Z"}),yt.createElement("path",{className:"cls-2",d:"M894.42,104.73h-49.33c-48.36,0-90.91,25.48-115.75,64.1-14.52,22.58-22.99,49.63-22.99,78.73,0,44.89,20.13,84.92,51.59,111.1,2.93,2.6,6.05,4.98,9.31,7.14,12.86,8.49,28.11,13.47,44.52,13.47,1.23,0,2.46-.03,3.68-.09,.36-.02,.71-.05,1.07-.07,.87-.05,1.75-.11,2.62-.2,.34-.03,.68-.08,1.02-.12,.91-.1,1.82-.21,2.73-.34,.21-.03,.42-.07,.63-.1,32.89-5.07,61.56-30.82,70.9-62.81v57.83c0,3.26,2.64,5.9,5.9,5.9h50.42c3.26,0,5.9-2.64,5.9-5.9V110.63c0-3.26-2.64-5.9-5.9-5.9h-56.32Zm0,206.92c-12.2,10.16-27.97,13.98-44.84,15.12-.16,.01-.33,.03-.49,.04-1.12,.07-2.24,.1-3.36,.1-42.24,0-77.12-35.89-77.12-79.37,0-10.25,1.96-20.01,5.42-28.98,11.22-29.12,38.77-49.74,71.06-49.74h49.33v142.83Z"}),yt.createElement("path",{className:"cls-2",d:"M2133.97,104.73h-49.33c-48.36,0-90.91,25.48-115.75,64.1-14.52,22.58-22.99,49.63-22.99,78.73,0,44.89,20.13,84.92,51.59,111.1,2.93,2.6,6.05,4.98,9.31,7.14,12.86,8.49,28.11,13.47,44.52,13.47,1.23,0,2.46-.03,3.68-.09,.36-.02,.71-.05,1.07-.07,.87-.05,1.75-.11,2.62-.2,.34-.03,.68-.08,1.02-.12,.91-.1,1.82-.21,2.73-.34,.21-.03,.42-.07,.63-.1,32.89-5.07,61.56-30.82,70.9-62.81v57.83c0,3.26,2.64,5.9,5.9,5.9h50.42c3.26,0,5.9-2.64,5.9-5.9V110.63c0-3.26-2.64-5.9-5.9-5.9h-56.32Zm0,206.92c-12.2,10.16-27.97,13.98-44.84,15.12-.16,.01-.33,.03-.49,.04-1.12,.07-2.24,.1-3.36,.1-42.24,0-77.12-35.89-77.12-79.37,0-10.25,1.96-20.01,5.42-28.98,11.22-29.12,38.77-49.74,71.06-49.74h49.33v142.83Z"}),yt.createElement("path",{className:"cls-2",d:"M1314.05,104.73h-49.33c-48.36,0-90.91,25.48-115.75,64.1-11.79,18.34-19.6,39.64-22.11,62.59-.58,5.3-.88,10.68-.88,16.14s.31,11.15,.93,16.59c4.28,38.09,23.14,71.61,50.66,94.52,2.93,2.6,6.05,4.98,9.31,7.14,12.86,8.49,28.11,13.47,44.52,13.47h0c17.99,0,34.61-5.93,48.16-15.97,16.29-11.58,28.88-28.54,34.48-47.75v50.26h-.11v11.08c0,21.84-5.71,38.27-17.34,49.36-11.61,11.08-31.04,16.63-58.25,16.63-11.12,0-28.79-.59-46.6-2.41-2.83-.29-5.46,1.5-6.27,4.22l-12.78,43.11c-1.02,3.46,1.27,7.02,4.83,7.53,21.52,3.08,42.52,4.68,54.65,4.68,48.91,0,85.16-10.75,108.89-32.21,21.48-19.41,33.15-48.89,35.2-88.52V110.63c0-3.26-2.64-5.9-5.9-5.9h-56.32Zm0,64.1s.65,139.13,0,143.36c-12.08,9.77-27.11,13.59-43.49,14.7-.16,.01-.33,.03-.49,.04-1.12,.07-2.24,.1-3.36,.1-1.32,0-2.63-.03-3.94-.1-40.41-2.11-74.52-37.26-74.52-79.38,0-10.25,1.96-20.01,5.42-28.98,11.22-29.12,38.77-49.74,71.06-49.74h49.33Z"}),yt.createElement("path",{className:"cls-1",d:"M249.83,0C113.3,0,2,110.09,.03,246.16c-2,138.19,110.12,252.7,248.33,253.5,42.68,.25,83.79-10.19,120.3-30.03,3.56-1.93,4.11-6.83,1.08-9.51l-23.38-20.72c-4.75-4.21-11.51-5.4-17.36-2.92-25.48,10.84-53.17,16.38-81.71,16.03-111.68-1.37-201.91-94.29-200.13-205.96,1.76-110.26,92-199.41,202.67-199.41h202.69V407.41l-115-102.18c-3.72-3.31-9.42-2.66-12.42,1.31-18.46,24.44-48.53,39.64-81.93,37.34-46.33-3.2-83.87-40.5-87.34-86.81-4.15-55.24,39.63-101.52,94-101.52,49.18,0,89.68,37.85,93.91,85.95,.38,4.28,2.31,8.27,5.52,11.12l29.95,26.55c3.4,3.01,8.79,1.17,9.63-3.3,2.16-11.55,2.92-23.58,2.07-35.92-4.82-70.34-61.8-126.93-132.17-131.26-80.68-4.97-148.13,58.14-150.27,137.25-2.09,77.1,61.08,143.56,138.19,145.26,32.19,.71,62.03-9.41,86.14-26.95l150.26,133.2c6.44,5.71,16.61,1.14,16.61-7.47V9.48C499.66,4.25,495.42,0,490.18,0H249.83Z"})))}function gt(e){return yt.createElement("svg",{width:"15",height:"15","aria-label":e.ariaLabel,role:"img"},yt.createElement("g",{fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.2"},e.children))}function Ot(e){var t=e.translations,r=void 0===t?{}:t,n=r.selectText,o=void 0===n?"to select":n,i=r.selectKeyAriaLabel,a=void 0===i?"Enter key":i,c=r.navigateText,l=void 0===c?"to navigate":c,u=r.navigateUpKeyAriaLabel,s=void 0===u?"Arrow up":u,f=r.navigateDownKeyAriaLabel,m=void 0===f?"Arrow down":f,p=r.closeText,v=void 0===p?"to close":p,d=r.closeKeyAriaLabel,y=void 0===d?"Escape key":d,h=r.searchByText,b=void 0===h?"Search by":h;return yt.createElement(yt.Fragment,null,yt.createElement("div",{className:"DocSearch-Logo"},yt.createElement(bt,{translations:{searchByText:b}})),yt.createElement("ul",{className:"DocSearch-Commands"},yt.createElement("li",null,yt.createElement("kbd",{className:"DocSearch-Commands-Key"},yt.createElement(gt,{ariaLabel:a},yt.createElement("path",{d:"M12 3.53088v3c0 1-1 2-2 2H4M7 11.53088l-3-3 3-3"}))),yt.createElement("span",{className:"DocSearch-Label"},o)),yt.createElement("li",null,yt.createElement("kbd",{className:"DocSearch-Commands-Key"},yt.createElement(gt,{ariaLabel:m},yt.createElement("path",{d:"M7.5 3.5v8M10.5 8.5l-3 3-3-3"}))),yt.createElement("kbd",{className:"DocSearch-Commands-Key"},yt.createElement(gt,{ariaLabel:s},yt.createElement("path",{d:"M7.5 11.5v-8M10.5 6.5l-3-3-3 3"}))),yt.createElement("span",{className:"DocSearch-Label"},l)),yt.createElement("li",null,yt.createElement("kbd",{className:"DocSearch-Commands-Key"},yt.createElement(gt,{ariaLabel:y},yt.createElement("path",{d:"M13.6167 8.936c-.1065.3583-.6883.962-1.4875.962-.7993 0-1.653-.9165-1.653-2.1258v-.5678c0-1.2548.7896-2.1016 1.653-2.1016.8634 0 1.3601.4778 1.4875 1.0724M9 6c-.1352-.4735-.7506-.9219-1.46-.8972-.7092.0246-1.344.57-1.344 1.2166s.4198.8812 1.3445.9805C8.465 7.3992 8.968 7.9337 9 8.5c.032.5663-.454 1.398-1.4595 1.398C6.6593 9.898 6 9 5.963 8.4851m-1.4748.5368c-.2635.5941-.8099.876-1.5443.876s-1.7073-.6248-1.7073-2.204v-.4603c0-1.0416.721-2.131 1.7073-2.131.9864 0 1.6425 1.031 1.5443 2.2492h-2.956"}))),yt.createElement("span",{className:"DocSearch-Label"},v))))}function St(e){var t=e.hit,r=e.children;return yt.createElement("a",{href:t.url},r)}function jt(){return yt.createElement("svg",{width:"40",height:"40",viewBox:"0 0 20 20",fill:"none",fillRule:"evenodd",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"},yt.createElement("path",{d:"M19 4.8a16 16 0 00-2-1.2m-3.3-1.2A16 16 0 001.1 4.7M16.7 8a12 12 0 00-2.8-1.4M10 6a12 12 0 00-6.7 2M12.3 14.7a4 4 0 00-4.5 0M14.5 11.4A8 8 0 0010 10M3 16L18 2M10 18h0"}))}function wt(e){var t=e.translations,r=void 0===t?{}:t,n=r.titleText,o=void 0===n?"Unable to fetch results":n,i=r.helpText,a=void 0===i?"You might want to check your network connection.":i;return yt.createElement("div",{className:"DocSearch-ErrorScreen"},yt.createElement("div",{className:"DocSearch-Screen-Icon"},yt.createElement(jt,null)),yt.createElement("p",{className:"DocSearch-Title"},o),yt.createElement("p",{className:"DocSearch-Help"},a))}function Et(){return yt.createElement("svg",{width:"40",height:"40",viewBox:"0 0 20 20",fill:"none",fillRule:"evenodd",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"},yt.createElement("path",{d:"M15.5 4.8c2 3 1.7 7-1 9.7h0l4.3 4.3-4.3-4.3a7.8 7.8 0 01-9.8 1m-2.2-2.2A7.8 7.8 0 0113.2 2.4M2 18L18 2"}))}var Pt=["translations"];function It(e){return function(e){if(Array.isArray(e))return Dt(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return Dt(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Dt(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Dt(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function At(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function kt(e){var t=e.translations,r=void 0===t?{}:t,n=At(e,Pt),o=r.noResultsText,i=void 0===o?"No results for":o,a=r.suggestedQueryText,c=void 0===a?"Try searching for":a,l=r.reportMissingResultsText,u=void 0===l?"Believe this query should return results?":l,s=r.reportMissingResultsLinkText,f=void 0===s?"Let us know.":s,m=n.state.context.searchSuggestions;return yt.createElement("div",{className:"DocSearch-NoResults"},yt.createElement("div",{className:"DocSearch-Screen-Icon"},yt.createElement(Et,null)),yt.createElement("p",{className:"DocSearch-Title"},i,' "',yt.createElement("strong",null,n.state.query),'"'),m&&m.length>0&&yt.createElement("div",{className:"DocSearch-NoResults-Prefill-List"},yt.createElement("p",{className:"DocSearch-Help"},c,":"),yt.createElement("ul",null,m.slice(0,3).reduce((function(e,t){return[].concat(It(e),[yt.createElement("li",{key:t},yt.createElement("button",{className:"DocSearch-Prefill",key:t,type:"button",onClick:function(){n.setQuery(t.toLowerCase()+" "),n.refresh(),n.inputRef.current.focus()}},t))])}),[]))),n.getMissingResultsUrl&&yt.createElement("p",{className:"DocSearch-Help"},"".concat(u," "),yt.createElement("a",{href:n.getMissingResultsUrl({query:n.state.query}),target:"_blank",rel:"noopener noreferrer"},f)))}var xt=function(){return yt.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},yt.createElement("path",{d:"M17 6v12c0 .52-.2 1-1 1H4c-.7 0-1-.33-1-1V2c0-.55.42-1 1-1h8l5 5zM14 8h-3.13c-.51 0-.87-.34-.87-.87V4",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinejoin:"round"}))};function Ct(e){switch(e.type){case"lvl1":return yt.createElement(xt,null);case"content":return yt.createElement(Nt,null);default:return yt.createElement(_t,null)}}function _t(){return yt.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},yt.createElement("path",{d:"M13 13h4-4V8H7v5h6v4-4H7V8H3h4V3v5h6V3v5h4-4v5zm-6 0v4-4H3h4z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}function Nt(){return yt.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},yt.createElement("path",{d:"M17 5H3h14zm0 5H3h14zm0 5H3h14z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinejoin:"round"}))}function Tt(){return yt.createElement("svg",{className:"DocSearch-Hit-Select-Icon",width:"20",height:"20",viewBox:"0 0 20 20"},yt.createElement("g",{stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},yt.createElement("path",{d:"M18 3v4c0 2-2 4-4 4H2"}),yt.createElement("path",{d:"M8 17l-6-6 6-6"})))}var qt=["hit","attribute","tagName"];function Rt(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 Lt(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Rt(Object(r),!0).forEach((function(t){Mt(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Rt(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Mt(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Ht(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function Ft(e,t){return t.split(".").reduce((function(e,t){return null!=e&&e[t]?e[t]:null}),e)}function Ut(e){var t=e.hit,r=e.attribute,n=e.tagName,o=void 0===n?"span":n,i=Ht(e,qt);return(0,yt.createElement)(o,Lt(Lt({},i),{},{dangerouslySetInnerHTML:{__html:Ft(t,"_snippetResult.".concat(r,".value"))||Ft(t,r)}}))}function Bt(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==r)return;var n,o,i=[],a=!0,c=!1;try{for(r=r.call(e);!(a=(n=r.next()).done)&&(i.push(n.value),!t||i.length!==t);a=!0);}catch(l){c=!0,o=l}finally{try{a||null==r.return||r.return()}finally{if(c)throw o}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return Vt(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Vt(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Vt(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Kt(){return Kt=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Kt.apply(this,arguments)}function $t(e){return e.collection&&0!==e.collection.items.length?yt.createElement("section",{className:"DocSearch-Hits"},yt.createElement("div",{className:"DocSearch-Hit-source"},e.title),yt.createElement("ul",e.getListProps(),e.collection.items.map((function(t,r){return yt.createElement(Jt,Kt({key:[e.title,t.objectID].join(":"),item:t,index:r},e))})))):null}function Jt(e){var t=e.item,r=e.index,n=e.renderIcon,o=e.renderAction,i=e.getItemProps,a=e.onItemClick,c=e.collection,l=e.hitComponent,u=Bt(yt.useState(!1),2),s=u[0],f=u[1],m=Bt(yt.useState(!1),2),p=m[0],v=m[1],d=yt.useRef(null),y=l;return yt.createElement("li",Kt({className:["DocSearch-Hit",t.__docsearch_parent&&"DocSearch-Hit--Child",s&&"DocSearch-Hit--deleting",p&&"DocSearch-Hit--favoriting"].filter(Boolean).join(" "),onTransitionEnd:function(){d.current&&d.current()}},i({item:t,source:c.source,onClick:function(e){a(t,e)}})),yt.createElement(y,{hit:t},yt.createElement("div",{className:"DocSearch-Hit-Container"},n({item:t,index:r}),t.hierarchy[t.type]&&"lvl1"===t.type&&yt.createElement("div",{className:"DocSearch-Hit-content-wrapper"},yt.createElement(Ut,{className:"DocSearch-Hit-title",hit:t,attribute:"hierarchy.lvl1"}),t.content&&yt.createElement(Ut,{className:"DocSearch-Hit-path",hit:t,attribute:"content"})),t.hierarchy[t.type]&&("lvl2"===t.type||"lvl3"===t.type||"lvl4"===t.type||"lvl5"===t.type||"lvl6"===t.type)&&yt.createElement("div",{className:"DocSearch-Hit-content-wrapper"},yt.createElement(Ut,{className:"DocSearch-Hit-title",hit:t,attribute:"hierarchy.".concat(t.type)}),yt.createElement(Ut,{className:"DocSearch-Hit-path",hit:t,attribute:"hierarchy.lvl1"})),"content"===t.type&&yt.createElement("div",{className:"DocSearch-Hit-content-wrapper"},yt.createElement(Ut,{className:"DocSearch-Hit-title",hit:t,attribute:"content"}),yt.createElement(Ut,{className:"DocSearch-Hit-path",hit:t,attribute:"hierarchy.lvl1"})),o({item:t,runDeleteTransition:function(e){f(!0),d.current=e},runFavoriteTransition:function(e){v(!0),d.current=e}}))))}var zt=/(<mark>|<\/mark>)/g,Wt=RegExp(zt.source);function Qt(e){var t,r,n=e;if(!n.__docsearch_parent&&!e._highlightResult)return e.hierarchy.lvl0;var o=((n.__docsearch_parent?null===(t=n.__docsearch_parent)||void 0===t||null===(t=t._highlightResult)||void 0===t||null===(t=t.hierarchy)||void 0===t?void 0:t.lvl0:null===(r=e._highlightResult)||void 0===r||null===(r=r.hierarchy)||void 0===r?void 0:r.lvl0)||{}).value;return o&&Wt.test(o)?o.replace(zt,""):o}function Zt(){return Zt=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Zt.apply(this,arguments)}function Gt(e){return yt.createElement("div",{className:"DocSearch-Dropdown-Container"},e.state.collections.map((function(t){if(0===t.items.length)return null;var r=Qt(t.items[0]);return yt.createElement($t,Zt({},e,{key:t.source.sourceId,title:r,collection:t,renderIcon:function(e){var r,n=e.item,o=e.index;return yt.createElement(yt.Fragment,null,n.__docsearch_parent&&yt.createElement("svg",{className:"DocSearch-Hit-Tree",viewBox:"0 0 24 54"},yt.createElement("g",{stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},n.__docsearch_parent!==(null===(r=t.items[o+1])||void 0===r?void 0:r.__docsearch_parent)?yt.createElement("path",{d:"M8 6v21M20 27H8.3"}):yt.createElement("path",{d:"M8 6v42M20 27H8.3"}))),yt.createElement("div",{className:"DocSearch-Hit-icon"},yt.createElement(Ct,{type:n.type})))},renderAction:function(){return yt.createElement("div",{className:"DocSearch-Hit-action"},yt.createElement(Tt,null))}}))})),e.resultsFooterComponent&&yt.createElement("section",{className:"DocSearch-HitsFooter"},yt.createElement(e.resultsFooterComponent,{state:e.state})))}function Xt(){return yt.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},yt.createElement("g",{stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},yt.createElement("path",{d:"M3.18 6.6a8.23 8.23 0 1112.93 9.94h0a8.23 8.23 0 01-11.63 0"}),yt.createElement("path",{d:"M6.44 7.25H2.55V3.36M10.45 6v5.6M10.45 11.6L13 13"})))}function Yt(){return yt.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},yt.createElement("path",{d:"M10 14.2L5 17l1-5.6-4-4 5.5-.7 2.5-5 2.5 5 5.6.8-4 4 .9 5.5z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinejoin:"round"}))}function er(){return yt.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},yt.createElement("path",{d:"M10 10l5.09-5.09L10 10l5.09 5.09L10 10zm0 0L4.91 4.91 10 10l-5.09 5.09L10 10z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}var tr=["translations"];function rr(){return rr=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},rr.apply(this,arguments)}function nr(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function or(e){var t=e.translations,r=void 0===t?{}:t,n=nr(e,tr),o=r.recentSearchesTitle,i=void 0===o?"Recent":o,a=r.noRecentSearchesText,c=void 0===a?"No recent searches":a,l=r.saveRecentSearchButtonTitle,u=void 0===l?"Save this search":l,s=r.removeRecentSearchButtonTitle,f=void 0===s?"Remove this search from history":s,m=r.favoriteSearchesTitle,p=void 0===m?"Favorite":m,v=r.removeFavoriteSearchButtonTitle,d=void 0===v?"Remove this search from favorites":v;return"idle"===n.state.status&&!1===n.hasCollections?n.disableUserPersonalization?null:yt.createElement("div",{className:"DocSearch-StartScreen"},yt.createElement("p",{className:"DocSearch-Help"},c)):!1===n.hasCollections?null:yt.createElement("div",{className:"DocSearch-Dropdown-Container"},yt.createElement($t,rr({},n,{title:i,collection:n.state.collections[0],renderIcon:function(){return yt.createElement("div",{className:"DocSearch-Hit-icon"},yt.createElement(Xt,null))},renderAction:function(e){var t=e.item,r=e.runFavoriteTransition,o=e.runDeleteTransition;return yt.createElement(yt.Fragment,null,yt.createElement("div",{className:"DocSearch-Hit-action"},yt.createElement("button",{className:"DocSearch-Hit-action-button",title:u,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),r((function(){n.favoriteSearches.add(t),n.recentSearches.remove(t),n.refresh()}))}},yt.createElement(Yt,null))),yt.createElement("div",{className:"DocSearch-Hit-action"},yt.createElement("button",{className:"DocSearch-Hit-action-button",title:f,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),o((function(){n.recentSearches.remove(t),n.refresh()}))}},yt.createElement(er,null))))}})),yt.createElement($t,rr({},n,{title:p,collection:n.state.collections[1],renderIcon:function(){return yt.createElement("div",{className:"DocSearch-Hit-icon"},yt.createElement(Yt,null))},renderAction:function(e){var t=e.item,r=e.runDeleteTransition;return yt.createElement("div",{className:"DocSearch-Hit-action"},yt.createElement("button",{className:"DocSearch-Hit-action-button",title:d,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),r((function(){n.favoriteSearches.remove(t),n.refresh()}))}},yt.createElement(er,null)))}})))}var ir=["translations"];function ar(){return ar=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},ar.apply(this,arguments)}function cr(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var lr=yt.memo((function(e){var t=e.translations,r=void 0===t?{}:t,n=cr(e,ir);if("error"===n.state.status)return yt.createElement(wt,{translations:null==r?void 0:r.errorScreen});var o=n.state.collections.some((function(e){return e.items.length>0}));return n.state.query?!1===o?yt.createElement(kt,ar({},n,{translations:null==r?void 0:r.noResultsScreen})):yt.createElement(Gt,n):yt.createElement(or,ar({},n,{hasCollections:o,translations:null==r?void 0:r.startScreen}))}),(function(e,t){return"loading"===t.state.status||"stalled"===t.state.status}));function ur(){return yt.createElement("svg",{viewBox:"0 0 38 38",stroke:"currentColor",strokeOpacity:".5"},yt.createElement("g",{fill:"none",fillRule:"evenodd"},yt.createElement("g",{transform:"translate(1 1)",strokeWidth:"2"},yt.createElement("circle",{strokeOpacity:".3",cx:"18",cy:"18",r:"18"}),yt.createElement("path",{d:"M36 18c0-9.94-8.06-18-18-18"},yt.createElement("animateTransform",{attributeName:"transform",type:"rotate",from:"0 18 18",to:"360 18 18",dur:"1s",repeatCount:"indefinite"})))))}var sr=r(5781),fr=["translations"];function mr(){return mr=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},mr.apply(this,arguments)}function pr(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function vr(e){var t=e.translations,r=void 0===t?{}:t,n=pr(e,fr),o=r.resetButtonTitle,i=void 0===o?"Clear the query":o,a=r.resetButtonAriaLabel,c=void 0===a?"Clear the query":a,l=r.cancelButtonText,u=void 0===l?"Cancel":l,s=r.cancelButtonAriaLabel,f=void 0===s?"Cancel":s,m=n.getFormProps({inputElement:n.inputRef.current}).onReset;return yt.useEffect((function(){n.autoFocus&&n.inputRef.current&&n.inputRef.current.focus()}),[n.autoFocus,n.inputRef]),yt.useEffect((function(){n.isFromSelection&&n.inputRef.current&&n.inputRef.current.select()}),[n.isFromSelection,n.inputRef]),yt.createElement(yt.Fragment,null,yt.createElement("form",{className:"DocSearch-Form",onSubmit:function(e){e.preventDefault()},onReset:m},yt.createElement("label",mr({className:"DocSearch-MagnifierLabel"},n.getLabelProps()),yt.createElement(sr.W,null)),yt.createElement("div",{className:"DocSearch-LoadingIndicator"},yt.createElement(ur,null)),yt.createElement("input",mr({className:"DocSearch-Input",ref:n.inputRef},n.getInputProps({inputElement:n.inputRef.current,autoFocus:n.autoFocus,maxLength:ht}))),yt.createElement("button",{type:"reset",title:i,className:"DocSearch-Reset","aria-label":c,hidden:!n.state.query},yt.createElement(er,null))),yt.createElement("button",{className:"DocSearch-Cancel",type:"reset","aria-label":f,onClick:n.onClose},u))}var dr=["_highlightResult","_snippetResult"];function yr(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function hr(e){return!1===function(){var e="__TEST_KEY__";try{return localStorage.setItem(e,""),localStorage.removeItem(e),!0}catch(t){return!1}}()?{setItem:function(){},getItem:function(){return[]}}:{setItem:function(t){return window.localStorage.setItem(e,JSON.stringify(t))},getItem:function(){var t=window.localStorage.getItem(e);return t?JSON.parse(t):[]}}}function br(e){var t=e.key,r=e.limit,n=void 0===r?5:r,o=hr(t),i=o.getItem().slice(0,n);return{add:function(e){var t=e,r=(t._highlightResult,t._snippetResult,yr(t,dr)),a=i.findIndex((function(e){return e.objectID===r.objectID}));a>-1&&i.splice(a,1),i.unshift(r),i=i.slice(0,n),o.setItem(i)},remove:function(e){i=i.filter((function(t){return t.objectID!==e.objectID})),o.setItem(i)},getAll:function(){return i}}}function gr(e){const t=`algoliasearch-client-js-${e.key}`;let r;const n=()=>(void 0===r&&(r=e.localStorage||window.localStorage),r),o=()=>JSON.parse(n().getItem(t)||"{}"),i=e=>{n().setItem(t,JSON.stringify(e))};return{get:(t,r,n={miss:()=>Promise.resolve()})=>Promise.resolve().then((()=>{(()=>{const t=e.timeToLive?1e3*e.timeToLive:null,r=o(),n=Object.fromEntries(Object.entries(r).filter((([,e])=>void 0!==e.timestamp)));if(i(n),!t)return;const a=Object.fromEntries(Object.entries(n).filter((([,e])=>{const r=(new Date).getTime();return!(e.timestamp+t<r)})));i(a)})();const r=JSON.stringify(t);return o()[r]})).then((e=>Promise.all([e?e.value:r(),void 0!==e]))).then((([e,t])=>Promise.all([e,t||n.miss(e)]))).then((([e])=>e)),set:(e,r)=>Promise.resolve().then((()=>{const i=o();return i[JSON.stringify(e)]={timestamp:(new Date).getTime(),value:r},n().setItem(t,JSON.stringify(i)),r})),delete:e=>Promise.resolve().then((()=>{const r=o();delete r[JSON.stringify(e)],n().setItem(t,JSON.stringify(r))})),clear:()=>Promise.resolve().then((()=>{n().removeItem(t)}))}}function Or(e){const t=[...e.caches],r=t.shift();return void 0===r?{get:(e,t,r={miss:()=>Promise.resolve()})=>t().then((e=>Promise.all([e,r.miss(e)]))).then((([e])=>e)),set:(e,t)=>Promise.resolve(t),delete:e=>Promise.resolve(),clear:()=>Promise.resolve()}:{get:(e,n,o={miss:()=>Promise.resolve()})=>r.get(e,n,o).catch((()=>Or({caches:t}).get(e,n,o))),set:(e,n)=>r.set(e,n).catch((()=>Or({caches:t}).set(e,n))),delete:e=>r.delete(e).catch((()=>Or({caches:t}).delete(e))),clear:()=>r.clear().catch((()=>Or({caches:t}).clear()))}}function Sr(e={serializable:!0}){let t={};return{get(r,n,o={miss:()=>Promise.resolve()}){const i=JSON.stringify(r);if(i in t)return Promise.resolve(e.serializable?JSON.parse(t[i]):t[i]);const a=n(),c=o&&o.miss||(()=>Promise.resolve());return a.then((e=>c(e))).then((()=>a))},set:(r,n)=>(t[JSON.stringify(r)]=e.serializable?JSON.stringify(n):n,Promise.resolve(n)),delete:e=>(delete t[JSON.stringify(e)],Promise.resolve()),clear:()=>(t={},Promise.resolve())}}function jr(e){let t=e.length-1;for(;t>0;t--){const r=Math.floor(Math.random()*(t+1)),n=e[t];e[t]=e[r],e[r]=n}return e}function wr(e,t){return t?(Object.keys(t).forEach((r=>{e[r]=t[r](e)})),e):e}function Er(e,...t){let r=0;return e.replace(/%s/g,(()=>encodeURIComponent(t[r++])))}const Pr="4.22.1",Ir={WithinQueryParameters:0,WithinHeaders:1};function Dr(e,t){const r=e||{},n=r.data||{};return Object.keys(r).forEach((e=>{-1===["timeout","headers","queryParameters","data","cacheable"].indexOf(e)&&(n[e]=r[e])})),{data:Object.entries(n).length>0?n:void 0,timeout:r.timeout||t,headers:r.headers||{},queryParameters:r.queryParameters||{},cacheable:r.cacheable}}const Ar={Read:1,Write:2,Any:3},kr={Up:1,Down:2,Timeouted:3},xr=12e4;function Cr(e,t=kr.Up){return{...e,status:t,lastUpdate:Date.now()}}function _r(e){return"string"==typeof e?{protocol:"https",url:e,accept:Ar.Any}:{protocol:e.protocol||"https",url:e.url,accept:e.accept||Ar.Any}}const Nr={Delete:"DELETE",Get:"GET",Post:"POST",Put:"PUT"};function Tr(e,t){return Promise.all(t.map((t=>e.get(t,(()=>Promise.resolve(Cr(t))))))).then((e=>{const r=e.filter((e=>function(e){return e.status===kr.Up||Date.now()-e.lastUpdate>xr}(e))),n=e.filter((e=>function(e){return e.status===kr.Timeouted&&Date.now()-e.lastUpdate<=xr}(e))),o=[...r,...n];return{getTimeout:(e,t)=>(0===n.length&&0===e?1:n.length+3+e)*t,statelessHosts:o.length>0?o.map((e=>_r(e))):t}}))}const qr=(e,t)=>(e=>{const t=e.status;return e.isTimedOut||(({isTimedOut:e,status:t})=>!e&&0==~~t)(e)||2!=~~(t/100)&&4!=~~(t/100)})(e)?t.onRetry(e):(({status:e})=>2==~~(e/100))(e)?t.onSuccess(e):t.onFail(e);function Rr(e,t,r,n){const o=[],i=function(e,t){if(e.method===Nr.Get||void 0===e.data&&void 0===t.data)return;const r=Array.isArray(e.data)?e.data:{...e.data,...t.data};return JSON.stringify(r)}(r,n),a=function(e,t){const r={...e.headers,...t.headers},n={};return Object.keys(r).forEach((e=>{const t=r[e];n[e.toLowerCase()]=t})),n}(e,n),c=r.method,l=r.method!==Nr.Get?{}:{...r.data,...n.data},u={"x-algolia-agent":e.userAgent.value,...e.queryParameters,...l,...n.queryParameters};let s=0;const f=(t,l)=>{const m=t.pop();if(void 0===m)throw{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.",transporterStackTrace:Fr(o)};const p={data:i,headers:a,method:c,url:Mr(m,r.path,u),connectTimeout:l(s,e.timeouts.connect),responseTimeout:l(s,n.timeout)},v=e=>{const r={request:p,response:e,host:m,triesLeft:t.length};return o.push(r),r},d={onSuccess:e=>function(e){try{return JSON.parse(e.content)}catch(t){throw function(e,t){return{name:"DeserializationError",message:e,response:t}}(t.message,e)}}(e),onRetry(r){const n=v(r);return r.isTimedOut&&s++,Promise.all([e.logger.info("Retryable failure",Ur(n)),e.hostsCache.set(m,Cr(m,r.isTimedOut?kr.Timeouted:kr.Down))]).then((()=>f(t,l)))},onFail(e){throw v(e),function({content:e,status:t},r){let n=e;try{n=JSON.parse(e).message}catch(o){}return function(e,t,r){return{name:"ApiError",message:e,status:t,transporterStackTrace:r}}(n,t,r)}(e,Fr(o))}};return e.requester.send(p).then((e=>qr(e,d)))};return Tr(e.hostsCache,t).then((e=>f([...e.statelessHosts].reverse(),e.getTimeout)))}function Lr(e){const t={value:`Algolia for JavaScript (${e})`,add(e){const r=`; ${e.segment}${void 0!==e.version?` (${e.version})`:""}`;return-1===t.value.indexOf(r)&&(t.value=`${t.value}${r}`),t}};return t}function Mr(e,t,r){const n=Hr(r);let o=`${e.protocol}://${e.url}/${"/"===t.charAt(0)?t.substr(1):t}`;return n.length&&(o+=`?${n}`),o}function Hr(e){return Object.keys(e).map((t=>{return Er("%s=%s",t,(r=e[t],"[object Object]"===Object.prototype.toString.call(r)||"[object Array]"===Object.prototype.toString.call(r)?JSON.stringify(e[t]):e[t]));var r})).join("&")}function Fr(e){return e.map((e=>Ur(e)))}function Ur(e){const t=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return{...e,request:{...e.request,headers:{...e.request.headers,...t}}}}const Br=e=>{const t=e.appId,r=function(e,t,r){const n={"x-algolia-api-key":r,"x-algolia-application-id":t};return{headers:()=>e===Ir.WithinHeaders?n:{},queryParameters:()=>e===Ir.WithinQueryParameters?n:{}}}(void 0!==e.authMode?e.authMode:Ir.WithinHeaders,t,e.apiKey),n=function(e){const{hostsCache:t,logger:r,requester:n,requestsCache:o,responsesCache:i,timeouts:a,userAgent:c,hosts:l,queryParameters:u,headers:s}=e,f={hostsCache:t,logger:r,requester:n,requestsCache:o,responsesCache:i,timeouts:a,userAgent:c,headers:s,queryParameters:u,hosts:l.map((e=>_r(e))),read(e,t){const r=Dr(t,f.timeouts.read),n=()=>Rr(f,f.hosts.filter((e=>0!=(e.accept&Ar.Read))),e,r);if(!0!==(void 0!==r.cacheable?r.cacheable:e.cacheable))return n();const o={request:e,mappedRequestOptions:r,transporter:{queryParameters:f.queryParameters,headers:f.headers}};return f.responsesCache.get(o,(()=>f.requestsCache.get(o,(()=>f.requestsCache.set(o,n()).then((e=>Promise.all([f.requestsCache.delete(o),e])),(e=>Promise.all([f.requestsCache.delete(o),Promise.reject(e)]))).then((([e,t])=>t))))),{miss:e=>f.responsesCache.set(o,e)})},write:(e,t)=>Rr(f,f.hosts.filter((e=>0!=(e.accept&Ar.Write))),e,Dr(t,f.timeouts.write))};return f}({hosts:[{url:`${t}-dsn.algolia.net`,accept:Ar.Read},{url:`${t}.algolia.net`,accept:Ar.Write}].concat(jr([{url:`${t}-1.algolianet.com`},{url:`${t}-2.algolianet.com`},{url:`${t}-3.algolianet.com`}])),...e,headers:{...r.headers(),"content-type":"application/x-www-form-urlencoded",...e.headers},queryParameters:{...r.queryParameters(),...e.queryParameters}}),o={transporter:n,appId:t,addAlgoliaAgent(e,t){n.userAgent.add({segment:e,version:t})},clearCache:()=>Promise.all([n.requestsCache.clear(),n.responsesCache.clear()]).then((()=>{}))};return wr(o,e.methods)},Vr=e=>(t,r)=>t.method===Nr.Get?e.transporter.read(t,r):e.transporter.write(t,r),Kr=e=>(t,r={})=>wr({transporter:e.transporter,appId:e.appId,indexName:t},r.methods),$r=e=>(t,r)=>{const n=t.map((e=>({...e,params:Hr(e.params||{})})));return e.transporter.read({method:Nr.Post,path:"1/indexes/*/queries",data:{requests:n},cacheable:!0},r)},Jr=e=>(t,r)=>Promise.all(t.map((t=>{const{facetName:n,facetQuery:o,...i}=t.params;return Kr(e)(t.indexName,{methods:{searchForFacetValues:Qr}}).searchForFacetValues(n,o,{...r,...i})}))),zr=e=>(t,r,n)=>e.transporter.read({method:Nr.Post,path:Er("1/answers/%s/prediction",e.indexName),data:{query:t,queryLanguages:r},cacheable:!0},n),Wr=e=>(t,r)=>e.transporter.read({method:Nr.Post,path:Er("1/indexes/%s/query",e.indexName),data:{query:t},cacheable:!0},r),Qr=e=>(t,r,n)=>e.transporter.read({method:Nr.Post,path:Er("1/indexes/%s/facets/%s/query",e.indexName,t),data:{facetQuery:r},cacheable:!0},n),Zr={Debug:1,Info:2,Error:3};function Gr(e,t,r){const n={appId:e,apiKey:t,timeouts:{connect:1,read:2,write:30},requester:{send:e=>new Promise((t=>{const r=new XMLHttpRequest;r.open(e.method,e.url,!0),Object.keys(e.headers).forEach((t=>r.setRequestHeader(t,e.headers[t])));const n=(e,n)=>setTimeout((()=>{r.abort(),t({status:0,content:n,isTimedOut:!0})}),1e3*e),o=n(e.connectTimeout,"Connection timeout");let i;r.onreadystatechange=()=>{r.readyState>r.OPENED&&void 0===i&&(clearTimeout(o),i=n(e.responseTimeout,"Socket timeout"))},r.onerror=()=>{0===r.status&&(clearTimeout(o),clearTimeout(i),t({content:r.responseText||"Network request failed",status:r.status,isTimedOut:!1}))},r.onload=()=>{clearTimeout(o),clearTimeout(i),t({content:r.responseText,status:r.status,isTimedOut:!1})},r.send(e.data)}))},logger:(o=Zr.Error,{debug:(e,t)=>(Zr.Debug>=o&&console.debug(e,t),Promise.resolve()),info:(e,t)=>(Zr.Info>=o&&console.info(e,t),Promise.resolve()),error:(e,t)=>(console.error(e,t),Promise.resolve())}),responsesCache:Sr(),requestsCache:Sr({serializable:!1}),hostsCache:Or({caches:[gr({key:`${Pr}-${e}`}),Sr()]}),userAgent:Lr(Pr).add({segment:"Browser",version:"lite"}),authMode:Ir.WithinQueryParameters};var o;return Br({...n,...r,methods:{search:$r,searchForFacetValues:Jr,multipleQueries:$r,multipleSearchForFacetValues:Jr,customRequest:Vr,initIndex:e=>t=>Kr(e)(t,{methods:{search:Wr,searchForFacetValues:Qr,findAnswers:zr}})}})}Gr.version=Pr;const Xr=Gr;var Yr="3.5.2";function en(){}function tn(e){return e}function rn(e){return 1===e.button||e.altKey||e.ctrlKey||e.metaKey||e.shiftKey}function nn(e,t,r){return e.reduce((function(e,n){var o=t(n);return e.hasOwnProperty(o)||(e[o]=[]),e[o].length<(r||5)&&e[o].push(n),e}),{})}var on=["footer","searchBox"];function an(){return an=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},an.apply(this,arguments)}function cn(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 ln(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?cn(Object(r),!0).forEach((function(t){un(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):cn(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function un(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function sn(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==r)return;var n,o,i=[],a=!0,c=!1;try{for(r=r.call(e);!(a=(n=r.next()).done)&&(i.push(n.value),!t||i.length!==t);a=!0);}catch(l){c=!0,o=l}finally{try{a||null==r.return||r.return()}finally{if(c)throw o}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return fn(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return fn(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function fn(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function mn(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function pn(e){var t=e.appId,r=e.apiKey,n=e.indexName,o=e.placeholder,i=void 0===o?"Search docs":o,a=e.searchParameters,c=e.maxResultsPerGroup,l=e.onClose,u=void 0===l?en:l,s=e.transformItems,f=void 0===s?tn:s,m=e.hitComponent,p=void 0===m?St:m,v=e.resultsFooterComponent,d=void 0===v?function(){return null}:v,y=e.navigator,h=e.initialScrollY,b=void 0===h?0:h,g=e.transformSearchClient,O=void 0===g?tn:g,S=e.disableUserPersonalization,j=void 0!==S&&S,w=e.initialQuery,E=void 0===w?"":w,P=e.translations,I=void 0===P?{}:P,D=e.getMissingResultsUrl,A=e.insights,k=void 0!==A&&A,x=I.footer,C=I.searchBox,_=mn(I,on),N=sn(yt.useState({query:"",collections:[],completion:null,context:{},isOpen:!1,activeItemId:null,status:"idle"}),2),T=N[0],q=N[1],R=yt.useRef(null),L=yt.useRef(null),M=yt.useRef(null),H=yt.useRef(null),F=yt.useRef(null),U=yt.useRef(10),B=yt.useRef("undefined"!=typeof window?window.getSelection().toString().slice(0,ht):"").current,V=yt.useRef(E||B).current,K=function(e,t,r){return yt.useMemo((function(){var n=Xr(e,t);return n.addAlgoliaAgent("docsearch",Yr),!1===/docsearch.js \(.*\)/.test(n.transporter.userAgent.value)&&n.addAlgoliaAgent("docsearch-react",Yr),r(n)}),[e,t,r])}(t,r,O),$=yt.useRef(br({key:"__DOCSEARCH_FAVORITE_SEARCHES__".concat(n),limit:10})).current,J=yt.useRef(br({key:"__DOCSEARCH_RECENT_SEARCHES__".concat(n),limit:0===$.getAll().length?7:4})).current,z=yt.useCallback((function(e){if(!j){var t="content"===e.type?e.__docsearch_parent:e;t&&-1===$.getAll().findIndex((function(e){return e.objectID===t.objectID}))&&J.add(t)}}),[$,J,j]),W=yt.useCallback((function(e){if(T.context.algoliaInsightsPlugin&&e.__autocomplete_id){var t=e,r={eventName:"Item Selected",index:t.__autocomplete_indexName,items:[t],positions:[e.__autocomplete_id],queryID:t.__autocomplete_queryID};T.context.algoliaInsightsPlugin.insights.clickedObjectIDsAfterSearch(r)}}),[T.context.algoliaInsightsPlugin]),Q=yt.useMemo((function(){return dt({id:"docsearch",defaultActiveItemId:0,placeholder:i,openOnFocus:!0,initialState:{query:V,context:{searchSuggestions:[]}},insights:k,navigator:y,onStateChange:function(e){q(e.state)},getSources:function(e){var o=e.query,i=e.state,l=e.setContext,s=e.setStatus;if(!o)return j?[]:[{sourceId:"recentSearches",onSelect:function(e){var t=e.item,r=e.event;z(t),rn(r)||u()},getItemUrl:function(e){return e.item.url},getItems:function(){return J.getAll()}},{sourceId:"favoriteSearches",onSelect:function(e){var t=e.item,r=e.event;z(t),rn(r)||u()},getItemUrl:function(e){return e.item.url},getItems:function(){return $.getAll()}}];var m=Boolean(k);return K.search([{query:o,indexName:n,params:ln({attributesToRetrieve:["hierarchy.lvl0","hierarchy.lvl1","hierarchy.lvl2","hierarchy.lvl3","hierarchy.lvl4","hierarchy.lvl5","hierarchy.lvl6","content","type","url"],attributesToSnippet:["hierarchy.lvl1:".concat(U.current),"hierarchy.lvl2:".concat(U.current),"hierarchy.lvl3:".concat(U.current),"hierarchy.lvl4:".concat(U.current),"hierarchy.lvl5:".concat(U.current),"hierarchy.lvl6:".concat(U.current),"content:".concat(U.current)],snippetEllipsisText:"\u2026",highlightPreTag:"<mark>",highlightPostTag:"</mark>",hitsPerPage:20,clickAnalytics:m},a)}]).catch((function(e){throw"RetryError"===e.name&&s("error"),e})).then((function(e){var o=e.results[0],a=o.hits,s=o.nbHits,p=nn(a,(function(e){return Qt(e)}),c);i.context.searchSuggestions.length<Object.keys(p).length&&l({searchSuggestions:Object.keys(p)}),l({nbHits:s});var v={};return m&&(v={__autocomplete_indexName:n,__autocomplete_queryID:o.queryID,__autocomplete_algoliaCredentials:{appId:t,apiKey:r}}),Object.values(p).map((function(e,t){return{sourceId:"hits".concat(t),onSelect:function(e){var t=e.item,r=e.event;z(t),rn(r)||u()},getItemUrl:function(e){return e.item.url},getItems:function(){return Object.values(nn(e,(function(e){return e.hierarchy.lvl1}),c)).map(f).map((function(e){return e.map((function(t){var r=null,n=e.find((function(e){return"lvl1"===e.type&&e.hierarchy.lvl1===t.hierarchy.lvl1}));return"lvl1"!==t.type&&n&&(r=n),ln(ln({},t),{},{__docsearch_parent:r},v)}))})).flat()}}}))}))}})}),[n,a,c,K,u,J,$,z,V,i,y,f,j,k,t,r]),Z=Q.getEnvironmentProps,G=Q.getRootProps,X=Q.refresh;return function(e){var t=e.getEnvironmentProps,r=e.panelElement,n=e.formElement,o=e.inputElement;yt.useEffect((function(){if(r&&n&&o){var e=t({panelElement:r,formElement:n,inputElement:o}),i=e.onTouchStart,a=e.onTouchMove;return window.addEventListener("touchstart",i),window.addEventListener("touchmove",a),function(){window.removeEventListener("touchstart",i),window.removeEventListener("touchmove",a)}}}),[t,r,n,o])}({getEnvironmentProps:Z,panelElement:H.current,formElement:M.current,inputElement:F.current}),function(e){var t=e.container;yt.useEffect((function(){if(t){var e=t.querySelectorAll("a[href]:not([disabled]), button:not([disabled]), input:not([disabled])"),r=e[0],n=e[e.length-1];return t.addEventListener("keydown",o),function(){t.removeEventListener("keydown",o)}}function o(e){"Tab"===e.key&&(e.shiftKey?document.activeElement===r&&(e.preventDefault(),n.focus()):document.activeElement===n&&(e.preventDefault(),r.focus()))}}),[t])}({container:R.current}),yt.useEffect((function(){return document.body.classList.add("DocSearch--active"),function(){var e,t;document.body.classList.remove("DocSearch--active"),null===(e=(t=window).scrollTo)||void 0===e||e.call(t,0,b)}}),[]),yt.useEffect((function(){window.matchMedia("(max-width: 768px)").matches&&(U.current=5)}),[]),yt.useEffect((function(){H.current&&(H.current.scrollTop=0)}),[T.query]),yt.useEffect((function(){V.length>0&&(X(),F.current&&F.current.focus())}),[V,X]),yt.useEffect((function(){function e(){if(L.current){var e=.01*window.innerHeight;L.current.style.setProperty("--docsearch-vh","".concat(e,"px"))}}return e(),window.addEventListener("resize",e),function(){window.removeEventListener("resize",e)}}),[]),yt.createElement("div",an({ref:R},G({"aria-expanded":!0}),{className:["DocSearch","DocSearch-Container","stalled"===T.status&&"DocSearch-Container--Stalled","error"===T.status&&"DocSearch-Container--Errored"].filter(Boolean).join(" "),role:"button",tabIndex:0,onMouseDown:function(e){e.target===e.currentTarget&&u()}}),yt.createElement("div",{className:"DocSearch-Modal",ref:L},yt.createElement("header",{className:"DocSearch-SearchBar",ref:M},yt.createElement(vr,an({},Q,{state:T,autoFocus:0===V.length,inputRef:F,isFromSelection:Boolean(V)&&V===B,translations:C,onClose:u}))),yt.createElement("div",{className:"DocSearch-Dropdown",ref:H},yt.createElement(lr,an({},Q,{indexName:n,state:T,hitComponent:p,resultsFooterComponent:d,disableUserPersonalization:j,recentSearches:J,favoriteSearches:$,inputRef:F,translations:_,getMissingResultsUrl:D,onItemClick:function(e,t){W(e),z(e),rn(t)||u()}}))),yt.createElement("footer",{className:"DocSearch-Footer"},yt.createElement(Ot,{translations:x}))))}}}]); \ No newline at end of file diff --git a/build/assets/js/8613d4b8.57109ea3.js b/build/assets/js/8613d4b8.a112ff98.js similarity index 85% rename from build/assets/js/8613d4b8.57109ea3.js rename to build/assets/js/8613d4b8.a112ff98.js index 6fd907551..7d429c7e1 100644 --- a/build/assets/js/8613d4b8.57109ea3.js +++ b/build/assets/js/8613d4b8.a112ff98.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[7975],{9135:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>m,frontMatter:()=>t,metadata:()=>i,toc:()=>l});var o=s(3274),r=s(2333);const t={},c="Function: omit()",i={id:"build-on-morph/sdk/functions/omit",title:"omit",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/functions/omit.md",sourceDirName:"build-on-morph/sdk/functions",slug:"/build-on-morph/sdk/functions/omit",permalink:"/docs/build-on-morph/sdk/functions/omit",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/functions/omit.md",tags:[],version:"current",frontMatter:{}},d={},l=[{value:"Type parameters",id:"type-parameters",level:2},{value:"Parameters",id:"parameters",level:2},{value:"Returns",id:"returns",level:2},{value:"Source",id:"source",level:2}];function h(e){const n={a:"a",blockquote:"blockquote",code:"code",em:"em",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,r.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,o.jsx)(n.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,o.jsx)(n.strong,{children:"Docs"})]}),"\n",(0,o.jsx)(n.hr,{}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / omit"]}),"\n",(0,o.jsx)(n.h1,{id:"function-omit",children:"Function: omit()"}),"\n",(0,o.jsxs)(n.blockquote,{children:["\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.strong,{children:"omit"}),"<",(0,o.jsx)(n.code,{children:"T"}),", ",(0,o.jsx)(n.code,{children:"K"}),">(",(0,o.jsx)(n.code,{children:"obj"}),", ...",(0,o.jsx)(n.code,{children:"keys"}),"): ",(0,o.jsx)(n.code,{children:"Omit"}),"<",(0,o.jsx)(n.code,{children:"T"}),", ",(0,o.jsx)(n.code,{children:"K"}),">"]}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:"Returns a copy of the given object ( ...obj ) with the given keys omitted."}),"\n",(0,o.jsx)(n.h2,{id:"type-parameters",children:"Type parameters"}),"\n",(0,o.jsxs)(n.p,{children:["\u2022 ",(0,o.jsx)(n.strong,{children:"T"})," ",(0,o.jsx)(n.em,{children:"extends"})," ",(0,o.jsx)(n.code,{children:"object"})]}),"\n",(0,o.jsxs)(n.p,{children:["\u2022 ",(0,o.jsx)(n.strong,{children:"K"})," ",(0,o.jsx)(n.em,{children:"extends"})," ",(0,o.jsx)(n.code,{children:"string"})," | ",(0,o.jsx)(n.code,{children:"number"})," | ",(0,o.jsx)(n.code,{children:"symbol"})]}),"\n",(0,o.jsx)(n.h2,{id:"parameters",children:"Parameters"}),"\n",(0,o.jsxs)(n.p,{children:["\u2022 ",(0,o.jsx)(n.strong,{children:"obj"}),": ",(0,o.jsx)(n.code,{children:"T"})]}),"\n",(0,o.jsx)(n.p,{children:"Object to return with the keys omitted."}),"\n",(0,o.jsxs)(n.p,{children:["\u2022 ...",(0,o.jsx)(n.strong,{children:"keys"}),": ",(0,o.jsx)(n.code,{children:"K"}),"[]"]}),"\n",(0,o.jsx)(n.p,{children:"Keys to omit from the returned object."}),"\n",(0,o.jsx)(n.h2,{id:"returns",children:"Returns"}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"Omit"}),"<",(0,o.jsx)(n.code,{children:"T"}),", ",(0,o.jsx)(n.code,{children:"K"}),">"]}),"\n",(0,o.jsx)(n.p,{children:"A copy of the given object with the given keys omitted."}),"\n",(0,o.jsx)(n.h2,{id:"source",children:"Source"}),"\n",(0,o.jsx)(n.p,{children:"src/utils/misc-utils.ts:11"})]})}function m(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(h,{...e})}):h(e)}},2333:(e,n,s)=>{s.d(n,{R:()=>c,x:()=>i});var o=s(9474);const r={},t=o.createContext(r);function c(e){const n=o.useContext(t);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:c(e.components),o.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[7975],{3933:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>m,frontMatter:()=>t,metadata:()=>i,toc:()=>l});var o=s(6070),r=s(1582);const t={},c="Function: omit()",i={id:"build-on-morph/sdk/functions/omit",title:"omit",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/functions/omit.md",sourceDirName:"build-on-morph/sdk/functions",slug:"/build-on-morph/sdk/functions/omit",permalink:"/docs/build-on-morph/sdk/functions/omit",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/functions/omit.md",tags:[],version:"current",frontMatter:{}},d={},l=[{value:"Type parameters",id:"type-parameters",level:2},{value:"Parameters",id:"parameters",level:2},{value:"Returns",id:"returns",level:2},{value:"Source",id:"source",level:2}];function h(e){const n={a:"a",blockquote:"blockquote",code:"code",em:"em",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,r.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,o.jsx)(n.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,o.jsx)(n.strong,{children:"Docs"})]}),"\n",(0,o.jsx)(n.hr,{}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / omit"]}),"\n",(0,o.jsx)(n.h1,{id:"function-omit",children:"Function: omit()"}),"\n",(0,o.jsxs)(n.blockquote,{children:["\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.strong,{children:"omit"}),"<",(0,o.jsx)(n.code,{children:"T"}),", ",(0,o.jsx)(n.code,{children:"K"}),">(",(0,o.jsx)(n.code,{children:"obj"}),", ...",(0,o.jsx)(n.code,{children:"keys"}),"): ",(0,o.jsx)(n.code,{children:"Omit"}),"<",(0,o.jsx)(n.code,{children:"T"}),", ",(0,o.jsx)(n.code,{children:"K"}),">"]}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:"Returns a copy of the given object ( ...obj ) with the given keys omitted."}),"\n",(0,o.jsx)(n.h2,{id:"type-parameters",children:"Type parameters"}),"\n",(0,o.jsxs)(n.p,{children:["\u2022 ",(0,o.jsx)(n.strong,{children:"T"})," ",(0,o.jsx)(n.em,{children:"extends"})," ",(0,o.jsx)(n.code,{children:"object"})]}),"\n",(0,o.jsxs)(n.p,{children:["\u2022 ",(0,o.jsx)(n.strong,{children:"K"})," ",(0,o.jsx)(n.em,{children:"extends"})," ",(0,o.jsx)(n.code,{children:"string"})," | ",(0,o.jsx)(n.code,{children:"number"})," | ",(0,o.jsx)(n.code,{children:"symbol"})]}),"\n",(0,o.jsx)(n.h2,{id:"parameters",children:"Parameters"}),"\n",(0,o.jsxs)(n.p,{children:["\u2022 ",(0,o.jsx)(n.strong,{children:"obj"}),": ",(0,o.jsx)(n.code,{children:"T"})]}),"\n",(0,o.jsx)(n.p,{children:"Object to return with the keys omitted."}),"\n",(0,o.jsxs)(n.p,{children:["\u2022 ...",(0,o.jsx)(n.strong,{children:"keys"}),": ",(0,o.jsx)(n.code,{children:"K"}),"[]"]}),"\n",(0,o.jsx)(n.p,{children:"Keys to omit from the returned object."}),"\n",(0,o.jsx)(n.h2,{id:"returns",children:"Returns"}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"Omit"}),"<",(0,o.jsx)(n.code,{children:"T"}),", ",(0,o.jsx)(n.code,{children:"K"}),">"]}),"\n",(0,o.jsx)(n.p,{children:"A copy of the given object with the given keys omitted."}),"\n",(0,o.jsx)(n.h2,{id:"source",children:"Source"}),"\n",(0,o.jsx)(n.p,{children:"src/utils/misc-utils.ts:11"})]})}function m(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(h,{...e})}):h(e)}},1582:(e,n,s)=>{s.d(n,{R:()=>c,x:()=>i});var o=s(758);const r={},t=o.createContext(r);function c(e){const n=o.useContext(t);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:c(e.components),o.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/868b6fb8.ccb36e11.js b/build/assets/js/868b6fb8.ccb36e11.js new file mode 100644 index 000000000..8b93ee771 --- /dev/null +++ b/build/assets/js/868b6fb8.ccb36e11.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[2985],{4061:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-pages","id":"default"}')}}]); \ No newline at end of file diff --git a/build/assets/js/8b6091b0.07d8a007.js b/build/assets/js/8b6091b0.2cc43598.js similarity index 78% rename from build/assets/js/8b6091b0.07d8a007.js rename to build/assets/js/8b6091b0.2cc43598.js index 4132f9c45..50a58e425 100644 --- a/build/assets/js/8b6091b0.07d8a007.js +++ b/build/assets/js/8b6091b0.2cc43598.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[8451],{7298:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>i,contentTitle:()=>c,default:()=>h,frontMatter:()=>t,metadata:()=>d,toc:()=>a});var r=o(3274),s=o(2333);const t={},c="Variable: BRIDGE_ADAPTER_DATA",d={id:"build-on-morph/sdk/variables/BRIDGE_ADAPTER_DATA",title:"BRIDGE_ADAPTER_DATA",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/variables/BRIDGE_ADAPTER_DATA.md",sourceDirName:"build-on-morph/sdk/variables",slug:"/build-on-morph/sdk/variables/BRIDGE_ADAPTER_DATA",permalink:"/docs/build-on-morph/sdk/variables/BRIDGE_ADAPTER_DATA",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/variables/BRIDGE_ADAPTER_DATA.md",tags:[],version:"current",frontMatter:{}},i={},a=[{value:"Source",id:"source",level:2}];function l(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,r.jsx)(n.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,r.jsx)(n.strong,{children:"Docs"})]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / BRIDGE_ADAPTER_DATA"]}),"\n",(0,r.jsx)(n.h1,{id:"variable-bridge_adapter_data",children:"Variable: BRIDGE_ADAPTER_DATA"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"const"})," ",(0,r.jsx)(n.strong,{children:"BRIDGE_ADAPTER_DATA"}),": ",(0,r.jsx)(n.code,{children:"{ [ChainID in L2ChainID]?: BridgeAdapterData }"})]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"Mapping of L1 chain IDs to the list of custom bridge addresses for each chain."}),"\n",(0,r.jsx)(n.h2,{id:"source",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/utils/chain-constants.ts:128"})]})}function h(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}},2333:(e,n,o)=>{o.d(n,{R:()=>c,x:()=>d});var r=o(9474);const s={},t=r.createContext(s);function c(e){const n=r.useContext(t);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:c(e.components),r.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[8451],{2896:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>i,contentTitle:()=>c,default:()=>h,frontMatter:()=>t,metadata:()=>d,toc:()=>a});var r=o(6070),s=o(1582);const t={},c="Variable: BRIDGE_ADAPTER_DATA",d={id:"build-on-morph/sdk/variables/BRIDGE_ADAPTER_DATA",title:"BRIDGE_ADAPTER_DATA",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/variables/BRIDGE_ADAPTER_DATA.md",sourceDirName:"build-on-morph/sdk/variables",slug:"/build-on-morph/sdk/variables/BRIDGE_ADAPTER_DATA",permalink:"/docs/build-on-morph/sdk/variables/BRIDGE_ADAPTER_DATA",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/variables/BRIDGE_ADAPTER_DATA.md",tags:[],version:"current",frontMatter:{}},i={},a=[{value:"Source",id:"source",level:2}];function l(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,r.jsx)(n.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,r.jsx)(n.strong,{children:"Docs"})]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / BRIDGE_ADAPTER_DATA"]}),"\n",(0,r.jsx)(n.h1,{id:"variable-bridge_adapter_data",children:"Variable: BRIDGE_ADAPTER_DATA"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"const"})," ",(0,r.jsx)(n.strong,{children:"BRIDGE_ADAPTER_DATA"}),": ",(0,r.jsx)(n.code,{children:"{ [ChainID in L2ChainID]?: BridgeAdapterData }"})]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"Mapping of L1 chain IDs to the list of custom bridge addresses for each chain."}),"\n",(0,r.jsx)(n.h2,{id:"source",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/utils/chain-constants.ts:128"})]})}function h(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}},1582:(e,n,o)=>{o.d(n,{R:()=>c,x:()=>d});var r=o(758);const s={},t=r.createContext(s);function c(e){const n=r.useContext(t);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:c(e.components),r.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/8d0b932e.0bc61134.js b/build/assets/js/8d0b932e.0bc61134.js deleted file mode 100644 index 83b0506f3..000000000 --- a/build/assets/js/8d0b932e.0bc61134.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[2322],{724:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>r,metadata:()=>s,toc:()=>p});var n=o(3274),i=o(2333);const r={title:"Dapp Examples on Morph",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},a=void 0,s={id:"build-on-morph/developer-resources/dapp-examples-on-morph",title:"Dapp Examples on Morph",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/build-on-morph/developer-resources/7-dapp-examples-on-morph.md",sourceDirName:"build-on-morph/developer-resources",slug:"/build-on-morph/developer-resources/dapp-examples-on-morph",permalink:"/docs/build-on-morph/developer-resources/dapp-examples-on-morph",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/developer-resources/7-dapp-examples-on-morph.md",tags:[],version:"current",sidebarPosition:7,frontMatter:{title:"Dapp Examples on Morph",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"Contract Addresses",permalink:"/docs/build-on-morph/developer-resources/contracts"},next:{title:"Morph JSON-RPC API Methods",permalink:"/docs/build-on-morph/developer-resources/morph-json-rpc-api-methods"}},l={},p=[{value:"Example Dapp: Building a Decentralized Hotel Booking System on Morph",id:"example-dapp-building-a-decentralized-hotel-booking-system-on-morph",level:2},{value:"Example Dapp: Building a fractionalized real-estate dApp",id:"example-dapp-building-a-fractionalized-real-estate-dapp",level:2},{value:"Query and Index Smart Contracts on Morph using Goldsky",id:"query-and-index-smart-contracts-on-morph-using-goldsky",level:2}];function d(e){const t={a:"a",admonition:"admonition",h2:"h2",img:"img",p:"p",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(t.p,{children:["We provide multiple example Dapps for developers, built on our ",(0,n.jsx)(t.a,{href:"https://github.com/morph-l2/morph_starter_kit",children:"Morph starter template"}),", deployed on the Morph Testnet, and accompanied by corresponding frontends."]}),"\n",(0,n.jsx)(t.p,{children:"These examples are very helpful for developers to go through the entire development process on Morph. Below is a brief introduction of the example Dapps and tutorial links."}),"\n",(0,n.jsx)(t.admonition,{title:"Morph Starter Template",type:"tip",children:(0,n.jsx)(t.p,{children:"The Morph starter kit helps developers quickly and efficiently, build dApps on the Morph blockchain. It is a comprehensive template for building fullstack dApps."})}),"\n",(0,n.jsx)(t.h2,{id:"example-dapp-building-a-decentralized-hotel-booking-system-on-morph",children:"Example Dapp: Building a Decentralized Hotel Booking System on Morph"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Okido Finance",src:o(5659).A+"",width:"1600",height:"874"})}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.a,{href:"https://morph.ghost.io/developer-guide-building-a-decentralized-hotel-booking-system-on-morph-2/",children:"Check the tutorial"})}),"\n",(0,n.jsx)(t.p,{children:"This guide walks you through the process of building a decentralized hotel booking system on the MorphL2 blockchain using Solidity smart contracts and a React & Wagmi front-end. This system allows hotel owners to add rooms, manage room availability, accept bookings, and receive reviews from guests."}),"\n",(0,n.jsx)(t.h2,{id:"example-dapp-building-a-fractionalized-real-estate-dapp",children:"Example Dapp: Building a fractionalized real-estate dApp"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Okido Finance",src:o(624).A+"",width:"1600",height:"1032"})}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.a,{href:"https://morph.ghost.io/developer-guide-realestate-dapp/",children:"Check the tutorial"})}),"\n",(0,n.jsx)(t.p,{children:"Imagine being able to invest in a high-value real estate property without needing to shell out a huge amount of money upfront. Sounds pretty appealing, right? This is the magic of fractionalization. By dividing a property into smaller, more affordable shares, fractionalization makes it possible for just about anyone to get in on the real estate action. It\u2019s like turning a luxury mansion into a bunch of reasonably priced slices that you can buy and sell easily, just like stocks."}),"\n",(0,n.jsx)(t.p,{children:"Our project today, Okido Finance, takes this idea and builds a decentralized application (DApp) around it. With Okido Finance, property owners can create shares of their real estate assets and investors can buy these shares using a custom ERC20 token. This not only democratizes real estate investment but also adds a layer of liquidity, making it easier to trade shares and get in or out of investments."}),"\n",(0,n.jsx)(t.p,{children:"In this tutorial, I\u2019ll walk you through building the Okido Finance DApp step by step. We\u2019ll start with setting up the development environment, move on to deploying smart contracts, and finish with designing a user-friendly UI."}),"\n",(0,n.jsx)(t.p,{children:"By the end, you\u2019ll have a solid grasp of how to build a decentralized real estate fractionalization platform. Whether you\u2019re looking to create something similar or just want to learn more about these technologies, you\u2019ll be well-equipped to dive deeper into fractionalization. Let\u2019s get started!"}),"\n",(0,n.jsx)(t.h2,{id:"query-and-index-smart-contracts-on-morph-using-goldsky",children:"Query and Index Smart Contracts on Morph using Goldsky"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Okido Finance",src:o(1074).A+"",width:"1600",height:"855"})}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.a,{href:"https://morph.ghost.io/query-and-index-smart-contracts-on-morph-using-goldsky/",children:"Check the tutorial"})}),"\n",(0,n.jsx)(t.p,{children:"Picture this: you're a developer with a brand-new smart contract deployed on the Morph. Your next challenge is to efficiently query and retrieve on-chain data for your decentralized application (dApp). That's where subgraphs come in. Subgraphs offer a powerful and flexible way to index and query blockchain data, making it easy to build responsive and data-rich dApps."}),"\n",(0,n.jsx)(t.p,{children:"In this tutorial, we'll walk through deploying a smart contract on the Morph chain and setting up a subgraph to query this contract. We\u2019ll also introduce Goldsky, a tool that makes creating and managing subgraphs a breeze. Let\u2019s get started and see what we can build together!"})]})}function h(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},5659:(e,t,o)=>{o.d(t,{A:()=>n});const n=o.p+"assets/images/ExampleDapp1-96e1594e7db7d9945a90a121447ad21c.png"},624:(e,t,o)=>{o.d(t,{A:()=>n});const n=o.p+"assets/images/ExampleDapp2-bdb0b04b62866c0000bac8cf45d693b8.png"},1074:(e,t,o)=>{o.d(t,{A:()=>n});const n=o.p+"assets/images/subg-c6633cc1c116f6b625a78ca4d006b583.png"},2333:(e,t,o)=>{o.d(t,{R:()=>a,x:()=>s});var n=o(9474);const i={},r=n.createContext(i);function a(e){const t=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),n.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/8d0b932e.3e2c9c72.js b/build/assets/js/8d0b932e.3e2c9c72.js new file mode 100644 index 000000000..a1aff2f16 --- /dev/null +++ b/build/assets/js/8d0b932e.3e2c9c72.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[2322],{30:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>r,metadata:()=>s,toc:()=>p});var n=o(6070),i=o(1582);const r={title:"Dapp Examples on Morph",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},a=void 0,s={id:"build-on-morph/developer-resources/dapp-examples-on-morph",title:"Dapp Examples on Morph",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/build-on-morph/developer-resources/7-dapp-examples-on-morph.md",sourceDirName:"build-on-morph/developer-resources",slug:"/build-on-morph/developer-resources/dapp-examples-on-morph",permalink:"/docs/build-on-morph/developer-resources/dapp-examples-on-morph",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/developer-resources/7-dapp-examples-on-morph.md",tags:[],version:"current",sidebarPosition:7,frontMatter:{title:"Dapp Examples on Morph",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"Contract Addresses",permalink:"/docs/build-on-morph/developer-resources/contracts"},next:{title:"Morph JSON-RPC API Methods",permalink:"/docs/build-on-morph/developer-resources/morph-json-rpc-api-methods"}},l={},p=[{value:"Example Dapp: Building a Decentralized Hotel Booking System on Morph",id:"example-dapp-building-a-decentralized-hotel-booking-system-on-morph",level:2},{value:"Example Dapp: Building a fractionalized real-estate dApp",id:"example-dapp-building-a-fractionalized-real-estate-dapp",level:2},{value:"Query and Index Smart Contracts on Morph using Goldsky",id:"query-and-index-smart-contracts-on-morph-using-goldsky",level:2}];function d(e){const t={a:"a",admonition:"admonition",h2:"h2",img:"img",p:"p",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(t.p,{children:["We provide multiple example Dapps for developers, built on our ",(0,n.jsx)(t.a,{href:"https://github.com/morph-l2/morph_starter_kit",children:"Morph starter template"}),", deployed on the Morph Testnet, and accompanied by corresponding frontends."]}),"\n",(0,n.jsx)(t.p,{children:"These examples are very helpful for developers to go through the entire development process on Morph. Below is a brief introduction of the example Dapps and tutorial links."}),"\n",(0,n.jsx)(t.admonition,{title:"Morph Starter Template",type:"tip",children:(0,n.jsx)(t.p,{children:"The Morph starter kit helps developers quickly and efficiently, build dApps on the Morph blockchain. It is a comprehensive template for building fullstack dApps."})}),"\n",(0,n.jsx)(t.h2,{id:"example-dapp-building-a-decentralized-hotel-booking-system-on-morph",children:"Example Dapp: Building a Decentralized Hotel Booking System on Morph"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Okido Finance",src:o(8343).A+"",width:"1600",height:"874"})}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.a,{href:"https://morph.ghost.io/developer-guide-building-a-decentralized-hotel-booking-system-on-morph-2/",children:"Check the tutorial"})}),"\n",(0,n.jsx)(t.p,{children:"This guide walks you through the process of building a decentralized hotel booking system on the MorphL2 blockchain using Solidity smart contracts and a React & Wagmi front-end. This system allows hotel owners to add rooms, manage room availability, accept bookings, and receive reviews from guests."}),"\n",(0,n.jsx)(t.h2,{id:"example-dapp-building-a-fractionalized-real-estate-dapp",children:"Example Dapp: Building a fractionalized real-estate dApp"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Okido Finance",src:o(7708).A+"",width:"1600",height:"1032"})}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.a,{href:"https://morph.ghost.io/developer-guide-realestate-dapp/",children:"Check the tutorial"})}),"\n",(0,n.jsx)(t.p,{children:"Imagine being able to invest in a high-value real estate property without needing to shell out a huge amount of money upfront. Sounds pretty appealing, right? This is the magic of fractionalization. By dividing a property into smaller, more affordable shares, fractionalization makes it possible for just about anyone to get in on the real estate action. It\u2019s like turning a luxury mansion into a bunch of reasonably priced slices that you can buy and sell easily, just like stocks."}),"\n",(0,n.jsx)(t.p,{children:"Our project today, Okido Finance, takes this idea and builds a decentralized application (DApp) around it. With Okido Finance, property owners can create shares of their real estate assets and investors can buy these shares using a custom ERC20 token. This not only democratizes real estate investment but also adds a layer of liquidity, making it easier to trade shares and get in or out of investments."}),"\n",(0,n.jsx)(t.p,{children:"In this tutorial, I\u2019ll walk you through building the Okido Finance DApp step by step. We\u2019ll start with setting up the development environment, move on to deploying smart contracts, and finish with designing a user-friendly UI."}),"\n",(0,n.jsx)(t.p,{children:"By the end, you\u2019ll have a solid grasp of how to build a decentralized real estate fractionalization platform. Whether you\u2019re looking to create something similar or just want to learn more about these technologies, you\u2019ll be well-equipped to dive deeper into fractionalization. Let\u2019s get started!"}),"\n",(0,n.jsx)(t.h2,{id:"query-and-index-smart-contracts-on-morph-using-goldsky",children:"Query and Index Smart Contracts on Morph using Goldsky"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Okido Finance",src:o(6694).A+"",width:"1600",height:"855"})}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.a,{href:"https://morph.ghost.io/query-and-index-smart-contracts-on-morph-using-goldsky/",children:"Check the tutorial"})}),"\n",(0,n.jsx)(t.p,{children:"Picture this: you're a developer with a brand-new smart contract deployed on the Morph. Your next challenge is to efficiently query and retrieve on-chain data for your decentralized application (dApp). That's where subgraphs come in. Subgraphs offer a powerful and flexible way to index and query blockchain data, making it easy to build responsive and data-rich dApps."}),"\n",(0,n.jsx)(t.p,{children:"In this tutorial, we'll walk through deploying a smart contract on the Morph chain and setting up a subgraph to query this contract. We\u2019ll also introduce Goldsky, a tool that makes creating and managing subgraphs a breeze. Let\u2019s get started and see what we can build together!"})]})}function h(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},8343:(e,t,o)=>{o.d(t,{A:()=>n});const n=o.p+"assets/images/ExampleDapp1-96e1594e7db7d9945a90a121447ad21c.png"},7708:(e,t,o)=>{o.d(t,{A:()=>n});const n=o.p+"assets/images/ExampleDapp2-bdb0b04b62866c0000bac8cf45d693b8.png"},6694:(e,t,o)=>{o.d(t,{A:()=>n});const n=o.p+"assets/images/subg-c6633cc1c116f6b625a78ca4d006b583.png"},1582:(e,t,o)=>{o.d(t,{R:()=>a,x:()=>s});var n=o(758);const i={},r=n.createContext(i);function a(e){const t=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),n.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/9235c071.e334b5d6.js b/build/assets/js/9235c071.f936f4f6.js similarity index 82% rename from build/assets/js/9235c071.e334b5d6.js rename to build/assets/js/9235c071.f936f4f6.js index a97d895bf..f2303c129 100644 --- a/build/assets/js/9235c071.e334b5d6.js +++ b/build/assets/js/9235c071.f936f4f6.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[1971],{8283:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>h,contentTitle:()=>c,default:()=>a,frontMatter:()=>t,metadata:()=>l,toc:()=>i});var o=n(3274),r=n(2333);const t={},c="Function: hashLowLevelMessageV2()",l={id:"build-on-morph/sdk/functions/hashLowLevelMessageV2",title:"hashLowLevelMessageV2",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/functions/hashLowLevelMessageV2.md",sourceDirName:"build-on-morph/sdk/functions",slug:"/build-on-morph/sdk/functions/hashLowLevelMessageV2",permalink:"/docs/build-on-morph/sdk/functions/hashLowLevelMessageV2",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/functions/hashLowLevelMessageV2.md",tags:[],version:"current",frontMatter:{}},h={},i=[{value:"Parameters",id:"parameters",level:2},{value:"Returns",id:"returns",level:2},{value:"Source",id:"source",level:2}];function d(e){const s={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,r.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,o.jsx)(s.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,o.jsx)(s.strong,{children:"Docs"})]}),"\n",(0,o.jsx)(s.hr,{}),"\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / hashLowLevelMessageV2"]}),"\n",(0,o.jsx)(s.h1,{id:"function-hashlowlevelmessagev2",children:"Function: hashLowLevelMessageV2()"}),"\n",(0,o.jsxs)(s.blockquote,{children:["\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.strong,{children:"hashLowLevelMessageV2"}),"(",(0,o.jsx)(s.code,{children:"message"}),"): ",(0,o.jsx)(s.code,{children:"string"})]}),"\n"]}),"\n",(0,o.jsx)(s.p,{children:"Utility for hashing a LowLevelMessage object."}),"\n",(0,o.jsx)(s.h2,{id:"parameters",children:"Parameters"}),"\n",(0,o.jsxs)(s.p,{children:["\u2022 ",(0,o.jsx)(s.strong,{children:"message"}),": ",(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/LowLevelMessage",children:(0,o.jsx)(s.code,{children:"LowLevelMessage"})})]}),"\n",(0,o.jsx)(s.p,{children:"LowLevelMessage object to hash."}),"\n",(0,o.jsx)(s.h2,{id:"returns",children:"Returns"}),"\n",(0,o.jsx)(s.p,{children:(0,o.jsx)(s.code,{children:"string"})}),"\n",(0,o.jsx)(s.p,{children:"Hash of the given LowLevelMessage."}),"\n",(0,o.jsx)(s.h2,{id:"source",children:"Source"}),"\n",(0,o.jsx)(s.p,{children:"src/utils/message-utils.ts:82"})]})}function a(e={}){const{wrapper:s}={...(0,r.R)(),...e.components};return s?(0,o.jsx)(s,{...e,children:(0,o.jsx)(d,{...e})}):d(e)}},2333:(e,s,n)=>{n.d(s,{R:()=>c,x:()=>l});var o=n(9474);const r={},t=o.createContext(r);function c(e){const s=o.useContext(t);return o.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function l(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:c(e.components),o.createElement(t.Provider,{value:s},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[1971],{4605:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>h,contentTitle:()=>c,default:()=>a,frontMatter:()=>t,metadata:()=>l,toc:()=>i});var o=n(6070),r=n(1582);const t={},c="Function: hashLowLevelMessageV2()",l={id:"build-on-morph/sdk/functions/hashLowLevelMessageV2",title:"hashLowLevelMessageV2",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/functions/hashLowLevelMessageV2.md",sourceDirName:"build-on-morph/sdk/functions",slug:"/build-on-morph/sdk/functions/hashLowLevelMessageV2",permalink:"/docs/build-on-morph/sdk/functions/hashLowLevelMessageV2",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/functions/hashLowLevelMessageV2.md",tags:[],version:"current",frontMatter:{}},h={},i=[{value:"Parameters",id:"parameters",level:2},{value:"Returns",id:"returns",level:2},{value:"Source",id:"source",level:2}];function d(e){const s={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,r.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,o.jsx)(s.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,o.jsx)(s.strong,{children:"Docs"})]}),"\n",(0,o.jsx)(s.hr,{}),"\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / hashLowLevelMessageV2"]}),"\n",(0,o.jsx)(s.h1,{id:"function-hashlowlevelmessagev2",children:"Function: hashLowLevelMessageV2()"}),"\n",(0,o.jsxs)(s.blockquote,{children:["\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.strong,{children:"hashLowLevelMessageV2"}),"(",(0,o.jsx)(s.code,{children:"message"}),"): ",(0,o.jsx)(s.code,{children:"string"})]}),"\n"]}),"\n",(0,o.jsx)(s.p,{children:"Utility for hashing a LowLevelMessage object."}),"\n",(0,o.jsx)(s.h2,{id:"parameters",children:"Parameters"}),"\n",(0,o.jsxs)(s.p,{children:["\u2022 ",(0,o.jsx)(s.strong,{children:"message"}),": ",(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/LowLevelMessage",children:(0,o.jsx)(s.code,{children:"LowLevelMessage"})})]}),"\n",(0,o.jsx)(s.p,{children:"LowLevelMessage object to hash."}),"\n",(0,o.jsx)(s.h2,{id:"returns",children:"Returns"}),"\n",(0,o.jsx)(s.p,{children:(0,o.jsx)(s.code,{children:"string"})}),"\n",(0,o.jsx)(s.p,{children:"Hash of the given LowLevelMessage."}),"\n",(0,o.jsx)(s.h2,{id:"source",children:"Source"}),"\n",(0,o.jsx)(s.p,{children:"src/utils/message-utils.ts:82"})]})}function a(e={}){const{wrapper:s}={...(0,r.R)(),...e.components};return s?(0,o.jsx)(s,{...e,children:(0,o.jsx)(d,{...e})}):d(e)}},1582:(e,s,n)=>{n.d(s,{R:()=>c,x:()=>l});var o=n(758);const r={},t=o.createContext(r);function c(e){const s=o.useContext(t);return o.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function l(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:c(e.components),o.createElement(t.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/935f2afb.0bdf028c.js b/build/assets/js/935f2afb.0bdf028c.js new file mode 100644 index 000000000..cc1bd4af2 --- /dev/null +++ b/build/assets/js/935f2afb.0bdf028c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[8581],{5610:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"UserSidebar":[{"type":"link","label":"Welcome to Morph","href":"/docs/about-morph/user-navigation-page","docId":"about-morph/user-navigation-page","unlisted":false},{"type":"category","label":"Introductory Concepts","items":[{"type":"link","label":"Overview","href":"/docs/about-morph/overview-of-morph","docId":"about-morph/overview-of-morph","unlisted":false},{"type":"link","label":"The Technology Behind Morph","href":"/docs/about-morph/the-technology-behind-morph","docId":"about-morph/the-technology-behind-morph","unlisted":false},{"type":"link","label":"Morph\'s Architecture","href":"/docs/about-morph/morphs-architecture","docId":"about-morph/morphs-architecture","unlisted":false},{"type":"link","label":"Morph\'s Vision and Mission","href":"/docs/about-morph/morphs-vision-and-mission","docId":"about-morph/morphs-vision-and-mission","unlisted":false},{"type":"link","label":"Key Concepts","href":"/docs/about-morph/key-concepts","docId":"about-morph/key-concepts","unlisted":false},{"type":"link","label":"Roadmap","href":"/docs/about-morph/roadmap","docId":"about-morph/roadmap","unlisted":false},{"type":"link","label":"FAQs","href":"/docs/about-morph/faqs","docId":"about-morph/faqs","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Step-by-Step Guides","items":[{"type":"link","label":"Wallet Setup","href":"/docs/quick-start/wallet-setup","docId":"quick-start/wallet-setup","unlisted":false},{"type":"link","label":"Faucet","href":"/docs/quick-start/faucet","docId":"quick-start/faucet","unlisted":false},{"type":"link","label":"Bridge","href":"/docs/quick-start/bridge","docId":"quick-start/bridge","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Links and Tools","items":[{"type":"link","href":"https://bridge.morphl2.io/","label":"Morph Official Bridge"},{"type":"link","href":"https://explorer.morphl2.io/","label":"Morph Mainnet Explorer"},{"type":"link","href":"https://bridge-holesky.morphl2.io/","label":"Morph Holesky Official Bridge"},{"type":"link","href":"https://explorer-holesky.morphl2.io/","label":"Morph Holesky Explorer"},{"type":"link","href":"https://holesky.etherscan.io/","label":"Ethereum Holesky Explorer"}],"collapsed":true,"collapsible":true},{"type":"link","label":"Build on Morph","href":"/docs/build-on-morph/developer-navigation-page","docId":"build-on-morph/developer-navigation-page","unlisted":false},{"type":"category","label":"Fundamental Concepts","items":[{"type":"link","label":"Morph Modular Design","href":"/docs/how-morph-works/morph-modular-design","docId":"how-morph-works/morph-modular-design","unlisted":false},{"type":"link","label":"Optimistic zkEVM","href":"/docs/how-morph-works/optimistic-zkevm","docId":"how-morph-works/optimistic-zkevm","unlisted":false},{"type":"category","label":"Decentralized Sequencers","items":[{"type":"link","label":"Morph\'s Decentralized Sequencer Network","href":"/docs/how-morph-works/decentralized-sequencers/morph-decentralized-sequencer-network","docId":"how-morph-works/decentralized-sequencers/morph-decentralized-sequencer-network","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"General Protocol Design","items":[{"type":"link","label":"Rollup","href":"/docs/how-morph-works/general-protocol-design/rollup","docId":"how-morph-works/general-protocol-design/rollup","unlisted":false},{"type":"link","label":"Communication between Morph and Ethereum","href":"/docs/how-morph-works/general-protocol-design/communicate-between-morph-and-ethereum","docId":"how-morph-works/general-protocol-design/communicate-between-morph-and-ethereum","unlisted":false},{"type":"link","label":"Transactions Life Cycle","href":"/docs/how-morph-works/general-protocol-design/transactions-life-cycle","docId":"how-morph-works/general-protocol-design/transactions-life-cycle","unlisted":false},{"type":"link","label":"Difference between Morph and Ethereum","href":"/docs/how-morph-works/general-protocol-design/difference-between-ethereum-and-morph","docId":"how-morph-works/general-protocol-design/difference-between-ethereum-and-morph","unlisted":false},{"type":"link","label":"Understand Transaction Cost on Morph","href":"/docs/build-on-morph/build-on-morph/understand-transaction-cost-on-morph","docId":"build-on-morph/build-on-morph/understand-transaction-cost-on-morph","unlisted":false}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Developer Guides","items":[{"type":"link","label":"Morph Integration One Page","href":"/docs/build-on-morph/build-on-morph/integration-one-page","docId":"build-on-morph/build-on-morph/integration-one-page","unlisted":false},{"type":"link","label":"Development Setup","href":"/docs/build-on-morph/build-on-morph/development-setup","docId":"build-on-morph/build-on-morph/development-setup","unlisted":false},{"type":"link","label":"Deploy Contracts on Morph","href":"/docs/build-on-morph/code-examples/deploy-contract-on-morph","docId":"build-on-morph/code-examples/deploy-contract-on-morph","unlisted":false},{"type":"link","label":"Verify Your Smart Contracts","href":"/docs/build-on-morph/build-on-morph/verify-your-smart-contracts","docId":"build-on-morph/build-on-morph/verify-your-smart-contracts","unlisted":false},{"type":"link","label":"Bridge between Morph and Ethereum","href":"/docs/build-on-morph/build-on-morph/bridge-between-morph-and-ethereum","docId":"build-on-morph/build-on-morph/bridge-between-morph-and-ethereum","unlisted":false},{"type":"link","label":"Use SDK to interact with Morph","href":"/docs/build-on-morph/sdk/globals","docId":"build-on-morph/sdk/globals","unlisted":false},{"type":"category","label":"Use Ecosystem Developer Tools","items":[{"type":"link","label":"User Onboarding","href":"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/user-onboarding","docId":"build-on-morph/developer-resources/use-ecosystem-developer-tools/user-onboarding","unlisted":false},{"type":"link","label":"Cross Chain Interoperability","href":"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/cross-chain-interoperability","docId":"build-on-morph/developer-resources/use-ecosystem-developer-tools/cross-chain-interoperability","unlisted":false},{"type":"link","label":"Safe Multi-Signature Wallet","href":"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/safe-multi-signature-wallet","docId":"build-on-morph/developer-resources/use-ecosystem-developer-tools/safe-multi-signature-wallet","unlisted":false},{"type":"link","label":"RPC Services","href":"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/rpc-services","docId":"build-on-morph/developer-resources/use-ecosystem-developer-tools/rpc-services","unlisted":false},{"type":"link","label":"Account Abstraction","href":"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/account-abstraction","docId":"build-on-morph/developer-resources/use-ecosystem-developer-tools/account-abstraction","unlisted":false},{"type":"link","label":"Blockchain Indexing Services","href":"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-indexing-services","docId":"build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-indexing-services","unlisted":false},{"type":"link","label":"Blockchain Oracles","href":"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-oracles","docId":"build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-oracles","unlisted":false},{"type":"link","label":"Block Explorer","href":"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/block-explorer","docId":"build-on-morph/developer-resources/use-ecosystem-developer-tools/block-explorer","unlisted":false},{"type":"link","label":"Artificial Intelligence","href":"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/artificial-intelligence","docId":"build-on-morph/developer-resources/use-ecosystem-developer-tools/artificial-intelligence","unlisted":false},{"type":"link","label":"Decentralized Naming Services","href":"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/decentralized-naming-services","docId":"build-on-morph/developer-resources/use-ecosystem-developer-tools/decentralized-naming-services","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Node Operation","items":[{"type":"category","label":"Full Node","items":[{"type":"link","label":"Run a full node with docker","href":"/docs/build-on-morph/developer-resources/node-operation/full-node/run-in-docker","docId":"build-on-morph/developer-resources/node-operation/full-node/run-in-docker","unlisted":false},{"type":"link","label":"Run a full node from source","href":"/docs/build-on-morph/developer-resources/node-operation/full-node/run-on-host","docId":"build-on-morph/developer-resources/node-operation/full-node/run-on-host","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Validator","items":[{"type":"link","label":"Run a validator with docker","href":"/docs/build-on-morph/developer-resources/node-operation/validator-node/run-in-docker","docId":"build-on-morph/developer-resources/node-operation/validator-node/run-in-docker","unlisted":false},{"type":"link","label":"Run a validator from source","href":"/docs/build-on-morph/developer-resources/node-operation/validator-node/run-on-host","docId":"build-on-morph/developer-resources/node-operation/validator-node/run-on-host","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Upgrade Node","items":[{"type":"link","label":"Upgrade node running from docker","href":"/docs/build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-docker","docId":"build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-docker","unlisted":false},{"type":"link","label":"Upgrade node running on the host","href":"/docs/build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-host","docId":"build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-host","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"Prune State","href":"/docs/build-on-morph/developer-resources/node-operation/prune-state","docId":"build-on-morph/developer-resources/node-operation/prune-state","unlisted":false}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Developer Resources","items":[{"type":"link","label":"Contract Addresses","href":"/docs/build-on-morph/developer-resources/contracts","docId":"build-on-morph/developer-resources/contracts","unlisted":false},{"type":"link","label":"Dapp Examples on Morph","href":"/docs/build-on-morph/developer-resources/dapp-examples-on-morph","docId":"build-on-morph/developer-resources/dapp-examples-on-morph","unlisted":false},{"type":"link","label":"Morph JSON-RPC API Methods","href":"/docs/build-on-morph/developer-resources/morph-json-rpc-api-methods","docId":"build-on-morph/developer-resources/morph-json-rpc-api-methods","unlisted":false},{"type":"link","href":"https://explorer-holesky.morphl2.io/","label":"Morph Holesky Explorer"},{"type":"link","href":"https://holesky.etherscan.io/","label":"Ethereum Holesky Explorer"}],"collapsed":true,"collapsible":true}],"DeveloperSidebar":[{"type":"link","label":"Welcome to Morph","href":"/docs/about-morph/user-navigation-page","docId":"about-morph/user-navigation-page","unlisted":false},{"type":"category","label":"Introductory Concepts","items":[{"type":"link","label":"Overview","href":"/docs/about-morph/overview-of-morph","docId":"about-morph/overview-of-morph","unlisted":false},{"type":"link","label":"The Technology Behind Morph","href":"/docs/about-morph/the-technology-behind-morph","docId":"about-morph/the-technology-behind-morph","unlisted":false},{"type":"link","label":"Morph\'s Architecture","href":"/docs/about-morph/morphs-architecture","docId":"about-morph/morphs-architecture","unlisted":false},{"type":"link","label":"Morph\'s Vision and Mission","href":"/docs/about-morph/morphs-vision-and-mission","docId":"about-morph/morphs-vision-and-mission","unlisted":false},{"type":"link","label":"Key Concepts","href":"/docs/about-morph/key-concepts","docId":"about-morph/key-concepts","unlisted":false},{"type":"link","label":"Roadmap","href":"/docs/about-morph/roadmap","docId":"about-morph/roadmap","unlisted":false},{"type":"link","label":"FAQs","href":"/docs/about-morph/faqs","docId":"about-morph/faqs","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Step-by-Step Guides","items":[{"type":"link","label":"Wallet Setup","href":"/docs/quick-start/wallet-setup","docId":"quick-start/wallet-setup","unlisted":false},{"type":"link","label":"Faucet","href":"/docs/quick-start/faucet","docId":"quick-start/faucet","unlisted":false},{"type":"link","label":"Bridge","href":"/docs/quick-start/bridge","docId":"quick-start/bridge","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Links and Tools","items":[{"type":"link","href":"https://bridge.morphl2.io/","label":"Morph Official Bridge"},{"type":"link","href":"https://explorer.morphl2.io/","label":"Morph Mainnet Explorer"},{"type":"link","href":"https://bridge-holesky.morphl2.io/","label":"Morph Holesky Official Bridge"},{"type":"link","href":"https://explorer-holesky.morphl2.io/","label":"Morph Holesky Explorer"},{"type":"link","href":"https://holesky.etherscan.io/","label":"Ethereum Holesky Explorer"}],"collapsed":true,"collapsible":true},{"type":"link","label":"Build on Morph","href":"/docs/build-on-morph/developer-navigation-page","docId":"build-on-morph/developer-navigation-page","unlisted":false},{"type":"category","label":"Fundamental Concepts","items":[{"type":"link","label":"Morph Modular Design","href":"/docs/how-morph-works/morph-modular-design","docId":"how-morph-works/morph-modular-design","unlisted":false},{"type":"link","label":"Optimistic zkEVM","href":"/docs/how-morph-works/optimistic-zkevm","docId":"how-morph-works/optimistic-zkevm","unlisted":false},{"type":"category","label":"Decentralized Sequencers","items":[{"type":"link","label":"Morph\'s Decentralized Sequencer Network","href":"/docs/how-morph-works/decentralized-sequencers/morph-decentralized-sequencer-network","docId":"how-morph-works/decentralized-sequencers/morph-decentralized-sequencer-network","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"General Protocol Design","items":[{"type":"link","label":"Rollup","href":"/docs/how-morph-works/general-protocol-design/rollup","docId":"how-morph-works/general-protocol-design/rollup","unlisted":false},{"type":"link","label":"Communication between Morph and Ethereum","href":"/docs/how-morph-works/general-protocol-design/communicate-between-morph-and-ethereum","docId":"how-morph-works/general-protocol-design/communicate-between-morph-and-ethereum","unlisted":false},{"type":"link","label":"Transactions Life Cycle","href":"/docs/how-morph-works/general-protocol-design/transactions-life-cycle","docId":"how-morph-works/general-protocol-design/transactions-life-cycle","unlisted":false},{"type":"link","label":"Difference between Morph and Ethereum","href":"/docs/how-morph-works/general-protocol-design/difference-between-ethereum-and-morph","docId":"how-morph-works/general-protocol-design/difference-between-ethereum-and-morph","unlisted":false},{"type":"link","label":"Understand Transaction Cost on Morph","href":"/docs/build-on-morph/build-on-morph/understand-transaction-cost-on-morph","docId":"build-on-morph/build-on-morph/understand-transaction-cost-on-morph","unlisted":false}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Developer Guides","items":[{"type":"link","label":"Morph Integration One Page","href":"/docs/build-on-morph/build-on-morph/integration-one-page","docId":"build-on-morph/build-on-morph/integration-one-page","unlisted":false},{"type":"link","label":"Development Setup","href":"/docs/build-on-morph/build-on-morph/development-setup","docId":"build-on-morph/build-on-morph/development-setup","unlisted":false},{"type":"link","label":"Deploy Contracts on Morph","href":"/docs/build-on-morph/code-examples/deploy-contract-on-morph","docId":"build-on-morph/code-examples/deploy-contract-on-morph","unlisted":false},{"type":"link","label":"Verify Your Smart Contracts","href":"/docs/build-on-morph/build-on-morph/verify-your-smart-contracts","docId":"build-on-morph/build-on-morph/verify-your-smart-contracts","unlisted":false},{"type":"link","label":"Bridge between Morph and Ethereum","href":"/docs/build-on-morph/build-on-morph/bridge-between-morph-and-ethereum","docId":"build-on-morph/build-on-morph/bridge-between-morph-and-ethereum","unlisted":false},{"type":"link","label":"Use SDK to interact with Morph","href":"/docs/build-on-morph/sdk/globals","docId":"build-on-morph/sdk/globals","unlisted":false},{"type":"category","label":"Use Ecosystem Developer Tools","items":[{"type":"link","label":"User Onboarding","href":"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/user-onboarding","docId":"build-on-morph/developer-resources/use-ecosystem-developer-tools/user-onboarding","unlisted":false},{"type":"link","label":"Cross Chain Interoperability","href":"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/cross-chain-interoperability","docId":"build-on-morph/developer-resources/use-ecosystem-developer-tools/cross-chain-interoperability","unlisted":false},{"type":"link","label":"Safe Multi-Signature Wallet","href":"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/safe-multi-signature-wallet","docId":"build-on-morph/developer-resources/use-ecosystem-developer-tools/safe-multi-signature-wallet","unlisted":false},{"type":"link","label":"RPC Services","href":"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/rpc-services","docId":"build-on-morph/developer-resources/use-ecosystem-developer-tools/rpc-services","unlisted":false},{"type":"link","label":"Account Abstraction","href":"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/account-abstraction","docId":"build-on-morph/developer-resources/use-ecosystem-developer-tools/account-abstraction","unlisted":false},{"type":"link","label":"Blockchain Indexing Services","href":"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-indexing-services","docId":"build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-indexing-services","unlisted":false},{"type":"link","label":"Blockchain Oracles","href":"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-oracles","docId":"build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-oracles","unlisted":false},{"type":"link","label":"Block Explorer","href":"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/block-explorer","docId":"build-on-morph/developer-resources/use-ecosystem-developer-tools/block-explorer","unlisted":false},{"type":"link","label":"Artificial Intelligence","href":"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/artificial-intelligence","docId":"build-on-morph/developer-resources/use-ecosystem-developer-tools/artificial-intelligence","unlisted":false},{"type":"link","label":"Decentralized Naming Services","href":"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/decentralized-naming-services","docId":"build-on-morph/developer-resources/use-ecosystem-developer-tools/decentralized-naming-services","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Node Operation","items":[{"type":"category","label":"Full Node","items":[{"type":"link","label":"Run a full node with docker","href":"/docs/build-on-morph/developer-resources/node-operation/full-node/run-in-docker","docId":"build-on-morph/developer-resources/node-operation/full-node/run-in-docker","unlisted":false},{"type":"link","label":"Run a full node from source","href":"/docs/build-on-morph/developer-resources/node-operation/full-node/run-on-host","docId":"build-on-morph/developer-resources/node-operation/full-node/run-on-host","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Validator","items":[{"type":"link","label":"Run a validator with docker","href":"/docs/build-on-morph/developer-resources/node-operation/validator-node/run-in-docker","docId":"build-on-morph/developer-resources/node-operation/validator-node/run-in-docker","unlisted":false},{"type":"link","label":"Run a validator from source","href":"/docs/build-on-morph/developer-resources/node-operation/validator-node/run-on-host","docId":"build-on-morph/developer-resources/node-operation/validator-node/run-on-host","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Upgrade Node","items":[{"type":"link","label":"Upgrade node running from docker","href":"/docs/build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-docker","docId":"build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-docker","unlisted":false},{"type":"link","label":"Upgrade node running on the host","href":"/docs/build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-host","docId":"build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-host","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"Prune State","href":"/docs/build-on-morph/developer-resources/node-operation/prune-state","docId":"build-on-morph/developer-resources/node-operation/prune-state","unlisted":false}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Developer Resources","items":[{"type":"link","label":"Contract Addresses","href":"/docs/build-on-morph/developer-resources/contracts","docId":"build-on-morph/developer-resources/contracts","unlisted":false},{"type":"link","label":"Dapp Examples on Morph","href":"/docs/build-on-morph/developer-resources/dapp-examples-on-morph","docId":"build-on-morph/developer-resources/dapp-examples-on-morph","unlisted":false},{"type":"link","label":"Morph JSON-RPC API Methods","href":"/docs/build-on-morph/developer-resources/morph-json-rpc-api-methods","docId":"build-on-morph/developer-resources/morph-json-rpc-api-methods","unlisted":false},{"type":"link","href":"https://explorer-holesky.morphl2.io/","label":"Morph Holesky Explorer"},{"type":"link","href":"https://holesky.etherscan.io/","label":"Ethereum Holesky Explorer"}],"collapsed":true,"collapsible":true}]},"docs":{"about-morph/faqs":{"id":"about-morph/faqs","title":"FAQs","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"about-morph/key-concepts":{"id":"about-morph/key-concepts","title":"Key Concepts","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"about-morph/key-concepts/optimistic-rollup":{"id":"about-morph/key-concepts/optimistic-rollup","title":"optimistic-rollup","description":""},"about-morph/morphs-architecture":{"id":"about-morph/morphs-architecture","title":"Morph\'s Architecture","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"about-morph/morphs-vision-and-mission":{"id":"about-morph/morphs-vision-and-mission","title":"Morph\'s Vision and Mission","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"about-morph/overview-of-morph":{"id":"about-morph/overview-of-morph","title":"Overview","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"about-morph/roadmap":{"id":"about-morph/roadmap","title":"Roadmap","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"about-morph/the-technology-behind-morph":{"id":"about-morph/the-technology-behind-morph","title":"The Technology Behind Morph","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"about-morph/user-navigation-page":{"id":"about-morph/user-navigation-page","title":"Welcome to Morph","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"about-morph/where-should-i-start":{"id":"about-morph/where-should-i-start","title":"Where Should I Start?","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},"build-on-morph/build-on-morph/bridge-between-morph-and-ethereum":{"id":"build-on-morph/build-on-morph/bridge-between-morph-and-ethereum","title":"Bridge between Morph and Ethereum","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"build-on-morph/build-on-morph/development-setup":{"id":"build-on-morph/build-on-morph/development-setup","title":"Development Setup","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"build-on-morph/build-on-morph/integration-one-page":{"id":"build-on-morph/build-on-morph/integration-one-page","title":"Morph Integration One Page","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"build-on-morph/build-on-morph/integration-one-page-cn":{"id":"build-on-morph/build-on-morph/integration-one-page-cn","title":"\u4e2d\u6587\u5f00\u53d1\u8005\u96c6\u6210\u6587\u6863","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},"build-on-morph/build-on-morph/understand-transaction-cost-on-morph":{"id":"build-on-morph/build-on-morph/understand-transaction-cost-on-morph","title":"Understand Transaction Cost on Morph","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"build-on-morph/build-on-morph/verify-your-smart-contracts":{"id":"build-on-morph/build-on-morph/verify-your-smart-contracts","title":"Verify Your Smart Contracts","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"build-on-morph/code-examples/bridge-between-morph-and-ethereum":{"id":"build-on-morph/code-examples/bridge-between-morph-and-ethereum","title":"Bridge between Morph and Ethereum","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},"build-on-morph/code-examples/deploy-contract-on-morph":{"id":"build-on-morph/code-examples/deploy-contract-on-morph","title":"Deploy Contracts on Morph","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"build-on-morph/developer-navigation-page":{"id":"build-on-morph/developer-navigation-page","title":"Build on Morph","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"build-on-morph/developer-resources/contracts":{"id":"build-on-morph/developer-resources/contracts","title":"Contract Addresses","description":"Morph Network Info","sidebar":"DeveloperSidebar"},"build-on-morph/developer-resources/dapp-examples-on-morph":{"id":"build-on-morph/developer-resources/dapp-examples-on-morph","title":"Dapp Examples on Morph","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"build-on-morph/developer-resources/how-to-run-a-morph-node":{"id":"build-on-morph/developer-resources/how-to-run-a-morph-node","title":"How to Run a Morph Node","description":"Run a Morph Full Node"},"build-on-morph/developer-resources/morph-json-rpc-api-methods":{"id":"build-on-morph/developer-resources/morph-json-rpc-api-methods","title":"Morph JSON-RPC API Methods","description":"Most methods are similar to Ethereum\'s. For those methods, we recommend you visit Ethereum JSON-RPC API.","sidebar":"DeveloperSidebar"},"build-on-morph/developer-resources/node-operation/full-node/run-in-docker":{"id":"build-on-morph/developer-resources/node-operation/full-node/run-in-docker","title":"Run a full node with docker","description":"This guide will help you start a full node running in the docker container using run-morph-node","sidebar":"DeveloperSidebar"},"build-on-morph/developer-resources/node-operation/full-node/run-on-host":{"id":"build-on-morph/developer-resources/node-operation/full-node/run-on-host","title":"Run a full node from source","description":"This guide outlines the steps to start a Morph node. The example assumes the home directory is ~/.morph","sidebar":"DeveloperSidebar"},"build-on-morph/developer-resources/node-operation/prune-state":{"id":"build-on-morph/developer-resources/node-operation/prune-state","title":"Prune State","description":"The performance of a full node will degrade when the storage size reaches a high volume. We suggest that the fullnode always keep light storage by pruning the storage.","sidebar":"DeveloperSidebar"},"build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-docker":{"id":"build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-docker","title":"Upgrade node running from docker","description":"Docker Images","sidebar":"DeveloperSidebar"},"build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-host":{"id":"build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-host","title":"Upgrade node running on the host","description":"Upgrading the node is straightforward. Simply install the new version of the node executable file and replace the previous version. Then, stop the currently running node and restart it with the updated version. Node will automatically use the data of your old node and sync the latest blocks that were mined since you shut down the old software.","sidebar":"DeveloperSidebar"},"build-on-morph/developer-resources/node-operation/validator-node/run-in-docker":{"id":"build-on-morph/developer-resources/node-operation/validator-node/run-in-docker","title":"Run a validator with docker","description":"This guide will help you start a validator node running in the docker container using run-morph-node","sidebar":"DeveloperSidebar"},"build-on-morph/developer-resources/node-operation/validator-node/run-on-host":{"id":"build-on-morph/developer-resources/node-operation/validator-node/run-on-host","title":"Run a validator from source","description":"Run a Morph Validator","sidebar":"DeveloperSidebar"},"build-on-morph/developer-resources/use-ecosystem-developer-tools/account-abstraction":{"id":"build-on-morph/developer-resources/use-ecosystem-developer-tools/account-abstraction","title":"Account Abstraction","description":"Biconomy","sidebar":"DeveloperSidebar"},"build-on-morph/developer-resources/use-ecosystem-developer-tools/artificial-intelligence":{"id":"build-on-morph/developer-resources/use-ecosystem-developer-tools/artificial-intelligence","title":"Artificial Intelligence","description":"ORA","sidebar":"DeveloperSidebar"},"build-on-morph/developer-resources/use-ecosystem-developer-tools/block-explorer":{"id":"build-on-morph/developer-resources/use-ecosystem-developer-tools/block-explorer","title":"Block Explorer","description":"Besides the native Morph explorer, we have also partnered with 3rd party providers for different Morph blockchain data presentations forms.","sidebar":"DeveloperSidebar"},"build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-indexing-services":{"id":"build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-indexing-services","title":"Blockchain Indexing Services","description":"Goldsky","sidebar":"DeveloperSidebar"},"build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-oracles":{"id":"build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-oracles","title":"Blockchain Oracles","description":"Pyth Network","sidebar":"DeveloperSidebar"},"build-on-morph/developer-resources/use-ecosystem-developer-tools/cross-chain-interoperability":{"id":"build-on-morph/developer-resources/use-ecosystem-developer-tools/cross-chain-interoperability","title":"Cross Chain Interoperability","description":"LayerZero","sidebar":"DeveloperSidebar"},"build-on-morph/developer-resources/use-ecosystem-developer-tools/decentralized-naming-services":{"id":"build-on-morph/developer-resources/use-ecosystem-developer-tools/decentralized-naming-services","title":"Decentralized Naming Services","description":"SpaceID","sidebar":"DeveloperSidebar"},"build-on-morph/developer-resources/use-ecosystem-developer-tools/rpc-services":{"id":"build-on-morph/developer-resources/use-ecosystem-developer-tools/rpc-services","title":"RPC Services","description":"Quicknode","sidebar":"DeveloperSidebar"},"build-on-morph/developer-resources/use-ecosystem-developer-tools/safe-multi-signature-wallet":{"id":"build-on-morph/developer-resources/use-ecosystem-developer-tools/safe-multi-signature-wallet","title":"Safe Multi-Signature Wallet","description":"What is Morph Safe?","sidebar":"DeveloperSidebar"},"build-on-morph/developer-resources/use-ecosystem-developer-tools/user-onboarding":{"id":"build-on-morph/developer-resources/use-ecosystem-developer-tools/user-onboarding","title":"User Onboarding","description":"Reown (prev. known as WalletConnect)","sidebar":"DeveloperSidebar"},"build-on-morph/intro":{"id":"build-on-morph/intro","title":"Developer Docs","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},"build-on-morph/sdk/classes/CrossChainMessenger":{"id":"build-on-morph/sdk/classes/CrossChainMessenger","title":"CrossChainMessenger","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/classes/ETHBridgeAdapter":{"id":"build-on-morph/sdk/classes/ETHBridgeAdapter","title":"ETHBridgeAdapter","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/classes/StandardBridgeAdapter":{"id":"build-on-morph/sdk/classes/StandardBridgeAdapter","title":"StandardBridgeAdapter","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/enumerations/L1ChainID":{"id":"build-on-morph/sdk/enumerations/L1ChainID","title":"L1ChainID","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/enumerations/L1RpcUrls":{"id":"build-on-morph/sdk/enumerations/L1RpcUrls","title":"L1RpcUrls","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/enumerations/L2ChainID":{"id":"build-on-morph/sdk/enumerations/L2ChainID","title":"L2ChainID","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/enumerations/L2RpcUrls":{"id":"build-on-morph/sdk/enumerations/L2RpcUrls","title":"L2RpcUrls","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/enumerations/MessageDirection":{"id":"build-on-morph/sdk/enumerations/MessageDirection","title":"MessageDirection","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/enumerations/MessageReceiptStatus":{"id":"build-on-morph/sdk/enumerations/MessageReceiptStatus","title":"MessageReceiptStatus","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/enumerations/MessageStatus":{"id":"build-on-morph/sdk/enumerations/MessageStatus","title":"MessageStatus","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/functions/asL2Provider":{"id":"build-on-morph/sdk/functions/asL2Provider","title":"asL2Provider","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/functions/estimateL1Gas":{"id":"build-on-morph/sdk/functions/estimateL1Gas","title":"estimateL1Gas","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/functions/estimateL1GasCost":{"id":"build-on-morph/sdk/functions/estimateL1GasCost","title":"estimateL1GasCost","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/functions/estimateL2GasCost":{"id":"build-on-morph/sdk/functions/estimateL2GasCost","title":"estimateL2GasCost","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/functions/estimateTotalGasCost":{"id":"build-on-morph/sdk/functions/estimateTotalGasCost","title":"estimateTotalGasCost","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/functions/getAllOEContracts":{"id":"build-on-morph/sdk/functions/getAllOEContracts","title":"getAllOEContracts","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/functions/getBridgeAdapters":{"id":"build-on-morph/sdk/functions/getBridgeAdapters","title":"getBridgeAdapters","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/functions/getL1GasPrice":{"id":"build-on-morph/sdk/functions/getL1GasPrice","title":"getL1GasPrice","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/functions/getOEContract":{"id":"build-on-morph/sdk/functions/getOEContract","title":"getOEContract","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/functions/hashLowLevelMessageV2":{"id":"build-on-morph/sdk/functions/hashLowLevelMessageV2","title":"hashLowLevelMessageV2","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/functions/hashMessageHash":{"id":"build-on-morph/sdk/functions/hashMessageHash","title":"hashMessageHash","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/functions/isL2Provider":{"id":"build-on-morph/sdk/functions/isL2Provider","title":"isL2Provider","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/functions/migratedWithdrawalGasLimit":{"id":"build-on-morph/sdk/functions/migratedWithdrawalGasLimit","title":"migratedWithdrawalGasLimit","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/functions/omit":{"id":"build-on-morph/sdk/functions/omit","title":"omit","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/functions/toAddress":{"id":"build-on-morph/sdk/functions/toAddress","title":"toAddress","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/functions/toBigNumber":{"id":"build-on-morph/sdk/functions/toBigNumber","title":"toBigNumber","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/functions/toNumber":{"id":"build-on-morph/sdk/functions/toNumber","title":"toNumber","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/functions/toProvider":{"id":"build-on-morph/sdk/functions/toProvider","title":"toProvider","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/functions/toSignerOrProvider":{"id":"build-on-morph/sdk/functions/toSignerOrProvider","title":"toSignerOrProvider","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/functions/toTransactionHash":{"id":"build-on-morph/sdk/functions/toTransactionHash","title":"toTransactionHash","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/globals":{"id":"build-on-morph/sdk/globals","title":"Use SDK to interact with Morph","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"build-on-morph/sdk/interfaces/BridgeAdapterData":{"id":"build-on-morph/sdk/interfaces/BridgeAdapterData","title":"BridgeAdapterData","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/interfaces/BridgeAdapters":{"id":"build-on-morph/sdk/interfaces/BridgeAdapters","title":"BridgeAdapters","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/interfaces/CoreCrossChainMessage":{"id":"build-on-morph/sdk/interfaces/CoreCrossChainMessage","title":"CoreCrossChainMessage","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/interfaces/CrossChainMessage":{"id":"build-on-morph/sdk/interfaces/CrossChainMessage","title":"CrossChainMessage","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/interfaces/CrossChainMessageRequest":{"id":"build-on-morph/sdk/interfaces/CrossChainMessageRequest","title":"CrossChainMessageRequest","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/interfaces/IActionOptions":{"id":"build-on-morph/sdk/interfaces/IActionOptions","title":"IActionOptions","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/interfaces/IBridgeAdapter":{"id":"build-on-morph/sdk/interfaces/IBridgeAdapter","title":"IBridgeAdapter","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/interfaces/L2Block":{"id":"build-on-morph/sdk/interfaces/L2Block","title":"L2Block","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/interfaces/L2BlockWithTransactions":{"id":"build-on-morph/sdk/interfaces/L2BlockWithTransactions","title":"L2BlockWithTransactions","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/interfaces/L2Transaction":{"id":"build-on-morph/sdk/interfaces/L2Transaction","title":"L2Transaction","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/interfaces/MessageReceipt":{"id":"build-on-morph/sdk/interfaces/MessageReceipt","title":"MessageReceipt","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/interfaces/OEContracts":{"id":"build-on-morph/sdk/interfaces/OEContracts","title":"OEContracts","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/interfaces/OEContractsLike":{"id":"build-on-morph/sdk/interfaces/OEContractsLike","title":"OEContractsLike","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/interfaces/OEL1Contracts":{"id":"build-on-morph/sdk/interfaces/OEL1Contracts","title":"OEL1Contracts","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/interfaces/OEL2Contracts":{"id":"build-on-morph/sdk/interfaces/OEL2Contracts","title":"OEL2Contracts","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/interfaces/ProvenWithdrawal":{"id":"build-on-morph/sdk/interfaces/ProvenWithdrawal","title":"ProvenWithdrawal","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/interfaces/StateRoot":{"id":"build-on-morph/sdk/interfaces/StateRoot","title":"StateRoot","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/interfaces/StateRootBatch":{"id":"build-on-morph/sdk/interfaces/StateRootBatch","title":"StateRootBatch","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/interfaces/StateRootBatchHeader":{"id":"build-on-morph/sdk/interfaces/StateRootBatchHeader","title":"StateRootBatchHeader","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/interfaces/TokenBridgeMessage":{"id":"build-on-morph/sdk/interfaces/TokenBridgeMessage","title":"TokenBridgeMessage","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/interfaces/WithdrawalEntry":{"id":"build-on-morph/sdk/interfaces/WithdrawalEntry","title":"WithdrawalEntry","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/interfaces/WithdrawMessageProof":{"id":"build-on-morph/sdk/interfaces/WithdrawMessageProof","title":"WithdrawMessageProof","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/intro":{"id":"build-on-morph/sdk/intro","title":"intro","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/type-aliases/AddressLike":{"id":"build-on-morph/sdk/type-aliases/AddressLike","title":"AddressLike","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/type-aliases/DeepPartial":{"id":"build-on-morph/sdk/type-aliases/DeepPartial","title":"DeepPartial","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/type-aliases/L1Provider":{"id":"build-on-morph/sdk/type-aliases/L1Provider","title":"L1Provider","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/type-aliases/L2Provider":{"id":"build-on-morph/sdk/type-aliases/L2Provider","title":"L2Provider","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/type-aliases/LowLevelMessage":{"id":"build-on-morph/sdk/type-aliases/LowLevelMessage","title":"LowLevelMessage","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/type-aliases/MessageLike":{"id":"build-on-morph/sdk/type-aliases/MessageLike","title":"MessageLike","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/type-aliases/MessageRequestLike":{"id":"build-on-morph/sdk/type-aliases/MessageRequestLike","title":"MessageRequestLike","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/type-aliases/NumberLike":{"id":"build-on-morph/sdk/type-aliases/NumberLike","title":"NumberLike","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/type-aliases/OEL1ContractsLike":{"id":"build-on-morph/sdk/type-aliases/OEL1ContractsLike","title":"OEL1ContractsLike","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/type-aliases/OEL2ContractsLike":{"id":"build-on-morph/sdk/type-aliases/OEL2ContractsLike","title":"OEL2ContractsLike","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/type-aliases/ProviderLike":{"id":"build-on-morph/sdk/type-aliases/ProviderLike","title":"ProviderLike","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/type-aliases/SignerLike":{"id":"build-on-morph/sdk/type-aliases/SignerLike","title":"SignerLike","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/type-aliases/SignerOrProviderLike":{"id":"build-on-morph/sdk/type-aliases/SignerOrProviderLike","title":"SignerOrProviderLike","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/type-aliases/TransactionLike":{"id":"build-on-morph/sdk/type-aliases/TransactionLike","title":"TransactionLike","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/variables/BRIDGE_ADAPTER_DATA":{"id":"build-on-morph/sdk/variables/BRIDGE_ADAPTER_DATA","title":"BRIDGE_ADAPTER_DATA","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/variables/CHAIN_BLOCK_TIMES":{"id":"build-on-morph/sdk/variables/CHAIN_BLOCK_TIMES","title":"CHAIN_BLOCK_TIMES","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/variables/CONTRACT_ADDRESSES":{"id":"build-on-morph/sdk/variables/CONTRACT_ADDRESSES","title":"CONTRACT_ADDRESSES","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/variables/DEFAULT_L1_CONTRACT_ADDRESSES":{"id":"build-on-morph/sdk/variables/DEFAULT_L1_CONTRACT_ADDRESSES","title":"DEFAULT_L1_CONTRACT_ADDRESSES","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/variables/DEFAULT_L2_CONTRACT_ADDRESSES":{"id":"build-on-morph/sdk/variables/DEFAULT_L2_CONTRACT_ADDRESSES","title":"DEFAULT_L2_CONTRACT_ADDRESSES","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/variables/DEPOSIT_CONFIRMATION_BLOCKS":{"id":"build-on-morph/sdk/variables/DEPOSIT_CONFIRMATION_BLOCKS","title":"DEPOSIT_CONFIRMATION_BLOCKS","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/variables/l1BridgeName":{"id":"build-on-morph/sdk/variables/l1BridgeName","title":"l1BridgeName","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/variables/l1CrossDomainMessengerName":{"id":"build-on-morph/sdk/variables/l1CrossDomainMessengerName","title":"l1CrossDomainMessengerName","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/variables/l2BridgeName":{"id":"build-on-morph/sdk/variables/l2BridgeName","title":"l2BridgeName","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/variables/l2CrossDomainMessengerName":{"id":"build-on-morph/sdk/variables/l2CrossDomainMessengerName","title":"l2CrossDomainMessengerName","description":"@morph-l2/sdk \u2022 Docs"},"how-morph-works/decentralized-sequencers/morph-decentralized-sequencer-network":{"id":"how-morph-works/decentralized-sequencers/morph-decentralized-sequencer-network","title":"Morph\'s Decentralized Sequencer Network","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"how-morph-works/general-protocol-design/communicate-between-morph-and-ethereum":{"id":"how-morph-works/general-protocol-design/communicate-between-morph-and-ethereum","title":"Communication between Morph and Ethereum","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"how-morph-works/general-protocol-design/difference-between-ethereum-and-morph":{"id":"how-morph-works/general-protocol-design/difference-between-ethereum-and-morph","title":"Difference between Morph and Ethereum","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"how-morph-works/general-protocol-design/rollup":{"id":"how-morph-works/general-protocol-design/rollup","title":"Rollup","description":"Explain how rollup process works in Morph","sidebar":"DeveloperSidebar"},"how-morph-works/general-protocol-design/transactions-life-cycle":{"id":"how-morph-works/general-protocol-design/transactions-life-cycle","title":"Transactions Life Cycle","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"how-morph-works/intro":{"id":"how-morph-works/intro","title":"Introduction","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},"how-morph-works/morph-modular-design":{"id":"how-morph-works/morph-modular-design","title":"Morph Modular Design","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"how-morph-works/optimistic-zkevm":{"id":"how-morph-works/optimistic-zkevm","title":"Optimistic zkEVM","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"quick-start/bridge":{"id":"quick-start/bridge","title":"Bridge","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"quick-start/faucet":{"id":"quick-start/faucet","title":"Faucet","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"quick-start/wallet-setup":{"id":"quick-start/wallet-setup","title":"Wallet Setup","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"quick-start/welcome-to-morph":{"id":"quick-start/welcome-to-morph","title":"Welcome to Morph!","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"}}}')}}]); \ No newline at end of file diff --git a/build/assets/js/935f2afb.315226ae.js b/build/assets/js/935f2afb.315226ae.js deleted file mode 100644 index 3f5f62502..000000000 --- a/build/assets/js/935f2afb.315226ae.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[8581],{5610:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"UserSidebar":[{"type":"link","label":"Welcome to Morph","href":"/docs/about-morph/user-navigation-page","docId":"about-morph/user-navigation-page","unlisted":false},{"type":"category","label":"Introductory Concepts","items":[{"type":"link","label":"Overview","href":"/docs/about-morph/overview-of-morph","docId":"about-morph/overview-of-morph","unlisted":false},{"type":"link","label":"The Technology Behind Morph","href":"/docs/about-morph/the-technology-behind-morph","docId":"about-morph/the-technology-behind-morph","unlisted":false},{"type":"link","label":"Morph\'s Architecture","href":"/docs/about-morph/morphs-architecture","docId":"about-morph/morphs-architecture","unlisted":false},{"type":"link","label":"Morph\'s Vision and Mission","href":"/docs/about-morph/morphs-vision-and-mission","docId":"about-morph/morphs-vision-and-mission","unlisted":false},{"type":"link","label":"Key Concepts","href":"/docs/about-morph/key-concepts","docId":"about-morph/key-concepts","unlisted":false},{"type":"link","label":"Roadmap","href":"/docs/about-morph/roadmap","docId":"about-morph/roadmap","unlisted":false},{"type":"link","label":"FAQs","href":"/docs/about-morph/faqs","docId":"about-morph/faqs","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Morph Zoo","items":[{"type":"link","label":"Morph Points","href":"/docs/quick-start/morph-zoo/morph-points","docId":"quick-start/morph-zoo/morph-points","unlisted":false},{"type":"link","label":"Voting Rules in Voice of the Jungle","href":"/docs/quick-start/morph-zoo/voting-rules","docId":"quick-start/morph-zoo/voting-rules","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Step-by-Step Guides","items":[{"type":"link","label":"Wallet Setup","href":"/docs/quick-start/wallet-setup","docId":"quick-start/wallet-setup","unlisted":false},{"type":"link","label":"Faucet","href":"/docs/quick-start/faucet","docId":"quick-start/faucet","unlisted":false},{"type":"link","label":"Bridge","href":"/docs/quick-start/bridge","docId":"quick-start/bridge","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Links and Tools","items":[{"type":"link","href":"https://bridge.morphl2.io/","label":"Morph Official Bridge"},{"type":"link","href":"https://explorer.morphl2.io/","label":"Morph Mainnet Explorer"},{"type":"link","href":"https://bridge-holesky.morphl2.io/","label":"Morph Holesky Official Bridge"},{"type":"link","href":"https://explorer-holesky.morphl2.io/","label":"Morph Holesky Explorer"},{"type":"link","href":"https://holesky.etherscan.io/","label":"Ethereum Holesky Explorer"}],"collapsed":true,"collapsible":true},{"type":"link","label":"Developer Docs","href":"/docs/build-on-morph/developer-navigation-page","docId":"build-on-morph/developer-navigation-page","unlisted":false},{"type":"category","label":"Fundamental Concepts","items":[{"type":"link","label":"Morph Modular Design","href":"/docs/how-morph-works/morph-modular-design","docId":"how-morph-works/morph-modular-design","unlisted":false},{"type":"link","label":"Optimistic zkEVM","href":"/docs/how-morph-works/optimistic-zkevm","docId":"how-morph-works/optimistic-zkevm","unlisted":false},{"type":"category","label":"Decentralized Sequencers","items":[{"type":"link","label":"Morph\'s Decentralized Sequencer Network","href":"/docs/how-morph-works/decentralized-sequencers/morph-decentralized-sequencer-network","docId":"how-morph-works/decentralized-sequencers/morph-decentralized-sequencer-network","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"General Protocol Design","items":[{"type":"link","label":"Rollup","href":"/docs/how-morph-works/general-protocol-design/rollup","docId":"how-morph-works/general-protocol-design/rollup","unlisted":false},{"type":"link","label":"Communication between Morph and Ethereum","href":"/docs/how-morph-works/general-protocol-design/communicate-between-morph-and-ethereum","docId":"how-morph-works/general-protocol-design/communicate-between-morph-and-ethereum","unlisted":false},{"type":"link","label":"Transactions Life Cycle","href":"/docs/how-morph-works/general-protocol-design/transactions-life-cycle","docId":"how-morph-works/general-protocol-design/transactions-life-cycle","unlisted":false},{"type":"link","label":"Difference between Morph and Ethereum","href":"/docs/how-morph-works/general-protocol-design/difference-between-ethereum-and-morph","docId":"how-morph-works/general-protocol-design/difference-between-ethereum-and-morph","unlisted":false},{"type":"link","label":"Understand Transaction Cost on Morph","href":"/docs/build-on-morph/build-on-morph/understand-transaction-cost-on-morph","docId":"build-on-morph/build-on-morph/understand-transaction-cost-on-morph","unlisted":false}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Developer Guides","items":[{"type":"link","label":"Development Setup","href":"/docs/build-on-morph/build-on-morph/development-setup","docId":"build-on-morph/build-on-morph/development-setup","unlisted":false},{"type":"link","label":"Deploy Contracts on Morph","href":"/docs/build-on-morph/code-examples/deploy-contract-on-morph","docId":"build-on-morph/code-examples/deploy-contract-on-morph","unlisted":false},{"type":"link","label":"Verify Your Smart Contracts","href":"/docs/build-on-morph/build-on-morph/verify-your-smart-contracts","docId":"build-on-morph/build-on-morph/verify-your-smart-contracts","unlisted":false},{"type":"link","label":"Bridge between Morph and Ethereum","href":"/docs/build-on-morph/build-on-morph/bridge-between-morph-and-ethereum","docId":"build-on-morph/build-on-morph/bridge-between-morph-and-ethereum","unlisted":false},{"type":"link","label":"Use SDK to interact with Morph","href":"/docs/build-on-morph/sdk/globals","docId":"build-on-morph/sdk/globals","unlisted":false},{"type":"category","label":"Use Ecosystem Developer Tools","items":[{"type":"link","label":"Safe Multi-Signature Wallet","href":"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/safe-multi-signature-wallet","docId":"build-on-morph/developer-resources/use-ecosystem-developer-tools/safe-multi-signature-wallet","unlisted":false},{"type":"link","label":"RPC Services","href":"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/rpc-services","docId":"build-on-morph/developer-resources/use-ecosystem-developer-tools/rpc-services","unlisted":false},{"type":"link","label":"Account Abstraction","href":"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/account-abstraction","docId":"build-on-morph/developer-resources/use-ecosystem-developer-tools/account-abstraction","unlisted":false},{"type":"link","label":"Blockchain Indexing Services","href":"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-indexing-services","docId":"build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-indexing-services","unlisted":false},{"type":"link","label":"Blockchain Oracles","href":"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-oracles","docId":"build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-oracles","unlisted":false},{"type":"link","label":"Block Explorer","href":"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/block-explorer","docId":"build-on-morph/developer-resources/use-ecosystem-developer-tools/block-explorer","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Node Operation","items":[{"type":"link","label":"Run a Morph Full Node with Docker","href":"/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node-docker","docId":"build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node-docker","unlisted":false},{"type":"link","label":"Run a Morph Full Node from Source","href":"/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node","docId":"build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node","unlisted":false},{"type":"link","label":"How to Run a Morph Validator Node","href":"/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-validator-node","docId":"build-on-morph/developer-resources/node-operation/how-to-run-a-validator-node","unlisted":false},{"type":"category","label":"Upgrade Node","items":[{"type":"link","label":"Upgrade node running from docker","href":"/docs/build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-docker","docId":"build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-docker","unlisted":false},{"type":"link","label":"Upgrade node running on the host","href":"/docs/build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-host","docId":"build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-host","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"Prune State","href":"/docs/build-on-morph/developer-resources/node-operation/prune-state","docId":"build-on-morph/developer-resources/node-operation/prune-state","unlisted":false}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Developer Resources","items":[{"type":"link","label":"Contract Addresses","href":"/docs/build-on-morph/developer-resources/contracts","docId":"build-on-morph/developer-resources/contracts","unlisted":false},{"type":"link","label":"Dapp Examples on Morph","href":"/docs/build-on-morph/developer-resources/dapp-examples-on-morph","docId":"build-on-morph/developer-resources/dapp-examples-on-morph","unlisted":false},{"type":"link","label":"Morph JSON-RPC API Methods","href":"/docs/build-on-morph/developer-resources/morph-json-rpc-api-methods","docId":"build-on-morph/developer-resources/morph-json-rpc-api-methods","unlisted":false},{"type":"link","href":"https://explorer-holesky.morphl2.io/","label":"Morph Holesky Explorer"},{"type":"link","href":"https://holesky.etherscan.io/","label":"Ethereum Holesky Explorer"}],"collapsed":true,"collapsible":true}],"DeveloperSidebar":[{"type":"link","label":"Welcome to Morph","href":"/docs/about-morph/user-navigation-page","docId":"about-morph/user-navigation-page","unlisted":false},{"type":"category","label":"Introductory Concepts","items":[{"type":"link","label":"Overview","href":"/docs/about-morph/overview-of-morph","docId":"about-morph/overview-of-morph","unlisted":false},{"type":"link","label":"The Technology Behind Morph","href":"/docs/about-morph/the-technology-behind-morph","docId":"about-morph/the-technology-behind-morph","unlisted":false},{"type":"link","label":"Morph\'s Architecture","href":"/docs/about-morph/morphs-architecture","docId":"about-morph/morphs-architecture","unlisted":false},{"type":"link","label":"Morph\'s Vision and Mission","href":"/docs/about-morph/morphs-vision-and-mission","docId":"about-morph/morphs-vision-and-mission","unlisted":false},{"type":"link","label":"Key Concepts","href":"/docs/about-morph/key-concepts","docId":"about-morph/key-concepts","unlisted":false},{"type":"link","label":"Roadmap","href":"/docs/about-morph/roadmap","docId":"about-morph/roadmap","unlisted":false},{"type":"link","label":"FAQs","href":"/docs/about-morph/faqs","docId":"about-morph/faqs","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Morph Zoo","items":[{"type":"link","label":"Morph Points","href":"/docs/quick-start/morph-zoo/morph-points","docId":"quick-start/morph-zoo/morph-points","unlisted":false},{"type":"link","label":"Voting Rules in Voice of the Jungle","href":"/docs/quick-start/morph-zoo/voting-rules","docId":"quick-start/morph-zoo/voting-rules","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Step-by-Step Guides","items":[{"type":"link","label":"Wallet Setup","href":"/docs/quick-start/wallet-setup","docId":"quick-start/wallet-setup","unlisted":false},{"type":"link","label":"Faucet","href":"/docs/quick-start/faucet","docId":"quick-start/faucet","unlisted":false},{"type":"link","label":"Bridge","href":"/docs/quick-start/bridge","docId":"quick-start/bridge","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Links and Tools","items":[{"type":"link","href":"https://bridge.morphl2.io/","label":"Morph Official Bridge"},{"type":"link","href":"https://explorer.morphl2.io/","label":"Morph Mainnet Explorer"},{"type":"link","href":"https://bridge-holesky.morphl2.io/","label":"Morph Holesky Official Bridge"},{"type":"link","href":"https://explorer-holesky.morphl2.io/","label":"Morph Holesky Explorer"},{"type":"link","href":"https://holesky.etherscan.io/","label":"Ethereum Holesky Explorer"}],"collapsed":true,"collapsible":true},{"type":"link","label":"Developer Docs","href":"/docs/build-on-morph/developer-navigation-page","docId":"build-on-morph/developer-navigation-page","unlisted":false},{"type":"category","label":"Fundamental Concepts","items":[{"type":"link","label":"Morph Modular Design","href":"/docs/how-morph-works/morph-modular-design","docId":"how-morph-works/morph-modular-design","unlisted":false},{"type":"link","label":"Optimistic zkEVM","href":"/docs/how-morph-works/optimistic-zkevm","docId":"how-morph-works/optimistic-zkevm","unlisted":false},{"type":"category","label":"Decentralized Sequencers","items":[{"type":"link","label":"Morph\'s Decentralized Sequencer Network","href":"/docs/how-morph-works/decentralized-sequencers/morph-decentralized-sequencer-network","docId":"how-morph-works/decentralized-sequencers/morph-decentralized-sequencer-network","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"General Protocol Design","items":[{"type":"link","label":"Rollup","href":"/docs/how-morph-works/general-protocol-design/rollup","docId":"how-morph-works/general-protocol-design/rollup","unlisted":false},{"type":"link","label":"Communication between Morph and Ethereum","href":"/docs/how-morph-works/general-protocol-design/communicate-between-morph-and-ethereum","docId":"how-morph-works/general-protocol-design/communicate-between-morph-and-ethereum","unlisted":false},{"type":"link","label":"Transactions Life Cycle","href":"/docs/how-morph-works/general-protocol-design/transactions-life-cycle","docId":"how-morph-works/general-protocol-design/transactions-life-cycle","unlisted":false},{"type":"link","label":"Difference between Morph and Ethereum","href":"/docs/how-morph-works/general-protocol-design/difference-between-ethereum-and-morph","docId":"how-morph-works/general-protocol-design/difference-between-ethereum-and-morph","unlisted":false},{"type":"link","label":"Understand Transaction Cost on Morph","href":"/docs/build-on-morph/build-on-morph/understand-transaction-cost-on-morph","docId":"build-on-morph/build-on-morph/understand-transaction-cost-on-morph","unlisted":false}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Developer Guides","items":[{"type":"link","label":"Development Setup","href":"/docs/build-on-morph/build-on-morph/development-setup","docId":"build-on-morph/build-on-morph/development-setup","unlisted":false},{"type":"link","label":"Deploy Contracts on Morph","href":"/docs/build-on-morph/code-examples/deploy-contract-on-morph","docId":"build-on-morph/code-examples/deploy-contract-on-morph","unlisted":false},{"type":"link","label":"Verify Your Smart Contracts","href":"/docs/build-on-morph/build-on-morph/verify-your-smart-contracts","docId":"build-on-morph/build-on-morph/verify-your-smart-contracts","unlisted":false},{"type":"link","label":"Bridge between Morph and Ethereum","href":"/docs/build-on-morph/build-on-morph/bridge-between-morph-and-ethereum","docId":"build-on-morph/build-on-morph/bridge-between-morph-and-ethereum","unlisted":false},{"type":"link","label":"Use SDK to interact with Morph","href":"/docs/build-on-morph/sdk/globals","docId":"build-on-morph/sdk/globals","unlisted":false},{"type":"category","label":"Use Ecosystem Developer Tools","items":[{"type":"link","label":"Safe Multi-Signature Wallet","href":"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/safe-multi-signature-wallet","docId":"build-on-morph/developer-resources/use-ecosystem-developer-tools/safe-multi-signature-wallet","unlisted":false},{"type":"link","label":"RPC Services","href":"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/rpc-services","docId":"build-on-morph/developer-resources/use-ecosystem-developer-tools/rpc-services","unlisted":false},{"type":"link","label":"Account Abstraction","href":"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/account-abstraction","docId":"build-on-morph/developer-resources/use-ecosystem-developer-tools/account-abstraction","unlisted":false},{"type":"link","label":"Blockchain Indexing Services","href":"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-indexing-services","docId":"build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-indexing-services","unlisted":false},{"type":"link","label":"Blockchain Oracles","href":"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-oracles","docId":"build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-oracles","unlisted":false},{"type":"link","label":"Block Explorer","href":"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/block-explorer","docId":"build-on-morph/developer-resources/use-ecosystem-developer-tools/block-explorer","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Node Operation","items":[{"type":"link","label":"Run a Morph Full Node with Docker","href":"/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node-docker","docId":"build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node-docker","unlisted":false},{"type":"link","label":"Run a Morph Full Node from Source","href":"/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node","docId":"build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node","unlisted":false},{"type":"link","label":"How to Run a Morph Validator Node","href":"/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-validator-node","docId":"build-on-morph/developer-resources/node-operation/how-to-run-a-validator-node","unlisted":false},{"type":"category","label":"Upgrade Node","items":[{"type":"link","label":"Upgrade node running from docker","href":"/docs/build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-docker","docId":"build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-docker","unlisted":false},{"type":"link","label":"Upgrade node running on the host","href":"/docs/build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-host","docId":"build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-host","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"Prune State","href":"/docs/build-on-morph/developer-resources/node-operation/prune-state","docId":"build-on-morph/developer-resources/node-operation/prune-state","unlisted":false}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Developer Resources","items":[{"type":"link","label":"Contract Addresses","href":"/docs/build-on-morph/developer-resources/contracts","docId":"build-on-morph/developer-resources/contracts","unlisted":false},{"type":"link","label":"Dapp Examples on Morph","href":"/docs/build-on-morph/developer-resources/dapp-examples-on-morph","docId":"build-on-morph/developer-resources/dapp-examples-on-morph","unlisted":false},{"type":"link","label":"Morph JSON-RPC API Methods","href":"/docs/build-on-morph/developer-resources/morph-json-rpc-api-methods","docId":"build-on-morph/developer-resources/morph-json-rpc-api-methods","unlisted":false},{"type":"link","href":"https://explorer-holesky.morphl2.io/","label":"Morph Holesky Explorer"},{"type":"link","href":"https://holesky.etherscan.io/","label":"Ethereum Holesky Explorer"}],"collapsed":true,"collapsible":true}]},"docs":{"about-morph/faqs":{"id":"about-morph/faqs","title":"FAQs","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"about-morph/key-concepts":{"id":"about-morph/key-concepts","title":"Key Concepts","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"about-morph/key-concepts/optimistic-rollup":{"id":"about-morph/key-concepts/optimistic-rollup","title":"optimistic-rollup","description":""},"about-morph/morphs-architecture":{"id":"about-morph/morphs-architecture","title":"Morph\'s Architecture","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"about-morph/morphs-vision-and-mission":{"id":"about-morph/morphs-vision-and-mission","title":"Morph\'s Vision and Mission","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"about-morph/overview-of-morph":{"id":"about-morph/overview-of-morph","title":"Overview","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"about-morph/roadmap":{"id":"about-morph/roadmap","title":"Roadmap","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"about-morph/the-technology-behind-morph":{"id":"about-morph/the-technology-behind-morph","title":"The Technology Behind Morph","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"about-morph/user-navigation-page":{"id":"about-morph/user-navigation-page","title":"Welcome to Morph","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"about-morph/where-should-i-start":{"id":"about-morph/where-should-i-start","title":"Where Should I Start?","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},"build-on-morph/build-on-morph/bridge-between-morph-and-ethereum":{"id":"build-on-morph/build-on-morph/bridge-between-morph-and-ethereum","title":"Bridge between Morph and Ethereum","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"build-on-morph/build-on-morph/development-setup":{"id":"build-on-morph/build-on-morph/development-setup","title":"Development Setup","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"build-on-morph/build-on-morph/difference-between-morph-and-ethereum":{"id":"build-on-morph/build-on-morph/difference-between-morph-and-ethereum","title":"Difference between Morph and Ethereum","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},"build-on-morph/build-on-morph/understand-transaction-cost-on-morph":{"id":"build-on-morph/build-on-morph/understand-transaction-cost-on-morph","title":"Understand Transaction Cost on Morph","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"build-on-morph/build-on-morph/verify-your-smart-contracts":{"id":"build-on-morph/build-on-morph/verify-your-smart-contracts","title":"Verify Your Smart Contracts","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"build-on-morph/code-examples/bridge-between-morph-and-ethereum":{"id":"build-on-morph/code-examples/bridge-between-morph-and-ethereum","title":"Bridge between Morph and Ethereum","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},"build-on-morph/code-examples/deploy-contract-on-morph":{"id":"build-on-morph/code-examples/deploy-contract-on-morph","title":"Deploy Contracts on Morph","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"build-on-morph/developer-navigation-page":{"id":"build-on-morph/developer-navigation-page","title":"Developer Docs","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"build-on-morph/developer-resources/contracts":{"id":"build-on-morph/developer-resources/contracts","title":"Contract Addresses","description":"Morph Network Info","sidebar":"DeveloperSidebar"},"build-on-morph/developer-resources/dapp-examples-on-morph":{"id":"build-on-morph/developer-resources/dapp-examples-on-morph","title":"Dapp Examples on Morph","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"build-on-morph/developer-resources/how-to-run-a-morph-node":{"id":"build-on-morph/developer-resources/how-to-run-a-morph-node","title":"How to Run a Morph Node","description":"Run a Morph Full Node"},"build-on-morph/developer-resources/morph-json-rpc-api-methods":{"id":"build-on-morph/developer-resources/morph-json-rpc-api-methods","title":"Morph JSON-RPC API Methods","description":"Most methods are similar to Ethereum\'s. For those methods, we recommend you visit Ethereum JSON-RPC API.","sidebar":"DeveloperSidebar"},"build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node":{"id":"build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node","title":"Run a Morph Full Node from Source","description":"This guide outlines the steps to start a Morph node. The example assumes the home directory is ~/.morph","sidebar":"DeveloperSidebar"},"build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node-docker":{"id":"build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node-docker","title":"Run a Morph Full Node with Docker","description":"This guide will help you start a full node running in the docker container.","sidebar":"DeveloperSidebar"},"build-on-morph/developer-resources/node-operation/how-to-run-a-validator-node":{"id":"build-on-morph/developer-resources/node-operation/how-to-run-a-validator-node","title":"How to Run a Morph Validator Node","description":"Run a Morph Node","sidebar":"DeveloperSidebar"},"build-on-morph/developer-resources/node-operation/prune-state":{"id":"build-on-morph/developer-resources/node-operation/prune-state","title":"Prune State","description":"The performance of a full node will degrade when the storage size reaches a high volume. We suggest that the fullnode always keep light storage by pruning the storage.","sidebar":"DeveloperSidebar"},"build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-docker":{"id":"build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-docker","title":"Upgrade node running from docker","description":"If you are running the Docker container for the node using a custom setup, you will need to update the docker image yourself and then restart the container.","sidebar":"DeveloperSidebar"},"build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-host":{"id":"build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-host","title":"Upgrade node running on the host","description":"Upgrading the node is straightforward. Simply install the new version of the node executable file and replace the previous version. Then, stop the currently running node and restart it with the updated version. Node will automatically use the data of your old node and sync the latest blocks that were mined since you shut down the old software.","sidebar":"DeveloperSidebar"},"build-on-morph/developer-resources/use-ecosystem-developer-tools/account-abstraction":{"id":"build-on-morph/developer-resources/use-ecosystem-developer-tools/account-abstraction","title":"Account Abstraction","description":"Biconomy","sidebar":"DeveloperSidebar"},"build-on-morph/developer-resources/use-ecosystem-developer-tools/block-explorer":{"id":"build-on-morph/developer-resources/use-ecosystem-developer-tools/block-explorer","title":"Block Explorer","description":"Besides the official Morph explorer, we have also partnered with 3rd party providers for different Morph blockchain data presentations forms.","sidebar":"DeveloperSidebar"},"build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-indexing-services":{"id":"build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-indexing-services","title":"Blockchain Indexing Services","description":"Goldsky","sidebar":"DeveloperSidebar"},"build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-oracles":{"id":"build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-oracles","title":"Blockchain Oracles","description":"Pyth Network","sidebar":"DeveloperSidebar"},"build-on-morph/developer-resources/use-ecosystem-developer-tools/rpc-services":{"id":"build-on-morph/developer-resources/use-ecosystem-developer-tools/rpc-services","title":"RPC Services","description":"Quicknode","sidebar":"DeveloperSidebar"},"build-on-morph/developer-resources/use-ecosystem-developer-tools/safe-multi-signature-wallet":{"id":"build-on-morph/developer-resources/use-ecosystem-developer-tools/safe-multi-signature-wallet","title":"Safe Multi-Signature Wallet","description":"What is Morph Safe?","sidebar":"DeveloperSidebar"},"build-on-morph/intro":{"id":"build-on-morph/intro","title":"Developer Docs","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},"build-on-morph/sdk/classes/CrossChainMessenger":{"id":"build-on-morph/sdk/classes/CrossChainMessenger","title":"CrossChainMessenger","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/classes/ETHBridgeAdapter":{"id":"build-on-morph/sdk/classes/ETHBridgeAdapter","title":"ETHBridgeAdapter","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/classes/StandardBridgeAdapter":{"id":"build-on-morph/sdk/classes/StandardBridgeAdapter","title":"StandardBridgeAdapter","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/enumerations/L1ChainID":{"id":"build-on-morph/sdk/enumerations/L1ChainID","title":"L1ChainID","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/enumerations/L1RpcUrls":{"id":"build-on-morph/sdk/enumerations/L1RpcUrls","title":"L1RpcUrls","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/enumerations/L2ChainID":{"id":"build-on-morph/sdk/enumerations/L2ChainID","title":"L2ChainID","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/enumerations/L2RpcUrls":{"id":"build-on-morph/sdk/enumerations/L2RpcUrls","title":"L2RpcUrls","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/enumerations/MessageDirection":{"id":"build-on-morph/sdk/enumerations/MessageDirection","title":"MessageDirection","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/enumerations/MessageReceiptStatus":{"id":"build-on-morph/sdk/enumerations/MessageReceiptStatus","title":"MessageReceiptStatus","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/enumerations/MessageStatus":{"id":"build-on-morph/sdk/enumerations/MessageStatus","title":"MessageStatus","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/functions/asL2Provider":{"id":"build-on-morph/sdk/functions/asL2Provider","title":"asL2Provider","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/functions/estimateL1Gas":{"id":"build-on-morph/sdk/functions/estimateL1Gas","title":"estimateL1Gas","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/functions/estimateL1GasCost":{"id":"build-on-morph/sdk/functions/estimateL1GasCost","title":"estimateL1GasCost","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/functions/estimateL2GasCost":{"id":"build-on-morph/sdk/functions/estimateL2GasCost","title":"estimateL2GasCost","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/functions/estimateTotalGasCost":{"id":"build-on-morph/sdk/functions/estimateTotalGasCost","title":"estimateTotalGasCost","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/functions/getAllOEContracts":{"id":"build-on-morph/sdk/functions/getAllOEContracts","title":"getAllOEContracts","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/functions/getBridgeAdapters":{"id":"build-on-morph/sdk/functions/getBridgeAdapters","title":"getBridgeAdapters","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/functions/getL1GasPrice":{"id":"build-on-morph/sdk/functions/getL1GasPrice","title":"getL1GasPrice","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/functions/getOEContract":{"id":"build-on-morph/sdk/functions/getOEContract","title":"getOEContract","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/functions/hashLowLevelMessageV2":{"id":"build-on-morph/sdk/functions/hashLowLevelMessageV2","title":"hashLowLevelMessageV2","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/functions/hashMessageHash":{"id":"build-on-morph/sdk/functions/hashMessageHash","title":"hashMessageHash","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/functions/isL2Provider":{"id":"build-on-morph/sdk/functions/isL2Provider","title":"isL2Provider","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/functions/migratedWithdrawalGasLimit":{"id":"build-on-morph/sdk/functions/migratedWithdrawalGasLimit","title":"migratedWithdrawalGasLimit","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/functions/omit":{"id":"build-on-morph/sdk/functions/omit","title":"omit","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/functions/toAddress":{"id":"build-on-morph/sdk/functions/toAddress","title":"toAddress","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/functions/toBigNumber":{"id":"build-on-morph/sdk/functions/toBigNumber","title":"toBigNumber","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/functions/toNumber":{"id":"build-on-morph/sdk/functions/toNumber","title":"toNumber","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/functions/toProvider":{"id":"build-on-morph/sdk/functions/toProvider","title":"toProvider","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/functions/toSignerOrProvider":{"id":"build-on-morph/sdk/functions/toSignerOrProvider","title":"toSignerOrProvider","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/functions/toTransactionHash":{"id":"build-on-morph/sdk/functions/toTransactionHash","title":"toTransactionHash","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/globals":{"id":"build-on-morph/sdk/globals","title":"Use SDK to interact with Morph","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"build-on-morph/sdk/interfaces/BridgeAdapterData":{"id":"build-on-morph/sdk/interfaces/BridgeAdapterData","title":"BridgeAdapterData","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/interfaces/BridgeAdapters":{"id":"build-on-morph/sdk/interfaces/BridgeAdapters","title":"BridgeAdapters","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/interfaces/CoreCrossChainMessage":{"id":"build-on-morph/sdk/interfaces/CoreCrossChainMessage","title":"CoreCrossChainMessage","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/interfaces/CrossChainMessage":{"id":"build-on-morph/sdk/interfaces/CrossChainMessage","title":"CrossChainMessage","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/interfaces/CrossChainMessageRequest":{"id":"build-on-morph/sdk/interfaces/CrossChainMessageRequest","title":"CrossChainMessageRequest","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/interfaces/IActionOptions":{"id":"build-on-morph/sdk/interfaces/IActionOptions","title":"IActionOptions","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/interfaces/IBridgeAdapter":{"id":"build-on-morph/sdk/interfaces/IBridgeAdapter","title":"IBridgeAdapter","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/interfaces/L2Block":{"id":"build-on-morph/sdk/interfaces/L2Block","title":"L2Block","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/interfaces/L2BlockWithTransactions":{"id":"build-on-morph/sdk/interfaces/L2BlockWithTransactions","title":"L2BlockWithTransactions","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/interfaces/L2Transaction":{"id":"build-on-morph/sdk/interfaces/L2Transaction","title":"L2Transaction","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/interfaces/MessageReceipt":{"id":"build-on-morph/sdk/interfaces/MessageReceipt","title":"MessageReceipt","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/interfaces/OEContracts":{"id":"build-on-morph/sdk/interfaces/OEContracts","title":"OEContracts","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/interfaces/OEContractsLike":{"id":"build-on-morph/sdk/interfaces/OEContractsLike","title":"OEContractsLike","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/interfaces/OEL1Contracts":{"id":"build-on-morph/sdk/interfaces/OEL1Contracts","title":"OEL1Contracts","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/interfaces/OEL2Contracts":{"id":"build-on-morph/sdk/interfaces/OEL2Contracts","title":"OEL2Contracts","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/interfaces/ProvenWithdrawal":{"id":"build-on-morph/sdk/interfaces/ProvenWithdrawal","title":"ProvenWithdrawal","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/interfaces/StateRoot":{"id":"build-on-morph/sdk/interfaces/StateRoot","title":"StateRoot","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/interfaces/StateRootBatch":{"id":"build-on-morph/sdk/interfaces/StateRootBatch","title":"StateRootBatch","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/interfaces/StateRootBatchHeader":{"id":"build-on-morph/sdk/interfaces/StateRootBatchHeader","title":"StateRootBatchHeader","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/interfaces/TokenBridgeMessage":{"id":"build-on-morph/sdk/interfaces/TokenBridgeMessage","title":"TokenBridgeMessage","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/interfaces/WithdrawalEntry":{"id":"build-on-morph/sdk/interfaces/WithdrawalEntry","title":"WithdrawalEntry","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/interfaces/WithdrawMessageProof":{"id":"build-on-morph/sdk/interfaces/WithdrawMessageProof","title":"WithdrawMessageProof","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/intro":{"id":"build-on-morph/sdk/intro","title":"intro","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/type-aliases/AddressLike":{"id":"build-on-morph/sdk/type-aliases/AddressLike","title":"AddressLike","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/type-aliases/DeepPartial":{"id":"build-on-morph/sdk/type-aliases/DeepPartial","title":"DeepPartial","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/type-aliases/L1Provider":{"id":"build-on-morph/sdk/type-aliases/L1Provider","title":"L1Provider","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/type-aliases/L2Provider":{"id":"build-on-morph/sdk/type-aliases/L2Provider","title":"L2Provider","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/type-aliases/LowLevelMessage":{"id":"build-on-morph/sdk/type-aliases/LowLevelMessage","title":"LowLevelMessage","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/type-aliases/MessageLike":{"id":"build-on-morph/sdk/type-aliases/MessageLike","title":"MessageLike","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/type-aliases/MessageRequestLike":{"id":"build-on-morph/sdk/type-aliases/MessageRequestLike","title":"MessageRequestLike","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/type-aliases/NumberLike":{"id":"build-on-morph/sdk/type-aliases/NumberLike","title":"NumberLike","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/type-aliases/OEL1ContractsLike":{"id":"build-on-morph/sdk/type-aliases/OEL1ContractsLike","title":"OEL1ContractsLike","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/type-aliases/OEL2ContractsLike":{"id":"build-on-morph/sdk/type-aliases/OEL2ContractsLike","title":"OEL2ContractsLike","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/type-aliases/ProviderLike":{"id":"build-on-morph/sdk/type-aliases/ProviderLike","title":"ProviderLike","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/type-aliases/SignerLike":{"id":"build-on-morph/sdk/type-aliases/SignerLike","title":"SignerLike","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/type-aliases/SignerOrProviderLike":{"id":"build-on-morph/sdk/type-aliases/SignerOrProviderLike","title":"SignerOrProviderLike","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/type-aliases/TransactionLike":{"id":"build-on-morph/sdk/type-aliases/TransactionLike","title":"TransactionLike","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/variables/BRIDGE_ADAPTER_DATA":{"id":"build-on-morph/sdk/variables/BRIDGE_ADAPTER_DATA","title":"BRIDGE_ADAPTER_DATA","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/variables/CHAIN_BLOCK_TIMES":{"id":"build-on-morph/sdk/variables/CHAIN_BLOCK_TIMES","title":"CHAIN_BLOCK_TIMES","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/variables/CONTRACT_ADDRESSES":{"id":"build-on-morph/sdk/variables/CONTRACT_ADDRESSES","title":"CONTRACT_ADDRESSES","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/variables/DEFAULT_L1_CONTRACT_ADDRESSES":{"id":"build-on-morph/sdk/variables/DEFAULT_L1_CONTRACT_ADDRESSES","title":"DEFAULT_L1_CONTRACT_ADDRESSES","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/variables/DEFAULT_L2_CONTRACT_ADDRESSES":{"id":"build-on-morph/sdk/variables/DEFAULT_L2_CONTRACT_ADDRESSES","title":"DEFAULT_L2_CONTRACT_ADDRESSES","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/variables/DEPOSIT_CONFIRMATION_BLOCKS":{"id":"build-on-morph/sdk/variables/DEPOSIT_CONFIRMATION_BLOCKS","title":"DEPOSIT_CONFIRMATION_BLOCKS","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/variables/l1BridgeName":{"id":"build-on-morph/sdk/variables/l1BridgeName","title":"l1BridgeName","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/variables/l1CrossDomainMessengerName":{"id":"build-on-morph/sdk/variables/l1CrossDomainMessengerName","title":"l1CrossDomainMessengerName","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/variables/l2BridgeName":{"id":"build-on-morph/sdk/variables/l2BridgeName","title":"l2BridgeName","description":"@morph-l2/sdk \u2022 Docs"},"build-on-morph/sdk/variables/l2CrossDomainMessengerName":{"id":"build-on-morph/sdk/variables/l2CrossDomainMessengerName","title":"l2CrossDomainMessengerName","description":"@morph-l2/sdk \u2022 Docs"},"how-morph-works/decentralized-sequencers/morph-decentralized-sequencer-network":{"id":"how-morph-works/decentralized-sequencers/morph-decentralized-sequencer-network","title":"Morph\'s Decentralized Sequencer Network","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"how-morph-works/general-protocol-design/communicate-between-morph-and-ethereum":{"id":"how-morph-works/general-protocol-design/communicate-between-morph-and-ethereum","title":"Communication between Morph and Ethereum","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"how-morph-works/general-protocol-design/difference-between-ethereum-and-morph":{"id":"how-morph-works/general-protocol-design/difference-between-ethereum-and-morph","title":"Difference between Morph and Ethereum","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"how-morph-works/general-protocol-design/rollup":{"id":"how-morph-works/general-protocol-design/rollup","title":"Rollup","description":"Explain how rollup process works in Morph","sidebar":"DeveloperSidebar"},"how-morph-works/general-protocol-design/transactions-life-cycle":{"id":"how-morph-works/general-protocol-design/transactions-life-cycle","title":"Transactions Life Cycle","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"how-morph-works/intro":{"id":"how-morph-works/intro","title":"Introduction","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},"how-morph-works/morph-modular-design":{"id":"how-morph-works/morph-modular-design","title":"Morph Modular Design","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"how-morph-works/optimistic-zkevm":{"id":"how-morph-works/optimistic-zkevm","title":"Optimistic zkEVM","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"quick-start/bridge":{"id":"quick-start/bridge","title":"Bridge","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"quick-start/faucet":{"id":"quick-start/faucet","title":"Faucet","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"quick-start/morph-zoo/morph-points":{"id":"quick-start/morph-zoo/morph-points","title":"Morph Points","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"quick-start/morph-zoo/voting-rules":{"id":"quick-start/morph-zoo/voting-rules","title":"Voting Rules in Voice of the Jungle","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"quick-start/wallet-setup":{"id":"quick-start/wallet-setup","title":"Wallet Setup","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!","sidebar":"DeveloperSidebar"},"quick-start/welcome-to-morph":{"id":"quick-start/welcome-to-morph","title":"Welcome to Morph!","description":"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"}}}')}}]); \ No newline at end of file diff --git a/build/assets/js/8852.4ffac5c4.js b/build/assets/js/9505.7523b444.js similarity index 56% rename from build/assets/js/8852.4ffac5c4.js rename to build/assets/js/9505.7523b444.js index 5ad8bc1a0..df1a2d70f 100644 --- a/build/assets/js/8852.4ffac5c4.js +++ b/build/assets/js/9505.7523b444.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[8852],{8852:(c,e,h)=>{h.r(e)}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[9505],{9505:(c,e,h)=>{h.r(e)}}]); \ No newline at end of file diff --git a/build/assets/js/95a7ae32.3ed4f3ad.js b/build/assets/js/95a7ae32.3ed4f3ad.js new file mode 100644 index 000000000..ee6516bd1 --- /dev/null +++ b/build/assets/js/95a7ae32.3ed4f3ad.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[5116],{5485:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>d,contentTitle:()=>c,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>a});var t=n(6070),r=n(1582);const o={},c="Enumeration: MessageReceiptStatus",i={id:"build-on-morph/sdk/enumerations/MessageReceiptStatus",title:"MessageReceiptStatus",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/enumerations/MessageReceiptStatus.md",sourceDirName:"build-on-morph/sdk/enumerations",slug:"/build-on-morph/sdk/enumerations/MessageReceiptStatus",permalink:"/docs/build-on-morph/sdk/enumerations/MessageReceiptStatus",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/enumerations/MessageReceiptStatus.md",tags:[],version:"current",frontMatter:{}},d={},a=[{value:"Enumeration Members",id:"enumeration-members",level:2},{value:"RELAYED_FAILED",id:"relayed_failed",level:3},{value:"Source",id:"source",level:4},{value:"RELAYED_SUCCEEDED",id:"relayed_succeeded",level:3},{value:"Source",id:"source-1",level:4}];function l(e){const s={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",p:"p",strong:"strong",...(0,r.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,t.jsx)(s.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,t.jsx)(s.strong,{children:"Docs"})]}),"\n",(0,t.jsx)(s.hr,{}),"\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / MessageReceiptStatus"]}),"\n",(0,t.jsx)(s.h1,{id:"enumeration-messagereceiptstatus",children:"Enumeration: MessageReceiptStatus"}),"\n",(0,t.jsx)(s.p,{children:"Enum describing the status of a CrossDomainMessage message receipt."}),"\n",(0,t.jsx)(s.h2,{id:"enumeration-members",children:"Enumeration Members"}),"\n",(0,t.jsx)(s.h3,{id:"relayed_failed",children:"RELAYED_FAILED"}),"\n",(0,t.jsxs)(s.blockquote,{children:["\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.strong,{children:"RELAYED_FAILED"}),": ",(0,t.jsx)(s.code,{children:"0"})]}),"\n"]}),"\n",(0,t.jsx)(s.h4,{id:"source",children:"Source"}),"\n",(0,t.jsx)(s.p,{children:"src/interfaces/types.ts:299"}),"\n",(0,t.jsx)(s.hr,{}),"\n",(0,t.jsx)(s.h3,{id:"relayed_succeeded",children:"RELAYED_SUCCEEDED"}),"\n",(0,t.jsxs)(s.blockquote,{children:["\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.strong,{children:"RELAYED_SUCCEEDED"}),": ",(0,t.jsx)(s.code,{children:"1"})]}),"\n"]}),"\n",(0,t.jsx)(s.h4,{id:"source-1",children:"Source"}),"\n",(0,t.jsx)(s.p,{children:"src/interfaces/types.ts:300"})]})}function u(e={}){const{wrapper:s}={...(0,r.R)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(l,{...e})}):l(e)}},1582:(e,s,n)=>{n.d(s,{R:()=>c,x:()=>i});var t=n(758);const r={},o=t.createContext(r);function c(e){const s=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function i(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:c(e.components),t.createElement(o.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/95a7ae32.b384d86d.js b/build/assets/js/95a7ae32.b384d86d.js deleted file mode 100644 index 251af9b37..000000000 --- a/build/assets/js/95a7ae32.b384d86d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[5116],{684:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>d,contentTitle:()=>c,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>a});var t=n(3274),r=n(2333);const o={},c="Enumeration: MessageReceiptStatus",i={id:"build-on-morph/sdk/enumerations/MessageReceiptStatus",title:"MessageReceiptStatus",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/enumerations/MessageReceiptStatus.md",sourceDirName:"build-on-morph/sdk/enumerations",slug:"/build-on-morph/sdk/enumerations/MessageReceiptStatus",permalink:"/docs/build-on-morph/sdk/enumerations/MessageReceiptStatus",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/enumerations/MessageReceiptStatus.md",tags:[],version:"current",frontMatter:{}},d={},a=[{value:"Enumeration Members",id:"enumeration-members",level:2},{value:"RELAYED_FAILED",id:"relayed_failed",level:3},{value:"Source",id:"source",level:4},{value:"RELAYED_SUCCEEDED",id:"relayed_succeeded",level:3},{value:"Source",id:"source-1",level:4}];function l(e){const s={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",p:"p",strong:"strong",...(0,r.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,t.jsx)(s.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,t.jsx)(s.strong,{children:"Docs"})]}),"\n",(0,t.jsx)(s.hr,{}),"\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / MessageReceiptStatus"]}),"\n",(0,t.jsx)(s.h1,{id:"enumeration-messagereceiptstatus",children:"Enumeration: MessageReceiptStatus"}),"\n",(0,t.jsx)(s.p,{children:"Enum describing the status of a CrossDomainMessage message receipt."}),"\n",(0,t.jsx)(s.h2,{id:"enumeration-members",children:"Enumeration Members"}),"\n",(0,t.jsx)(s.h3,{id:"relayed_failed",children:"RELAYED_FAILED"}),"\n",(0,t.jsxs)(s.blockquote,{children:["\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.strong,{children:"RELAYED_FAILED"}),": ",(0,t.jsx)(s.code,{children:"0"})]}),"\n"]}),"\n",(0,t.jsx)(s.h4,{id:"source",children:"Source"}),"\n",(0,t.jsx)(s.p,{children:"src/interfaces/types.ts:299"}),"\n",(0,t.jsx)(s.hr,{}),"\n",(0,t.jsx)(s.h3,{id:"relayed_succeeded",children:"RELAYED_SUCCEEDED"}),"\n",(0,t.jsxs)(s.blockquote,{children:["\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.strong,{children:"RELAYED_SUCCEEDED"}),": ",(0,t.jsx)(s.code,{children:"1"})]}),"\n"]}),"\n",(0,t.jsx)(s.h4,{id:"source-1",children:"Source"}),"\n",(0,t.jsx)(s.p,{children:"src/interfaces/types.ts:300"})]})}function u(e={}){const{wrapper:s}={...(0,r.R)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(l,{...e})}):l(e)}},2333:(e,s,n)=>{n.d(s,{R:()=>c,x:()=>i});var t=n(9474);const r={},o=t.createContext(r);function c(e){const s=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function i(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:c(e.components),t.createElement(o.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/979f48c0.2b0cba0c.js b/build/assets/js/979f48c0.2b0cba0c.js new file mode 100644 index 000000000..4e6e2279b --- /dev/null +++ b/build/assets/js/979f48c0.2b0cba0c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[3679],{588:(e,r,s)=>{s.r(r),s.d(r,{assets:()=>c,contentTitle:()=>i,default:()=>a,frontMatter:()=>d,metadata:()=>t,toc:()=>l});var n=s(6070),o=s(1582);const d={},i="Interface: WithdrawMessageProof",t={id:"build-on-morph/sdk/interfaces/WithdrawMessageProof",title:"WithdrawMessageProof",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/interfaces/WithdrawMessageProof.md",sourceDirName:"build-on-morph/sdk/interfaces",slug:"/build-on-morph/sdk/interfaces/WithdrawMessageProof",permalink:"/docs/build-on-morph/sdk/interfaces/WithdrawMessageProof",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/interfaces/WithdrawMessageProof.md",tags:[],version:"current",frontMatter:{}},c={},l=[{value:"Properties",id:"properties",level:2},{value:"withdrawalIndex",id:"withdrawalindex",level:3},{value:"Source",id:"source",level:4},{value:"withdrawalLeaf",id:"withdrawalleaf",level:3},{value:"Source",id:"source-1",level:4},{value:"withdrawalProof",id:"withdrawalproof",level:3},{value:"Source",id:"source-2",level:4},{value:"withdrawalRoot",id:"withdrawalroot",level:3},{value:"Source",id:"source-3",level:4}];function h(e){const r={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",p:"p",strong:"strong",...(0,o.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,n.jsx)(r.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,n.jsx)(r.strong,{children:"Docs"})]}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / WithdrawMessageProof"]}),"\n",(0,n.jsx)(r.h1,{id:"interface-withdrawmessageproof",children:"Interface: WithdrawMessageProof"}),"\n",(0,n.jsx)(r.h2,{id:"properties",children:"Properties"}),"\n",(0,n.jsx)(r.h3,{id:"withdrawalindex",children:"withdrawalIndex"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"withdrawalIndex"}),": ",(0,n.jsx)(r.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"source",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/cross-chain-messenger.ts:61"}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"withdrawalleaf",children:"withdrawalLeaf"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"withdrawalLeaf"}),": ",(0,n.jsx)(r.code,{children:"any"})]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"source-1",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/cross-chain-messenger.ts:64"}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"withdrawalproof",children:"withdrawalProof"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"withdrawalProof"}),": ",(0,n.jsx)(r.code,{children:"string"}),"[]"]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"source-2",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/cross-chain-messenger.ts:62"}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"withdrawalroot",children:"withdrawalRoot"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"withdrawalRoot"}),": ",(0,n.jsx)(r.code,{children:"string"})]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"source-3",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/cross-chain-messenger.ts:63"})]})}function a(e={}){const{wrapper:r}={...(0,o.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},1582:(e,r,s)=>{s.d(r,{R:()=>i,x:()=>t});var n=s(758);const o={},d=n.createContext(o);function i(e){const r=n.useContext(d);return n.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function t(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),n.createElement(d.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/979f48c0.6c7e8b57.js b/build/assets/js/979f48c0.6c7e8b57.js deleted file mode 100644 index 90f914f73..000000000 --- a/build/assets/js/979f48c0.6c7e8b57.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[3679],{5970:(e,r,s)=>{s.r(r),s.d(r,{assets:()=>c,contentTitle:()=>i,default:()=>a,frontMatter:()=>d,metadata:()=>t,toc:()=>l});var n=s(3274),o=s(2333);const d={},i="Interface: WithdrawMessageProof",t={id:"build-on-morph/sdk/interfaces/WithdrawMessageProof",title:"WithdrawMessageProof",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/interfaces/WithdrawMessageProof.md",sourceDirName:"build-on-morph/sdk/interfaces",slug:"/build-on-morph/sdk/interfaces/WithdrawMessageProof",permalink:"/docs/build-on-morph/sdk/interfaces/WithdrawMessageProof",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/interfaces/WithdrawMessageProof.md",tags:[],version:"current",frontMatter:{}},c={},l=[{value:"Properties",id:"properties",level:2},{value:"withdrawalIndex",id:"withdrawalindex",level:3},{value:"Source",id:"source",level:4},{value:"withdrawalLeaf",id:"withdrawalleaf",level:3},{value:"Source",id:"source-1",level:4},{value:"withdrawalProof",id:"withdrawalproof",level:3},{value:"Source",id:"source-2",level:4},{value:"withdrawalRoot",id:"withdrawalroot",level:3},{value:"Source",id:"source-3",level:4}];function h(e){const r={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",p:"p",strong:"strong",...(0,o.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,n.jsx)(r.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,n.jsx)(r.strong,{children:"Docs"})]}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / WithdrawMessageProof"]}),"\n",(0,n.jsx)(r.h1,{id:"interface-withdrawmessageproof",children:"Interface: WithdrawMessageProof"}),"\n",(0,n.jsx)(r.h2,{id:"properties",children:"Properties"}),"\n",(0,n.jsx)(r.h3,{id:"withdrawalindex",children:"withdrawalIndex"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"withdrawalIndex"}),": ",(0,n.jsx)(r.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"source",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/cross-chain-messenger.ts:61"}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"withdrawalleaf",children:"withdrawalLeaf"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"withdrawalLeaf"}),": ",(0,n.jsx)(r.code,{children:"any"})]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"source-1",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/cross-chain-messenger.ts:64"}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"withdrawalproof",children:"withdrawalProof"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"withdrawalProof"}),": ",(0,n.jsx)(r.code,{children:"string"}),"[]"]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"source-2",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/cross-chain-messenger.ts:62"}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"withdrawalroot",children:"withdrawalRoot"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"withdrawalRoot"}),": ",(0,n.jsx)(r.code,{children:"string"})]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"source-3",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/cross-chain-messenger.ts:63"})]})}function a(e={}){const{wrapper:r}={...(0,o.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},2333:(e,r,s)=>{s.d(r,{R:()=>i,x:()=>t});var n=s(9474);const o={},d=n.createContext(o);function i(e){const r=n.useContext(d);return n.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function t(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),n.createElement(d.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/98d1a41e.fdb37ceb.js b/build/assets/js/98d1a41e.a0a45743.js similarity index 92% rename from build/assets/js/98d1a41e.fdb37ceb.js rename to build/assets/js/98d1a41e.a0a45743.js index 9f3dfe710..a9a9d28eb 100644 --- a/build/assets/js/98d1a41e.fdb37ceb.js +++ b/build/assets/js/98d1a41e.a0a45743.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[720],{5276:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>d,toc:()=>t});var r=s(3274),c=s(2333);const o={},i="Interface: TokenBridgeMessage",d={id:"build-on-morph/sdk/interfaces/TokenBridgeMessage",title:"TokenBridgeMessage",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage.md",sourceDirName:"build-on-morph/sdk/interfaces",slug:"/build-on-morph/sdk/interfaces/TokenBridgeMessage",permalink:"/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage.md",tags:[],version:"current",frontMatter:{}},l={},t=[{value:"Properties",id:"properties",level:2},{value:"amount",id:"amount",level:3},{value:"Source",id:"source",level:4},{value:"blockNumber",id:"blocknumber",level:3},{value:"Source",id:"source-1",level:4},{value:"data",id:"data",level:3},{value:"Source",id:"source-2",level:4},{value:"direction",id:"direction",level:3},{value:"Source",id:"source-3",level:4},{value:"from",id:"from",level:3},{value:"Source",id:"source-4",level:4},{value:"l1Token",id:"l1token",level:3},{value:"Source",id:"source-5",level:4},{value:"l2Token",id:"l2token",level:3},{value:"Source",id:"source-6",level:4},{value:"logIndex",id:"logindex",level:3},{value:"Source",id:"source-7",level:4},{value:"to",id:"to",level:3},{value:"Source",id:"source-8",level:4},{value:"transactionHash",id:"transactionhash",level:3},{value:"Source",id:"source-9",level:4}];function h(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",p:"p",strong:"strong",...(0,c.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,r.jsx)(n.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,r.jsx)(n.strong,{children:"Docs"})]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / TokenBridgeMessage"]}),"\n",(0,r.jsx)(n.h1,{id:"interface-tokenbridgemessage",children:"Interface: TokenBridgeMessage"}),"\n",(0,r.jsx)(n.p,{children:"Describes a token withdrawal or deposit, along with the underlying raw cross chain message\nbehind the deposit or withdrawal."}),"\n",(0,r.jsx)(n.h2,{id:"properties",children:"Properties"}),"\n",(0,r.jsx)(n.h3,{id:"amount",children:"amount"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"amount"}),": ",(0,r.jsx)(n.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"source",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/interfaces/types.ts:280"}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"blocknumber",children:"blockNumber"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"blockNumber"}),": ",(0,r.jsx)(n.code,{children:"number"})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"source-1",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/interfaces/types.ts:283"}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"data",children:"data"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"data"}),": ",(0,r.jsx)(n.code,{children:"string"})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"source-2",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/interfaces/types.ts:281"}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"direction",children:"direction"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"direction"}),": ",(0,r.jsx)(n.a,{href:"/docs/build-on-morph/sdk/enumerations/MessageDirection",children:(0,r.jsx)(n.code,{children:"MessageDirection"})})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"source-3",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/interfaces/types.ts:275"}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"from",children:"from"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"from"}),": ",(0,r.jsx)(n.code,{children:"string"})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"source-4",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/interfaces/types.ts:276"}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"l1token",children:"l1Token"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"l1Token"}),": ",(0,r.jsx)(n.code,{children:"string"})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"source-5",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/interfaces/types.ts:278"}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"l2token",children:"l2Token"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"l2Token"}),": ",(0,r.jsx)(n.code,{children:"string"})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"source-6",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/interfaces/types.ts:279"}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"logindex",children:"logIndex"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"logIndex"}),": ",(0,r.jsx)(n.code,{children:"number"})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"source-7",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/interfaces/types.ts:282"}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"to",children:"to"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"to"}),": ",(0,r.jsx)(n.code,{children:"string"})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"source-8",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/interfaces/types.ts:277"}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"transactionhash",children:"transactionHash"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"transactionHash"}),": ",(0,r.jsx)(n.code,{children:"string"})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"source-9",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/interfaces/types.ts:284"})]})}function u(e={}){const{wrapper:n}={...(0,c.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},2333:(e,n,s)=>{s.d(n,{R:()=>i,x:()=>d});var r=s(9474);const c={},o=r.createContext(c);function i(e){const n=r.useContext(o);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(c):e.components||c:i(e.components),r.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[720],{3074:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>d,toc:()=>t});var r=s(6070),c=s(1582);const o={},i="Interface: TokenBridgeMessage",d={id:"build-on-morph/sdk/interfaces/TokenBridgeMessage",title:"TokenBridgeMessage",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage.md",sourceDirName:"build-on-morph/sdk/interfaces",slug:"/build-on-morph/sdk/interfaces/TokenBridgeMessage",permalink:"/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage.md",tags:[],version:"current",frontMatter:{}},l={},t=[{value:"Properties",id:"properties",level:2},{value:"amount",id:"amount",level:3},{value:"Source",id:"source",level:4},{value:"blockNumber",id:"blocknumber",level:3},{value:"Source",id:"source-1",level:4},{value:"data",id:"data",level:3},{value:"Source",id:"source-2",level:4},{value:"direction",id:"direction",level:3},{value:"Source",id:"source-3",level:4},{value:"from",id:"from",level:3},{value:"Source",id:"source-4",level:4},{value:"l1Token",id:"l1token",level:3},{value:"Source",id:"source-5",level:4},{value:"l2Token",id:"l2token",level:3},{value:"Source",id:"source-6",level:4},{value:"logIndex",id:"logindex",level:3},{value:"Source",id:"source-7",level:4},{value:"to",id:"to",level:3},{value:"Source",id:"source-8",level:4},{value:"transactionHash",id:"transactionhash",level:3},{value:"Source",id:"source-9",level:4}];function h(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",p:"p",strong:"strong",...(0,c.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,r.jsx)(n.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,r.jsx)(n.strong,{children:"Docs"})]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / TokenBridgeMessage"]}),"\n",(0,r.jsx)(n.h1,{id:"interface-tokenbridgemessage",children:"Interface: TokenBridgeMessage"}),"\n",(0,r.jsx)(n.p,{children:"Describes a token withdrawal or deposit, along with the underlying raw cross chain message\nbehind the deposit or withdrawal."}),"\n",(0,r.jsx)(n.h2,{id:"properties",children:"Properties"}),"\n",(0,r.jsx)(n.h3,{id:"amount",children:"amount"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"amount"}),": ",(0,r.jsx)(n.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"source",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/interfaces/types.ts:280"}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"blocknumber",children:"blockNumber"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"blockNumber"}),": ",(0,r.jsx)(n.code,{children:"number"})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"source-1",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/interfaces/types.ts:283"}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"data",children:"data"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"data"}),": ",(0,r.jsx)(n.code,{children:"string"})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"source-2",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/interfaces/types.ts:281"}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"direction",children:"direction"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"direction"}),": ",(0,r.jsx)(n.a,{href:"/docs/build-on-morph/sdk/enumerations/MessageDirection",children:(0,r.jsx)(n.code,{children:"MessageDirection"})})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"source-3",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/interfaces/types.ts:275"}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"from",children:"from"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"from"}),": ",(0,r.jsx)(n.code,{children:"string"})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"source-4",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/interfaces/types.ts:276"}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"l1token",children:"l1Token"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"l1Token"}),": ",(0,r.jsx)(n.code,{children:"string"})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"source-5",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/interfaces/types.ts:278"}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"l2token",children:"l2Token"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"l2Token"}),": ",(0,r.jsx)(n.code,{children:"string"})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"source-6",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/interfaces/types.ts:279"}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"logindex",children:"logIndex"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"logIndex"}),": ",(0,r.jsx)(n.code,{children:"number"})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"source-7",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/interfaces/types.ts:282"}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"to",children:"to"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"to"}),": ",(0,r.jsx)(n.code,{children:"string"})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"source-8",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/interfaces/types.ts:277"}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"transactionhash",children:"transactionHash"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"transactionHash"}),": ",(0,r.jsx)(n.code,{children:"string"})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"source-9",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/interfaces/types.ts:284"})]})}function u(e={}){const{wrapper:n}={...(0,c.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},1582:(e,n,s)=>{s.d(n,{R:()=>i,x:()=>d});var r=s(758);const c={},o=r.createContext(c);function i(e){const n=r.useContext(o);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(c):e.components||c:i(e.components),r.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/99b8a708.398eb8a9.js b/build/assets/js/99b8a708.398eb8a9.js new file mode 100644 index 000000000..1845dcfce --- /dev/null +++ b/build/assets/js/99b8a708.398eb8a9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[8371],{339:(e,i,o)=>{o.r(i),o.d(i,{assets:()=>c,contentTitle:()=>s,default:()=>p,frontMatter:()=>r,metadata:()=>a,toc:()=>l});var n=o(6070),t=o(1582);const r={title:"Morph's Vision and Mission",lang:"en-US",keywords:["morph","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},s=void 0,a={id:"about-morph/morphs-vision-and-mission",title:"Morph's Vision and Mission",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/about-morph/5-morphs-vision-and-mission.md",sourceDirName:"about-morph",slug:"/about-morph/morphs-vision-and-mission",permalink:"/docs/about-morph/morphs-vision-and-mission",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/about-morph/5-morphs-vision-and-mission.md",tags:[],version:"current",sidebarPosition:5,frontMatter:{title:"Morph's Vision and Mission",lang:"en-US",keywords:["morph","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"Morph's Architecture",permalink:"/docs/about-morph/morphs-architecture"},next:{title:"Key Concepts",permalink:"/docs/about-morph/key-concepts"}},c={},l=[{value:"We Seek to Bridge the Gap\u200b",id:"we-seek-to-bridge-the-gap",level:2},{value:"Why Morph?\u200b",id:"why-morph",level:2},{value:"Commitment to Our Community\u200b",id:"commitment-to-our-community",level:2}];function h(e){const i={h2:"h2",li:"li",p:"p",ul:"ul",...(0,t.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(i.p,{children:"Morph is redefining the blockchain landscape with a clear focus on the consumer. Our vision is rooted in the belief that blockchain technology should be an accessible, practical tool for daily life, rather than a complex concept reserved for experts. We aim to transform how individuals interact with blockchain technology, making it as integral and user-friendly as any essential service in the digital age."}),"\n",(0,n.jsx)(i.h2,{id:"we-seek-to-bridge-the-gap",children:"We Seek to Bridge the Gap\u200b"}),"\n",(0,n.jsx)(i.p,{children:"Our mission is to build an ecosystem of on-chain consumer applications on a completely decentralized infrastructure. Morph was created as a more approachable and practical blockchain solution in response to the gap in existing Layer 2 offerings \u2013 a lack of focus on the end-user experience and practicality."}),"\n",(0,n.jsx)(i.h2,{id:"why-morph",children:"Why Morph?\u200b"}),"\n",(0,n.jsx)(i.p,{children:"The inspiration behind Morph is a fusion of dreams and precision. Our platform is named after Morpheus, the Greek god of dreams, symbolizing our ability to influence both the commonplace and the extraordinary. Morph also draws on the mathematical principle of morphology, representing transformations that maintain structure and integrity. The combination of these concepts represents our ability to bring revolutionary blockchain applications that focus on improving everyday life with precision and reliability."}),"\n",(0,n.jsx)(i.h2,{id:"commitment-to-our-community",children:"Commitment to Our Community\u200b"}),"\n",(0,n.jsx)(i.p,{children:"At Morph, our commitment extends beyond technology. We prioritize:"}),"\n",(0,n.jsxs)(i.ul,{children:["\n",(0,n.jsx)(i.li,{children:"Consumer-Centric Innovation: Focusing on the needs and experiences of users, ensuring that our platform is intuitive, efficient, and beneficial for everyday use."}),"\n",(0,n.jsx)(i.li,{children:"Transparency and Trust: Building a community grounded in openness and mutual trust, where every step we take is communicated clearly and honestly."}),"\n",(0,n.jsx)(i.li,{children:"Collaborative Ecosystem: Encouraging active participation and feedback from our community, ensuring that Morph evolves in alignment with the needs and demands of its users."}),"\n"]})]})}function p(e={}){const{wrapper:i}={...(0,t.R)(),...e.components};return i?(0,n.jsx)(i,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},1582:(e,i,o)=>{o.d(i,{R:()=>s,x:()=>a});var n=o(758);const t={},r=n.createContext(t);function s(e){const i=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function a(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:s(e.components),n.createElement(r.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/99b8a708.3f8bf2d3.js b/build/assets/js/99b8a708.3f8bf2d3.js deleted file mode 100644 index 978fbf443..000000000 --- a/build/assets/js/99b8a708.3f8bf2d3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[8371],{8037:(e,i,o)=>{o.r(i),o.d(i,{assets:()=>c,contentTitle:()=>s,default:()=>p,frontMatter:()=>r,metadata:()=>a,toc:()=>l});var n=o(3274),t=o(2333);const r={title:"Morph's Vision and Mission",lang:"en-US",keywords:["morph","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},s=void 0,a={id:"about-morph/morphs-vision-and-mission",title:"Morph's Vision and Mission",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/about-morph/5-morphs-vision-and-mission.md",sourceDirName:"about-morph",slug:"/about-morph/morphs-vision-and-mission",permalink:"/docs/about-morph/morphs-vision-and-mission",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/about-morph/5-morphs-vision-and-mission.md",tags:[],version:"current",sidebarPosition:5,frontMatter:{title:"Morph's Vision and Mission",lang:"en-US",keywords:["morph","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"Morph's Architecture",permalink:"/docs/about-morph/morphs-architecture"},next:{title:"Key Concepts",permalink:"/docs/about-morph/key-concepts"}},c={},l=[{value:"We Seek to Bridge the Gap\u200b",id:"we-seek-to-bridge-the-gap",level:2},{value:"Why Morph?\u200b",id:"why-morph",level:2},{value:"Commitment to Our Community\u200b",id:"commitment-to-our-community",level:2}];function h(e){const i={h2:"h2",li:"li",p:"p",ul:"ul",...(0,t.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(i.p,{children:"Morph is redefining the blockchain landscape with a clear focus on the consumer. Our vision is rooted in the belief that blockchain technology should be an accessible, practical tool for daily life, rather than a complex concept reserved for experts. We aim to transform how individuals interact with blockchain technology, making it as integral and user-friendly as any essential service in the digital age."}),"\n",(0,n.jsx)(i.h2,{id:"we-seek-to-bridge-the-gap",children:"We Seek to Bridge the Gap\u200b"}),"\n",(0,n.jsx)(i.p,{children:"Our mission is to build an ecosystem of on-chain consumer applications on a completely decentralized infrastructure. Morph was created as a more approachable and practical blockchain solution in response to the gap in existing Layer 2 offerings \u2013 a lack of focus on the end-user experience and practicality."}),"\n",(0,n.jsx)(i.h2,{id:"why-morph",children:"Why Morph?\u200b"}),"\n",(0,n.jsx)(i.p,{children:"The inspiration behind Morph is a fusion of dreams and precision. Our platform is named after Morpheus, the Greek god of dreams, symbolizing our ability to influence both the commonplace and the extraordinary. Morph also draws on the mathematical principle of morphology, representing transformations that maintain structure and integrity. The combination of these concepts represents our ability to bring revolutionary blockchain applications that focus on improving everyday life with precision and reliability."}),"\n",(0,n.jsx)(i.h2,{id:"commitment-to-our-community",children:"Commitment to Our Community\u200b"}),"\n",(0,n.jsx)(i.p,{children:"At Morph, our commitment extends beyond technology. We prioritize:"}),"\n",(0,n.jsxs)(i.ul,{children:["\n",(0,n.jsx)(i.li,{children:"Consumer-Centric Innovation: Focusing on the needs and experiences of users, ensuring that our platform is intuitive, efficient, and beneficial for everyday use."}),"\n",(0,n.jsx)(i.li,{children:"Transparency and Trust: Building a community grounded in openness and mutual trust, where every step we take is communicated clearly and honestly."}),"\n",(0,n.jsx)(i.li,{children:"Collaborative Ecosystem: Encouraging active participation and feedback from our community, ensuring that Morph evolves in alignment with the needs and demands of its users."}),"\n"]})]})}function p(e={}){const{wrapper:i}={...(0,t.R)(),...e.components};return i?(0,n.jsx)(i,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},2333:(e,i,o)=>{o.d(i,{R:()=>s,x:()=>a});var n=o(9474);const t={},r=n.createContext(t);function s(e){const i=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function a(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:s(e.components),n.createElement(r.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/9a9366b1.870698a9.js b/build/assets/js/9a9366b1.ab1a0d5d.js similarity index 95% rename from build/assets/js/9a9366b1.870698a9.js rename to build/assets/js/9a9366b1.ab1a0d5d.js index c3fa7ee8d..e32bf29bc 100644 --- a/build/assets/js/9a9366b1.870698a9.js +++ b/build/assets/js/9a9366b1.ab1a0d5d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[2106],{3920:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>o,contentTitle:()=>l,default:()=>a,frontMatter:()=>s,metadata:()=>c,toc:()=>h});var i=n(3274),d=n(2333);const s={},l="Interface: L2Block",c={id:"build-on-morph/sdk/interfaces/L2Block",title:"L2Block",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/interfaces/L2Block.md",sourceDirName:"build-on-morph/sdk/interfaces",slug:"/build-on-morph/sdk/interfaces/L2Block",permalink:"/docs/build-on-morph/sdk/interfaces/L2Block",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/interfaces/L2Block.md",tags:[],version:"current",frontMatter:{}},o={},h=[{value:"Extends",id:"extends",level:2},{value:"Properties",id:"properties",level:2},{value:"_difficulty",id:"_difficulty",level:3},{value:"Inherited from",id:"inherited-from",level:4},{value:"Source",id:"source",level:4},{value:"baseFeePerGas?",id:"basefeepergas",level:3},{value:"Inherited from",id:"inherited-from-1",level:4},{value:"Source",id:"source-1",level:4},{value:"difficulty",id:"difficulty",level:3},{value:"Inherited from",id:"inherited-from-2",level:4},{value:"Source",id:"source-2",level:4},{value:"extraData",id:"extradata",level:3},{value:"Inherited from",id:"inherited-from-3",level:4},{value:"Source",id:"source-3",level:4},{value:"gasLimit",id:"gaslimit",level:3},{value:"Inherited from",id:"inherited-from-4",level:4},{value:"Source",id:"source-4",level:4},{value:"gasUsed",id:"gasused",level:3},{value:"Inherited from",id:"inherited-from-5",level:4},{value:"Source",id:"source-5",level:4},{value:"hash",id:"hash",level:3},{value:"Inherited from",id:"inherited-from-6",level:4},{value:"Source",id:"source-6",level:4},{value:"miner",id:"miner",level:3},{value:"Inherited from",id:"inherited-from-7",level:4},{value:"Source",id:"source-7",level:4},{value:"nonce",id:"nonce",level:3},{value:"Inherited from",id:"inherited-from-8",level:4},{value:"Source",id:"source-8",level:4},{value:"number",id:"number",level:3},{value:"Inherited from",id:"inherited-from-9",level:4},{value:"Source",id:"source-9",level:4},{value:"parentHash",id:"parenthash",level:3},{value:"Inherited from",id:"inherited-from-10",level:4},{value:"Source",id:"source-10",level:4},{value:"stateRoot",id:"stateroot",level:3},{value:"Source",id:"source-11",level:4},{value:"timestamp",id:"timestamp",level:3},{value:"Inherited from",id:"inherited-from-11",level:4},{value:"Source",id:"source-12",level:4},{value:"transactions",id:"transactions",level:3},{value:"Inherited from",id:"inherited-from-12",level:4},{value:"Source",id:"source-13",level:4}];function t(e){const r={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",li:"li",p:"p",strong:"strong",ul:"ul",...(0,d.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,i.jsx)(r.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,i.jsx)(r.strong,{children:"Docs"})]}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / L2Block"]}),"\n",(0,i.jsx)(r.h1,{id:"interface-l2block",children:"Interface: L2Block"}),"\n",(0,i.jsx)(r.p,{children:"JSON block representation when returned by L2Geth nodes. Just a normal block but with\nan added stateRoot field."}),"\n",(0,i.jsx)(r.h2,{id:"extends",children:"Extends"}),"\n",(0,i.jsxs)(r.ul,{children:["\n",(0,i.jsx)(r.li,{children:(0,i.jsx)(r.code,{children:"Block"})}),"\n"]}),"\n",(0,i.jsx)(r.h2,{id:"properties",children:"Properties"}),"\n",(0,i.jsx)(r.h3,{id:"_difficulty",children:"_difficulty"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"_difficulty"}),": ",(0,i.jsx)(r.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"inherited-from",children:"Inherited from"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"Block._difficulty"})}),"\n",(0,i.jsx)(r.h4,{id:"source",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:41"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"basefeepergas",children:"baseFeePerGas?"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.code,{children:"optional"})," ",(0,i.jsx)(r.strong,{children:"baseFeePerGas"}),": ",(0,i.jsx)(r.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"inherited-from-1",children:"Inherited from"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"Block.baseFeePerGas"})}),"\n",(0,i.jsx)(r.h4,{id:"source-1",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:46"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"difficulty",children:"difficulty"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"difficulty"}),": ",(0,i.jsx)(r.code,{children:"number"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"inherited-from-2",children:"Inherited from"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"Block.difficulty"})}),"\n",(0,i.jsx)(r.h4,{id:"source-2",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:40"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"extradata",children:"extraData"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"extraData"}),": ",(0,i.jsx)(r.code,{children:"string"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"inherited-from-3",children:"Inherited from"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"Block.extraData"})}),"\n",(0,i.jsx)(r.h4,{id:"source-3",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:45"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"gaslimit",children:"gasLimit"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"gasLimit"}),": ",(0,i.jsx)(r.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"inherited-from-4",children:"Inherited from"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"Block.gasLimit"})}),"\n",(0,i.jsx)(r.h4,{id:"source-4",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:42"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"gasused",children:"gasUsed"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"gasUsed"}),": ",(0,i.jsx)(r.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"inherited-from-5",children:"Inherited from"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"Block.gasUsed"})}),"\n",(0,i.jsx)(r.h4,{id:"source-5",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:43"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"hash",children:"hash"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"hash"}),": ",(0,i.jsx)(r.code,{children:"string"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"inherited-from-6",children:"Inherited from"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"Block.hash"})}),"\n",(0,i.jsx)(r.h4,{id:"source-6",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:35"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"miner",children:"miner"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"miner"}),": ",(0,i.jsx)(r.code,{children:"string"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"inherited-from-7",children:"Inherited from"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"Block.miner"})}),"\n",(0,i.jsx)(r.h4,{id:"source-7",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:44"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"nonce",children:"nonce"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"nonce"}),": ",(0,i.jsx)(r.code,{children:"string"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"inherited-from-8",children:"Inherited from"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"Block.nonce"})}),"\n",(0,i.jsx)(r.h4,{id:"source-8",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:39"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"number",children:"number"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"number"}),": ",(0,i.jsx)(r.code,{children:"number"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"inherited-from-9",children:"Inherited from"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"Block.number"})}),"\n",(0,i.jsx)(r.h4,{id:"source-9",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:37"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"parenthash",children:"parentHash"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"parentHash"}),": ",(0,i.jsx)(r.code,{children:"string"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"inherited-from-10",children:"Inherited from"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"Block.parentHash"})}),"\n",(0,i.jsx)(r.h4,{id:"source-10",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:36"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"stateroot",children:"stateRoot"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"stateRoot"}),": ",(0,i.jsx)(r.code,{children:"string"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"source-11",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"src/interfaces/l2-provider.ts:27"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"timestamp",children:"timestamp"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"timestamp"}),": ",(0,i.jsx)(r.code,{children:"number"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"inherited-from-11",children:"Inherited from"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"Block.timestamp"})}),"\n",(0,i.jsx)(r.h4,{id:"source-12",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:38"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"transactions",children:"transactions"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"transactions"}),": ",(0,i.jsx)(r.code,{children:"string"}),"[]"]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"inherited-from-12",children:"Inherited from"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"Block.transactions"})}),"\n",(0,i.jsx)(r.h4,{id:"source-13",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:49"})]})}function a(e={}){const{wrapper:r}={...(0,d.R)(),...e.components};return r?(0,i.jsx)(r,{...e,children:(0,i.jsx)(t,{...e})}):t(e)}},2333:(e,r,n)=>{n.d(r,{R:()=>l,x:()=>c});var i=n(9474);const d={},s=i.createContext(d);function l(e){const r=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function c(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:l(e.components),i.createElement(s.Provider,{value:r},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[2106],{8490:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>o,contentTitle:()=>l,default:()=>a,frontMatter:()=>s,metadata:()=>c,toc:()=>h});var i=n(6070),d=n(1582);const s={},l="Interface: L2Block",c={id:"build-on-morph/sdk/interfaces/L2Block",title:"L2Block",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/interfaces/L2Block.md",sourceDirName:"build-on-morph/sdk/interfaces",slug:"/build-on-morph/sdk/interfaces/L2Block",permalink:"/docs/build-on-morph/sdk/interfaces/L2Block",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/interfaces/L2Block.md",tags:[],version:"current",frontMatter:{}},o={},h=[{value:"Extends",id:"extends",level:2},{value:"Properties",id:"properties",level:2},{value:"_difficulty",id:"_difficulty",level:3},{value:"Inherited from",id:"inherited-from",level:4},{value:"Source",id:"source",level:4},{value:"baseFeePerGas?",id:"basefeepergas",level:3},{value:"Inherited from",id:"inherited-from-1",level:4},{value:"Source",id:"source-1",level:4},{value:"difficulty",id:"difficulty",level:3},{value:"Inherited from",id:"inherited-from-2",level:4},{value:"Source",id:"source-2",level:4},{value:"extraData",id:"extradata",level:3},{value:"Inherited from",id:"inherited-from-3",level:4},{value:"Source",id:"source-3",level:4},{value:"gasLimit",id:"gaslimit",level:3},{value:"Inherited from",id:"inherited-from-4",level:4},{value:"Source",id:"source-4",level:4},{value:"gasUsed",id:"gasused",level:3},{value:"Inherited from",id:"inherited-from-5",level:4},{value:"Source",id:"source-5",level:4},{value:"hash",id:"hash",level:3},{value:"Inherited from",id:"inherited-from-6",level:4},{value:"Source",id:"source-6",level:4},{value:"miner",id:"miner",level:3},{value:"Inherited from",id:"inherited-from-7",level:4},{value:"Source",id:"source-7",level:4},{value:"nonce",id:"nonce",level:3},{value:"Inherited from",id:"inherited-from-8",level:4},{value:"Source",id:"source-8",level:4},{value:"number",id:"number",level:3},{value:"Inherited from",id:"inherited-from-9",level:4},{value:"Source",id:"source-9",level:4},{value:"parentHash",id:"parenthash",level:3},{value:"Inherited from",id:"inherited-from-10",level:4},{value:"Source",id:"source-10",level:4},{value:"stateRoot",id:"stateroot",level:3},{value:"Source",id:"source-11",level:4},{value:"timestamp",id:"timestamp",level:3},{value:"Inherited from",id:"inherited-from-11",level:4},{value:"Source",id:"source-12",level:4},{value:"transactions",id:"transactions",level:3},{value:"Inherited from",id:"inherited-from-12",level:4},{value:"Source",id:"source-13",level:4}];function t(e){const r={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",li:"li",p:"p",strong:"strong",ul:"ul",...(0,d.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,i.jsx)(r.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,i.jsx)(r.strong,{children:"Docs"})]}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / L2Block"]}),"\n",(0,i.jsx)(r.h1,{id:"interface-l2block",children:"Interface: L2Block"}),"\n",(0,i.jsx)(r.p,{children:"JSON block representation when returned by L2Geth nodes. Just a normal block but with\nan added stateRoot field."}),"\n",(0,i.jsx)(r.h2,{id:"extends",children:"Extends"}),"\n",(0,i.jsxs)(r.ul,{children:["\n",(0,i.jsx)(r.li,{children:(0,i.jsx)(r.code,{children:"Block"})}),"\n"]}),"\n",(0,i.jsx)(r.h2,{id:"properties",children:"Properties"}),"\n",(0,i.jsx)(r.h3,{id:"_difficulty",children:"_difficulty"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"_difficulty"}),": ",(0,i.jsx)(r.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"inherited-from",children:"Inherited from"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"Block._difficulty"})}),"\n",(0,i.jsx)(r.h4,{id:"source",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:41"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"basefeepergas",children:"baseFeePerGas?"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.code,{children:"optional"})," ",(0,i.jsx)(r.strong,{children:"baseFeePerGas"}),": ",(0,i.jsx)(r.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"inherited-from-1",children:"Inherited from"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"Block.baseFeePerGas"})}),"\n",(0,i.jsx)(r.h4,{id:"source-1",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:46"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"difficulty",children:"difficulty"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"difficulty"}),": ",(0,i.jsx)(r.code,{children:"number"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"inherited-from-2",children:"Inherited from"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"Block.difficulty"})}),"\n",(0,i.jsx)(r.h4,{id:"source-2",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:40"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"extradata",children:"extraData"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"extraData"}),": ",(0,i.jsx)(r.code,{children:"string"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"inherited-from-3",children:"Inherited from"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"Block.extraData"})}),"\n",(0,i.jsx)(r.h4,{id:"source-3",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:45"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"gaslimit",children:"gasLimit"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"gasLimit"}),": ",(0,i.jsx)(r.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"inherited-from-4",children:"Inherited from"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"Block.gasLimit"})}),"\n",(0,i.jsx)(r.h4,{id:"source-4",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:42"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"gasused",children:"gasUsed"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"gasUsed"}),": ",(0,i.jsx)(r.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"inherited-from-5",children:"Inherited from"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"Block.gasUsed"})}),"\n",(0,i.jsx)(r.h4,{id:"source-5",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:43"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"hash",children:"hash"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"hash"}),": ",(0,i.jsx)(r.code,{children:"string"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"inherited-from-6",children:"Inherited from"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"Block.hash"})}),"\n",(0,i.jsx)(r.h4,{id:"source-6",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:35"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"miner",children:"miner"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"miner"}),": ",(0,i.jsx)(r.code,{children:"string"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"inherited-from-7",children:"Inherited from"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"Block.miner"})}),"\n",(0,i.jsx)(r.h4,{id:"source-7",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:44"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"nonce",children:"nonce"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"nonce"}),": ",(0,i.jsx)(r.code,{children:"string"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"inherited-from-8",children:"Inherited from"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"Block.nonce"})}),"\n",(0,i.jsx)(r.h4,{id:"source-8",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:39"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"number",children:"number"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"number"}),": ",(0,i.jsx)(r.code,{children:"number"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"inherited-from-9",children:"Inherited from"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"Block.number"})}),"\n",(0,i.jsx)(r.h4,{id:"source-9",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:37"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"parenthash",children:"parentHash"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"parentHash"}),": ",(0,i.jsx)(r.code,{children:"string"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"inherited-from-10",children:"Inherited from"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"Block.parentHash"})}),"\n",(0,i.jsx)(r.h4,{id:"source-10",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:36"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"stateroot",children:"stateRoot"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"stateRoot"}),": ",(0,i.jsx)(r.code,{children:"string"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"source-11",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"src/interfaces/l2-provider.ts:27"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"timestamp",children:"timestamp"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"timestamp"}),": ",(0,i.jsx)(r.code,{children:"number"})]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"inherited-from-11",children:"Inherited from"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"Block.timestamp"})}),"\n",(0,i.jsx)(r.h4,{id:"source-12",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:38"}),"\n",(0,i.jsx)(r.hr,{}),"\n",(0,i.jsx)(r.h3,{id:"transactions",children:"transactions"}),"\n",(0,i.jsxs)(r.blockquote,{children:["\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.strong,{children:"transactions"}),": ",(0,i.jsx)(r.code,{children:"string"}),"[]"]}),"\n"]}),"\n",(0,i.jsx)(r.h4,{id:"inherited-from-12",children:"Inherited from"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.code,{children:"Block.transactions"})}),"\n",(0,i.jsx)(r.h4,{id:"source-13",children:"Source"}),"\n",(0,i.jsx)(r.p,{children:"node_modules/@ethersproject/abstract-provider/lib/index.d.ts:49"})]})}function a(e={}){const{wrapper:r}={...(0,d.R)(),...e.components};return r?(0,i.jsx)(r,{...e,children:(0,i.jsx)(t,{...e})}):t(e)}},1582:(e,r,n)=>{n.d(r,{R:()=>l,x:()=>c});var i=n(758);const d={},s=i.createContext(d);function l(e){const r=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function c(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:l(e.components),i.createElement(s.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/9b96db99.3262745a.js b/build/assets/js/9b96db99.65caf0fb.js similarity index 87% rename from build/assets/js/9b96db99.3262745a.js rename to build/assets/js/9b96db99.65caf0fb.js index 48afbfd66..a882bf12e 100644 --- a/build/assets/js/9b96db99.3262745a.js +++ b/build/assets/js/9b96db99.65caf0fb.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[7855],{1726:(e,r,s)=>{s.r(r),s.d(r,{assets:()=>c,contentTitle:()=>d,default:()=>h,frontMatter:()=>o,metadata:()=>t,toc:()=>l});var n=s(3274),i=s(2333);const o={},d="Type alias: L1Provider<TProvider>",t={id:"build-on-morph/sdk/type-aliases/L1Provider",title:"L1Provider",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/type-aliases/L1Provider.md",sourceDirName:"build-on-morph/sdk/type-aliases",slug:"/build-on-morph/sdk/type-aliases/L1Provider",permalink:"/docs/build-on-morph/sdk/type-aliases/L1Provider",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/type-aliases/L1Provider.md",tags:[],version:"current",frontMatter:{}},c={},l=[{value:"Type declaration",id:"type-declaration",level:2},{value:"_isL1Provider",id:"_isl1provider",level:3},{value:"estimateCrossDomainMessageFee()",id:"estimatecrossdomainmessagefee",level:3},{value:"Parameters",id:"parameters",level:4},{value:"Returns",id:"returns",level:4},{value:"Type parameters",id:"type-parameters",level:2},{value:"Source",id:"source",level:2}];function a(e){const r={a:"a",blockquote:"blockquote",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",p:"p",strong:"strong",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,n.jsx)(r.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,n.jsx)(r.strong,{children:"Docs"})]}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / L1Provider"]}),"\n",(0,n.jsx)(r.h1,{id:"type-alias-l1providertprovider",children:"Type alias: L1Provider<TProvider>"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"L1Provider"}),"<",(0,n.jsx)(r.code,{children:"TProvider"}),">: ",(0,n.jsx)(r.code,{children:"TProvider"})," & ",(0,n.jsx)(r.code,{children:"object"})]}),"\n"]}),"\n",(0,n.jsx)(r.p,{children:"Represents an extended version of an normal ethers Provider that returns additional L1 info and\nhas special functions for L1-specific interactions."}),"\n",(0,n.jsx)(r.h2,{id:"type-declaration",children:"Type declaration"}),"\n",(0,n.jsx)(r.h3,{id:"_isl1provider",children:"_isL1Provider"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"_isL1Provider"}),": ",(0,n.jsx)(r.code,{children:"true"})]}),"\n"]}),"\n",(0,n.jsx)(r.p,{children:"Internal property to determine if a provider is a L1Provider\nYou are likely looking for the isL2Provider function"}),"\n",(0,n.jsx)(r.h3,{id:"estimatecrossdomainmessagefee",children:"estimateCrossDomainMessageFee()"}),"\n",(0,n.jsx)(r.p,{children:"Gets the current L1 (data) gas price."}),"\n",(0,n.jsx)(r.h4,{id:"parameters",children:"Parameters"}),"\n",(0,n.jsxs)(r.p,{children:["\u2022 ",(0,n.jsx)(r.strong,{children:"l1Provider"}),": ",(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/type-aliases/ProviderLike",children:(0,n.jsx)(r.code,{children:"ProviderLike"})})]}),"\n",(0,n.jsxs)(r.p,{children:["\u2022 ",(0,n.jsx)(r.strong,{children:"sender"}),": ",(0,n.jsx)(r.code,{children:"string"})]}),"\n",(0,n.jsxs)(r.p,{children:["\u2022 ",(0,n.jsx)(r.strong,{children:"gasLimit"}),": ",(0,n.jsx)(r.code,{children:"number"})," | ",(0,n.jsx)(r.code,{children:"bigint"})," | ",(0,n.jsx)(r.code,{children:"BigNumber"})]}),"\n",(0,n.jsx)(r.h4,{id:"returns",children:"Returns"}),"\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.code,{children:"Promise"}),"<",(0,n.jsx)(r.code,{children:"BigNumber"}),">"]}),"\n",(0,n.jsx)(r.p,{children:"Current L1 data gas price in wei."}),"\n",(0,n.jsx)(r.h2,{id:"type-parameters",children:"Type parameters"}),"\n",(0,n.jsxs)(r.p,{children:["\u2022 ",(0,n.jsx)(r.strong,{children:"TProvider"})," ",(0,n.jsx)(r.em,{children:"extends"})," ",(0,n.jsx)(r.code,{children:"Provider"})]}),"\n",(0,n.jsx)(r.h2,{id:"source",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/interfaces/l1-provider.ts:11"})]})}function h(e={}){const{wrapper:r}={...(0,i.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(a,{...e})}):a(e)}},2333:(e,r,s)=>{s.d(r,{R:()=>d,x:()=>t});var n=s(9474);const i={},o=n.createContext(i);function d(e){const r=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function t(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:d(e.components),n.createElement(o.Provider,{value:r},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[7855],{2708:(e,r,s)=>{s.r(r),s.d(r,{assets:()=>c,contentTitle:()=>d,default:()=>h,frontMatter:()=>o,metadata:()=>t,toc:()=>l});var n=s(6070),i=s(1582);const o={},d="Type alias: L1Provider<TProvider>",t={id:"build-on-morph/sdk/type-aliases/L1Provider",title:"L1Provider",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/type-aliases/L1Provider.md",sourceDirName:"build-on-morph/sdk/type-aliases",slug:"/build-on-morph/sdk/type-aliases/L1Provider",permalink:"/docs/build-on-morph/sdk/type-aliases/L1Provider",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/type-aliases/L1Provider.md",tags:[],version:"current",frontMatter:{}},c={},l=[{value:"Type declaration",id:"type-declaration",level:2},{value:"_isL1Provider",id:"_isl1provider",level:3},{value:"estimateCrossDomainMessageFee()",id:"estimatecrossdomainmessagefee",level:3},{value:"Parameters",id:"parameters",level:4},{value:"Returns",id:"returns",level:4},{value:"Type parameters",id:"type-parameters",level:2},{value:"Source",id:"source",level:2}];function a(e){const r={a:"a",blockquote:"blockquote",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",p:"p",strong:"strong",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,n.jsx)(r.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,n.jsx)(r.strong,{children:"Docs"})]}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / L1Provider"]}),"\n",(0,n.jsx)(r.h1,{id:"type-alias-l1providertprovider",children:"Type alias: L1Provider<TProvider>"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"L1Provider"}),"<",(0,n.jsx)(r.code,{children:"TProvider"}),">: ",(0,n.jsx)(r.code,{children:"TProvider"})," & ",(0,n.jsx)(r.code,{children:"object"})]}),"\n"]}),"\n",(0,n.jsx)(r.p,{children:"Represents an extended version of an normal ethers Provider that returns additional L1 info and\nhas special functions for L1-specific interactions."}),"\n",(0,n.jsx)(r.h2,{id:"type-declaration",children:"Type declaration"}),"\n",(0,n.jsx)(r.h3,{id:"_isl1provider",children:"_isL1Provider"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"_isL1Provider"}),": ",(0,n.jsx)(r.code,{children:"true"})]}),"\n"]}),"\n",(0,n.jsx)(r.p,{children:"Internal property to determine if a provider is a L1Provider\nYou are likely looking for the isL2Provider function"}),"\n",(0,n.jsx)(r.h3,{id:"estimatecrossdomainmessagefee",children:"estimateCrossDomainMessageFee()"}),"\n",(0,n.jsx)(r.p,{children:"Gets the current L1 (data) gas price."}),"\n",(0,n.jsx)(r.h4,{id:"parameters",children:"Parameters"}),"\n",(0,n.jsxs)(r.p,{children:["\u2022 ",(0,n.jsx)(r.strong,{children:"l1Provider"}),": ",(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/type-aliases/ProviderLike",children:(0,n.jsx)(r.code,{children:"ProviderLike"})})]}),"\n",(0,n.jsxs)(r.p,{children:["\u2022 ",(0,n.jsx)(r.strong,{children:"sender"}),": ",(0,n.jsx)(r.code,{children:"string"})]}),"\n",(0,n.jsxs)(r.p,{children:["\u2022 ",(0,n.jsx)(r.strong,{children:"gasLimit"}),": ",(0,n.jsx)(r.code,{children:"number"})," | ",(0,n.jsx)(r.code,{children:"bigint"})," | ",(0,n.jsx)(r.code,{children:"BigNumber"})]}),"\n",(0,n.jsx)(r.h4,{id:"returns",children:"Returns"}),"\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.code,{children:"Promise"}),"<",(0,n.jsx)(r.code,{children:"BigNumber"}),">"]}),"\n",(0,n.jsx)(r.p,{children:"Current L1 data gas price in wei."}),"\n",(0,n.jsx)(r.h2,{id:"type-parameters",children:"Type parameters"}),"\n",(0,n.jsxs)(r.p,{children:["\u2022 ",(0,n.jsx)(r.strong,{children:"TProvider"})," ",(0,n.jsx)(r.em,{children:"extends"})," ",(0,n.jsx)(r.code,{children:"Provider"})]}),"\n",(0,n.jsx)(r.h2,{id:"source",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/interfaces/l1-provider.ts:11"})]})}function h(e={}){const{wrapper:r}={...(0,i.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(a,{...e})}):a(e)}},1582:(e,r,s)=>{s.d(r,{R:()=>d,x:()=>t});var n=s(758);const i={},o=n.createContext(i);function d(e){const r=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function t(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:d(e.components),n.createElement(o.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/9d4e1be7.181c7972.js b/build/assets/js/9d4e1be7.181c7972.js deleted file mode 100644 index b4ccc8726..000000000 --- a/build/assets/js/9d4e1be7.181c7972.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[7220],{929:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>s,metadata:()=>h,toc:()=>d});var t=r(3274),o=r(2333);const s={title:"Development Setup",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},i="Start Developing on Morph",h={id:"build-on-morph/build-on-morph/development-setup",title:"Development Setup",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/build-on-morph/build-on-morph/2-development-setup.md",sourceDirName:"build-on-morph/build-on-morph",slug:"/build-on-morph/build-on-morph/development-setup",permalink:"/docs/build-on-morph/build-on-morph/development-setup",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/build-on-morph/2-development-setup.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{title:"Development Setup",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"Understand Transaction Cost on Morph",permalink:"/docs/build-on-morph/build-on-morph/understand-transaction-cost-on-morph"},next:{title:"Deploy Contracts on Morph",permalink:"/docs/build-on-morph/code-examples/deploy-contract-on-morph"}},l={},d=[{value:"Step 1: Network Configuration",id:"step-1-network-configuration",level:2},{value:"Tendermint Consensus Information",id:"tendermint-consensus-information",level:3},{value:"Step 2: Set up your developing framework",id:"step-2-set-up-your-developing-framework",level:2},{value:"Hardhat",id:"hardhat",level:3},{value:"Foundry",id:"foundry",level:3},{value:"ethers.js",id:"ethersjs",level:3},{value:"Step 1: Network Configuration",id:"step-1-network-configuration-1",level:2},{value:"Tendermint Consensus Information",id:"tendermint-consensus-information-1",level:3},{value:"Step 2: Set up your developing framework",id:"step-2-set-up-your-developing-framework-1",level:2},{value:"Hardhat",id:"hardhat-1",level:3},{value:"Foundry",id:"foundry-1",level:3},{value:"ethers.js",id:"ethersjs-1",level:3},{value:"Step 3: Acquire Ether",id:"step-3-acquire-ether",level:2}];function c(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,o.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h1,{id:"start-developing-on-morph",children:"Start Developing on Morph"}),"\n",(0,t.jsx)(n.p,{children:"Developing on Morph is as straightforward as developing on Ethereum."}),"\n",(0,t.jsx)(n.p,{children:"To deploy contracts onto a MorphL2 chain, simply set the RPC endpoint of your target MorphL2 chain and deploy using your preferred Ethereum development framework:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://hardhat.org/",children:"Hardhat"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/foundry-rs/foundry",children:"Foundry"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://eth-brownie.readthedocs.io/en/stable/",children:"Brownie"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://docs.alchemy.com/reference/alchemy-sdk-quickstart",children:"Alchemy"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://www.quicknode.com/docs/quicknode-sdk/getting-started?utm_source=morph-docs",children:"QuickNode SDK"})}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"...it all just works!"}),"\n",(0,t.jsx)(n.h1,{id:"mainnet",children:"Mainnet:"}),"\n",(0,t.jsx)(n.h2,{id:"step-1-network-configuration",children:"Step 1: Network Configuration"}),"\n",(0,t.jsx)(n.p,{children:"Before you start, ensure you are connected to the following networks:"}),"\n",(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Network Name"}),(0,t.jsx)(n.th,{children:"Morph Mainnet"}),(0,t.jsx)(n.th,{children:"Ethereum Mainnet"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"RPC URL"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.a,{href:"https://rpc-quicknode.morphl2.io",children:"https://rpc-quicknode.morphl2.io"})}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.a,{href:"https://ethereum-rpc.publicnode.com/",children:"https://ethereum-rpc.publicnode.com/"})})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Chain ID"}),(0,t.jsx)(n.td,{children:"2818"}),(0,t.jsx)(n.td,{children:"1"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Currency Symbol"}),(0,t.jsx)(n.td,{children:"ETH"}),(0,t.jsx)(n.td,{children:"ETH"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Block Explorer URL"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.a,{href:"https://explorer.morphl2.io/",children:"https://explorer.morphl2.io/"})}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.a,{href:"https://etherscan.io/",children:"https://etherscan.io/"})})]})]})]}),"\n",(0,t.jsx)(n.admonition,{title:"Websocket Connection",type:"tip",children:(0,t.jsx)(n.p,{children:"wss://rpc-quicknode.morphl2.io"})}),"\n",(0,t.jsx)(n.h3,{id:"tendermint-consensus-information",children:"Tendermint Consensus Information"}),"\n",(0,t.jsxs)(n.p,{children:["Tendermint RPC: ",(0,t.jsx)(n.a,{href:"https://rpc-consensus.morphl2.io",children:"https://rpc-consensus.morphl2.io"})]}),"\n",(0,t.jsxs)(n.p,{children:["Tendermint RPC Documentation: ",(0,t.jsx)(n.a,{href:"https://docs.tendermint.com/v0.34/rpc/#/",children:"https://docs.tendermint.com/v0.34/rpc/#/"})]}),"\n",(0,t.jsx)(n.h2,{id:"step-2-set-up-your-developing-framework",children:"Step 2: Set up your developing framework"}),"\n",(0,t.jsx)(n.h3,{id:"hardhat",children:"Hardhat"}),"\n",(0,t.jsx)(n.p,{children:"Modify your Hardhat config file hardhat.config.ts to point at the Morph public RPC."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-jsx",children:"const config: HardhatUserConfig = {\n ...\n networks: {\n morphl2: {\n url: 'https://rpc-quicknode.morphl2.io',\n accounts:\n process.env.PRIVATE_KEY !== undefined ? [process.env.PRIVATE_KEY] : [],\n gasprice = 1000000000\n },\n },\n};\n\n"})}),"\n",(0,t.jsx)(n.h3,{id:"foundry",children:"Foundry"}),"\n",(0,t.jsx)(n.p,{children:"To deploy using Morph Public RPC, run:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-jsx",children:"forge create ... --rpc-url= --legacy\n"})}),"\n",(0,t.jsx)(n.h3,{id:"ethersjs",children:"ethers.js"}),"\n",(0,t.jsx)(n.p,{children:"Setting up a Morph provider in an ethers script:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-jsx",children:"import { ethers } from 'ethers';\n\nconst provider = new ethers.providers.JsonRpcProvider(\n 'https://rpc-quicknode.morphl2.io'\n);\n"})}),"\n",(0,t.jsx)(n.h1,{id:"holesky-testnet",children:"Holesky Testnet:"}),"\n",(0,t.jsx)(n.h2,{id:"step-1-network-configuration-1",children:"Step 1: Network Configuration"}),"\n",(0,t.jsx)(n.p,{children:"Before you start, ensure you are connected to the following networks:"}),"\n",(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Network Name"}),(0,t.jsx)(n.th,{children:"Morph Holesky Testnet"}),(0,t.jsx)(n.th,{children:"Holesky Testnet"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"RPC URL"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.a,{href:"https://rpc-quicknode-holesky.morphl2.io",children:"https://rpc-quicknode-holesky.morphl2.io"})}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.a,{href:"https://ethereum-holesky-rpc.publicnode.com/",children:"https://ethereum-holesky-rpc.publicnode.com/"})})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Chain ID"}),(0,t.jsx)(n.td,{children:"2810"}),(0,t.jsx)(n.td,{children:"17000"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Currency Symbol"}),(0,t.jsx)(n.td,{children:"ETH"}),(0,t.jsx)(n.td,{children:"ETH"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Block Explorer URL"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.a,{href:"https://explorer-holesky.morphl2.io/",children:"https://explorer-holesky.morphl2.io/"})}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.a,{href:"https://holesky.etherscan.io/",children:"https://holesky.etherscan.io/"})})]})]})]}),"\n",(0,t.jsx)(n.admonition,{title:"Websocket Connection",type:"tip",children:(0,t.jsx)(n.p,{children:"wss://rpc-quicknode-holesky.morphl2.io"})}),"\n",(0,t.jsx)(n.h3,{id:"tendermint-consensus-information-1",children:"Tendermint Consensus Information"}),"\n",(0,t.jsxs)(n.p,{children:["Tendermint RPC: ",(0,t.jsx)(n.a,{href:"https://rpc-consensus-holesky.morphl2.io",children:"https://rpc-consensus-holesky.morphl2.io"})]}),"\n",(0,t.jsxs)(n.p,{children:["Tendermint RPC Documentation: ",(0,t.jsx)(n.a,{href:"https://docs.tendermint.com/v0.34/rpc/#/",children:"https://docs.tendermint.com/v0.34/rpc/#/"})]}),"\n",(0,t.jsx)(n.h2,{id:"step-2-set-up-your-developing-framework-1",children:"Step 2: Set up your developing framework"}),"\n",(0,t.jsx)(n.h3,{id:"hardhat-1",children:"Hardhat"}),"\n",(0,t.jsx)(n.p,{children:"Modify your Hardhat config file hardhat.config.ts to point at the Morph public RPC."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-jsx",children:"const config: HardhatUserConfig = {\n ...\n networks: {\n morphl2: {\n url: 'https://rpc-quicknode-holesky.morphl2.io',\n accounts:\n process.env.PRIVATE_KEY !== undefined ? [process.env.PRIVATE_KEY] : [],\n gasprice = 2000000000\n },\n },\n};\n\n"})}),"\n",(0,t.jsx)(n.h3,{id:"foundry-1",children:"Foundry"}),"\n",(0,t.jsx)(n.p,{children:"To deploy using Morph Public RPC, run:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-jsx",children:"forge create ... --rpc-url= --legacy\n"})}),"\n",(0,t.jsx)(n.h3,{id:"ethersjs-1",children:"ethers.js"}),"\n",(0,t.jsx)(n.p,{children:"Setting up a Morph provider in an ethers script:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-jsx",children:"import { ethers } from 'ethers';\n\nconst provider = new ethers.providers.JsonRpcProvider(\n 'https://rpc-quicknode-holesky.morphl2.io'\n);\n"})}),"\n",(0,t.jsx)(n.h2,{id:"step-3-acquire-ether",children:"Step 3: Acquire Ether"}),"\n",(0,t.jsxs)(n.p,{children:["To start building on Morph, you may need some testnet ETH. Use a faucet to acquire holesky Ether, then ",(0,t.jsx)(n.a,{href:"https://bridge-holesky.morphl2.io",children:"bridge"})," the test Ethereum Ether to the Morph testnet."]}),"\n",(0,t.jsx)(n.p,{children:"Each faucet has its own rules and requirements, so you may need to try a few before finding one that works for you."}),"\n",(0,t.jsx)(n.p,{children:"Holesky ETH faucet websites:"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://stakely.io/en/faucet/ethereum-holesky-testnet-eth",children:"https://stakely.io/en/faucet/ethereum-holesky-testnet-eth"})}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://faucet.quicknode.com/ethereum/holesky",children:"https://faucet.quicknode.com/ethereum/holesky"})}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://holesky-faucet.pk910.de/",children:"https://holesky-faucet.pk910.de/"})}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://cloud.google.com/application/web3/faucet/ethereum",children:"https://cloud.google.com/application/web3/faucet/ethereum"})," (needs a Google account)"]}),"\n",(0,t.jsxs)(n.p,{children:["We have our own ",(0,t.jsx)(n.a,{href:"https://morphfaucet.com/",children:"website faucet"})," that can claim ETH & USDT for you initial usage."]}),"\n",(0,t.jsxs)(n.p,{children:["Morph also offers a ",(0,t.jsx)(n.a,{href:"/docs/quick-start/faucet#morph-holesky-eth",children:"Discord faucet"})," to obtain Morph Holesky USDT & Morph Holesky ETH."]}),"\n",(0,t.jsxs)(n.p,{children:["Once you receive ETH on Holesky, you should see it in your wallet on the\xa0",(0,t.jsx)(n.em,{children:"Holesky Network"}),". It may take a few seconds for them to appear, but you can check the status by looking for a transaction to your address on a\xa0",(0,t.jsx)(n.strong,{children:(0,t.jsx)(n.a,{href:"https://holesky.etherscan.io/",children:"Holesky Block Explorer"})}),"."]})]})}function p(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},2333:(e,n,r)=>{r.d(n,{R:()=>i,x:()=>h});var t=r(9474);const o={},s=t.createContext(o);function i(e){const n=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function h(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),t.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/9d4e1be7.a9ee7661.js b/build/assets/js/9d4e1be7.a9ee7661.js new file mode 100644 index 000000000..54f4e4666 --- /dev/null +++ b/build/assets/js/9d4e1be7.a9ee7661.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[7220],{4775:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>s,metadata:()=>h,toc:()=>d});var t=n(6070),o=n(1582);const s={title:"Development Setup",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},i="Start Developing on Morph",h={id:"build-on-morph/build-on-morph/development-setup",title:"Development Setup",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/build-on-morph/build-on-morph/2-development-setup.md",sourceDirName:"build-on-morph/build-on-morph",slug:"/build-on-morph/build-on-morph/development-setup",permalink:"/docs/build-on-morph/build-on-morph/development-setup",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/build-on-morph/2-development-setup.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{title:"Development Setup",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"Morph Integration One Page",permalink:"/docs/build-on-morph/build-on-morph/integration-one-page"},next:{title:"Deploy Contracts on Morph",permalink:"/docs/build-on-morph/code-examples/deploy-contract-on-morph"}},l={},d=[{value:"Step 1: Network Configuration",id:"step-1-network-configuration",level:2},{value:"Step 2: Set up your developing framework",id:"step-2-set-up-your-developing-framework",level:2},{value:"Hardhat",id:"hardhat",level:3},{value:"Foundry",id:"foundry",level:3},{value:"ethers.js",id:"ethersjs",level:3},{value:"Step 1: Network Configuration",id:"step-1-network-configuration-1",level:2},{value:"Step 2: Set up your developing framework",id:"step-2-set-up-your-developing-framework-1",level:2},{value:"Hardhat",id:"hardhat-1",level:3},{value:"Foundry",id:"foundry-1",level:3},{value:"ethers.js",id:"ethersjs-1",level:3},{value:"Step 3: Acquire Ether",id:"step-3-acquire-ether",level:2}];function c(e){const r={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,o.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.h1,{id:"start-developing-on-morph",children:"Start Developing on Morph"}),"\n",(0,t.jsx)(r.p,{children:"Developing on Morph is as straightforward as developing on Ethereum."}),"\n",(0,t.jsx)(r.p,{children:"To deploy contracts onto a MorphL2 chain, simply set the RPC endpoint of your target MorphL2 chain and deploy using your preferred Ethereum development framework:"}),"\n",(0,t.jsxs)(r.ul,{children:["\n",(0,t.jsx)(r.li,{children:(0,t.jsx)(r.a,{href:"https://hardhat.org/",children:"Hardhat"})}),"\n",(0,t.jsx)(r.li,{children:(0,t.jsx)(r.a,{href:"https://github.com/foundry-rs/foundry",children:"Foundry"})}),"\n",(0,t.jsx)(r.li,{children:(0,t.jsx)(r.a,{href:"https://eth-brownie.readthedocs.io/en/stable/",children:"Brownie"})}),"\n",(0,t.jsx)(r.li,{children:(0,t.jsx)(r.a,{href:"https://docs.alchemy.com/reference/alchemy-sdk-quickstart",children:"Alchemy"})}),"\n",(0,t.jsx)(r.li,{children:(0,t.jsx)(r.a,{href:"https://www.quicknode.com/docs/quicknode-sdk/getting-started?utm_source=morph-docs",children:"QuickNode SDK"})}),"\n"]}),"\n",(0,t.jsx)(r.p,{children:"...it all just works!"}),"\n",(0,t.jsx)(r.h1,{id:"mainnet",children:"Mainnet:"}),"\n",(0,t.jsx)(r.h2,{id:"step-1-network-configuration",children:"Step 1: Network Configuration"}),"\n",(0,t.jsx)(r.p,{children:"Before you start, ensure you are connected to the following networks:"}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"Network Name"}),(0,t.jsx)(r.th,{children:"Morph Mainnet"}),(0,t.jsx)(r.th,{children:"Ethereum Mainnet"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"RPC URL"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.a,{href:"https://rpc-quicknode.morphl2.io",children:"https://rpc-quicknode.morphl2.io"})}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.a,{href:"https://ethereum-rpc.publicnode.com/",children:"https://ethereum-rpc.publicnode.com/"})})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Chain ID"}),(0,t.jsx)(r.td,{children:"2818"}),(0,t.jsx)(r.td,{children:"1"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Currency Symbol"}),(0,t.jsx)(r.td,{children:"ETH"}),(0,t.jsx)(r.td,{children:"ETH"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Block Explorer URL"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.a,{href:"https://explorer.morphl2.io/",children:"https://explorer.morphl2.io/"})}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.a,{href:"https://etherscan.io/",children:"https://etherscan.io/"})})]})]})]}),"\n",(0,t.jsx)(r.admonition,{title:"Websocket Connection",type:"tip",children:(0,t.jsx)(r.p,{children:"wss://rpc-quicknode.morphl2.io"})}),"\n",(0,t.jsx)(r.h2,{id:"step-2-set-up-your-developing-framework",children:"Step 2: Set up your developing framework"}),"\n",(0,t.jsx)(r.h3,{id:"hardhat",children:"Hardhat"}),"\n",(0,t.jsx)(r.p,{children:"Modify your Hardhat config file hardhat.config.ts to point at the Morph public RPC."}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-jsx",children:"const config: HardhatUserConfig = {\n ...\n networks: {\n morphl2: {\n url: 'https://rpc-quicknode.morphl2.io',\n accounts:\n process.env.PRIVATE_KEY !== undefined ? [process.env.PRIVATE_KEY] : [],\n gasprice = 1000000000\n },\n },\n};\n\n"})}),"\n",(0,t.jsx)(r.h3,{id:"foundry",children:"Foundry"}),"\n",(0,t.jsx)(r.p,{children:"To deploy using Morph Public RPC, run:"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-jsx",children:"forge create ... --rpc-url= --legacy\n"})}),"\n",(0,t.jsx)(r.h3,{id:"ethersjs",children:"ethers.js"}),"\n",(0,t.jsx)(r.p,{children:"Setting up a Morph provider in an ethers script:"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-jsx",children:"import { ethers } from 'ethers';\n\nconst provider = new ethers.providers.JsonRpcProvider(\n 'https://rpc-quicknode.morphl2.io'\n);\n"})}),"\n",(0,t.jsx)(r.h1,{id:"holesky-testnet",children:"Holesky Testnet:"}),"\n",(0,t.jsx)(r.h2,{id:"step-1-network-configuration-1",children:"Step 1: Network Configuration"}),"\n",(0,t.jsx)(r.p,{children:"Before you start, ensure you are connected to the following networks:"}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"Network Name"}),(0,t.jsx)(r.th,{children:"Morph Holesky Testnet"}),(0,t.jsx)(r.th,{children:"Holesky Testnet"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"RPC URL"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.a,{href:"https://rpc-quicknode-holesky.morphl2.io",children:"https://rpc-quicknode-holesky.morphl2.io"})}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.a,{href:"https://ethereum-holesky-rpc.publicnode.com/",children:"https://ethereum-holesky-rpc.publicnode.com/"})})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Chain ID"}),(0,t.jsx)(r.td,{children:"2810"}),(0,t.jsx)(r.td,{children:"17000"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Currency Symbol"}),(0,t.jsx)(r.td,{children:"ETH"}),(0,t.jsx)(r.td,{children:"ETH"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Block Explorer URL"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.a,{href:"https://explorer-holesky.morphl2.io/",children:"https://explorer-holesky.morphl2.io/"})}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.a,{href:"https://holesky.etherscan.io/",children:"https://holesky.etherscan.io/"})})]})]})]}),"\n",(0,t.jsx)(r.admonition,{title:"Websocket Connection",type:"tip",children:(0,t.jsx)(r.p,{children:"wss://rpc-quicknode-holesky.morphl2.io"})}),"\n",(0,t.jsx)(r.h2,{id:"step-2-set-up-your-developing-framework-1",children:"Step 2: Set up your developing framework"}),"\n",(0,t.jsx)(r.h3,{id:"hardhat-1",children:"Hardhat"}),"\n",(0,t.jsx)(r.p,{children:"Modify your Hardhat config file hardhat.config.ts to point at the Morph public RPC."}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-jsx",children:"const config: HardhatUserConfig = {\n ...\n networks: {\n morphl2: {\n url: 'https://rpc-quicknode-holesky.morphl2.io',\n accounts:\n process.env.PRIVATE_KEY !== undefined ? [process.env.PRIVATE_KEY] : [],\n gasprice = 2000000000\n },\n },\n};\n\n"})}),"\n",(0,t.jsx)(r.h3,{id:"foundry-1",children:"Foundry"}),"\n",(0,t.jsx)(r.p,{children:"To deploy using Morph Public RPC, run:"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-jsx",children:"forge create ... --rpc-url= --legacy\n"})}),"\n",(0,t.jsx)(r.h3,{id:"ethersjs-1",children:"ethers.js"}),"\n",(0,t.jsx)(r.p,{children:"Setting up a Morph provider in an ethers script:"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-jsx",children:"import { ethers } from 'ethers';\n\nconst provider = new ethers.providers.JsonRpcProvider(\n 'https://rpc-quicknode-holesky.morphl2.io'\n);\n"})}),"\n",(0,t.jsx)(r.h2,{id:"step-3-acquire-ether",children:"Step 3: Acquire Ether"}),"\n",(0,t.jsxs)(r.p,{children:["To start building on Morph, you may need some testnet ETH. Use a faucet to acquire holesky Ether, then ",(0,t.jsx)(r.a,{href:"https://bridge-holesky.morphl2.io",children:"bridge"})," the test Ethereum Ether to the Morph testnet."]}),"\n",(0,t.jsx)(r.p,{children:"Each faucet has its own rules and requirements, so you may need to try a few before finding one that works for you."}),"\n",(0,t.jsx)(r.p,{children:"Holesky ETH faucet websites:"}),"\n",(0,t.jsx)(r.p,{children:(0,t.jsx)(r.a,{href:"https://stakely.io/en/faucet/ethereum-holesky-testnet-eth",children:"https://stakely.io/en/faucet/ethereum-holesky-testnet-eth"})}),"\n",(0,t.jsx)(r.p,{children:(0,t.jsx)(r.a,{href:"https://faucet.quicknode.com/ethereum/holesky",children:"https://faucet.quicknode.com/ethereum/holesky"})}),"\n",(0,t.jsx)(r.p,{children:(0,t.jsx)(r.a,{href:"https://holesky-faucet.pk910.de/",children:"https://holesky-faucet.pk910.de/"})}),"\n",(0,t.jsxs)(r.p,{children:[(0,t.jsx)(r.a,{href:"https://cloud.google.com/application/web3/faucet/ethereum",children:"https://cloud.google.com/application/web3/faucet/ethereum"})," (needs a Google account)"]}),"\n",(0,t.jsxs)(r.p,{children:["We have our own ",(0,t.jsx)(r.a,{href:"https://morphfaucet.com/",children:"website faucet"})," that can claim ETH & USDT for you initial usage."]}),"\n",(0,t.jsxs)(r.p,{children:["Morph also offers a ",(0,t.jsx)(r.a,{href:"/docs/quick-start/faucet#morph-holesky-eth",children:"Discord faucet"})," to obtain Morph Holesky USDT & Morph Holesky ETH."]}),"\n",(0,t.jsxs)(r.p,{children:["Once you receive ETH on Holesky, you should see it in your wallet on the\xa0",(0,t.jsx)(r.em,{children:"Holesky Network"}),". It may take a few seconds for them to appear, but you can check the status by looking for a transaction to your address on a\xa0",(0,t.jsx)(r.strong,{children:(0,t.jsx)(r.a,{href:"https://holesky.etherscan.io/",children:"Holesky Block Explorer"})}),"."]})]})}function p(e={}){const{wrapper:r}={...(0,o.R)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},1582:(e,r,n)=>{n.d(r,{R:()=>i,x:()=>h});var t=n(758);const o={},s=t.createContext(o);function i(e){const r=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function h(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),t.createElement(s.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/9e1db927.f6457615.js b/build/assets/js/9e1db927.a0cdd623.js similarity index 98% rename from build/assets/js/9e1db927.f6457615.js rename to build/assets/js/9e1db927.a0cdd623.js index 925ec10dc..837a8c4c3 100644 --- a/build/assets/js/9e1db927.f6457615.js +++ b/build/assets/js/9e1db927.a0cdd623.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[2960],{6646:(e,s,r)=>{r.r(s),r.d(s,{assets:()=>l,contentTitle:()=>o,default:()=>a,frontMatter:()=>i,metadata:()=>c,toc:()=>t});var n=r(3274),d=r(2333);const i={},o="Interface: IBridgeAdapter",c={id:"build-on-morph/sdk/interfaces/IBridgeAdapter",title:"IBridgeAdapter",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/interfaces/IBridgeAdapter.md",sourceDirName:"build-on-morph/sdk/interfaces",slug:"/build-on-morph/sdk/interfaces/IBridgeAdapter",permalink:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/interfaces/IBridgeAdapter.md",tags:[],version:"current",frontMatter:{}},l={},t=[{value:"Properties",id:"properties",level:2},{value:"estimateGas",id:"estimategas",level:3},{value:"approve()",id:"approve",level:4},{value:"Parameters",id:"parameters",level:5},{value:"Returns",id:"returns",level:5},{value:"deposit()",id:"deposit",level:4},{value:"Parameters",id:"parameters-1",level:5},{value:"Returns",id:"returns-1",level:5},{value:"withdraw()",id:"withdraw",level:4},{value:"Parameters",id:"parameters-2",level:5},{value:"Returns",id:"returns-2",level:5},{value:"Source",id:"source",level:4},{value:"l1Bridge",id:"l1bridge",level:3},{value:"Source",id:"source-1",level:4},{value:"l2Bridge",id:"l2bridge",level:3},{value:"Source",id:"source-2",level:4},{value:"messenger",id:"messenger",level:3},{value:"Source",id:"source-3",level:4},{value:"populateTransaction",id:"populatetransaction",level:3},{value:"approve()",id:"approve-1",level:4},{value:"Parameters",id:"parameters-3",level:5},{value:"Returns",id:"returns-3",level:5},{value:"deposit()",id:"deposit-1",level:4},{value:"Parameters",id:"parameters-4",level:5},{value:"Returns",id:"returns-4",level:5},{value:"withdraw()",id:"withdraw-1",level:4},{value:"Parameters",id:"parameters-5",level:5},{value:"Returns",id:"returns-5",level:5},{value:"Source",id:"source-4",level:4},{value:"Methods",id:"methods",level:2},{value:"approval()",id:"approval",level:3},{value:"Parameters",id:"parameters-6",level:4},{value:"Returns",id:"returns-6",level:4},{value:"Source",id:"source-5",level:4},{value:"approve()",id:"approve-2",level:3},{value:"Parameters",id:"parameters-7",level:4},{value:"Returns",id:"returns-7",level:4},{value:"Source",id:"source-6",level:4},{value:"deposit()",id:"deposit-2",level:3},{value:"Parameters",id:"parameters-8",level:4},{value:"Returns",id:"returns-8",level:4},{value:"Source",id:"source-7",level:4},{value:"getDepositsByAddress()",id:"getdepositsbyaddress",level:3},{value:"Parameters",id:"parameters-9",level:4},{value:"Returns",id:"returns-9",level:4},{value:"Source",id:"source-8",level:4},{value:"getWithdrawalsByAddress()",id:"getwithdrawalsbyaddress",level:3},{value:"Parameters",id:"parameters-10",level:4},{value:"Returns",id:"returns-10",level:4},{value:"Source",id:"source-9",level:4},{value:"supportsTokenPair()",id:"supportstokenpair",level:3},{value:"Parameters",id:"parameters-11",level:4},{value:"Returns",id:"returns-11",level:4},{value:"Source",id:"source-10",level:4},{value:"withdraw()",id:"withdraw-2",level:3},{value:"Parameters",id:"parameters-12",level:4},{value:"Returns",id:"returns-12",level:4},{value:"Source",id:"source-11",level:4}];function h(e){const s={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",hr:"hr",p:"p",strong:"strong",...(0,d.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,n.jsx)(s.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,n.jsx)(s.strong,{children:"Docs"})]}),"\n",(0,n.jsx)(s.hr,{}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / IBridgeAdapter"]}),"\n",(0,n.jsx)(s.h1,{id:"interface-ibridgeadapter",children:"Interface: IBridgeAdapter"}),"\n",(0,n.jsx)(s.p,{children:"Represents an adapter for an L1 - L2 token bridge. Each custom bridge currently needs its own\nadapter because the bridge interface is not standardized. This may change in the future."}),"\n",(0,n.jsx)(s.h2,{id:"properties",children:"Properties"}),"\n",(0,n.jsx)(s.h3,{id:"estimategas",children:"estimateGas"}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"estimateGas"}),": ",(0,n.jsx)(s.code,{children:"object"})]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:"Object that holds the functions that estimates the gas required for a given transaction.\nFollows the pattern used by ethers.js."}),"\n",(0,n.jsx)(s.h4,{id:"approve",children:"approve()"}),"\n",(0,n.jsx)(s.p,{children:"Estimates gas required to approve some tokens to deposit into the L2 chain."}),"\n",(0,n.jsx)(s.h5,{id:"parameters",children:"Parameters"}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"l1Token"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,n.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"The L1 token address."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"l2Token"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,n.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"The L2 token address."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"amount"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,n.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"Amount of the token to approve."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"opts?"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,n.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,n.jsx)(s.p,{children:"Additional options."}),"\n",(0,n.jsx)(s.h5,{id:"returns",children:"Returns"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.code,{children:"Promise"}),"<",(0,n.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,n.jsx)(s.p,{children:"Gas estimate for the transaction."}),"\n",(0,n.jsx)(s.h4,{id:"deposit",children:"deposit()"}),"\n",(0,n.jsx)(s.p,{children:"Estimates gas required to deposit some tokens into the L2 chain."}),"\n",(0,n.jsx)(s.h5,{id:"parameters-1",children:"Parameters"}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"l1Token"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,n.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"The L1 token address."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"l2Token"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,n.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"The L2 token address."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"amount"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,n.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"Amount of the token to deposit."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"opts?"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,n.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,n.jsx)(s.p,{children:"Additional options."}),"\n",(0,n.jsx)(s.h5,{id:"returns-1",children:"Returns"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.code,{children:"Promise"}),"<",(0,n.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,n.jsx)(s.p,{children:"Gas estimate for the transaction."}),"\n",(0,n.jsx)(s.h4,{id:"withdraw",children:"withdraw()"}),"\n",(0,n.jsx)(s.p,{children:"Estimates gas required to withdraw some tokens back to the L1 chain."}),"\n",(0,n.jsx)(s.h5,{id:"parameters-2",children:"Parameters"}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"l1Token"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,n.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"The L1 token address."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"l2Token"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,n.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"The L2 token address."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"amount"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,n.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"Amount of the token to withdraw."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"opts?"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,n.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,n.jsx)(s.p,{children:"Additional options."}),"\n",(0,n.jsx)(s.h5,{id:"returns-2",children:"Returns"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.code,{children:"Promise"}),"<",(0,n.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,n.jsx)(s.p,{children:"Gas estimate for the transaction."}),"\n",(0,n.jsx)(s.h4,{id:"source",children:"Source"}),"\n",(0,n.jsx)(s.p,{children:"src/interfaces/bridge-adapter.ts:221"}),"\n",(0,n.jsx)(s.hr,{}),"\n",(0,n.jsx)(s.h3,{id:"l1bridge",children:"l1Bridge"}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"l1Bridge"}),": ",(0,n.jsx)(s.code,{children:"Contract"})]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:"L1 bridge contract."}),"\n",(0,n.jsx)(s.h4,{id:"source-1",children:"Source"}),"\n",(0,n.jsx)(s.p,{children:"src/interfaces/bridge-adapter.ts:38"}),"\n",(0,n.jsx)(s.hr,{}),"\n",(0,n.jsx)(s.h3,{id:"l2bridge",children:"l2Bridge"}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"l2Bridge"}),": ",(0,n.jsx)(s.code,{children:"Contract"})]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:"L2 bridge contract."}),"\n",(0,n.jsx)(s.h4,{id:"source-2",children:"Source"}),"\n",(0,n.jsx)(s.p,{children:"src/interfaces/bridge-adapter.ts:43"}),"\n",(0,n.jsx)(s.hr,{}),"\n",(0,n.jsx)(s.h3,{id:"messenger",children:"messenger"}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"messenger"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/CrossChainMessenger",children:(0,n.jsx)(s.code,{children:"CrossChainMessenger"})})]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:"Provider used to make queries related to cross-chain interactions."}),"\n",(0,n.jsx)(s.h4,{id:"source-3",children:"Source"}),"\n",(0,n.jsx)(s.p,{children:"src/interfaces/bridge-adapter.ts:33"}),"\n",(0,n.jsx)(s.hr,{}),"\n",(0,n.jsx)(s.h3,{id:"populatetransaction",children:"populateTransaction"}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"populateTransaction"}),": ",(0,n.jsx)(s.code,{children:"object"})]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:"Object that holds the functions that generate transactions to be signed by the user.\nFollows the pattern used by ethers.js."}),"\n",(0,n.jsx)(s.h4,{id:"approve-1",children:"approve()"}),"\n",(0,n.jsx)(s.p,{children:"Generates a transaction for approving some tokens to deposit into the L2 chain."}),"\n",(0,n.jsx)(s.h5,{id:"parameters-3",children:"Parameters"}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"l1Token"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,n.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"The L1 token address."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"l2Token"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,n.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"The L2 token address."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"amount"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,n.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"Amount of the token to approve."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"opts?"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,n.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,n.jsx)(s.p,{children:"Additional options."}),"\n",(0,n.jsx)(s.h5,{id:"returns-3",children:"Returns"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.code,{children:"Promise"}),"<",(0,n.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n",(0,n.jsx)(s.p,{children:"Transaction that can be signed and executed to deposit the tokens."}),"\n",(0,n.jsx)(s.h4,{id:"deposit-1",children:"deposit()"}),"\n",(0,n.jsx)(s.p,{children:"Generates a transaction for depositing some tokens into the L2 chain."}),"\n",(0,n.jsx)(s.h5,{id:"parameters-4",children:"Parameters"}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"l1Token"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,n.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"The L1 token address."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"l2Token"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,n.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"The L2 token address."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"amount"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,n.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"Amount of the token to deposit."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"opts?"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,n.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,n.jsx)(s.p,{children:"Additional options."}),"\n",(0,n.jsx)(s.h5,{id:"returns-4",children:"Returns"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.code,{children:"Promise"}),"<",(0,n.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n",(0,n.jsx)(s.p,{children:"Transaction that can be signed and executed to deposit the tokens."}),"\n",(0,n.jsx)(s.h4,{id:"withdraw-1",children:"withdraw()"}),"\n",(0,n.jsx)(s.p,{children:"Generates a transaction for withdrawing some tokens back to the L1 chain."}),"\n",(0,n.jsx)(s.h5,{id:"parameters-5",children:"Parameters"}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"l1Token"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,n.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"The L1 token address."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"l2Token"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,n.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"The L2 token address."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"amount"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,n.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"Amount of the token to withdraw."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"opts?"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,n.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,n.jsx)(s.p,{children:"Additional options."}),"\n",(0,n.jsx)(s.h5,{id:"returns-5",children:"Returns"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.code,{children:"Promise"}),"<",(0,n.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n",(0,n.jsx)(s.p,{children:"Transaction that can be signed and executed to withdraw the tokens."}),"\n",(0,n.jsx)(s.h4,{id:"source-4",children:"Source"}),"\n",(0,n.jsx)(s.p,{children:"src/interfaces/bridge-adapter.ts:167"}),"\n",(0,n.jsx)(s.h2,{id:"methods",children:"Methods"}),"\n",(0,n.jsx)(s.h3,{id:"approval",children:"approval()"}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"approval"}),"(",(0,n.jsx)(s.code,{children:"l1Token"}),", ",(0,n.jsx)(s.code,{children:"l2Token"}),", ",(0,n.jsx)(s.code,{children:"opts"}),"?): ",(0,n.jsx)(s.code,{children:"Promise"}),"<",(0,n.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:"Queries the account's approval amount for a given L1 token."}),"\n",(0,n.jsx)(s.h4,{id:"parameters-6",children:"Parameters"}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"l1Token"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,n.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"The L1 token address."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"l2Token"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,n.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"The L2 token address."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"opts?"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,n.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,n.jsx)(s.p,{children:"Additional options."}),"\n",(0,n.jsx)(s.h4,{id:"returns-6",children:"Returns"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.code,{children:"Promise"}),"<",(0,n.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,n.jsx)(s.p,{children:"Amount of tokens approved for deposits from the account."}),"\n",(0,n.jsx)(s.h4,{id:"source-5",children:"Source"}),"\n",(0,n.jsx)(s.p,{children:"src/interfaces/bridge-adapter.ts:103"}),"\n",(0,n.jsx)(s.hr,{}),"\n",(0,n.jsx)(s.h3,{id:"approve-2",children:"approve()"}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"approve"}),"(",(0,n.jsx)(s.code,{children:"l1Token"}),", ",(0,n.jsx)(s.code,{children:"l2Token"}),", ",(0,n.jsx)(s.code,{children:"amount"}),", ",(0,n.jsx)(s.code,{children:"signer"}),", ",(0,n.jsx)(s.code,{children:"opts"}),"?): ",(0,n.jsx)(s.code,{children:"Promise"}),"<",(0,n.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:"Approves a deposit into the L2 chain."}),"\n",(0,n.jsx)(s.h4,{id:"parameters-7",children:"Parameters"}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"l1Token"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,n.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"The L1 token address."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"l2Token"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,n.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"The L2 token address."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"amount"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,n.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"Amount of the token to approve."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"signer"}),": ",(0,n.jsx)(s.code,{children:"Signer"})]}),"\n",(0,n.jsx)(s.p,{children:"Signer used to sign and send the transaction."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"opts?"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,n.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,n.jsx)(s.p,{children:"Additional options."}),"\n",(0,n.jsx)(s.h4,{id:"returns-7",children:"Returns"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.code,{children:"Promise"}),"<",(0,n.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n",(0,n.jsx)(s.p,{children:"Transaction response for the approval transaction."}),"\n",(0,n.jsx)(s.h4,{id:"source-6",children:"Source"}),"\n",(0,n.jsx)(s.p,{children:"src/interfaces/bridge-adapter.ts:119"}),"\n",(0,n.jsx)(s.hr,{}),"\n",(0,n.jsx)(s.h3,{id:"deposit-2",children:"deposit()"}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"deposit"}),"(",(0,n.jsx)(s.code,{children:"l1Token"}),", ",(0,n.jsx)(s.code,{children:"l2Token"}),", ",(0,n.jsx)(s.code,{children:"amount"}),", ",(0,n.jsx)(s.code,{children:"signer"}),", ",(0,n.jsx)(s.code,{children:"opts"}),"?): ",(0,n.jsx)(s.code,{children:"Promise"}),"<",(0,n.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:"Deposits some tokens into the L2 chain."}),"\n",(0,n.jsx)(s.h4,{id:"parameters-8",children:"Parameters"}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"l1Token"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,n.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"The L1 token address."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"l2Token"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,n.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"The L2 token address."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"amount"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,n.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"Amount of the token to deposit."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"signer"}),": ",(0,n.jsx)(s.code,{children:"Signer"})]}),"\n",(0,n.jsx)(s.p,{children:"Signer used to sign and send the transaction."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"opts?"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,n.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,n.jsx)(s.p,{children:"Additional options."}),"\n",(0,n.jsx)(s.h4,{id:"returns-8",children:"Returns"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.code,{children:"Promise"}),"<",(0,n.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n",(0,n.jsx)(s.p,{children:"Transaction response for the deposit transaction."}),"\n",(0,n.jsx)(s.h4,{id:"source-7",children:"Source"}),"\n",(0,n.jsx)(s.p,{children:"src/interfaces/bridge-adapter.ts:137"}),"\n",(0,n.jsx)(s.hr,{}),"\n",(0,n.jsx)(s.h3,{id:"getdepositsbyaddress",children:"getDepositsByAddress()"}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"getDepositsByAddress"}),"(",(0,n.jsx)(s.code,{children:"address"}),", ",(0,n.jsx)(s.code,{children:"opts"}),"?): ",(0,n.jsx)(s.code,{children:"Promise"}),"<",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage",children:(0,n.jsx)(s.code,{children:"TokenBridgeMessage"})}),"[]>"]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:"Gets all deposits for a given address."}),"\n",(0,n.jsx)(s.h4,{id:"parameters-9",children:"Parameters"}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"address"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,n.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"Address to search for messages from."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"opts?"})]}),"\n",(0,n.jsx)(s.p,{children:"Options object."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"opts.fromBlock?"}),": ",(0,n.jsx)(s.code,{children:"BlockTag"})]}),"\n",(0,n.jsx)(s.p,{children:"Block to start searching for messages from. If not provided, will start\nfrom the first block (block #0)."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"opts.toBlock?"}),": ",(0,n.jsx)(s.code,{children:"BlockTag"})]}),"\n",(0,n.jsx)(s.p,{children:'Block to stop searching for messages at. If not provided, will stop at the\nlatest known block ("latest").'}),"\n",(0,n.jsx)(s.h4,{id:"returns-9",children:"Returns"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.code,{children:"Promise"}),"<",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage",children:(0,n.jsx)(s.code,{children:"TokenBridgeMessage"})}),"[]>"]}),"\n",(0,n.jsx)(s.p,{children:"All deposit token bridge messages sent by the given address."}),"\n",(0,n.jsx)(s.h4,{id:"source-8",children:"Source"}),"\n",(0,n.jsx)(s.p,{children:"src/interfaces/bridge-adapter.ts:56"}),"\n",(0,n.jsx)(s.hr,{}),"\n",(0,n.jsx)(s.h3,{id:"getwithdrawalsbyaddress",children:"getWithdrawalsByAddress()"}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"getWithdrawalsByAddress"}),"(",(0,n.jsx)(s.code,{children:"address"}),", ",(0,n.jsx)(s.code,{children:"opts"}),"?): ",(0,n.jsx)(s.code,{children:"Promise"}),"<",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage",children:(0,n.jsx)(s.code,{children:"TokenBridgeMessage"})}),"[]>"]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:"Gets all withdrawals for a given address."}),"\n",(0,n.jsx)(s.h4,{id:"parameters-10",children:"Parameters"}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"address"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,n.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"Address to search for messages from."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"opts?"})]}),"\n",(0,n.jsx)(s.p,{children:"Options object."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"opts.fromBlock?"}),": ",(0,n.jsx)(s.code,{children:"BlockTag"})]}),"\n",(0,n.jsx)(s.p,{children:"Block to start searching for messages from. If not provided, will start\nfrom the first block (block #0)."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"opts.toBlock?"}),": ",(0,n.jsx)(s.code,{children:"BlockTag"})]}),"\n",(0,n.jsx)(s.p,{children:'Block to stop searching for messages at. If not provided, will stop at the\nlatest known block ("latest").'}),"\n",(0,n.jsx)(s.h4,{id:"returns-10",children:"Returns"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.code,{children:"Promise"}),"<",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage",children:(0,n.jsx)(s.code,{children:"TokenBridgeMessage"})}),"[]>"]}),"\n",(0,n.jsx)(s.p,{children:"All withdrawal token bridge messages sent by the given address."}),"\n",(0,n.jsx)(s.h4,{id:"source-9",children:"Source"}),"\n",(0,n.jsx)(s.p,{children:"src/interfaces/bridge-adapter.ts:75"}),"\n",(0,n.jsx)(s.hr,{}),"\n",(0,n.jsx)(s.h3,{id:"supportstokenpair",children:"supportsTokenPair()"}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"supportsTokenPair"}),"(",(0,n.jsx)(s.code,{children:"l1Token"}),", ",(0,n.jsx)(s.code,{children:"l2Token"}),"): ",(0,n.jsx)(s.code,{children:"Promise"}),"<",(0,n.jsx)(s.code,{children:"boolean"}),">"]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:"Checks whether the given token pair is supported by the bridge."}),"\n",(0,n.jsx)(s.h4,{id:"parameters-11",children:"Parameters"}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"l1Token"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,n.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"The L1 token address."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"l2Token"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,n.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"The L2 token address."}),"\n",(0,n.jsx)(s.h4,{id:"returns-11",children:"Returns"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.code,{children:"Promise"}),"<",(0,n.jsx)(s.code,{children:"boolean"}),">"]}),"\n",(0,n.jsx)(s.p,{children:"Whether the given token pair is supported by the bridge."}),"\n",(0,n.jsx)(s.h4,{id:"source-10",children:"Source"}),"\n",(0,n.jsx)(s.p,{children:"src/interfaces/bridge-adapter.ts:90"}),"\n",(0,n.jsx)(s.hr,{}),"\n",(0,n.jsx)(s.h3,{id:"withdraw-2",children:"withdraw()"}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"withdraw"}),"(",(0,n.jsx)(s.code,{children:"l1Token"}),", ",(0,n.jsx)(s.code,{children:"l2Token"}),", ",(0,n.jsx)(s.code,{children:"amount"}),", ",(0,n.jsx)(s.code,{children:"signer"}),", ",(0,n.jsx)(s.code,{children:"opts"}),"?): ",(0,n.jsx)(s.code,{children:"Promise"}),"<",(0,n.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:"Withdraws some tokens back to the L1 chain."}),"\n",(0,n.jsx)(s.h4,{id:"parameters-12",children:"Parameters"}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"l1Token"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,n.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"The L1 token address."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"l2Token"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,n.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"The L2 token address."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"amount"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,n.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"Amount of the token to withdraw."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"signer"}),": ",(0,n.jsx)(s.code,{children:"Signer"})]}),"\n",(0,n.jsx)(s.p,{children:"Signer used to sign and send the transaction."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"opts?"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,n.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,n.jsx)(s.p,{children:"Additional options."}),"\n",(0,n.jsx)(s.h4,{id:"returns-12",children:"Returns"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.code,{children:"Promise"}),"<",(0,n.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n",(0,n.jsx)(s.p,{children:"Transaction response for the withdraw transaction."}),"\n",(0,n.jsx)(s.h4,{id:"source-11",children:"Source"}),"\n",(0,n.jsx)(s.p,{children:"src/interfaces/bridge-adapter.ts:155"})]})}function a(e={}){const{wrapper:s}={...(0,d.R)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},2333:(e,s,r)=>{r.d(s,{R:()=>o,x:()=>c});var n=r(9474);const d={},i=n.createContext(d);function o(e){const s=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:o(e.components),n.createElement(i.Provider,{value:s},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[2960],{2600:(e,s,r)=>{r.r(s),r.d(s,{assets:()=>l,contentTitle:()=>o,default:()=>a,frontMatter:()=>i,metadata:()=>c,toc:()=>t});var n=r(6070),d=r(1582);const i={},o="Interface: IBridgeAdapter",c={id:"build-on-morph/sdk/interfaces/IBridgeAdapter",title:"IBridgeAdapter",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/interfaces/IBridgeAdapter.md",sourceDirName:"build-on-morph/sdk/interfaces",slug:"/build-on-morph/sdk/interfaces/IBridgeAdapter",permalink:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/interfaces/IBridgeAdapter.md",tags:[],version:"current",frontMatter:{}},l={},t=[{value:"Properties",id:"properties",level:2},{value:"estimateGas",id:"estimategas",level:3},{value:"approve()",id:"approve",level:4},{value:"Parameters",id:"parameters",level:5},{value:"Returns",id:"returns",level:5},{value:"deposit()",id:"deposit",level:4},{value:"Parameters",id:"parameters-1",level:5},{value:"Returns",id:"returns-1",level:5},{value:"withdraw()",id:"withdraw",level:4},{value:"Parameters",id:"parameters-2",level:5},{value:"Returns",id:"returns-2",level:5},{value:"Source",id:"source",level:4},{value:"l1Bridge",id:"l1bridge",level:3},{value:"Source",id:"source-1",level:4},{value:"l2Bridge",id:"l2bridge",level:3},{value:"Source",id:"source-2",level:4},{value:"messenger",id:"messenger",level:3},{value:"Source",id:"source-3",level:4},{value:"populateTransaction",id:"populatetransaction",level:3},{value:"approve()",id:"approve-1",level:4},{value:"Parameters",id:"parameters-3",level:5},{value:"Returns",id:"returns-3",level:5},{value:"deposit()",id:"deposit-1",level:4},{value:"Parameters",id:"parameters-4",level:5},{value:"Returns",id:"returns-4",level:5},{value:"withdraw()",id:"withdraw-1",level:4},{value:"Parameters",id:"parameters-5",level:5},{value:"Returns",id:"returns-5",level:5},{value:"Source",id:"source-4",level:4},{value:"Methods",id:"methods",level:2},{value:"approval()",id:"approval",level:3},{value:"Parameters",id:"parameters-6",level:4},{value:"Returns",id:"returns-6",level:4},{value:"Source",id:"source-5",level:4},{value:"approve()",id:"approve-2",level:3},{value:"Parameters",id:"parameters-7",level:4},{value:"Returns",id:"returns-7",level:4},{value:"Source",id:"source-6",level:4},{value:"deposit()",id:"deposit-2",level:3},{value:"Parameters",id:"parameters-8",level:4},{value:"Returns",id:"returns-8",level:4},{value:"Source",id:"source-7",level:4},{value:"getDepositsByAddress()",id:"getdepositsbyaddress",level:3},{value:"Parameters",id:"parameters-9",level:4},{value:"Returns",id:"returns-9",level:4},{value:"Source",id:"source-8",level:4},{value:"getWithdrawalsByAddress()",id:"getwithdrawalsbyaddress",level:3},{value:"Parameters",id:"parameters-10",level:4},{value:"Returns",id:"returns-10",level:4},{value:"Source",id:"source-9",level:4},{value:"supportsTokenPair()",id:"supportstokenpair",level:3},{value:"Parameters",id:"parameters-11",level:4},{value:"Returns",id:"returns-11",level:4},{value:"Source",id:"source-10",level:4},{value:"withdraw()",id:"withdraw-2",level:3},{value:"Parameters",id:"parameters-12",level:4},{value:"Returns",id:"returns-12",level:4},{value:"Source",id:"source-11",level:4}];function h(e){const s={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",hr:"hr",p:"p",strong:"strong",...(0,d.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,n.jsx)(s.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,n.jsx)(s.strong,{children:"Docs"})]}),"\n",(0,n.jsx)(s.hr,{}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / IBridgeAdapter"]}),"\n",(0,n.jsx)(s.h1,{id:"interface-ibridgeadapter",children:"Interface: IBridgeAdapter"}),"\n",(0,n.jsx)(s.p,{children:"Represents an adapter for an L1 - L2 token bridge. Each custom bridge currently needs its own\nadapter because the bridge interface is not standardized. This may change in the future."}),"\n",(0,n.jsx)(s.h2,{id:"properties",children:"Properties"}),"\n",(0,n.jsx)(s.h3,{id:"estimategas",children:"estimateGas"}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"estimateGas"}),": ",(0,n.jsx)(s.code,{children:"object"})]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:"Object that holds the functions that estimates the gas required for a given transaction.\nFollows the pattern used by ethers.js."}),"\n",(0,n.jsx)(s.h4,{id:"approve",children:"approve()"}),"\n",(0,n.jsx)(s.p,{children:"Estimates gas required to approve some tokens to deposit into the L2 chain."}),"\n",(0,n.jsx)(s.h5,{id:"parameters",children:"Parameters"}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"l1Token"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,n.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"The L1 token address."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"l2Token"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,n.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"The L2 token address."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"amount"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,n.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"Amount of the token to approve."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"opts?"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,n.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,n.jsx)(s.p,{children:"Additional options."}),"\n",(0,n.jsx)(s.h5,{id:"returns",children:"Returns"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.code,{children:"Promise"}),"<",(0,n.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,n.jsx)(s.p,{children:"Gas estimate for the transaction."}),"\n",(0,n.jsx)(s.h4,{id:"deposit",children:"deposit()"}),"\n",(0,n.jsx)(s.p,{children:"Estimates gas required to deposit some tokens into the L2 chain."}),"\n",(0,n.jsx)(s.h5,{id:"parameters-1",children:"Parameters"}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"l1Token"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,n.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"The L1 token address."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"l2Token"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,n.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"The L2 token address."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"amount"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,n.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"Amount of the token to deposit."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"opts?"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,n.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,n.jsx)(s.p,{children:"Additional options."}),"\n",(0,n.jsx)(s.h5,{id:"returns-1",children:"Returns"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.code,{children:"Promise"}),"<",(0,n.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,n.jsx)(s.p,{children:"Gas estimate for the transaction."}),"\n",(0,n.jsx)(s.h4,{id:"withdraw",children:"withdraw()"}),"\n",(0,n.jsx)(s.p,{children:"Estimates gas required to withdraw some tokens back to the L1 chain."}),"\n",(0,n.jsx)(s.h5,{id:"parameters-2",children:"Parameters"}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"l1Token"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,n.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"The L1 token address."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"l2Token"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,n.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"The L2 token address."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"amount"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,n.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"Amount of the token to withdraw."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"opts?"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,n.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,n.jsx)(s.p,{children:"Additional options."}),"\n",(0,n.jsx)(s.h5,{id:"returns-2",children:"Returns"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.code,{children:"Promise"}),"<",(0,n.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,n.jsx)(s.p,{children:"Gas estimate for the transaction."}),"\n",(0,n.jsx)(s.h4,{id:"source",children:"Source"}),"\n",(0,n.jsx)(s.p,{children:"src/interfaces/bridge-adapter.ts:221"}),"\n",(0,n.jsx)(s.hr,{}),"\n",(0,n.jsx)(s.h3,{id:"l1bridge",children:"l1Bridge"}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"l1Bridge"}),": ",(0,n.jsx)(s.code,{children:"Contract"})]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:"L1 bridge contract."}),"\n",(0,n.jsx)(s.h4,{id:"source-1",children:"Source"}),"\n",(0,n.jsx)(s.p,{children:"src/interfaces/bridge-adapter.ts:38"}),"\n",(0,n.jsx)(s.hr,{}),"\n",(0,n.jsx)(s.h3,{id:"l2bridge",children:"l2Bridge"}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"l2Bridge"}),": ",(0,n.jsx)(s.code,{children:"Contract"})]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:"L2 bridge contract."}),"\n",(0,n.jsx)(s.h4,{id:"source-2",children:"Source"}),"\n",(0,n.jsx)(s.p,{children:"src/interfaces/bridge-adapter.ts:43"}),"\n",(0,n.jsx)(s.hr,{}),"\n",(0,n.jsx)(s.h3,{id:"messenger",children:"messenger"}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"messenger"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/CrossChainMessenger",children:(0,n.jsx)(s.code,{children:"CrossChainMessenger"})})]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:"Provider used to make queries related to cross-chain interactions."}),"\n",(0,n.jsx)(s.h4,{id:"source-3",children:"Source"}),"\n",(0,n.jsx)(s.p,{children:"src/interfaces/bridge-adapter.ts:33"}),"\n",(0,n.jsx)(s.hr,{}),"\n",(0,n.jsx)(s.h3,{id:"populatetransaction",children:"populateTransaction"}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"populateTransaction"}),": ",(0,n.jsx)(s.code,{children:"object"})]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:"Object that holds the functions that generate transactions to be signed by the user.\nFollows the pattern used by ethers.js."}),"\n",(0,n.jsx)(s.h4,{id:"approve-1",children:"approve()"}),"\n",(0,n.jsx)(s.p,{children:"Generates a transaction for approving some tokens to deposit into the L2 chain."}),"\n",(0,n.jsx)(s.h5,{id:"parameters-3",children:"Parameters"}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"l1Token"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,n.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"The L1 token address."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"l2Token"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,n.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"The L2 token address."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"amount"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,n.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"Amount of the token to approve."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"opts?"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,n.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,n.jsx)(s.p,{children:"Additional options."}),"\n",(0,n.jsx)(s.h5,{id:"returns-3",children:"Returns"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.code,{children:"Promise"}),"<",(0,n.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n",(0,n.jsx)(s.p,{children:"Transaction that can be signed and executed to deposit the tokens."}),"\n",(0,n.jsx)(s.h4,{id:"deposit-1",children:"deposit()"}),"\n",(0,n.jsx)(s.p,{children:"Generates a transaction for depositing some tokens into the L2 chain."}),"\n",(0,n.jsx)(s.h5,{id:"parameters-4",children:"Parameters"}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"l1Token"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,n.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"The L1 token address."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"l2Token"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,n.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"The L2 token address."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"amount"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,n.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"Amount of the token to deposit."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"opts?"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,n.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,n.jsx)(s.p,{children:"Additional options."}),"\n",(0,n.jsx)(s.h5,{id:"returns-4",children:"Returns"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.code,{children:"Promise"}),"<",(0,n.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n",(0,n.jsx)(s.p,{children:"Transaction that can be signed and executed to deposit the tokens."}),"\n",(0,n.jsx)(s.h4,{id:"withdraw-1",children:"withdraw()"}),"\n",(0,n.jsx)(s.p,{children:"Generates a transaction for withdrawing some tokens back to the L1 chain."}),"\n",(0,n.jsx)(s.h5,{id:"parameters-5",children:"Parameters"}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"l1Token"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,n.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"The L1 token address."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"l2Token"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,n.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"The L2 token address."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"amount"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,n.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"Amount of the token to withdraw."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"opts?"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,n.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,n.jsx)(s.p,{children:"Additional options."}),"\n",(0,n.jsx)(s.h5,{id:"returns-5",children:"Returns"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.code,{children:"Promise"}),"<",(0,n.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n",(0,n.jsx)(s.p,{children:"Transaction that can be signed and executed to withdraw the tokens."}),"\n",(0,n.jsx)(s.h4,{id:"source-4",children:"Source"}),"\n",(0,n.jsx)(s.p,{children:"src/interfaces/bridge-adapter.ts:167"}),"\n",(0,n.jsx)(s.h2,{id:"methods",children:"Methods"}),"\n",(0,n.jsx)(s.h3,{id:"approval",children:"approval()"}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"approval"}),"(",(0,n.jsx)(s.code,{children:"l1Token"}),", ",(0,n.jsx)(s.code,{children:"l2Token"}),", ",(0,n.jsx)(s.code,{children:"opts"}),"?): ",(0,n.jsx)(s.code,{children:"Promise"}),"<",(0,n.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:"Queries the account's approval amount for a given L1 token."}),"\n",(0,n.jsx)(s.h4,{id:"parameters-6",children:"Parameters"}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"l1Token"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,n.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"The L1 token address."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"l2Token"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,n.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"The L2 token address."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"opts?"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,n.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,n.jsx)(s.p,{children:"Additional options."}),"\n",(0,n.jsx)(s.h4,{id:"returns-6",children:"Returns"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.code,{children:"Promise"}),"<",(0,n.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,n.jsx)(s.p,{children:"Amount of tokens approved for deposits from the account."}),"\n",(0,n.jsx)(s.h4,{id:"source-5",children:"Source"}),"\n",(0,n.jsx)(s.p,{children:"src/interfaces/bridge-adapter.ts:103"}),"\n",(0,n.jsx)(s.hr,{}),"\n",(0,n.jsx)(s.h3,{id:"approve-2",children:"approve()"}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"approve"}),"(",(0,n.jsx)(s.code,{children:"l1Token"}),", ",(0,n.jsx)(s.code,{children:"l2Token"}),", ",(0,n.jsx)(s.code,{children:"amount"}),", ",(0,n.jsx)(s.code,{children:"signer"}),", ",(0,n.jsx)(s.code,{children:"opts"}),"?): ",(0,n.jsx)(s.code,{children:"Promise"}),"<",(0,n.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:"Approves a deposit into the L2 chain."}),"\n",(0,n.jsx)(s.h4,{id:"parameters-7",children:"Parameters"}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"l1Token"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,n.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"The L1 token address."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"l2Token"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,n.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"The L2 token address."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"amount"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,n.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"Amount of the token to approve."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"signer"}),": ",(0,n.jsx)(s.code,{children:"Signer"})]}),"\n",(0,n.jsx)(s.p,{children:"Signer used to sign and send the transaction."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"opts?"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,n.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,n.jsx)(s.p,{children:"Additional options."}),"\n",(0,n.jsx)(s.h4,{id:"returns-7",children:"Returns"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.code,{children:"Promise"}),"<",(0,n.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n",(0,n.jsx)(s.p,{children:"Transaction response for the approval transaction."}),"\n",(0,n.jsx)(s.h4,{id:"source-6",children:"Source"}),"\n",(0,n.jsx)(s.p,{children:"src/interfaces/bridge-adapter.ts:119"}),"\n",(0,n.jsx)(s.hr,{}),"\n",(0,n.jsx)(s.h3,{id:"deposit-2",children:"deposit()"}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"deposit"}),"(",(0,n.jsx)(s.code,{children:"l1Token"}),", ",(0,n.jsx)(s.code,{children:"l2Token"}),", ",(0,n.jsx)(s.code,{children:"amount"}),", ",(0,n.jsx)(s.code,{children:"signer"}),", ",(0,n.jsx)(s.code,{children:"opts"}),"?): ",(0,n.jsx)(s.code,{children:"Promise"}),"<",(0,n.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:"Deposits some tokens into the L2 chain."}),"\n",(0,n.jsx)(s.h4,{id:"parameters-8",children:"Parameters"}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"l1Token"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,n.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"The L1 token address."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"l2Token"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,n.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"The L2 token address."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"amount"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,n.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"Amount of the token to deposit."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"signer"}),": ",(0,n.jsx)(s.code,{children:"Signer"})]}),"\n",(0,n.jsx)(s.p,{children:"Signer used to sign and send the transaction."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"opts?"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,n.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,n.jsx)(s.p,{children:"Additional options."}),"\n",(0,n.jsx)(s.h4,{id:"returns-8",children:"Returns"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.code,{children:"Promise"}),"<",(0,n.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n",(0,n.jsx)(s.p,{children:"Transaction response for the deposit transaction."}),"\n",(0,n.jsx)(s.h4,{id:"source-7",children:"Source"}),"\n",(0,n.jsx)(s.p,{children:"src/interfaces/bridge-adapter.ts:137"}),"\n",(0,n.jsx)(s.hr,{}),"\n",(0,n.jsx)(s.h3,{id:"getdepositsbyaddress",children:"getDepositsByAddress()"}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"getDepositsByAddress"}),"(",(0,n.jsx)(s.code,{children:"address"}),", ",(0,n.jsx)(s.code,{children:"opts"}),"?): ",(0,n.jsx)(s.code,{children:"Promise"}),"<",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage",children:(0,n.jsx)(s.code,{children:"TokenBridgeMessage"})}),"[]>"]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:"Gets all deposits for a given address."}),"\n",(0,n.jsx)(s.h4,{id:"parameters-9",children:"Parameters"}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"address"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,n.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"Address to search for messages from."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"opts?"})]}),"\n",(0,n.jsx)(s.p,{children:"Options object."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"opts.fromBlock?"}),": ",(0,n.jsx)(s.code,{children:"BlockTag"})]}),"\n",(0,n.jsx)(s.p,{children:"Block to start searching for messages from. If not provided, will start\nfrom the first block (block #0)."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"opts.toBlock?"}),": ",(0,n.jsx)(s.code,{children:"BlockTag"})]}),"\n",(0,n.jsx)(s.p,{children:'Block to stop searching for messages at. If not provided, will stop at the\nlatest known block ("latest").'}),"\n",(0,n.jsx)(s.h4,{id:"returns-9",children:"Returns"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.code,{children:"Promise"}),"<",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage",children:(0,n.jsx)(s.code,{children:"TokenBridgeMessage"})}),"[]>"]}),"\n",(0,n.jsx)(s.p,{children:"All deposit token bridge messages sent by the given address."}),"\n",(0,n.jsx)(s.h4,{id:"source-8",children:"Source"}),"\n",(0,n.jsx)(s.p,{children:"src/interfaces/bridge-adapter.ts:56"}),"\n",(0,n.jsx)(s.hr,{}),"\n",(0,n.jsx)(s.h3,{id:"getwithdrawalsbyaddress",children:"getWithdrawalsByAddress()"}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"getWithdrawalsByAddress"}),"(",(0,n.jsx)(s.code,{children:"address"}),", ",(0,n.jsx)(s.code,{children:"opts"}),"?): ",(0,n.jsx)(s.code,{children:"Promise"}),"<",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage",children:(0,n.jsx)(s.code,{children:"TokenBridgeMessage"})}),"[]>"]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:"Gets all withdrawals for a given address."}),"\n",(0,n.jsx)(s.h4,{id:"parameters-10",children:"Parameters"}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"address"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,n.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"Address to search for messages from."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"opts?"})]}),"\n",(0,n.jsx)(s.p,{children:"Options object."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"opts.fromBlock?"}),": ",(0,n.jsx)(s.code,{children:"BlockTag"})]}),"\n",(0,n.jsx)(s.p,{children:"Block to start searching for messages from. If not provided, will start\nfrom the first block (block #0)."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"opts.toBlock?"}),": ",(0,n.jsx)(s.code,{children:"BlockTag"})]}),"\n",(0,n.jsx)(s.p,{children:'Block to stop searching for messages at. If not provided, will stop at the\nlatest known block ("latest").'}),"\n",(0,n.jsx)(s.h4,{id:"returns-10",children:"Returns"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.code,{children:"Promise"}),"<",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage",children:(0,n.jsx)(s.code,{children:"TokenBridgeMessage"})}),"[]>"]}),"\n",(0,n.jsx)(s.p,{children:"All withdrawal token bridge messages sent by the given address."}),"\n",(0,n.jsx)(s.h4,{id:"source-9",children:"Source"}),"\n",(0,n.jsx)(s.p,{children:"src/interfaces/bridge-adapter.ts:75"}),"\n",(0,n.jsx)(s.hr,{}),"\n",(0,n.jsx)(s.h3,{id:"supportstokenpair",children:"supportsTokenPair()"}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"supportsTokenPair"}),"(",(0,n.jsx)(s.code,{children:"l1Token"}),", ",(0,n.jsx)(s.code,{children:"l2Token"}),"): ",(0,n.jsx)(s.code,{children:"Promise"}),"<",(0,n.jsx)(s.code,{children:"boolean"}),">"]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:"Checks whether the given token pair is supported by the bridge."}),"\n",(0,n.jsx)(s.h4,{id:"parameters-11",children:"Parameters"}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"l1Token"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,n.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"The L1 token address."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"l2Token"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,n.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"The L2 token address."}),"\n",(0,n.jsx)(s.h4,{id:"returns-11",children:"Returns"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.code,{children:"Promise"}),"<",(0,n.jsx)(s.code,{children:"boolean"}),">"]}),"\n",(0,n.jsx)(s.p,{children:"Whether the given token pair is supported by the bridge."}),"\n",(0,n.jsx)(s.h4,{id:"source-10",children:"Source"}),"\n",(0,n.jsx)(s.p,{children:"src/interfaces/bridge-adapter.ts:90"}),"\n",(0,n.jsx)(s.hr,{}),"\n",(0,n.jsx)(s.h3,{id:"withdraw-2",children:"withdraw()"}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"withdraw"}),"(",(0,n.jsx)(s.code,{children:"l1Token"}),", ",(0,n.jsx)(s.code,{children:"l2Token"}),", ",(0,n.jsx)(s.code,{children:"amount"}),", ",(0,n.jsx)(s.code,{children:"signer"}),", ",(0,n.jsx)(s.code,{children:"opts"}),"?): ",(0,n.jsx)(s.code,{children:"Promise"}),"<",(0,n.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:"Withdraws some tokens back to the L1 chain."}),"\n",(0,n.jsx)(s.h4,{id:"parameters-12",children:"Parameters"}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"l1Token"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,n.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"The L1 token address."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"l2Token"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,n.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"The L2 token address."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"amount"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,n.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,n.jsx)(s.p,{children:"Amount of the token to withdraw."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"signer"}),": ",(0,n.jsx)(s.code,{children:"Signer"})]}),"\n",(0,n.jsx)(s.p,{children:"Signer used to sign and send the transaction."}),"\n",(0,n.jsxs)(s.p,{children:["\u2022 ",(0,n.jsx)(s.strong,{children:"opts?"}),": ",(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,n.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,n.jsx)(s.p,{children:"Additional options."}),"\n",(0,n.jsx)(s.h4,{id:"returns-12",children:"Returns"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.code,{children:"Promise"}),"<",(0,n.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n",(0,n.jsx)(s.p,{children:"Transaction response for the withdraw transaction."}),"\n",(0,n.jsx)(s.h4,{id:"source-11",children:"Source"}),"\n",(0,n.jsx)(s.p,{children:"src/interfaces/bridge-adapter.ts:155"})]})}function a(e={}){const{wrapper:s}={...(0,d.R)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},1582:(e,s,r)=>{r.d(s,{R:()=>o,x:()=>c});var n=r(758);const d={},i=n.createContext(d);function o(e){const s=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:o(e.components),n.createElement(i.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/9e78961b.62dbfa4b.js b/build/assets/js/9e78961b.e32bc84b.js similarity index 93% rename from build/assets/js/9e78961b.62dbfa4b.js rename to build/assets/js/9e78961b.e32bc84b.js index 703911277..8b48cd48c 100644 --- a/build/assets/js/9e78961b.62dbfa4b.js +++ b/build/assets/js/9e78961b.e32bc84b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[2428],{4485:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>i,contentTitle:()=>l,default:()=>h,frontMatter:()=>t,metadata:()=>o,toc:()=>d});var s=n(3274),c=n(2333);const t={},l="Interface: OEL1Contracts",o={id:"build-on-morph/sdk/interfaces/OEL1Contracts",title:"OEL1Contracts",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/interfaces/OEL1Contracts.md",sourceDirName:"build-on-morph/sdk/interfaces",slug:"/build-on-morph/sdk/interfaces/OEL1Contracts",permalink:"/docs/build-on-morph/sdk/interfaces/OEL1Contracts",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/interfaces/OEL1Contracts.md",tags:[],version:"current",frontMatter:{}},i={},d=[{value:"Properties",id:"properties",level:2},{value:"EnforcedTxGateway",id:"enforcedtxgateway",level:3},{value:"Source",id:"source",level:4},{value:"L1CrossDomainMessenger",id:"l1crossdomainmessenger",level:3},{value:"Source",id:"source-1",level:4},{value:"L1ERC1155Gateway",id:"l1erc1155gateway",level:3},{value:"Source",id:"source-2",level:4},{value:"L1ERC721Gateway",id:"l1erc721gateway",level:3},{value:"Source",id:"source-3",level:4},{value:"L1ETHGateway",id:"l1ethgateway",level:3},{value:"Source",id:"source-4",level:4},{value:"L1GatewayRouter",id:"l1gatewayrouter",level:3},{value:"Source",id:"source-5",level:4},{value:"L1MessageQueueWithGasPriceOracle",id:"l1messagequeuewithgaspriceoracle",level:3},{value:"Source",id:"source-6",level:4},{value:"L1StandardERC20Gateway",id:"l1standarderc20gateway",level:3},{value:"Source",id:"source-7",level:4},{value:"L1WETHGateway",id:"l1wethgateway",level:3},{value:"Source",id:"source-8",level:4},{value:"MorphToken?",id:"morphtoken",level:3},{value:"Source",id:"source-9",level:4},{value:"Rollup",id:"rollup",level:3},{value:"Source",id:"source-10",level:4},{value:"Staking",id:"staking",level:3},{value:"Source",id:"source-11",level:4},{value:"WETH",id:"weth",level:3},{value:"Source",id:"source-12",level:4}];function a(e){const r={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",p:"p",strong:"strong",...(0,c.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,s.jsx)(r.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,s.jsx)(r.strong,{children:"Docs"})]}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / OEL1Contracts"]}),"\n",(0,s.jsx)(r.h1,{id:"interface-oel1contracts",children:"Interface: OEL1Contracts"}),"\n",(0,s.jsx)(r.p,{children:"L1 contract references."}),"\n",(0,s.jsx)(r.h2,{id:"properties",children:"Properties"}),"\n",(0,s.jsx)(r.h3,{id:"enforcedtxgateway",children:"EnforcedTxGateway"}),"\n",(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"EnforcedTxGateway"}),": ",(0,s.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,s.jsx)(r.h4,{id:"source",children:"Source"}),"\n",(0,s.jsx)(r.p,{children:"src/interfaces/types.ts:64"}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsx)(r.h3,{id:"l1crossdomainmessenger",children:"L1CrossDomainMessenger"}),"\n",(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"L1CrossDomainMessenger"}),": ",(0,s.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,s.jsx)(r.h4,{id:"source-1",children:"Source"}),"\n",(0,s.jsx)(r.p,{children:"src/interfaces/types.ts:54"}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsx)(r.h3,{id:"l1erc1155gateway",children:"L1ERC1155Gateway"}),"\n",(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"L1ERC1155Gateway"}),": ",(0,s.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,s.jsx)(r.h4,{id:"source-2",children:"Source"}),"\n",(0,s.jsx)(r.p,{children:"src/interfaces/types.ts:63"}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsx)(r.h3,{id:"l1erc721gateway",children:"L1ERC721Gateway"}),"\n",(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"L1ERC721Gateway"}),": ",(0,s.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,s.jsx)(r.h4,{id:"source-3",children:"Source"}),"\n",(0,s.jsx)(r.p,{children:"src/interfaces/types.ts:62"}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsx)(r.h3,{id:"l1ethgateway",children:"L1ETHGateway"}),"\n",(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"L1ETHGateway"}),": ",(0,s.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,s.jsx)(r.h4,{id:"source-4",children:"Source"}),"\n",(0,s.jsx)(r.p,{children:"src/interfaces/types.ts:60"}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsx)(r.h3,{id:"l1gatewayrouter",children:"L1GatewayRouter"}),"\n",(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"L1GatewayRouter"}),": ",(0,s.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,s.jsx)(r.h4,{id:"source-5",children:"Source"}),"\n",(0,s.jsx)(r.p,{children:"src/interfaces/types.ts:59"}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsx)(r.h3,{id:"l1messagequeuewithgaspriceoracle",children:"L1MessageQueueWithGasPriceOracle"}),"\n",(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"L1MessageQueueWithGasPriceOracle"}),": ",(0,s.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,s.jsx)(r.h4,{id:"source-6",children:"Source"}),"\n",(0,s.jsx)(r.p,{children:"src/interfaces/types.ts:55"}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsx)(r.h3,{id:"l1standarderc20gateway",children:"L1StandardERC20Gateway"}),"\n",(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"L1StandardERC20Gateway"}),": ",(0,s.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,s.jsx)(r.h4,{id:"source-7",children:"Source"}),"\n",(0,s.jsx)(r.p,{children:"src/interfaces/types.ts:61"}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsx)(r.h3,{id:"l1wethgateway",children:"L1WETHGateway"}),"\n",(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"L1WETHGateway"}),": ",(0,s.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,s.jsx)(r.h4,{id:"source-8",children:"Source"}),"\n",(0,s.jsx)(r.p,{children:"src/interfaces/types.ts:66"}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsx)(r.h3,{id:"morphtoken",children:"MorphToken?"}),"\n",(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.code,{children:"optional"})," ",(0,s.jsx)(r.strong,{children:"MorphToken"}),": ",(0,s.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,s.jsx)(r.h4,{id:"source-9",children:"Source"}),"\n",(0,s.jsx)(r.p,{children:"src/interfaces/types.ts:68"}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsx)(r.h3,{id:"rollup",children:"Rollup"}),"\n",(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"Rollup"}),": ",(0,s.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,s.jsx)(r.h4,{id:"source-10",children:"Source"}),"\n",(0,s.jsx)(r.p,{children:"src/interfaces/types.ts:58"}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsx)(r.h3,{id:"staking",children:"Staking"}),"\n",(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"Staking"}),": ",(0,s.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,s.jsx)(r.h4,{id:"source-11",children:"Source"}),"\n",(0,s.jsx)(r.p,{children:"src/interfaces/types.ts:56"}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsx)(r.h3,{id:"weth",children:"WETH"}),"\n",(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"WETH"}),": ",(0,s.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,s.jsx)(r.h4,{id:"source-12",children:"Source"}),"\n",(0,s.jsx)(r.p,{children:"src/interfaces/types.ts:65"})]})}function h(e={}){const{wrapper:r}={...(0,c.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},2333:(e,r,n)=>{n.d(r,{R:()=>l,x:()=>o});var s=n(9474);const c={},t=s.createContext(c);function l(e){const r=s.useContext(t);return s.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function o(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(c):e.components||c:l(e.components),s.createElement(t.Provider,{value:r},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[2428],{5575:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>i,contentTitle:()=>l,default:()=>h,frontMatter:()=>t,metadata:()=>o,toc:()=>d});var s=n(6070),c=n(1582);const t={},l="Interface: OEL1Contracts",o={id:"build-on-morph/sdk/interfaces/OEL1Contracts",title:"OEL1Contracts",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/interfaces/OEL1Contracts.md",sourceDirName:"build-on-morph/sdk/interfaces",slug:"/build-on-morph/sdk/interfaces/OEL1Contracts",permalink:"/docs/build-on-morph/sdk/interfaces/OEL1Contracts",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/interfaces/OEL1Contracts.md",tags:[],version:"current",frontMatter:{}},i={},d=[{value:"Properties",id:"properties",level:2},{value:"EnforcedTxGateway",id:"enforcedtxgateway",level:3},{value:"Source",id:"source",level:4},{value:"L1CrossDomainMessenger",id:"l1crossdomainmessenger",level:3},{value:"Source",id:"source-1",level:4},{value:"L1ERC1155Gateway",id:"l1erc1155gateway",level:3},{value:"Source",id:"source-2",level:4},{value:"L1ERC721Gateway",id:"l1erc721gateway",level:3},{value:"Source",id:"source-3",level:4},{value:"L1ETHGateway",id:"l1ethgateway",level:3},{value:"Source",id:"source-4",level:4},{value:"L1GatewayRouter",id:"l1gatewayrouter",level:3},{value:"Source",id:"source-5",level:4},{value:"L1MessageQueueWithGasPriceOracle",id:"l1messagequeuewithgaspriceoracle",level:3},{value:"Source",id:"source-6",level:4},{value:"L1StandardERC20Gateway",id:"l1standarderc20gateway",level:3},{value:"Source",id:"source-7",level:4},{value:"L1WETHGateway",id:"l1wethgateway",level:3},{value:"Source",id:"source-8",level:4},{value:"MorphToken?",id:"morphtoken",level:3},{value:"Source",id:"source-9",level:4},{value:"Rollup",id:"rollup",level:3},{value:"Source",id:"source-10",level:4},{value:"Staking",id:"staking",level:3},{value:"Source",id:"source-11",level:4},{value:"WETH",id:"weth",level:3},{value:"Source",id:"source-12",level:4}];function a(e){const r={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",p:"p",strong:"strong",...(0,c.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,s.jsx)(r.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,s.jsx)(r.strong,{children:"Docs"})]}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / OEL1Contracts"]}),"\n",(0,s.jsx)(r.h1,{id:"interface-oel1contracts",children:"Interface: OEL1Contracts"}),"\n",(0,s.jsx)(r.p,{children:"L1 contract references."}),"\n",(0,s.jsx)(r.h2,{id:"properties",children:"Properties"}),"\n",(0,s.jsx)(r.h3,{id:"enforcedtxgateway",children:"EnforcedTxGateway"}),"\n",(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"EnforcedTxGateway"}),": ",(0,s.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,s.jsx)(r.h4,{id:"source",children:"Source"}),"\n",(0,s.jsx)(r.p,{children:"src/interfaces/types.ts:64"}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsx)(r.h3,{id:"l1crossdomainmessenger",children:"L1CrossDomainMessenger"}),"\n",(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"L1CrossDomainMessenger"}),": ",(0,s.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,s.jsx)(r.h4,{id:"source-1",children:"Source"}),"\n",(0,s.jsx)(r.p,{children:"src/interfaces/types.ts:54"}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsx)(r.h3,{id:"l1erc1155gateway",children:"L1ERC1155Gateway"}),"\n",(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"L1ERC1155Gateway"}),": ",(0,s.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,s.jsx)(r.h4,{id:"source-2",children:"Source"}),"\n",(0,s.jsx)(r.p,{children:"src/interfaces/types.ts:63"}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsx)(r.h3,{id:"l1erc721gateway",children:"L1ERC721Gateway"}),"\n",(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"L1ERC721Gateway"}),": ",(0,s.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,s.jsx)(r.h4,{id:"source-3",children:"Source"}),"\n",(0,s.jsx)(r.p,{children:"src/interfaces/types.ts:62"}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsx)(r.h3,{id:"l1ethgateway",children:"L1ETHGateway"}),"\n",(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"L1ETHGateway"}),": ",(0,s.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,s.jsx)(r.h4,{id:"source-4",children:"Source"}),"\n",(0,s.jsx)(r.p,{children:"src/interfaces/types.ts:60"}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsx)(r.h3,{id:"l1gatewayrouter",children:"L1GatewayRouter"}),"\n",(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"L1GatewayRouter"}),": ",(0,s.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,s.jsx)(r.h4,{id:"source-5",children:"Source"}),"\n",(0,s.jsx)(r.p,{children:"src/interfaces/types.ts:59"}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsx)(r.h3,{id:"l1messagequeuewithgaspriceoracle",children:"L1MessageQueueWithGasPriceOracle"}),"\n",(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"L1MessageQueueWithGasPriceOracle"}),": ",(0,s.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,s.jsx)(r.h4,{id:"source-6",children:"Source"}),"\n",(0,s.jsx)(r.p,{children:"src/interfaces/types.ts:55"}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsx)(r.h3,{id:"l1standarderc20gateway",children:"L1StandardERC20Gateway"}),"\n",(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"L1StandardERC20Gateway"}),": ",(0,s.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,s.jsx)(r.h4,{id:"source-7",children:"Source"}),"\n",(0,s.jsx)(r.p,{children:"src/interfaces/types.ts:61"}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsx)(r.h3,{id:"l1wethgateway",children:"L1WETHGateway"}),"\n",(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"L1WETHGateway"}),": ",(0,s.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,s.jsx)(r.h4,{id:"source-8",children:"Source"}),"\n",(0,s.jsx)(r.p,{children:"src/interfaces/types.ts:66"}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsx)(r.h3,{id:"morphtoken",children:"MorphToken?"}),"\n",(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.code,{children:"optional"})," ",(0,s.jsx)(r.strong,{children:"MorphToken"}),": ",(0,s.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,s.jsx)(r.h4,{id:"source-9",children:"Source"}),"\n",(0,s.jsx)(r.p,{children:"src/interfaces/types.ts:68"}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsx)(r.h3,{id:"rollup",children:"Rollup"}),"\n",(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"Rollup"}),": ",(0,s.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,s.jsx)(r.h4,{id:"source-10",children:"Source"}),"\n",(0,s.jsx)(r.p,{children:"src/interfaces/types.ts:58"}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsx)(r.h3,{id:"staking",children:"Staking"}),"\n",(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"Staking"}),": ",(0,s.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,s.jsx)(r.h4,{id:"source-11",children:"Source"}),"\n",(0,s.jsx)(r.p,{children:"src/interfaces/types.ts:56"}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsx)(r.h3,{id:"weth",children:"WETH"}),"\n",(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"WETH"}),": ",(0,s.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,s.jsx)(r.h4,{id:"source-12",children:"Source"}),"\n",(0,s.jsx)(r.p,{children:"src/interfaces/types.ts:65"})]})}function h(e={}){const{wrapper:r}={...(0,c.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},1582:(e,r,n)=>{n.d(r,{R:()=>l,x:()=>o});var s=n(758);const c={},t=s.createContext(c);function l(e){const r=s.useContext(t);return s.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function o(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(c):e.components||c:l(e.components),s.createElement(t.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/9fc9b620.63fe2917.js b/build/assets/js/9fc9b620.4be64ddf.js similarity index 93% rename from build/assets/js/9fc9b620.63fe2917.js rename to build/assets/js/9fc9b620.4be64ddf.js index f28e1c004..4485c9074 100644 --- a/build/assets/js/9fc9b620.63fe2917.js +++ b/build/assets/js/9fc9b620.4be64ddf.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[8656],{9824:(e,i,t)=>{t.r(i),t.d(i,{assets:()=>l,contentTitle:()=>r,default:()=>d,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var n=t(3274),a=t(2333);const o={title:"Key Concepts",lang:"en-US",keywords:["morph","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},r=void 0,s={id:"about-morph/key-concepts",title:"Key Concepts",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/about-morph/8-key-concepts.md",sourceDirName:"about-morph",slug:"/about-morph/key-concepts",permalink:"/docs/about-morph/key-concepts",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/about-morph/8-key-concepts.md",tags:[],version:"current",sidebarPosition:8,frontMatter:{title:"Key Concepts",lang:"en-US",keywords:["morph","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"Morph's Vision and Mission",permalink:"/docs/about-morph/morphs-vision-and-mission"},next:{title:"Roadmap",permalink:"/docs/about-morph/roadmap"}},l={},c=[{value:"Optimistic Rollups",id:"optimistic-rollups",level:2},{value:"ZK Rollups",id:"zk-rollups",level:2},{value:"Sequencers",id:"sequencers",level:2},{value:"Fraud Proof",id:"fraud-proof",level:2},{value:"Validity Proof",id:"validity-proof",level:2},{value:"zkEVM",id:"zkevm",level:2},{value:"BLS Signatures",id:"bls-signatures",level:2},{value:"Data availability",id:"data-availability",level:2},{value:"EIP - 4844",id:"eip---4844",level:2}];function h(e){const i={a:"a",h2:"h2",p:"p",...(0,a.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(i.h2,{id:"optimistic-rollups",children:"Optimistic Rollups"}),"\n",(0,n.jsx)(i.p,{children:"Optimistic rollups are a Layer 2 scaling solution for blockchains that enhance transaction throughput and reduce costs by assuming transactions are valid and only verifying them if a challenge is raised. This method relies on a challenge period during which validators can dispute transactions they believe to be incorrect. If no disputes are raised, the transactions are considered final. Optimistic rollups significantly improve scalability while maintaining security, making them an efficient solution for handling a higher volume of transactions on blockchain networks."}),"\n",(0,n.jsx)(i.p,{children:(0,n.jsx)(i.a,{href:"https://ethereum.org/en/developers/docs/scaling/optimistic-rollups/",children:"Learn more about Optimistic Rollups"})}),"\n",(0,n.jsx)(i.h2,{id:"zk-rollups",children:"ZK Rollups"}),"\n",(0,n.jsx)(i.p,{children:"ZK rollups, or zero-knowledge rollups, are a Layer 2 scaling solution that uses cryptographic proofs to verify the validity of transactions off-chain before bundling them and submitting a proof to the main blockchain. Each batch of transactions is accompanied by a zero-knowledge proof, which ensures that all transactions within the batch are valid without revealing the underlying data. This method provides immediate finality and high security, as the main chain only needs to verify the proof rather than each individual transaction, significantly reducing the computational load and enhancing scalability."}),"\n",(0,n.jsx)(i.p,{children:(0,n.jsx)(i.a,{href:"https://ethereum.org/en/developers/docs/scaling/zk-rollups/",children:"Learn more about ZK Rollups"})}),"\n",(0,n.jsx)(i.h2,{id:"sequencers",children:"Sequencers"}),"\n",(0,n.jsx)(i.p,{children:"Sequencers are specialized nodes responsible for ordering and bundling transactions in Layer 2 scaling solutions like rollups. They play a crucial role in determining the sequence of transactions, creating blocks, and periodically committing these blocks to the main blockchain. In decentralized systems, multiple sequencers work together to enhance security and prevent single points of failure. By ensuring transactions are processed efficiently and securely, sequencers help maintain the integrity and performance of Layer 2 networks."}),"\n",(0,n.jsx)(i.h2,{id:"fraud-proof",children:"Fraud Proof"}),"\n",(0,n.jsx)(i.p,{children:"Fraud proof is a mechanism used in blockchain scaling solutions like optimistic rollups to ensure transaction validity. When a sequencer submits a batch of transactions, they are assumed to be valid unless contested. During a designated challenge period, any validator or network participant can submit a fraud proof if they detect an incorrect transaction. This proof involves verifying the transaction data and demonstrating the error to the main blockchain. If the fraud proof is validated, the incorrect transaction is rejected, ensuring the integrity and security of the network while minimizing computational costs."}),"\n",(0,n.jsx)(i.h2,{id:"validity-proof",children:"Validity Proof"}),"\n",(0,n.jsx)(i.p,{children:"Validity proof is a cryptographic method used to ensure that transactions within a rollup are correct before they are finalized on the main blockchain. In systems like ZK rollups, each batch of transactions is accompanied by a validity proof that verifies the correctness of all transactions within the batch. This approach enhances security and efficiency by eliminating the need for individual transaction verification on the main chain, providing immediate finality and reducing computational overhead."}),"\n",(0,n.jsx)(i.h2,{id:"zkevm",children:"zkEVM"}),"\n",(0,n.jsx)(i.p,{children:"zkEVM, or Zero-Knowledge Ethereum Virtual Machine, is an advanced implementation of the Ethereum Virtual Machine that integrates zero-knowledge proofs to enhance scalability and security. By using zk proofs, zkEVM allows for the validation of transactions off-chain, ensuring that only valid state transitions are submitted to the main chain. This method provides high throughput and lower transaction costs while maintaining the security and trustlessness of Ethereum."}),"\n",(0,n.jsx)(i.h2,{id:"bls-signatures",children:"BLS Signatures"}),"\n",(0,n.jsx)(i.p,{children:"BLS (Boneh-Lynn-Shacham) signatures are a cryptographic technique used to aggregate multiple signatures into a single compact signature. This is particularly useful in blockchain networks for reducing the data size and improving the efficiency of transaction verification. BLS signatures enable multiple validators to sign a message collectively, resulting in a single signature that can be verified quickly and cost-effectively, enhancing the overall scalability of the network."}),"\n",(0,n.jsx)(i.h2,{id:"data-availability",children:"Data availability"}),"\n",(0,n.jsx)(i.p,{children:"Data availability refers to the assurance that all necessary data for verifying blockchain transactions is accessible and retrievable. In the context of rollups, ensuring data availability is crucial for maintaining the integrity and security of off-chain transactions. It guarantees that anyone can download and verify the data used in rollup proofs, preventing scenarios where transactions are finalized without the possibility of verification."}),"\n",(0,n.jsx)(i.h2,{id:"eip---4844",children:"EIP - 4844"}),"\n",(0,n.jsx)(i.p,{children:"EIP-4844, also known as Proto-Danksharding, is an Ethereum Improvement Proposal aimed at introducing a new type of transaction that reduces data costs and improves scalability. It involves adding a new transaction format that can efficiently handle large amounts of data, laying the groundwork for future sharding implementations. This proposal enhances the network's ability to manage data more effectively, contributing to overall improvements in throughput and cost-efficiency."}),"\n",(0,n.jsx)(i.p,{children:(0,n.jsx)(i.a,{href:"https://www.eip4844.com/",children:"Discover how EIP-4844 impacts Morph and other rollups."})})]})}function d(e={}){const{wrapper:i}={...(0,a.R)(),...e.components};return i?(0,n.jsx)(i,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},2333:(e,i,t)=>{t.d(i,{R:()=>r,x:()=>s});var n=t(9474);const a={},o=n.createContext(a);function r(e){const i=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function s(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),n.createElement(o.Provider,{value:i},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[8656],{1706:(e,i,t)=>{t.r(i),t.d(i,{assets:()=>l,contentTitle:()=>r,default:()=>d,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var n=t(6070),a=t(1582);const o={title:"Key Concepts",lang:"en-US",keywords:["morph","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},r=void 0,s={id:"about-morph/key-concepts",title:"Key Concepts",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/about-morph/8-key-concepts.md",sourceDirName:"about-morph",slug:"/about-morph/key-concepts",permalink:"/docs/about-morph/key-concepts",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/about-morph/8-key-concepts.md",tags:[],version:"current",sidebarPosition:8,frontMatter:{title:"Key Concepts",lang:"en-US",keywords:["morph","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"Morph's Vision and Mission",permalink:"/docs/about-morph/morphs-vision-and-mission"},next:{title:"Roadmap",permalink:"/docs/about-morph/roadmap"}},l={},c=[{value:"Optimistic Rollups",id:"optimistic-rollups",level:2},{value:"ZK Rollups",id:"zk-rollups",level:2},{value:"Sequencers",id:"sequencers",level:2},{value:"Fraud Proof",id:"fraud-proof",level:2},{value:"Validity Proof",id:"validity-proof",level:2},{value:"zkEVM",id:"zkevm",level:2},{value:"BLS Signatures",id:"bls-signatures",level:2},{value:"Data availability",id:"data-availability",level:2},{value:"EIP - 4844",id:"eip---4844",level:2}];function h(e){const i={a:"a",h2:"h2",p:"p",...(0,a.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(i.h2,{id:"optimistic-rollups",children:"Optimistic Rollups"}),"\n",(0,n.jsx)(i.p,{children:"Optimistic rollups are a Layer 2 scaling solution for blockchains that enhance transaction throughput and reduce costs by assuming transactions are valid and only verifying them if a challenge is raised. This method relies on a challenge period during which validators can dispute transactions they believe to be incorrect. If no disputes are raised, the transactions are considered final. Optimistic rollups significantly improve scalability while maintaining security, making them an efficient solution for handling a higher volume of transactions on blockchain networks."}),"\n",(0,n.jsx)(i.p,{children:(0,n.jsx)(i.a,{href:"https://ethereum.org/en/developers/docs/scaling/optimistic-rollups/",children:"Learn more about Optimistic Rollups"})}),"\n",(0,n.jsx)(i.h2,{id:"zk-rollups",children:"ZK Rollups"}),"\n",(0,n.jsx)(i.p,{children:"ZK rollups, or zero-knowledge rollups, are a Layer 2 scaling solution that uses cryptographic proofs to verify the validity of transactions off-chain before bundling them and submitting a proof to the main blockchain. Each batch of transactions is accompanied by a zero-knowledge proof, which ensures that all transactions within the batch are valid without revealing the underlying data. This method provides immediate finality and high security, as the main chain only needs to verify the proof rather than each individual transaction, significantly reducing the computational load and enhancing scalability."}),"\n",(0,n.jsx)(i.p,{children:(0,n.jsx)(i.a,{href:"https://ethereum.org/en/developers/docs/scaling/zk-rollups/",children:"Learn more about ZK Rollups"})}),"\n",(0,n.jsx)(i.h2,{id:"sequencers",children:"Sequencers"}),"\n",(0,n.jsx)(i.p,{children:"Sequencers are specialized nodes responsible for ordering and bundling transactions in Layer 2 scaling solutions like rollups. They play a crucial role in determining the sequence of transactions, creating blocks, and periodically committing these blocks to the main blockchain. In decentralized systems, multiple sequencers work together to enhance security and prevent single points of failure. By ensuring transactions are processed efficiently and securely, sequencers help maintain the integrity and performance of Layer 2 networks."}),"\n",(0,n.jsx)(i.h2,{id:"fraud-proof",children:"Fraud Proof"}),"\n",(0,n.jsx)(i.p,{children:"Fraud proof is a mechanism used in blockchain scaling solutions like optimistic rollups to ensure transaction validity. When a sequencer submits a batch of transactions, they are assumed to be valid unless contested. During a designated challenge period, any validator or network participant can submit a fraud proof if they detect an incorrect transaction. This proof involves verifying the transaction data and demonstrating the error to the main blockchain. If the fraud proof is validated, the incorrect transaction is rejected, ensuring the integrity and security of the network while minimizing computational costs."}),"\n",(0,n.jsx)(i.h2,{id:"validity-proof",children:"Validity Proof"}),"\n",(0,n.jsx)(i.p,{children:"Validity proof is a cryptographic method used to ensure that transactions within a rollup are correct before they are finalized on the main blockchain. In systems like ZK rollups, each batch of transactions is accompanied by a validity proof that verifies the correctness of all transactions within the batch. This approach enhances security and efficiency by eliminating the need for individual transaction verification on the main chain, providing immediate finality and reducing computational overhead."}),"\n",(0,n.jsx)(i.h2,{id:"zkevm",children:"zkEVM"}),"\n",(0,n.jsx)(i.p,{children:"zkEVM, or Zero-Knowledge Ethereum Virtual Machine, is an advanced implementation of the Ethereum Virtual Machine that integrates zero-knowledge proofs to enhance scalability and security. By using zk proofs, zkEVM allows for the validation of transactions off-chain, ensuring that only valid state transitions are submitted to the main chain. This method provides high throughput and lower transaction costs while maintaining the security and trustlessness of Ethereum."}),"\n",(0,n.jsx)(i.h2,{id:"bls-signatures",children:"BLS Signatures"}),"\n",(0,n.jsx)(i.p,{children:"BLS (Boneh-Lynn-Shacham) signatures are a cryptographic technique used to aggregate multiple signatures into a single compact signature. This is particularly useful in blockchain networks for reducing the data size and improving the efficiency of transaction verification. BLS signatures enable multiple validators to sign a message collectively, resulting in a single signature that can be verified quickly and cost-effectively, enhancing the overall scalability of the network."}),"\n",(0,n.jsx)(i.h2,{id:"data-availability",children:"Data availability"}),"\n",(0,n.jsx)(i.p,{children:"Data availability refers to the assurance that all necessary data for verifying blockchain transactions is accessible and retrievable. In the context of rollups, ensuring data availability is crucial for maintaining the integrity and security of off-chain transactions. It guarantees that anyone can download and verify the data used in rollup proofs, preventing scenarios where transactions are finalized without the possibility of verification."}),"\n",(0,n.jsx)(i.h2,{id:"eip---4844",children:"EIP - 4844"}),"\n",(0,n.jsx)(i.p,{children:"EIP-4844, also known as Proto-Danksharding, is an Ethereum Improvement Proposal aimed at introducing a new type of transaction that reduces data costs and improves scalability. It involves adding a new transaction format that can efficiently handle large amounts of data, laying the groundwork for future sharding implementations. This proposal enhances the network's ability to manage data more effectively, contributing to overall improvements in throughput and cost-efficiency."}),"\n",(0,n.jsx)(i.p,{children:(0,n.jsx)(i.a,{href:"https://www.eip4844.com/",children:"Discover how EIP-4844 impacts Morph and other rollups."})})]})}function d(e={}){const{wrapper:i}={...(0,a.R)(),...e.components};return i?(0,n.jsx)(i,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},1582:(e,i,t)=>{t.d(i,{R:()=>r,x:()=>s});var n=t(758);const a={},o=n.createContext(a);function r(e){const i=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function s(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),n.createElement(o.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/9ff57eaa.8741717e.js b/build/assets/js/9ff57eaa.986eb965.js similarity index 78% rename from build/assets/js/9ff57eaa.8741717e.js rename to build/assets/js/9ff57eaa.986eb965.js index 2f9e72d45..52d88a636 100644 --- a/build/assets/js/9ff57eaa.8741717e.js +++ b/build/assets/js/9ff57eaa.986eb965.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[6107],{2440:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>a,contentTitle:()=>c,default:()=>m,frontMatter:()=>t,metadata:()=>i,toc:()=>l});var o=n(3274),r=n(2333);const t={},c="Variable: l2CrossDomainMessengerName",i={id:"build-on-morph/sdk/variables/l2CrossDomainMessengerName",title:"l2CrossDomainMessengerName",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/variables/l2CrossDomainMessengerName.md",sourceDirName:"build-on-morph/sdk/variables",slug:"/build-on-morph/sdk/variables/l2CrossDomainMessengerName",permalink:"/docs/build-on-morph/sdk/variables/l2CrossDomainMessengerName",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/variables/l2CrossDomainMessengerName.md",tags:[],version:"current",frontMatter:{}},a={},l=[{value:"Source",id:"source",level:2}];function d(e){const s={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,r.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,o.jsx)(s.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,o.jsx)(s.strong,{children:"Docs"})]}),"\n",(0,o.jsx)(s.hr,{}),"\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / l2CrossDomainMessengerName"]}),"\n",(0,o.jsx)(s.h1,{id:"variable-l2crossdomainmessengername",children:"Variable: l2CrossDomainMessengerName"}),"\n",(0,o.jsxs)(s.blockquote,{children:["\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.code,{children:"const"})," ",(0,o.jsx)(s.strong,{children:"l2CrossDomainMessengerName"}),": ",(0,o.jsx)(s.code,{children:'"L2CrossDomainMessenger"'})," = ",(0,o.jsx)(s.code,{children:"'L2CrossDomainMessenger'"})]}),"\n"]}),"\n",(0,o.jsx)(s.h2,{id:"source",children:"Source"}),"\n",(0,o.jsx)(s.p,{children:"src/cross-chain-messenger.ts:68"})]})}function m(e={}){const{wrapper:s}={...(0,r.R)(),...e.components};return s?(0,o.jsx)(s,{...e,children:(0,o.jsx)(d,{...e})}):d(e)}},2333:(e,s,n)=>{n.d(s,{R:()=>c,x:()=>i});var o=n(9474);const r={},t=o.createContext(r);function c(e){const s=o.useContext(t);return o.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function i(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:c(e.components),o.createElement(t.Provider,{value:s},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[6107],{2130:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>a,contentTitle:()=>c,default:()=>m,frontMatter:()=>t,metadata:()=>i,toc:()=>l});var o=n(6070),r=n(1582);const t={},c="Variable: l2CrossDomainMessengerName",i={id:"build-on-morph/sdk/variables/l2CrossDomainMessengerName",title:"l2CrossDomainMessengerName",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/variables/l2CrossDomainMessengerName.md",sourceDirName:"build-on-morph/sdk/variables",slug:"/build-on-morph/sdk/variables/l2CrossDomainMessengerName",permalink:"/docs/build-on-morph/sdk/variables/l2CrossDomainMessengerName",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/variables/l2CrossDomainMessengerName.md",tags:[],version:"current",frontMatter:{}},a={},l=[{value:"Source",id:"source",level:2}];function d(e){const s={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,r.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,o.jsx)(s.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,o.jsx)(s.strong,{children:"Docs"})]}),"\n",(0,o.jsx)(s.hr,{}),"\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / l2CrossDomainMessengerName"]}),"\n",(0,o.jsx)(s.h1,{id:"variable-l2crossdomainmessengername",children:"Variable: l2CrossDomainMessengerName"}),"\n",(0,o.jsxs)(s.blockquote,{children:["\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.code,{children:"const"})," ",(0,o.jsx)(s.strong,{children:"l2CrossDomainMessengerName"}),": ",(0,o.jsx)(s.code,{children:'"L2CrossDomainMessenger"'})," = ",(0,o.jsx)(s.code,{children:"'L2CrossDomainMessenger'"})]}),"\n"]}),"\n",(0,o.jsx)(s.h2,{id:"source",children:"Source"}),"\n",(0,o.jsx)(s.p,{children:"src/cross-chain-messenger.ts:68"})]})}function m(e={}){const{wrapper:s}={...(0,r.R)(),...e.components};return s?(0,o.jsx)(s,{...e,children:(0,o.jsx)(d,{...e})}):d(e)}},1582:(e,s,n)=>{n.d(s,{R:()=>c,x:()=>i});var o=n(758);const r={},t=o.createContext(r);function c(e){const s=o.useContext(t);return o.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function i(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:c(e.components),o.createElement(t.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/a00dd934.37307af4.js b/build/assets/js/a00dd934.091ad5c4.js similarity index 75% rename from build/assets/js/a00dd934.37307af4.js rename to build/assets/js/a00dd934.091ad5c4.js index 05e9105f8..15c5a50e6 100644 --- a/build/assets/js/a00dd934.37307af4.js +++ b/build/assets/js/a00dd934.091ad5c4.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[5784],{4470:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>h,frontMatter:()=>t,metadata:()=>i,toc:()=>l});var r=o(3274),s=o(2333);const t={},c="Variable: CHAIN_BLOCK_TIMES",i={id:"build-on-morph/sdk/variables/CHAIN_BLOCK_TIMES",title:"CHAIN_BLOCK_TIMES",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/variables/CHAIN_BLOCK_TIMES.md",sourceDirName:"build-on-morph/sdk/variables",slug:"/build-on-morph/sdk/variables/CHAIN_BLOCK_TIMES",permalink:"/docs/build-on-morph/sdk/variables/CHAIN_BLOCK_TIMES",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/variables/CHAIN_BLOCK_TIMES.md",tags:[],version:"current",frontMatter:{}},d={},l=[{value:"Source",id:"source",level:2}];function a(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,r.jsx)(n.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,r.jsx)(n.strong,{children:"Docs"})]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / CHAIN_BLOCK_TIMES"]}),"\n",(0,r.jsx)(n.h1,{id:"variable-chain_block_times",children:"Variable: CHAIN_BLOCK_TIMES"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"const"})," ",(0,r.jsx)(n.strong,{children:"CHAIN_BLOCK_TIMES"}),": ",(0,r.jsx)(n.code,{children:"{ [ChainID in L1ChainID]: number }"})]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"source",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/utils/chain-constants.ts:22"})]})}function h(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(a,{...e})}):a(e)}},2333:(e,n,o)=>{o.d(n,{R:()=>c,x:()=>i});var r=o(9474);const s={},t=r.createContext(s);function c(e){const n=r.useContext(t);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:c(e.components),r.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[5784],{5656:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>h,frontMatter:()=>t,metadata:()=>i,toc:()=>l});var r=o(6070),s=o(1582);const t={},c="Variable: CHAIN_BLOCK_TIMES",i={id:"build-on-morph/sdk/variables/CHAIN_BLOCK_TIMES",title:"CHAIN_BLOCK_TIMES",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/variables/CHAIN_BLOCK_TIMES.md",sourceDirName:"build-on-morph/sdk/variables",slug:"/build-on-morph/sdk/variables/CHAIN_BLOCK_TIMES",permalink:"/docs/build-on-morph/sdk/variables/CHAIN_BLOCK_TIMES",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/variables/CHAIN_BLOCK_TIMES.md",tags:[],version:"current",frontMatter:{}},d={},l=[{value:"Source",id:"source",level:2}];function a(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,r.jsx)(n.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,r.jsx)(n.strong,{children:"Docs"})]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / CHAIN_BLOCK_TIMES"]}),"\n",(0,r.jsx)(n.h1,{id:"variable-chain_block_times",children:"Variable: CHAIN_BLOCK_TIMES"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"const"})," ",(0,r.jsx)(n.strong,{children:"CHAIN_BLOCK_TIMES"}),": ",(0,r.jsx)(n.code,{children:"{ [ChainID in L1ChainID]: number }"})]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"source",children:"Source"}),"\n",(0,r.jsx)(n.p,{children:"src/utils/chain-constants.ts:22"})]})}function h(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(a,{...e})}):a(e)}},1582:(e,n,o)=>{o.d(n,{R:()=>c,x:()=>i});var r=o(758);const s={},t=r.createContext(s);function c(e){const n=r.useContext(t);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:c(e.components),r.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/a04af9a2.a4172b2f.js b/build/assets/js/a04af9a2.a4172b2f.js new file mode 100644 index 000000000..0217d2734 --- /dev/null +++ b/build/assets/js/a04af9a2.a4172b2f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[819],{8179:(e,r,o)=>{o.r(r),o.d(r,{assets:()=>s,contentTitle:()=>t,default:()=>p,frontMatter:()=>h,metadata:()=>l,toc:()=>d});var i=o(6070),n=o(1582);const h={title:"\u4e2d\u6587\u5f00\u53d1\u8005\u96c6\u6210\u6587\u6863",lang:"zh-CN",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},t=void 0,l={id:"build-on-morph/build-on-morph/integration-one-page-cn",title:"\u4e2d\u6587\u5f00\u53d1\u8005\u96c6\u6210\u6587\u6863",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/build-on-morph/build-on-morph/6-integration-one-page-cn.md",sourceDirName:"build-on-morph/build-on-morph",slug:"/build-on-morph/build-on-morph/integration-one-page-cn",permalink:"/docs/build-on-morph/build-on-morph/integration-one-page-cn",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/build-on-morph/6-integration-one-page-cn.md",tags:[],version:"current",sidebarPosition:6,frontMatter:{title:"\u4e2d\u6587\u5f00\u53d1\u8005\u96c6\u6210\u6587\u6863",lang:"zh-CN",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"}},s={},d=[{value:"\u7f51\u7edc\u53c2\u6570",id:"\u7f51\u7edc\u53c2\u6570",level:3},{value:"\u6d4f\u89c8\u5668\u4fe1\u606f",id:"\u6d4f\u89c8\u5668\u4fe1\u606f",level:3},{value:"\u6865\u4fe1\u606f",id:"\u6865\u4fe1\u606f",level:3},{value:"\u65b0\u6865\u63a5\u8d44\u4ea7\u652f\u6301\uff1a",id:"\u65b0\u6865\u63a5\u8d44\u4ea7\u652f\u6301",level:4},{value:"\u4ea4\u6613\u8d39\u7528\u4e0e\u533a\u5757",id:"\u4ea4\u6613\u8d39\u7528\u4e0e\u533a\u5757",level:3},{value:"\u91cd\u8981\u5408\u7ea6",id:"\u91cd\u8981\u5408\u7ea6",level:3},{value:"\u8282\u70b9\u90e8\u7f72",id:"\u8282\u70b9\u90e8\u7f72",level:3}];function c(e){const r={a:"a",admonition:"admonition",h3:"h3",h4:"h4",p:"p",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,n.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(r.h3,{id:"\u7f51\u7edc\u53c2\u6570",children:"\u7f51\u7edc\u53c2\u6570"}),"\n",(0,i.jsxs)(r.table,{children:[(0,i.jsx)(r.thead,{children:(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.th,{children:"\u7f51\u7edc"}),(0,i.jsx)(r.th,{children:"\u94fe ID"}),(0,i.jsx)(r.th,{children:"RPC URL"}),(0,i.jsx)(r.th,{children:"\u533a\u5757\u6d4f\u89c8\u5668"})]})}),(0,i.jsxs)(r.tbody,{children:[(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"Morph \u4e3b\u7f51"}),(0,i.jsx)(r.td,{children:"2818"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://rpc-quicknode.morphl2.io",children:"https://rpc-quicknode.morphl2.io"})}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://explorer.morphl2.io/",children:"https://explorer.morphl2.io/"})})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"Ethereum \u4e3b\u7f51"}),(0,i.jsx)(r.td,{children:"1"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://ethereum-rpc.publicnode.com/",children:"https://ethereum-rpc.publicnode.com/"})}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://etherscan.io/",children:"https://etherscan.io/"})})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"Morph Holesky \u6d4b\u8bd5\u7f51"}),(0,i.jsx)(r.td,{children:"2810"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://rpc-quicknode-holesky.morphl2.io",children:"https://rpc-quicknode-holesky.morphl2.io"})}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://explorer-holesky.morphl2.io/",children:"https://explorer-holesky.morphl2.io/"})})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"Holesky \u6d4b\u8bd5\u7f51"}),(0,i.jsx)(r.td,{children:"17000"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://ethereum-holesky-rpc.publicnode.com/",children:"https://ethereum-holesky-rpc.publicnode.com/"})}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://holesky.etherscan.io/",children:"https://holesky.etherscan.io/"})})]})]})]}),"\n",(0,i.jsx)(r.p,{children:"\u8bf7\u6ce8\u610f\uff0c\u6211\u4eec\u5df2\u4e3a\u516c\u5171 RPC \u8bbf\u95ee\u8bbe\u7f6e\u4e86\u901f\u7387\u9650\u5236\uff0c\u76ee\u524d\u4e3a\u6bcf\u4e2a IP \u6bcf\u5206\u949f 600 \u6b21\u8bf7\u6c42\u3002"}),"\n",(0,i.jsxs)(r.p,{children:["\u5982\u679c\u60a8\u9700\u8981\u66f4\u9ad8\u7684\u989d\u5ea6\uff0c\u8bf7\u8054\u7cfbMorph\u56e2\u961f\u4e3a\u60a8\u5f00\u653e\u66f4\u9ad8\u9650\u989d\u3002\u60a8\u8fd8\u53ef\u4ee5\u4f7f\u7528\u6211\u4eec\u7684\u5408\u4f5c\u4f19\u4f34\u4ea7\u54c1 ",(0,i.jsx)(r.a,{href:"https://www.quicknode.com/",children:"quicknode"})," \u6216 ",(0,i.jsx)(r.a,{href:"https://tenderly.co/",children:"tenderly"})," \u521b\u5efa\u81ea\u5df1\u7684\u79c1\u4eba RPC\u3002"]}),"\n",(0,i.jsx)(r.admonition,{title:"Websocket \u8fde\u63a5",type:"tip",children:(0,i.jsx)(r.p,{children:"wss://rpc-quicknode.morphl2.io"})}),"\n",(0,i.jsx)(r.h3,{id:"\u6d4f\u89c8\u5668\u4fe1\u606f",children:"\u6d4f\u89c8\u5668\u4fe1\u606f"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.a,{href:"https://explorer.morphl2.io",children:"\u5b98\u65b9\u4e3b\u7f51\u6d4f\u89c8\u5668"})}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.a,{href:"https://explorer-holesky.morphl2.io",children:"\u5b98\u65b9\u6d4b\u8bd5\u7f51\u6d4f\u89c8\u5668"})}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.a,{href:"https://explorer.morphl2.io/api-docs",children:"\u6d4f\u89c8\u5668 API \u6587\u6863"})}),"\n",(0,i.jsxs)(r.p,{children:["\u6d4f\u89c8\u5668 API: ",(0,i.jsx)(r.a,{href:"https://explorer-api.morphl2.io/api",children:"https://explorer-api.morphl2.io/api"})]}),"\n",(0,i.jsxs)(r.p,{children:["\u6d4b\u8bd5\u7f51\u6d4f\u89c8\u5668 API: ",(0,i.jsx)(r.a,{href:"https://explorer-holesky-api.morphl2.io/api",children:"https://explorer-holesky-api.morphl2.io/api"})]}),"\n",(0,i.jsxs)(r.p,{children:["\u6709\u5173\u5982\u4f55\u5728 Morph \u6d4f\u89c8\u5668\u4e0a\u9a8c\u8bc1\u60a8\u7684\u5408\u7ea6\u7684\u8be6\u7ec6\u6307\u5357\uff0c",(0,i.jsx)(r.a,{href:"/docs/build-on-morph/build-on-morph/verify-your-smart-contracts",children:"\u70b9\u51fb\u8fd9\u91cc"})]}),"\n",(0,i.jsx)(r.h3,{id:"\u6865\u4fe1\u606f",children:"\u6865\u4fe1\u606f"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.a,{href:"https://bridge.morphl2.io",children:"\u5b98\u65b9\u6865"})}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.a,{href:"https://bridge-holesky.morphl2.io",children:"\u5b98\u65b9\u6d4b\u8bd5\u7f51\u6865"})}),"\n",(0,i.jsxs)(r.admonition,{title:"\u63d0\u73b0\u548c\u5b58\u6b3e\u65f6\u95f4",type:"tip",children:[(0,i.jsx)(r.p,{children:"\u7531\u4e8e Morph opzkEVM \u8bbe\u8ba1\uff0c\u6bcf\u4e2a\u63d0\u73b0\u8bf7\u6c42\u9700\u8981\u7ecf\u8fc7 48 \u5c0f\u65f6\u7684\u63d0\u73b0\u671f\uff08\u6311\u6218\u7a97\u53e3\uff09\u624d\u80fd\u5b8c\u6210\u3002"}),(0,i.jsx)(r.p,{children:"\u5b58\u6b3e\u9700\u8981\u7b49\u5f85 2 \u4e2a\u4ee5\u592a\u574aEpoch\uff08\u5927\u7ea6 13~20 \u5206\u949f\uff09\u3002"})]}),"\n",(0,i.jsx)(r.h4,{id:"\u65b0\u6865\u63a5\u8d44\u4ea7\u652f\u6301",children:"\u65b0\u6865\u63a5\u8d44\u4ea7\u652f\u6301\uff1a"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.a,{href:"https://docs.morphl2.io/docs/build-on-morph/build-on-morph/bridge-between-morph-and-ethereum#add-your-token-to-the-official-bridge",children:"\u5c06\u60a8\u7684\u4ee3\u5e01\u6dfb\u52a0\u5230\u5b98\u65b9\u6865"})}),"\n",(0,i.jsx)(r.p,{children:"\u60a8\u8fd8\u53ef\u4ee5\u4f7f\u7528 LayerZero \u6765\u5305\u88c5\u60a8\u7684\u4ee3\u5e01\uff1a"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.a,{href:"https://docs.layerzero.network/v2/developers/evm/technical-reference/deployed-contracts#morph",children:"LayerZero \u5728 Morph \u4e0a"})}),"\n",(0,i.jsx)(r.h3,{id:"\u4ea4\u6613\u8d39\u7528\u4e0e\u533a\u5757",children:"\u4ea4\u6613\u8d39\u7528\u4e0e\u533a\u5757"}),"\n",(0,i.jsx)(r.p,{children:"\u5bf9\u4e8e\u4ee5\u592a\u574a Layer2\uff0c\u8d39\u7528\u5206\u4e3a\u4e24\u90e8\u5206\uff1aL1 \u8d39\u7528\u548c L2 \u8d39\u7528\u3002"}),"\n",(0,i.jsxs)(r.p,{children:["\u5bf9\u4e8e L2 \u8d39\u7528\uff0cMorph \u76ee\u524d\u4f7f\u7528\u4e0e\u4ee5\u592a\u574a\u4e3b\u7f51\u76f8\u540c\u7684 ",(0,i.jsx)(r.a,{href:"https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1559.md",children:"EIP-1559"})," \u673a\u5236\u6765\u8ba1\u7b97\u4ea4\u6613\u8d39\u7528\u3002\u6bcf\u7b14\u4ea4\u6613\u5c06\u6709\u4e00\u4e2a\u57fa\u7840\u8d39\u7528\u548c\u4e00\u4e2a\u4f18\u5148\u8d39\u7528\u3002\u57fa\u7840\u8d39\u7528\u8bbe\u5b9a\u4e3a 0.001 Gwei\u3002\u5982\u679c\u533a\u5757\u4ea4\u6613\u9650\u5236\uff08\u6bcf\u4e2a\u533a\u5757 100 \u7b14\uff09\u672a\u8fbe\u5230\uff0c\u7528\u6237\u53ea\u9700\u8981\u4ec5\u652f\u4ed8\u57fa\u7840\u8d39\u5373\u53ef\u3002"]}),"\n",(0,i.jsx)(r.admonition,{type:"tip",children:(0,i.jsx)(r.p,{children:"\u8bf7\u6ce8\u610f,\u6211\u4eec\u5728\u6d4b\u8bd5\u7f51\u4e0a\u8bbe\u7f6e\u4e86\u6700\u4f4e\u7684 L2 \u4f18\u5148\u8d39(0.01 gwei),\u8fd9\u662f\u4e3a\u4e86\u9632\u6b62\u5783\u573e\u4ea4\u6613\u5f71\u54cd\u5176\u4ed6\u6b63\u5e38\u4ea4\u6613\u3002\u5bf9\u4e8e\u4e3b\u7f51,\u6211\u4eec\u53ef\u4ee5\u5728\u4e0d\u6536\u53d6\u4f18\u5148\u7ea7\u8d39\u7528\u7684\u60c5\u51b5\u4e0b\u5904\u7406\u4ea4\u6613\u3002"})}),"\n",(0,i.jsx)(r.p,{children:"Morph \u76ee\u524d\u6bcf\u79d2\u751f\u6210 1 \u4e2a\u975e\u7a7a\u533a\u5757\uff0c\u5982\u679c\u6ca1\u6709\u65b0\u4ea4\u6613\uff0c\u6211\u4eec\u5c06\u6bcf 5 \u79d2\u751f\u6210 1 \u4e2a\u7a7a\u533a\u5757\u3002"}),"\n",(0,i.jsx)(r.p,{children:"\u6bcf\u4e2a\u533a\u5757\u6700\u591a\u53ef\u4ee5\u5bb9\u7eb3 100 \u7b14\u4ea4\u6613\uff0c\u6211\u4eec\u5c06\u7ee7\u7eed\u63d0\u9ad8\u9650\u5236\u6765\u8fbe\u6210\u66f4\u9ad8\u7684TPS\u3002"}),"\n",(0,i.jsx)(r.h3,{id:"\u91cd\u8981\u5408\u7ea6",children:"\u91cd\u8981\u5408\u7ea6"}),"\n",(0,i.jsxs)(r.p,{children:["\u6211\u4eec\u5df2\u8bb0\u5f55\u6240\u6709\u91cd\u8981\u7684 Morph \u5408\u7ea6\uff0c\u60a8\u53ef\u4ee5\u5728 ",(0,i.jsx)(r.a,{href:"/docs/build-on-morph/developer-resources/contracts",children:"\u8fd9\u91cc"})," \u627e\u5230\u5b83\u4eec\u3002"]}),"\n",(0,i.jsx)(r.h3,{id:"\u8282\u70b9\u90e8\u7f72",children:"\u8282\u70b9\u90e8\u7f72"}),"\n",(0,i.jsx)(r.p,{children:"\u76ee\u524d\u6211\u4eec\u652f\u6301\u60a8\u5728 Docker \u4e2d\u8fd0\u884c Morph \u8282\u70b9\uff08\u5168\u8282\u70b9\u548c\u9a8c\u8bc1\u8282\u70b9\uff09\u6216\u5728Host\u4e0a\u8fd0\u884c\u3002"}),"\n",(0,i.jsxs)(r.p,{children:["\u60a8\u53ef\u4ee5\u67e5\u770b ",(0,i.jsx)(r.a,{href:"/docs/build-on-morph/developer-resources/node-operation/full-node/run-in-docker",children:"\u8282\u70b9\u90e8\u7f72\u6307\u5357"})," \u4ee5\u83b7\u53d6\u66f4\u591a\u8be6\u7ec6\u4fe1\u606f\u3002"]})]})}function p(e={}){const{wrapper:r}={...(0,n.R)(),...e.components};return r?(0,i.jsx)(r,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},1582:(e,r,o)=>{o.d(r,{R:()=>t,x:()=>l});var i=o(758);const n={},h=i.createContext(n);function t(e){const r=i.useContext(h);return i.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function l(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:t(e.components),i.createElement(h.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/a0d49790.93ae43f6.js b/build/assets/js/a0d49790.f6da78e9.js similarity index 75% rename from build/assets/js/a0d49790.93ae43f6.js rename to build/assets/js/a0d49790.f6da78e9.js index 00ecfd719..55381f0d9 100644 --- a/build/assets/js/a0d49790.93ae43f6.js +++ b/build/assets/js/a0d49790.f6da78e9.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[1243],{4957:(e,s,r)=>{r.r(s),r.d(s,{assets:()=>i,contentTitle:()=>d,default:()=>h,frontMatter:()=>t,metadata:()=>c,toc:()=>l});var n=r(3274),o=r(2333);const t={},d="Type alias: AddressLike",c={id:"build-on-morph/sdk/type-aliases/AddressLike",title:"AddressLike",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/type-aliases/AddressLike.md",sourceDirName:"build-on-morph/sdk/type-aliases",slug:"/build-on-morph/sdk/type-aliases/AddressLike",permalink:"/docs/build-on-morph/sdk/type-aliases/AddressLike",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/type-aliases/AddressLike.md",tags:[],version:"current",frontMatter:{}},i={},l=[{value:"Source",id:"source",level:2}];function a(e){const s={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,o.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,n.jsx)(s.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,n.jsx)(s.strong,{children:"Docs"})]}),"\n",(0,n.jsx)(s.hr,{}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / AddressLike"]}),"\n",(0,n.jsx)(s.h1,{id:"type-alias-addresslike",children:"Type alias: AddressLike"}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"AddressLike"}),": ",(0,n.jsx)(s.code,{children:"string"})," | ",(0,n.jsx)(s.code,{children:"Contract"})]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:"Stuff that can be coerced into an address."}),"\n",(0,n.jsx)(s.h2,{id:"source",children:"Source"}),"\n",(0,n.jsx)(s.p,{children:"src/interfaces/types.ts:391"})]})}function h(e={}){const{wrapper:s}={...(0,o.R)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(a,{...e})}):a(e)}},2333:(e,s,r)=>{r.d(s,{R:()=>d,x:()=>c});var n=r(9474);const o={},t=n.createContext(o);function d(e){const s=n.useContext(t);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:d(e.components),n.createElement(t.Provider,{value:s},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[1243],{1287:(e,s,r)=>{r.r(s),r.d(s,{assets:()=>i,contentTitle:()=>d,default:()=>h,frontMatter:()=>t,metadata:()=>c,toc:()=>l});var n=r(6070),o=r(1582);const t={},d="Type alias: AddressLike",c={id:"build-on-morph/sdk/type-aliases/AddressLike",title:"AddressLike",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/type-aliases/AddressLike.md",sourceDirName:"build-on-morph/sdk/type-aliases",slug:"/build-on-morph/sdk/type-aliases/AddressLike",permalink:"/docs/build-on-morph/sdk/type-aliases/AddressLike",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/type-aliases/AddressLike.md",tags:[],version:"current",frontMatter:{}},i={},l=[{value:"Source",id:"source",level:2}];function a(e){const s={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,o.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,n.jsx)(s.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,n.jsx)(s.strong,{children:"Docs"})]}),"\n",(0,n.jsx)(s.hr,{}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / AddressLike"]}),"\n",(0,n.jsx)(s.h1,{id:"type-alias-addresslike",children:"Type alias: AddressLike"}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"AddressLike"}),": ",(0,n.jsx)(s.code,{children:"string"})," | ",(0,n.jsx)(s.code,{children:"Contract"})]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:"Stuff that can be coerced into an address."}),"\n",(0,n.jsx)(s.h2,{id:"source",children:"Source"}),"\n",(0,n.jsx)(s.p,{children:"src/interfaces/types.ts:391"})]})}function h(e={}){const{wrapper:s}={...(0,o.R)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(a,{...e})}):a(e)}},1582:(e,s,r)=>{r.d(s,{R:()=>d,x:()=>c});var n=r(758);const o={},t=n.createContext(o);function d(e){const s=n.useContext(t);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:d(e.components),n.createElement(t.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/a0d75a43.1b07a391.js b/build/assets/js/a0d75a43.1b07a391.js new file mode 100644 index 000000000..8d5849c1b --- /dev/null +++ b/build/assets/js/a0d75a43.1b07a391.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[3046],{7237:(e,o,n)=>{n.r(o),n.d(o,{assets:()=>h,contentTitle:()=>d,default:()=>p,frontMatter:()=>s,metadata:()=>i,toc:()=>a});var t=n(6070),r=n(1582);const s={title:"Upgrade node running on the host",lang:"en-US"},d=void 0,i={id:"build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-host",title:"Upgrade node running on the host",description:"Upgrading the node is straightforward. Simply install the new version of the node executable file and replace the previous version. Then, stop the currently running node and restart it with the updated version. Node will automatically use the data of your old node and sync the latest blocks that were mined since you shut down the old software.",source:"@site/docs/build-on-morph/developer-resources/node-operation/upgrade-node/1-upgrade-node-host.md",sourceDirName:"build-on-morph/developer-resources/node-operation/upgrade-node",slug:"/build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-host",permalink:"/docs/build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-host",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/developer-resources/node-operation/upgrade-node/1-upgrade-node-host.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{title:"Upgrade node running on the host",lang:"en-US"},sidebar:"DeveloperSidebar",previous:{title:"Upgrade node running from docker",permalink:"/docs/build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-docker"},next:{title:"Prune State",permalink:"/docs/build-on-morph/developer-resources/node-operation/prune-state"}},h={},a=[{value:"Step1: Compile the new version of the code",id:"step1-compile-the-new-version-of-the-code",level:3},{value:"If you only update the Geth version",id:"if-you-only-update-the-geth-version",level:4},{value:"Step2: Stop nodes",id:"step2-stop-nodes",level:3},{value:"Step3: Restart",id:"step3-restart",level:3}];function l(e){const o={a:"a",admonition:"admonition",code:"code",h3:"h3",h4:"h4",p:"p",pre:"pre",...(0,r.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(o.p,{children:"Upgrading the node is straightforward. Simply install the new version of the node executable file and replace the previous version. Then, stop the currently running node and restart it with the updated version. Node will automatically use the data of your old node and sync the latest blocks that were mined since you shut down the old software."}),"\n",(0,t.jsxs)(o.p,{children:["Running the node requires two binary files: ",(0,t.jsx)(o.code,{children:"morphnode"})," and ",(0,t.jsx)(o.code,{children:"geth"}),". Choose to upgrade the binary files according to your specific needs."]}),"\n",(0,t.jsx)(o.h3,{id:"step1-compile-the-new-version-of-the-code",children:"Step1: Compile the new version of the code"}),"\n",(0,t.jsxs)(o.p,{children:["You can have the released code version from ",(0,t.jsx)(o.a,{href:"https://github.com/morph-l2/morph/releases",children:"Morph release"})," page."]}),"\n",(0,t.jsx)(o.pre,{children:(0,t.jsx)(o.code,{className:"language-js",children:"git clone https://github.com/morph-l2/morph.git\n\n// checkout the latest version of the source code you need\ngit checkout ${latestVersion}\n\n// install geth\nmake geth\n\n// install morphnode\ncd ./morph/node && make build\n"})}),"\n",(0,t.jsx)(o.h4,{id:"if-you-only-update-the-geth-version",children:"If you only update the Geth version"}),"\n",(0,t.jsxs)(o.p,{children:["Check the ",(0,t.jsx)(o.code,{children:"Geth"})," version from ",(0,t.jsx)(o.a,{href:"https://github.com/morph-l2/go-ethereum/releases",children:"go-ethereum"})]}),"\n",(0,t.jsx)(o.pre,{children:(0,t.jsx)(o.code,{className:"language-js",children:"git clone https://github.com/morph-l2/go-ethereum.git\n\ngit checkout ${latestVersion}\n\n// install geth\nmake geth\n"})}),"\n",(0,t.jsx)(o.h3,{id:"step2-stop-nodes",children:"Step2: Stop nodes"}),"\n",(0,t.jsx)(o.pre,{children:(0,t.jsx)(o.code,{className:"language-bash",children:"# stop morphnode process\npid=`ps -ef | grep morphnode | grep -v grep | awk '{print $2}'`\nkill $pid\n\n# stop geth process\npid=`ps -ef | grep geth | grep -v grep | awk '{print $2}'`\nkill $pid\n"})}),"\n",(0,t.jsx)(o.h3,{id:"step3-restart",children:"Step3: Restart"}),"\n",(0,t.jsx)(o.p,{children:"Make sure to use the same start-up command you used before the upgrade"}),"\n",(0,t.jsx)(o.pre,{children:(0,t.jsx)(o.code,{className:"language-bash",children:'## start geth\n./morph/go-ethereum/build/bin/geth --morph \\\n --datadir "./geth-data" \\\n --http --http.api=web3,debug,eth,txpool,net,engine \\\n --authrpc.addr localhost \\\n --authrpc.vhosts="localhost" \\\n --authrpc.port 8551 \\\n --authrpc.jwtsecret=./jwt-secret.txt \\\n --log.filename=./geth.log\n\n## start node \n./morph/node/build/bin/morphnode --home ./node-data \\\n --l2.jwt-secret ./jwt-secret.txt \\\n --l2.eth http://localhost:8545 \\\n --l2.engine http://localhost:8551 \\\n --log.filename ./node.log \n'})}),"\n",(0,t.jsx)(o.admonition,{type:"note",children:(0,t.jsxs)(o.p,{children:["For holesky network, use ",(0,t.jsx)(o.code,{children:"--morph-holesky"})," instead"]})})]})}function p(e={}){const{wrapper:o}={...(0,r.R)(),...e.components};return o?(0,t.jsx)(o,{...e,children:(0,t.jsx)(l,{...e})}):l(e)}},1582:(e,o,n)=>{n.d(o,{R:()=>d,x:()=>i});var t=n(758);const r={},s=t.createContext(r);function d(e){const o=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function i(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:d(e.components),t.createElement(s.Provider,{value:o},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/a0d75a43.dc859722.js b/build/assets/js/a0d75a43.dc859722.js deleted file mode 100644 index 218e337d0..000000000 --- a/build/assets/js/a0d75a43.dc859722.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[3046],{9455:(e,o,n)=>{n.r(o),n.d(o,{assets:()=>a,contentTitle:()=>s,default:()=>h,frontMatter:()=>d,metadata:()=>i,toc:()=>p});var t=n(3274),r=n(2333);const d={title:"Upgrade node running on the host",lang:"en-US"},s=void 0,i={id:"build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-host",title:"Upgrade node running on the host",description:"Upgrading the node is straightforward. Simply install the new version of the node executable file and replace the previous version. Then, stop the currently running node and restart it with the updated version. Node will automatically use the data of your old node and sync the latest blocks that were mined since you shut down the old software.",source:"@site/docs/build-on-morph/developer-resources/node-operation/upgrade-node/1-upgrade-node-host.md",sourceDirName:"build-on-morph/developer-resources/node-operation/upgrade-node",slug:"/build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-host",permalink:"/docs/build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-host",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/developer-resources/node-operation/upgrade-node/1-upgrade-node-host.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{title:"Upgrade node running on the host",lang:"en-US"},sidebar:"DeveloperSidebar",previous:{title:"Upgrade node running from docker",permalink:"/docs/build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-docker"},next:{title:"Prune State",permalink:"/docs/build-on-morph/developer-resources/node-operation/prune-state"}},a={},p=[{value:"Step1: Compile the new version of the code",id:"step1-compile-the-new-version-of-the-code",level:3},{value:"Step2: Stop nodes",id:"step2-stop-nodes",level:3},{value:"Step3: Restart",id:"step3-restart",level:3}];function l(e){const o={admonition:"admonition",code:"code",h3:"h3",p:"p",pre:"pre",...(0,r.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(o.p,{children:"Upgrading the node is straightforward. Simply install the new version of the node executable file and replace the previous version. Then, stop the currently running node and restart it with the updated version. Node will automatically use the data of your old node and sync the latest blocks that were mined since you shut down the old software."}),"\n",(0,t.jsxs)(o.p,{children:["Running the node requires two binary files: ",(0,t.jsx)(o.code,{children:"morphnode"})," and ",(0,t.jsx)(o.code,{children:"geth"}),". Choose to upgrade the binary files according to your specific needs."]}),"\n",(0,t.jsx)(o.h3,{id:"step1-compile-the-new-version-of-the-code",children:"Step1: Compile the new version of the code"}),"\n",(0,t.jsx)(o.pre,{children:(0,t.jsx)(o.code,{className:"language-bash",children:"git clone https://github.com/morph-l2/morph.git\n## checkout the latest version of the source code you need\ngit checkout ${latestVersion}\n## install geth\nmake geth\n## install morphnode\ncd ./morph/node && make build\n"})}),"\n",(0,t.jsx)(o.h3,{id:"step2-stop-nodes",children:"Step2: Stop nodes"}),"\n",(0,t.jsx)(o.pre,{children:(0,t.jsx)(o.code,{className:"language-bash",children:"## stop morphnode process\npid=`ps -ef | grep morphnode | grep -v grep | awk '{print $2}'`\nkill $pid\n\n## stop geth process\npid=`ps -ef | grep geth | grep -v grep | awk '{print $2}'`\nkill $pid\n"})}),"\n",(0,t.jsx)(o.h3,{id:"step3-restart",children:"Step3: Restart"}),"\n",(0,t.jsx)(o.p,{children:"Make sure to use the same start-up command you used before the upgrade"}),"\n",(0,t.jsx)(o.pre,{children:(0,t.jsx)(o.code,{className:"language-bash",children:'## start geth\n./morph/go-ethereum/build/bin/geth --morph \\\n --datadir "./geth-data" \\\n --http --http.api=web3,debug,eth,txpool,net,engine \\\n --authrpc.addr localhost \\\n --authrpc.vhosts="localhost" \\\n --authrpc.port 8551 \\\n --authrpc.jwtsecret=./jwt-secret.txt \\\n --log.filename=./geth.log\n\n## start geth \n./morph/node/build/bin/morphnode --home ./node-data \\\n --l2.jwt-secret ./jwt-secret.txt \\\n --l2.eth http://localhost:8545 \\\n --l2.engine http://localhost:8551 \\\n --log.filename ./node.log \n'})}),"\n",(0,t.jsx)(o.admonition,{type:"note",children:(0,t.jsxs)(o.p,{children:["For testnet, use ",(0,t.jsx)(o.code,{children:"--morph-holesky"})," instead"]})})]})}function h(e={}){const{wrapper:o}={...(0,r.R)(),...e.components};return o?(0,t.jsx)(o,{...e,children:(0,t.jsx)(l,{...e})}):l(e)}},2333:(e,o,n)=>{n.d(o,{R:()=>s,x:()=>i});var t=n(9474);const r={},d=t.createContext(r);function s(e){const o=t.useContext(d);return t.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function i(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),t.createElement(d.Provider,{value:o},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/a1f831b5.99aa2e6e.js b/build/assets/js/a1f831b5.99aa2e6e.js new file mode 100644 index 000000000..db12e3206 --- /dev/null +++ b/build/assets/js/a1f831b5.99aa2e6e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[6371],{7750:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>d,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>c,toc:()=>l});var t=n(6070),o=n(1582);const r={},i="Function: estimateL2GasCost()",c={id:"build-on-morph/sdk/functions/estimateL2GasCost",title:"estimateL2GasCost",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/functions/estimateL2GasCost.md",sourceDirName:"build-on-morph/sdk/functions",slug:"/build-on-morph/sdk/functions/estimateL2GasCost",permalink:"/docs/build-on-morph/sdk/functions/estimateL2GasCost",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/functions/estimateL2GasCost.md",tags:[],version:"current",frontMatter:{}},d={},l=[{value:"Parameters",id:"parameters",level:2},{value:"Returns",id:"returns",level:2},{value:"Source",id:"source",level:2}];function a(e){const s={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,o.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,t.jsx)(s.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,t.jsx)(s.strong,{children:"Docs"})]}),"\n",(0,t.jsx)(s.hr,{}),"\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / estimateL2GasCost"]}),"\n",(0,t.jsx)(s.h1,{id:"function-estimatel2gascost",children:"Function: estimateL2GasCost()"}),"\n",(0,t.jsxs)(s.blockquote,{children:["\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.strong,{children:"estimateL2GasCost"}),"(",(0,t.jsx)(s.code,{children:"l2Provider"}),", ",(0,t.jsx)(s.code,{children:"tx"}),"): ",(0,t.jsx)(s.code,{children:"Promise"}),"<",(0,t.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n"]}),"\n",(0,t.jsx)(s.p,{children:"Estimates the L2 gas cost for a given L2 transaction in wei."}),"\n",(0,t.jsx)(s.h2,{id:"parameters",children:"Parameters"}),"\n",(0,t.jsxs)(s.p,{children:["\u2022 ",(0,t.jsx)(s.strong,{children:"l2Provider"}),": ",(0,t.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/ProviderLike",children:(0,t.jsx)(s.code,{children:"ProviderLike"})})]}),"\n",(0,t.jsx)(s.p,{children:"L2 provider to query the gas usage from."}),"\n",(0,t.jsxs)(s.p,{children:["\u2022 ",(0,t.jsx)(s.strong,{children:"tx"}),": ",(0,t.jsx)(s.code,{children:"TransactionRequest"})]}),"\n",(0,t.jsx)(s.p,{children:"Transaction to estimate L2 gas cost for."}),"\n",(0,t.jsx)(s.h2,{id:"returns",children:"Returns"}),"\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.code,{children:"Promise"}),"<",(0,t.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,t.jsx)(s.p,{children:"Estimated L2 gas cost."}),"\n",(0,t.jsx)(s.h2,{id:"source",children:"Source"}),"\n",(0,t.jsx)(s.p,{children:"src/l2-provider.ts:119"})]})}function h(e={}){const{wrapper:s}={...(0,o.R)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(a,{...e})}):a(e)}},1582:(e,s,n)=>{n.d(s,{R:()=>i,x:()=>c});var t=n(758);const o={},r=t.createContext(o);function i(e){const s=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),t.createElement(r.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/a1f831b5.ffb4bd23.js b/build/assets/js/a1f831b5.ffb4bd23.js deleted file mode 100644 index 497e96f59..000000000 --- a/build/assets/js/a1f831b5.ffb4bd23.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[6371],{284:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>d,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>c,toc:()=>l});var t=n(3274),o=n(2333);const r={},i="Function: estimateL2GasCost()",c={id:"build-on-morph/sdk/functions/estimateL2GasCost",title:"estimateL2GasCost",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/functions/estimateL2GasCost.md",sourceDirName:"build-on-morph/sdk/functions",slug:"/build-on-morph/sdk/functions/estimateL2GasCost",permalink:"/docs/build-on-morph/sdk/functions/estimateL2GasCost",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/functions/estimateL2GasCost.md",tags:[],version:"current",frontMatter:{}},d={},l=[{value:"Parameters",id:"parameters",level:2},{value:"Returns",id:"returns",level:2},{value:"Source",id:"source",level:2}];function a(e){const s={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,o.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,t.jsx)(s.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,t.jsx)(s.strong,{children:"Docs"})]}),"\n",(0,t.jsx)(s.hr,{}),"\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / estimateL2GasCost"]}),"\n",(0,t.jsx)(s.h1,{id:"function-estimatel2gascost",children:"Function: estimateL2GasCost()"}),"\n",(0,t.jsxs)(s.blockquote,{children:["\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.strong,{children:"estimateL2GasCost"}),"(",(0,t.jsx)(s.code,{children:"l2Provider"}),", ",(0,t.jsx)(s.code,{children:"tx"}),"): ",(0,t.jsx)(s.code,{children:"Promise"}),"<",(0,t.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n"]}),"\n",(0,t.jsx)(s.p,{children:"Estimates the L2 gas cost for a given L2 transaction in wei."}),"\n",(0,t.jsx)(s.h2,{id:"parameters",children:"Parameters"}),"\n",(0,t.jsxs)(s.p,{children:["\u2022 ",(0,t.jsx)(s.strong,{children:"l2Provider"}),": ",(0,t.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/ProviderLike",children:(0,t.jsx)(s.code,{children:"ProviderLike"})})]}),"\n",(0,t.jsx)(s.p,{children:"L2 provider to query the gas usage from."}),"\n",(0,t.jsxs)(s.p,{children:["\u2022 ",(0,t.jsx)(s.strong,{children:"tx"}),": ",(0,t.jsx)(s.code,{children:"TransactionRequest"})]}),"\n",(0,t.jsx)(s.p,{children:"Transaction to estimate L2 gas cost for."}),"\n",(0,t.jsx)(s.h2,{id:"returns",children:"Returns"}),"\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.code,{children:"Promise"}),"<",(0,t.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,t.jsx)(s.p,{children:"Estimated L2 gas cost."}),"\n",(0,t.jsx)(s.h2,{id:"source",children:"Source"}),"\n",(0,t.jsx)(s.p,{children:"src/l2-provider.ts:119"})]})}function h(e={}){const{wrapper:s}={...(0,o.R)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(a,{...e})}):a(e)}},2333:(e,s,n)=>{n.d(s,{R:()=>i,x:()=>c});var t=n(9474);const o={},r=t.createContext(o);function i(e){const s=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),t.createElement(r.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/a2db6fd6.323f6535.js b/build/assets/js/a2db6fd6.323f6535.js new file mode 100644 index 000000000..8bb981d56 --- /dev/null +++ b/build/assets/js/a2db6fd6.323f6535.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[3654],{524:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>t,contentTitle:()=>l,default:()=>a,frontMatter:()=>i,metadata:()=>d,toc:()=>c});var r=n(6070),o=n(1582);const i={},l="Enumeration: MessageStatus",d={id:"build-on-morph/sdk/enumerations/MessageStatus",title:"MessageStatus",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/enumerations/MessageStatus.md",sourceDirName:"build-on-morph/sdk/enumerations",slug:"/build-on-morph/sdk/enumerations/MessageStatus",permalink:"/docs/build-on-morph/sdk/enumerations/MessageStatus",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/enumerations/MessageStatus.md",tags:[],version:"current",frontMatter:{}},t={},c=[{value:"Enumeration Members",id:"enumeration-members",level:2},{value:"FAILED_L1_TO_L2_MESSAGE",id:"failed_l1_to_l2_message",level:3},{value:"Source",id:"source",level:4},{value:"IN_CHALLENGE_PERIOD",id:"in_challenge_period",level:3},{value:"Source",id:"source-1",level:4},{value:"READY_FOR_RELAY",id:"ready_for_relay",level:3},{value:"Source",id:"source-2",level:4},{value:"READY_TO_PROVE",id:"ready_to_prove",level:3},{value:"Source",id:"source-3",level:4},{value:"RELAYED",id:"relayed",level:3},{value:"Source",id:"source-4",level:4},{value:"UNCONFIRMED_L1_TO_L2_MESSAGE",id:"unconfirmed_l1_to_l2_message",level:3},{value:"Source",id:"source-5",level:4},{value:"WITHDRAWAL_HASH_NOT_SYNC",id:"withdrawal_hash_not_sync",level:3},{value:"Source",id:"source-6",level:4},{value:"WITHDRAWAL_ROOT_NOT_PUBLISHED",id:"withdrawal_root_not_published",level:3},{value:"Source",id:"source-7",level:4}];function h(e){const s={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",p:"p",strong:"strong",...(0,o.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,r.jsx)(s.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,r.jsx)(s.strong,{children:"Docs"})]}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / MessageStatus"]}),"\n",(0,r.jsx)(s.h1,{id:"enumeration-messagestatus",children:"Enumeration: MessageStatus"}),"\n",(0,r.jsx)(s.p,{children:"Enum describing the status of a message."}),"\n",(0,r.jsx)(s.h2,{id:"enumeration-members",children:"Enumeration Members"}),"\n",(0,r.jsx)(s.h3,{id:"failed_l1_to_l2_message",children:"FAILED_L1_TO_L2_MESSAGE"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"FAILED_L1_TO_L2_MESSAGE"}),": ",(0,r.jsx)(s.code,{children:"1"})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Message is an L1 to L2 message and the transaction to execute the message failed.\nWhen this status is returned, you will need to resend the L1 to L2 message, probably with a\nhigher gas limit."}),"\n",(0,r.jsx)(s.h4,{id:"source",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/interfaces/types.ts:186"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"in_challenge_period",children:"IN_CHALLENGE_PERIOD"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"IN_CHALLENGE_PERIOD"}),": ",(0,r.jsx)(s.code,{children:"5"})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Message is a proved L2 to L1 message and is undergoing the challenge period."}),"\n",(0,r.jsx)(s.h4,{id:"source-1",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/interfaces/types.ts:206"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"ready_for_relay",children:"READY_FOR_RELAY"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"READY_FOR_RELAY"}),": ",(0,r.jsx)(s.code,{children:"6"})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Message is ready to be relayed."}),"\n",(0,r.jsx)(s.h4,{id:"source-2",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/interfaces/types.ts:211"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"ready_to_prove",children:"READY_TO_PROVE"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"READY_TO_PROVE"}),": ",(0,r.jsx)(s.code,{children:"4"})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Message is ready to be proved on L1 to initiate the challenge period."}),"\n",(0,r.jsx)(s.h4,{id:"source-3",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/interfaces/types.ts:201"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"relayed",children:"RELAYED"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"RELAYED"}),": ",(0,r.jsx)(s.code,{children:"7"})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Message has been relayed."}),"\n",(0,r.jsx)(s.h4,{id:"source-4",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/interfaces/types.ts:216"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"unconfirmed_l1_to_l2_message",children:"UNCONFIRMED_L1_TO_L2_MESSAGE"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"UNCONFIRMED_L1_TO_L2_MESSAGE"}),": ",(0,r.jsx)(s.code,{children:"0"})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Message is an L1 to L2 message and has not been processed by the L2."}),"\n",(0,r.jsx)(s.h4,{id:"source-5",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/interfaces/types.ts:179"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"withdrawal_hash_not_sync",children:"WITHDRAWAL_HASH_NOT_SYNC"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"WITHDRAWAL_HASH_NOT_SYNC"}),": ",(0,r.jsx)(s.code,{children:"3"})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Message is an L2 to L1 message and withdrawal hash has not been published to backend yet."}),"\n",(0,r.jsx)(s.h4,{id:"source-6",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/interfaces/types.ts:196"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"withdrawal_root_not_published",children:"WITHDRAWAL_ROOT_NOT_PUBLISHED"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"WITHDRAWAL_ROOT_NOT_PUBLISHED"}),": ",(0,r.jsx)(s.code,{children:"2"})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Message is an L2 to L1 message and withdrawal root has not been published yet."}),"\n",(0,r.jsx)(s.h4,{id:"source-7",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/interfaces/types.ts:191"})]})}function a(e={}){const{wrapper:s}={...(0,o.R)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},1582:(e,s,n)=>{n.d(s,{R:()=>l,x:()=>d});var r=n(758);const o={},i=r.createContext(o);function l(e){const s=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function d(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:l(e.components),r.createElement(i.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/a2db6fd6.ceb19896.js b/build/assets/js/a2db6fd6.ceb19896.js deleted file mode 100644 index c00af1d0e..000000000 --- a/build/assets/js/a2db6fd6.ceb19896.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[3654],{1738:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>t,contentTitle:()=>l,default:()=>a,frontMatter:()=>i,metadata:()=>d,toc:()=>c});var r=n(3274),o=n(2333);const i={},l="Enumeration: MessageStatus",d={id:"build-on-morph/sdk/enumerations/MessageStatus",title:"MessageStatus",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/enumerations/MessageStatus.md",sourceDirName:"build-on-morph/sdk/enumerations",slug:"/build-on-morph/sdk/enumerations/MessageStatus",permalink:"/docs/build-on-morph/sdk/enumerations/MessageStatus",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/enumerations/MessageStatus.md",tags:[],version:"current",frontMatter:{}},t={},c=[{value:"Enumeration Members",id:"enumeration-members",level:2},{value:"FAILED_L1_TO_L2_MESSAGE",id:"failed_l1_to_l2_message",level:3},{value:"Source",id:"source",level:4},{value:"IN_CHALLENGE_PERIOD",id:"in_challenge_period",level:3},{value:"Source",id:"source-1",level:4},{value:"READY_FOR_RELAY",id:"ready_for_relay",level:3},{value:"Source",id:"source-2",level:4},{value:"READY_TO_PROVE",id:"ready_to_prove",level:3},{value:"Source",id:"source-3",level:4},{value:"RELAYED",id:"relayed",level:3},{value:"Source",id:"source-4",level:4},{value:"UNCONFIRMED_L1_TO_L2_MESSAGE",id:"unconfirmed_l1_to_l2_message",level:3},{value:"Source",id:"source-5",level:4},{value:"WITHDRAWAL_HASH_NOT_SYNC",id:"withdrawal_hash_not_sync",level:3},{value:"Source",id:"source-6",level:4},{value:"WITHDRAWAL_ROOT_NOT_PUBLISHED",id:"withdrawal_root_not_published",level:3},{value:"Source",id:"source-7",level:4}];function h(e){const s={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",p:"p",strong:"strong",...(0,o.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,r.jsx)(s.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,r.jsx)(s.strong,{children:"Docs"})]}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / MessageStatus"]}),"\n",(0,r.jsx)(s.h1,{id:"enumeration-messagestatus",children:"Enumeration: MessageStatus"}),"\n",(0,r.jsx)(s.p,{children:"Enum describing the status of a message."}),"\n",(0,r.jsx)(s.h2,{id:"enumeration-members",children:"Enumeration Members"}),"\n",(0,r.jsx)(s.h3,{id:"failed_l1_to_l2_message",children:"FAILED_L1_TO_L2_MESSAGE"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"FAILED_L1_TO_L2_MESSAGE"}),": ",(0,r.jsx)(s.code,{children:"1"})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Message is an L1 to L2 message and the transaction to execute the message failed.\nWhen this status is returned, you will need to resend the L1 to L2 message, probably with a\nhigher gas limit."}),"\n",(0,r.jsx)(s.h4,{id:"source",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/interfaces/types.ts:186"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"in_challenge_period",children:"IN_CHALLENGE_PERIOD"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"IN_CHALLENGE_PERIOD"}),": ",(0,r.jsx)(s.code,{children:"5"})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Message is a proved L2 to L1 message and is undergoing the challenge period."}),"\n",(0,r.jsx)(s.h4,{id:"source-1",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/interfaces/types.ts:206"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"ready_for_relay",children:"READY_FOR_RELAY"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"READY_FOR_RELAY"}),": ",(0,r.jsx)(s.code,{children:"6"})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Message is ready to be relayed."}),"\n",(0,r.jsx)(s.h4,{id:"source-2",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/interfaces/types.ts:211"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"ready_to_prove",children:"READY_TO_PROVE"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"READY_TO_PROVE"}),": ",(0,r.jsx)(s.code,{children:"4"})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Message is ready to be proved on L1 to initiate the challenge period."}),"\n",(0,r.jsx)(s.h4,{id:"source-3",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/interfaces/types.ts:201"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"relayed",children:"RELAYED"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"RELAYED"}),": ",(0,r.jsx)(s.code,{children:"7"})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Message has been relayed."}),"\n",(0,r.jsx)(s.h4,{id:"source-4",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/interfaces/types.ts:216"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"unconfirmed_l1_to_l2_message",children:"UNCONFIRMED_L1_TO_L2_MESSAGE"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"UNCONFIRMED_L1_TO_L2_MESSAGE"}),": ",(0,r.jsx)(s.code,{children:"0"})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Message is an L1 to L2 message and has not been processed by the L2."}),"\n",(0,r.jsx)(s.h4,{id:"source-5",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/interfaces/types.ts:179"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"withdrawal_hash_not_sync",children:"WITHDRAWAL_HASH_NOT_SYNC"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"WITHDRAWAL_HASH_NOT_SYNC"}),": ",(0,r.jsx)(s.code,{children:"3"})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Message is an L2 to L1 message and withdrawal hash has not been published to backend yet."}),"\n",(0,r.jsx)(s.h4,{id:"source-6",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/interfaces/types.ts:196"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"withdrawal_root_not_published",children:"WITHDRAWAL_ROOT_NOT_PUBLISHED"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"WITHDRAWAL_ROOT_NOT_PUBLISHED"}),": ",(0,r.jsx)(s.code,{children:"2"})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Message is an L2 to L1 message and withdrawal root has not been published yet."}),"\n",(0,r.jsx)(s.h4,{id:"source-7",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/interfaces/types.ts:191"})]})}function a(e={}){const{wrapper:s}={...(0,o.R)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},2333:(e,s,n)=>{n.d(s,{R:()=>l,x:()=>d});var r=n(9474);const o={},i=r.createContext(o);function l(e){const s=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function d(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:l(e.components),r.createElement(i.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/a399e926.479fbb82.js b/build/assets/js/a399e926.6c89943b.js similarity index 81% rename from build/assets/js/a399e926.479fbb82.js rename to build/assets/js/a399e926.6c89943b.js index 45b7e7912..1a6834b20 100644 --- a/build/assets/js/a399e926.479fbb82.js +++ b/build/assets/js/a399e926.6c89943b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[7131],{7734:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>h,frontMatter:()=>t,metadata:()=>i,toc:()=>u});var o=r(3274),s=r(2333);const t={},c="Function: toNumber()",i={id:"build-on-morph/sdk/functions/toNumber",title:"toNumber",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/functions/toNumber.md",sourceDirName:"build-on-morph/sdk/functions",slug:"/build-on-morph/sdk/functions/toNumber",permalink:"/docs/build-on-morph/sdk/functions/toNumber",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/functions/toNumber.md",tags:[],version:"current",frontMatter:{}},d={},u=[{value:"Parameters",id:"parameters",level:2},{value:"Returns",id:"returns",level:2},{value:"Source",id:"source",level:2}];function l(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,s.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,o.jsx)(n.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,o.jsx)(n.strong,{children:"Docs"})]}),"\n",(0,o.jsx)(n.hr,{}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / toNumber"]}),"\n",(0,o.jsx)(n.h1,{id:"function-tonumber",children:"Function: toNumber()"}),"\n",(0,o.jsxs)(n.blockquote,{children:["\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.strong,{children:"toNumber"}),"(",(0,o.jsx)(n.code,{children:"num"}),"): ",(0,o.jsx)(n.code,{children:"number"})]}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:"Converts a number-like into a number."}),"\n",(0,o.jsx)(n.h2,{id:"parameters",children:"Parameters"}),"\n",(0,o.jsxs)(n.p,{children:["\u2022 ",(0,o.jsx)(n.strong,{children:"num"}),": ",(0,o.jsx)(n.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,o.jsx)(n.code,{children:"NumberLike"})})]}),"\n",(0,o.jsx)(n.p,{children:"Number-like to convert into a number."}),"\n",(0,o.jsx)(n.h2,{id:"returns",children:"Returns"}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.code,{children:"number"})}),"\n",(0,o.jsx)(n.p,{children:"Number-like as a number."}),"\n",(0,o.jsx)(n.h2,{id:"source",children:"Source"}),"\n",(0,o.jsx)(n.p,{children:"src/utils/coercion.ts:94"})]})}function h(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},2333:(e,n,r)=>{r.d(n,{R:()=>c,x:()=>i});var o=r(9474);const s={},t=o.createContext(s);function c(e){const n=o.useContext(t);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:c(e.components),o.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[7131],{9440:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>h,frontMatter:()=>t,metadata:()=>i,toc:()=>u});var o=r(6070),s=r(1582);const t={},c="Function: toNumber()",i={id:"build-on-morph/sdk/functions/toNumber",title:"toNumber",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/functions/toNumber.md",sourceDirName:"build-on-morph/sdk/functions",slug:"/build-on-morph/sdk/functions/toNumber",permalink:"/docs/build-on-morph/sdk/functions/toNumber",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/functions/toNumber.md",tags:[],version:"current",frontMatter:{}},d={},u=[{value:"Parameters",id:"parameters",level:2},{value:"Returns",id:"returns",level:2},{value:"Source",id:"source",level:2}];function l(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,s.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,o.jsx)(n.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,o.jsx)(n.strong,{children:"Docs"})]}),"\n",(0,o.jsx)(n.hr,{}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / toNumber"]}),"\n",(0,o.jsx)(n.h1,{id:"function-tonumber",children:"Function: toNumber()"}),"\n",(0,o.jsxs)(n.blockquote,{children:["\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.strong,{children:"toNumber"}),"(",(0,o.jsx)(n.code,{children:"num"}),"): ",(0,o.jsx)(n.code,{children:"number"})]}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:"Converts a number-like into a number."}),"\n",(0,o.jsx)(n.h2,{id:"parameters",children:"Parameters"}),"\n",(0,o.jsxs)(n.p,{children:["\u2022 ",(0,o.jsx)(n.strong,{children:"num"}),": ",(0,o.jsx)(n.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,o.jsx)(n.code,{children:"NumberLike"})})]}),"\n",(0,o.jsx)(n.p,{children:"Number-like to convert into a number."}),"\n",(0,o.jsx)(n.h2,{id:"returns",children:"Returns"}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.code,{children:"number"})}),"\n",(0,o.jsx)(n.p,{children:"Number-like as a number."}),"\n",(0,o.jsx)(n.h2,{id:"source",children:"Source"}),"\n",(0,o.jsx)(n.p,{children:"src/utils/coercion.ts:94"})]})}function h(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},1582:(e,n,r)=>{r.d(n,{R:()=>c,x:()=>i});var o=r(758);const s={},t=o.createContext(s);function c(e){const n=o.useContext(t);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:c(e.components),o.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/a4da47e1.9e7d5274.js b/build/assets/js/a4da47e1.11689d10.js similarity index 92% rename from build/assets/js/a4da47e1.9e7d5274.js rename to build/assets/js/a4da47e1.11689d10.js index ee105e1d2..0423b1494 100644 --- a/build/assets/js/a4da47e1.9e7d5274.js +++ b/build/assets/js/a4da47e1.11689d10.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[4788],{9131:(e,s,r)=>{r.r(s),r.d(s,{assets:()=>o,contentTitle:()=>a,default:()=>h,frontMatter:()=>i,metadata:()=>d,toc:()=>l});var t=r(3274),n=r(2333);const i={},a="Type alias: L2Provider<TProvider>",d={id:"build-on-morph/sdk/type-aliases/L2Provider",title:"L2Provider",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/type-aliases/L2Provider.md",sourceDirName:"build-on-morph/sdk/type-aliases",slug:"/build-on-morph/sdk/type-aliases/L2Provider",permalink:"/docs/build-on-morph/sdk/type-aliases/L2Provider",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/type-aliases/L2Provider.md",tags:[],version:"current",frontMatter:{}},o={},l=[{value:"Type declaration",id:"type-declaration",level:2},{value:"_isL2Provider",id:"_isl2provider",level:3},{value:"estimateL1Gas()",id:"estimatel1gas",level:3},{value:"Parameters",id:"parameters",level:4},{value:"Returns",id:"returns",level:4},{value:"estimateL1GasCost()",id:"estimatel1gascost",level:3},{value:"Parameters",id:"parameters-1",level:4},{value:"Returns",id:"returns-1",level:4},{value:"estimateL2GasCost()",id:"estimatel2gascost",level:3},{value:"Parameters",id:"parameters-2",level:4},{value:"Returns",id:"returns-2",level:4},{value:"estimateTotalGasCost()",id:"estimatetotalgascost",level:3},{value:"Parameters",id:"parameters-3",level:4},{value:"Returns",id:"returns-3",level:4},{value:"getL1GasPrice()",id:"getl1gasprice",level:3},{value:"Returns",id:"returns-4",level:4},{value:"Type parameters",id:"type-parameters",level:2},{value:"Source",id:"source",level:2}];function c(e){const s={a:"a",blockquote:"blockquote",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",p:"p",strong:"strong",...(0,n.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,t.jsx)(s.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,t.jsx)(s.strong,{children:"Docs"})]}),"\n",(0,t.jsx)(s.hr,{}),"\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / L2Provider"]}),"\n",(0,t.jsx)(s.h1,{id:"type-alias-l2providertprovider",children:"Type alias: L2Provider<TProvider>"}),"\n",(0,t.jsxs)(s.blockquote,{children:["\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.strong,{children:"L2Provider"}),"<",(0,t.jsx)(s.code,{children:"TProvider"}),">: ",(0,t.jsx)(s.code,{children:"TProvider"})," & ",(0,t.jsx)(s.code,{children:"object"})]}),"\n"]}),"\n",(0,t.jsx)(s.p,{children:"Represents an extended version of an normal ethers Provider that returns additional L2 info and\nhas special functions for L2-specific interactions."}),"\n",(0,t.jsx)(s.h2,{id:"type-declaration",children:"Type declaration"}),"\n",(0,t.jsx)(s.h3,{id:"_isl2provider",children:"_isL2Provider"}),"\n",(0,t.jsxs)(s.blockquote,{children:["\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.strong,{children:"_isL2Provider"}),": ",(0,t.jsx)(s.code,{children:"true"})]}),"\n"]}),"\n",(0,t.jsx)(s.p,{children:"Internal property to determine if a provider is a L2Provider\nYou are likely looking for the isL2Provider function"}),"\n",(0,t.jsx)(s.h3,{id:"estimatel1gas",children:"estimateL1Gas()"}),"\n",(0,t.jsx)(s.p,{children:"Estimates the L1 (data) gas required for a transaction."}),"\n",(0,t.jsx)(s.h4,{id:"parameters",children:"Parameters"}),"\n",(0,t.jsxs)(s.p,{children:["\u2022 ",(0,t.jsx)(s.strong,{children:"tx"}),": ",(0,t.jsx)(s.code,{children:"TransactionRequest"})]}),"\n",(0,t.jsx)(s.p,{children:"Transaction to estimate L1 gas for."}),"\n",(0,t.jsx)(s.h4,{id:"returns",children:"Returns"}),"\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.code,{children:"Promise"}),"<",(0,t.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,t.jsx)(s.p,{children:"Estimated L1 gas."}),"\n",(0,t.jsx)(s.h3,{id:"estimatel1gascost",children:"estimateL1GasCost()"}),"\n",(0,t.jsx)(s.p,{children:"Estimates the L1 (data) gas cost for a transaction in wei by multiplying the estimated L1 gas\ncost by the current L1 gas price."}),"\n",(0,t.jsx)(s.h4,{id:"parameters-1",children:"Parameters"}),"\n",(0,t.jsxs)(s.p,{children:["\u2022 ",(0,t.jsx)(s.strong,{children:"tx"}),": ",(0,t.jsx)(s.code,{children:"TransactionRequest"})]}),"\n",(0,t.jsx)(s.p,{children:"Transaction to estimate L1 gas cost for."}),"\n",(0,t.jsx)(s.h4,{id:"returns-1",children:"Returns"}),"\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.code,{children:"Promise"}),"<",(0,t.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,t.jsx)(s.p,{children:"Estimated L1 gas cost."}),"\n",(0,t.jsx)(s.h3,{id:"estimatel2gascost",children:"estimateL2GasCost()"}),"\n",(0,t.jsx)(s.p,{children:"Estimates the L2 (execution) gas cost for a transaction in wei by multiplying the estimated L1\ngas cost by the current L2 gas price. This is a simple multiplication of the result of\ngetGasPrice and estimateGas for the given transaction request."}),"\n",(0,t.jsx)(s.h4,{id:"parameters-2",children:"Parameters"}),"\n",(0,t.jsxs)(s.p,{children:["\u2022 ",(0,t.jsx)(s.strong,{children:"tx"}),": ",(0,t.jsx)(s.code,{children:"TransactionRequest"})]}),"\n",(0,t.jsx)(s.p,{children:"Transaction to estimate L2 gas cost for."}),"\n",(0,t.jsx)(s.h4,{id:"returns-2",children:"Returns"}),"\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.code,{children:"Promise"}),"<",(0,t.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,t.jsx)(s.p,{children:"Estimated L2 gas cost."}),"\n",(0,t.jsx)(s.h3,{id:"estimatetotalgascost",children:"estimateTotalGasCost()"}),"\n",(0,t.jsx)(s.p,{children:"Estimates the total gas cost for a transaction in wei by adding the estimated the L1 gas cost\nand the estimated L2 gas cost."}),"\n",(0,t.jsx)(s.h4,{id:"parameters-3",children:"Parameters"}),"\n",(0,t.jsxs)(s.p,{children:["\u2022 ",(0,t.jsx)(s.strong,{children:"tx"}),": ",(0,t.jsx)(s.code,{children:"TransactionRequest"})]}),"\n",(0,t.jsx)(s.p,{children:"Transaction to estimate total gas cost for."}),"\n",(0,t.jsx)(s.h4,{id:"returns-3",children:"Returns"}),"\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.code,{children:"Promise"}),"<",(0,t.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,t.jsx)(s.p,{children:"Estimated total gas cost."}),"\n",(0,t.jsx)(s.h3,{id:"getl1gasprice",children:"getL1GasPrice()"}),"\n",(0,t.jsx)(s.p,{children:"Gets the current L1 (data) gas price."}),"\n",(0,t.jsx)(s.h4,{id:"returns-4",children:"Returns"}),"\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.code,{children:"Promise"}),"<",(0,t.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,t.jsx)(s.p,{children:"Current L1 data gas price in wei."}),"\n",(0,t.jsx)(s.h2,{id:"type-parameters",children:"Type parameters"}),"\n",(0,t.jsxs)(s.p,{children:["\u2022 ",(0,t.jsx)(s.strong,{children:"TProvider"})," ",(0,t.jsx)(s.em,{children:"extends"})," ",(0,t.jsx)(s.code,{children:"Provider"})]}),"\n",(0,t.jsx)(s.h2,{id:"source",children:"Source"}),"\n",(0,t.jsx)(s.p,{children:"src/interfaces/l2-provider.ts:43"})]})}function h(e={}){const{wrapper:s}={...(0,n.R)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},2333:(e,s,r)=>{r.d(s,{R:()=>a,x:()=>d});var t=r(9474);const n={},i=t.createContext(n);function a(e){const s=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function d(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:a(e.components),t.createElement(i.Provider,{value:s},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[4788],{6821:(e,s,r)=>{r.r(s),r.d(s,{assets:()=>o,contentTitle:()=>a,default:()=>h,frontMatter:()=>i,metadata:()=>d,toc:()=>l});var t=r(6070),n=r(1582);const i={},a="Type alias: L2Provider<TProvider>",d={id:"build-on-morph/sdk/type-aliases/L2Provider",title:"L2Provider",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/type-aliases/L2Provider.md",sourceDirName:"build-on-morph/sdk/type-aliases",slug:"/build-on-morph/sdk/type-aliases/L2Provider",permalink:"/docs/build-on-morph/sdk/type-aliases/L2Provider",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/type-aliases/L2Provider.md",tags:[],version:"current",frontMatter:{}},o={},l=[{value:"Type declaration",id:"type-declaration",level:2},{value:"_isL2Provider",id:"_isl2provider",level:3},{value:"estimateL1Gas()",id:"estimatel1gas",level:3},{value:"Parameters",id:"parameters",level:4},{value:"Returns",id:"returns",level:4},{value:"estimateL1GasCost()",id:"estimatel1gascost",level:3},{value:"Parameters",id:"parameters-1",level:4},{value:"Returns",id:"returns-1",level:4},{value:"estimateL2GasCost()",id:"estimatel2gascost",level:3},{value:"Parameters",id:"parameters-2",level:4},{value:"Returns",id:"returns-2",level:4},{value:"estimateTotalGasCost()",id:"estimatetotalgascost",level:3},{value:"Parameters",id:"parameters-3",level:4},{value:"Returns",id:"returns-3",level:4},{value:"getL1GasPrice()",id:"getl1gasprice",level:3},{value:"Returns",id:"returns-4",level:4},{value:"Type parameters",id:"type-parameters",level:2},{value:"Source",id:"source",level:2}];function c(e){const s={a:"a",blockquote:"blockquote",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",p:"p",strong:"strong",...(0,n.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,t.jsx)(s.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,t.jsx)(s.strong,{children:"Docs"})]}),"\n",(0,t.jsx)(s.hr,{}),"\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / L2Provider"]}),"\n",(0,t.jsx)(s.h1,{id:"type-alias-l2providertprovider",children:"Type alias: L2Provider<TProvider>"}),"\n",(0,t.jsxs)(s.blockquote,{children:["\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.strong,{children:"L2Provider"}),"<",(0,t.jsx)(s.code,{children:"TProvider"}),">: ",(0,t.jsx)(s.code,{children:"TProvider"})," & ",(0,t.jsx)(s.code,{children:"object"})]}),"\n"]}),"\n",(0,t.jsx)(s.p,{children:"Represents an extended version of an normal ethers Provider that returns additional L2 info and\nhas special functions for L2-specific interactions."}),"\n",(0,t.jsx)(s.h2,{id:"type-declaration",children:"Type declaration"}),"\n",(0,t.jsx)(s.h3,{id:"_isl2provider",children:"_isL2Provider"}),"\n",(0,t.jsxs)(s.blockquote,{children:["\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.strong,{children:"_isL2Provider"}),": ",(0,t.jsx)(s.code,{children:"true"})]}),"\n"]}),"\n",(0,t.jsx)(s.p,{children:"Internal property to determine if a provider is a L2Provider\nYou are likely looking for the isL2Provider function"}),"\n",(0,t.jsx)(s.h3,{id:"estimatel1gas",children:"estimateL1Gas()"}),"\n",(0,t.jsx)(s.p,{children:"Estimates the L1 (data) gas required for a transaction."}),"\n",(0,t.jsx)(s.h4,{id:"parameters",children:"Parameters"}),"\n",(0,t.jsxs)(s.p,{children:["\u2022 ",(0,t.jsx)(s.strong,{children:"tx"}),": ",(0,t.jsx)(s.code,{children:"TransactionRequest"})]}),"\n",(0,t.jsx)(s.p,{children:"Transaction to estimate L1 gas for."}),"\n",(0,t.jsx)(s.h4,{id:"returns",children:"Returns"}),"\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.code,{children:"Promise"}),"<",(0,t.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,t.jsx)(s.p,{children:"Estimated L1 gas."}),"\n",(0,t.jsx)(s.h3,{id:"estimatel1gascost",children:"estimateL1GasCost()"}),"\n",(0,t.jsx)(s.p,{children:"Estimates the L1 (data) gas cost for a transaction in wei by multiplying the estimated L1 gas\ncost by the current L1 gas price."}),"\n",(0,t.jsx)(s.h4,{id:"parameters-1",children:"Parameters"}),"\n",(0,t.jsxs)(s.p,{children:["\u2022 ",(0,t.jsx)(s.strong,{children:"tx"}),": ",(0,t.jsx)(s.code,{children:"TransactionRequest"})]}),"\n",(0,t.jsx)(s.p,{children:"Transaction to estimate L1 gas cost for."}),"\n",(0,t.jsx)(s.h4,{id:"returns-1",children:"Returns"}),"\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.code,{children:"Promise"}),"<",(0,t.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,t.jsx)(s.p,{children:"Estimated L1 gas cost."}),"\n",(0,t.jsx)(s.h3,{id:"estimatel2gascost",children:"estimateL2GasCost()"}),"\n",(0,t.jsx)(s.p,{children:"Estimates the L2 (execution) gas cost for a transaction in wei by multiplying the estimated L1\ngas cost by the current L2 gas price. This is a simple multiplication of the result of\ngetGasPrice and estimateGas for the given transaction request."}),"\n",(0,t.jsx)(s.h4,{id:"parameters-2",children:"Parameters"}),"\n",(0,t.jsxs)(s.p,{children:["\u2022 ",(0,t.jsx)(s.strong,{children:"tx"}),": ",(0,t.jsx)(s.code,{children:"TransactionRequest"})]}),"\n",(0,t.jsx)(s.p,{children:"Transaction to estimate L2 gas cost for."}),"\n",(0,t.jsx)(s.h4,{id:"returns-2",children:"Returns"}),"\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.code,{children:"Promise"}),"<",(0,t.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,t.jsx)(s.p,{children:"Estimated L2 gas cost."}),"\n",(0,t.jsx)(s.h3,{id:"estimatetotalgascost",children:"estimateTotalGasCost()"}),"\n",(0,t.jsx)(s.p,{children:"Estimates the total gas cost for a transaction in wei by adding the estimated the L1 gas cost\nand the estimated L2 gas cost."}),"\n",(0,t.jsx)(s.h4,{id:"parameters-3",children:"Parameters"}),"\n",(0,t.jsxs)(s.p,{children:["\u2022 ",(0,t.jsx)(s.strong,{children:"tx"}),": ",(0,t.jsx)(s.code,{children:"TransactionRequest"})]}),"\n",(0,t.jsx)(s.p,{children:"Transaction to estimate total gas cost for."}),"\n",(0,t.jsx)(s.h4,{id:"returns-3",children:"Returns"}),"\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.code,{children:"Promise"}),"<",(0,t.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,t.jsx)(s.p,{children:"Estimated total gas cost."}),"\n",(0,t.jsx)(s.h3,{id:"getl1gasprice",children:"getL1GasPrice()"}),"\n",(0,t.jsx)(s.p,{children:"Gets the current L1 (data) gas price."}),"\n",(0,t.jsx)(s.h4,{id:"returns-4",children:"Returns"}),"\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.code,{children:"Promise"}),"<",(0,t.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,t.jsx)(s.p,{children:"Current L1 data gas price in wei."}),"\n",(0,t.jsx)(s.h2,{id:"type-parameters",children:"Type parameters"}),"\n",(0,t.jsxs)(s.p,{children:["\u2022 ",(0,t.jsx)(s.strong,{children:"TProvider"})," ",(0,t.jsx)(s.em,{children:"extends"})," ",(0,t.jsx)(s.code,{children:"Provider"})]}),"\n",(0,t.jsx)(s.h2,{id:"source",children:"Source"}),"\n",(0,t.jsx)(s.p,{children:"src/interfaces/l2-provider.ts:43"})]})}function h(e={}){const{wrapper:s}={...(0,n.R)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},1582:(e,s,r)=>{r.d(s,{R:()=>a,x:()=>d});var t=r(758);const n={},i=t.createContext(n);function a(e){const s=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function d(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:a(e.components),t.createElement(i.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/a5f26d61.4bf1ba1b.js b/build/assets/js/a5f26d61.614e3be4.js similarity index 77% rename from build/assets/js/a5f26d61.4bf1ba1b.js rename to build/assets/js/a5f26d61.614e3be4.js index ecc14de73..89cacf97b 100644 --- a/build/assets/js/a5f26d61.4bf1ba1b.js +++ b/build/assets/js/a5f26d61.614e3be4.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[9344],{5149:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>a,contentTitle:()=>c,default:()=>h,frontMatter:()=>r,metadata:()=>i,toc:()=>d});var o=s(3274),t=s(2333);const r={},c="Type alias: TransactionLike",i={id:"build-on-morph/sdk/type-aliases/TransactionLike",title:"TransactionLike",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/type-aliases/TransactionLike.md",sourceDirName:"build-on-morph/sdk/type-aliases",slug:"/build-on-morph/sdk/type-aliases/TransactionLike",permalink:"/docs/build-on-morph/sdk/type-aliases/TransactionLike",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/type-aliases/TransactionLike.md",tags:[],version:"current",frontMatter:{}},a={},d=[{value:"Source",id:"source",level:2}];function l(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,t.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,o.jsx)(n.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,o.jsx)(n.strong,{children:"Docs"})]}),"\n",(0,o.jsx)(n.hr,{}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / TransactionLike"]}),"\n",(0,o.jsx)(n.h1,{id:"type-alias-transactionlike",children:"Type alias: TransactionLike"}),"\n",(0,o.jsxs)(n.blockquote,{children:["\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.strong,{children:"TransactionLike"}),": ",(0,o.jsx)(n.code,{children:"string"})," | ",(0,o.jsx)(n.code,{children:"TransactionReceipt"})," | ",(0,o.jsx)(n.code,{children:"TransactionResponse"})]}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:"Stuff that can be coerced into a transaction."}),"\n",(0,o.jsx)(n.h2,{id:"source",children:"Source"}),"\n",(0,o.jsx)(n.p,{children:"src/interfaces/types.ts:354"})]})}function h(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},2333:(e,n,s)=>{s.d(n,{R:()=>c,x:()=>i});var o=s(9474);const t={},r=o.createContext(t);function c(e){const n=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:c(e.components),o.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[9344],{6787:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>a,contentTitle:()=>c,default:()=>h,frontMatter:()=>r,metadata:()=>i,toc:()=>d});var o=s(6070),t=s(1582);const r={},c="Type alias: TransactionLike",i={id:"build-on-morph/sdk/type-aliases/TransactionLike",title:"TransactionLike",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/type-aliases/TransactionLike.md",sourceDirName:"build-on-morph/sdk/type-aliases",slug:"/build-on-morph/sdk/type-aliases/TransactionLike",permalink:"/docs/build-on-morph/sdk/type-aliases/TransactionLike",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/type-aliases/TransactionLike.md",tags:[],version:"current",frontMatter:{}},a={},d=[{value:"Source",id:"source",level:2}];function l(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,t.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,o.jsx)(n.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,o.jsx)(n.strong,{children:"Docs"})]}),"\n",(0,o.jsx)(n.hr,{}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / TransactionLike"]}),"\n",(0,o.jsx)(n.h1,{id:"type-alias-transactionlike",children:"Type alias: TransactionLike"}),"\n",(0,o.jsxs)(n.blockquote,{children:["\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.strong,{children:"TransactionLike"}),": ",(0,o.jsx)(n.code,{children:"string"})," | ",(0,o.jsx)(n.code,{children:"TransactionReceipt"})," | ",(0,o.jsx)(n.code,{children:"TransactionResponse"})]}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:"Stuff that can be coerced into a transaction."}),"\n",(0,o.jsx)(n.h2,{id:"source",children:"Source"}),"\n",(0,o.jsx)(n.p,{children:"src/interfaces/types.ts:354"})]})}function h(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},1582:(e,n,s)=>{s.d(n,{R:()=>c,x:()=>i});var o=s(758);const t={},r=o.createContext(t);function c(e){const n=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:c(e.components),o.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/a7bd4aaa.cf41b24b.js b/build/assets/js/a7bd4aaa.cf41b24b.js new file mode 100644 index 000000000..be1f5f600 --- /dev/null +++ b/build/assets/js/a7bd4aaa.cf41b24b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[7098],{5679:(n,e,s)=>{s.r(e),s.d(e,{default:()=>d});s(758);var r=s(926),o=s(3330),t=s(4451),c=s(1977),i=s(7740),u=s(6070);function a(n){const{version:e}=n;return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(i.A,{version:e.version,tag:(0,o.tU)(e.pluginId,e.version)}),(0,u.jsx)(r.be,{children:e.noIndex&&(0,u.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})]})}function l(n){const{version:e,route:s}=n;return(0,u.jsx)(r.e3,{className:e.className,children:(0,u.jsx)(t.n,{version:e,children:(0,c.v)(s.routes)})})}function d(n){return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(a,{...n}),(0,u.jsx)(l,{...n})]})}}}]); \ No newline at end of file diff --git a/build/assets/js/a7bd4aaa.f5612402.js b/build/assets/js/a7bd4aaa.f5612402.js deleted file mode 100644 index c4ab278d8..000000000 --- a/build/assets/js/a7bd4aaa.f5612402.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[7098],{7220:(n,e,s)=>{s.r(e),s.d(e,{default:()=>d});s(9474);var r=s(961),o=s(7928),t=s(2569),c=s(7221),i=s(7047),u=s(3274);function a(n){const{version:e}=n;return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(i.A,{version:e.version,tag:(0,o.tU)(e.pluginId,e.version)}),(0,u.jsx)(r.be,{children:e.noIndex&&(0,u.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})]})}function l(n){const{version:e,route:s}=n;return(0,u.jsx)(r.e3,{className:e.className,children:(0,u.jsx)(t.n,{version:e,children:(0,c.v)(s.routes)})})}function d(n){return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(a,{...n}),(0,u.jsx)(l,{...n})]})}}}]); \ No newline at end of file diff --git a/build/assets/js/a94703ab.03e3ac63.js b/build/assets/js/a94703ab.03e3ac63.js new file mode 100644 index 000000000..7d70aed87 --- /dev/null +++ b/build/assets/js/a94703ab.03e3ac63.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[9048],{8652:(e,t,n)=>{n.r(t),n.d(t,{default:()=>pe});var a=n(758),o=n(3526),i=n(926),s=n(7998),l=n(3745),r=n(9387),c=n(7260),d=n(1773),u=n(9691);const m={backToTopButton:"backToTopButton_N9Ya",backToTopButtonShow:"backToTopButtonShow_Rn7A"};var b=n(6070);function h(){const{shown:e,scrollToTop:t}=function(e){let{threshold:t}=e;const[n,o]=(0,a.useState)(!1),i=(0,a.useRef)(!1),{startScroll:s,cancelScroll:l}=(0,d.gk)();return(0,d.Mq)(((e,n)=>{let{scrollY:a}=e;const s=n?.scrollY;s&&(i.current?i.current=!1:a>=s?(l(),o(!1)):a<t?o(!1):a+window.innerHeight<document.documentElement.scrollHeight&&o(!0))})),(0,u.$)((e=>{e.location.hash&&(i.current=!0,o(!1))})),{shown:n,scrollToTop:()=>s(0)}}({threshold:300});return(0,b.jsx)("button",{"aria-label":(0,c.T)({id:"theme.BackToTopButton.buttonAriaLabel",message:"Scroll back to top",description:"The ARIA label for the back to top button"}),className:(0,o.A)("clean-btn",s.G.common.backToTopButton,m.backToTopButton,e&&m.backToTopButtonShow),type:"button",onClick:t})}var p=n(3542),x=n(5557),f=n(8080),j=n(5349),_=n(7350);function v(e){return(0,b.jsx)("svg",{width:"20",height:"20","aria-hidden":"true",...e,children:(0,b.jsxs)("g",{fill:"#7a7a7a",children:[(0,b.jsx)("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"}),(0,b.jsx)("path",{d:"M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"})]})})}const g="collapseSidebarButton_ZpCQ",A="collapseSidebarButtonIcon_RA6k";function C(e){let{onClick:t}=e;return(0,b.jsx)("button",{type:"button",title:(0,c.T)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,c.T)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,o.A)("button button--secondary button--outline",g),onClick:t,children:(0,b.jsx)(v,{className:A})})}var k=n(746),S=n(3991);const T=Symbol("EmptyContext"),N=a.createContext(T);function I(e){let{children:t}=e;const[n,o]=(0,a.useState)(null),i=(0,a.useMemo)((()=>({expandedItem:n,setExpandedItem:o})),[n]);return(0,b.jsx)(N.Provider,{value:i,children:t})}var y=n(1069),B=n(8492),w=n(6601),L=n(600);function E(e){let{collapsed:t,categoryLabel:n,onClick:a}=e;return(0,b.jsx)("button",{"aria-label":t?(0,c.T)({id:"theme.DocSidebarItem.expandCategoryAriaLabel",message:"Expand sidebar category '{label}'",description:"The ARIA label to expand the sidebar category"},{label:n}):(0,c.T)({id:"theme.DocSidebarItem.collapseCategoryAriaLabel",message:"Collapse sidebar category '{label}'",description:"The ARIA label to collapse the sidebar category"},{label:n}),type:"button",className:"clean-btn menu__caret",onClick:a})}function M(e){let{item:t,onItemClick:n,activePath:i,level:r,index:c,...d}=e;const{items:u,label:m,collapsible:h,className:p,href:x}=t,{docs:{sidebar:{autoCollapseCategories:f}}}=(0,j.p)(),_=function(e){const t=(0,L.A)();return(0,a.useMemo)((()=>e.href&&!e.linkUnlisted?e.href:!t&&e.collapsible?(0,l.Nr)(e):void 0),[e,t])}(t),v=(0,l.w8)(t,i),g=(0,B.ys)(x,i),{collapsed:A,setCollapsed:C}=(0,y.u)({initialState:()=>!!h&&(!v&&t.collapsed)}),{expandedItem:k,setExpandedItem:I}=function(){const e=(0,a.useContext)(N);if(e===T)throw new S.dV("DocSidebarItemsExpandedStateProvider");return e}(),M=function(e){void 0===e&&(e=!A),I(e?null:c),C(e)};return function(e){let{isActive:t,collapsed:n,updateCollapsed:o}=e;const i=(0,S.ZC)(t);(0,a.useEffect)((()=>{t&&!i&&n&&o(!1)}),[t,i,n,o])}({isActive:v,collapsed:A,updateCollapsed:M}),(0,a.useEffect)((()=>{h&&null!=k&&k!==c&&f&&C(!0)}),[h,k,c,C,f]),(0,b.jsxs)("li",{className:(0,o.A)(s.G.docs.docSidebarItemCategory,s.G.docs.docSidebarItemCategoryLevel(r),"menu__list-item",{"menu__list-item--collapsed":A},p),children:[(0,b.jsxs)("div",{className:(0,o.A)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":g}),children:[(0,b.jsx)(w.A,{className:(0,o.A)("menu__link",{"menu__link--sublist":h,"menu__link--sublist-caret":!x&&h,"menu__link--active":v}),onClick:h?e=>{n?.(t),x?M(!1):(e.preventDefault(),M())}:()=>{n?.(t)},"aria-current":g?"page":void 0,"aria-expanded":h?!A:void 0,href:h?_??"#":_,...d,children:m}),x&&h&&(0,b.jsx)(E,{collapsed:A,categoryLabel:m,onClick:e=>{e.preventDefault(),M()}})]}),(0,b.jsx)(y.N,{lazy:!0,as:"ul",className:"menu__list",collapsed:A,children:(0,b.jsx)(V,{items:u,tabIndex:A?-1:0,onItemClick:n,activePath:i,level:r+1})})]})}var H=n(5407),R=n(7550);const G="menuExternalLink_T45N";function P(e){let{item:t,onItemClick:n,activePath:a,level:i,index:r,...c}=e;const{href:d,label:u,className:m,autoAddBaseUrl:h}=t,p=(0,l.w8)(t,a),x=(0,H.A)(d);return(0,b.jsx)("li",{className:(0,o.A)(s.G.docs.docSidebarItemLink,s.G.docs.docSidebarItemLinkLevel(i),"menu__list-item",m),children:(0,b.jsxs)(w.A,{className:(0,o.A)("menu__link",!x&&G,{"menu__link--active":p}),autoAddBaseUrl:h,"aria-current":p?"page":void 0,to:d,...x&&{onClick:n?()=>n(t):void 0},...c,children:[u,!x&&(0,b.jsx)(R.A,{})]})},u)}const W="menuHtmlItem_SHKz";function F(e){let{item:t,level:n,index:a}=e;const{value:i,defaultStyle:l,className:r}=t;return(0,b.jsx)("li",{className:(0,o.A)(s.G.docs.docSidebarItemLink,s.G.docs.docSidebarItemLinkLevel(n),l&&[W,"menu__list-item"],r),dangerouslySetInnerHTML:{__html:i}},a)}function D(e){let{item:t,...n}=e;switch(t.type){case"category":return(0,b.jsx)(M,{item:t,...n});case"html":return(0,b.jsx)(F,{item:t,...n});default:return(0,b.jsx)(P,{item:t,...n})}}function z(e){let{items:t,...n}=e;const a=(0,l.Y)(t,n.activePath);return(0,b.jsx)(I,{children:a.map(((e,t)=>(0,b.jsx)(D,{item:e,index:t,...n},t)))})}const V=(0,a.memo)(z),Y="menu_bObF",q="menuWithAnnouncementBar_LUaF";function U(e){let{path:t,sidebar:n,className:i}=e;const l=function(){const{isActive:e}=(0,k.Mj)(),[t,n]=(0,a.useState)(e);return(0,d.Mq)((t=>{let{scrollY:a}=t;e&&n(0===a)}),[e]),e&&t}();return(0,b.jsx)("nav",{"aria-label":(0,c.T)({id:"theme.docs.sidebar.navAriaLabel",message:"Docs sidebar",description:"The ARIA label for the sidebar navigation"}),className:(0,o.A)("menu thin-scrollbar",Y,l&&q,i),children:(0,b.jsx)("ul",{className:(0,o.A)(s.G.docs.docSidebarMenu,"menu__list"),children:(0,b.jsx)(V,{items:n,activePath:t,level:1})})})}const O="sidebar_qjHj",Q="sidebarWithHideableNavbar_v_84",X="sidebarHidden_fzvn",Z="sidebarLogo_yFma";function K(e){let{path:t,sidebar:n,onCollapse:a,isHidden:i}=e;const{navbar:{hideOnScroll:s},docs:{sidebar:{hideable:l}}}=(0,j.p)();return(0,b.jsxs)("div",{className:(0,o.A)(O,s&&Q,i&&X),children:[s&&(0,b.jsx)(_.A,{tabIndex:-1,className:Z}),(0,b.jsx)(U,{path:t,sidebar:n}),l&&(0,b.jsx)(C,{onClick:a})]})}const $=a.memo(K);var J=n(5955),ee=n(8058);const te=e=>{let{sidebar:t,path:n}=e;const a=(0,ee.M)();return(0,b.jsx)("ul",{className:(0,o.A)(s.G.docs.docSidebarMenu,"menu__list"),children:(0,b.jsx)(V,{items:t,activePath:n,onItemClick:e=>{"category"===e.type&&e.href&&a.toggle(),"link"===e.type&&a.toggle()},level:1})})};function ne(e){return(0,b.jsx)(J.GX,{component:te,props:e})}const ae=a.memo(ne);function oe(e){const t=(0,f.l)(),n="desktop"===t||"ssr"===t,a="mobile"===t;return(0,b.jsxs)(b.Fragment,{children:[n&&(0,b.jsx)($,{...e}),a&&(0,b.jsx)(ae,{...e})]})}const ie={expandButton:"expandButton_E2R3",expandButtonIcon:"expandButtonIcon_XpyI"};function se(e){let{toggleSidebar:t}=e;return(0,b.jsx)("div",{className:ie.expandButton,title:(0,c.T)({id:"theme.docs.sidebar.expandButtonTitle",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),"aria-label":(0,c.T)({id:"theme.docs.sidebar.expandButtonAriaLabel",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),tabIndex:0,role:"button",onKeyDown:t,onClick:t,children:(0,b.jsx)(v,{className:ie.expandButtonIcon})})}const le={docSidebarContainer:"docSidebarContainer_xQ5m",docSidebarContainerHidden:"docSidebarContainerHidden_YfRI",sidebarViewport:"sidebarViewport_mqWZ"};function re(e){let{children:t}=e;const n=(0,r.t)();return(0,b.jsx)(a.Fragment,{children:t},n?.name??"noSidebar")}function ce(e){let{sidebar:t,hiddenSidebarContainer:n,setHiddenSidebarContainer:i}=e;const{pathname:l}=(0,x.zy)(),[r,c]=(0,a.useState)(!1),d=(0,a.useCallback)((()=>{r&&c(!1),!r&&(0,p.O)()&&c(!0),i((e=>!e))}),[i,r]);return(0,b.jsx)("aside",{className:(0,o.A)(s.G.docs.docSidebarContainer,le.docSidebarContainer,n&&le.docSidebarContainerHidden),onTransitionEnd:e=>{e.currentTarget.classList.contains(le.docSidebarContainer)&&n&&c(!0)},children:(0,b.jsx)(re,{children:(0,b.jsxs)("div",{className:(0,o.A)(le.sidebarViewport,r&&le.sidebarViewportHidden),children:[(0,b.jsx)(oe,{sidebar:t,path:l,onCollapse:d,isHidden:r}),r&&(0,b.jsx)(se,{toggleSidebar:d})]})})})}const de={docMainContainer:"docMainContainer_qBbz",docMainContainerEnhanced:"docMainContainerEnhanced_M1IX",docItemWrapperEnhanced:"docItemWrapperEnhanced_HmM2"};function ue(e){let{hiddenSidebarContainer:t,children:n}=e;const a=(0,r.t)();return(0,b.jsx)("main",{className:(0,o.A)(de.docMainContainer,(t||!a)&&de.docMainContainerEnhanced),children:(0,b.jsx)("div",{className:(0,o.A)("container padding-top--md padding-bottom--lg",de.docItemWrapper,t&&de.docItemWrapperEnhanced),children:n})})}const me={docRoot:"docRoot_kbrQ",docsWrapper:"docsWrapper_o7i8"};function be(e){let{children:t}=e;const n=(0,r.t)(),[o,i]=(0,a.useState)(!1);return(0,b.jsxs)("div",{className:me.docsWrapper,children:[(0,b.jsx)(h,{}),(0,b.jsxs)("div",{className:me.docRoot,children:[n&&(0,b.jsx)(ce,{sidebar:n.items,hiddenSidebarContainer:o,setHiddenSidebarContainer:i}),(0,b.jsx)(ue,{hiddenSidebarContainer:o,children:t})]})]})}var he=n(6900);function pe(e){const t=(0,l.B5)(e);if(!t)return(0,b.jsx)(he.A,{});const{docElement:n,sidebarName:a,sidebarItems:c}=t;return(0,b.jsx)(i.e3,{className:(0,o.A)(s.G.page.docsDocPage),children:(0,b.jsx)(r.V,{name:a,items:c,children:(0,b.jsx)(be,{children:n})})})}},6900:(e,t,n)=>{n.d(t,{A:()=>l});n(758);var a=n(3526),o=n(7260),i=n(2406),s=n(6070);function l(e){let{className:t}=e;return(0,s.jsx)("main",{className:(0,a.A)("container margin-vert--xl",t),children:(0,s.jsx)("div",{className:"row",children:(0,s.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,s.jsx)(i.A,{as:"h1",className:"hero__title",children:(0,s.jsx)(o.A,{id:"theme.NotFound.title",description:"The title of the 404 page",children:"Page Not Found"})}),(0,s.jsx)("p",{children:(0,s.jsx)(o.A,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page",children:"We could not find what you were looking for."})}),(0,s.jsx)("p",{children:(0,s.jsx)(o.A,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page",children:"Please contact the owner of the site that linked you to the original URL and let them know their link is broken."})})]})})})}}}]); \ No newline at end of file diff --git a/build/assets/js/a94703ab.bc697f24.js b/build/assets/js/a94703ab.bc697f24.js deleted file mode 100644 index 0ff391d30..000000000 --- a/build/assets/js/a94703ab.bc697f24.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[9048],{5142:(e,t,n)=>{n.r(t),n.d(t,{default:()=>he});var a=n(9474),o=n(8923),i=n(961),s=n(1552),l=n(7830),r=n(9881),c=n(1598),d=n(3839),u=n(7097);const m={backToTopButton:"backToTopButton_Q4cv",backToTopButtonShow:"backToTopButtonShow_k11J"};var h=n(3274);function b(){const{shown:e,scrollToTop:t}=function(e){let{threshold:t}=e;const[n,o]=(0,a.useState)(!1),i=(0,a.useRef)(!1),{startScroll:s,cancelScroll:l}=(0,d.gk)();return(0,d.Mq)(((e,n)=>{let{scrollY:a}=e;const s=n?.scrollY;s&&(i.current?i.current=!1:a>=s?(l(),o(!1)):a<t?o(!1):a+window.innerHeight<document.documentElement.scrollHeight&&o(!0))})),(0,u.$)((e=>{e.location.hash&&(i.current=!0,o(!1))})),{shown:n,scrollToTop:()=>s(0)}}({threshold:300});return(0,h.jsx)("button",{"aria-label":(0,c.T)({id:"theme.BackToTopButton.buttonAriaLabel",message:"Scroll back to top",description:"The ARIA label for the back to top button"}),className:(0,o.A)("clean-btn",s.G.common.backToTopButton,m.backToTopButton,e&&m.backToTopButtonShow),type:"button",onClick:t})}var p=n(5592),x=n(241),f=n(6342),j=n(4359),_=n(9193);function v(e){return(0,h.jsx)("svg",{width:"20",height:"20","aria-hidden":"true",...e,children:(0,h.jsxs)("g",{fill:"#7a7a7a",children:[(0,h.jsx)("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"}),(0,h.jsx)("path",{d:"M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"})]})})}const A={collapseSidebarButton:"collapseSidebarButton_sDws",collapseSidebarButtonIcon:"collapseSidebarButtonIcon_rxJT"};function g(e){let{onClick:t}=e;return(0,h.jsx)("button",{type:"button",title:(0,c.T)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,c.T)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,o.A)("button button--secondary button--outline",A.collapseSidebarButton),onClick:t,children:(0,h.jsx)(v,{className:A.collapseSidebarButtonIcon})})}var C=n(7760),k=n(5461);const S=Symbol("EmptyContext"),T=a.createContext(S);function N(e){let{children:t}=e;const[n,o]=(0,a.useState)(null),i=(0,a.useMemo)((()=>({expandedItem:n,setExpandedItem:o})),[n]);return(0,h.jsx)(T.Provider,{value:i,children:t})}var I=n(3635),B=n(8098),y=n(8379),w=n(170);function L(e){let{collapsed:t,categoryLabel:n,onClick:a}=e;return(0,h.jsx)("button",{"aria-label":t?(0,c.T)({id:"theme.DocSidebarItem.expandCategoryAriaLabel",message:"Expand sidebar category '{label}'",description:"The ARIA label to expand the sidebar category"},{label:n}):(0,c.T)({id:"theme.DocSidebarItem.collapseCategoryAriaLabel",message:"Collapse sidebar category '{label}'",description:"The ARIA label to collapse the sidebar category"},{label:n}),type:"button",className:"clean-btn menu__caret",onClick:a})}function E(e){let{item:t,onItemClick:n,activePath:i,level:r,index:c,...d}=e;const{items:u,label:m,collapsible:b,className:p,href:x}=t,{docs:{sidebar:{autoCollapseCategories:f}}}=(0,j.p)(),_=function(e){const t=(0,w.A)();return(0,a.useMemo)((()=>e.href&&!e.linkUnlisted?e.href:!t&&e.collapsible?(0,l.Nr)(e):void 0),[e,t])}(t),v=(0,l.w8)(t,i),A=(0,B.ys)(x,i),{collapsed:g,setCollapsed:C}=(0,I.u)({initialState:()=>!!b&&(!v&&t.collapsed)}),{expandedItem:N,setExpandedItem:E}=function(){const e=(0,a.useContext)(T);if(e===S)throw new k.dV("DocSidebarItemsExpandedStateProvider");return e}(),M=function(e){void 0===e&&(e=!g),E(e?null:c),C(e)};return function(e){let{isActive:t,collapsed:n,updateCollapsed:o}=e;const i=(0,k.ZC)(t);(0,a.useEffect)((()=>{t&&!i&&n&&o(!1)}),[t,i,n,o])}({isActive:v,collapsed:g,updateCollapsed:M}),(0,a.useEffect)((()=>{b&&null!=N&&N!==c&&f&&C(!0)}),[b,N,c,C,f]),(0,h.jsxs)("li",{className:(0,o.A)(s.G.docs.docSidebarItemCategory,s.G.docs.docSidebarItemCategoryLevel(r),"menu__list-item",{"menu__list-item--collapsed":g},p),children:[(0,h.jsxs)("div",{className:(0,o.A)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":A}),children:[(0,h.jsx)(y.A,{className:(0,o.A)("menu__link",{"menu__link--sublist":b,"menu__link--sublist-caret":!x&&b,"menu__link--active":v}),onClick:b?e=>{n?.(t),x?M(!1):(e.preventDefault(),M())}:()=>{n?.(t)},"aria-current":A?"page":void 0,"aria-expanded":b?!g:void 0,href:b?_??"#":_,...d,children:m}),x&&b&&(0,h.jsx)(L,{collapsed:g,categoryLabel:m,onClick:e=>{e.preventDefault(),M()}})]}),(0,h.jsx)(I.N,{lazy:!0,as:"ul",className:"menu__list",collapsed:g,children:(0,h.jsx)(F,{items:u,tabIndex:g?-1:0,onItemClick:n,activePath:i,level:r+1})})]})}var M=n(2473),H=n(6350);const G={menuExternalLink:"menuExternalLink_JiRe"};function R(e){let{item:t,onItemClick:n,activePath:a,level:i,index:r,...c}=e;const{href:d,label:u,className:m,autoAddBaseUrl:b}=t,p=(0,l.w8)(t,a),x=(0,M.A)(d);return(0,h.jsx)("li",{className:(0,o.A)(s.G.docs.docSidebarItemLink,s.G.docs.docSidebarItemLinkLevel(i),"menu__list-item",m),children:(0,h.jsxs)(y.A,{className:(0,o.A)("menu__link",!x&&G.menuExternalLink,{"menu__link--active":p}),autoAddBaseUrl:b,"aria-current":p?"page":void 0,to:d,...x&&{onClick:n?()=>n(t):void 0},...c,children:[u,!x&&(0,h.jsx)(H.A,{})]})},u)}const W={menuHtmlItem:"menuHtmlItem_XrYY"};function P(e){let{item:t,level:n,index:a}=e;const{value:i,defaultStyle:l,className:r}=t;return(0,h.jsx)("li",{className:(0,o.A)(s.G.docs.docSidebarItemLink,s.G.docs.docSidebarItemLinkLevel(n),l&&[W.menuHtmlItem,"menu__list-item"],r),dangerouslySetInnerHTML:{__html:i}},a)}function D(e){let{item:t,...n}=e;switch(t.type){case"category":return(0,h.jsx)(E,{item:t,...n});case"html":return(0,h.jsx)(P,{item:t,...n});default:return(0,h.jsx)(R,{item:t,...n})}}function V(e){let{items:t,...n}=e;const a=(0,l.Y)(t,n.activePath);return(0,h.jsx)(N,{children:a.map(((e,t)=>(0,h.jsx)(D,{item:e,index:t,...n},t)))})}const F=(0,a.memo)(V),Y={menu:"menu_Mh0c",menuWithAnnouncementBar:"menuWithAnnouncementBar_Amec"};function z(e){let{path:t,sidebar:n,className:i}=e;const l=function(){const{isActive:e}=(0,C.Mj)(),[t,n]=(0,a.useState)(e);return(0,d.Mq)((t=>{let{scrollY:a}=t;e&&n(0===a)}),[e]),e&&t}();return(0,h.jsx)("nav",{"aria-label":(0,c.T)({id:"theme.docs.sidebar.navAriaLabel",message:"Docs sidebar",description:"The ARIA label for the sidebar navigation"}),className:(0,o.A)("menu thin-scrollbar",Y.menu,l&&Y.menuWithAnnouncementBar,i),children:(0,h.jsx)("ul",{className:(0,o.A)(s.G.docs.docSidebarMenu,"menu__list"),children:(0,h.jsx)(F,{items:n,activePath:t,level:1})})})}const U="sidebar_NCyT",X="sidebarWithHideableNavbar_Do0s",J="sidebarHidden_o49B",O="sidebarLogo__8Im";function q(e){let{path:t,sidebar:n,onCollapse:a,isHidden:i}=e;const{navbar:{hideOnScroll:s},docs:{sidebar:{hideable:l}}}=(0,j.p)();return(0,h.jsxs)("div",{className:(0,o.A)(U,s&&X,i&&J),children:[s&&(0,h.jsx)(_.A,{tabIndex:-1,className:O}),(0,h.jsx)(z,{path:t,sidebar:n}),l&&(0,h.jsx)(g,{onClick:a})]})}const Z=a.memo(q);var K=n(3725),Q=n(8340);const $=e=>{let{sidebar:t,path:n}=e;const a=(0,Q.M)();return(0,h.jsx)("ul",{className:(0,o.A)(s.G.docs.docSidebarMenu,"menu__list"),children:(0,h.jsx)(F,{items:t,activePath:n,onItemClick:e=>{"category"===e.type&&e.href&&a.toggle(),"link"===e.type&&a.toggle()},level:1})})};function ee(e){return(0,h.jsx)(K.GX,{component:$,props:e})}const te=a.memo(ee);function ne(e){const t=(0,f.l)(),n="desktop"===t||"ssr"===t,a="mobile"===t;return(0,h.jsxs)(h.Fragment,{children:[n&&(0,h.jsx)(Z,{...e}),a&&(0,h.jsx)(te,{...e})]})}const ae={expandButton:"expandButton_wG66",expandButtonIcon:"expandButtonIcon__WPc"};function oe(e){let{toggleSidebar:t}=e;return(0,h.jsx)("div",{className:ae.expandButton,title:(0,c.T)({id:"theme.docs.sidebar.expandButtonTitle",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),"aria-label":(0,c.T)({id:"theme.docs.sidebar.expandButtonAriaLabel",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),tabIndex:0,role:"button",onKeyDown:t,onClick:t,children:(0,h.jsx)(v,{className:ae.expandButtonIcon})})}const ie={docSidebarContainer:"docSidebarContainer_yZX9",docSidebarContainerHidden:"docSidebarContainerHidden_D9jl",sidebarViewport:"sidebarViewport_sl_0"};function se(e){let{children:t}=e;const n=(0,r.t)();return(0,h.jsx)(a.Fragment,{children:t},n?.name??"noSidebar")}function le(e){let{sidebar:t,hiddenSidebarContainer:n,setHiddenSidebarContainer:i}=e;const{pathname:l}=(0,x.zy)(),[r,c]=(0,a.useState)(!1),d=(0,a.useCallback)((()=>{r&&c(!1),!r&&(0,p.O)()&&c(!0),i((e=>!e))}),[i,r]);return(0,h.jsx)("aside",{className:(0,o.A)(s.G.docs.docSidebarContainer,ie.docSidebarContainer,n&&ie.docSidebarContainerHidden),onTransitionEnd:e=>{e.currentTarget.classList.contains(ie.docSidebarContainer)&&n&&c(!0)},children:(0,h.jsx)(se,{children:(0,h.jsxs)("div",{className:(0,o.A)(ie.sidebarViewport,r&&ie.sidebarViewportHidden),children:[(0,h.jsx)(ne,{sidebar:t,path:l,onCollapse:d,isHidden:r}),r&&(0,h.jsx)(oe,{toggleSidebar:d})]})})})}const re={docMainContainer:"docMainContainer_tpdO",docMainContainerEnhanced:"docMainContainerEnhanced_u9if",docItemWrapperEnhanced:"docItemWrapperEnhanced_RMEV"};function ce(e){let{hiddenSidebarContainer:t,children:n}=e;const a=(0,r.t)();return(0,h.jsx)("main",{className:(0,o.A)(re.docMainContainer,(t||!a)&&re.docMainContainerEnhanced),children:(0,h.jsx)("div",{className:(0,o.A)("container padding-top--md padding-bottom--lg",re.docItemWrapper,t&&re.docItemWrapperEnhanced),children:n})})}const de={docRoot:"docRoot_hd24",docsWrapper:"docsWrapper_sXuj"};function ue(e){let{children:t}=e;const n=(0,r.t)(),[o,i]=(0,a.useState)(!1);return(0,h.jsxs)("div",{className:de.docsWrapper,children:[(0,h.jsx)(b,{}),(0,h.jsxs)("div",{className:de.docRoot,children:[n&&(0,h.jsx)(le,{sidebar:n.items,hiddenSidebarContainer:o,setHiddenSidebarContainer:i}),(0,h.jsx)(ce,{hiddenSidebarContainer:o,children:t})]})]})}var me=n(1203);function he(e){const t=(0,l.B5)(e);if(!t)return(0,h.jsx)(me.A,{});const{docElement:n,sidebarName:a,sidebarItems:c}=t;return(0,h.jsx)(i.e3,{className:(0,o.A)(s.G.page.docsDocPage),children:(0,h.jsx)(r.V,{name:a,items:c,children:(0,h.jsx)(ue,{children:n})})})}},1203:(e,t,n)=>{n.d(t,{A:()=>l});n(9474);var a=n(8923),o=n(1598),i=n(9382),s=n(3274);function l(e){let{className:t}=e;return(0,s.jsx)("main",{className:(0,a.A)("container margin-vert--xl",t),children:(0,s.jsx)("div",{className:"row",children:(0,s.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,s.jsx)(i.A,{as:"h1",className:"hero__title",children:(0,s.jsx)(o.A,{id:"theme.NotFound.title",description:"The title of the 404 page",children:"Page Not Found"})}),(0,s.jsx)("p",{children:(0,s.jsx)(o.A,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page",children:"We could not find what you were looking for."})}),(0,s.jsx)("p",{children:(0,s.jsx)(o.A,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page",children:"Please contact the owner of the site that linked you to the original URL and let them know their link is broken."})})]})})})}}}]); \ No newline at end of file diff --git a/build/assets/js/ad8d1448.de8beca8.js b/build/assets/js/ad8d1448.de8beca8.js deleted file mode 100644 index e0169e3be..000000000 --- a/build/assets/js/ad8d1448.de8beca8.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[5991],{3042:(e,i,t)=>{t.r(i),t.d(i,{assets:()=>c,contentTitle:()=>s,default:()=>d,frontMatter:()=>o,metadata:()=>a,toc:()=>l});var n=t(3274),r=t(2333);const o={title:"Morph's Architecture",lang:"en-US",keywords:["morph","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},s=void 0,a={id:"about-morph/morphs-architecture",title:"Morph's Architecture",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/about-morph/4-morphs-architecture.md",sourceDirName:"about-morph",slug:"/about-morph/morphs-architecture",permalink:"/docs/about-morph/morphs-architecture",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/about-morph/4-morphs-architecture.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{title:"Morph's Architecture",lang:"en-US",keywords:["morph","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"The Technology Behind Morph",permalink:"/docs/about-morph/the-technology-behind-morph"},next:{title:"Morph's Vision and Mission",permalink:"/docs/about-morph/morphs-vision-and-mission"}},c={},l=[{value:"The Modular Approach in Layer 2",id:"the-modular-approach-in-layer-2",level:2},{value:"Independent yet Collaborative Functions",id:"independent-yet-collaborative-functions",level:2},{value:"Diverse Roles",id:"diverse-roles",level:2}];function h(e){const i={a:"a",admonition:"admonition",h2:"h2",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(i.admonition,{type:"tip",children:(0,n.jsx)(i.p,{children:'This overview offers a concise introduction to Morph\u2019s rollup technology stack. For an in-depth understanding, please refer to the "How Morph Works" section of our documentation.'})}),"\n",(0,n.jsx)(i.p,{children:(0,n.jsx)(i.img,{alt:"Archi",src:t(321).A+"",width:"3840",height:"2160"})}),"\n",(0,n.jsx)(i.h2,{id:"the-modular-approach-in-layer-2",children:"The Modular Approach in Layer 2"}),"\n",(0,n.jsx)(i.p,{children:"Traditionally, the concept of modularity has been applied to Layer 1 blockchains, segmenting them into distinct layers. At Morph, we've extended this modular philosophy to Layer 2, building our platform around this principle."}),"\n",(0,n.jsx)(i.p,{children:"In a typical Layer 1 blockchain, the architecture consists of four major layers:"}),"\n",(0,n.jsxs)(i.ul,{children:["\n",(0,n.jsx)(i.li,{children:"Consensus: The mechanism through which network agreement is achieved."}),"\n",(0,n.jsx)(i.li,{children:"Execution: Where transaction processing and smart contract operations occur."}),"\n",(0,n.jsx)(i.li,{children:"Settlement: The process of finalizing transactions."}),"\n",(0,n.jsx)(i.li,{children:"Data Availability: Ensuring that necessary information is accessible for validation."}),"\n"]}),"\n",(0,n.jsx)(i.p,{children:"In the context of Layer 2, Morph reinterprets these layers with unique functionalities:"}),"\n",(0,n.jsxs)(i.ul,{children:["\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.strong,{children:"Consensus and Execution via Decentralized Sequencer Network"}),": At Morph, these functions are integrated and handled by our decentralized sequencer network. Sequencers orchestrate, process, and achieve consensus on Layer 2 transactions, forming the primary interface for user interactions."]}),"\n"]}),"\n",(0,n.jsx)(i.p,{children:(0,n.jsx)(i.img,{alt:"Archi",src:t(6868).A+"",width:"3840",height:"2160"})}),"\n",(0,n.jsxs)(i.ul,{children:["\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.strong,{children:"Settlement with Optimistic zkEVM"}),": Settlement in Morph refers to the finalization of Layer 2 transactions at the Ethereum level. It involves the crucial step of validating Layer 2 states. Morph employs the optimistic zkEVM for this purpose, a hybrid approach blending the best of optimistic rollups and zk-rollups. Layer 2 states will be eventually finalized by a significantly shorter challenge period or if gets challenged, a corresponding zk-proof."]}),"\n"]}),"\n",(0,n.jsx)(i.p,{children:(0,n.jsx)(i.img,{alt:"Archi",src:t(2406).A+"",width:"1920",height:"1080"})}),"\n",(0,n.jsxs)(i.ul,{children:["\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.strong,{children:"Data Availability through 'Rollup' Process"}),": This entails transferring essential Layer 2 data to Ethereum. In Morph, this is achieved through the 'Rollup' process, where a batch submitter compiles blocks into batches and submits them as Layer 1 transactions on Ethereum."]}),"\n"]}),"\n",(0,n.jsx)(i.p,{children:(0,n.jsx)(i.img,{alt:"Archi",src:t(3140).A+"",width:"1920",height:"1080"})}),"\n",(0,n.jsx)(i.h2,{id:"independent-yet-collaborative-functions",children:"Independent yet Collaborative Functions"}),"\n",(0,n.jsx)(i.p,{children:"Each of these major functions operates independently, facilitating asynchronous tasks and switchable implementations:"}),"\n",(0,n.jsxs)(i.ol,{children:["\n",(0,n.jsx)(i.li,{children:"Sequencer Network: Executes Layer 2 transactions and updates local state."}),"\n",(0,n.jsx)(i.li,{children:"Rollup Module: Transforms Layer 2 blocks into batches for submission to Layer 1."}),"\n",(0,n.jsx)(i.li,{children:"State Verification: Utilizes Layer 1 security to verify Layer 2 states under the optimistic zkEVM rules."}),"\n"]}),"\n",(0,n.jsx)(i.p,{children:"This modular architecture enhances flexibility, adaptability, and composability within the Morph ecosystem."}),"\n",(0,n.jsx)(i.h2,{id:"diverse-roles",children:"Diverse Roles"}),"\n",(0,n.jsx)(i.p,{children:"Morph\u2019s architecture is further defined by five pivotal roles: Sequencers, Validators, Nodes, Provers, and Layer 1 (Ethereum). Each role carries specific responsibilities and utilizes distinct components to fulfill its function, contributing to the seamless operation of the network."}),"\n",(0,n.jsxs)(i.p,{children:["For a deeper understanding of Morph\u2019s architecture, please visit our comprehensive ",(0,n.jsx)(i.a,{href:"/docs/build-on-morph/developer-navigation-page",children:"Developer Docs"}),"."]})]})}function d(e={}){const{wrapper:i}={...(0,r.R)(),...e.components};return i?(0,n.jsx)(i,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},321:(e,i,t)=>{t.d(i,{A:()=>n});const n=t.p+"assets/images/archi-d41d5b2f09000115cef0dfea3705b7aa.png"},3140:(e,i,t)=>{t.d(i,{A:()=>n});const n=t.p+"assets/images/rollup-768caf2d310d19ce9909d718badd44e5.png"},2406:(e,i,t)=>{t.d(i,{A:()=>n});const n=t.p+"assets/images/opzk-9ae9b91f62e5e1b9e4771ee2e441c2ba.png"},6868:(e,i,t)=>{t.d(i,{A:()=>n});const n=t.p+"assets/images/seq1-e90d0e983252714740968a8aaaca0dd8.png"},2333:(e,i,t)=>{t.d(i,{R:()=>s,x:()=>a});var n=t(9474);const r={},o=n.createContext(r);function s(e){const i=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function a(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),n.createElement(o.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/ad8d1448.e3e0b916.js b/build/assets/js/ad8d1448.e3e0b916.js new file mode 100644 index 000000000..e1b2e00e8 --- /dev/null +++ b/build/assets/js/ad8d1448.e3e0b916.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[5991],{6540:(e,i,t)=>{t.r(i),t.d(i,{assets:()=>c,contentTitle:()=>s,default:()=>d,frontMatter:()=>o,metadata:()=>a,toc:()=>l});var r=t(6070),n=t(1582);const o={title:"Morph's Architecture",lang:"en-US",keywords:["morph","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},s=void 0,a={id:"about-morph/morphs-architecture",title:"Morph's Architecture",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/about-morph/4-morphs-architecture.md",sourceDirName:"about-morph",slug:"/about-morph/morphs-architecture",permalink:"/docs/about-morph/morphs-architecture",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/about-morph/4-morphs-architecture.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{title:"Morph's Architecture",lang:"en-US",keywords:["morph","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"The Technology Behind Morph",permalink:"/docs/about-morph/the-technology-behind-morph"},next:{title:"Morph's Vision and Mission",permalink:"/docs/about-morph/morphs-vision-and-mission"}},c={},l=[{value:"The Modular Approach in Layer 2",id:"the-modular-approach-in-layer-2",level:2},{value:"Independent yet Collaborative Functions",id:"independent-yet-collaborative-functions",level:2},{value:"Diverse Roles",id:"diverse-roles",level:2},{value:"Safety and Security",id:"safety-and-security",level:2},{value:"Open-Source Codebase:",id:"open-source-codebase",level:3},{value:"Sherlock Open-Source Audit Report:",id:"sherlock-open-source-audit-report",level:3},{value:"Trail of Bits Audit Report:",id:"trail-of-bits-audit-report",level:3},{value:"Audit Scope:",id:"audit-scope",level:3}];function h(e){const i={a:"a",admonition:"admonition",h2:"h2",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,n.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.admonition,{type:"tip",children:(0,r.jsx)(i.p,{children:'This overview offers a concise introduction to Morph\u2019s rollup technology stack. For an in-depth understanding, please refer to the "How Morph Works" section of our documentation.'})}),"\n",(0,r.jsx)(i.p,{children:(0,r.jsx)(i.img,{alt:"Archi",src:t(7789).A+"",width:"3840",height:"2160"})}),"\n",(0,r.jsx)(i.h2,{id:"the-modular-approach-in-layer-2",children:"The Modular Approach in Layer 2"}),"\n",(0,r.jsx)(i.p,{children:"Traditionally, the concept of modularity has been applied to Layer 1 blockchains, segmenting them into distinct layers. At Morph, we've extended this modular philosophy to Layer 2, building our platform around this principle."}),"\n",(0,r.jsx)(i.p,{children:"In a typical Layer 1 blockchain, the architecture consists of four major layers:"}),"\n",(0,r.jsxs)(i.ul,{children:["\n",(0,r.jsx)(i.li,{children:"Consensus: The mechanism through which network agreement is achieved."}),"\n",(0,r.jsx)(i.li,{children:"Execution: Where transaction processing and smart contract operations occur."}),"\n",(0,r.jsx)(i.li,{children:"Settlement: The process of finalizing transactions."}),"\n",(0,r.jsx)(i.li,{children:"Data Availability: Ensuring that necessary information is accessible for validation."}),"\n"]}),"\n",(0,r.jsx)(i.p,{children:"In the context of Layer 2, Morph reinterprets these layers with unique functionalities:"}),"\n",(0,r.jsxs)(i.ul,{children:["\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.strong,{children:"Consensus and Execution via Decentralized Sequencer Network"}),": At Morph, these functions are integrated and handled by our decentralized sequencer network. Sequencers orchestrate, process, and achieve consensus on Layer 2 transactions, forming the primary interface for user interactions."]}),"\n"]}),"\n",(0,r.jsx)(i.p,{children:(0,r.jsx)(i.img,{alt:"Archi",src:t(5928).A+"",width:"3840",height:"2160"})}),"\n",(0,r.jsxs)(i.ul,{children:["\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.strong,{children:"Settlement with Optimistic zkEVM"}),": Settlement in Morph refers to the finalization of Layer 2 transactions at the Ethereum level. It involves the crucial step of validating Layer 2 states. Morph employs the optimistic zkEVM for this purpose, a hybrid approach blending the best of optimistic rollups and zk-rollups. Layer 2 states will be eventually finalized by a significantly shorter challenge period or if gets challenged, a corresponding zk-proof."]}),"\n"]}),"\n",(0,r.jsx)(i.p,{children:(0,r.jsx)(i.img,{alt:"Archi",src:t(8890).A+"",width:"1920",height:"1080"})}),"\n",(0,r.jsxs)(i.ul,{children:["\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.strong,{children:"Data Availability through 'Rollup' Process"}),": This entails transferring essential Layer 2 data to Ethereum. In Morph, this is achieved through the 'Rollup' process, where a batch submitter compiles blocks into batches and submits them as Layer 1 transactions on Ethereum."]}),"\n"]}),"\n",(0,r.jsx)(i.p,{children:(0,r.jsx)(i.img,{alt:"Archi",src:t(1032).A+"",width:"1920",height:"1080"})}),"\n",(0,r.jsx)(i.h2,{id:"independent-yet-collaborative-functions",children:"Independent yet Collaborative Functions"}),"\n",(0,r.jsx)(i.p,{children:"Each of these major functions operates independently, facilitating asynchronous tasks and switchable implementations:"}),"\n",(0,r.jsxs)(i.ol,{children:["\n",(0,r.jsx)(i.li,{children:"Sequencer Network: Executes Layer 2 transactions and updates local state."}),"\n",(0,r.jsx)(i.li,{children:"Rollup Module: Transforms Layer 2 blocks into batches for submission to Layer 1."}),"\n",(0,r.jsx)(i.li,{children:"State Verification: Utilizes Layer 1 security to verify Layer 2 states under the optimistic zkEVM rules."}),"\n"]}),"\n",(0,r.jsx)(i.p,{children:"This modular architecture enhances flexibility, adaptability, and composability within the Morph ecosystem."}),"\n",(0,r.jsx)(i.h2,{id:"diverse-roles",children:"Diverse Roles"}),"\n",(0,r.jsx)(i.p,{children:"Morph\u2019s architecture is further defined by five pivotal roles: Sequencers, Validators, Nodes, Provers, and Layer 1 (Ethereum). Each role carries specific responsibilities and utilizes distinct components to fulfill its function, contributing to the seamless operation of the network."}),"\n",(0,r.jsxs)(i.p,{children:["For a deeper understanding of Morph\u2019s architecture, please visit our comprehensive ",(0,r.jsx)(i.a,{href:"/docs/build-on-morph/developer-navigation-page",children:"Developer Docs"}),"."]}),"\n",(0,r.jsx)(i.h2,{id:"safety-and-security",children:"Safety and Security"}),"\n",(0,r.jsx)(i.p,{children:"We place the highest priority on security and are committed to providing users with a safe and trustworthy environment. To achieve this, we\u2019ve implemented multiple measures, including making our codebase open-source, engaging leading third-party firms for audits, and continuously improving our systems to uphold the highest standards of transparency and security. Below are some specific efforts we\u2019ve undertaken:"}),"\n",(0,r.jsx)(i.h3,{id:"open-source-codebase",children:"Open-Source Codebase:"}),"\n",(0,r.jsx)(i.p,{children:"We\u2019re proud to make our codebase publicly available, inviting scrutiny and contributions from the community. You can review it at the following links:"}),"\n",(0,r.jsx)(i.p,{children:(0,r.jsx)(i.a,{href:"https://github.com/morph-l2/morph/tree/main/contracts",children:"Morph Contracts"})}),"\n",(0,r.jsx)(i.h3,{id:"sherlock-open-source-audit-report",children:"Sherlock Open-Source Audit Report:"}),"\n",(0,r.jsx)(i.p,{children:"We commissioned a comprehensive security audit from Sherlock, and the results are publicly available. You can view the detailed report here:"}),"\n",(0,r.jsx)(i.p,{children:(0,r.jsx)(i.a,{href:"https://audits.sherlock.xyz/dashboard/9b78b63a3eb0597e7ba60eec251b6888/confirm_issues",children:"Sherlock Open-Source Audit Report"})}),"\n",(0,r.jsx)(i.h3,{id:"trail-of-bits-audit-report",children:"Trail of Bits Audit Report:"}),"\n",(0,r.jsxs)(i.p,{children:["Additionally, we enlisted the renowned Trail of Bits team to conduct an in-depth audit of our codebase, including a review of implemented fixes. The ",(0,r.jsx)(i.a,{href:"https://github.com/morph-l2/audits/blob/main/tob/Morph%20-%20Comprehensive%20Report%20with%20Fix%20Review.pdf",children:"full report"})," is accessible."]}),"\n",(0,r.jsx)(i.h3,{id:"audit-scope",children:"Audit Scope:"}),"\n",(0,r.jsx)(i.p,{children:"The above audit reports cover the entirety of our codebase, including the bridge contract, ensuring that all critical components have undergone rigorous security assessments."}),"\n",(0,r.jsx)(i.p,{children:"We firmly believe that transparency and security are the cornerstones of trust. We will continue to collaborate with the community and professional organizations to elevate our security standards and provide users with peace of mind. If you have any questions or suggestions, feel free to reach out to us at any time!"})]})}function d(e={}){const{wrapper:i}={...(0,n.R)(),...e.components};return i?(0,r.jsx)(i,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},7789:(e,i,t)=>{t.d(i,{A:()=>r});const r=t.p+"assets/images/archi-d41d5b2f09000115cef0dfea3705b7aa.png"},1032:(e,i,t)=>{t.d(i,{A:()=>r});const r=t.p+"assets/images/rollup-768caf2d310d19ce9909d718badd44e5.png"},8890:(e,i,t)=>{t.d(i,{A:()=>r});const r=t.p+"assets/images/opzk-9ae9b91f62e5e1b9e4771ee2e441c2ba.png"},5928:(e,i,t)=>{t.d(i,{A:()=>r});const r=t.p+"assets/images/seq1-e90d0e983252714740968a8aaaca0dd8.png"},1582:(e,i,t)=>{t.d(i,{R:()=>s,x:()=>a});var r=t(758);const n={},o=r.createContext(n);function s(e){const i=r.useContext(o);return r.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function a(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:s(e.components),r.createElement(o.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/af91f293.2d77427b.js b/build/assets/js/af91f293.42de5a7a.js similarity index 77% rename from build/assets/js/af91f293.2d77427b.js rename to build/assets/js/af91f293.42de5a7a.js index e4f1cd4fd..2b8c06b1b 100644 --- a/build/assets/js/af91f293.2d77427b.js +++ b/build/assets/js/af91f293.42de5a7a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[2708],{2316:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>c,frontMatter:()=>o,metadata:()=>d,toc:()=>a});var n=r(3274),i=r(2333);const o={title:"Verify Your Smart Contracts",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},s=void 0,d={id:"build-on-morph/build-on-morph/verify-your-smart-contracts",title:"Verify Your Smart Contracts",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/build-on-morph/build-on-morph/5-verify-your-smart-contracts.md",sourceDirName:"build-on-morph/build-on-morph",slug:"/build-on-morph/build-on-morph/verify-your-smart-contracts",permalink:"/docs/build-on-morph/build-on-morph/verify-your-smart-contracts",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/build-on-morph/5-verify-your-smart-contracts.md",tags:[],version:"current",sidebarPosition:5,frontMatter:{title:"Verify Your Smart Contracts",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"Deploy Contracts on Morph",permalink:"/docs/build-on-morph/code-examples/deploy-contract-on-morph"},next:{title:"Bridge between Morph and Ethereum",permalink:"/docs/build-on-morph/build-on-morph/bridge-between-morph-and-ethereum"}},l={},a=[{value:"Verify with development framework",id:"verify-with-development-framework",level:2},{value:"Verify with Hardhat",id:"verify-with-hardhat",level:3},{value:"Verify with Foundry",id:"verify-with-foundry",level:3},{value:"Verify with Morph explorer frontend",id:"verify-with-morph-explorer-frontend",level:2},{value:"Method: Solidity (Flattened Sources Code)",id:"method-solidity-flattened-sources-code",level:3},{value:"Frontend:",id:"frontend",level:4},{value:"Flatten",id:"flatten",level:4},{value:"Method: Solidity (Standard JSON Input)",id:"method-solidity-standard-json-input",level:3},{value:"Obtain JSON File",id:"obtain-json-file",level:4},{value:"Method: Solidity (Multi-part files)",id:"method-solidity-multi-part-files",level:3},{value:"Frontend:",id:"frontend-1",level:4},{value:"SOL File Process",id:"sol-file-process",level:4},{value:"Method: Vyper (Contracts)",id:"method-vyper-contracts",level:3},{value:"Frontend:",id:"frontend-2",level:4},{value:"Method: Vyper (Standard Json Input)",id:"method-vyper-standard-json-input",level:3},{value:"Frontend:",id:"frontend-3",level:4},{value:"Method: Vyper (Multi-part files)",id:"method-vyper-multi-part-files",level:3},{value:"Frontend:",id:"frontend-4",level:4},{value:"After Verification",id:"after-verification",level:3}];function h(e){const t={a:"a",code:"code",h2:"h2",h3:"h3",h4:"h4",img:"img",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(t.p,{children:["After deploying your smart contracts, it's crucial to verify your code on our ",(0,n.jsx)(t.a,{href:"https://explorer-holesky.morphl2.io",children:"block explorer"}),". This can be automated using your development framework, such as Hardhat."]}),"\n",(0,n.jsx)(t.h2,{id:"verify-with-development-framework",children:"Verify with development framework"}),"\n",(0,n.jsx)(t.p,{children:"Most smart contract tools have plugins for verifying contracts on Etherscan. Blockscout supports Etherscan's contract verification APIs, making it straightforward to use these tools with the Morph Mainnet & Testnet."}),"\n",(0,n.jsx)(t.h3,{id:"verify-with-hardhat",children:"Verify with Hardhat"}),"\n",(0,n.jsx)(t.p,{children:"To verify your contract through hardhat, you need to add the following Etherscan and Sourcify configs to your hardhat.config.js file:"}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-javascript",children:"module.exports = {\n networks: {\n morph: { ... }\n },\n etherscan: {\n apiKey: {\n morph: 'anything',\n },\n customChains: [\n {\n network: 'morph',\n chainId: 2818,\n urls: {\n apiURL: 'https://explorer-api.morphl2.io/api? ',\n browserURL: 'https://explorer.morphl2.io/',\n },\n },\n ],\n },\n};\n"})}),"\n",(0,n.jsx)(t.h3,{id:"verify-with-foundry",children:"Verify with Foundry"}),"\n",(0,n.jsx)(t.p,{children:"Verification with foundry requires some flags passed to the normal verification script. You can verify using the command below:"}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-bash",children:" forge verify-contract YourContractAddress Counter\\\n --chain 2818 \\\n --verifier-url https://explorer-api.morphl2.io/api? \\\n --verifier blockscout --watch\n"})}),"\n",(0,n.jsx)(t.h2,{id:"verify-with-morph-explorer-frontend",children:"Verify with Morph explorer frontend"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["Visit\uff1a",(0,n.jsx)(t.a,{href:"https://explorer.morphl2.io",children:"Morph block explorer"})]}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:"We currently support 6 different ways to verify your contracts on our block explorer."}),"\n",(0,n.jsx)(t.p,{children:"There are 2 general parameters:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Compiler: Has to be consistent with what you select when deployment."}),"\n",(0,n.jsx)(t.li,{children:"Optimization: Can be ignored if you don't have contract optimization. If you do, it has to be consistent with deployment."}),"\n"]}),"\n",(0,n.jsx)(t.h3,{id:"method-solidity-flattened-sources-code",children:"Method: Solidity (Flattened Sources Code)"}),"\n",(0,n.jsx)(t.h4,{id:"frontend",children:"Frontend:"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"fscs",src:r(2813).A+"",width:"1280",height:"1017"})}),"\n",(0,n.jsx)(t.h4,{id:"flatten",children:"Flatten"}),"\n",(0,n.jsxs)(t.p,{children:["Flatten through ",(0,n.jsx)(t.a,{href:"https://book.getfoundry.sh/reference/forge/forge-flatten?highlight=flatten#forge-flatten",children:"forge command"}),", for example:"]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{children:"forge flatten --output FlattenedL2StandardBridge.sol ./contracts/L2/L2StandardBridge.sol\n"})}),"\n",(0,n.jsx)(t.h3,{id:"method-solidity-standard-json-input",children:"Method: Solidity (Standard JSON Input)"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"sjis1",src:r(9222).A+"",width:"1280",height:"881"})}),"\n",(0,n.jsx)(t.h4,{id:"obtain-json-file",children:"Obtain JSON File"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Can be obtained through solc"}),"\n",(0,n.jsx)(t.li,{children:"Can be obatined through remix compiler"}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"sjis2",src:r(1396).A+"",width:"934",height:"542"})}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"sjis3",src:r(1396).A+"",width:"934",height:"542"})}),"\n",(0,n.jsx)(t.h3,{id:"method-solidity-multi-part-files",children:"Method: Solidity (Multi-part files)"}),"\n",(0,n.jsx)(t.h4,{id:"frontend-1",children:"Frontend:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["You can submit multiple contract file by your own needs\n",(0,n.jsx)(t.img,{alt:"mpfs1",src:r(1986).A+"",width:"1280",height:"779"})]}),"\n"]}),"\n",(0,n.jsx)(t.h4,{id:"sol-file-process",children:"SOL File Process"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["If there is any imported file, it needs to be modified to be referenced by the same level path, and these files must be submitted together.\n",(0,n.jsx)(t.img,{alt:"mpfs2",src:r(490).A+"",width:"1280",height:"594"})]}),"\n"]}),"\n",(0,n.jsx)(t.h3,{id:"method-vyper-contracts",children:"Method: Vyper (Contracts)"}),"\n",(0,n.jsx)(t.h4,{id:"frontend-2",children:"Frontend:"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"cv",src:r(2598).A+"",width:"1280",height:"848"})}),"\n",(0,n.jsx)(t.h3,{id:"method-vyper-standard-json-input",children:"Method: Vyper (Standard Json Input)"}),"\n",(0,n.jsx)(t.h4,{id:"frontend-3",children:"Frontend:"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"sjiv",src:r(7411).A+"",width:"1280",height:"552"})}),"\n",(0,n.jsx)(t.h3,{id:"method-vyper-multi-part-files",children:"Method: Vyper (Multi-part files)"}),"\n",(0,n.jsx)(t.h4,{id:"frontend-4",children:"Frontend:"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"mpfv",src:r(7254).A+"",width:"1280",height:"822"})}),"\n",(0,n.jsx)(t.h3,{id:"after-verification",children:"After Verification"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"avp",src:r(7446).A+"",width:"1280",height:"503"})})]})}function c(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},7446:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/avp-fa162f2180b681e8807908f00d195c43.png"},2598:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/cv-4d3a7c9df0e287432f8b25c935cd1ea3.png"},2813:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/flatsourcesol-41a879112babbd6397b588b2b4e69daa.png"},1986:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/mpfsol-3a7d7ba4b61955208a7221a347c914c3.png"},490:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/mpfsol2-53fcc6c9ea28eb6114b242e08ba8bb1a.png"},7254:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/mpfv-43dad07bd7fd43eb3721dc7611560ac4.png"},9222:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/sjisol1-d065f42e5cb024651428c3f700fc3662.png"},1396:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/sjisol3-71ed80d677f12848aba5fa829f7b6fb2.png"},7411:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/sjiv-2d889a272a34ef1415529bced91d39c2.png"},2333:(e,t,r)=>{r.d(t,{R:()=>s,x:()=>d});var n=r(9474);const i={},o=n.createContext(i);function s(e){const t=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),n.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[2708],{2986:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>c,frontMatter:()=>o,metadata:()=>d,toc:()=>a});var n=r(6070),i=r(1582);const o={title:"Verify Your Smart Contracts",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},s=void 0,d={id:"build-on-morph/build-on-morph/verify-your-smart-contracts",title:"Verify Your Smart Contracts",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/build-on-morph/build-on-morph/5-verify-your-smart-contracts.md",sourceDirName:"build-on-morph/build-on-morph",slug:"/build-on-morph/build-on-morph/verify-your-smart-contracts",permalink:"/docs/build-on-morph/build-on-morph/verify-your-smart-contracts",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/build-on-morph/5-verify-your-smart-contracts.md",tags:[],version:"current",sidebarPosition:5,frontMatter:{title:"Verify Your Smart Contracts",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"Deploy Contracts on Morph",permalink:"/docs/build-on-morph/code-examples/deploy-contract-on-morph"},next:{title:"Bridge between Morph and Ethereum",permalink:"/docs/build-on-morph/build-on-morph/bridge-between-morph-and-ethereum"}},l={},a=[{value:"Verify with development framework",id:"verify-with-development-framework",level:2},{value:"Verify with Hardhat",id:"verify-with-hardhat",level:3},{value:"Verify with Foundry",id:"verify-with-foundry",level:3},{value:"Verify with Morph explorer frontend",id:"verify-with-morph-explorer-frontend",level:2},{value:"Method: Solidity (Flattened Sources Code)",id:"method-solidity-flattened-sources-code",level:3},{value:"Frontend:",id:"frontend",level:4},{value:"Flatten",id:"flatten",level:4},{value:"Method: Solidity (Standard JSON Input)",id:"method-solidity-standard-json-input",level:3},{value:"Obtain JSON File",id:"obtain-json-file",level:4},{value:"Method: Solidity (Multi-part files)",id:"method-solidity-multi-part-files",level:3},{value:"Frontend:",id:"frontend-1",level:4},{value:"SOL File Process",id:"sol-file-process",level:4},{value:"Method: Vyper (Contracts)",id:"method-vyper-contracts",level:3},{value:"Frontend:",id:"frontend-2",level:4},{value:"Method: Vyper (Standard Json Input)",id:"method-vyper-standard-json-input",level:3},{value:"Frontend:",id:"frontend-3",level:4},{value:"Method: Vyper (Multi-part files)",id:"method-vyper-multi-part-files",level:3},{value:"Frontend:",id:"frontend-4",level:4},{value:"After Verification",id:"after-verification",level:3}];function h(e){const t={a:"a",code:"code",h2:"h2",h3:"h3",h4:"h4",img:"img",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(t.p,{children:["After deploying your smart contracts, it's crucial to verify your code on our ",(0,n.jsx)(t.a,{href:"https://explorer-holesky.morphl2.io",children:"block explorer"}),". This can be automated using your development framework, such as Hardhat."]}),"\n",(0,n.jsx)(t.h2,{id:"verify-with-development-framework",children:"Verify with development framework"}),"\n",(0,n.jsx)(t.p,{children:"Most smart contract tools have plugins for verifying contracts on Etherscan. Blockscout supports Etherscan's contract verification APIs, making it straightforward to use these tools with the Morph Mainnet & Testnet."}),"\n",(0,n.jsx)(t.h3,{id:"verify-with-hardhat",children:"Verify with Hardhat"}),"\n",(0,n.jsx)(t.p,{children:"To verify your contract through hardhat, you need to add the following Etherscan and Sourcify configs to your hardhat.config.js file:"}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-javascript",children:"module.exports = {\n networks: {\n morph: { ... }\n },\n etherscan: {\n apiKey: {\n morph: 'anything',\n },\n customChains: [\n {\n network: 'morph',\n chainId: 2818,\n urls: {\n apiURL: 'https://explorer-api.morphl2.io/api? ',\n browserURL: 'https://explorer.morphl2.io/',\n },\n },\n ],\n },\n};\n"})}),"\n",(0,n.jsx)(t.h3,{id:"verify-with-foundry",children:"Verify with Foundry"}),"\n",(0,n.jsx)(t.p,{children:"Verification with foundry requires some flags passed to the normal verification script. You can verify using the command below:"}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-bash",children:" forge verify-contract YourContractAddress Counter\\\n --chain 2818 \\\n --verifier-url https://explorer-api.morphl2.io/api? \\\n --verifier blockscout --watch\n"})}),"\n",(0,n.jsx)(t.h2,{id:"verify-with-morph-explorer-frontend",children:"Verify with Morph explorer frontend"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["Visit\uff1a",(0,n.jsx)(t.a,{href:"https://explorer.morphl2.io",children:"Morph block explorer"})]}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:"We currently support 6 different ways to verify your contracts on our block explorer."}),"\n",(0,n.jsx)(t.p,{children:"There are 2 general parameters:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Compiler: Has to be consistent with what you select when deployment."}),"\n",(0,n.jsx)(t.li,{children:"Optimization: Can be ignored if you don't have contract optimization. If you do, it has to be consistent with deployment."}),"\n"]}),"\n",(0,n.jsx)(t.h3,{id:"method-solidity-flattened-sources-code",children:"Method: Solidity (Flattened Sources Code)"}),"\n",(0,n.jsx)(t.h4,{id:"frontend",children:"Frontend:"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"fscs",src:r(7673).A+"",width:"1280",height:"1017"})}),"\n",(0,n.jsx)(t.h4,{id:"flatten",children:"Flatten"}),"\n",(0,n.jsxs)(t.p,{children:["Flatten through ",(0,n.jsx)(t.a,{href:"https://book.getfoundry.sh/reference/forge/forge-flatten?highlight=flatten#forge-flatten",children:"forge command"}),", for example:"]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{children:"forge flatten --output FlattenedL2StandardBridge.sol ./contracts/L2/L2StandardBridge.sol\n"})}),"\n",(0,n.jsx)(t.h3,{id:"method-solidity-standard-json-input",children:"Method: Solidity (Standard JSON Input)"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"sjis1",src:r(9250).A+"",width:"1280",height:"881"})}),"\n",(0,n.jsx)(t.h4,{id:"obtain-json-file",children:"Obtain JSON File"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Can be obtained through solc"}),"\n",(0,n.jsx)(t.li,{children:"Can be obatined through remix compiler"}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"sjis2",src:r(6880).A+"",width:"934",height:"542"})}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"sjis3",src:r(6880).A+"",width:"934",height:"542"})}),"\n",(0,n.jsx)(t.h3,{id:"method-solidity-multi-part-files",children:"Method: Solidity (Multi-part files)"}),"\n",(0,n.jsx)(t.h4,{id:"frontend-1",children:"Frontend:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["You can submit multiple contract file by your own needs\n",(0,n.jsx)(t.img,{alt:"mpfs1",src:r(838).A+"",width:"1280",height:"779"})]}),"\n"]}),"\n",(0,n.jsx)(t.h4,{id:"sol-file-process",children:"SOL File Process"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["If there is any imported file, it needs to be modified to be referenced by the same level path, and these files must be submitted together.\n",(0,n.jsx)(t.img,{alt:"mpfs2",src:r(4969).A+"",width:"1280",height:"594"})]}),"\n"]}),"\n",(0,n.jsx)(t.h3,{id:"method-vyper-contracts",children:"Method: Vyper (Contracts)"}),"\n",(0,n.jsx)(t.h4,{id:"frontend-2",children:"Frontend:"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"cv",src:r(4018).A+"",width:"1280",height:"848"})}),"\n",(0,n.jsx)(t.h3,{id:"method-vyper-standard-json-input",children:"Method: Vyper (Standard Json Input)"}),"\n",(0,n.jsx)(t.h4,{id:"frontend-3",children:"Frontend:"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"sjiv",src:r(1375).A+"",width:"1280",height:"552"})}),"\n",(0,n.jsx)(t.h3,{id:"method-vyper-multi-part-files",children:"Method: Vyper (Multi-part files)"}),"\n",(0,n.jsx)(t.h4,{id:"frontend-4",children:"Frontend:"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"mpfv",src:r(4690).A+"",width:"1280",height:"822"})}),"\n",(0,n.jsx)(t.h3,{id:"after-verification",children:"After Verification"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"avp",src:r(2522).A+"",width:"1280",height:"503"})})]})}function c(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},2522:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/avp-fa162f2180b681e8807908f00d195c43.png"},4018:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/cv-4d3a7c9df0e287432f8b25c935cd1ea3.png"},7673:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/flatsourcesol-41a879112babbd6397b588b2b4e69daa.png"},838:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/mpfsol-3a7d7ba4b61955208a7221a347c914c3.png"},4969:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/mpfsol2-53fcc6c9ea28eb6114b242e08ba8bb1a.png"},4690:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/mpfv-43dad07bd7fd43eb3721dc7611560ac4.png"},9250:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/sjisol1-d065f42e5cb024651428c3f700fc3662.png"},6880:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/sjisol3-71ed80d677f12848aba5fa829f7b6fb2.png"},1375:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/sjiv-2d889a272a34ef1415529bced91d39c2.png"},1582:(e,t,r)=>{r.d(t,{R:()=>s,x:()=>d});var n=r(758);const i={},o=n.createContext(i);function s(e){const t=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),n.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/b0d24208.f2adae3f.js b/build/assets/js/b0d24208.88806065.js similarity index 75% rename from build/assets/js/b0d24208.f2adae3f.js rename to build/assets/js/b0d24208.88806065.js index ff13954f0..d4410f19d 100644 --- a/build/assets/js/b0d24208.f2adae3f.js +++ b/build/assets/js/b0d24208.88806065.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[2397],{6726:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>d,metadata:()=>i,toc:()=>a});var s=n(3274),t=n(2333);const d={},o="Interface: BridgeAdapters",i={id:"build-on-morph/sdk/interfaces/BridgeAdapters",title:"BridgeAdapters",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/interfaces/BridgeAdapters.md",sourceDirName:"build-on-morph/sdk/interfaces",slug:"/build-on-morph/sdk/interfaces/BridgeAdapters",permalink:"/docs/build-on-morph/sdk/interfaces/BridgeAdapters",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/interfaces/BridgeAdapters.md",tags:[],version:"current",frontMatter:{}},c={},a=[{value:"Indexable",id:"indexable",level:2}];function l(e){const r={a:"a",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,t.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,s.jsx)(r.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,s.jsx)(r.strong,{children:"Docs"})]}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / BridgeAdapters"]}),"\n",(0,s.jsx)(r.h1,{id:"interface-bridgeadapters",children:"Interface: BridgeAdapters"}),"\n",(0,s.jsx)(r.p,{children:"Something that looks like the list of custom bridges."}),"\n",(0,s.jsx)(r.h2,{id:"indexable",children:"Indexable"}),"\n",(0,s.jsxs)(r.p,{children:["[",(0,s.jsx)(r.code,{children:"name"}),": ",(0,s.jsx)(r.code,{children:"string"}),"]: ",(0,s.jsx)(r.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter",children:(0,s.jsx)(r.code,{children:"IBridgeAdapter"})})]})]})}function h(e={}){const{wrapper:r}={...(0,t.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},2333:(e,r,n)=>{n.d(r,{R:()=>o,x:()=>i});var s=n(9474);const t={},d=s.createContext(t);function o(e){const r=s.useContext(d);return s.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),s.createElement(d.Provider,{value:r},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[2397],{7028:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>d,metadata:()=>i,toc:()=>a});var s=n(6070),t=n(1582);const d={},o="Interface: BridgeAdapters",i={id:"build-on-morph/sdk/interfaces/BridgeAdapters",title:"BridgeAdapters",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/interfaces/BridgeAdapters.md",sourceDirName:"build-on-morph/sdk/interfaces",slug:"/build-on-morph/sdk/interfaces/BridgeAdapters",permalink:"/docs/build-on-morph/sdk/interfaces/BridgeAdapters",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/interfaces/BridgeAdapters.md",tags:[],version:"current",frontMatter:{}},c={},a=[{value:"Indexable",id:"indexable",level:2}];function l(e){const r={a:"a",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,t.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,s.jsx)(r.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,s.jsx)(r.strong,{children:"Docs"})]}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / BridgeAdapters"]}),"\n",(0,s.jsx)(r.h1,{id:"interface-bridgeadapters",children:"Interface: BridgeAdapters"}),"\n",(0,s.jsx)(r.p,{children:"Something that looks like the list of custom bridges."}),"\n",(0,s.jsx)(r.h2,{id:"indexable",children:"Indexable"}),"\n",(0,s.jsxs)(r.p,{children:["[",(0,s.jsx)(r.code,{children:"name"}),": ",(0,s.jsx)(r.code,{children:"string"}),"]: ",(0,s.jsx)(r.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter",children:(0,s.jsx)(r.code,{children:"IBridgeAdapter"})})]})]})}function h(e={}){const{wrapper:r}={...(0,t.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},1582:(e,r,n)=>{n.d(r,{R:()=>o,x:()=>i});var s=n(758);const t={},d=s.createContext(t);function o(e){const r=s.useContext(d);return s.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),s.createElement(d.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/b137769e.2be8350d.js b/build/assets/js/b137769e.2be8350d.js new file mode 100644 index 000000000..52c2e9d9e --- /dev/null +++ b/build/assets/js/b137769e.2be8350d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[6951],{613:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>d,contentTitle:()=>i,default:()=>a,frontMatter:()=>s,metadata:()=>l,toc:()=>c});var t=o(6070),r=o(1582);const s={title:"Run a full node from source",lang:"en-US"},i=void 0,l={id:"build-on-morph/developer-resources/node-operation/full-node/run-on-host",title:"Run a full node from source",description:"This guide outlines the steps to start a Morph node. The example assumes the home directory is ~/.morph",source:"@site/docs/build-on-morph/developer-resources/node-operation/full-node/2-run-on-host.md",sourceDirName:"build-on-morph/developer-resources/node-operation/full-node",slug:"/build-on-morph/developer-resources/node-operation/full-node/run-on-host",permalink:"/docs/build-on-morph/developer-resources/node-operation/full-node/run-on-host",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/developer-resources/node-operation/full-node/2-run-on-host.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{title:"Run a full node from source",lang:"en-US"},sidebar:"DeveloperSidebar",previous:{title:"Run a full node with docker",permalink:"/docs/build-on-morph/developer-resources/node-operation/full-node/run-in-docker"},next:{title:"Run a validator with docker",permalink:"/docs/build-on-morph/developer-resources/node-operation/validator-node/run-in-docker"}},d={},c=[{value:"Hardware requirements",id:"hardware-requirements",level:2},{value:"Build executable binary",id:"build-executable-binary",level:2},{value:"Clone morph",id:"clone-morph",level:3},{value:"Build Geth",id:"build-geth",level:3},{value:"Build Node",id:"build-node",level:3},{value:"Config Preparation",id:"config-preparation",level:2},{value:"Start Node",id:"start-node",level:2},{value:"Sync from snapshot(Recommended)",id:"sync-from-snapshotrecommended",level:3},{value:"Download snapshot",id:"download-snapshot",level:4},{value:"Start execution client",id:"start-execution-client",level:4},{value:"Start consensus client",id:"start-consensus-client",level:4},{value:"Check sync status",id:"check-sync-status",level:4},{value:"Sync from genesis block",id:"sync-from-genesis-block",level:3}];function h(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h2:"h2",h3:"h3",h4:"h4",li:"li",ol:"ol",p:"p",pre:"pre",ul:"ul",...(0,r.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(n.p,{children:["This guide outlines the steps to start a Morph node. The example assumes the home directory is ",(0,t.jsx)(n.code,{children:"~/.morph"})]}),"\n",(0,t.jsx)(n.h2,{id:"hardware-requirements",children:"Hardware requirements"}),"\n",(0,t.jsxs)(n.p,{children:["Running the morph node requires 2 processes: ",(0,t.jsx)(n.code,{children:"geth"})," and ",(0,t.jsx)(n.code,{children:"node"}),"."]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"Geth"}),":the"," Morph execution layer which needs to meet the requirements as below"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Fast CPU with 4+ cores"}),"\n",(0,t.jsx)(n.li,{children:"32GB+ RAM"}),"\n",(0,t.jsx)(n.li,{children:"High-performance SSD with at least 1TB of free space"}),"\n",(0,t.jsx)(n.li,{children:"25+ MBit/sec download Internet service"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"Node"}),":the"," Morph consensus layer embedded tendermint which needs to meet the ",(0,t.jsx)(n.a,{href:"https://docs.tendermint.com/v0.34/tendermint-core/running-in-production.html#processor-and-memory",children:"tendermint hardware requirements"}),"."]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.admonition,{type:"tip",children:(0,t.jsx)(n.p,{children:"According to limitations of the current geth implementation, we only support archive mode for launching a Geth. So the storage size of Geth will constantly increase along with blocks produced."})}),"\n",(0,t.jsx)(n.h2,{id:"build-executable-binary",children:"Build executable binary"}),"\n",(0,t.jsx)(n.h3,{id:"clone-morph",children:"Clone morph"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"mkdir -p ~/.morph \ncd ~/.morph\ngit clone https://github.com/morph-l2/morph.git\n"})}),"\n",(0,t.jsxs)(n.p,{children:["Next, you need to check out a release version. You can find the available release versions on the ",(0,t.jsx)(n.a,{href:"https://github.com/morph-l2/morph/releases",children:"Morph Releases"})," page. It is recommended to use the latest release version."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"cd morph\ngit checkout ${RELEASE_VERSION}\n"})}),"\n",(0,t.jsx)(n.h3,{id:"build-geth",children:"Build Geth"}),"\n",(0,t.jsx)(n.p,{children:"Notice: You need C compiler to build geth"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"make geth\n"})}),"\n",(0,t.jsx)(n.h3,{id:"build-node",children:"Build Node"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"cd ~/.morph/morph/node \nmake build\n"})}),"\n",(0,t.jsx)(n.h2,{id:"config-preparation",children:"Config Preparation"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Download the config files and make data dir"}),"\n"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"cd ~/.morph\n\n## mainnet\nwget https://raw.githubusercontent.com/morph-l2/run-morph-node/main/mainnet/data.zip\n\n## testnet\nwget https://raw.githubusercontent.com/morph-l2/run-morph-node/main/holesky/data.zip\n\nunzip data.zip\n"})}),"\n",(0,t.jsxs)(n.ol,{start:"2",children:["\n",(0,t.jsx)(n.li,{children:"Create a shared secret with node"}),"\n"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"cd ~/.morph\nopenssl rand -hex 32 > jwt-secret.txt\n"})}),"\n",(0,t.jsx)(n.h2,{id:"start-node",children:"Start Node"}),"\n",(0,t.jsx)(n.p,{children:"Mainnet nodes support synchronization from either the genesis block or a snapshot block, while testnet nodes only support synchronization from snapshots."}),"\n",(0,t.jsx)(n.h3,{id:"sync-from-snapshotrecommended",children:"Sync from snapshot(Recommended)"}),"\n",(0,t.jsx)(n.p,{children:"You should build the binary and prepare the config files in the above steps first, then download the snapshot."}),"\n",(0,t.jsx)(n.h4,{id:"download-snapshot",children:"Download snapshot"}),"\n",(0,t.jsx)(n.p,{children:"Download the latest snapshot corresponding to either the mainnet or testnet network."}),"\n",(0,t.jsxs)(n.p,{children:["A complete record of historical snapshots is available ",(0,t.jsx)(n.a,{href:"https://github.com/morph-l2/run-morph-node?tab=readme-ov-file#snapshot-information",children:"here"}),". Below is an example of how to download a snapshot"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"## mainnet\nwget -q --show-progress https://snapshot.morphl2.io/mainnet/${SNAPSHOT_NAME}.tar.gz\ntar -xzvf ${SNAPSHOT_NAME}.tar.gz\n\n## holesky\nwget -q --show-progress https://snapshot.morphl2.io/holesky/${SNAPSHOT_NAME}.tar.gz\ntar -xzvf ${SNAPSHOT_NAME}.tar.gz\n"})}),"\n",(0,t.jsx)(n.p,{children:"Extracting snapshot data to the data directory your node points to"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"mv ${SNAPSHOT_NAME}/geth geth-data\nmv ${SNAPSHOT_NAME}/data node-data\n"})}),"\n",(0,t.jsx)(n.h4,{id:"start-execution-client",children:"Start execution client"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",metastring:'title="Script for starting mainnet geth"',children:'./morph/go-ethereum/build/bin/geth --morph \\\n --datadir "./geth-data" \\\n --http --http.api=web3,debug,eth,txpool,net,engine \\\n --authrpc.addr localhost \\\n --authrpc.vhosts="localhost" \\\n --authrpc.port 8551 \\\n --authrpc.jwtsecret=./jwt-secret.txt \\\n --log.filename=./geth.log\n\n'})}),"\n",(0,t.jsx)(n.admonition,{type:"note",children:(0,t.jsxs)(n.p,{children:["For testnet, using ",(0,t.jsx)(n.code,{children:"--morph-holesky"})," instead"]})}),"\n",(0,t.jsxs)(n.p,{children:["tail -f ",(0,t.jsx)(n.code,{children:"geth.log"})," to check if the Geth is running properly, or you can also execute the curl command below to check if you are connected to the peer."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-Shell",children:'curl -X POST -H \'Content-Type: application/json\' --data \'{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":74}\' localhost:8545\n\n{"jsonrpc":"2.0","id":74,"result":"0x6"}\n'})}),"\n",(0,t.jsx)(n.h4,{id:"start-consensus-client",children:"Start consensus client"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-Bash",children:" ./morph/node/build/bin/morphnode --home ./node-data \\\n --l2.jwt-secret ./jwt-secret.txt \\\n --l2.eth http://localhost:8545 \\\n --l2.engine http://localhost:8551 \\\n --log.filename ./node.log \n"})}),"\n",(0,t.jsx)(n.p,{children:"tail -f node.log to check if the node is running properly, and you can also execute the command curl to check your node connection status."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-Bash",children:'curl http://localhost:26657/net_info\n\n{\n "jsonrpc": "2.0",\n "id": -1,\n "result": {\n "listening": true,\n "listeners": [\n "Listener(@)"\n ],\n "n_peers": "7",\n "peers": [\n {\n "node_info": {\n "protocol_version": {\n "p2p": "8",\n "block": "11",\n "app": "0"\n },\n "id": "b4ac59de479b0251d441ca0385429bc21713a208",\n "listen_addr": "tcp://0.0.0.0:26610",\n "network": "chain-morph-mainnet",\n "version": "0.37.0-alpha.1",\n "channels": "402021222338606100",\n "moniker": "morph-dataseed-node-0",\n "other": {\n "tx_index": "on",\n "rpc_address": "tcp://0.0.0.0:26657"\n }\n },\n "is_outbound": true,\n ....... \n'})}),"\n",(0,t.jsx)(n.h4,{id:"check-sync-status",children:"Check sync status"}),"\n",(0,t.jsxs)(n.p,{children:["curl ",(0,t.jsx)(n.a,{href:"http://localhost:26657/status",children:"http://localhost:26657/status"})," to check the sync status of the node"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-Bash",children:'{\n "jsonrpc": "2.0",\n "id": -1,\n "result": {\n "node_info": {\n "protocol_version": {\n "p2p": "8",\n "block": "11",\n "app": "0"\n },\n "id": "cde0d7cecfe9c82244c1dfa72c951759d02f1024",\n "listen_addr": "tcp://0.0.0.0:26656",\n "network": "chain-morph-mainnet",\n "version": "0.37.0-alpha.1",\n "channels": "402021222338606100",\n "moniker": "my-morph-node",\n "other": {\n "tx_index": "on",\n "rpc_address": "tcp://0.0.0.0:26657"\n }\n },\n "sync_info": {\n "latest_block_hash": "B4C0E514CD984B101FA89D7DB48C1FE18384F64C25E5565F618A5FE2851C42A9",\n "latest_app_hash": "",\n "latest_block_height": "2410",\n "latest_block_time": "2024-10-21T08:49:09.952573291Z",\n "earliest_block_hash": "0D66D908033DA7A3F5A95179B8D64261EDD887B944E59502A1C9EFBC1C9C4EF5",\n "earliest_app_hash": "",\n "earliest_block_height": "1",\n "earliest_block_time": "2024-10-21T06:00:00Z",\n "catching_up": false\n },\n "validator_info": {\n "address": "B7395023EFF719D0EE15AD96FFC7F69B6B9E52EF",\n "pub_key": {\n "type": "tendermint/PubKeyEd25519",\n "value": "tZI+wTExwoKeyUFgdSSYmf4sAYp4BhJu13UgPy1wDOc="\n },\n "voting_power": "0"\n }\n }\n}\n'})}),"\n",(0,t.jsxs)(n.p,{children:["The returned ",(0,t.jsx)(n.code,{children:'"catching_up"'})," indicates whether the node is in sync or not. ",(0,t.jsx)(n.em,{children:"True"})," means it is in sync."]}),"\n",(0,t.jsxs)(n.p,{children:["The returned ",(0,t.jsx)(n.code,{children:'"latest_block_height"'})," indicates the latest block height this node synced."]}),"\n",(0,t.jsx)(n.h3,{id:"sync-from-genesis-block",children:"Sync from genesis block"}),"\n",(0,t.jsx)(n.p,{children:"Start the execution client and consensus client directly without downloading snapshot."})]})}function a(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(h,{...e})}):h(e)}},1582:(e,n,o)=>{o.d(n,{R:()=>i,x:()=>l});var t=o(758);const r={},s=t.createContext(r);function i(e){const n=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),t.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/b202810b.3d55662b.js b/build/assets/js/b202810b.3d55662b.js new file mode 100644 index 000000000..4f3a7daf9 --- /dev/null +++ b/build/assets/js/b202810b.3d55662b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[4734],{684:(e,o,r)=>{r.r(o),r.d(o,{assets:()=>c,contentTitle:()=>i,default:()=>p,frontMatter:()=>n,metadata:()=>l,toc:()=>a});var s=r(6070),t=r(1582);const n={title:"Cross Chain Interoperability",lang:"en-US"},i=void 0,l={id:"build-on-morph/developer-resources/use-ecosystem-developer-tools/cross-chain-interoperability",title:"Cross Chain Interoperability",description:"LayerZero",source:"@site/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/0-cross-chain-interoperability.md",sourceDirName:"build-on-morph/developer-resources/use-ecosystem-developer-tools",slug:"/build-on-morph/developer-resources/use-ecosystem-developer-tools/cross-chain-interoperability",permalink:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/cross-chain-interoperability",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/0-cross-chain-interoperability.md",tags:[],version:"current",sidebarPosition:0,frontMatter:{title:"Cross Chain Interoperability",lang:"en-US"},sidebar:"DeveloperSidebar",previous:{title:"User Onboarding",permalink:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/user-onboarding"},next:{title:"Safe Multi-Signature Wallet",permalink:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/safe-multi-signature-wallet"}},c={},a=[{value:"LayerZero",id:"layerzero",level:3}];function d(e){const o={a:"a",h3:"h3",img:"img",p:"p",...(0,t.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(o.h3,{id:"layerzero",children:"LayerZero"}),"\n",(0,s.jsx)(o.p,{children:"LayerZero is a messaging protocol, not a blockchain. Using smart contracts deployed on each chain, in combination with Decentralized Verifier Networks (DVNs) and Executors, LayerZero enables different blockchains to seamlessly interact with one another."}),"\n",(0,s.jsx)(o.p,{children:(0,s.jsx)(o.img,{alt:"layerzero",src:r(4043).A+"",width:"2878",height:"1548"})}),"\n",(0,s.jsxs)(o.p,{children:["You can find our network's endpoint ",(0,s.jsx)(o.a,{href:"https://docs.layerzero.network/v2/developers/evm/technical-reference/deployed-contracts#morph",children:"here"})]}),"\n",(0,s.jsxs)(o.p,{children:["We wrote a complete guide on ",(0,s.jsx)(o.a,{href:"https://morph.ghost.io/layerzero-v2-morph-seamless-cross-chain-token-transfers/",children:"how to leverage LayerZero's technology on Morph:"})]})]})}function p(e={}){const{wrapper:o}={...(0,t.R)(),...e.components};return o?(0,s.jsx)(o,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},4043:(e,o,r)=>{r.d(o,{A:()=>s});const s=r.p+"assets/images/layerzero-729926ffd8eadd4c2ed9ce27f314d627.png"},1582:(e,o,r)=>{r.d(o,{R:()=>i,x:()=>l});var s=r(758);const t={},n=s.createContext(t);function i(e){const o=s.useContext(n);return s.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function l(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),s.createElement(n.Provider,{value:o},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/b4c00acc.381aa0af.js b/build/assets/js/b4c00acc.70d9fd4d.js similarity index 88% rename from build/assets/js/b4c00acc.381aa0af.js rename to build/assets/js/b4c00acc.70d9fd4d.js index a7784437c..caa3f110d 100644 --- a/build/assets/js/b4c00acc.381aa0af.js +++ b/build/assets/js/b4c00acc.70d9fd4d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[1995],{7074:(n,e,r)=>{r.r(e),r.d(e,{assets:()=>i,contentTitle:()=>c,default:()=>a,frontMatter:()=>t,metadata:()=>d,toc:()=>l});var o=r(3274),s=r(2333);const t={},c="Function: getAllOEContracts()",d={id:"build-on-morph/sdk/functions/getAllOEContracts",title:"getAllOEContracts",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/functions/getAllOEContracts.md",sourceDirName:"build-on-morph/sdk/functions",slug:"/build-on-morph/sdk/functions/getAllOEContracts",permalink:"/docs/build-on-morph/sdk/functions/getAllOEContracts",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/functions/getAllOEContracts.md",tags:[],version:"current",frontMatter:{}},i={},l=[{value:"Parameters",id:"parameters",level:2},{value:"Returns",id:"returns",level:2},{value:"Source",id:"source",level:2}];function h(n){const e={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,s.R)(),...n.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(e.p,{children:[(0,o.jsx)(e.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,o.jsx)(e.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,o.jsx)(e.strong,{children:"Docs"})]}),"\n",(0,o.jsx)(e.hr,{}),"\n",(0,o.jsxs)(e.p,{children:[(0,o.jsx)(e.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / getAllOEContracts"]}),"\n",(0,o.jsx)(e.h1,{id:"function-getalloecontracts",children:"Function: getAllOEContracts()"}),"\n",(0,o.jsxs)(e.blockquote,{children:["\n",(0,o.jsxs)(e.p,{children:[(0,o.jsx)(e.strong,{children:"getAllOEContracts"}),"(",(0,o.jsx)(e.code,{children:"l2ChainId"}),", ",(0,o.jsx)(e.code,{children:"opts"}),"): ",(0,o.jsx)(e.a,{href:"/docs/build-on-morph/sdk/interfaces/OEContracts",children:(0,o.jsx)(e.code,{children:"OEContracts"})})]}),"\n"]}),"\n",(0,o.jsx)(e.p,{children:"Automatically connects to all contract addresses, both L1 and L2, for the given L2 chain ID. The\nuser can provide custom contract address overrides for L1 or L2 contracts. If the given chain ID\nis not known then the user MUST provide custom contract addresses for ALL L1 contracts or this\nfunction will throw an error."}),"\n",(0,o.jsx)(e.h2,{id:"parameters",children:"Parameters"}),"\n",(0,o.jsxs)(e.p,{children:["\u2022 ",(0,o.jsx)(e.strong,{children:"l2ChainId"}),": ",(0,o.jsx)(e.code,{children:"number"})]}),"\n",(0,o.jsx)(e.p,{children:"Chain ID for the L2 network."}),"\n",(0,o.jsxs)(e.p,{children:["\u2022 ",(0,o.jsx)(e.strong,{children:"opts"}),"= ",(0,o.jsx)(e.code,{children:"{}"})]}),"\n",(0,o.jsx)(e.p,{children:"Additional options for connecting to the contracts."}),"\n",(0,o.jsxs)(e.p,{children:["\u2022 ",(0,o.jsx)(e.strong,{children:"opts.l1SignerOrProvider?"}),": ",(0,o.jsx)(e.code,{children:"Provider"})," | ",(0,o.jsx)(e.code,{children:"Signer"})]}),"\n",(0,o.jsxs)(e.p,{children:["\u2022 ",(0,o.jsx)(e.strong,{children:"opts.l2SignerOrProvider?"}),": ",(0,o.jsx)(e.code,{children:"Provider"})," | ",(0,o.jsx)(e.code,{children:"Signer"})]}),"\n",(0,o.jsxs)(e.p,{children:["\u2022 ",(0,o.jsx)(e.strong,{children:"opts.overrides?"}),": ",(0,o.jsx)(e.a,{href:"/docs/build-on-morph/sdk/type-aliases/DeepPartial",children:(0,o.jsx)(e.code,{children:"DeepPartial"})}),"<",(0,o.jsx)(e.a,{href:"/docs/build-on-morph/sdk/interfaces/OEContractsLike",children:(0,o.jsx)(e.code,{children:"OEContractsLike"})}),">"]}),"\n",(0,o.jsx)(e.p,{children:"Custom contract address overrides for L1 or L2 contracts."}),"\n",(0,o.jsx)(e.h2,{id:"returns",children:"Returns"}),"\n",(0,o.jsx)(e.p,{children:(0,o.jsx)(e.a,{href:"/docs/build-on-morph/sdk/interfaces/OEContracts",children:(0,o.jsx)(e.code,{children:"OEContracts"})})}),"\n",(0,o.jsx)(e.p,{children:"An object containing ethers.Contract objects connected to the appropriate addresses on\nboth L1 and L2."}),"\n",(0,o.jsx)(e.h2,{id:"source",children:"Source"}),"\n",(0,o.jsx)(e.p,{children:"src/utils/contracts.ts:88"})]})}function a(n={}){const{wrapper:e}={...(0,s.R)(),...n.components};return e?(0,o.jsx)(e,{...n,children:(0,o.jsx)(h,{...n})}):h(n)}},2333:(n,e,r)=>{r.d(e,{R:()=>c,x:()=>d});var o=r(9474);const s={},t=o.createContext(s);function c(n){const e=o.useContext(t);return o.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function d(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(s):n.components||s:c(n.components),o.createElement(t.Provider,{value:e},n.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[1995],{9600:(n,e,r)=>{r.r(e),r.d(e,{assets:()=>i,contentTitle:()=>c,default:()=>a,frontMatter:()=>t,metadata:()=>d,toc:()=>l});var o=r(6070),s=r(1582);const t={},c="Function: getAllOEContracts()",d={id:"build-on-morph/sdk/functions/getAllOEContracts",title:"getAllOEContracts",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/functions/getAllOEContracts.md",sourceDirName:"build-on-morph/sdk/functions",slug:"/build-on-morph/sdk/functions/getAllOEContracts",permalink:"/docs/build-on-morph/sdk/functions/getAllOEContracts",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/functions/getAllOEContracts.md",tags:[],version:"current",frontMatter:{}},i={},l=[{value:"Parameters",id:"parameters",level:2},{value:"Returns",id:"returns",level:2},{value:"Source",id:"source",level:2}];function h(n){const e={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,s.R)(),...n.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(e.p,{children:[(0,o.jsx)(e.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,o.jsx)(e.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,o.jsx)(e.strong,{children:"Docs"})]}),"\n",(0,o.jsx)(e.hr,{}),"\n",(0,o.jsxs)(e.p,{children:[(0,o.jsx)(e.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / getAllOEContracts"]}),"\n",(0,o.jsx)(e.h1,{id:"function-getalloecontracts",children:"Function: getAllOEContracts()"}),"\n",(0,o.jsxs)(e.blockquote,{children:["\n",(0,o.jsxs)(e.p,{children:[(0,o.jsx)(e.strong,{children:"getAllOEContracts"}),"(",(0,o.jsx)(e.code,{children:"l2ChainId"}),", ",(0,o.jsx)(e.code,{children:"opts"}),"): ",(0,o.jsx)(e.a,{href:"/docs/build-on-morph/sdk/interfaces/OEContracts",children:(0,o.jsx)(e.code,{children:"OEContracts"})})]}),"\n"]}),"\n",(0,o.jsx)(e.p,{children:"Automatically connects to all contract addresses, both L1 and L2, for the given L2 chain ID. The\nuser can provide custom contract address overrides for L1 or L2 contracts. If the given chain ID\nis not known then the user MUST provide custom contract addresses for ALL L1 contracts or this\nfunction will throw an error."}),"\n",(0,o.jsx)(e.h2,{id:"parameters",children:"Parameters"}),"\n",(0,o.jsxs)(e.p,{children:["\u2022 ",(0,o.jsx)(e.strong,{children:"l2ChainId"}),": ",(0,o.jsx)(e.code,{children:"number"})]}),"\n",(0,o.jsx)(e.p,{children:"Chain ID for the L2 network."}),"\n",(0,o.jsxs)(e.p,{children:["\u2022 ",(0,o.jsx)(e.strong,{children:"opts"}),"= ",(0,o.jsx)(e.code,{children:"{}"})]}),"\n",(0,o.jsx)(e.p,{children:"Additional options for connecting to the contracts."}),"\n",(0,o.jsxs)(e.p,{children:["\u2022 ",(0,o.jsx)(e.strong,{children:"opts.l1SignerOrProvider?"}),": ",(0,o.jsx)(e.code,{children:"Provider"})," | ",(0,o.jsx)(e.code,{children:"Signer"})]}),"\n",(0,o.jsxs)(e.p,{children:["\u2022 ",(0,o.jsx)(e.strong,{children:"opts.l2SignerOrProvider?"}),": ",(0,o.jsx)(e.code,{children:"Provider"})," | ",(0,o.jsx)(e.code,{children:"Signer"})]}),"\n",(0,o.jsxs)(e.p,{children:["\u2022 ",(0,o.jsx)(e.strong,{children:"opts.overrides?"}),": ",(0,o.jsx)(e.a,{href:"/docs/build-on-morph/sdk/type-aliases/DeepPartial",children:(0,o.jsx)(e.code,{children:"DeepPartial"})}),"<",(0,o.jsx)(e.a,{href:"/docs/build-on-morph/sdk/interfaces/OEContractsLike",children:(0,o.jsx)(e.code,{children:"OEContractsLike"})}),">"]}),"\n",(0,o.jsx)(e.p,{children:"Custom contract address overrides for L1 or L2 contracts."}),"\n",(0,o.jsx)(e.h2,{id:"returns",children:"Returns"}),"\n",(0,o.jsx)(e.p,{children:(0,o.jsx)(e.a,{href:"/docs/build-on-morph/sdk/interfaces/OEContracts",children:(0,o.jsx)(e.code,{children:"OEContracts"})})}),"\n",(0,o.jsx)(e.p,{children:"An object containing ethers.Contract objects connected to the appropriate addresses on\nboth L1 and L2."}),"\n",(0,o.jsx)(e.h2,{id:"source",children:"Source"}),"\n",(0,o.jsx)(e.p,{children:"src/utils/contracts.ts:88"})]})}function a(n={}){const{wrapper:e}={...(0,s.R)(),...n.components};return e?(0,o.jsx)(e,{...n,children:(0,o.jsx)(h,{...n})}):h(n)}},1582:(n,e,r)=>{r.d(e,{R:()=>c,x:()=>d});var o=r(758);const s={},t=o.createContext(s);function c(n){const e=o.useContext(t);return o.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function d(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(s):n.components||s:c(n.components),o.createElement(t.Provider,{value:e},n.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/bce3eedd.a39946bf.js b/build/assets/js/bce3eedd.ef73d91e.js similarity index 77% rename from build/assets/js/bce3eedd.a39946bf.js rename to build/assets/js/bce3eedd.ef73d91e.js index c1e4b4719..6372c47a7 100644 --- a/build/assets/js/bce3eedd.a39946bf.js +++ b/build/assets/js/bce3eedd.ef73d91e.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[6184],{2240:(e,o,r)=>{r.r(o),r.d(o,{assets:()=>i,contentTitle:()=>n,default:()=>p,frontMatter:()=>c,metadata:()=>l,toc:()=>d});var s=r(3274),t=r(2333);const c={title:"Blockchain Oracles",lang:"en-US"},n=void 0,l={id:"build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-oracles",title:"Blockchain Oracles",description:"Pyth Network",source:"@site/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/5-blockchain-oracles.md",sourceDirName:"build-on-morph/developer-resources/use-ecosystem-developer-tools",slug:"/build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-oracles",permalink:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-oracles",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/5-blockchain-oracles.md",tags:[],version:"current",sidebarPosition:5,frontMatter:{title:"Blockchain Oracles",lang:"en-US"},sidebar:"DeveloperSidebar",previous:{title:"Blockchain Indexing Services",permalink:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-indexing-services"},next:{title:"Block Explorer",permalink:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/block-explorer"}},i={},d=[{value:"Pyth Network",id:"pyth-network",level:3},{value:"eOracle",id:"eoracle",level:3}];function a(e){const o={a:"a",h3:"h3",img:"img",p:"p",...(0,t.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(o.h3,{id:"pyth-network",children:"Pyth Network"}),"\n",(0,s.jsx)(o.p,{children:(0,s.jsx)(o.img,{alt:"pyth",src:r(9609).A+"",width:"2772",height:"1528"})}),"\n",(0,s.jsxs)(o.p,{children:["Documentation: ",(0,s.jsx)(o.a,{href:"https://docs.pyth.network/price-feeds",children:"https://docs.pyth.network/price-feeds"})]}),"\n",(0,s.jsxs)(o.p,{children:["Right now Pyth is deployed on Morph Mainnet, check the ",(0,s.jsx)(o.a,{href:"https://explorer.morphl2.io/address/0x2880aB155794e7179c9eE2e38200202908C17B43",children:"contract"}),"."]}),"\n",(0,s.jsx)(o.h3,{id:"eoracle",children:"eOracle"}),"\n",(0,s.jsx)(o.p,{children:(0,s.jsx)(o.img,{alt:"eOracle",src:r(9581).A+"",width:"2592",height:"2122"})}),"\n",(0,s.jsx)(o.p,{children:"eOracle is currently in the progress of integrating Morph mainnet."}),"\n",(0,s.jsxs)(o.p,{children:["Deployed Morph Holesky testnet ",(0,s.jsx)(o.a,{href:"https://explorer-holesky.morphl2.io/address/0xbd53b35Bf458Cd22dBDeB5Da71181daA3cFb6A10",children:"contract"})]}),"\n",(0,s.jsxs)(o.p,{children:["Full price feeds and docs can be found here : ",(0,s.jsx)(o.a,{href:"https://eoracle.gitbook.io/eoracle/price-feeds/feed-addresses",children:"https://eoracle.gitbook.io/eoracle/price-feeds/feed-addresses"}),"."]})]})}function p(e={}){const{wrapper:o}={...(0,t.R)(),...e.components};return o?(0,s.jsx)(o,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},9581:(e,o,r)=>{r.d(o,{A:()=>s});const s=r.p+"assets/images/eOracle-9d570f06c3957d25e5cfb7159cb3e7cc.jpg"},9609:(e,o,r)=>{r.d(o,{A:()=>s});const s=r.p+"assets/images/pyth-27d190b1aedaa470332ff9ad3bef8b2f.jpg"},2333:(e,o,r)=>{r.d(o,{R:()=>n,x:()=>l});var s=r(9474);const t={},c=s.createContext(t);function n(e){const o=s.useContext(c);return s.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function l(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:n(e.components),s.createElement(c.Provider,{value:o},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[6184],{9994:(e,o,r)=>{r.r(o),r.d(o,{assets:()=>i,contentTitle:()=>n,default:()=>p,frontMatter:()=>c,metadata:()=>l,toc:()=>d});var s=r(6070),t=r(1582);const c={title:"Blockchain Oracles",lang:"en-US"},n=void 0,l={id:"build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-oracles",title:"Blockchain Oracles",description:"Pyth Network",source:"@site/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/5-blockchain-oracles.md",sourceDirName:"build-on-morph/developer-resources/use-ecosystem-developer-tools",slug:"/build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-oracles",permalink:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-oracles",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/5-blockchain-oracles.md",tags:[],version:"current",sidebarPosition:5,frontMatter:{title:"Blockchain Oracles",lang:"en-US"},sidebar:"DeveloperSidebar",previous:{title:"Blockchain Indexing Services",permalink:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-indexing-services"},next:{title:"Block Explorer",permalink:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/block-explorer"}},i={},d=[{value:"Pyth Network",id:"pyth-network",level:3},{value:"eOracle",id:"eoracle",level:3}];function a(e){const o={a:"a",h3:"h3",img:"img",p:"p",...(0,t.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(o.h3,{id:"pyth-network",children:"Pyth Network"}),"\n",(0,s.jsx)(o.p,{children:(0,s.jsx)(o.img,{alt:"pyth",src:r(6605).A+"",width:"2772",height:"1528"})}),"\n",(0,s.jsxs)(o.p,{children:["Documentation: ",(0,s.jsx)(o.a,{href:"https://docs.pyth.network/price-feeds",children:"https://docs.pyth.network/price-feeds"})]}),"\n",(0,s.jsxs)(o.p,{children:["Right now Pyth is deployed on Morph Mainnet, check the ",(0,s.jsx)(o.a,{href:"https://explorer.morphl2.io/address/0x2880aB155794e7179c9eE2e38200202908C17B43",children:"contract"}),"."]}),"\n",(0,s.jsx)(o.h3,{id:"eoracle",children:"eOracle"}),"\n",(0,s.jsx)(o.p,{children:(0,s.jsx)(o.img,{alt:"eOracle",src:r(4577).A+"",width:"2592",height:"2122"})}),"\n",(0,s.jsx)(o.p,{children:"eOracle is currently in the progress of integrating Morph mainnet."}),"\n",(0,s.jsxs)(o.p,{children:["Deployed Morph Holesky testnet ",(0,s.jsx)(o.a,{href:"https://explorer-holesky.morphl2.io/address/0xbd53b35Bf458Cd22dBDeB5Da71181daA3cFb6A10",children:"contract"})]}),"\n",(0,s.jsxs)(o.p,{children:["Full price feeds and docs can be found here : ",(0,s.jsx)(o.a,{href:"https://eoracle.gitbook.io/eoracle/price-feeds/feed-addresses",children:"https://eoracle.gitbook.io/eoracle/price-feeds/feed-addresses"}),"."]})]})}function p(e={}){const{wrapper:o}={...(0,t.R)(),...e.components};return o?(0,s.jsx)(o,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},4577:(e,o,r)=>{r.d(o,{A:()=>s});const s=r.p+"assets/images/eOracle-9d570f06c3957d25e5cfb7159cb3e7cc.jpg"},6605:(e,o,r)=>{r.d(o,{A:()=>s});const s=r.p+"assets/images/pyth-27d190b1aedaa470332ff9ad3bef8b2f.jpg"},1582:(e,o,r)=>{r.d(o,{R:()=>n,x:()=>l});var s=r(758);const t={},c=s.createContext(t);function n(e){const o=s.useContext(c);return s.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function l(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:n(e.components),s.createElement(c.Provider,{value:o},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/beb6ddce.e4ab7eec.js b/build/assets/js/beb6ddce.9994c5f0.js similarity index 81% rename from build/assets/js/beb6ddce.e4ab7eec.js rename to build/assets/js/beb6ddce.9994c5f0.js index acd52493b..bc297134d 100644 --- a/build/assets/js/beb6ddce.e4ab7eec.js +++ b/build/assets/js/beb6ddce.9994c5f0.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[3732],{5255:(s,e,n)=>{n.r(e),n.d(e,{assets:()=>c,contentTitle:()=>t,default:()=>l,frontMatter:()=>o,metadata:()=>a,toc:()=>i});var r=n(3274),h=n(2333);const o={},t="Function: hashMessageHash()",a={id:"build-on-morph/sdk/functions/hashMessageHash",title:"hashMessageHash",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/functions/hashMessageHash.md",sourceDirName:"build-on-morph/sdk/functions",slug:"/build-on-morph/sdk/functions/hashMessageHash",permalink:"/docs/build-on-morph/sdk/functions/hashMessageHash",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/functions/hashMessageHash.md",tags:[],version:"current",frontMatter:{}},c={},i=[{value:"Parameters",id:"parameters",level:2},{value:"Returns",id:"returns",level:2},{value:"Source",id:"source",level:2}];function d(s){const e={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,h.R)(),...s.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,r.jsx)(e.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,r.jsx)(e.strong,{children:"Docs"})]}),"\n",(0,r.jsx)(e.hr,{}),"\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / hashMessageHash"]}),"\n",(0,r.jsx)(e.h1,{id:"function-hashmessagehash",children:"Function: hashMessageHash()"}),"\n",(0,r.jsxs)(e.blockquote,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"hashMessageHash"}),"(",(0,r.jsx)(e.code,{children:"messageHash"}),"): ",(0,r.jsx)(e.code,{children:"string"})]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:"Utility for hashing a message hash. This computes the storage slot\nwhere the message hash will be stored in state. HashZero is used\nbecause the first mapping in the contract is used."}),"\n",(0,r.jsx)(e.h2,{id:"parameters",children:"Parameters"}),"\n",(0,r.jsxs)(e.p,{children:["\u2022 ",(0,r.jsx)(e.strong,{children:"messageHash"}),": ",(0,r.jsx)(e.code,{children:"string"})]}),"\n",(0,r.jsx)(e.p,{children:"Message hash to hash."}),"\n",(0,r.jsx)(e.h2,{id:"returns",children:"Returns"}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.code,{children:"string"})}),"\n",(0,r.jsx)(e.p,{children:"Hash of the given message hash."}),"\n",(0,r.jsx)(e.h2,{id:"source",children:"Source"}),"\n",(0,r.jsx)(e.p,{children:"src/utils/message-utils.ts:24"})]})}function l(s={}){const{wrapper:e}={...(0,h.R)(),...s.components};return e?(0,r.jsx)(e,{...s,children:(0,r.jsx)(d,{...s})}):d(s)}},2333:(s,e,n)=>{n.d(e,{R:()=>t,x:()=>a});var r=n(9474);const h={},o=r.createContext(h);function t(s){const e=r.useContext(o);return r.useMemo((function(){return"function"==typeof s?s(e):{...e,...s}}),[e,s])}function a(s){let e;return e=s.disableParentContext?"function"==typeof s.components?s.components(h):s.components||h:t(s.components),r.createElement(o.Provider,{value:e},s.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[3732],{6689:(s,e,n)=>{n.r(e),n.d(e,{assets:()=>c,contentTitle:()=>t,default:()=>l,frontMatter:()=>o,metadata:()=>a,toc:()=>i});var r=n(6070),h=n(1582);const o={},t="Function: hashMessageHash()",a={id:"build-on-morph/sdk/functions/hashMessageHash",title:"hashMessageHash",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/functions/hashMessageHash.md",sourceDirName:"build-on-morph/sdk/functions",slug:"/build-on-morph/sdk/functions/hashMessageHash",permalink:"/docs/build-on-morph/sdk/functions/hashMessageHash",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/functions/hashMessageHash.md",tags:[],version:"current",frontMatter:{}},c={},i=[{value:"Parameters",id:"parameters",level:2},{value:"Returns",id:"returns",level:2},{value:"Source",id:"source",level:2}];function d(s){const e={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,h.R)(),...s.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,r.jsx)(e.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,r.jsx)(e.strong,{children:"Docs"})]}),"\n",(0,r.jsx)(e.hr,{}),"\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / hashMessageHash"]}),"\n",(0,r.jsx)(e.h1,{id:"function-hashmessagehash",children:"Function: hashMessageHash()"}),"\n",(0,r.jsxs)(e.blockquote,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"hashMessageHash"}),"(",(0,r.jsx)(e.code,{children:"messageHash"}),"): ",(0,r.jsx)(e.code,{children:"string"})]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:"Utility for hashing a message hash. This computes the storage slot\nwhere the message hash will be stored in state. HashZero is used\nbecause the first mapping in the contract is used."}),"\n",(0,r.jsx)(e.h2,{id:"parameters",children:"Parameters"}),"\n",(0,r.jsxs)(e.p,{children:["\u2022 ",(0,r.jsx)(e.strong,{children:"messageHash"}),": ",(0,r.jsx)(e.code,{children:"string"})]}),"\n",(0,r.jsx)(e.p,{children:"Message hash to hash."}),"\n",(0,r.jsx)(e.h2,{id:"returns",children:"Returns"}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.code,{children:"string"})}),"\n",(0,r.jsx)(e.p,{children:"Hash of the given message hash."}),"\n",(0,r.jsx)(e.h2,{id:"source",children:"Source"}),"\n",(0,r.jsx)(e.p,{children:"src/utils/message-utils.ts:24"})]})}function l(s={}){const{wrapper:e}={...(0,h.R)(),...s.components};return e?(0,r.jsx)(e,{...s,children:(0,r.jsx)(d,{...s})}):d(s)}},1582:(s,e,n)=>{n.d(e,{R:()=>t,x:()=>a});var r=n(758);const h={},o=r.createContext(h);function t(s){const e=r.useContext(o);return r.useMemo((function(){return"function"==typeof s?s(e):{...e,...s}}),[e,s])}function a(s){let e;return e=s.disableParentContext?"function"==typeof s.components?s.components(h):s.components||h:t(s.components),r.createElement(o.Provider,{value:e},s.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/c30bab43.a9e78c88.js b/build/assets/js/c30bab43.3af275f1.js similarity index 83% rename from build/assets/js/c30bab43.a9e78c88.js rename to build/assets/js/c30bab43.3af275f1.js index 5e1654f9a..0d2b6081a 100644 --- a/build/assets/js/c30bab43.a9e78c88.js +++ b/build/assets/js/c30bab43.3af275f1.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[6941],{8092:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>i,contentTitle:()=>c,default:()=>a,frontMatter:()=>t,metadata:()=>d,toc:()=>l});var s=n(3274),o=n(2333);const t={},c="Interface: OEContracts",d={id:"build-on-morph/sdk/interfaces/OEContracts",title:"OEContracts",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/interfaces/OEContracts.md",sourceDirName:"build-on-morph/sdk/interfaces",slug:"/build-on-morph/sdk/interfaces/OEContracts",permalink:"/docs/build-on-morph/sdk/interfaces/OEContracts",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/interfaces/OEContracts.md",tags:[],version:"current",frontMatter:{}},i={},l=[{value:"Properties",id:"properties",level:2},{value:"l1",id:"l1",level:3},{value:"Source",id:"source",level:4},{value:"l2",id:"l2",level:3},{value:"Source",id:"source-1",level:4}];function h(e){const r={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",p:"p",strong:"strong",...(0,o.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,s.jsx)(r.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,s.jsx)(r.strong,{children:"Docs"})]}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / OEContracts"]}),"\n",(0,s.jsx)(r.h1,{id:"interface-oecontracts",children:"Interface: OEContracts"}),"\n",(0,s.jsx)(r.p,{children:"Represents Morph contracts, assumed to be connected to their appropriate\nproviders and addresses."}),"\n",(0,s.jsx)(r.h2,{id:"properties",children:"Properties"}),"\n",(0,s.jsx)(r.h3,{id:"l1",children:"l1"}),"\n",(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"l1"}),": ",(0,s.jsx)(r.a,{href:"/docs/build-on-morph/sdk/interfaces/OEL1Contracts",children:(0,s.jsx)(r.code,{children:"OEL1Contracts"})})]}),"\n"]}),"\n",(0,s.jsx)(r.h4,{id:"source",children:"Source"}),"\n",(0,s.jsx)(r.p,{children:"src/interfaces/types.ts:121"}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsx)(r.h3,{id:"l2",children:"l2"}),"\n",(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"l2"}),": ",(0,s.jsx)(r.a,{href:"/docs/build-on-morph/sdk/interfaces/OEL2Contracts",children:(0,s.jsx)(r.code,{children:"OEL2Contracts"})})]}),"\n"]}),"\n",(0,s.jsx)(r.h4,{id:"source-1",children:"Source"}),"\n",(0,s.jsx)(r.p,{children:"src/interfaces/types.ts:122"})]})}function a(e={}){const{wrapper:r}={...(0,o.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},2333:(e,r,n)=>{n.d(r,{R:()=>c,x:()=>d});var s=n(9474);const o={},t=s.createContext(o);function c(e){const r=s.useContext(t);return s.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function d(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:c(e.components),s.createElement(t.Provider,{value:r},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[6941],{4718:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>i,contentTitle:()=>c,default:()=>a,frontMatter:()=>t,metadata:()=>d,toc:()=>l});var s=n(6070),o=n(1582);const t={},c="Interface: OEContracts",d={id:"build-on-morph/sdk/interfaces/OEContracts",title:"OEContracts",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/interfaces/OEContracts.md",sourceDirName:"build-on-morph/sdk/interfaces",slug:"/build-on-morph/sdk/interfaces/OEContracts",permalink:"/docs/build-on-morph/sdk/interfaces/OEContracts",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/interfaces/OEContracts.md",tags:[],version:"current",frontMatter:{}},i={},l=[{value:"Properties",id:"properties",level:2},{value:"l1",id:"l1",level:3},{value:"Source",id:"source",level:4},{value:"l2",id:"l2",level:3},{value:"Source",id:"source-1",level:4}];function h(e){const r={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",p:"p",strong:"strong",...(0,o.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,s.jsx)(r.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,s.jsx)(r.strong,{children:"Docs"})]}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / OEContracts"]}),"\n",(0,s.jsx)(r.h1,{id:"interface-oecontracts",children:"Interface: OEContracts"}),"\n",(0,s.jsx)(r.p,{children:"Represents Morph contracts, assumed to be connected to their appropriate\nproviders and addresses."}),"\n",(0,s.jsx)(r.h2,{id:"properties",children:"Properties"}),"\n",(0,s.jsx)(r.h3,{id:"l1",children:"l1"}),"\n",(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"l1"}),": ",(0,s.jsx)(r.a,{href:"/docs/build-on-morph/sdk/interfaces/OEL1Contracts",children:(0,s.jsx)(r.code,{children:"OEL1Contracts"})})]}),"\n"]}),"\n",(0,s.jsx)(r.h4,{id:"source",children:"Source"}),"\n",(0,s.jsx)(r.p,{children:"src/interfaces/types.ts:121"}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsx)(r.h3,{id:"l2",children:"l2"}),"\n",(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"l2"}),": ",(0,s.jsx)(r.a,{href:"/docs/build-on-morph/sdk/interfaces/OEL2Contracts",children:(0,s.jsx)(r.code,{children:"OEL2Contracts"})})]}),"\n"]}),"\n",(0,s.jsx)(r.h4,{id:"source-1",children:"Source"}),"\n",(0,s.jsx)(r.p,{children:"src/interfaces/types.ts:122"})]})}function a(e={}){const{wrapper:r}={...(0,o.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},1582:(e,r,n)=>{n.d(r,{R:()=>c,x:()=>d});var s=n(758);const o={},t=s.createContext(o);function c(e){const r=s.useContext(t);return s.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function d(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:c(e.components),s.createElement(t.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/c33d6554.08872042.js b/build/assets/js/c33d6554.08872042.js new file mode 100644 index 000000000..1201cc7f6 --- /dev/null +++ b/build/assets/js/c33d6554.08872042.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[8520],{866:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>a,contentTitle:()=>c,default:()=>h,frontMatter:()=>r,metadata:()=>i,toc:()=>d});var o=s(6070),n=s(1582);const r={},c="Type alias: OEL2ContractsLike",i={id:"build-on-morph/sdk/type-aliases/OEL2ContractsLike",title:"OEL2ContractsLike",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/type-aliases/OEL2ContractsLike.md",sourceDirName:"build-on-morph/sdk/type-aliases",slug:"/build-on-morph/sdk/type-aliases/OEL2ContractsLike",permalink:"/docs/build-on-morph/sdk/type-aliases/OEL2ContractsLike",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/type-aliases/OEL2ContractsLike.md",tags:[],version:"current",frontMatter:{}},a={},d=[{value:"Source",id:"source",level:2}];function l(e){const t={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,n.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,o.jsx)(t.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,o.jsx)(t.strong,{children:"Docs"})]}),"\n",(0,o.jsx)(t.hr,{}),"\n",(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / OEL2ContractsLike"]}),"\n",(0,o.jsx)(t.h1,{id:"type-alias-oel2contractslike",children:"Type alias: OEL2ContractsLike"}),"\n",(0,o.jsxs)(t.blockquote,{children:["\n",(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.strong,{children:"OEL2ContractsLike"}),": ",(0,o.jsx)(t.code,{children:"{ [K in keyof OEL2Contracts]: AddressLike }"})]}),"\n"]}),"\n",(0,o.jsx)(t.p,{children:"Convenience type for something that looks like the L2 OE contract interface but could be\naddresses instead of actual contract objects."}),"\n",(0,o.jsx)(t.h2,{id:"source",children:"Source"}),"\n",(0,o.jsx)(t.p,{children:"src/interfaces/types.ts:137"})]})}function h(e={}){const{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},1582:(e,t,s)=>{s.d(t,{R:()=>c,x:()=>i});var o=s(758);const n={},r=o.createContext(n);function c(e){const t=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:c(e.components),o.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/c33d6554.f1b6c17f.js b/build/assets/js/c33d6554.f1b6c17f.js deleted file mode 100644 index 2a964ff8e..000000000 --- a/build/assets/js/c33d6554.f1b6c17f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[8520],{6292:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>a,contentTitle:()=>c,default:()=>h,frontMatter:()=>r,metadata:()=>i,toc:()=>d});var o=s(3274),n=s(2333);const r={},c="Type alias: OEL2ContractsLike",i={id:"build-on-morph/sdk/type-aliases/OEL2ContractsLike",title:"OEL2ContractsLike",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/type-aliases/OEL2ContractsLike.md",sourceDirName:"build-on-morph/sdk/type-aliases",slug:"/build-on-morph/sdk/type-aliases/OEL2ContractsLike",permalink:"/docs/build-on-morph/sdk/type-aliases/OEL2ContractsLike",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/type-aliases/OEL2ContractsLike.md",tags:[],version:"current",frontMatter:{}},a={},d=[{value:"Source",id:"source",level:2}];function l(e){const t={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,n.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,o.jsx)(t.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,o.jsx)(t.strong,{children:"Docs"})]}),"\n",(0,o.jsx)(t.hr,{}),"\n",(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / OEL2ContractsLike"]}),"\n",(0,o.jsx)(t.h1,{id:"type-alias-oel2contractslike",children:"Type alias: OEL2ContractsLike"}),"\n",(0,o.jsxs)(t.blockquote,{children:["\n",(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.strong,{children:"OEL2ContractsLike"}),": ",(0,o.jsx)(t.code,{children:"{ [K in keyof OEL2Contracts]: AddressLike }"})]}),"\n"]}),"\n",(0,o.jsx)(t.p,{children:"Convenience type for something that looks like the L2 OE contract interface but could be\naddresses instead of actual contract objects."}),"\n",(0,o.jsx)(t.h2,{id:"source",children:"Source"}),"\n",(0,o.jsx)(t.p,{children:"src/interfaces/types.ts:137"})]})}function h(e={}){const{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},2333:(e,t,s)=>{s.d(t,{R:()=>c,x:()=>i});var o=s(9474);const n={},r=o.createContext(n);function c(e){const t=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:c(e.components),o.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/c4f5d8e4.466ad3d3.js b/build/assets/js/c4f5d8e4.466ad3d3.js new file mode 100644 index 000000000..a60c2e426 --- /dev/null +++ b/build/assets/js/c4f5d8e4.466ad3d3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[2634],{9421:(e,t,s)=>{s.r(t),s.d(t,{default:()=>h});s(758);var n=s(5557),r=s(6070);function a(){return(0,r.jsx)(n.rd,{to:"/docs/about-morph/user-navigation-page"})}var i=s(8437),o=s(7500),c=s.n(o),l=s(6869);function x(){return(0,r.jsxs)("header",{className:c()("relative flex flex-col items-center justify-center text-[#FFF] heroBanner h-[320px] md:h-[780px] bg-[#7D68FF] px-4"),children:[(0,r.jsx)("img",{src:"/lottie/bg-logo.svg",className:"flex absolute top-[6px] h-[95%]"}),(0,r.jsx)("p",{className:"text-[16px]",children:"Your gateway to the morph ecosystem"}),(0,r.jsx)("h2",{className:"text-[48px] leading-[70px] md:text-[85px] md:leading-[85px] xl:text-[140px] xl:leading-[100px] font-bold font-denim text-[#FFF]",children:"MORPH-DOCS"}),(0,r.jsx)("p",{className:"hidden text-[18px] text-center",children:"Learn everything about Morph here."})]})}function h(){const{siteConfig:e}=(0,l.A)();return(0,r.jsxs)(i.A,{title:`${e.title}`,className:"min-h-screen",description:"Morph is a secure, decentralized, and EVM-compatiable rollup that is cost-efficient and high-performing.",children:[(0,r.jsx)(x,{}),(0,r.jsx)("main",{children:(0,r.jsx)(a,{})})]})}}}]); \ No newline at end of file diff --git a/build/assets/js/c4f5d8e4.74e60bf5.js b/build/assets/js/c4f5d8e4.74e60bf5.js deleted file mode 100644 index 547dbd4b7..000000000 --- a/build/assets/js/c4f5d8e4.74e60bf5.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[2634],{4743:(e,t,s)=>{s.r(t),s.d(t,{default:()=>h});var n=s(9474),r=s(241),a=s(3274);function i(){return(0,a.jsx)(r.rd,{to:"/docs/about-morph/user-navigation-page"})}var c=s(7367),o=s(7500),l=s.n(o),x=s(2419),p=s(2403);function d(){return(0,a.jsxs)("header",{className:l()("relative flex flex-col items-center justify-center text-[#FFF] heroBanner h-[320px] md:h-[780px] bg-[#7D68FF] px-4"),children:[(0,a.jsx)("img",{src:"/lottie/bg-logo.svg",className:"flex absolute top-[6px] h-[95%]"}),(0,a.jsx)("p",{className:"text-[16px]",children:"Your gateway to the morph ecosystem"}),(0,a.jsx)("h2",{className:"text-[48px] leading-[70px] md:text-[85px] md:leading-[85px] xl:text-[140px] xl:leading-[100px] font-bold font-denim text-[#FFF]",children:"MORPH-DOCS"}),(0,a.jsx)("p",{className:"hidden text-[18px] text-center",children:"Learn everything about Morph here."})]})}function h(){const{siteConfig:e}=(0,p.A)();return n.useEffect((()=>{(0,x.R)({page:"docs_page"})}),[]),(0,a.jsxs)(c.A,{title:`${e.title}`,className:"min-h-screen",description:"Morph is a secure, decentralized, and EVM-compatiable rollup that is cost-efficient and high-performing.",children:[(0,a.jsx)(d,{}),(0,a.jsx)("main",{children:(0,a.jsx)(i,{})})]})}}}]); \ No newline at end of file diff --git a/build/assets/js/c5f7ff1a.d115e6eb.js b/build/assets/js/c5f7ff1a.1a3bb12f.js similarity index 78% rename from build/assets/js/c5f7ff1a.d115e6eb.js rename to build/assets/js/c5f7ff1a.1a3bb12f.js index 8eba43da0..ec5cecbd8 100644 --- a/build/assets/js/c5f7ff1a.d115e6eb.js +++ b/build/assets/js/c5f7ff1a.1a3bb12f.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[3764],{1667:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>a,contentTitle:()=>c,default:()=>h,frontMatter:()=>r,metadata:()=>i,toc:()=>d});var o=s(3274),n=s(2333);const r={},c="Type alias: OEL1ContractsLike",i={id:"build-on-morph/sdk/type-aliases/OEL1ContractsLike",title:"OEL1ContractsLike",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/type-aliases/OEL1ContractsLike.md",sourceDirName:"build-on-morph/sdk/type-aliases",slug:"/build-on-morph/sdk/type-aliases/OEL1ContractsLike",permalink:"/docs/build-on-morph/sdk/type-aliases/OEL1ContractsLike",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/type-aliases/OEL1ContractsLike.md",tags:[],version:"current",frontMatter:{}},a={},d=[{value:"Source",id:"source",level:2}];function l(e){const t={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,n.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,o.jsx)(t.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,o.jsx)(t.strong,{children:"Docs"})]}),"\n",(0,o.jsx)(t.hr,{}),"\n",(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / OEL1ContractsLike"]}),"\n",(0,o.jsx)(t.h1,{id:"type-alias-oel1contractslike",children:"Type alias: OEL1ContractsLike"}),"\n",(0,o.jsxs)(t.blockquote,{children:["\n",(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.strong,{children:"OEL1ContractsLike"}),": ",(0,o.jsx)(t.code,{children:"{ [K in keyof OEL1Contracts]: AddressLike }"})]}),"\n"]}),"\n",(0,o.jsx)(t.p,{children:"Convenience type for something that looks like the L1 OE contract interface but could be\naddresses instead of actual contract objects."}),"\n",(0,o.jsx)(t.h2,{id:"source",children:"Source"}),"\n",(0,o.jsx)(t.p,{children:"src/interfaces/types.ts:129"})]})}function h(e={}){const{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},2333:(e,t,s)=>{s.d(t,{R:()=>c,x:()=>i});var o=s(9474);const n={},r=o.createContext(n);function c(e){const t=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:c(e.components),o.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[3764],{4429:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>a,contentTitle:()=>c,default:()=>h,frontMatter:()=>r,metadata:()=>i,toc:()=>d});var o=s(6070),n=s(1582);const r={},c="Type alias: OEL1ContractsLike",i={id:"build-on-morph/sdk/type-aliases/OEL1ContractsLike",title:"OEL1ContractsLike",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/type-aliases/OEL1ContractsLike.md",sourceDirName:"build-on-morph/sdk/type-aliases",slug:"/build-on-morph/sdk/type-aliases/OEL1ContractsLike",permalink:"/docs/build-on-morph/sdk/type-aliases/OEL1ContractsLike",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/type-aliases/OEL1ContractsLike.md",tags:[],version:"current",frontMatter:{}},a={},d=[{value:"Source",id:"source",level:2}];function l(e){const t={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,n.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,o.jsx)(t.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,o.jsx)(t.strong,{children:"Docs"})]}),"\n",(0,o.jsx)(t.hr,{}),"\n",(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / OEL1ContractsLike"]}),"\n",(0,o.jsx)(t.h1,{id:"type-alias-oel1contractslike",children:"Type alias: OEL1ContractsLike"}),"\n",(0,o.jsxs)(t.blockquote,{children:["\n",(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.strong,{children:"OEL1ContractsLike"}),": ",(0,o.jsx)(t.code,{children:"{ [K in keyof OEL1Contracts]: AddressLike }"})]}),"\n"]}),"\n",(0,o.jsx)(t.p,{children:"Convenience type for something that looks like the L1 OE contract interface but could be\naddresses instead of actual contract objects."}),"\n",(0,o.jsx)(t.h2,{id:"source",children:"Source"}),"\n",(0,o.jsx)(t.p,{children:"src/interfaces/types.ts:129"})]})}function h(e={}){const{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},1582:(e,t,s)=>{s.d(t,{R:()=>c,x:()=>i});var o=s(758);const n={},r=o.createContext(n);function c(e){const t=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:c(e.components),o.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/c7ccd35b.c53dbbdf.js b/build/assets/js/c7ccd35b.88ca3abd.js similarity index 61% rename from build/assets/js/c7ccd35b.c53dbbdf.js rename to build/assets/js/c7ccd35b.88ca3abd.js index 83455a0e2..6e533bb45 100644 --- a/build/assets/js/c7ccd35b.c53dbbdf.js +++ b/build/assets/js/c7ccd35b.88ca3abd.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[1557],{4942:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>n,default:()=>p,frontMatter:()=>a,metadata:()=>i,toc:()=>c});var r=o(3274),s=o(2333);const a={title:"Safe Multi-Signature Wallet",lang:"en-US"},n=void 0,i={id:"build-on-morph/developer-resources/use-ecosystem-developer-tools/safe-multi-signature-wallet",title:"Safe Multi-Signature Wallet",description:"What is Morph Safe?",source:"@site/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/1-safe-multi-signature-wallet.md",sourceDirName:"build-on-morph/developer-resources/use-ecosystem-developer-tools",slug:"/build-on-morph/developer-resources/use-ecosystem-developer-tools/safe-multi-signature-wallet",permalink:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/safe-multi-signature-wallet",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/1-safe-multi-signature-wallet.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{title:"Safe Multi-Signature Wallet",lang:"en-US"},sidebar:"DeveloperSidebar",previous:{title:"Use SDK to interact with Morph",permalink:"/docs/build-on-morph/sdk/globals"},next:{title:"RPC Services",permalink:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/rpc-services"}},l={},c=[{value:"What is Morph Safe?",id:"what-is-morph-safe",level:2}];function u(e){const t={a:"a",h2:"h2",img:"img",p:"p",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.h2,{id:"what-is-morph-safe",children:"What is Morph Safe?"}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"safemultisig",src:o(5359).A+"",width:"2430",height:"1316"})}),"\n",(0,r.jsxs)(t.p,{children:["Morph Safe is a fork managed by the Morph team in collaboration with ",(0,r.jsx)(t.a,{href:"https://www.protofire.io/",children:"Protofire"}),", an official partner of the Safe team. It is a multi-signature smart contract wallet, which means it requires a minimum number of signatures to approve a transaction before it can occur."]}),"\n",(0,r.jsx)(t.p,{children:"For example, if your business has three main stakeholders, you can configure the wallet to require approval from either two out of three or all three individuals before a transaction can proceed. This security measure ensures that no single person can compromise the funds."}),"\n",(0,r.jsx)(t.p,{children:"In addition to robust security, Morph Safe offers complete self-custody over funds. The smart contract deployed for the wallet has full control over the wallet's contents and does not rely on any trusted external party for execution."}),"\n",(0,r.jsxs)(t.p,{children:["To create your Morph Mainnet Safe wallet click ",(0,r.jsx)(t.a,{href:"https://safe.morphl2.io/welcome/accounts?chain=morph",children:"here"}),"."]})]})}function p(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(u,{...e})}):u(e)}},5359:(e,t,o)=>{o.d(t,{A:()=>r});const r=o.p+"assets/images/safemultisig-af738a8a2e55a1aeaa11c3e37bdedc87.png"},2333:(e,t,o)=>{o.d(t,{R:()=>n,x:()=>i});var r=o(9474);const s={},a=r.createContext(s);function n(e){const t=r.useContext(a);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:n(e.components),r.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[1557],{1232:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>n,default:()=>p,frontMatter:()=>a,metadata:()=>i,toc:()=>c});var r=o(6070),s=o(1582);const a={title:"Safe Multi-Signature Wallet",lang:"en-US"},n=void 0,i={id:"build-on-morph/developer-resources/use-ecosystem-developer-tools/safe-multi-signature-wallet",title:"Safe Multi-Signature Wallet",description:"What is Morph Safe?",source:"@site/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/1-safe-multi-signature-wallet.md",sourceDirName:"build-on-morph/developer-resources/use-ecosystem-developer-tools",slug:"/build-on-morph/developer-resources/use-ecosystem-developer-tools/safe-multi-signature-wallet",permalink:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/safe-multi-signature-wallet",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/1-safe-multi-signature-wallet.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{title:"Safe Multi-Signature Wallet",lang:"en-US"},sidebar:"DeveloperSidebar",previous:{title:"Cross Chain Interoperability",permalink:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/cross-chain-interoperability"},next:{title:"RPC Services",permalink:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/rpc-services"}},l={},c=[{value:"What is Morph Safe?",id:"what-is-morph-safe",level:2}];function u(e){const t={a:"a",h2:"h2",img:"img",p:"p",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.h2,{id:"what-is-morph-safe",children:"What is Morph Safe?"}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"safemultisig",src:o(291).A+"",width:"2430",height:"1316"})}),"\n",(0,r.jsxs)(t.p,{children:["Morph Safe is a fork managed by the Morph team in collaboration with ",(0,r.jsx)(t.a,{href:"https://www.protofire.io/",children:"Protofire"}),", an official partner of the Safe team. It is a multi-signature smart contract wallet, which means it requires a minimum number of signatures to approve a transaction before it can occur."]}),"\n",(0,r.jsx)(t.p,{children:"For example, if your business has three main stakeholders, you can configure the wallet to require approval from either two out of three or all three individuals before a transaction can proceed. This security measure ensures that no single person can compromise the funds."}),"\n",(0,r.jsx)(t.p,{children:"In addition to robust security, Morph Safe offers complete self-custody over funds. The smart contract deployed for the wallet has full control over the wallet's contents and does not rely on any trusted external party for execution."}),"\n",(0,r.jsxs)(t.p,{children:["To create your Morph Mainnet Safe wallet click ",(0,r.jsx)(t.a,{href:"https://safe.morphl2.io/welcome/accounts?chain=morph",children:"here"}),"."]})]})}function p(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(u,{...e})}):u(e)}},291:(e,t,o)=>{o.d(t,{A:()=>r});const r=o.p+"assets/images/safemultisig-af738a8a2e55a1aeaa11c3e37bdedc87.png"},1582:(e,t,o)=>{o.d(t,{R:()=>n,x:()=>i});var r=o(758);const s={},a=r.createContext(s);function n(e){const t=r.useContext(a);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:n(e.components),r.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/ca4c51aa.4afb0a16.js b/build/assets/js/ca4c51aa.fd464d9a.js similarity index 77% rename from build/assets/js/ca4c51aa.4afb0a16.js rename to build/assets/js/ca4c51aa.fd464d9a.js index f551e3c5f..7bf18934f 100644 --- a/build/assets/js/ca4c51aa.4afb0a16.js +++ b/build/assets/js/ca4c51aa.fd464d9a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[4300],{5046:(e,r,s)=>{s.r(r),s.d(r,{assets:()=>c,contentTitle:()=>d,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>a});var n=s(3274),t=s(2333);const o={},d="Interface: WithdrawalEntry",i={id:"build-on-morph/sdk/interfaces/WithdrawalEntry",title:"WithdrawalEntry",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/interfaces/WithdrawalEntry.md",sourceDirName:"build-on-morph/sdk/interfaces",slug:"/build-on-morph/sdk/interfaces/WithdrawalEntry",permalink:"/docs/build-on-morph/sdk/interfaces/WithdrawalEntry",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/interfaces/WithdrawalEntry.md",tags:[],version:"current",frontMatter:{}},c={},a=[{value:"Properties",id:"properties",level:2},{value:"MessagePassed",id:"messagepassed",level:3},{value:"Source",id:"source",level:4}];function l(e){const r={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",p:"p",strong:"strong",...(0,t.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,n.jsx)(r.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,n.jsx)(r.strong,{children:"Docs"})]}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / WithdrawalEntry"]}),"\n",(0,n.jsx)(r.h1,{id:"interface-withdrawalentry",children:"Interface: WithdrawalEntry"}),"\n",(0,n.jsx)(r.p,{children:"Represents a withdrawal entry within the logs of a L2 to L1\nCrossChainMessage"}),"\n",(0,n.jsx)(r.h2,{id:"properties",children:"Properties"}),"\n",(0,n.jsx)(r.h3,{id:"messagepassed",children:"MessagePassed"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"MessagePassed"}),": ",(0,n.jsx)(r.code,{children:"any"})]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"source",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/interfaces/types.ts:292"})]})}function h(e={}){const{wrapper:r}={...(0,t.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},2333:(e,r,s)=>{s.d(r,{R:()=>d,x:()=>i});var n=s(9474);const t={},o=n.createContext(t);function d(e){const r=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:d(e.components),n.createElement(o.Provider,{value:r},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[4300],{1904:(e,r,s)=>{s.r(r),s.d(r,{assets:()=>c,contentTitle:()=>d,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>a});var n=s(6070),t=s(1582);const o={},d="Interface: WithdrawalEntry",i={id:"build-on-morph/sdk/interfaces/WithdrawalEntry",title:"WithdrawalEntry",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/interfaces/WithdrawalEntry.md",sourceDirName:"build-on-morph/sdk/interfaces",slug:"/build-on-morph/sdk/interfaces/WithdrawalEntry",permalink:"/docs/build-on-morph/sdk/interfaces/WithdrawalEntry",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/interfaces/WithdrawalEntry.md",tags:[],version:"current",frontMatter:{}},c={},a=[{value:"Properties",id:"properties",level:2},{value:"MessagePassed",id:"messagepassed",level:3},{value:"Source",id:"source",level:4}];function l(e){const r={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",p:"p",strong:"strong",...(0,t.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,n.jsx)(r.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,n.jsx)(r.strong,{children:"Docs"})]}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / WithdrawalEntry"]}),"\n",(0,n.jsx)(r.h1,{id:"interface-withdrawalentry",children:"Interface: WithdrawalEntry"}),"\n",(0,n.jsx)(r.p,{children:"Represents a withdrawal entry within the logs of a L2 to L1\nCrossChainMessage"}),"\n",(0,n.jsx)(r.h2,{id:"properties",children:"Properties"}),"\n",(0,n.jsx)(r.h3,{id:"messagepassed",children:"MessagePassed"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"MessagePassed"}),": ",(0,n.jsx)(r.code,{children:"any"})]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"source",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/interfaces/types.ts:292"})]})}function h(e={}){const{wrapper:r}={...(0,t.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},1582:(e,r,s)=>{s.d(r,{R:()=>d,x:()=>i});var n=s(758);const t={},o=n.createContext(t);function d(e){const r=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:d(e.components),n.createElement(o.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/cfe67a99.1a4c4cf9.js b/build/assets/js/cfe67a99.1a4c4cf9.js new file mode 100644 index 000000000..fc0332f60 --- /dev/null +++ b/build/assets/js/cfe67a99.1a4c4cf9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[9567],{9103:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>a,contentTitle:()=>i,default:()=>p,frontMatter:()=>r,metadata:()=>l,toc:()=>c});var s=o(6070),t=o(1582);const r={title:"User Onboarding",lang:"en-US"},i="User Onboarding",l={id:"build-on-morph/developer-resources/use-ecosystem-developer-tools/user-onboarding",title:"User Onboarding",description:"Reown (prev. known as WalletConnect)",source:"@site/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/9-user-onboarding.md",sourceDirName:"build-on-morph/developer-resources/use-ecosystem-developer-tools",slug:"/build-on-morph/developer-resources/use-ecosystem-developer-tools/user-onboarding",permalink:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/user-onboarding",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/9-user-onboarding.md",tags:[],version:"current",sidebarPosition:9,frontMatter:{title:"User Onboarding",lang:"en-US"},sidebar:"DeveloperSidebar",previous:{title:"Use SDK to interact with Morph",permalink:"/docs/build-on-morph/sdk/globals"},next:{title:"Cross Chain Interoperability",permalink:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/cross-chain-interoperability"}},a={},c=[{value:"Reown (prev. known as WalletConnect)",id:"reown-prev-known-as-walletconnect",level:2},{value:"AppKit",id:"appkit",level:3},{value:"WalletKit",id:"walletkit",level:3}];function d(e){const n={a:"a",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",strong:"strong",ul:"ul",...(0,t.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h1,{id:"user-onboarding",children:"User Onboarding"}),"\n",(0,s.jsx)(n.h2,{id:"reown-prev-known-as-walletconnect",children:"Reown (prev. known as WalletConnect)"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.a,{href:"https://reown.com/?utm_source=morph&utm_medium=docs&utm_campaign=backlinks",children:"Reown"})})," gives developers the tools to build user experiences that make digital ownership effortless, intuitive, and secure."]}),"\n",(0,s.jsxs)(n.p,{children:["Reown has two major product offerings, they are, ",(0,s.jsx)(n.strong,{children:"AppKit"})," and ",(0,s.jsx)(n.strong,{children:"WalletKit"}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"appkit",children:"AppKit"}),"\n",(0,s.jsx)(n.p,{children:"AppKit is a powerful, free, and fully open-source SDK for developers looking to integrate wallet connections and other Web3 functionalities into their apps on any EVM and non-EVM chain. In just a few simple steps, you can provide your users with seamless wallet access, one-click authentication, social logins, and notifications\u2014streamlining their experience while enabling advanced features like on-ramp functionality, in-app token swaps and smart accounts."}),"\n",(0,s.jsx)(n.h3,{id:"walletkit",children:"WalletKit"}),"\n",(0,s.jsx)(n.p,{children:"WalletKit is a robust, open-source SDK designed to empower seamless wallet connections and interactions across any blockchain. With WalletKit, you can offer your users a simple and secure way to connect with thousands of apps, enabling features like one-click authentication, secure transaction signing, and streamlined wallet address verification. Its chain-agnostic design ensures effortless multi-chain support, eliminating the need for complex integrations while delivering unmatched connectivity and security."}),"\n",(0,s.jsxs)(n.p,{children:["To summarize, ",(0,s.jsx)(n.strong,{children:"AppKit"})," is for ",(0,s.jsx)(n.strong,{children:"Web3 applications"})," and ",(0,s.jsx)(n.strong,{children:"WalletKit"})," is for ",(0,s.jsx)(n.strong,{children:"Web3 wallets"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"You will be able to use Reown AppKit to power end-to-end wallet interactions on your Web3 app deployed on Morph."}),"\n",(0,s.jsx)(n.p,{children:"Some links to learn more about Reown:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://reown.com/?utm_source=morph&utm_medium=docs&utm_campaign=backlinks",children:"Website"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://reown.com/blog?utm_source=morph&utm_medium=docs&utm_campaign=backlinks",children:"Blog"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://docs.reown.com/?utm_source=morph&utm_medium=docs&utm_campaign=backlinks",children:"Docs"})}),"\n"]})]})}function p(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},1582:(e,n,o)=>{o.d(n,{R:()=>i,x:()=>l});var s=o(758);const t={},r=s.createContext(t);function i(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/d26d133a.254b86a7.js b/build/assets/js/d26d133a.254b86a7.js deleted file mode 100644 index 4df7f762a..000000000 --- a/build/assets/js/d26d133a.254b86a7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[2487],{3160:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>h,contentTitle:()=>o,default:()=>d,frontMatter:()=>r,metadata:()=>s,toc:()=>a});var n=i(3274),l=i(2333);const r={title:"Wallet Setup",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},o=void 0,s={id:"quick-start/wallet-setup",title:"Wallet Setup",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/quick-start/2-wallet-setup.md",sourceDirName:"quick-start",slug:"/quick-start/wallet-setup",permalink:"/docs/quick-start/wallet-setup",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/quick-start/2-wallet-setup.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{title:"Wallet Setup",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"Voting Rules in Voice of the Jungle",permalink:"/docs/quick-start/morph-zoo/voting-rules"},next:{title:"Faucet",permalink:"/docs/quick-start/faucet"}},h={},a=[{value:"Wallet",id:"wallet",level:2},{value:"Bitget Wallet",id:"bitget-wallet",level:3},{value:"MetaMask",id:"metamask",level:3},{value:"Manual network configuration",id:"manual-network-configuration",level:3},{value:"Network Configuration",id:"network-configuration",level:4}];function c(e){const t={a:"a",em:"em",h2:"h2",h3:"h3",h4:"h4",img:"img",li:"li",ol:"ol",p:"p",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,l.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h2,{id:"wallet",children:"Wallet"}),"\n",(0,n.jsx)(t.p,{children:"To interact with dApps on Morph, you need a compatible wallet. Below are some example wallets and configuration tips."}),"\n",(0,n.jsx)(t.h3,{id:"bitget-wallet",children:"Bitget Wallet"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Bitget Wallet",src:i(4504).A+"",width:"1024",height:"512"})}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["Installation: Bitget Wallet can be installed from their ",(0,n.jsx)(t.a,{href:"https://web3.bitget.com/en/wallet-download",children:"official website"}),"."]}),"\n",(0,n.jsx)(t.li,{children:"Importing Configurations:"}),"\n"]}),"\n",(0,n.jsxs)(t.ol,{children:["\n",(0,n.jsxs)(t.li,{children:["To add Morph mainnet within Bitget Wallet, go to ",(0,n.jsx)(t.em,{children:"Wallet"})," tab"]}),"\n",(0,n.jsxs)(t.li,{children:["Click on the mainnet dropdown, and select ",(0,n.jsx)(t.em,{children:"Add Mainnet"}),"."]}),"\n",(0,n.jsxs)(t.li,{children:["Search for Morph in the list and select it (to add testnet, select ",(0,n.jsx)(t.em,{children:"Morph Holesky"}),")."]}),"\n"]}),"\n",(0,n.jsx)(t.h3,{id:"metamask",children:"MetaMask"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["Installation: MetaMask can be installed from their ",(0,n.jsx)(t.a,{href:"https://metamask.io/download/",children:"official website"}),"."]}),"\n",(0,n.jsxs)(t.li,{children:['Importing Configurations: To set up MetaMask for Morph, click the "add to wallet" button on the ',(0,n.jsx)(t.a,{href:"https://explorer.morphl2.io/",children:"Morph Holesky block explorer page"}),". This will automatically import the chain ID and RPC URLs for the Morph Mainnet & Testnet."]}),"\n",(0,n.jsx)(t.li,{children:'Using Ethereum Holesky Testnet: Morph Testnet utilizes the Ethereum Holesky testnet as its underlying L1, which is already configured in MetaMask by default. To access it, enable "Show/hide test networks" in the MetaMask network selection dropdown.'}),"\n"]}),"\n",(0,n.jsx)(t.h3,{id:"manual-network-configuration",children:"Manual network configuration"}),"\n",(0,n.jsx)(t.p,{children:"Currently, the Add to wallet links may not be compatible with all wallets yet. If you are having issues using them, you may need to manually add the Morph Mainnet & Testnet by inserting the configuration details from the table below:"}),"\n",(0,n.jsx)(t.h4,{id:"network-configuration",children:"Network Configuration"}),"\n",(0,n.jsxs)(t.table,{children:[(0,n.jsx)(t.thead,{children:(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.th,{children:"Name"}),(0,n.jsx)(t.th,{children:"RPC Url(s)"}),(0,n.jsx)(t.th,{children:"Chain ID"}),(0,n.jsx)(t.th,{children:"Block explorer"}),(0,n.jsx)(t.th,{children:"Symbol"})]})}),(0,n.jsxs)(t.tbody,{children:[(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:"Morph Mainnet"}),(0,n.jsx)(t.td,{children:(0,n.jsx)(t.a,{href:"https://rpc-quicknode.morphl2.io",children:"https://rpc-quicknode.morphl2.io"})}),(0,n.jsx)(t.td,{children:"2818"}),(0,n.jsx)(t.td,{children:(0,n.jsx)(t.a,{href:"https://explorer.morphl2.io",children:"https://explorer.morphl2.io"})}),(0,n.jsx)(t.td,{children:"ETH"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:"Ethereum Mainnet"}),(0,n.jsx)(t.td,{children:(0,n.jsx)(t.a,{href:"https://ethereum-rpc.publicnode.com/",children:"https://ethereum-rpc.publicnode.com/"})}),(0,n.jsx)(t.td,{children:"1"}),(0,n.jsx)(t.td,{children:(0,n.jsx)(t.a,{href:"https://etherscan.io",children:"https://etherscan.io"})}),(0,n.jsx)(t.td,{children:"ETH"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:"Morph Holesky Testnet"}),(0,n.jsx)(t.td,{children:(0,n.jsx)(t.a,{href:"https://rpc-quicknode-holesky.morphl2.io",children:"https://rpc-quicknode-holesky.morphl2.io"})}),(0,n.jsx)(t.td,{children:"2810"}),(0,n.jsx)(t.td,{children:(0,n.jsx)(t.a,{href:"https://explorer-holesky.morphl2.io",children:"https://explorer-holesky.morphl2.io"})}),(0,n.jsx)(t.td,{children:"ETH"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:"Ethereum Holesky"}),(0,n.jsx)(t.td,{children:(0,n.jsx)(t.a,{href:"https://ethereum-holesky-rpc.publicnode.com/",children:"https://ethereum-holesky-rpc.publicnode.com/"})}),(0,n.jsx)(t.td,{children:"17000"}),(0,n.jsx)(t.td,{children:(0,n.jsx)(t.a,{href:"https://holesky.etherscan.io",children:"https://holesky.etherscan.io"})}),(0,n.jsx)(t.td,{children:"ETH"})]})]})]}),"\n",(0,n.jsxs)(t.p,{children:["You can also visit ",(0,n.jsx)(t.a,{href:"https://chainlist.org/?chain=11155111&search=morph&testnets=true",children:"chainlist"})," to add Morph."]})]})}function d(e={}){const{wrapper:t}={...(0,l.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},4504:(e,t,i)=>{i.d(t,{A:()=>n});const n=i.p+"assets/images/bitgetwallet-daacbe3eec4f40e395c926e7082694a2.png"},2333:(e,t,i)=>{i.d(t,{R:()=>o,x:()=>s});var n=i(9474);const l={},r=n.createContext(l);function o(e){const t=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:o(e.components),n.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/d26d133a.fac89a01.js b/build/assets/js/d26d133a.fac89a01.js new file mode 100644 index 000000000..581bdda00 --- /dev/null +++ b/build/assets/js/d26d133a.fac89a01.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[2487],{3566:(e,t,l)=>{l.r(t),l.d(t,{assets:()=>h,contentTitle:()=>o,default:()=>d,frontMatter:()=>r,metadata:()=>s,toc:()=>a});var i=l(6070),n=l(1582);const r={title:"Wallet Setup",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},o=void 0,s={id:"quick-start/wallet-setup",title:"Wallet Setup",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/quick-start/2-wallet-setup.md",sourceDirName:"quick-start",slug:"/quick-start/wallet-setup",permalink:"/docs/quick-start/wallet-setup",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/quick-start/2-wallet-setup.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{title:"Wallet Setup",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"FAQs",permalink:"/docs/about-morph/faqs"},next:{title:"Faucet",permalink:"/docs/quick-start/faucet"}},h={},a=[{value:"Wallet",id:"wallet",level:2},{value:"Bitget Wallet",id:"bitget-wallet",level:3},{value:"OKX Walllet",id:"okx-walllet",level:3},{value:"MetaMask",id:"metamask",level:3},{value:"Manual network configuration",id:"manual-network-configuration",level:3},{value:"Network Configuration",id:"network-configuration",level:4}];function c(e){const t={a:"a",em:"em",h2:"h2",h3:"h3",h4:"h4",img:"img",li:"li",ol:"ol",p:"p",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,n.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.h2,{id:"wallet",children:"Wallet"}),"\n",(0,i.jsx)(t.p,{children:"To interact with dApps on Morph, you need a compatible wallet. Below are some example wallets and configuration tips."}),"\n",(0,i.jsx)(t.h3,{id:"bitget-wallet",children:"Bitget Wallet"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"Bitget Wallet",src:l(220).A+"",width:"1024",height:"512"})}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:["Installation: Bitget Wallet can be installed from their ",(0,i.jsx)(t.a,{href:"https://web3.bitget.com/en/wallet-download",children:"official website"}),"."]}),"\n",(0,i.jsx)(t.li,{children:"Importing Configurations:"}),"\n"]}),"\n",(0,i.jsxs)(t.ol,{children:["\n",(0,i.jsxs)(t.li,{children:["To add Morph mainnet within Bitget Wallet, go to ",(0,i.jsx)(t.em,{children:"Wallet"})," tab"]}),"\n",(0,i.jsxs)(t.li,{children:["Click on the mainnet dropdown, and select ",(0,i.jsx)(t.em,{children:"Add Mainnet"}),"."]}),"\n",(0,i.jsxs)(t.li,{children:["Search for Morph in the list and select it (to add testnet, select ",(0,i.jsx)(t.em,{children:"Morph Holesky"}),")."]}),"\n"]}),"\n",(0,i.jsx)(t.h3,{id:"okx-walllet",children:"OKX Walllet"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:["Installation: You can download ",(0,i.jsx)(t.a,{href:"https://chromewebstore.google.com/detail/okx-wallet/mcohilncbfahbmgdjkbpemcciiolgcge",children:"OKX wallet extension"})," for desktop usage and use OKX wallet on mobile by downloading OKX app."]}),"\n"]}),"\n",(0,i.jsx)(t.h3,{id:"metamask",children:"MetaMask"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:["Installation: MetaMask can be installed from their ",(0,i.jsx)(t.a,{href:"https://metamask.io/download/",children:"official website"}),"."]}),"\n",(0,i.jsxs)(t.li,{children:['Importing Configurations: To set up MetaMask for Morph, click the "add to wallet" button on the ',(0,i.jsx)(t.a,{href:"https://explorer.morphl2.io/",children:"Morph Holesky block explorer page"}),". This will automatically import the chain ID and RPC URLs for the Morph Mainnet & Testnet."]}),"\n",(0,i.jsx)(t.li,{children:'Using Ethereum Holesky Testnet: Morph Testnet utilizes the Ethereum Holesky testnet as its underlying L1, which is already configured in MetaMask by default. To access it, enable "Show/hide test networks" in the MetaMask network selection dropdown.'}),"\n"]}),"\n",(0,i.jsx)(t.h3,{id:"manual-network-configuration",children:"Manual network configuration"}),"\n",(0,i.jsx)(t.p,{children:"Currently, the Add to wallet links may not be compatible with all wallets yet. If you are having issues using them, you may need to manually add the Morph Mainnet & Testnet by inserting the configuration details from the table below:"}),"\n",(0,i.jsx)(t.h4,{id:"network-configuration",children:"Network Configuration"}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Name"}),(0,i.jsx)(t.th,{children:"RPC Url(s)"}),(0,i.jsx)(t.th,{children:"Chain ID"}),(0,i.jsx)(t.th,{children:"Block explorer"}),(0,i.jsx)(t.th,{children:"Symbol"})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"Morph Mainnet"}),(0,i.jsx)(t.td,{children:(0,i.jsx)(t.a,{href:"https://rpc-quicknode.morphl2.io",children:"https://rpc-quicknode.morphl2.io"})}),(0,i.jsx)(t.td,{children:"2818"}),(0,i.jsx)(t.td,{children:(0,i.jsx)(t.a,{href:"https://explorer.morphl2.io",children:"https://explorer.morphl2.io"})}),(0,i.jsx)(t.td,{children:"ETH"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"Ethereum Mainnet"}),(0,i.jsx)(t.td,{children:(0,i.jsx)(t.a,{href:"https://ethereum-rpc.publicnode.com/",children:"https://ethereum-rpc.publicnode.com/"})}),(0,i.jsx)(t.td,{children:"1"}),(0,i.jsx)(t.td,{children:(0,i.jsx)(t.a,{href:"https://etherscan.io",children:"https://etherscan.io"})}),(0,i.jsx)(t.td,{children:"ETH"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"Morph Holesky Testnet"}),(0,i.jsx)(t.td,{children:(0,i.jsx)(t.a,{href:"https://rpc-quicknode-holesky.morphl2.io",children:"https://rpc-quicknode-holesky.morphl2.io"})}),(0,i.jsx)(t.td,{children:"2810"}),(0,i.jsx)(t.td,{children:(0,i.jsx)(t.a,{href:"https://explorer-holesky.morphl2.io",children:"https://explorer-holesky.morphl2.io"})}),(0,i.jsx)(t.td,{children:"ETH"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"Ethereum Holesky"}),(0,i.jsx)(t.td,{children:(0,i.jsx)(t.a,{href:"https://ethereum-holesky-rpc.publicnode.com/",children:"https://ethereum-holesky-rpc.publicnode.com/"})}),(0,i.jsx)(t.td,{children:"17000"}),(0,i.jsx)(t.td,{children:(0,i.jsx)(t.a,{href:"https://holesky.etherscan.io",children:"https://holesky.etherscan.io"})}),(0,i.jsx)(t.td,{children:"ETH"})]})]})]}),"\n",(0,i.jsxs)(t.p,{children:["You can also visit ",(0,i.jsx)(t.a,{href:"https://chainlist.org/?chain=11155111&search=morph&testnets=true",children:"chainlist"})," to add Morph."]})]})}function d(e={}){const{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},220:(e,t,l)=>{l.d(t,{A:()=>i});const i=l.p+"assets/images/bitgetwallet-daacbe3eec4f40e395c926e7082694a2.png"},1582:(e,t,l)=>{l.d(t,{R:()=>o,x:()=>s});var i=l(758);const n={},r=i.createContext(n);function o(e){const t=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:o(e.components),i.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/d475c619.8cd567b5.js b/build/assets/js/d475c619.8cd567b5.js deleted file mode 100644 index 00f4d7b73..000000000 --- a/build/assets/js/d475c619.8cd567b5.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[5042],{4394:(e,s,i)=>{i.r(s),i.d(s,{assets:()=>a,contentTitle:()=>d,default:()=>c,frontMatter:()=>o,metadata:()=>l,toc:()=>h});var r=i(3274),n=i(2333);const o={title:"Use SDK to interact with Morph",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},d="@morph-l2/sdk",l={id:"build-on-morph/sdk/globals",title:"Use SDK to interact with Morph",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/build-on-morph/sdk/globals.md",sourceDirName:"build-on-morph/sdk",slug:"/build-on-morph/sdk/globals",permalink:"/docs/build-on-morph/sdk/globals",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/globals.md",tags:[],version:"current",frontMatter:{title:"Use SDK to interact with Morph",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"Bridge between Morph and Ethereum",permalink:"/docs/build-on-morph/build-on-morph/bridge-between-morph-and-ethereum"},next:{title:"Safe Multi-Signature Wallet",permalink:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/safe-multi-signature-wallet"}},a={},h=[{value:"Installation",id:"installation",level:2},{value:"Docs",id:"docs",level:2},{value:"Using the SDK",id:"using-the-sdk",level:2},{value:"CrossChainMessenger",id:"crosschainmessenger",level:3},{value:"L2Provider and related utilities",id:"l2provider-and-related-utilities",level:3},{value:"Other utilities",id:"other-utilities",level:3},{value:"Documents",id:"documents",level:2},{value:"Enumerations",id:"enumerations",level:3},{value:"Classes",id:"classes",level:3},{value:"Interfaces",id:"interfaces",level:3},{value:"Type Aliases",id:"type-aliases",level:3},{value:"Variables",id:"variables",level:3},{value:"Functions",id:"functions",level:3}];function t(e){const s={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",hr:"hr",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,n.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"@morph-l2/sdk"})," \u2022 ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,r.jsx)(s.strong,{children:"Docs"})})]}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h1,{id:"morph-l2sdk",children:"@morph-l2/sdk"}),"\n",(0,r.jsxs)(s.p,{children:["The ",(0,r.jsx)(s.code,{children:"@morph-l2/sdk"})," package provides a set of tools for interacting with Morph."]}),"\n",(0,r.jsx)(s.h2,{id:"installation",children:"Installation"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{children:"npm install @morph-l2/sdk@latest\n"})}),"\n",(0,r.jsx)(s.h2,{id:"docs",children:"Docs"}),"\n",(0,r.jsxs)(s.p,{children:["You can find auto-generated API documentation over at ",(0,r.jsx)(s.a,{href:"https://docs.morphl2.io/docs/build-on-morph/sdk/globals/",children:"docs.morphl2.io"}),"."]}),"\n",(0,r.jsx)(s.h2,{id:"using-the-sdk",children:"Using the SDK"}),"\n",(0,r.jsx)(s.h3,{id:"crosschainmessenger",children:"CrossChainMessenger"}),"\n",(0,r.jsxs)(s.p,{children:["The ",(0,r.jsx)(s.a,{href:"https://docs.morphl2.io/docs/build-on-morph/sdk/classes/CrossChainMessenger",children:(0,r.jsx)(s.code,{children:"CrossChainMessenger"})})," class simplifies the process of moving assets and data between Ethereum and Morph.\nYou can use this class to, for example, initiate a withdrawal of ERC20 tokens from Morph back to Ethereum, accurately track when the withdrawal is ready to be finalized on Ethereum, and execute the finalization transaction after the challenge period has elapsed.\nThe ",(0,r.jsx)(s.code,{children:"CrossChainMessenger"})," can handle deposits and withdrawals of ETH and any ERC20-compatible token.\nThe ",(0,r.jsx)(s.code,{children:"CrossChainMessenger"})," automatically connects to all relevant contracts so complex configuration is not necessary."]}),"\n",(0,r.jsx)(s.h3,{id:"l2provider-and-related-utilities",children:"L2Provider and related utilities"}),"\n",(0,r.jsxs)(s.p,{children:["The Morph SDK includes ",(0,r.jsx)(s.a,{href:"https://docs.morphl2.io/docs/build-on-morph/sdk/type-aliases/L2Provider",children:"various utilities"})," for handling Morph's ",(0,r.jsx)(s.a,{href:"https://docs.morphl2.io/docs/build-on-morph/build-on-morph/understand-transaction-cost-on-morph/",children:"transaction fee model"}),".\nFor instance, ",(0,r.jsx)(s.a,{href:"https://docs.morphl2.io/docs/build-on-morph/sdk/functions/estimateTotalGasCost",children:(0,r.jsx)(s.code,{children:"estimateTotalGasCost"})})," will estimate the total cost (in wei) to send at transaction on Morph including both the L2 execution cost and the L1 data cost.\nYou can also use the ",(0,r.jsx)(s.a,{href:"https://docs.morphl2.io/docs/build-on-morph/sdk/functions/asL2Provider",children:(0,r.jsx)(s.code,{children:"asL2Provider"})})," function to wrap an ethers Provider object into an ",(0,r.jsx)(s.code,{children:"L2Provider"})," which will have all of these helper functions attached."]}),"\n",(0,r.jsx)(s.h3,{id:"other-utilities",children:"Other utilities"}),"\n",(0,r.jsxs)(s.p,{children:["The SDK contains other useful helper functions and constants.\nFor a complete list, refer to the auto-generated ",(0,r.jsx)(s.a,{href:"https://docs.morphl2.io/docs/build-on-morph/sdk/globals/",children:"SDK documentation"})]}),"\n",(0,r.jsx)(s.h2,{id:"documents",children:"Documents"}),"\n",(0,r.jsx)(s.h3,{id:"enumerations",children:"Enumerations"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/enumerations/L1ChainID",children:"L1ChainID"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/enumerations/L1RpcUrls",children:"L1RpcUrls"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/enumerations/L2ChainID",children:"L2ChainID"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/enumerations/L2RpcUrls",children:"L2RpcUrls"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/enumerations/MessageDirection",children:"MessageDirection"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/enumerations/MessageReceiptStatus",children:"MessageReceiptStatus"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/enumerations/MessageStatus",children:"MessageStatus"})}),"\n"]}),"\n",(0,r.jsx)(s.h3,{id:"classes",children:"Classes"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/CrossChainMessenger",children:"CrossChainMessenger"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/ETHBridgeAdapter",children:"ETHBridgeAdapter"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter",children:"StandardBridgeAdapter"})}),"\n"]}),"\n",(0,r.jsx)(s.h3,{id:"interfaces",children:"Interfaces"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/BridgeAdapterData",children:"BridgeAdapterData"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/BridgeAdapters",children:"BridgeAdapters"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage",children:"CoreCrossChainMessage"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CrossChainMessage",children:"CrossChainMessage"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CrossChainMessageRequest",children:"CrossChainMessageRequest"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:"IActionOptions"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter",children:"IBridgeAdapter"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/L2Block",children:"L2Block"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/L2BlockWithTransactions",children:"L2BlockWithTransactions"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/L2Transaction",children:"L2Transaction"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/MessageReceipt",children:"MessageReceipt"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/OEContracts",children:"OEContracts"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/OEContractsLike",children:"OEContractsLike"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/OEL1Contracts",children:"OEL1Contracts"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/OEL2Contracts",children:"OEL2Contracts"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/ProvenWithdrawal",children:"ProvenWithdrawal"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/StateRoot",children:"StateRoot"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/StateRootBatch",children:"StateRootBatch"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/StateRootBatchHeader",children:"StateRootBatchHeader"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage",children:"TokenBridgeMessage"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/WithdrawMessageProof",children:"WithdrawMessageProof"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/WithdrawalEntry",children:"WithdrawalEntry"})}),"\n"]}),"\n",(0,r.jsx)(s.h3,{id:"type-aliases",children:"Type Aliases"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:"AddressLike"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/DeepPartial",children:"DeepPartial"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/L1Provider",children:"L1Provider"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/L2Provider",children:"L2Provider"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/LowLevelMessage",children:"LowLevelMessage"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/MessageLike",children:"MessageLike"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/MessageRequestLike",children:"MessageRequestLike"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:"NumberLike"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/OEL1ContractsLike",children:"OEL1ContractsLike"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/OEL2ContractsLike",children:"OEL2ContractsLike"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/ProviderLike",children:"ProviderLike"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/SignerLike",children:"SignerLike"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/SignerOrProviderLike",children:"SignerOrProviderLike"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/TransactionLike",children:"TransactionLike"})}),"\n"]}),"\n",(0,r.jsx)(s.h3,{id:"variables",children:"Variables"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/variables/BRIDGE_ADAPTER_DATA",children:"BRIDGE_ADAPTER_DATA"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/variables/CHAIN_BLOCK_TIMES",children:"CHAIN_BLOCK_TIMES"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/variables/CONTRACT_ADDRESSES",children:"CONTRACT_ADDRESSES"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/variables/DEFAULT_L1_CONTRACT_ADDRESSES",children:"DEFAULT_L1_CONTRACT_ADDRESSES"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/variables/DEFAULT_L2_CONTRACT_ADDRESSES",children:"DEFAULT_L2_CONTRACT_ADDRESSES"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/variables/DEPOSIT_CONFIRMATION_BLOCKS",children:"DEPOSIT_CONFIRMATION_BLOCKS"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/variables/l1BridgeName",children:"l1BridgeName"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/variables/l1CrossDomainMessengerName",children:"l1CrossDomainMessengerName"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/variables/l2BridgeName",children:"l2BridgeName"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/variables/l2CrossDomainMessengerName",children:"l2CrossDomainMessengerName"})}),"\n"]}),"\n",(0,r.jsx)(s.h3,{id:"functions",children:"Functions"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/functions/asL2Provider",children:"asL2Provider"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/functions/estimateL1Gas",children:"estimateL1Gas"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/functions/estimateL1GasCost",children:"estimateL1GasCost"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/functions/estimateL2GasCost",children:"estimateL2GasCost"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/functions/estimateTotalGasCost",children:"estimateTotalGasCost"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/functions/getAllOEContracts",children:"getAllOEContracts"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/functions/getBridgeAdapters",children:"getBridgeAdapters"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/functions/getL1GasPrice",children:"getL1GasPrice"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/functions/getOEContract",children:"getOEContract"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/functions/hashLowLevelMessageV2",children:"hashLowLevelMessageV2"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/functions/hashMessageHash",children:"hashMessageHash"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/functions/isL2Provider",children:"isL2Provider"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/functions/migratedWithdrawalGasLimit",children:"migratedWithdrawalGasLimit"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/functions/omit",children:"omit"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/functions/toAddress",children:"toAddress"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/functions/toBigNumber",children:"toBigNumber"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/functions/toNumber",children:"toNumber"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/functions/toProvider",children:"toProvider"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/functions/toSignerOrProvider",children:"toSignerOrProvider"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/functions/toTransactionHash",children:"toTransactionHash"})}),"\n"]})]})}function c(e={}){const{wrapper:s}={...(0,n.R)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(t,{...e})}):t(e)}},2333:(e,s,i)=>{i.d(s,{R:()=>d,x:()=>l});var r=i(9474);const n={},o=r.createContext(n);function d(e){const s=r.useContext(o);return r.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function l(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:d(e.components),r.createElement(o.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/d475c619.99c439c5.js b/build/assets/js/d475c619.99c439c5.js new file mode 100644 index 000000000..a0f682eb5 --- /dev/null +++ b/build/assets/js/d475c619.99c439c5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[5042],{3084:(e,s,i)=>{i.r(s),i.d(s,{assets:()=>h,contentTitle:()=>d,default:()=>c,frontMatter:()=>o,metadata:()=>l,toc:()=>a});var r=i(6070),n=i(1582);const o={title:"Use SDK to interact with Morph",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},d="@morph-l2/sdk",l={id:"build-on-morph/sdk/globals",title:"Use SDK to interact with Morph",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/build-on-morph/sdk/globals.md",sourceDirName:"build-on-morph/sdk",slug:"/build-on-morph/sdk/globals",permalink:"/docs/build-on-morph/sdk/globals",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/globals.md",tags:[],version:"current",frontMatter:{title:"Use SDK to interact with Morph",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"Bridge between Morph and Ethereum",permalink:"/docs/build-on-morph/build-on-morph/bridge-between-morph-and-ethereum"},next:{title:"User Onboarding",permalink:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/user-onboarding"}},h={},a=[{value:"Installation",id:"installation",level:2},{value:"Docs",id:"docs",level:2},{value:"Using the SDK",id:"using-the-sdk",level:2},{value:"CrossChainMessenger",id:"crosschainmessenger",level:3},{value:"L2Provider and related utilities",id:"l2provider-and-related-utilities",level:3},{value:"Other utilities",id:"other-utilities",level:3},{value:"Documents",id:"documents",level:2},{value:"Enumerations",id:"enumerations",level:3},{value:"Classes",id:"classes",level:3},{value:"Interfaces",id:"interfaces",level:3},{value:"Type Aliases",id:"type-aliases",level:3},{value:"Variables",id:"variables",level:3},{value:"Functions",id:"functions",level:3}];function t(e){const s={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",hr:"hr",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,n.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"@morph-l2/sdk"})," \u2022 ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,r.jsx)(s.strong,{children:"Docs"})})]}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h1,{id:"morph-l2sdk",children:"@morph-l2/sdk"}),"\n",(0,r.jsxs)(s.p,{children:["The ",(0,r.jsx)(s.code,{children:"@morph-l2/sdk"})," package provides a set of tools for interacting with Morph."]}),"\n",(0,r.jsx)(s.h2,{id:"installation",children:"Installation"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{children:"npm install @morph-l2/sdk@latest\n"})}),"\n",(0,r.jsx)(s.h2,{id:"docs",children:"Docs"}),"\n",(0,r.jsxs)(s.p,{children:["You can find auto-generated API documentation over at ",(0,r.jsx)(s.a,{href:"https://docs.morphl2.io/docs/build-on-morph/sdk/globals/",children:"docs.morphl2.io"}),"."]}),"\n",(0,r.jsx)(s.h2,{id:"using-the-sdk",children:"Using the SDK"}),"\n",(0,r.jsx)(s.h3,{id:"crosschainmessenger",children:"CrossChainMessenger"}),"\n",(0,r.jsxs)(s.p,{children:["The ",(0,r.jsx)(s.a,{href:"https://docs.morphl2.io/docs/build-on-morph/sdk/classes/CrossChainMessenger",children:(0,r.jsx)(s.code,{children:"CrossChainMessenger"})})," class simplifies the process of moving assets and data between Ethereum and Morph.\nYou can use this class to, for example, initiate a withdrawal of ERC20 tokens from Morph back to Ethereum, accurately track when the withdrawal is ready to be finalized on Ethereum, and execute the finalization transaction after the challenge period has elapsed.\nThe ",(0,r.jsx)(s.code,{children:"CrossChainMessenger"})," can handle deposits and withdrawals of ETH and any ERC20-compatible token.\nThe ",(0,r.jsx)(s.code,{children:"CrossChainMessenger"})," automatically connects to all relevant contracts so complex configuration is not necessary."]}),"\n",(0,r.jsx)(s.h3,{id:"l2provider-and-related-utilities",children:"L2Provider and related utilities"}),"\n",(0,r.jsxs)(s.p,{children:["The Morph SDK includes ",(0,r.jsx)(s.a,{href:"https://docs.morphl2.io/docs/build-on-morph/sdk/type-aliases/L2Provider",children:"various utilities"})," for handling Morph's ",(0,r.jsx)(s.a,{href:"https://docs.morphl2.io/docs/build-on-morph/build-on-morph/understand-transaction-cost-on-morph/",children:"transaction fee model"}),".\nFor instance, ",(0,r.jsx)(s.a,{href:"https://docs.morphl2.io/docs/build-on-morph/sdk/functions/estimateTotalGasCost",children:(0,r.jsx)(s.code,{children:"estimateTotalGasCost"})})," will estimate the total cost (in wei) to send at transaction on Morph including both the L2 execution cost and the L1 data cost.\nYou can also use the ",(0,r.jsx)(s.a,{href:"https://docs.morphl2.io/docs/build-on-morph/sdk/functions/asL2Provider",children:(0,r.jsx)(s.code,{children:"asL2Provider"})})," function to wrap an ethers Provider object into an ",(0,r.jsx)(s.code,{children:"L2Provider"})," which will have all of these helper functions attached."]}),"\n",(0,r.jsx)(s.h3,{id:"other-utilities",children:"Other utilities"}),"\n",(0,r.jsxs)(s.p,{children:["The SDK contains other useful helper functions and constants.\nFor a complete list, refer to the auto-generated ",(0,r.jsx)(s.a,{href:"https://docs.morphl2.io/docs/build-on-morph/sdk/globals/",children:"SDK documentation"})]}),"\n",(0,r.jsx)(s.h2,{id:"documents",children:"Documents"}),"\n",(0,r.jsx)(s.h3,{id:"enumerations",children:"Enumerations"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/enumerations/L1ChainID",children:"L1ChainID"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/enumerations/L1RpcUrls",children:"L1RpcUrls"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/enumerations/L2ChainID",children:"L2ChainID"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/enumerations/L2RpcUrls",children:"L2RpcUrls"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/enumerations/MessageDirection",children:"MessageDirection"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/enumerations/MessageReceiptStatus",children:"MessageReceiptStatus"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/enumerations/MessageStatus",children:"MessageStatus"})}),"\n"]}),"\n",(0,r.jsx)(s.h3,{id:"classes",children:"Classes"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/CrossChainMessenger",children:"CrossChainMessenger"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/ETHBridgeAdapter",children:"ETHBridgeAdapter"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter",children:"StandardBridgeAdapter"})}),"\n"]}),"\n",(0,r.jsx)(s.h3,{id:"interfaces",children:"Interfaces"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/BridgeAdapterData",children:"BridgeAdapterData"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/BridgeAdapters",children:"BridgeAdapters"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage",children:"CoreCrossChainMessage"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CrossChainMessage",children:"CrossChainMessage"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CrossChainMessageRequest",children:"CrossChainMessageRequest"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:"IActionOptions"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter",children:"IBridgeAdapter"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/L2Block",children:"L2Block"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/L2BlockWithTransactions",children:"L2BlockWithTransactions"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/L2Transaction",children:"L2Transaction"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/MessageReceipt",children:"MessageReceipt"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/OEContracts",children:"OEContracts"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/OEContractsLike",children:"OEContractsLike"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/OEL1Contracts",children:"OEL1Contracts"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/OEL2Contracts",children:"OEL2Contracts"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/ProvenWithdrawal",children:"ProvenWithdrawal"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/StateRoot",children:"StateRoot"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/StateRootBatch",children:"StateRootBatch"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/StateRootBatchHeader",children:"StateRootBatchHeader"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage",children:"TokenBridgeMessage"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/WithdrawMessageProof",children:"WithdrawMessageProof"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/WithdrawalEntry",children:"WithdrawalEntry"})}),"\n"]}),"\n",(0,r.jsx)(s.h3,{id:"type-aliases",children:"Type Aliases"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:"AddressLike"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/DeepPartial",children:"DeepPartial"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/L1Provider",children:"L1Provider"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/L2Provider",children:"L2Provider"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/LowLevelMessage",children:"LowLevelMessage"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/MessageLike",children:"MessageLike"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/MessageRequestLike",children:"MessageRequestLike"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:"NumberLike"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/OEL1ContractsLike",children:"OEL1ContractsLike"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/OEL2ContractsLike",children:"OEL2ContractsLike"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/ProviderLike",children:"ProviderLike"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/SignerLike",children:"SignerLike"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/SignerOrProviderLike",children:"SignerOrProviderLike"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/TransactionLike",children:"TransactionLike"})}),"\n"]}),"\n",(0,r.jsx)(s.h3,{id:"variables",children:"Variables"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/variables/BRIDGE_ADAPTER_DATA",children:"BRIDGE_ADAPTER_DATA"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/variables/CHAIN_BLOCK_TIMES",children:"CHAIN_BLOCK_TIMES"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/variables/CONTRACT_ADDRESSES",children:"CONTRACT_ADDRESSES"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/variables/DEFAULT_L1_CONTRACT_ADDRESSES",children:"DEFAULT_L1_CONTRACT_ADDRESSES"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/variables/DEFAULT_L2_CONTRACT_ADDRESSES",children:"DEFAULT_L2_CONTRACT_ADDRESSES"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/variables/DEPOSIT_CONFIRMATION_BLOCKS",children:"DEPOSIT_CONFIRMATION_BLOCKS"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/variables/l1BridgeName",children:"l1BridgeName"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/variables/l1CrossDomainMessengerName",children:"l1CrossDomainMessengerName"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/variables/l2BridgeName",children:"l2BridgeName"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/variables/l2CrossDomainMessengerName",children:"l2CrossDomainMessengerName"})}),"\n"]}),"\n",(0,r.jsx)(s.h3,{id:"functions",children:"Functions"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/functions/asL2Provider",children:"asL2Provider"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/functions/estimateL1Gas",children:"estimateL1Gas"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/functions/estimateL1GasCost",children:"estimateL1GasCost"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/functions/estimateL2GasCost",children:"estimateL2GasCost"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/functions/estimateTotalGasCost",children:"estimateTotalGasCost"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/functions/getAllOEContracts",children:"getAllOEContracts"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/functions/getBridgeAdapters",children:"getBridgeAdapters"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/functions/getL1GasPrice",children:"getL1GasPrice"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/functions/getOEContract",children:"getOEContract"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/functions/hashLowLevelMessageV2",children:"hashLowLevelMessageV2"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/functions/hashMessageHash",children:"hashMessageHash"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/functions/isL2Provider",children:"isL2Provider"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/functions/migratedWithdrawalGasLimit",children:"migratedWithdrawalGasLimit"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/functions/omit",children:"omit"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/functions/toAddress",children:"toAddress"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/functions/toBigNumber",children:"toBigNumber"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/functions/toNumber",children:"toNumber"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/functions/toProvider",children:"toProvider"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/functions/toSignerOrProvider",children:"toSignerOrProvider"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/functions/toTransactionHash",children:"toTransactionHash"})}),"\n"]})]})}function c(e={}){const{wrapper:s}={...(0,n.R)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(t,{...e})}):t(e)}},1582:(e,s,i)=>{i.d(s,{R:()=>d,x:()=>l});var r=i(758);const n={},o=r.createContext(n);function d(e){const s=r.useContext(o);return r.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function l(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:d(e.components),r.createElement(o.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/d4781eda.3e83ba38.js b/build/assets/js/d4781eda.7819b49e.js similarity index 87% rename from build/assets/js/d4781eda.3e83ba38.js rename to build/assets/js/d4781eda.7819b49e.js index 773a286af..60cd8e5a9 100644 --- a/build/assets/js/d4781eda.3e83ba38.js +++ b/build/assets/js/d4781eda.7819b49e.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[1201],{3317:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>h,frontMatter:()=>o,metadata:()=>d,toc:()=>l});var n=r(3274),s=r(2333);const o={},c="Interface: StateRootBatchHeader",d={id:"build-on-morph/sdk/interfaces/StateRootBatchHeader",title:"StateRootBatchHeader",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/interfaces/StateRootBatchHeader.md",sourceDirName:"build-on-morph/sdk/interfaces",slug:"/build-on-morph/sdk/interfaces/StateRootBatchHeader",permalink:"/docs/build-on-morph/sdk/interfaces/StateRootBatchHeader",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/interfaces/StateRootBatchHeader.md",tags:[],version:"current",frontMatter:{}},i={},l=[{value:"Properties",id:"properties",level:2},{value:"batchIndex",id:"batchindex",level:3},{value:"Source",id:"source",level:4},{value:"batchRoot",id:"batchroot",level:3},{value:"Source",id:"source-1",level:4},{value:"batchSize",id:"batchsize",level:3},{value:"Source",id:"source-2",level:4},{value:"extraData",id:"extradata",level:3},{value:"Source",id:"source-3",level:4},{value:"prevTotalElements",id:"prevtotalelements",level:3},{value:"Source",id:"source-4",level:4}];function a(e){const t={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",p:"p",strong:"strong",...(0,s.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,n.jsx)(t.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,n.jsx)(t.strong,{children:"Docs"})]}),"\n",(0,n.jsx)(t.hr,{}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / StateRootBatchHeader"]}),"\n",(0,n.jsx)(t.h1,{id:"interface-staterootbatchheader",children:"Interface: StateRootBatchHeader"}),"\n",(0,n.jsx)(t.p,{children:"Header for a state root batch."}),"\n",(0,n.jsx)(t.h2,{id:"properties",children:"Properties"}),"\n",(0,n.jsx)(t.h3,{id:"batchindex",children:"batchIndex"}),"\n",(0,n.jsxs)(t.blockquote,{children:["\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"batchIndex"}),": ",(0,n.jsx)(t.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,n.jsx)(t.h4,{id:"source",children:"Source"}),"\n",(0,n.jsx)(t.p,{children:"src/interfaces/types.ts:326"}),"\n",(0,n.jsx)(t.hr,{}),"\n",(0,n.jsx)(t.h3,{id:"batchroot",children:"batchRoot"}),"\n",(0,n.jsxs)(t.blockquote,{children:["\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"batchRoot"}),": ",(0,n.jsx)(t.code,{children:"string"})]}),"\n"]}),"\n",(0,n.jsx)(t.h4,{id:"source-1",children:"Source"}),"\n",(0,n.jsx)(t.p,{children:"src/interfaces/types.ts:327"}),"\n",(0,n.jsx)(t.hr,{}),"\n",(0,n.jsx)(t.h3,{id:"batchsize",children:"batchSize"}),"\n",(0,n.jsxs)(t.blockquote,{children:["\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"batchSize"}),": ",(0,n.jsx)(t.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,n.jsx)(t.h4,{id:"source-2",children:"Source"}),"\n",(0,n.jsx)(t.p,{children:"src/interfaces/types.ts:328"}),"\n",(0,n.jsx)(t.hr,{}),"\n",(0,n.jsx)(t.h3,{id:"extradata",children:"extraData"}),"\n",(0,n.jsxs)(t.blockquote,{children:["\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"extraData"}),": ",(0,n.jsx)(t.code,{children:"string"})]}),"\n"]}),"\n",(0,n.jsx)(t.h4,{id:"source-3",children:"Source"}),"\n",(0,n.jsx)(t.p,{children:"src/interfaces/types.ts:330"}),"\n",(0,n.jsx)(t.hr,{}),"\n",(0,n.jsx)(t.h3,{id:"prevtotalelements",children:"prevTotalElements"}),"\n",(0,n.jsxs)(t.blockquote,{children:["\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"prevTotalElements"}),": ",(0,n.jsx)(t.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,n.jsx)(t.h4,{id:"source-4",children:"Source"}),"\n",(0,n.jsx)(t.p,{children:"src/interfaces/types.ts:329"})]})}function h(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(a,{...e})}):a(e)}},2333:(e,t,r)=>{r.d(t,{R:()=>c,x:()=>d});var n=r(9474);const s={},o=n.createContext(s);function c(e){const t=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:c(e.components),n.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[1201],{5859:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>h,frontMatter:()=>o,metadata:()=>d,toc:()=>l});var n=r(6070),s=r(1582);const o={},c="Interface: StateRootBatchHeader",d={id:"build-on-morph/sdk/interfaces/StateRootBatchHeader",title:"StateRootBatchHeader",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/interfaces/StateRootBatchHeader.md",sourceDirName:"build-on-morph/sdk/interfaces",slug:"/build-on-morph/sdk/interfaces/StateRootBatchHeader",permalink:"/docs/build-on-morph/sdk/interfaces/StateRootBatchHeader",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/interfaces/StateRootBatchHeader.md",tags:[],version:"current",frontMatter:{}},i={},l=[{value:"Properties",id:"properties",level:2},{value:"batchIndex",id:"batchindex",level:3},{value:"Source",id:"source",level:4},{value:"batchRoot",id:"batchroot",level:3},{value:"Source",id:"source-1",level:4},{value:"batchSize",id:"batchsize",level:3},{value:"Source",id:"source-2",level:4},{value:"extraData",id:"extradata",level:3},{value:"Source",id:"source-3",level:4},{value:"prevTotalElements",id:"prevtotalelements",level:3},{value:"Source",id:"source-4",level:4}];function a(e){const t={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",p:"p",strong:"strong",...(0,s.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,n.jsx)(t.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,n.jsx)(t.strong,{children:"Docs"})]}),"\n",(0,n.jsx)(t.hr,{}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / StateRootBatchHeader"]}),"\n",(0,n.jsx)(t.h1,{id:"interface-staterootbatchheader",children:"Interface: StateRootBatchHeader"}),"\n",(0,n.jsx)(t.p,{children:"Header for a state root batch."}),"\n",(0,n.jsx)(t.h2,{id:"properties",children:"Properties"}),"\n",(0,n.jsx)(t.h3,{id:"batchindex",children:"batchIndex"}),"\n",(0,n.jsxs)(t.blockquote,{children:["\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"batchIndex"}),": ",(0,n.jsx)(t.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,n.jsx)(t.h4,{id:"source",children:"Source"}),"\n",(0,n.jsx)(t.p,{children:"src/interfaces/types.ts:326"}),"\n",(0,n.jsx)(t.hr,{}),"\n",(0,n.jsx)(t.h3,{id:"batchroot",children:"batchRoot"}),"\n",(0,n.jsxs)(t.blockquote,{children:["\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"batchRoot"}),": ",(0,n.jsx)(t.code,{children:"string"})]}),"\n"]}),"\n",(0,n.jsx)(t.h4,{id:"source-1",children:"Source"}),"\n",(0,n.jsx)(t.p,{children:"src/interfaces/types.ts:327"}),"\n",(0,n.jsx)(t.hr,{}),"\n",(0,n.jsx)(t.h3,{id:"batchsize",children:"batchSize"}),"\n",(0,n.jsxs)(t.blockquote,{children:["\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"batchSize"}),": ",(0,n.jsx)(t.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,n.jsx)(t.h4,{id:"source-2",children:"Source"}),"\n",(0,n.jsx)(t.p,{children:"src/interfaces/types.ts:328"}),"\n",(0,n.jsx)(t.hr,{}),"\n",(0,n.jsx)(t.h3,{id:"extradata",children:"extraData"}),"\n",(0,n.jsxs)(t.blockquote,{children:["\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"extraData"}),": ",(0,n.jsx)(t.code,{children:"string"})]}),"\n"]}),"\n",(0,n.jsx)(t.h4,{id:"source-3",children:"Source"}),"\n",(0,n.jsx)(t.p,{children:"src/interfaces/types.ts:330"}),"\n",(0,n.jsx)(t.hr,{}),"\n",(0,n.jsx)(t.h3,{id:"prevtotalelements",children:"prevTotalElements"}),"\n",(0,n.jsxs)(t.blockquote,{children:["\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"prevTotalElements"}),": ",(0,n.jsx)(t.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,n.jsx)(t.h4,{id:"source-4",children:"Source"}),"\n",(0,n.jsx)(t.p,{children:"src/interfaces/types.ts:329"})]})}function h(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(a,{...e})}):a(e)}},1582:(e,t,r)=>{r.d(t,{R:()=>c,x:()=>d});var n=r(758);const s={},o=n.createContext(s);function c(e){const t=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:c(e.components),n.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/d8273606.a2846103.js b/build/assets/js/d8273606.8055d03c.js similarity index 87% rename from build/assets/js/d8273606.a2846103.js rename to build/assets/js/d8273606.8055d03c.js index b6aacae74..c3bd13096 100644 --- a/build/assets/js/d8273606.a2846103.js +++ b/build/assets/js/d8273606.8055d03c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[7275],{8233:(e,r,s)=>{s.r(r),s.d(r,{assets:()=>c,contentTitle:()=>o,default:()=>a,frontMatter:()=>t,metadata:()=>i,toc:()=>l});var n=s(3274),d=s(2333);const t={},o="Function: getBridgeAdapters()",i={id:"build-on-morph/sdk/functions/getBridgeAdapters",title:"getBridgeAdapters",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/functions/getBridgeAdapters.md",sourceDirName:"build-on-morph/sdk/functions",slug:"/build-on-morph/sdk/functions/getBridgeAdapters",permalink:"/docs/build-on-morph/sdk/functions/getBridgeAdapters",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/functions/getBridgeAdapters.md",tags:[],version:"current",frontMatter:{}},c={},l=[{value:"Parameters",id:"parameters",level:2},{value:"Returns",id:"returns",level:2},{value:"Source",id:"source",level:2}];function h(e){const r={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,d.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,n.jsx)(r.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,n.jsx)(r.strong,{children:"Docs"})]}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / getBridgeAdapters"]}),"\n",(0,n.jsx)(r.h1,{id:"function-getbridgeadapters",children:"Function: getBridgeAdapters()"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"getBridgeAdapters"}),"(",(0,n.jsx)(r.code,{children:"l2ChainId"}),", ",(0,n.jsx)(r.code,{children:"messenger"}),", ",(0,n.jsx)(r.code,{children:"opts"}),"?): ",(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/interfaces/BridgeAdapters",children:(0,n.jsx)(r.code,{children:"BridgeAdapters"})})]}),"\n"]}),"\n",(0,n.jsx)(r.p,{children:"Gets a series of bridge adapters for the given L2 chain ID."}),"\n",(0,n.jsx)(r.h2,{id:"parameters",children:"Parameters"}),"\n",(0,n.jsxs)(r.p,{children:["\u2022 ",(0,n.jsx)(r.strong,{children:"l2ChainId"}),": ",(0,n.jsx)(r.code,{children:"number"})]}),"\n",(0,n.jsx)(r.p,{children:"Chain ID for the L2 network."}),"\n",(0,n.jsxs)(r.p,{children:["\u2022 ",(0,n.jsx)(r.strong,{children:"messenger"}),": ",(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/classes/CrossChainMessenger",children:(0,n.jsx)(r.code,{children:"CrossChainMessenger"})})]}),"\n",(0,n.jsx)(r.p,{children:"Cross chain messenger to connect to the bridge adapters"}),"\n",(0,n.jsxs)(r.p,{children:["\u2022 ",(0,n.jsx)(r.strong,{children:"opts?"})]}),"\n",(0,n.jsx)(r.p,{children:"Additional options for connecting to the custom bridges."}),"\n",(0,n.jsxs)(r.p,{children:["\u2022 ",(0,n.jsx)(r.strong,{children:"opts.contracts?"}),": ",(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/type-aliases/DeepPartial",children:(0,n.jsx)(r.code,{children:"DeepPartial"})}),"<",(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/interfaces/OEContractsLike",children:(0,n.jsx)(r.code,{children:"OEContractsLike"})}),">"]}),"\n",(0,n.jsxs)(r.p,{children:["\u2022 ",(0,n.jsx)(r.strong,{children:"opts.overrides?"}),": ",(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/interfaces/BridgeAdapterData",children:(0,n.jsx)(r.code,{children:"BridgeAdapterData"})})]}),"\n",(0,n.jsx)(r.p,{children:"Custom bridge adapters."}),"\n",(0,n.jsx)(r.h2,{id:"returns",children:"Returns"}),"\n",(0,n.jsx)(r.p,{children:(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/interfaces/BridgeAdapters",children:(0,n.jsx)(r.code,{children:"BridgeAdapters"})})}),"\n",(0,n.jsx)(r.p,{children:"An object containing all bridge adapters"}),"\n",(0,n.jsx)(r.h2,{id:"source",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/utils/contracts.ts:142"})]})}function a(e={}){const{wrapper:r}={...(0,d.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},2333:(e,r,s)=>{s.d(r,{R:()=>o,x:()=>i});var n=s(9474);const d={},t=n.createContext(d);function o(e){const r=n.useContext(t);return n.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:o(e.components),n.createElement(t.Provider,{value:r},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[7275],{6663:(e,r,s)=>{s.r(r),s.d(r,{assets:()=>c,contentTitle:()=>o,default:()=>a,frontMatter:()=>t,metadata:()=>i,toc:()=>l});var n=s(6070),d=s(1582);const t={},o="Function: getBridgeAdapters()",i={id:"build-on-morph/sdk/functions/getBridgeAdapters",title:"getBridgeAdapters",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/functions/getBridgeAdapters.md",sourceDirName:"build-on-morph/sdk/functions",slug:"/build-on-morph/sdk/functions/getBridgeAdapters",permalink:"/docs/build-on-morph/sdk/functions/getBridgeAdapters",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/functions/getBridgeAdapters.md",tags:[],version:"current",frontMatter:{}},c={},l=[{value:"Parameters",id:"parameters",level:2},{value:"Returns",id:"returns",level:2},{value:"Source",id:"source",level:2}];function h(e){const r={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,d.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,n.jsx)(r.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,n.jsx)(r.strong,{children:"Docs"})]}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / getBridgeAdapters"]}),"\n",(0,n.jsx)(r.h1,{id:"function-getbridgeadapters",children:"Function: getBridgeAdapters()"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"getBridgeAdapters"}),"(",(0,n.jsx)(r.code,{children:"l2ChainId"}),", ",(0,n.jsx)(r.code,{children:"messenger"}),", ",(0,n.jsx)(r.code,{children:"opts"}),"?): ",(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/interfaces/BridgeAdapters",children:(0,n.jsx)(r.code,{children:"BridgeAdapters"})})]}),"\n"]}),"\n",(0,n.jsx)(r.p,{children:"Gets a series of bridge adapters for the given L2 chain ID."}),"\n",(0,n.jsx)(r.h2,{id:"parameters",children:"Parameters"}),"\n",(0,n.jsxs)(r.p,{children:["\u2022 ",(0,n.jsx)(r.strong,{children:"l2ChainId"}),": ",(0,n.jsx)(r.code,{children:"number"})]}),"\n",(0,n.jsx)(r.p,{children:"Chain ID for the L2 network."}),"\n",(0,n.jsxs)(r.p,{children:["\u2022 ",(0,n.jsx)(r.strong,{children:"messenger"}),": ",(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/classes/CrossChainMessenger",children:(0,n.jsx)(r.code,{children:"CrossChainMessenger"})})]}),"\n",(0,n.jsx)(r.p,{children:"Cross chain messenger to connect to the bridge adapters"}),"\n",(0,n.jsxs)(r.p,{children:["\u2022 ",(0,n.jsx)(r.strong,{children:"opts?"})]}),"\n",(0,n.jsx)(r.p,{children:"Additional options for connecting to the custom bridges."}),"\n",(0,n.jsxs)(r.p,{children:["\u2022 ",(0,n.jsx)(r.strong,{children:"opts.contracts?"}),": ",(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/type-aliases/DeepPartial",children:(0,n.jsx)(r.code,{children:"DeepPartial"})}),"<",(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/interfaces/OEContractsLike",children:(0,n.jsx)(r.code,{children:"OEContractsLike"})}),">"]}),"\n",(0,n.jsxs)(r.p,{children:["\u2022 ",(0,n.jsx)(r.strong,{children:"opts.overrides?"}),": ",(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/interfaces/BridgeAdapterData",children:(0,n.jsx)(r.code,{children:"BridgeAdapterData"})})]}),"\n",(0,n.jsx)(r.p,{children:"Custom bridge adapters."}),"\n",(0,n.jsx)(r.h2,{id:"returns",children:"Returns"}),"\n",(0,n.jsx)(r.p,{children:(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/interfaces/BridgeAdapters",children:(0,n.jsx)(r.code,{children:"BridgeAdapters"})})}),"\n",(0,n.jsx)(r.p,{children:"An object containing all bridge adapters"}),"\n",(0,n.jsx)(r.h2,{id:"source",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/utils/contracts.ts:142"})]})}function a(e={}){const{wrapper:r}={...(0,d.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},1582:(e,r,s)=>{s.d(r,{R:()=>o,x:()=>i});var n=s(758);const d={},t=n.createContext(d);function o(e){const r=n.useContext(t);return n.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:o(e.components),n.createElement(t.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/dcf2e50b.f1ec2836.js b/build/assets/js/dcf2e50b.f1ec2836.js new file mode 100644 index 000000000..2511a6ebb --- /dev/null +++ b/build/assets/js/dcf2e50b.f1ec2836.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[6232],{5130:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>d,frontMatter:()=>r,metadata:()=>a,toc:()=>l});var s=t(6070),i=t(1582);const r={title:"Morph's Decentralized Sequencer Network",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},o=void 0,a={id:"how-morph-works/decentralized-sequencers/morph-decentralized-sequencer-network",title:"Morph's Decentralized Sequencer Network",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/how-morph-works/decentralized-sequencers/1-morph-decentralized-sequencer-network.md",sourceDirName:"how-morph-works/decentralized-sequencers",slug:"/how-morph-works/decentralized-sequencers/morph-decentralized-sequencer-network",permalink:"/docs/how-morph-works/decentralized-sequencers/morph-decentralized-sequencer-network",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/how-morph-works/decentralized-sequencers/1-morph-decentralized-sequencer-network.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{title:"Morph's Decentralized Sequencer Network",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"Optimistic zkEVM",permalink:"/docs/how-morph-works/optimistic-zkevm"},next:{title:"Rollup",permalink:"/docs/how-morph-works/general-protocol-design/rollup"}},c={},l=[{value:"The Importance of Decentralized Sequencers",id:"the-importance-of-decentralized-sequencers",level:2},{value:"What is a sequencer and what does it do?",id:"what-is-a-sequencer-and-what-does-it-do",level:3},{value:"What are the problems with centralized sequencers?",id:"what-are-the-problems-with-centralized-sequencers",level:3},{value:"Vulnerability of a Single Point of Failure",id:"vulnerability-of-a-single-point-of-failure",level:4},{value:"Excessive Transaction Censorship",id:"excessive-transaction-censorship",level:4},{value:"Monopoly Over MEV",id:"monopoly-over-mev",level:4},{value:"What's Morph's Approach to Decentralized Sequencers?",id:"whats-morphs-approach-to-decentralized-sequencers",level:2},{value:"Efficiency:\u200b",id:"efficiency",level:3},{value:"Scalable and Manageable:\u200b",id:"scalable-and-manageable",level:3},{value:"Solutions Formulated on These Principles\u200b",id:"solutions-formulated-on-these-principles",level:3},{value:"Architecture",id:"architecture",level:3},{value:"Sequencer Set Selection",id:"sequencer-set-selection",level:4},{value:"Layer 2 Blocks Generation",id:"layer-2-blocks-generation",level:3},{value:"Batching",id:"batching",level:3},{value:"Consensus Verification",id:"consensus-verification",level:3},{value:"Summary",id:"summary",level:2},{value:"Roadmap",id:"roadmap",level:2}];function h(e){const n={admonition:"admonition",h2:"h2",h3:"h3",h4:"h4",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"RVP",src:t(2213).A+"",width:"4000",height:"2000"})}),"\n",(0,s.jsx)(n.h2,{id:"the-importance-of-decentralized-sequencers",children:"The Importance of Decentralized Sequencers"}),"\n",(0,s.jsx)(n.h3,{id:"what-is-a-sequencer-and-what-does-it-do",children:"What is a sequencer and what does it do?"}),"\n",(0,s.jsx)(n.p,{children:"In a traditional Layer 1 blockchain, transactions are packaged and processed by miners in proof-of-work systems or validators nodes in proof-of-stake systems. These entities earn the authority to package, sequence, and produce blocks either through the competitive task of computational mining or via staking-based elections."}),"\n",(0,s.jsx)(n.p,{children:"However, many current Layer 2 designs employ a single role, unburdened by competition or staking costs, responsible for packaging and sequencing all Layer 2 transactions. This entity is known as the \u201csequencer\u201d. Its duties extend beyond sequencing; it is also tasked with generating L2 blocks, periodically committing Layer 2 transactions and state changes to Layer 1, and addressing any potential challenges to its submissions."}),"\n",(0,s.jsx)(n.p,{children:"Centralized sequencers present a challenge due to their sole dominion over the sequencing and packaging of Layer 2 transactions. This monopoly raises concerns, largely stemming from this centralized control."}),"\n",(0,s.jsx)(n.h3,{id:"what-are-the-problems-with-centralized-sequencers",children:"What are the problems with centralized sequencers?"}),"\n",(0,s.jsx)(n.h4,{id:"vulnerability-of-a-single-point-of-failure",children:"Vulnerability of a Single Point of Failure"}),"\n",(0,s.jsx)(n.p,{children:"The proper functioning of Layer 2 is intrinsically tied to the operation of the sequencer. If the sequencer stops working, transactions from all Layer 2 users will not be processed, effectively bringing down Layer 2 operations. The problem is magnified when a single entity controls the sequencer. Should the entity fail, the entirety of the Layer 2 is paralyzed, rendering the system vulnerable to a single point of failure. Therefore, centralized sequencers pose a significant risk to the stability of Layer 2."}),"\n",(0,s.jsx)(n.h4,{id:"excessive-transaction-censorship",children:"Excessive Transaction Censorship"}),"\n",(0,s.jsx)(n.p,{children:"Centralized sequencers have the ability to reject user-submitted transactions, rendering them unprocessable \u2014 a blatant form of transaction censorship. In a scenario where a centralized Layer 2 deliberately blocks transactions involving its governance tokens, panic and selling among users is likely to follow.\nSome solutions allow users to submit their intended transactions directly on Layer 1. However, this process is time-consuming, often taking several hours, and burdens users with Layer 1 gas fees. Therefore, this alternative does not fundamentally solve the problem.\nIn a decentralized sequencer framework, should one sequencer decline a transaction, users can still relay it to alternative sequencers. The content of the next block is ultimately determined through consensus, ensuring no single entity can censor transactions based on personal interests."}),"\n",(0,s.jsx)(n.h4,{id:"monopoly-over-mev",children:"Monopoly Over MEV"}),"\n",(0,s.jsx)(n.p,{children:'Because the sequencer can determine the order (or "sequence") of received transactions, it effectively has a monopoly over all Miner Extractable Value (MEV). In this scenario, users must bear any potential losses incurred by the sequencer\u2019s exclusive control over MEV, necessitating an additional and unwarranted layer of trust in the sequencer.\nDecentralized sequencers introduce a competitive dynamic among multiple entities aiming for MEV. This competition eliminates the monopoly of any single sequencer, mitigating the adverse effects of unchecked MEV on users.'}),"\n",(0,s.jsx)(n.h2,{id:"whats-morphs-approach-to-decentralized-sequencers",children:"What's Morph's Approach to Decentralized Sequencers?"}),"\n",(0,s.jsx)(n.p,{children:"Morph is distinct from other Rollup projects due to the emphasis on establishing a decentralized sequencer network from inception. This design is guided by the following core principles:"}),"\n",(0,s.jsx)(n.h3,{id:"efficiency",children:"Efficiency:\u200b"}),"\n",(0,s.jsx)(n.p,{children:"Morph is first and foremost an Ethereum scaling solution, focused on improved efficiency and cost reduction. Our solution must guarantee fast execution and transaction confirmation at Layer 2 while maintaining the highest possible level of decentralization."}),"\n",(0,s.jsx)(n.h3,{id:"scalable-and-manageable",children:"Scalable and Manageable:\u200b"}),"\n",(0,s.jsx)(n.p,{children:"The sequencer network\u2019s design prioritizes ease of maintenance, expansion, and updating. If one network functionality requires maintenance, it should not disrupt the operation of other functionalities. In addition, the sequencer network should be adaptable and easily upgradable as new and more efficient solutions emerge."}),"\n",(0,s.jsx)(n.h3,{id:"solutions-formulated-on-these-principles",children:"Solutions Formulated on These Principles\u200b"}),"\n",(0,s.jsx)(n.p,{children:"With these principles, Morph\u2019s sequencer network design includes:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Modularity: The structure emphasizes modular components that are loosely connected, allowing for swift upgrades or replacements."}),"\n",(0,s.jsx)(n.li,{children:"Byzantine Fault Tolerant (BFT) Consensus: Sequencers employ a BFT consensus for L2 block generation."}),"\n",(0,s.jsx)(n.li,{children:"BLS Signature for Batch Signing: Sequencers sign a collective of L2 blocks using the BLS signature method. The L1 contract then verifies this L2 consensus through the BLS signature."}),"\n"]}),"\n",(0,s.jsxs)(n.admonition,{type:"tip",children:[(0,s.jsx)(n.p,{children:"Why BLS signature?"}),(0,s.jsx)(n.p,{children:"A current basic signature algorithm such as ECDSA in Ethereum has an excessive cost. This issue arises because the signature data needs to be submitted to the Layer 1 contract and requires payment of the corresponding cost. As the number of validators increases, this cost will also increase proportionally. By using BLS signatures, the cost of uploading signatures can be maintained at a constant level, unaffected by the gradual growth of the sequencer's quantity."})]}),"\n",(0,s.jsx)(n.h3,{id:"architecture",children:"Architecture"}),"\n",(0,s.jsx)(n.p,{children:"The following is a simple illustration of Morph\u2019s decentralized sequencing network architecture."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Sequencer Network Archi",src:t(4673).A+"",width:"3840",height:"2160"})}),"\n",(0,s.jsx)(n.h4,{id:"sequencer-set-selection",children:"Sequencer Set Selection"}),"\n",(0,s.jsx)(n.p,{children:"A complete Morph decentralized sequencer network consists of two parts:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Sequencer Set"})," : This forms the core group that provides sequencing services"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Sequencer Staking Contract"}),": This contract facilitates the selection of the sequencer set via an election process."]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Through the sequencer staking contract, members are elected into the sequencer set, where they collaboratively provide services for the Morph network. Periodically, the election results are synchronized to the Layer 1 Rollup contract. This synchronized data is utilized to obtain the BLS aggregate signatures of sequencer network participants for comparison and verification."}),"\n",(0,s.jsx)(n.h3,{id:"layer-2-blocks-generation",children:"Layer 2 Blocks Generation"}),"\n",(0,s.jsx)(n.p,{children:"Given Morph's modular design, each sequencer operates a consensus client that runs BFT to communicate with other sequencers."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Block Generation",src:t(4751).A+"",width:"3540",height:"1992"})}),"\n",(0,s.jsx)(n.p,{children:"Following the BFT consensus protocol, the selected sequencer extracts transactions from the mempool, constructs blocks, and synchronizes these blocks with other sequencers to undergo verification and voting. The end result is the generation of new Layer 2 blocks."}),"\n",(0,s.jsx)(n.h3,{id:"batching",children:"Batching"}),"\n",(0,s.jsx)(n.p,{children:"Considering the costs of uploading to and validating signatures on Layer 1, sequencers will sign a batch of blocks with BLS signatures at designated checkpoints."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"BlockSign",src:t(3809).A+"",width:"3540",height:"1992"})}),"\n",(0,s.jsx)(n.p,{children:"Post-signing, the designated sequencer forwards the collective batch of blocks to Layer 1 through its batch submitter component."}),"\n",(0,s.jsx)(n.h3,{id:"consensus-verification",children:"Consensus Verification"}),"\n",(0,s.jsx)(n.p,{children:"The selected sequencer must submit to the Layer 1 contract:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"The aggregated BLS signatures"}),"\n",(0,s.jsx)(n.li,{children:"The batch of transactions"}),"\n",(0,s.jsx)(n.li,{children:"The consensus-determined state"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The Layer 1 contract will verify the submitted signature to confirm the transaction's consensus."}),"\n",(0,s.jsx)(n.h2,{id:"summary",children:"Summary"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Morph operates a native decentralized sequencer network based on BFT consensus."}),"\n",(0,s.jsx)(n.li,{children:"Through protocol and network optimization, Morph maximizes the scalability of Ethereum while ensuring decentralization."}),"\n",(0,s.jsx)(n.li,{children:"Based on BLS signatures, other participants in Layer 1 and Layer 2 can effectively verify the consensus results of Layer 2, ensuring the security provided by the sequencer network is confirmable at the Layer 1 level."}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"roadmap",children:"Roadmap"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Stage 1"}),": Close test on morph beta testnet"]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Stage 2"}),": Decentralized sequencer network live on mainnet"]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Stage 3"}),": Open election of sequencer set"]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Stage 4"}),": Open Morph's sequencer network to the public l2 space"]})]})}function d(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},3809:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/batch-sign-8ddddc5b593f0238b63eff3a0f679b32.png"},4751:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/block-con-175b7060545d69ab99290496c4ca3d16.png"},2213:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/dseq1-afce583c551d8ca96f458ddb7ed2eac3.jpg"},4673:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/seq1-e90d0e983252714740968a8aaaca0dd8.png"},1582:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>a});var s=t(758);const i={},r=s.createContext(i);function o(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/dcf2e50b.ffa083f1.js b/build/assets/js/dcf2e50b.ffa083f1.js deleted file mode 100644 index dbca1e527..000000000 --- a/build/assets/js/dcf2e50b.ffa083f1.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[6232],{7e3:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>d,frontMatter:()=>r,metadata:()=>a,toc:()=>l});var s=t(3274),i=t(2333);const r={title:"Morph's Decentralized Sequencer Network",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},o=void 0,a={id:"how-morph-works/decentralized-sequencers/morph-decentralized-sequencer-network",title:"Morph's Decentralized Sequencer Network",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/how-morph-works/decentralized-sequencers/1-morph-decentralized-sequencer-network.md",sourceDirName:"how-morph-works/decentralized-sequencers",slug:"/how-morph-works/decentralized-sequencers/morph-decentralized-sequencer-network",permalink:"/docs/how-morph-works/decentralized-sequencers/morph-decentralized-sequencer-network",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/how-morph-works/decentralized-sequencers/1-morph-decentralized-sequencer-network.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{title:"Morph's Decentralized Sequencer Network",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"Optimistic zkEVM",permalink:"/docs/how-morph-works/optimistic-zkevm"},next:{title:"Rollup",permalink:"/docs/how-morph-works/general-protocol-design/rollup"}},c={},l=[{value:"The Importance of Decentralized Sequencers",id:"the-importance-of-decentralized-sequencers",level:2},{value:"What is a sequencer and what does it do?",id:"what-is-a-sequencer-and-what-does-it-do",level:3},{value:"What are the problems with centralized sequencers?",id:"what-are-the-problems-with-centralized-sequencers",level:3},{value:"Vulnerability of a Single Point of Failure",id:"vulnerability-of-a-single-point-of-failure",level:4},{value:"Excessive Transaction Censorship",id:"excessive-transaction-censorship",level:4},{value:"Monopoly Over MEV",id:"monopoly-over-mev",level:4},{value:"What's Morph's Approach to Decentralized Sequencers?",id:"whats-morphs-approach-to-decentralized-sequencers",level:2},{value:"Efficiency:\u200b",id:"efficiency",level:3},{value:"Scalable and Manageable:\u200b",id:"scalable-and-manageable",level:3},{value:"Solutions Formulated on These Principles\u200b",id:"solutions-formulated-on-these-principles",level:3},{value:"Architecture",id:"architecture",level:3},{value:"Sequencer Set Selection",id:"sequencer-set-selection",level:4},{value:"Layer 2 Blocks Generation",id:"layer-2-blocks-generation",level:3},{value:"Batching",id:"batching",level:3},{value:"Consensus Verification",id:"consensus-verification",level:3},{value:"Summary",id:"summary",level:2},{value:"Roadmap",id:"roadmap",level:2}];function h(e){const n={admonition:"admonition",h2:"h2",h3:"h3",h4:"h4",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"RVP",src:t(9718).A+"",width:"4000",height:"2000"})}),"\n",(0,s.jsx)(n.h2,{id:"the-importance-of-decentralized-sequencers",children:"The Importance of Decentralized Sequencers"}),"\n",(0,s.jsx)(n.h3,{id:"what-is-a-sequencer-and-what-does-it-do",children:"What is a sequencer and what does it do?"}),"\n",(0,s.jsx)(n.p,{children:"In a traditional Layer 1 blockchain, transactions are packaged and processed by miners in proof-of-work systems or validators nodes in proof-of-stake systems. These entities earn the authority to package, sequence, and produce blocks either through the competitive task of computational mining or via staking-based elections."}),"\n",(0,s.jsx)(n.p,{children:"However, many current Layer 2 designs employ a single role, unburdened by competition or staking costs, responsible for packaging and sequencing all Layer 2 transactions. This entity is known as the \u201csequencer\u201d. Its duties extend beyond sequencing; it is also tasked with generating L2 blocks, periodically committing Layer 2 transactions and state changes to Layer 1, and addressing any potential challenges to its submissions."}),"\n",(0,s.jsx)(n.p,{children:"Centralized sequencers present a challenge due to their sole dominion over the sequencing and packaging of Layer 2 transactions. This monopoly raises concerns, largely stemming from this centralized control."}),"\n",(0,s.jsx)(n.h3,{id:"what-are-the-problems-with-centralized-sequencers",children:"What are the problems with centralized sequencers?"}),"\n",(0,s.jsx)(n.h4,{id:"vulnerability-of-a-single-point-of-failure",children:"Vulnerability of a Single Point of Failure"}),"\n",(0,s.jsx)(n.p,{children:"The proper functioning of Layer 2 is intrinsically tied to the operation of the sequencer. If the sequencer stops working, transactions from all Layer 2 users will not be processed, effectively bringing down Layer 2 operations. The problem is magnified when a single entity controls the sequencer. Should the entity fail, the entirety of the Layer 2 is paralyzed, rendering the system vulnerable to a single point of failure. Therefore, centralized sequencers pose a significant risk to the stability of Layer 2."}),"\n",(0,s.jsx)(n.h4,{id:"excessive-transaction-censorship",children:"Excessive Transaction Censorship"}),"\n",(0,s.jsx)(n.p,{children:"Centralized sequencers have the ability to reject user-submitted transactions, rendering them unprocessable \u2014 a blatant form of transaction censorship. In a scenario where a centralized Layer 2 deliberately blocks transactions involving its governance tokens, panic and selling among users is likely to follow.\nSome solutions allow users to submit their intended transactions directly on Layer 1. However, this process is time-consuming, often taking several hours, and burdens users with Layer 1 gas fees. Therefore, this alternative does not fundamentally solve the problem.\nIn a decentralized sequencer framework, should one sequencer decline a transaction, users can still relay it to alternative sequencers. The content of the next block is ultimately determined through consensus, ensuring no single entity can censor transactions based on personal interests."}),"\n",(0,s.jsx)(n.h4,{id:"monopoly-over-mev",children:"Monopoly Over MEV"}),"\n",(0,s.jsx)(n.p,{children:'Because the sequencer can determine the order (or "sequence") of received transactions, it effectively has a monopoly over all Miner Extractable Value (MEV). In this scenario, users must bear any potential losses incurred by the sequencer\u2019s exclusive control over MEV, necessitating an additional and unwarranted layer of trust in the sequencer.\nDecentralized sequencers introduce a competitive dynamic among multiple entities aiming for MEV. This competition eliminates the monopoly of any single sequencer, mitigating the adverse effects of unchecked MEV on users.'}),"\n",(0,s.jsx)(n.h2,{id:"whats-morphs-approach-to-decentralized-sequencers",children:"What's Morph's Approach to Decentralized Sequencers?"}),"\n",(0,s.jsx)(n.p,{children:"Morph is distinct from other Rollup projects due to the emphasis on establishing a decentralized sequencer network from inception. This design is guided by the following core principles:"}),"\n",(0,s.jsx)(n.h3,{id:"efficiency",children:"Efficiency:\u200b"}),"\n",(0,s.jsx)(n.p,{children:"Morph is first and foremost an Ethereum scaling solution, focused on improved efficiency and cost reduction. Our solution must guarantee fast execution and transaction confirmation at Layer 2 while maintaining the highest possible level of decentralization."}),"\n",(0,s.jsx)(n.h3,{id:"scalable-and-manageable",children:"Scalable and Manageable:\u200b"}),"\n",(0,s.jsx)(n.p,{children:"The sequencer network\u2019s design prioritizes ease of maintenance, expansion, and updating. If one network functionality requires maintenance, it should not disrupt the operation of other functionalities. In addition, the sequencer network should be adaptable and easily upgradable as new and more efficient solutions emerge."}),"\n",(0,s.jsx)(n.h3,{id:"solutions-formulated-on-these-principles",children:"Solutions Formulated on These Principles\u200b"}),"\n",(0,s.jsx)(n.p,{children:"With these principles, Morph\u2019s sequencer network design includes:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Modularity: The structure emphasizes modular components that are loosely connected, allowing for swift upgrades or replacements."}),"\n",(0,s.jsx)(n.li,{children:"Byzantine Fault Tolerant (BFT) Consensus: Sequencers employ a BFT consensus for L2 block generation."}),"\n",(0,s.jsx)(n.li,{children:"BLS Signature for Batch Signing: Sequencers sign a collective of L2 blocks using the BLS signature method. The L1 contract then verifies this L2 consensus through the BLS signature."}),"\n"]}),"\n",(0,s.jsxs)(n.admonition,{type:"tip",children:[(0,s.jsx)(n.p,{children:"Why BLS signature?"}),(0,s.jsx)(n.p,{children:"A current basic signature algorithm such as ECDSA in Ethereum has an excessive cost. This issue arises because the signature data needs to be submitted to the Layer 1 contract and requires payment of the corresponding cost. As the number of validators increases, this cost will also increase proportionally. By using BLS signatures, the cost of uploading signatures can be maintained at a constant level, unaffected by the gradual growth of the sequencer's quantity."})]}),"\n",(0,s.jsx)(n.h3,{id:"architecture",children:"Architecture"}),"\n",(0,s.jsx)(n.p,{children:"The following is a simple illustration of Morph\u2019s decentralized sequencing network architecture."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Sequencer Network Archi",src:t(5469).A+"",width:"3840",height:"2160"})}),"\n",(0,s.jsx)(n.h4,{id:"sequencer-set-selection",children:"Sequencer Set Selection"}),"\n",(0,s.jsx)(n.p,{children:"A complete Morph decentralized sequencer network consists of two parts:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Sequencer Set"})," : This forms the core group that provides sequencing services"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Sequencer Staking Contract"}),": This contract facilitates the selection of the sequencer set via an election process."]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Through the sequencer staking contract, members are elected into the sequencer set, where they collaboratively provide services for the Morph network. Periodically, the election results are synchronized to the Layer 1 Rollup contract. This synchronized data is utilized to obtain the BLS aggregate signatures of sequencer network participants for comparison and verification."}),"\n",(0,s.jsx)(n.h3,{id:"layer-2-blocks-generation",children:"Layer 2 Blocks Generation"}),"\n",(0,s.jsx)(n.p,{children:"Given Morph's modular design, each sequencer operates a consensus client that runs BFT to communicate with other sequencers."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Block Generation",src:t(5331).A+"",width:"3540",height:"1992"})}),"\n",(0,s.jsx)(n.p,{children:"Following the BFT consensus protocol, the selected sequencer extracts transactions from the mempool, constructs blocks, and synchronizes these blocks with other sequencers to undergo verification and voting. The end result is the generation of new Layer 2 blocks."}),"\n",(0,s.jsx)(n.h3,{id:"batching",children:"Batching"}),"\n",(0,s.jsx)(n.p,{children:"Considering the costs of uploading to and validating signatures on Layer 1, sequencers will sign a batch of blocks with BLS signatures at designated checkpoints."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"BlockSign",src:t(6709).A+"",width:"3540",height:"1992"})}),"\n",(0,s.jsx)(n.p,{children:"Post-signing, the designated sequencer forwards the collective batch of blocks to Layer 1 through its batch submitter component."}),"\n",(0,s.jsx)(n.h3,{id:"consensus-verification",children:"Consensus Verification"}),"\n",(0,s.jsx)(n.p,{children:"The selected sequencer must submit to the Layer 1 contract:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"The aggregated BLS signatures"}),"\n",(0,s.jsx)(n.li,{children:"The batch of transactions"}),"\n",(0,s.jsx)(n.li,{children:"The consensus-determined state"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The Layer 1 contract will verify the submitted signature to confirm the transaction's consensus."}),"\n",(0,s.jsx)(n.h2,{id:"summary",children:"Summary"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Morph operates a native decentralized sequencer network based on BFT consensus."}),"\n",(0,s.jsx)(n.li,{children:"Through protocol and network optimization, Morph maximizes the scalability of Ethereum while ensuring decentralization."}),"\n",(0,s.jsx)(n.li,{children:"Based on BLS signatures, other participants in Layer 1 and Layer 2 can effectively verify the consensus results of Layer 2, ensuring the security provided by the sequencer network is confirmable at the Layer 1 level."}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"roadmap",children:"Roadmap"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Stage 1"}),": Close test on morph beta testnet"]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Stage 2"}),": Decentralized sequencer network live on mainnet"]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Stage 3"}),": Open election of sequencer set"]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Stage 4"}),": Open Morph's sequencer network to the public l2 space"]})]})}function d(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},6709:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/batch-sign-8ddddc5b593f0238b63eff3a0f679b32.png"},5331:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/block-con-175b7060545d69ab99290496c4ca3d16.png"},9718:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/dseq1-afce583c551d8ca96f458ddb7ed2eac3.jpg"},5469:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/seq1-e90d0e983252714740968a8aaaca0dd8.png"},2333:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>a});var s=t(9474);const i={},r=s.createContext(i);function o(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/dfd8dfaf.e8e601fd.js b/build/assets/js/dfd8dfaf.60141c7c.js similarity index 57% rename from build/assets/js/dfd8dfaf.e8e601fd.js rename to build/assets/js/dfd8dfaf.60141c7c.js index 0213b25ce..4f2be17db 100644 --- a/build/assets/js/dfd8dfaf.e8e601fd.js +++ b/build/assets/js/dfd8dfaf.60141c7c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[7430],{2352:(t,o,e)=>{e.r(o),e.d(o,{assets:()=>p,contentTitle:()=>s,default:()=>a,frontMatter:()=>c,metadata:()=>i,toc:()=>u});var n=e(3274),r=e(2333);const c={},s=void 0,i={id:"about-morph/key-concepts/optimistic-rollup",title:"optimistic-rollup",description:"",source:"@site/docs/about-morph/key-concepts/1-optimistic-rollup.md",sourceDirName:"about-morph/key-concepts",slug:"/about-morph/key-concepts/optimistic-rollup",permalink:"/docs/about-morph/key-concepts/optimistic-rollup",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/about-morph/key-concepts/1-optimistic-rollup.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{}},p={},u=[];function m(t){return(0,n.jsx)(n.Fragment,{})}function a(t={}){const{wrapper:o}={...(0,r.R)(),...t.components};return o?(0,n.jsx)(o,{...t,children:(0,n.jsx)(m,{...t})}):m()}},2333:(t,o,e)=>{e.d(o,{R:()=>s,x:()=>i});var n=e(9474);const r={},c=n.createContext(r);function s(t){const o=n.useContext(c);return n.useMemo((function(){return"function"==typeof t?t(o):{...o,...t}}),[o,t])}function i(t){let o;return o=t.disableParentContext?"function"==typeof t.components?t.components(r):t.components||r:s(t.components),n.createElement(c.Provider,{value:o},t.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[7430],{6418:(t,o,e)=>{e.r(o),e.d(o,{assets:()=>p,contentTitle:()=>s,default:()=>a,frontMatter:()=>c,metadata:()=>i,toc:()=>u});var n=e(6070),r=e(1582);const c={},s=void 0,i={id:"about-morph/key-concepts/optimistic-rollup",title:"optimistic-rollup",description:"",source:"@site/docs/about-morph/key-concepts/1-optimistic-rollup.md",sourceDirName:"about-morph/key-concepts",slug:"/about-morph/key-concepts/optimistic-rollup",permalink:"/docs/about-morph/key-concepts/optimistic-rollup",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/about-morph/key-concepts/1-optimistic-rollup.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{}},p={},u=[];function m(t){return(0,n.jsx)(n.Fragment,{})}function a(t={}){const{wrapper:o}={...(0,r.R)(),...t.components};return o?(0,n.jsx)(o,{...t,children:(0,n.jsx)(m,{...t})}):m()}},1582:(t,o,e)=>{e.d(o,{R:()=>s,x:()=>i});var n=e(758);const r={},c=n.createContext(r);function s(t){const o=n.useContext(c);return n.useMemo((function(){return"function"==typeof t?t(o):{...o,...t}}),[o,t])}function i(t){let o;return o=t.disableParentContext?"function"==typeof t.components?t.components(r):t.components||r:s(t.components),n.createElement(c.Provider,{value:o},t.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/e3875bab.3a4abd9c.js b/build/assets/js/e3875bab.3a4abd9c.js deleted file mode 100644 index 4ee5b61ff..000000000 --- a/build/assets/js/e3875bab.3a4abd9c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[6956],{7782:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>d,contentTitle:()=>i,default:()=>h,frontMatter:()=>o,metadata:()=>c,toc:()=>l});var r=n(3274),t=n(2333);const o={},i="Function: estimateL1Gas()",c={id:"build-on-morph/sdk/functions/estimateL1Gas",title:"estimateL1Gas",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/functions/estimateL1Gas.md",sourceDirName:"build-on-morph/sdk/functions",slug:"/build-on-morph/sdk/functions/estimateL1Gas",permalink:"/docs/build-on-morph/sdk/functions/estimateL1Gas",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/functions/estimateL1Gas.md",tags:[],version:"current",frontMatter:{}},d={},l=[{value:"Parameters",id:"parameters",level:2},{value:"Returns",id:"returns",level:2},{value:"Source",id:"source",level:2}];function a(e){const s={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,t.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,r.jsx)(s.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,r.jsx)(s.strong,{children:"Docs"})]}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / estimateL1Gas"]}),"\n",(0,r.jsx)(s.h1,{id:"function-estimatel1gas",children:"Function: estimateL1Gas()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"estimateL1Gas"}),"(",(0,r.jsx)(s.code,{children:"l2Provider"}),", ",(0,r.jsx)(s.code,{children:"tx"}),"): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Estimates the amount of L1 gas required for a given L2 transaction."}),"\n",(0,r.jsx)(s.h2,{id:"parameters",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"l2Provider"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/ProviderLike",children:(0,r.jsx)(s.code,{children:"ProviderLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"L2 provider to query the gas usage from."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"tx"}),": ",(0,r.jsx)(s.code,{children:"TransactionRequest"})]}),"\n",(0,r.jsx)(s.p,{children:"Transaction to estimate L1 gas for."}),"\n",(0,r.jsx)(s.h2,{id:"returns",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,r.jsx)(s.p,{children:"Estimated L1 gas."}),"\n",(0,r.jsx)(s.h2,{id:"source",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/l2-provider.ts:71"})]})}function h(e={}){const{wrapper:s}={...(0,t.R)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(a,{...e})}):a(e)}},2333:(e,s,n)=>{n.d(s,{R:()=>i,x:()=>c});var r=n(9474);const t={},o=r.createContext(t);function i(e){const s=r.useContext(o);return r.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),r.createElement(o.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/e3875bab.72a3ed86.js b/build/assets/js/e3875bab.72a3ed86.js new file mode 100644 index 000000000..71bb618c6 --- /dev/null +++ b/build/assets/js/e3875bab.72a3ed86.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[6956],{360:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>d,contentTitle:()=>i,default:()=>h,frontMatter:()=>o,metadata:()=>c,toc:()=>l});var r=n(6070),t=n(1582);const o={},i="Function: estimateL1Gas()",c={id:"build-on-morph/sdk/functions/estimateL1Gas",title:"estimateL1Gas",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/functions/estimateL1Gas.md",sourceDirName:"build-on-morph/sdk/functions",slug:"/build-on-morph/sdk/functions/estimateL1Gas",permalink:"/docs/build-on-morph/sdk/functions/estimateL1Gas",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/functions/estimateL1Gas.md",tags:[],version:"current",frontMatter:{}},d={},l=[{value:"Parameters",id:"parameters",level:2},{value:"Returns",id:"returns",level:2},{value:"Source",id:"source",level:2}];function a(e){const s={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,t.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,r.jsx)(s.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,r.jsx)(s.strong,{children:"Docs"})]}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / estimateL1Gas"]}),"\n",(0,r.jsx)(s.h1,{id:"function-estimatel1gas",children:"Function: estimateL1Gas()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"estimateL1Gas"}),"(",(0,r.jsx)(s.code,{children:"l2Provider"}),", ",(0,r.jsx)(s.code,{children:"tx"}),"): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Estimates the amount of L1 gas required for a given L2 transaction."}),"\n",(0,r.jsx)(s.h2,{id:"parameters",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"l2Provider"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/ProviderLike",children:(0,r.jsx)(s.code,{children:"ProviderLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"L2 provider to query the gas usage from."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"tx"}),": ",(0,r.jsx)(s.code,{children:"TransactionRequest"})]}),"\n",(0,r.jsx)(s.p,{children:"Transaction to estimate L1 gas for."}),"\n",(0,r.jsx)(s.h2,{id:"returns",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,r.jsx)(s.p,{children:"Estimated L1 gas."}),"\n",(0,r.jsx)(s.h2,{id:"source",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/l2-provider.ts:71"})]})}function h(e={}){const{wrapper:s}={...(0,t.R)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(a,{...e})}):a(e)}},1582:(e,s,n)=>{n.d(s,{R:()=>i,x:()=>c});var r=n(758);const t={},o=r.createContext(t);function i(e){const s=r.useContext(o);return r.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),r.createElement(o.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/e3bda051.39c2cc0c.js b/build/assets/js/e3bda051.aa9f2698.js similarity index 91% rename from build/assets/js/e3bda051.39c2cc0c.js rename to build/assets/js/e3bda051.aa9f2698.js index a3d53a70d..f975db487 100644 --- a/build/assets/js/e3bda051.39c2cc0c.js +++ b/build/assets/js/e3bda051.aa9f2698.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[4352],{4162:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>t,contentTitle:()=>c,default:()=>h,frontMatter:()=>o,metadata:()=>d,toc:()=>l});var s=r(3274),i=r(2333);const o={},c="Interface: IActionOptions",d={id:"build-on-morph/sdk/interfaces/IActionOptions",title:"IActionOptions",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/interfaces/IActionOptions.md",sourceDirName:"build-on-morph/sdk/interfaces",slug:"/build-on-morph/sdk/interfaces/IActionOptions",permalink:"/docs/build-on-morph/sdk/interfaces/IActionOptions",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/interfaces/IActionOptions.md",tags:[],version:"current",frontMatter:{}},t={},l=[{value:"Param",id:"param",level:2},{value:"Param",id:"param-1",level:2},{value:"Param",id:"param-2",level:2},{value:"Param",id:"param-3",level:2},{value:"Properties",id:"properties",level:2},{value:"direction?",id:"direction",level:3},{value:"Source",id:"source",level:4},{value:"from?",id:"from",level:3},{value:"Source",id:"source-1",level:4},{value:"overrides?",id:"overrides",level:3},{value:"Type declaration",id:"type-declaration",level:4},{value:"gatewayAddress?",id:"gatewayaddress",level:5},{value:"gatewayName?",id:"gatewayname",level:5},{value:"Source",id:"source-2",level:4},{value:"recipient?",id:"recipient",level:3},{value:"Source",id:"source-3",level:4},{value:"signer?",id:"signer",level:3},{value:"Source",id:"source-4",level:4}];function a(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",hr:"hr",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,s.jsx)(n.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,s.jsx)(n.strong,{children:"Docs"})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / IActionOptions"]}),"\n",(0,s.jsx)(n.h1,{id:"interface-iactionoptions",children:"Interface: IActionOptions"}),"\n",(0,s.jsx)(n.h2,{id:"param",children:"Param"}),"\n",(0,s.jsx)(n.p,{children:"Optional signer to use to send the transaction."}),"\n",(0,s.jsx)(n.h2,{id:"param-1",children:"Param"}),"\n",(0,s.jsx)(n.p,{children:"Optional address to receive the funds on chain. Defaults to sender."}),"\n",(0,s.jsx)(n.h2,{id:"param-2",children:"Param"}),"\n",(0,s.jsx)(n.p,{children:"Direction to search for messages in. If not provided, will attempt to"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"automatically search both directions under the assumption that a transaction hash will only"}),"\n",(0,s.jsx)(n.li,{children:"exist on one chain. If the hash exists on both chains, will throw an error."}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"param-3",children:"Param"}),"\n",(0,s.jsx)(n.p,{children:"Optional transaction overrides."}),"\n",(0,s.jsx)(n.h2,{id:"properties",children:"Properties"}),"\n",(0,s.jsx)(n.h3,{id:"direction",children:"direction?"}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"optional"})," ",(0,s.jsx)(n.strong,{children:"direction"}),": ",(0,s.jsx)(n.a,{href:"/docs/build-on-morph/sdk/enumerations/MessageDirection",children:(0,s.jsx)(n.code,{children:"MessageDirection"})})]}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"source",children:"Source"}),"\n",(0,s.jsx)(n.p,{children:"src/interfaces/types.ts:412"}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h3,{id:"from",children:"from?"}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"optional"})," ",(0,s.jsx)(n.strong,{children:"from"}),": ",(0,s.jsx)(n.code,{children:"string"})]}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"source-1",children:"Source"}),"\n",(0,s.jsx)(n.p,{children:"src/interfaces/types.ts:410"}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h3,{id:"overrides",children:"overrides?"}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"optional"})," ",(0,s.jsx)(n.strong,{children:"overrides"}),": ",(0,s.jsx)(n.code,{children:"object"})," & ",(0,s.jsx)(n.code,{children:"CallOverrides"})]}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"type-declaration",children:"Type declaration"}),"\n",(0,s.jsx)(n.h5,{id:"gatewayaddress",children:"gatewayAddress?"}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"optional"})," ",(0,s.jsx)(n.strong,{children:"gatewayAddress"}),": ",(0,s.jsx)(n.code,{children:"string"})]}),"\n"]}),"\n",(0,s.jsx)(n.h5,{id:"gatewayname",children:"gatewayName?"}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"optional"})," ",(0,s.jsx)(n.strong,{children:"gatewayName"}),": ",(0,s.jsx)(n.code,{children:"string"})]}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"source-2",children:"Source"}),"\n",(0,s.jsx)(n.p,{children:"src/interfaces/types.ts:413"}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h3,{id:"recipient",children:"recipient?"}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"optional"})," ",(0,s.jsx)(n.strong,{children:"recipient"}),": ",(0,s.jsx)(n.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,s.jsx)(n.code,{children:"AddressLike"})})]}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"source-3",children:"Source"}),"\n",(0,s.jsx)(n.p,{children:"src/interfaces/types.ts:411"}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h3,{id:"signer",children:"signer?"}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"optional"})," ",(0,s.jsx)(n.strong,{children:"signer"}),": ",(0,s.jsx)(n.code,{children:"Signer"})]}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"source-4",children:"Source"}),"\n",(0,s.jsx)(n.p,{children:"src/interfaces/types.ts:409"})]})}function h(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},2333:(e,n,r)=>{r.d(n,{R:()=>c,x:()=>d});var s=r(9474);const i={},o=s.createContext(i);function c(e){const n=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:c(e.components),s.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[4352],{6320:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>t,contentTitle:()=>c,default:()=>h,frontMatter:()=>o,metadata:()=>d,toc:()=>l});var s=r(6070),i=r(1582);const o={},c="Interface: IActionOptions",d={id:"build-on-morph/sdk/interfaces/IActionOptions",title:"IActionOptions",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/interfaces/IActionOptions.md",sourceDirName:"build-on-morph/sdk/interfaces",slug:"/build-on-morph/sdk/interfaces/IActionOptions",permalink:"/docs/build-on-morph/sdk/interfaces/IActionOptions",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/interfaces/IActionOptions.md",tags:[],version:"current",frontMatter:{}},t={},l=[{value:"Param",id:"param",level:2},{value:"Param",id:"param-1",level:2},{value:"Param",id:"param-2",level:2},{value:"Param",id:"param-3",level:2},{value:"Properties",id:"properties",level:2},{value:"direction?",id:"direction",level:3},{value:"Source",id:"source",level:4},{value:"from?",id:"from",level:3},{value:"Source",id:"source-1",level:4},{value:"overrides?",id:"overrides",level:3},{value:"Type declaration",id:"type-declaration",level:4},{value:"gatewayAddress?",id:"gatewayaddress",level:5},{value:"gatewayName?",id:"gatewayname",level:5},{value:"Source",id:"source-2",level:4},{value:"recipient?",id:"recipient",level:3},{value:"Source",id:"source-3",level:4},{value:"signer?",id:"signer",level:3},{value:"Source",id:"source-4",level:4}];function a(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",hr:"hr",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,s.jsx)(n.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,s.jsx)(n.strong,{children:"Docs"})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / IActionOptions"]}),"\n",(0,s.jsx)(n.h1,{id:"interface-iactionoptions",children:"Interface: IActionOptions"}),"\n",(0,s.jsx)(n.h2,{id:"param",children:"Param"}),"\n",(0,s.jsx)(n.p,{children:"Optional signer to use to send the transaction."}),"\n",(0,s.jsx)(n.h2,{id:"param-1",children:"Param"}),"\n",(0,s.jsx)(n.p,{children:"Optional address to receive the funds on chain. Defaults to sender."}),"\n",(0,s.jsx)(n.h2,{id:"param-2",children:"Param"}),"\n",(0,s.jsx)(n.p,{children:"Direction to search for messages in. If not provided, will attempt to"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"automatically search both directions under the assumption that a transaction hash will only"}),"\n",(0,s.jsx)(n.li,{children:"exist on one chain. If the hash exists on both chains, will throw an error."}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"param-3",children:"Param"}),"\n",(0,s.jsx)(n.p,{children:"Optional transaction overrides."}),"\n",(0,s.jsx)(n.h2,{id:"properties",children:"Properties"}),"\n",(0,s.jsx)(n.h3,{id:"direction",children:"direction?"}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"optional"})," ",(0,s.jsx)(n.strong,{children:"direction"}),": ",(0,s.jsx)(n.a,{href:"/docs/build-on-morph/sdk/enumerations/MessageDirection",children:(0,s.jsx)(n.code,{children:"MessageDirection"})})]}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"source",children:"Source"}),"\n",(0,s.jsx)(n.p,{children:"src/interfaces/types.ts:412"}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h3,{id:"from",children:"from?"}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"optional"})," ",(0,s.jsx)(n.strong,{children:"from"}),": ",(0,s.jsx)(n.code,{children:"string"})]}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"source-1",children:"Source"}),"\n",(0,s.jsx)(n.p,{children:"src/interfaces/types.ts:410"}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h3,{id:"overrides",children:"overrides?"}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"optional"})," ",(0,s.jsx)(n.strong,{children:"overrides"}),": ",(0,s.jsx)(n.code,{children:"object"})," & ",(0,s.jsx)(n.code,{children:"CallOverrides"})]}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"type-declaration",children:"Type declaration"}),"\n",(0,s.jsx)(n.h5,{id:"gatewayaddress",children:"gatewayAddress?"}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"optional"})," ",(0,s.jsx)(n.strong,{children:"gatewayAddress"}),": ",(0,s.jsx)(n.code,{children:"string"})]}),"\n"]}),"\n",(0,s.jsx)(n.h5,{id:"gatewayname",children:"gatewayName?"}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"optional"})," ",(0,s.jsx)(n.strong,{children:"gatewayName"}),": ",(0,s.jsx)(n.code,{children:"string"})]}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"source-2",children:"Source"}),"\n",(0,s.jsx)(n.p,{children:"src/interfaces/types.ts:413"}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h3,{id:"recipient",children:"recipient?"}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"optional"})," ",(0,s.jsx)(n.strong,{children:"recipient"}),": ",(0,s.jsx)(n.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,s.jsx)(n.code,{children:"AddressLike"})})]}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"source-3",children:"Source"}),"\n",(0,s.jsx)(n.p,{children:"src/interfaces/types.ts:411"}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h3,{id:"signer",children:"signer?"}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"optional"})," ",(0,s.jsx)(n.strong,{children:"signer"}),": ",(0,s.jsx)(n.code,{children:"Signer"})]}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"source-4",children:"Source"}),"\n",(0,s.jsx)(n.p,{children:"src/interfaces/types.ts:409"})]})}function h(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},1582:(e,n,r)=>{r.d(n,{R:()=>c,x:()=>d});var s=r(758);const i={},o=s.createContext(i);function c(e){const n=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:c(e.components),s.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/e6305dab.3df2285d.js b/build/assets/js/e6305dab.3df2285d.js new file mode 100644 index 000000000..63ef56684 --- /dev/null +++ b/build/assets/js/e6305dab.3df2285d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[9817],{2359:(e,i,s)=>{s.r(i),s.d(i,{assets:()=>c,contentTitle:()=>o,default:()=>p,frontMatter:()=>a,metadata:()=>r,toc:()=>d});var n=s(6070),t=s(1582);const a={title:"Decentralized Naming Services",lang:"en-US"},o=void 0,r={id:"build-on-morph/developer-resources/use-ecosystem-developer-tools/decentralized-naming-services",title:"Decentralized Naming Services",description:"SpaceID",source:"@site/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/8-decentralized-naming-services.md",sourceDirName:"build-on-morph/developer-resources/use-ecosystem-developer-tools",slug:"/build-on-morph/developer-resources/use-ecosystem-developer-tools/decentralized-naming-services",permalink:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/decentralized-naming-services",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/8-decentralized-naming-services.md",tags:[],version:"current",sidebarPosition:8,frontMatter:{title:"Decentralized Naming Services",lang:"en-US"},sidebar:"DeveloperSidebar",previous:{title:"Artificial Intelligence",permalink:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/artificial-intelligence"},next:{title:"Run a full node with docker",permalink:"/docs/build-on-morph/developer-resources/node-operation/full-node/run-in-docker"}},c={},d=[{value:"SpaceID",id:"spaceid",level:2},{value:"The Space ID .mph domain integration",id:"the-space-id-mph-domain-integration",level:3},{value:"How SpaceID works",id:"how-spaceid-works",level:3},{value:"Key features of SpaceID",id:"key-features-of-spaceid",level:3},{value:"Multi-Chain Name Service",id:"multi-chain-name-service",level:4},{value:"Web3 Name SDK & API",id:"web3-name-sdk--api",level:4},{value:"Benefits of DNS",id:"benefits-of-dns",level:3},{value:"Use Case of SpaceID",id:"use-case-of-spaceid",level:3}];function l(e){const i={a:"a",h2:"h2",h3:"h3",h4:"h4",img:"img",li:"li",p:"p",ul:"ul",...(0,t.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(i.h2,{id:"spaceid",children:"SpaceID"}),"\n",(0,n.jsx)(i.p,{children:(0,n.jsx)(i.img,{alt:"Space ID",src:s(7511).A+"",width:"1670",height:"688"})}),"\n",(0,n.jsxs)(i.p,{children:[(0,n.jsx)(i.a,{href:"https://space.id/",children:"Space ID"})," offers a universal namespace for blockchain, enabling users to register and manage domain names across different blockchains. It enhances cross-chain interoperability and simplifies user identification across the Web3 ecosystem. This project supports a broad range of applications, from crypto trading to token lending and NFT minting, showcasing a versatile approach to decentralized digital identities."]}),"\n",(0,n.jsxs)(i.p,{children:["Space ID has launched the .mph domain specific for Morph. If you are looking for integration, ",(0,n.jsx)(i.a,{href:"https://docs.google.com/document/d/1gozy52Z-MhinPdQuB0hveUhXTBfAONt4HH2QC8T4BWg/edit?usp=sharing",children:"please refer to this doc"})]}),"\n",(0,n.jsx)(i.h3,{id:"the-space-id-mph-domain-integration",children:"The Space ID .mph domain integration"}),"\n",(0,n.jsx)(i.h3,{id:"how-spaceid-works",children:"How SpaceID works"}),"\n",(0,n.jsxs)(i.p,{children:["SPACE ID aims to create a universal name service network that connects decentralized identities with the physical and digital worlds. It is progressing toward becoming a comprehensive digital identity solution for Web3. Read the details ",(0,n.jsx)(i.a,{href:"https://docs.space.id/",children:"here"})]}),"\n",(0,n.jsx)(i.h3,{id:"key-features-of-spaceid",children:"Key features of SpaceID"}),"\n",(0,n.jsx)(i.h4,{id:"multi-chain-name-service",children:"Multi-Chain Name Service"}),"\n",(0,n.jsx)(i.p,{children:"Among the top priorities of SPACE ID is supporting more blockchains and top-level domains (TLDs). Unlike SPACE ID 1.0, whose main emphasis was on .bnb Name Service, SPACE ID 2.0 instead focuses on multi-chain name service. SPACE ID has reached out to various blockchains for partnership discussions, and expects its ecosystem to flourish with time."}),"\n",(0,n.jsx)(i.h4,{id:"web3-name-sdk--api",children:"Web3 Name SDK & API"}),"\n",(0,n.jsx)(i.p,{children:"SPACE ID aims to streamline web3 services through the use of a single SDK to assist in the building of DApps. This saves developers time, since they don\u2019t have to work with multiple protocols and be encumbered with issues of blockchain incompatibility. This vision is being realized by adding an all-in-one API over the SDK, allowing current and future partners to seamlessly integrate their web3 services with their unified Web3 Name SDK."}),"\n",(0,n.jsx)(i.h3,{id:"benefits-of-dns",children:"Benefits of DNS"}),"\n",(0,n.jsxs)(i.ul,{children:["\n",(0,n.jsx)(i.li,{children:"Simplified Address Management: Users can use easy-to-remember names instead of long hexadecimal addresses, reducing the risk of errors in transactions."}),"\n",(0,n.jsx)(i.li,{children:"Interoperability: SpaceID names can point to various types of addresses and resources, supporting multiple blockchain networks and off-chain data."}),"\n",(0,n.jsx)(i.li,{children:"Decentralization: SpaceID is built on blockchain, ensuring that no single entity controls the naming system, which enhances security and censorship resistance."}),"\n",(0,n.jsx)(i.li,{children:"Flexibility: Domain owners have full control over their domains, including the ability to create subdomains, update addresses, and manage metadata."}),"\n"]}),"\n",(0,n.jsx)(i.h3,{id:"use-case-of-spaceid",children:"Use Case of SpaceID"}),"\n",(0,n.jsxs)(i.ul,{children:["\n",(0,n.jsx)(i.li,{children:"Cryptocurrency Wallets: Users can receive payments using simple names instead of complex addresses."}),"\n",(0,n.jsx)(i.li,{children:"Decentralized Websites: SpaceID names can point to Greenfield content, enabling decentralized websites."}),"\n",(0,n.jsx)(i.li,{children:"Identity Management: SpaceID can be used as part of a decentralized identity system, linking a user\u2019s SpaceID to their decentralized identifiers and attestations."}),"\n",(0,n.jsx)(i.li,{children:"DApps and Smart Contracts: Developers can use SpaceID to provide human-readable names for their smart contracts and decentralized applications, improving user experience."}),"\n"]})]})}function p(e={}){const{wrapper:i}={...(0,t.R)(),...e.components};return i?(0,n.jsx)(i,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},7511:(e,i,s)=>{s.d(i,{A:()=>n});const n=s.p+"assets/images/spaceid-29fd0d4f081ffeee5410ca83a259a04e.png"},1582:(e,i,s)=>{s.d(i,{R:()=>o,x:()=>r});var n=s(758);const t={},a=n.createContext(t);function o(e){const i=n.useContext(a);return n.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function r(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),n.createElement(a.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/e6f27cd2.8445c63f.js b/build/assets/js/e6f27cd2.8445c63f.js deleted file mode 100644 index ac6bcd572..000000000 --- a/build/assets/js/e6f27cd2.8445c63f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[7450],{225:(e,o,r)=>{r.r(o),r.d(o,{assets:()=>c,contentTitle:()=>s,default:()=>l,frontMatter:()=>i,metadata:()=>d,toc:()=>a});var n=r(3274),t=r(2333);const i={title:"Developer Docs",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},s=void 0,d={id:"build-on-morph/developer-navigation-page",title:"Developer Docs",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/build-on-morph/0-developer-navigation-page.md",sourceDirName:"build-on-morph",slug:"/build-on-morph/developer-navigation-page",permalink:"/docs/build-on-morph/developer-navigation-page",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/0-developer-navigation-page.md",tags:[],version:"current",sidebarPosition:0,frontMatter:{title:"Developer Docs",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"Bridge",permalink:"/docs/quick-start/bridge"},next:{title:"Morph Modular Design",permalink:"/docs/how-morph-works/morph-modular-design"}},c={},a=[{value:"What is Morph?",id:"what-is-morph",level:3},{value:"Getting Started",id:"getting-started",level:3},{value:"Engage in Our Developer Community\u200b",id:"engage-in-our-developer-community",level:3}];function p(e){const o={a:"a",h3:"h3",img:"img",p:"p",strong:"strong",...(0,t.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(o.p,{children:"If you\u2019re ready to build applications on Morph, you're in the right place."}),"\n",(0,n.jsxs)(o.p,{children:["For those who are regular users or visiting for the first time, we recommend starting with our ",(0,n.jsx)(o.a,{href:"/docs/about-morph/user-navigation-page",children:"For Users section"})," to explore introductory content such as definitions, our vision, key concepts, and more."]}),"\n",(0,n.jsx)(o.p,{children:(0,n.jsx)(o.img,{alt:"devintro",src:r(2147).A+"",width:"4000",height:"2000"})}),"\n",(0,n.jsx)(o.h3,{id:"what-is-morph",children:"What is Morph?"}),"\n",(0,n.jsx)(o.p,{children:"Morph is the first optimistic zkEVM Ethereum Layer 2 solution that is 100% EVM compatible. Building on Morph is just like building on Ethereum. If you\u2019re experienced in Ethereum development, you'll find your existing code, tooling, and dependencies are fully compatible with Morph."}),"\n",(0,n.jsx)(o.h3,{id:"getting-started",children:"Getting Started"}),"\n",(0,n.jsx)(o.p,{children:"To help you get started, here\u2019s a recommended navigation through our documentation:"}),"\n",(0,n.jsxs)(o.p,{children:[(0,n.jsx)(o.strong,{children:"Fundamental Concepts"}),": Start here to learn the core components of Morph, including Morph\u2019s Modular Design, the Decentralized Sequencer Network, and the Responsive Validity Proof system."]}),"\n",(0,n.jsxs)(o.p,{children:[(0,n.jsx)(o.strong,{children:"Advanced Concepts"}),": Dive deeper into topics such as understanding transaction costs on Morph and differences between Morph and Ethereum."]}),"\n",(0,n.jsxs)(o.p,{children:[(0,n.jsx)(o.strong,{children:"Developer Guides"}),": Access comprehensive guides on verifying smart contracts, running a Morph node, deploying contracts, and more."]}),"\n",(0,n.jsxs)(o.p,{children:[(0,n.jsx)(o.strong,{children:"Developer Resources"}),": Find detailed API methods, contract addresses and other useful developer resources."]}),"\n",(0,n.jsx)(o.h3,{id:"engage-in-our-developer-community",children:"Engage in Our Developer Community\u200b"}),"\n",(0,n.jsxs)(o.p,{children:["We're actively enhancing our network with more integrations and support infrastructure, progressing towards our Mainnet release. Join our growing developer community. You can find us on ",(0,n.jsx)(o.a,{href:"https://discord.com/invite/L2Morph",children:"Discord"})," or follow our progress on ",(0,n.jsx)(o.a,{href:"https://twitter.com/Morphl2",children:"Twitter"}),"."]})]})}function l(e={}){const{wrapper:o}={...(0,t.R)(),...e.components};return o?(0,n.jsx)(o,{...e,children:(0,n.jsx)(p,{...e})}):p(e)}},2147:(e,o,r)=>{r.d(o,{A:()=>n});const n=r.p+"assets/images/devintro-af1fa91181efcded8682d179b40db272.png"},2333:(e,o,r)=>{r.d(o,{R:()=>s,x:()=>d});var n=r(9474);const t={},i=n.createContext(t);function s(e){const o=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function d(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:s(e.components),n.createElement(i.Provider,{value:o},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/e6f27cd2.ede20334.js b/build/assets/js/e6f27cd2.ede20334.js new file mode 100644 index 000000000..61b7c90a0 --- /dev/null +++ b/build/assets/js/e6f27cd2.ede20334.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[7450],{779:(e,r,o)=>{o.r(r),o.d(r,{assets:()=>a,contentTitle:()=>d,default:()=>h,frontMatter:()=>s,metadata:()=>c,toc:()=>l});var n=o(6070),i=o(1582),t=o(1601);const s={title:"Build on Morph",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},d=void 0,c={id:"build-on-morph/developer-navigation-page",title:"Build on Morph",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/build-on-morph/0-developer-navigation-page.md",sourceDirName:"build-on-morph",slug:"/build-on-morph/developer-navigation-page",permalink:"/docs/build-on-morph/developer-navigation-page",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/0-developer-navigation-page.md",tags:[],version:"current",sidebarPosition:0,frontMatter:{title:"Build on Morph",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"Bridge",permalink:"/docs/quick-start/bridge"},next:{title:"Morph Modular Design",permalink:"/docs/how-morph-works/morph-modular-design"}},a={},l=[{value:"What is Morph?",id:"what-is-morph",level:3},{value:"Getting Started",id:"getting-started",level:3},{value:"Engage in Our Developer Community\u200b",id:"engage-in-our-developer-community",level:3}];function p(e){const r={a:"a",h3:"h3",img:"img",p:"p",strong:"strong",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(r.p,{children:"If you\u2019re ready to build applications on Morph, you're in the right place."}),"\n",(0,n.jsxs)(r.p,{children:["For those who are regular users or visiting for the first time, we recommend starting with our ",(0,n.jsx)(r.a,{href:"/docs/about-morph/user-navigation-page",children:"For Users section"})," to explore introductory content such as definitions, our vision, key concepts, and more."]}),"\n",(0,n.jsx)(r.h3,{id:"what-is-morph",children:"What is Morph?"}),"\n",(0,n.jsx)(r.p,{children:"Morph is the first optimistic zkEVM Ethereum Layer 2 solution that is 100% EVM compatible. Building on Morph is just like building on Ethereum. If you\u2019re experienced in Ethereum development, you'll find your existing code, tooling, and dependencies are fully compatible with Morph."}),"\n",(0,n.jsx)(r.p,{children:"We provide a one-page for Morph integration resources if you want to get started quickly."}),"\n",(0,n.jsxs)(t.A,{className:"md:grid-cols-2 xl:grid-cols-2",children:[(0,n.jsx)(t.Z,{href:"/docs/build-on-morph/build-on-morph/integration-one-page",icon:"/img/cards/research.svg",text:"Morph Integration One-Page (English)"}),(0,n.jsx)(t.Z,{href:"/docs/build-on-morph/build-on-morph/integration-one-page-cn",icon:"/img/cards/research.svg",text:"Morph Integration One-Page (Mandarin)"})]}),"\n",(0,n.jsx)(r.h3,{id:"getting-started",children:"Getting Started"}),"\n",(0,n.jsx)(r.p,{children:"To help you get started, here\u2019s a recommended navigation through our documentation:"}),"\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"Fundamental Concepts"}),": Start here to learn the core components of Morph, including Morph\u2019s Modular Design, the Decentralized Sequencer Network, and the Responsive Validity Proof system."]}),"\n",(0,n.jsxs)(t.A,{className:"md:grid-cols-2 xl:grid-cols-3",children:[(0,n.jsx)(t.Z,{href:"/docs/how-morph-works/decentralized-sequencers/morph-decentralized-sequencer-network",icon:"/img/cards/research.svg",text:"Decentralized Sequencers"}),(0,n.jsx)(t.Z,{href:"/docs/how-morph-works/optimistic-zkevm",icon:"/img/cards/research.svg",text:"Optimistic zkEVM"}),(0,n.jsx)(t.Z,{href:"/docs/how-morph-works/general-protocol-design/rollup",icon:"/img/cards/research.svg",text:"General Protocol Design"})]}),"\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"Developer Guides"}),": Access comprehensive guides on verifying smart contracts, running a Morph node, deploying contracts, and more."]}),"\n",(0,n.jsxs)(t.A,{className:"md:grid-cols-2 xl:grid-cols-3",children:[(0,n.jsx)(t.Z,{href:"/docs/build-on-morph/build-on-morph/development-setup",icon:"/img/cards/dev.svg",text:"Development Setup"}),(0,n.jsx)(t.Z,{href:"/docs/build-on-morph/build-on-morph/verify-your-smart-contracts",icon:"/img/cards/dev.svg",text:"Verify Your Contracts"}),(0,n.jsx)(t.Z,{href:"/docs/build-on-morph/build-on-morph/bridge-between-morph-and-ethereum",icon:"/img/cards/bridge.svg",text:"Ethereum <=> Morph Bridge"}),(0,n.jsx)(t.Z,{href:"/docs/build-on-morph/sdk/globals",icon:"/img/cards/dev.svg",text:"Using SDK"}),(0,n.jsx)(t.Z,{href:"/docs/build-on-morph/developer-resources/node-operation/full-node/run-in-docker",icon:"/img/cards/node.svg",text:"Node Operations"}),(0,n.jsx)(t.Z,{href:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/safe-multi-signature-wallet",icon:"/img/cards/tools.svg",text:"Leverage Ecosystem Infra"})]}),"\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"Developer Resources"}),": Find detailed API methods, contract addresses and other useful developer resources."]}),"\n",(0,n.jsxs)(t.A,{className:"md:grid-cols-2 xl:grid-cols-3",children:[(0,n.jsx)(t.Z,{href:"/docs/build-on-morph/developer-resources/contracts",icon:"/img/cards/contract.svg",text:"Contract Addresses"}),(0,n.jsx)(t.Z,{href:"/docs/build-on-morph/developer-resources/dapp-examples-on-morph",icon:"/img/cards/guide.svg",text:"Dapp Examples"}),(0,n.jsx)(t.Z,{href:"/docs/build-on-morph/developer-resources/morph-json-rpc-api-methods",icon:"/img/cards/tools.svg",text:"Morph JSON-RPC API"})]}),"\n",(0,n.jsx)(r.h3,{id:"engage-in-our-developer-community",children:"Engage in Our Developer Community\u200b"}),"\n",(0,n.jsxs)(r.p,{children:["We're actively enhancing our network with more integrations and support infrastructure, progressing towards our Mainnet release. Join our growing developer community. You can find us on ",(0,n.jsx)(r.a,{href:"https://discord.com/invite/MorphLayer",children:"Discord"})," or follow our progress on ",(0,n.jsx)(r.a,{href:"https://x.com/MorphLayer",children:"Twitter"}),"."]}),"\n",(0,n.jsx)(r.p,{children:(0,n.jsx)(r.img,{alt:"devintro",src:o(2015).A+"",width:"4000",height:"2000"})})]})}function h(e={}){const{wrapper:r}={...(0,i.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(p,{...e})}):p(e)}},1601:(e,r,o)=>{o.d(r,{A:()=>c,Z:()=>a});var n=o(7500),i=o.n(n),t=o(7838),s=o(3958),d=o(6070);const c=e=>{let{className:r,children:o}=e;return(0,d.jsx)("div",{className:"flex gap-4 mb-8 grid "+r,children:o})},a=e=>{let{className:r,href:o,icon:n,darkIcon:c,text:a,children:l}=e;const{withBaseUrl:p}=(0,t.h)(),h={light:p(n),dark:p(c??n)};return(0,d.jsxs)("a",{href:o,target:o?.startsWith("http")?"_blank":"_self",className:i()("no-underline items-center hover:no-underline bg-card-background cursor-pointer rounded-[4px] text-card-text border border-solid border-card-border py-5 px-4 flex flex-row",{"hover:border-[#14A800] hover:text-brand":o}),children:[(0,d.jsx)(s.A,{className:i()("w-6 h-6"),alt:n,sources:h}),(0,d.jsx)("span",{className:"ml-2 text-[16px] leading-[20px]",children:a})]})}},2015:(e,r,o)=>{o.d(r,{A:()=>n});const n=o.p+"assets/images/devintro-af1fa91181efcded8682d179b40db272.png"},1582:(e,r,o)=>{o.d(r,{R:()=>s,x:()=>d});var n=o(758);const i={},t=n.createContext(i);function s(e){const r=n.useContext(t);return n.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function d(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),n.createElement(t.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/e7a84acc.3ffc6b6e.js b/build/assets/js/e7a84acc.3ffc6b6e.js deleted file mode 100644 index c448349d7..000000000 --- a/build/assets/js/e7a84acc.3ffc6b6e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[3667],{3169:(e,r,s)=>{s.r(r),s.d(r,{assets:()=>c,contentTitle:()=>t,default:()=>i,frontMatter:()=>a,metadata:()=>n,toc:()=>l});var d=s(3274),h=s(2333);const a={title:"Contract Addresses",lang:"en-US"},t=void 0,n={id:"build-on-morph/developer-resources/contracts",title:"Contract Addresses",description:"Morph Network Info",source:"@site/docs/build-on-morph/developer-resources/1-contracts.md",sourceDirName:"build-on-morph/developer-resources",slug:"/build-on-morph/developer-resources/contracts",permalink:"/docs/build-on-morph/developer-resources/contracts",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/developer-resources/1-contracts.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{title:"Contract Addresses",lang:"en-US"},sidebar:"DeveloperSidebar",previous:{title:"Prune State",permalink:"/docs/build-on-morph/developer-resources/node-operation/prune-state"},next:{title:"Dapp Examples on Morph",permalink:"/docs/build-on-morph/developer-resources/dapp-examples-on-morph"}},c={},l=[{value:"Morph Network Info",id:"morph-network-info",level:2},{value:"Morph Mainnet",id:"morph-mainnet",level:3},{value:"Morph Holesky Testnet",id:"morph-holesky-testnet",level:3},{value:"Morph Mainnet Contracts",id:"morph-mainnet-contracts",level:2},{value:"Main Contract",id:"main-contract",level:3},{value:"L1 Contract",id:"l1-contract",level:4},{value:"L2 Contract",id:"l2-contract",level:4},{value:"Gateway",id:"gateway",level:3},{value:"L1 Gateway",id:"l1-gateway",level:4},{value:"L2 Gateway",id:"l2-gateway",level:4},{value:"Other Layer 2 Predeploys",id:"other-layer-2-predeploys",level:3},{value:"Tokens",id:"tokens",level:3},{value:"L1 Tokens",id:"l1-tokens",level:4},{value:"L2 Tokens",id:"l2-tokens",level:4},{value:"Morph Holesky Contracts",id:"morph-holesky-contracts",level:2},{value:"Main Contract",id:"main-contract-1",level:3},{value:"L1 Contract",id:"l1-contract-1",level:4},{value:"L2 Contract",id:"l2-contract-1",level:4},{value:"Gateway",id:"gateway-1",level:3},{value:"L1 Gateway",id:"l1-gateway-1",level:4},{value:"L2 Gateway",id:"l2-gateway-1",level:4},{value:"Other Layer 2 Predeploys",id:"other-layer-2-predeploys-1",level:3}];function o(e){const r={a:"a",admonition:"admonition",h2:"h2",h3:"h3",h4:"h4",p:"p",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,h.R)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(r.h2,{id:"morph-network-info",children:"Morph Network Info"}),"\n",(0,d.jsx)(r.h3,{id:"morph-mainnet",children:"Morph Mainnet"}),"\n",(0,d.jsxs)(r.table,{children:[(0,d.jsx)(r.thead,{children:(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.th,{children:"Network Name"}),(0,d.jsx)(r.th,{children:"Morph Mainnet"}),(0,d.jsx)(r.th,{children:"Ethereum Mainnet"})]})}),(0,d.jsxs)(r.tbody,{children:[(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:"RPC URL"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.a,{href:"https://rpc-quicknode.morphl2.io",children:"https://rpc-quicknode.morphl2.io"})}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.a,{href:"https://ethereum-rpc.publicnode.com/",children:"https://ethereum-rpc.publicnode.com/"})})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:"Chain ID"}),(0,d.jsx)(r.td,{children:"2818"}),(0,d.jsx)(r.td,{children:"1"})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:"Currency Symbol"}),(0,d.jsx)(r.td,{children:"ETH"}),(0,d.jsx)(r.td,{children:"ETH"})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:"Block Explorer URL"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/",children:"https://explorer.morphl2.io/"})}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.a,{href:"https://etherscan.io/",children:"https://etherscan.io/"})})]})]})]}),"\n",(0,d.jsx)(r.h3,{id:"morph-holesky-testnet",children:"Morph Holesky Testnet"}),"\n",(0,d.jsxs)(r.table,{children:[(0,d.jsx)(r.thead,{children:(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.th,{children:"Network Name"}),(0,d.jsx)(r.th,{children:"Morph Holesky Testnet"}),(0,d.jsx)(r.th,{children:"Ethereum Holesky Testnet"})]})}),(0,d.jsxs)(r.tbody,{children:[(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:"RPC URL"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.a,{href:"https://rpc-quicknode-holesky.morphl2.io",children:"https://rpc-quicknode-holesky.morphl2.io"})}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.a,{href:"https://ethereum-holesky-rpc.publicnode.com/",children:"https://ethereum-holesky-rpc.publicnode.com/"})})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:"Chain ID"}),(0,d.jsx)(r.td,{children:"2810"}),(0,d.jsx)(r.td,{children:"17000"})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:"Currency Symbol"}),(0,d.jsx)(r.td,{children:"ETH"}),(0,d.jsx)(r.td,{children:"ETH"})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:"Block Explorer URL"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.a,{href:"https://explorer-holesky.morphl2.io/",children:"https://explorer-holesky.morphl2.io/"})}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.a,{href:"https://holesky.etherscan.io/",children:"https://holesky.etherscan.io/"})})]})]})]}),"\n",(0,d.jsx)(r.h2,{id:"morph-mainnet-contracts",children:"Morph Mainnet Contracts"}),"\n",(0,d.jsx)(r.h3,{id:"main-contract",children:"Main Contract"}),"\n",(0,d.jsx)(r.h4,{id:"l1-contract",children:"L1 Contract"}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://etherscan.io/address/0x0dc417f8af88388737c5053ff73f345f080543f7",children:"Staking"}),": 0x0dc417f8af88388737c5053ff73f345f080543f7"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://etherscan.io/address/0x759894ced0e6af42c26668076ffa84d02e3cef60",children:"Rollup"}),": 0x759894ced0e6af42c26668076ffa84d02e3cef60"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://etherscan.io/address/0x3931ade842f5bb8763164bdd81e5361dce6cc1ef",children:"L1MessageQueueWithGasPriceOracle"}),": 0x3931ade842f5bb8763164bdd81e5361dce6cc1ef"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://etherscan.io/address/0xdc71366effa760804dcfc3edf87fa2a6f1623304",children:"L1CrossDomainMessenger"}),": 0xdc71366effa760804dcfc3edf87fa2a6f1623304"]}),"\n",(0,d.jsx)(r.h4,{id:"l2-contract",children:"L2 Contract"}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/address/0x5300000000000000000000000000000000000001",children:"L2ToL1MessagePasser"}),": 0x5300000000000000000000000000000000000001"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/address/0x5300000000000000000000000000000000000017",children:"Sequencer"}),": 0x5300000000000000000000000000000000000017"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/address/0x5300000000000000000000000000000000000004",children:"Gov"}),": 0x5300000000000000000000000000000000000004"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/address/0x5300000000000000000000000000000000000007",children:"L2CrossDomainMessenger"}),": 0x5300000000000000000000000000000000000007"]}),"\n",(0,d.jsx)(r.h3,{id:"gateway",children:"Gateway"}),"\n",(0,d.jsx)(r.h4,{id:"l1-gateway",children:"L1 Gateway"}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://etherscan.io/address/0x7497756ada7e656ae9f00781af49fc0fd08f8a8a",children:"L1GatewayRouter"}),": 0x7497756ada7e656ae9f00781af49fc0fd08f8a8a"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://etherscan.io/address/0x1c1ffb5828c3a48b54e8910f1c75256a498ade68",children:"L1ETHGateway"}),": 0x1c1ffb5828c3a48b54e8910f1c75256a498ade68"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://etherscan.io/address/0x788890ba6f105cca373c4ff01055cd34de01877f",children:"L1WETHGateway"}),": 0x788890ba6f105cca373c4ff01055cd34de01877f"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://etherscan.io/address/0x44c28f61a5c2dd24fc71d7df8e85e18af4ab2bd8",children:"L1StandardERC20Gateway"}),": 0x44c28f61a5c2dd24fc71d7df8e85e18af4ab2bd8"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://etherscan.io/address/0xa534badd09b4c62b7b1c32c41df310aa17b52ef1",children:"L1CustomERC20Gateway"}),": 0xa534badd09b4c62b7b1c32c41df310aa17b52ef1"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://etherscan.io/address/0x5ae782c23a303c0d70ae697a0aee9eae9a5d77c4",children:"L1ERC721Gateway"}),": 0x5ae782c23a303c0d70ae697a0aee9eae9a5d77c4"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://etherscan.io/address/0x7c9a3d9531692d057d496d04938bdb7d367e9765",children:"L1ERC1155Gateway"}),": 0x7c9a3d9531692d057d496d04938bdb7d367e9765"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://etherscan.io/address/0xc9045350712a1dcc3a74eca18bc985424bbe7535",children:"L1USDCGateway"}),": 0xc9045350712a1dcc3a74eca18bc985424bbe7535"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://etherscan.io/address/0xc5fa3b8968c7fabeea2b530a20b88d0c2ed8abb7",children:"EnforcedTxGateway"}),": 0xc5fa3b8968c7fabeea2b530a20b88d0c2ed8abb7"]}),"\n",(0,d.jsx)(r.h4,{id:"l2-gateway",children:"L2 Gateway"}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/address/0x5300000000000000000000000000000000000002",children:"L2GatewayRouter"}),": 0x5300000000000000000000000000000000000002"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/address/0x5300000000000000000000000000000000000008",children:"L2StandardERC20Gateway"}),": 0x5300000000000000000000000000000000000008"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/address/0x5300000000000000000000000000000000000009",children:"L2ERC721Gateway"}),": 0x5300000000000000000000000000000000000009"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/address/0x530000000000000000000000000000000000000C",children:"L2ERC1155Gateway"}),": 0x530000000000000000000000000000000000000C"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/address/0x5300000000000000000000000000000000000010",children:"L2WETHGateway"}),": 0x5300000000000000000000000000000000000010"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/address/0x5300000000000000000000000000000000000006",children:"L2ETHGateway"}),": 0x5300000000000000000000000000000000000006"]}),"\n",(0,d.jsx)(r.h3,{id:"other-layer-2-predeploys",children:"Other Layer 2 Predeploys"}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/address/0x5300000000000000000000000000000000000015",children:"L2Staking"}),": 0x5300000000000000000000000000000000000015"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/address/0x530000000000000000000000000000000000000A",children:"L2TxFeeVault"}),": 0x530000000000000000000000000000000000000A"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/address/0x5300000000000000000000000000000000000016",children:"L2CustomERC20Gateway"}),": 0x5300000000000000000000000000000000000016"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/address/0x530000000000000000000000000000000000000B",children:"ProxyAdmin"}),": 0x530000000000000000000000000000000000000B"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/address/0x530000000000000000000000000000000000000D",children:"MorphStandardERC20"}),": 0x530000000000000000000000000000000000000D"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/address/0x530000000000000000000000000000000000000E",children:"MorphStandardERC20Factory"}),": 0x530000000000000000000000000000000000000E"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/address/0x530000000000000000000000000000000000000F",children:"GasPriceOracle"}),": 0x530000000000000000000000000000000000000F"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/address/0x5300000000000000000000000000000000000011",children:"L2WETH"}),": 0x5300000000000000000000000000000000000011"]}),"\n",(0,d.jsx)(r.h3,{id:"tokens",children:"Tokens"}),"\n",(0,d.jsx)(r.h4,{id:"l1-tokens",children:"L1 Tokens"}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://etherscan.io/address/0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",children:"WETH"}),": 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://etherscan.io/address/0xdAC17F958D2ee523a2206206994597C13D831ec7",children:"USDT"}),": 0xdAC17F958D2ee523a2206206994597C13D831ec7"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://etherscan.io/address/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",children:"USDC"}),": 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://etherscan.io/address/0x6B175474E89094C44Da98b954EedeAC495271d0F",children:"DAI"}),": 0x6B175474E89094C44Da98b954EedeAC495271d0F"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://etherscan.io/address/0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",children:"WBTC"}),": 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599"]}),"\n",(0,d.jsx)(r.h4,{id:"l2-tokens",children:"L2 Tokens"}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/address/0x5300000000000000000000000000000000000011",children:"WETH"}),": 0x5300000000000000000000000000000000000011"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/address/0xc7D67A9cBB121b3b0b9c053DD9f469523243379A",children:"USDT"}),": 0xc7D67A9cBB121b3b0b9c053DD9f469523243379A"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/address/0x803DcE4D3f4Ae2e17AF6C51343040dEe320C149D",children:"WBTC"}),": 0x803DcE4D3f4Ae2e17AF6C51343040dEe320C149D"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/address/0x1199E23C0baE9710cCd9F645FA57794e5D469D06",children:"UDSC"}),": 0x1199E23C0baE9710cCd9F645FA57794e5D469D06"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/address/0xef8A24599229D002B28bA2F5C0eBdD3c0EFFbed4",children:"DAI"}),": 0xef8A24599229D002B28bA2F5C0eBdD3c0EFFbed4"]}),"\n",(0,d.jsx)(r.h2,{id:"morph-holesky-contracts",children:"Morph Holesky Contracts"}),"\n",(0,d.jsx)(r.admonition,{type:"tip",children:(0,d.jsx)(r.p,{children:"Please not the following is the contract address of the Morph Holesky Testnet."})}),"\n",(0,d.jsx)(r.h3,{id:"main-contract-1",children:"Main Contract"}),"\n",(0,d.jsx)(r.h4,{id:"l1-contract-1",children:"L1 Contract"}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://holesky.etherscan.io/address/0x868dd5d1c268277e331b726bb438edde8221d389",children:"Staking"}),": 0x868dd5d1c268277e331b726bb438edde8221d389"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://holesky.etherscan.io/address/0xd8c5c541d56f59d65cf775de928ccf4a47d4985c",children:"Rollup"}),": 0xd8c5c541d56f59d65cf775de928ccf4a47d4985c"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://holesky.etherscan.io/address/0x778d1d9a4d8b6b9ade36d967a9ac19455ec3fd0b",children:"L1MessageQueueWithGasPriceOracle"}),": 0x778d1d9a4d8b6b9ade36d967a9ac19455ec3fd0b"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://holesky.etherscan.io/address/0xecc966ab425f3f5bd58085ce4ebdbf81d829126f",children:"L1CrossDomainMessenger"}),": 0xecc966ab425f3f5bd58085ce4ebdbf81d829126f"]}),"\n",(0,d.jsx)(r.h4,{id:"l2-contract-1",children:"L2 Contract"}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer-holesky.morphl2.io/address/0x5300000000000000000000000000000000000001",children:"L2ToL1MessagePasser"}),": 0x5300000000000000000000000000000000000001"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer-holesky.morphl2.io/address/0x5300000000000000000000000000000000000003",children:"L2Sequencer"}),": 0x5300000000000000000000000000000000000003"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer-holesky.morphl2.io/address/0x5300000000000000000000000000000000000004",children:"L2Gov"}),": 0x5300000000000000000000000000000000000004"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer-holesky.morphl2.io/address/0x5300000000000000000000000000000000000005",children:"L2Submitter"}),": 0x5300000000000000000000000000000000000005"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer-holesky.morphl2.io/address/0x5300000000000000000000000000000000000007",children:"L2CrossDomainMessenger"}),": 0x5300000000000000000000000000000000000007"]}),"\n",(0,d.jsx)(r.h3,{id:"gateway-1",children:"Gateway"}),"\n",(0,d.jsx)(r.h4,{id:"l1-gateway-1",children:"L1 Gateway"}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://holesky.etherscan.io/address/0xea593b730d745fb5fe01b6d20e6603915252c6bf",children:"L1GatewayRouter"}),": 0xea593b730d745fb5fe01b6d20e6603915252c6bf"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://holesky.etherscan.io/address/0xcc3d455481967dc97346ef1771a112d7a14c8f12",children:"L1ETHGateway"}),": 0xcc3d455481967dc97346ef1771a112d7a14c8f12"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://holesky.etherscan.io/address/0xbbdb317b50313d96823eba0fc2c1d9e469dc1906",children:"L1WETHGateway"}),": 0xbbdb317b50313d96823eba0fc2c1d9e469dc1906"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://holesky.etherscan.io/address/0xb26dafdb434ae93e3b8efde4f0193934955d86cd",children:"L1StandardERC20Gateway"}),": 0xb26dafdb434ae93e3b8efde4f0193934955d86cd"]}),"\n",(0,d.jsx)(r.h4,{id:"l2-gateway-1",children:"L2 Gateway"}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer-holesky.morphl2.io/address/0x5300000000000000000000000000000000000002",children:"L2GatewayRouter"}),": 0x5300000000000000000000000000000000000002"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer-holesky.morphl2.io/address/0x5300000000000000000000000000000000000008",children:"L2StandardERC20Gateway"}),": 0x5300000000000000000000000000000000000008"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer-holesky.morphl2.io/address/0x5300000000000000000000000000000000000009",children:"L2ERC721Gateway"}),": 0x5300000000000000000000000000000000000009"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer-holesky.morphl2.io/address/0x530000000000000000000000000000000000000C",children:"L2ERC1155Gateway"}),": 0x530000000000000000000000000000000000000C"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer-holesky.morphl2.io/address/0x5300000000000000000000000000000000000010",children:"L2WETHGateway"}),": 0x5300000000000000000000000000000000000010"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer-holesky.morphl2.io/address/0x5300000000000000000000000000000000000006",children:"L2ETHGateway"}),": 0x5300000000000000000000000000000000000006"]}),"\n",(0,d.jsx)(r.h3,{id:"other-layer-2-predeploys-1",children:"Other Layer 2 Predeploys"}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer-holesky.morphl2.io/address/0x530000000000000000000000000000000000000A",children:"L2TxFeeVault"}),": 0x530000000000000000000000000000000000000A"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer-holesky.morphl2.io/address/0x530000000000000000000000000000000000000B",children:"ProxyAdmin"}),": 0x530000000000000000000000000000000000000B"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer-holesky.morphl2.io/address/0x530000000000000000000000000000000000000D",children:"MorphStandardERC20"}),": 0x530000000000000000000000000000000000000D"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer-holesky.morphl2.io/address/0x530000000000000000000000000000000000000E",children:"MorphStandardERC20Factory"}),": 0x530000000000000000000000000000000000000E"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer-holesky.morphl2.io/address/0x530000000000000000000000000000000000000F",children:"GasPriceOracle"}),": 0x530000000000000000000000000000000000000F"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer-holesky.morphl2.io/address/0x5300000000000000000000000000000000000011",children:"L2WETH"}),": 0x5300000000000000000000000000000000000011"]})]})}function i(e={}){const{wrapper:r}={...(0,h.R)(),...e.components};return r?(0,d.jsx)(r,{...e,children:(0,d.jsx)(o,{...e})}):o(e)}},2333:(e,r,s)=>{s.d(r,{R:()=>t,x:()=>n});var d=s(9474);const h={},a=d.createContext(h);function t(e){const r=d.useContext(a);return d.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function n(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(h):e.components||h:t(e.components),d.createElement(a.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/e7a84acc.42a29373.js b/build/assets/js/e7a84acc.42a29373.js new file mode 100644 index 000000000..61c4cc1c9 --- /dev/null +++ b/build/assets/js/e7a84acc.42a29373.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[3667],{7479:(e,r,s)=>{s.r(r),s.d(r,{assets:()=>c,contentTitle:()=>n,default:()=>i,frontMatter:()=>a,metadata:()=>t,toc:()=>l});var d=s(6070),h=s(1582);const a={title:"Contract Addresses",lang:"en-US"},n=void 0,t={id:"build-on-morph/developer-resources/contracts",title:"Contract Addresses",description:"Morph Network Info",source:"@site/docs/build-on-morph/developer-resources/1-contracts.md",sourceDirName:"build-on-morph/developer-resources",slug:"/build-on-morph/developer-resources/contracts",permalink:"/docs/build-on-morph/developer-resources/contracts",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/developer-resources/1-contracts.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{title:"Contract Addresses",lang:"en-US"},sidebar:"DeveloperSidebar",previous:{title:"Prune State",permalink:"/docs/build-on-morph/developer-resources/node-operation/prune-state"},next:{title:"Dapp Examples on Morph",permalink:"/docs/build-on-morph/developer-resources/dapp-examples-on-morph"}},c={},l=[{value:"Morph Network Info",id:"morph-network-info",level:2},{value:"Morph Mainnet",id:"morph-mainnet",level:3},{value:"Morph Holesky Testnet",id:"morph-holesky-testnet",level:3},{value:"Morph Mainnet Contracts",id:"morph-mainnet-contracts",level:2},{value:"Main Contract",id:"main-contract",level:3},{value:"L1 Contract",id:"l1-contract",level:4},{value:"L2 Contract",id:"l2-contract",level:4},{value:"Gateway",id:"gateway",level:3},{value:"L1 Gateway",id:"l1-gateway",level:4},{value:"L2 Gateway",id:"l2-gateway",level:4},{value:"Other Layer 2 Predeploys",id:"other-layer-2-predeploys",level:3},{value:"Tokens",id:"tokens",level:3},{value:"L1 Tokens",id:"l1-tokens",level:4},{value:"L2 Tokens",id:"l2-tokens",level:4},{value:"Morph Holesky Contracts",id:"morph-holesky-contracts",level:2},{value:"Main Contract",id:"main-contract-1",level:3},{value:"L1 Contract",id:"l1-contract-1",level:4},{value:"L2 Contract",id:"l2-contract-1",level:4},{value:"L2 Tokens",id:"l2-tokens-1",level:4},{value:"Gateway",id:"gateway-1",level:3},{value:"L1 Gateway",id:"l1-gateway-1",level:4},{value:"L2 Gateway",id:"l2-gateway-1",level:4},{value:"Other Layer 2 Predeploys",id:"other-layer-2-predeploys-1",level:3}];function o(e){const r={a:"a",admonition:"admonition",h2:"h2",h3:"h3",h4:"h4",p:"p",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,h.R)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(r.h2,{id:"morph-network-info",children:"Morph Network Info"}),"\n",(0,d.jsx)(r.h3,{id:"morph-mainnet",children:"Morph Mainnet"}),"\n",(0,d.jsxs)(r.table,{children:[(0,d.jsx)(r.thead,{children:(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.th,{children:"Network Name"}),(0,d.jsx)(r.th,{children:"Morph Mainnet"}),(0,d.jsx)(r.th,{children:"Ethereum Mainnet"})]})}),(0,d.jsxs)(r.tbody,{children:[(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:"RPC URL"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.a,{href:"https://rpc-quicknode.morphl2.io",children:"https://rpc-quicknode.morphl2.io"})}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.a,{href:"https://ethereum-rpc.publicnode.com/",children:"https://ethereum-rpc.publicnode.com/"})})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:"Chain ID"}),(0,d.jsx)(r.td,{children:"2818"}),(0,d.jsx)(r.td,{children:"1"})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:"Currency Symbol"}),(0,d.jsx)(r.td,{children:"ETH"}),(0,d.jsx)(r.td,{children:"ETH"})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:"Block Explorer URL"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/",children:"https://explorer.morphl2.io/"})}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.a,{href:"https://etherscan.io/",children:"https://etherscan.io/"})})]})]})]}),"\n",(0,d.jsx)(r.h3,{id:"morph-holesky-testnet",children:"Morph Holesky Testnet"}),"\n",(0,d.jsxs)(r.table,{children:[(0,d.jsx)(r.thead,{children:(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.th,{children:"Network Name"}),(0,d.jsx)(r.th,{children:"Morph Holesky Testnet"}),(0,d.jsx)(r.th,{children:"Ethereum Holesky Testnet"})]})}),(0,d.jsxs)(r.tbody,{children:[(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:"RPC URL"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.a,{href:"https://rpc-quicknode-holesky.morphl2.io",children:"https://rpc-quicknode-holesky.morphl2.io"})}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.a,{href:"https://ethereum-holesky-rpc.publicnode.com/",children:"https://ethereum-holesky-rpc.publicnode.com/"})})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:"Chain ID"}),(0,d.jsx)(r.td,{children:"2810"}),(0,d.jsx)(r.td,{children:"17000"})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:"Currency Symbol"}),(0,d.jsx)(r.td,{children:"ETH"}),(0,d.jsx)(r.td,{children:"ETH"})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:"Block Explorer URL"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.a,{href:"https://explorer-holesky.morphl2.io/",children:"https://explorer-holesky.morphl2.io/"})}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.a,{href:"https://holesky.etherscan.io/",children:"https://holesky.etherscan.io/"})})]})]})]}),"\n",(0,d.jsx)(r.h2,{id:"morph-mainnet-contracts",children:"Morph Mainnet Contracts"}),"\n",(0,d.jsx)(r.h3,{id:"main-contract",children:"Main Contract"}),"\n",(0,d.jsx)(r.h4,{id:"l1-contract",children:"L1 Contract"}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://etherscan.io/address/0x0dc417f8af88388737c5053ff73f345f080543f7",children:"Staking"}),": 0x0dc417f8af88388737c5053ff73f345f080543f7"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://etherscan.io/address/0x759894ced0e6af42c26668076ffa84d02e3cef60",children:"Rollup"}),": 0x759894ced0e6af42c26668076ffa84d02e3cef60"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://etherscan.io/address/0x3931ade842f5bb8763164bdd81e5361dce6cc1ef",children:"L1MessageQueueWithGasPriceOracle"}),": 0x3931ade842f5bb8763164bdd81e5361dce6cc1ef"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://etherscan.io/address/0xdc71366effa760804dcfc3edf87fa2a6f1623304",children:"L1CrossDomainMessenger"}),": 0xdc71366effa760804dcfc3edf87fa2a6f1623304"]}),"\n",(0,d.jsx)(r.h4,{id:"l2-contract",children:"L2 Contract"}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/address/0x5300000000000000000000000000000000000001",children:"L2ToL1MessagePasser"}),": 0x5300000000000000000000000000000000000001"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/address/0x5300000000000000000000000000000000000017",children:"Sequencer"}),": 0x5300000000000000000000000000000000000017"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/address/0x5300000000000000000000000000000000000004",children:"Gov"}),": 0x5300000000000000000000000000000000000004"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/address/0x5300000000000000000000000000000000000007",children:"L2CrossDomainMessenger"}),": 0x5300000000000000000000000000000000000007"]}),"\n",(0,d.jsx)(r.h3,{id:"gateway",children:"Gateway"}),"\n",(0,d.jsx)(r.h4,{id:"l1-gateway",children:"L1 Gateway"}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://etherscan.io/address/0x7497756ada7e656ae9f00781af49fc0fd08f8a8a",children:"L1GatewayRouter"}),": 0x7497756ada7e656ae9f00781af49fc0fd08f8a8a"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://etherscan.io/address/0x1c1ffb5828c3a48b54e8910f1c75256a498ade68",children:"L1ETHGateway"}),": 0x1c1ffb5828c3a48b54e8910f1c75256a498ade68"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://etherscan.io/address/0x788890ba6f105cca373c4ff01055cd34de01877f",children:"L1WETHGateway"}),": 0x788890ba6f105cca373c4ff01055cd34de01877f"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://etherscan.io/address/0x44c28f61a5c2dd24fc71d7df8e85e18af4ab2bd8",children:"L1StandardERC20Gateway"}),": 0x44c28f61a5c2dd24fc71d7df8e85e18af4ab2bd8"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://etherscan.io/address/0xa534badd09b4c62b7b1c32c41df310aa17b52ef1",children:"L1CustomERC20Gateway"}),": 0xa534badd09b4c62b7b1c32c41df310aa17b52ef1"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://etherscan.io/address/0x5ae782c23a303c0d70ae697a0aee9eae9a5d77c4",children:"L1ERC721Gateway"}),": 0x5ae782c23a303c0d70ae697a0aee9eae9a5d77c4"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://etherscan.io/address/0x7c9a3d9531692d057d496d04938bdb7d367e9765",children:"L1ERC1155Gateway"}),": 0x7c9a3d9531692d057d496d04938bdb7d367e9765"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://etherscan.io/address/0x2C8314f5AADa5D7a9D32eeFebFc43aCCAbe1b289",children:"L1USDCGateway"}),": 0x2C8314f5AADa5D7a9D32eeFebFc43aCCAbe1b289"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://etherscan.io/address/0xc5fa3b8968c7fabeea2b530a20b88d0c2ed8abb7",children:"EnforcedTxGateway"}),": 0xc5fa3b8968c7fabeea2b530a20b88d0c2ed8abb7"]}),"\n",(0,d.jsx)(r.h4,{id:"l2-gateway",children:"L2 Gateway"}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/address/0x5300000000000000000000000000000000000002",children:"L2GatewayRouter"}),": 0x5300000000000000000000000000000000000002"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/address/0x5300000000000000000000000000000000000008",children:"L2StandardERC20Gateway"}),": 0x5300000000000000000000000000000000000008"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/address/0x5300000000000000000000000000000000000009",children:"L2ERC721Gateway"}),": 0x5300000000000000000000000000000000000009"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/address/0x530000000000000000000000000000000000000c",children:"L2ERC1155Gateway"}),": 0x530000000000000000000000000000000000000c"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/address/0xc5e44E2fFe9523809146eD17D62bb382ECCf426B",children:"L2USDCGateway"}),":0xc5e44E2fFe9523809146eD17D62bb382ECCf426B"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/address/0x5300000000000000000000000000000000000010",children:"L2WETHGateway"}),": 0x5300000000000000000000000000000000000010"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/address/0x5300000000000000000000000000000000000006",children:"L2ETHGateway"}),": 0x5300000000000000000000000000000000000006"]}),"\n",(0,d.jsx)(r.h3,{id:"other-layer-2-predeploys",children:"Other Layer 2 Predeploys"}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/address/0x5300000000000000000000000000000000000015",children:"L2Staking"}),": 0x5300000000000000000000000000000000000015"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/address/0x530000000000000000000000000000000000000a",children:"L2TxFeeVault"}),": 0x530000000000000000000000000000000000000a"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/address/0x5300000000000000000000000000000000000016",children:"L2CustomERC20Gateway"}),": 0x5300000000000000000000000000000000000016"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/address/0x530000000000000000000000000000000000000b",children:"ProxyAdmin"}),": 0x530000000000000000000000000000000000000b"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/address/0x530000000000000000000000000000000000000d",children:"MorphStandardERC20"}),": 0x530000000000000000000000000000000000000d"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/address/0x530000000000000000000000000000000000000e",children:"MorphStandardERC20Factory"}),": 0x530000000000000000000000000000000000000e"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/address/0x530000000000000000000000000000000000000f",children:"GasPriceOracle"}),": 0x530000000000000000000000000000000000000f"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/address/0x5300000000000000000000000000000000000011",children:"L2WETH"}),": 0x5300000000000000000000000000000000000011"]}),"\n",(0,d.jsx)(r.h3,{id:"tokens",children:"Tokens"}),"\n",(0,d.jsx)(r.h4,{id:"l1-tokens",children:"L1 Tokens"}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://etherscan.io/address/0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",children:"WETH"}),": 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://etherscan.io/address/0xdAC17F958D2ee523a2206206994597C13D831ec7",children:"USDT"}),": 0xdAC17F958D2ee523a2206206994597C13D831ec7"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://etherscan.io/address/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",children:"USDC"}),": 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://etherscan.io/address/0x6B175474E89094C44Da98b954EedeAC495271d0F",children:"DAI"}),": 0x6B175474E89094C44Da98b954EedeAC495271d0F"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://etherscan.io/address/0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",children:"WBTC"}),": 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599"]}),"\n",(0,d.jsx)(r.h4,{id:"l2-tokens",children:"L2 Tokens"}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/address/0x5300000000000000000000000000000000000011",children:"WETH"}),": 0x5300000000000000000000000000000000000011"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/address/0xc7D67A9cBB121b3b0b9c053DD9f469523243379A",children:"USDT"}),": 0xc7D67A9cBB121b3b0b9c053DD9f469523243379A"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/address/0x803DcE4D3f4Ae2e17AF6C51343040dEe320C149D",children:"WBTC"}),": 0x803DcE4D3f4Ae2e17AF6C51343040dEe320C149D"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/address/0xe34c91815d7fc18A9e2148bcD4241d0a5848b693",children:"USDC"}),": 0xe34c91815d7fc18A9e2148bcD4241d0a5848b693"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/address/0xef8A24599229D002B28bA2F5C0eBdD3c0EFFbed4",children:"DAI"}),": 0xef8A24599229D002B28bA2F5C0eBdD3c0EFFbed4"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/address/0x7DCC39B4d1C53CB31e1aBc0e358b43987FEF80f7",children:"weETH"}),": 0x7DCC39B4d1C53CB31e1aBc0e358b43987FEF80f7"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer.morphl2.io/address/0x55d1f1879969bdbB9960d269974564C58DBc3238",children:"BGB"}),": 0x55d1f1879969bdbB9960d269974564C58DBc3238"]}),"\n",(0,d.jsx)(r.h2,{id:"morph-holesky-contracts",children:"Morph Holesky Contracts"}),"\n",(0,d.jsx)(r.admonition,{type:"tip",children:(0,d.jsx)(r.p,{children:"Please not the following is the contract address of the Morph Holesky Testnet."})}),"\n",(0,d.jsx)(r.h3,{id:"main-contract-1",children:"Main Contract"}),"\n",(0,d.jsx)(r.h4,{id:"l1-contract-1",children:"L1 Contract"}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://holesky.etherscan.io/address/0x868dd5d1c268277e331b726bb438edde8221d389",children:"Staking"}),": 0x868dd5d1c268277e331b726bb438edde8221d389"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://holesky.etherscan.io/address/0xd8c5c541d56f59d65cf775de928ccf4a47d4985c",children:"Rollup"}),": 0xd8c5c541d56f59d65cf775de928ccf4a47d4985c"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://holesky.etherscan.io/address/0x778d1d9a4d8b6b9ade36d967a9ac19455ec3fd0b",children:"L1MessageQueueWithGasPriceOracle"}),": 0x778d1d9a4d8b6b9ade36d967a9ac19455ec3fd0b"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://holesky.etherscan.io/address/0xecc966ab425f3f5bd58085ce4ebdbf81d829126f",children:"L1CrossDomainMessenger"}),": 0xecc966ab425f3f5bd58085ce4ebdbf81d829126f"]}),"\n",(0,d.jsx)(r.h4,{id:"l2-contract-1",children:"L2 Contract"}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer-holesky.morphl2.io/address/0x5300000000000000000000000000000000000001",children:"L2ToL1MessagePasser"}),": 0x5300000000000000000000000000000000000001"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer-holesky.morphl2.io/address/0x5300000000000000000000000000000000000003",children:"L2Sequencer"}),": 0x5300000000000000000000000000000000000003"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer-holesky.morphl2.io/address/0x5300000000000000000000000000000000000004",children:"L2Gov"}),": 0x5300000000000000000000000000000000000004"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer-holesky.morphl2.io/address/0x5300000000000000000000000000000000000005",children:"L2Submitter"}),": 0x5300000000000000000000000000000000000005"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer-holesky.morphl2.io/address/0x5300000000000000000000000000000000000007",children:"L2CrossDomainMessenger"}),": 0x5300000000000000000000000000000000000007"]}),"\n",(0,d.jsx)(r.h4,{id:"l2-tokens-1",children:"L2 Tokens"}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer-holesky.morphl2.io/address/0x9E12AD42c4E4d2acFBADE01a96446e48e6764B98",children:"L2USDT"}),":0x9E12AD42c4E4d2acFBADE01a96446e48e6764B98"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer-holesky.morphl2.io/address/0xeA2610c28B4c5857689EAFa8b2116a617206d283",children:"L2USDC"}),":0xeA2610c28B4c5857689EAFa8b2116a617206d283"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer-holesky.morphl2.io/address/0xAa19d46626947C6E1E5F281aE835971579827DDC",children:"L2DAI"}),":0xAa19d46626947C6E1E5F281aE835971579827DDC"]}),"\n",(0,d.jsx)(r.h3,{id:"gateway-1",children:"Gateway"}),"\n",(0,d.jsx)(r.h4,{id:"l1-gateway-1",children:"L1 Gateway"}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://holesky.etherscan.io/address/0xea593b730d745fb5fe01b6d20e6603915252c6bf",children:"L1GatewayRouter"}),": 0xea593b730d745fb5fe01b6d20e6603915252c6bf"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://holesky.etherscan.io/address/0xcc3d455481967dc97346ef1771a112d7a14c8f12",children:"L1ETHGateway"}),": 0xcc3d455481967dc97346ef1771a112d7a14c8f12"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://holesky.etherscan.io/address/0xbbdb317b50313d96823eba0fc2c1d9e469dc1906",children:"L1WETHGateway"}),": 0xbbdb317b50313d96823eba0fc2c1d9e469dc1906"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://holesky.etherscan.io/address/0xb26dafdb434ae93e3b8efde4f0193934955d86cd",children:"L1StandardERC20Gateway"}),": 0xb26dafdb434ae93e3b8efde4f0193934955d86cd"]}),"\n",(0,d.jsx)(r.h4,{id:"l2-gateway-1",children:"L2 Gateway"}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer-holesky.morphl2.io/address/0x5300000000000000000000000000000000000002",children:"L2GatewayRouter"}),": 0x5300000000000000000000000000000000000002"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer-holesky.morphl2.io/address/0x5300000000000000000000000000000000000008",children:"L2StandardERC20Gateway"}),": 0x5300000000000000000000000000000000000008"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer-holesky.morphl2.io/address/0x5300000000000000000000000000000000000009",children:"L2ERC721Gateway"}),": 0x5300000000000000000000000000000000000009"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer-holesky.morphl2.io/address/0x530000000000000000000000000000000000000c",children:"L2ERC1155Gateway"}),": 0x530000000000000000000000000000000000000c"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer-holesky.morphl2.io/address/0x5300000000000000000000000000000000000010",children:"L2WETHGateway"}),": 0x5300000000000000000000000000000000000010"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer-holesky.morphl2.io/address/0x5300000000000000000000000000000000000006",children:"L2ETHGateway"}),": 0x5300000000000000000000000000000000000006"]}),"\n",(0,d.jsx)(r.h3,{id:"other-layer-2-predeploys-1",children:"Other Layer 2 Predeploys"}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer-holesky.morphl2.io/address/0x530000000000000000000000000000000000000a",children:"L2TxFeeVault"}),": 0x530000000000000000000000000000000000000a"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer-holesky.morphl2.io/address/0x530000000000000000000000000000000000000b",children:"ProxyAdmin"}),": 0x530000000000000000000000000000000000000b"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer-holesky.morphl2.io/address/0x530000000000000000000000000000000000000d",children:"MorphStandardERC20"}),": 0x530000000000000000000000000000000000000d"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer-holesky.morphl2.io/address/0x530000000000000000000000000000000000000e",children:"MorphStandardERC20Factory"}),": 0x530000000000000000000000000000000000000e"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer-holesky.morphl2.io/address/0x530000000000000000000000000000000000000f",children:"GasPriceOracle"}),": 0x530000000000000000000000000000000000000f"]}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.a,{href:"https://explorer-holesky.morphl2.io/address/0x5300000000000000000000000000000000000011",children:"L2WETH"}),": 0x5300000000000000000000000000000000000011"]})]})}function i(e={}){const{wrapper:r}={...(0,h.R)(),...e.components};return r?(0,d.jsx)(r,{...e,children:(0,d.jsx)(o,{...e})}):o(e)}},1582:(e,r,s)=>{s.d(r,{R:()=>n,x:()=>t});var d=s(758);const h={},a=d.createContext(h);function n(e){const r=d.useContext(a);return d.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function t(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(h):e.components||h:n(e.components),d.createElement(a.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/e7f02677.3a3ab274.js b/build/assets/js/e7f02677.feb86e37.js similarity index 99% rename from build/assets/js/e7f02677.3a3ab274.js rename to build/assets/js/e7f02677.feb86e37.js index dbd050502..230cb5957 100644 --- a/build/assets/js/e7f02677.3a3ab274.js +++ b/build/assets/js/e7f02677.feb86e37.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[4991],{3045:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>l,contentTitle:()=>c,default:()=>a,frontMatter:()=>d,metadata:()=>o,toc:()=>h});var r=n(3274),i=n(2333);const d={},c="Class: CrossChainMessenger",o={id:"build-on-morph/sdk/classes/CrossChainMessenger",title:"CrossChainMessenger",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/classes/CrossChainMessenger.md",sourceDirName:"build-on-morph/sdk/classes",slug:"/build-on-morph/sdk/classes/CrossChainMessenger",permalink:"/docs/build-on-morph/sdk/classes/CrossChainMessenger",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/classes/CrossChainMessenger.md",tags:[],version:"current",frontMatter:{}},l={},h=[{value:"Constructors",id:"constructors",level:2},{value:"new CrossChainMessenger()",id:"new-crosschainmessenger",level:3},{value:"Parameters",id:"parameters",level:4},{value:"Returns",id:"returns",level:4},{value:"Source",id:"source",level:4},{value:"Properties",id:"properties",level:2},{value:"backendURL",id:"backendurl",level:3},{value:"Source",id:"source-1",level:4},{value:"bridges",id:"bridges",level:3},{value:"Source",id:"source-2",level:4},{value:"contracts",id:"contracts",level:3},{value:"Source",id:"source-3",level:4},{value:"estimateGas",id:"estimategas",level:3},{value:"approveERC20()",id:"approveerc20",level:4},{value:"Parameters",id:"parameters-1",level:5},{value:"Returns",id:"returns-1",level:5},{value:"depositERC20()",id:"depositerc20",level:4},{value:"Parameters",id:"parameters-2",level:5},{value:"Returns",id:"returns-2",level:5},{value:"depositETH()",id:"depositeth",level:4},{value:"Parameters",id:"parameters-3",level:5},{value:"Returns",id:"returns-3",level:5},{value:"proveAndRelayMessage()",id:"proveandrelaymessage",level:4},{value:"Parameters",id:"parameters-4",level:5},{value:"Returns",id:"returns-4",level:5},{value:"sendMessage()",id:"sendmessage",level:4},{value:"Parameters",id:"parameters-5",level:5},{value:"Returns",id:"returns-5",level:5},{value:"withdrawERC20()",id:"withdrawerc20",level:4},{value:"Parameters",id:"parameters-6",level:5},{value:"Returns",id:"returns-6",level:5},{value:"withdrawETH()",id:"withdraweth",level:4},{value:"Parameters",id:"parameters-7",level:5},{value:"Returns",id:"returns-7",level:5},{value:"Source",id:"source-4",level:4},{value:"l1ChainId",id:"l1chainid",level:3},{value:"Source",id:"source-5",level:4},{value:"l1CrossDomainMessenger",id:"l1crossdomainmessenger",level:3},{value:"Source",id:"source-6",level:4},{value:"l1SignerOrProvider",id:"l1signerorprovider",level:3},{value:"Source",id:"source-7",level:4},{value:"l2ChainId",id:"l2chainid",level:3},{value:"Source",id:"source-8",level:4},{value:"l2CrossDomainMessenger",id:"l2crossdomainmessenger",level:3},{value:"Source",id:"source-9",level:4},{value:"l2SignerOrProvider",id:"l2signerorprovider",level:3},{value:"Source",id:"source-10",level:4},{value:"populateTransaction",id:"populatetransaction",level:3},{value:"approveERC20()",id:"approveerc20-1",level:4},{value:"Parameters",id:"parameters-8",level:5},{value:"Returns",id:"returns-8",level:5},{value:"depositERC20()",id:"depositerc20-1",level:4},{value:"Parameters",id:"parameters-9",level:5},{value:"Returns",id:"returns-9",level:5},{value:"depositETH()",id:"depositeth-1",level:4},{value:"Parameters",id:"parameters-10",level:5},{value:"Returns",id:"returns-10",level:5},{value:"proveAndRelayMessage()",id:"proveandrelaymessage-1",level:4},{value:"Parameters",id:"parameters-11",level:5},{value:"Returns",id:"returns-11",level:5},{value:"sendMessage()",id:"sendmessage-1",level:4},{value:"Parameters",id:"parameters-12",level:5},{value:"Returns",id:"returns-12",level:5},{value:"withdrawERC20()",id:"withdrawerc20-1",level:4},{value:"Parameters",id:"parameters-13",level:5},{value:"Returns",id:"returns-13",level:5},{value:"withdrawETH()",id:"withdraweth-1",level:4},{value:"Parameters",id:"parameters-14",level:5},{value:"Returns",id:"returns-14",level:5},{value:"Source",id:"source-11",level:4},{value:"Accessors",id:"accessors",level:2},{value:"l1Provider",id:"l1provider",level:3},{value:"Returns",id:"returns-15",level:4},{value:"Source",id:"source-12",level:4},{value:"l1Signer",id:"l1signer",level:3},{value:"Returns",id:"returns-16",level:4},{value:"Source",id:"source-13",level:4},{value:"l2Provider",id:"l2provider",level:3},{value:"Returns",id:"returns-17",level:4},{value:"Source",id:"source-14",level:4},{value:"l2Signer",id:"l2signer",level:3},{value:"Returns",id:"returns-18",level:4},{value:"Source",id:"source-15",level:4},{value:"Methods",id:"methods",level:2},{value:"approval()",id:"approval",level:3},{value:"Parameters",id:"parameters-15",level:4},{value:"Returns",id:"returns-19",level:4},{value:"Source",id:"source-16",level:4},{value:"approveERC20()",id:"approveerc20-2",level:3},{value:"Parameters",id:"parameters-16",level:4},{value:"Returns",id:"returns-20",level:4},{value:"Source",id:"source-17",level:4},{value:"depositERC20()",id:"depositerc20-2",level:3},{value:"Parameters",id:"parameters-17",level:4},{value:"Returns",id:"returns-21",level:4},{value:"Source",id:"source-18",level:4},{value:"depositETH()",id:"depositeth-2",level:3},{value:"Parameters",id:"parameters-18",level:4},{value:"Returns",id:"returns-22",level:4},{value:"Source",id:"source-19",level:4},{value:"encodeFunctionMessage()",id:"encodefunctionmessage",level:3},{value:"Parameters",id:"parameters-19",level:4},{value:"Returns",id:"returns-23",level:4},{value:"Source",id:"source-20",level:4},{value:"estimateL2MessageGasLimit()",id:"estimatel2messagegaslimit",level:3},{value:"Parameters",id:"parameters-20",level:4},{value:"Returns",id:"returns-24",level:4},{value:"Source",id:"source-21",level:4},{value:"getBackendTreeSyncIndex()",id:"getbackendtreesyncindex",level:3},{value:"Returns",id:"returns-25",level:4},{value:"Source",id:"source-22",level:4},{value:"getBridgeForTokenPair()",id:"getbridgefortokenpair",level:3},{value:"Parameters",id:"parameters-21",level:4},{value:"Returns",id:"returns-26",level:4},{value:"Source",id:"source-23",level:4},{value:"getCommittedL2BlockNumber()",id:"getcommittedl2blocknumber",level:3},{value:"Returns",id:"returns-27",level:4},{value:"Source",id:"source-24",level:4},{value:"getDepositsByAddress()",id:"getdepositsbyaddress",level:3},{value:"Parameters",id:"parameters-22",level:4},{value:"Returns",id:"returns-28",level:4},{value:"Source",id:"source-25",level:4},{value:"getFinalizedL2BlockNumber()",id:"getfinalizedl2blocknumber",level:3},{value:"Returns",id:"returns-29",level:4},{value:"Source",id:"source-26",level:4},{value:"getMessageReceipt()",id:"getmessagereceipt",level:3},{value:"Parameters",id:"parameters-23",level:4},{value:"Returns",id:"returns-30",level:4},{value:"Source",id:"source-27",level:4},{value:"getMessageStatus()",id:"getmessagestatus",level:3},{value:"Parameters",id:"parameters-24",level:4},{value:"Returns",id:"returns-31",level:4},{value:"Source",id:"source-28",level:4},{value:"getMessagesByTransaction()",id:"getmessagesbytransaction",level:3},{value:"Parameters",id:"parameters-25",level:4},{value:"Returns",id:"returns-32",level:4},{value:"Source",id:"source-29",level:4},{value:"getProvenWithdrawal()",id:"getprovenwithdrawal",level:3},{value:"Parameters",id:"parameters-26",level:4},{value:"Returns",id:"returns-33",level:4},{value:"Source",id:"source-30",level:4},{value:"getWithdrawMessageProof()",id:"getwithdrawmessageproof",level:3},{value:"Parameters",id:"parameters-27",level:4},{value:"Returns",id:"returns-34",level:4},{value:"Source",id:"source-31",level:4},{value:"getWithdrawalsByAddress()",id:"getwithdrawalsbyaddress",level:3},{value:"Parameters",id:"parameters-28",level:4},{value:"Returns",id:"returns-35",level:4},{value:"Source",id:"source-32",level:4},{value:"proveAndRelayMessage()",id:"proveandrelaymessage-2",level:3},{value:"Parameters",id:"parameters-29",level:4},{value:"Returns",id:"returns-36",level:4},{value:"Source",id:"source-33",level:4},{value:"sendMessage()",id:"sendmessage-2",level:3},{value:"Parameters",id:"parameters-30",level:4},{value:"Returns",id:"returns-37",level:4},{value:"Source",id:"source-34",level:4},{value:"toCrossChainMessage()",id:"tocrosschainmessage",level:3},{value:"Parameters",id:"parameters-31",level:4},{value:"Returns",id:"returns-38",level:4},{value:"Source",id:"source-35",level:4},{value:"toLowLevelMessage()",id:"tolowlevelmessage",level:3},{value:"Parameters",id:"parameters-32",level:4},{value:"Returns",id:"returns-39",level:4},{value:"Source",id:"source-36",level:4},{value:"waitBatchFinalize()",id:"waitbatchfinalize",level:3},{value:"Parameters",id:"parameters-33",level:4},{value:"Returns",id:"returns-40",level:4},{value:"Source",id:"source-37",level:4},{value:"waitForMessageReceipt()",id:"waitformessagereceipt",level:3},{value:"Parameters",id:"parameters-34",level:4},{value:"Returns",id:"returns-41",level:4},{value:"Source",id:"source-38",level:4},{value:"waitForMessageStatus()",id:"waitformessagestatus",level:3},{value:"Parameters",id:"parameters-35",level:4},{value:"Returns",id:"returns-42",level:4},{value:"Source",id:"source-39",level:4},{value:"waitRollupSuccess()",id:"waitrollupsuccess",level:3},{value:"Parameters",id:"parameters-36",level:4},{value:"Returns",id:"returns-43",level:4},{value:"Source",id:"source-40",level:4},{value:"waitSyncSuccess()",id:"waitsyncsuccess",level:3},{value:"Parameters",id:"parameters-37",level:4},{value:"Returns",id:"returns-44",level:4},{value:"Source",id:"source-41",level:4},{value:"withdrawERC20()",id:"withdrawerc20-2",level:3},{value:"Parameters",id:"parameters-38",level:4},{value:"Returns",id:"returns-45",level:4},{value:"Source",id:"source-42",level:4},{value:"withdrawETH()",id:"withdraweth-2",level:3},{value:"Parameters",id:"parameters-39",level:4},{value:"Returns",id:"returns-46",level:4},{value:"Source",id:"source-43",level:4}];function t(e){const s={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",hr:"hr",p:"p",strong:"strong",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,r.jsx)(s.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,r.jsx)(s.strong,{children:"Docs"})]}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / CrossChainMessenger"]}),"\n",(0,r.jsx)(s.h1,{id:"class-crosschainmessenger",children:"Class: CrossChainMessenger"}),"\n",(0,r.jsx)(s.h2,{id:"constructors",children:"Constructors"}),"\n",(0,r.jsx)(s.h3,{id:"new-crosschainmessenger",children:"new CrossChainMessenger()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"new CrossChainMessenger"}),"(",(0,r.jsx)(s.code,{children:"opts"}),"): ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/CrossChainMessenger",children:(0,r.jsx)(s.code,{children:"CrossChainMessenger"})})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Creates a new CrossChainProvider instance."}),"\n",(0,r.jsx)(s.h4,{id:"parameters",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts"})]}),"\n",(0,r.jsx)(s.p,{children:"Options for the provider."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts.backendURL?"}),": ",(0,r.jsx)(s.code,{children:"string"})]}),"\n",(0,r.jsx)(s.p,{children:"backend for withdraw proof gen."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts.bridges?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/BridgeAdapterData",children:(0,r.jsx)(s.code,{children:"BridgeAdapterData"})})]}),"\n",(0,r.jsx)(s.p,{children:"Optional bridge address list."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts.contracts?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/DeepPartial",children:(0,r.jsx)(s.code,{children:"DeepPartial"})}),"<",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/OEContractsLike",children:(0,r.jsx)(s.code,{children:"OEContractsLike"})}),">"]}),"\n",(0,r.jsx)(s.p,{children:"Optional contract address overrides."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts.l1ChainId"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,r.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Chain ID for the L1 chain."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts.l1SignerOrProvider"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/SignerOrProviderLike",children:(0,r.jsx)(s.code,{children:"SignerOrProviderLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Signer or Provider for the L1 chain, or a JSON-RPC url."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts.l2ChainId"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,r.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Chain ID for the L2 chain."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts.l2SignerOrProvider"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/SignerOrProviderLike",children:(0,r.jsx)(s.code,{children:"SignerOrProviderLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Signer or Provider for the L2 chain, or a JSON-RPC url."}),"\n",(0,r.jsx)(s.h4,{id:"returns",children:"Returns"}),"\n",(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/CrossChainMessenger",children:(0,r.jsx)(s.code,{children:"CrossChainMessenger"})})}),"\n",(0,r.jsx)(s.h4,{id:"source",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:130"}),"\n",(0,r.jsx)(s.h2,{id:"properties",children:"Properties"}),"\n",(0,r.jsx)(s.h3,{id:"backendurl",children:"backendURL"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"backendURL"}),": ",(0,r.jsx)(s.code,{children:"string"})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Backend url for withdrawal prove server"}),"\n",(0,r.jsx)(s.h4,{id:"source-1",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:76"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"bridges",children:"bridges"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"bridges"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/BridgeAdapters",children:(0,r.jsx)(s.code,{children:"BridgeAdapters"})})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"List of custom bridges for the given network."}),"\n",(0,r.jsx)(s.h4,{id:"source-2",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:116"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"contracts",children:"contracts"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"contracts"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/OEContracts",children:(0,r.jsx)(s.code,{children:"OEContracts"})})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Contract objects attached to their respective providers and addresses."}),"\n",(0,r.jsx)(s.h4,{id:"source-3",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:111"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"estimategas",children:"estimateGas"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"estimateGas"}),": ",(0,r.jsx)(s.code,{children:"object"})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Object that holds the functions that estimates the gas required for a given transaction.\nFollows the pattern used by ethers.js."}),"\n",(0,r.jsx)(s.h4,{id:"approveerc20",children:"approveERC20()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"approveERC20"}),": (",(0,r.jsx)(s.code,{children:"l1Token"}),", ",(0,r.jsx)(s.code,{children:"l2Token"}),", ",(0,r.jsx)(s.code,{children:"amount"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"?) => ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Estimates gas required to approve some tokens to deposit into the L2 chain."}),"\n",(0,r.jsx)(s.h5,{id:"parameters-1",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"l1Token"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,r.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"The L1 token address."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"l2Token"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,r.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"The L2 token address."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"amount"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,r.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Amount of the token to approve."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,r.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,r.jsx)(s.p,{children:"Additional options."}),"\n",(0,r.jsx)(s.h5,{id:"returns-1",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,r.jsx)(s.h4,{id:"depositerc20",children:"depositERC20()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"depositERC20"}),": (",(0,r.jsx)(s.code,{children:"l1Token"}),", ",(0,r.jsx)(s.code,{children:"l2Token"}),", ",(0,r.jsx)(s.code,{children:"amount"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"?) => ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Estimates gas required to deposit some ERC20 tokens into the L2 chain."}),"\n",(0,r.jsx)(s.h5,{id:"parameters-2",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"l1Token"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,r.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Address of the L1 token."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"l2Token"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,r.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Address of the L2 token."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"amount"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,r.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Amount to deposit."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,r.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,r.jsx)(s.p,{children:"Additional options."}),"\n",(0,r.jsx)(s.h5,{id:"returns-2",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,r.jsx)(s.h4,{id:"depositeth",children:"depositETH()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"depositETH"}),": (",(0,r.jsx)(s.code,{children:"amount"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"?) => ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Estimates gas required to deposit some ETH into the L2 chain."}),"\n",(0,r.jsx)(s.h5,{id:"parameters-3",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"amount"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,r.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Amount of ETH to deposit."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,r.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,r.jsx)(s.p,{children:"Additional options."}),"\n",(0,r.jsx)(s.h5,{id:"returns-3",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,r.jsx)(s.h4,{id:"proveandrelaymessage",children:"proveAndRelayMessage()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"proveAndRelayMessage"}),": (",(0,r.jsx)(s.code,{children:"message"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"?) => ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Estimates gas required to proveAndRelay a cross chain message. Only applies to L2 to L1 messages."}),"\n",(0,r.jsx)(s.h5,{id:"parameters-4",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"message"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/MessageLike",children:(0,r.jsx)(s.code,{children:"MessageLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Message to generate the proving transaction for."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,r.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,r.jsx)(s.p,{children:"Additional options."}),"\n",(0,r.jsx)(s.h5,{id:"returns-4",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,r.jsx)(s.h4,{id:"sendmessage",children:"sendMessage()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"sendMessage"}),": (",(0,r.jsx)(s.code,{children:"message"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"?) => ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Estimates gas required to send a cross chain message."}),"\n",(0,r.jsx)(s.h5,{id:"parameters-5",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"message"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CrossChainMessageRequest",children:(0,r.jsx)(s.code,{children:"CrossChainMessageRequest"})})]}),"\n",(0,r.jsx)(s.p,{children:"Cross chain message to send."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,r.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,r.jsx)(s.p,{children:"Additional options."}),"\n",(0,r.jsx)(s.h5,{id:"returns-5",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,r.jsx)(s.h4,{id:"withdrawerc20",children:"withdrawERC20()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"withdrawERC20"}),": (",(0,r.jsx)(s.code,{children:"l1Token"}),", ",(0,r.jsx)(s.code,{children:"l2Token"}),", ",(0,r.jsx)(s.code,{children:"amount"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"?) => ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Estimates gas required to withdraw some ERC20 tokens back to the L1 chain."}),"\n",(0,r.jsx)(s.h5,{id:"parameters-6",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"l1Token"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,r.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Address of the L1 token."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"l2Token"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,r.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Address of the L2 token."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"amount"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,r.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Amount to withdraw."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,r.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,r.jsx)(s.p,{children:"Additional options."}),"\n",(0,r.jsx)(s.h5,{id:"returns-6",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,r.jsx)(s.h4,{id:"withdraweth",children:"withdrawETH()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"withdrawETH"}),": (",(0,r.jsx)(s.code,{children:"amount"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"?) => ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Estimates gas required to withdraw some ETH back to the L1 chain."}),"\n",(0,r.jsx)(s.h5,{id:"parameters-7",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"amount"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,r.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Amount of ETH to withdraw."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,r.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,r.jsx)(s.p,{children:"Additional options."}),"\n",(0,r.jsx)(s.h5,{id:"returns-7",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,r.jsx)(s.h4,{id:"source-4",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:1600"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"l1chainid",children:"l1ChainId"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"l1ChainId"}),": ",(0,r.jsx)(s.code,{children:"number"})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Chain ID for the L1 network."}),"\n",(0,r.jsx)(s.h4,{id:"source-5",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:101"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"l1crossdomainmessenger",children:"l1CrossDomainMessenger"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"l1CrossDomainMessenger"}),": ",(0,r.jsx)(s.code,{children:"Contract"})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"CrossDomainMessenger connected to the L1 chain."}),"\n",(0,r.jsx)(s.h4,{id:"source-6",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:91"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"l1signerorprovider",children:"l1SignerOrProvider"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"l1SignerOrProvider"}),": ",(0,r.jsx)(s.code,{children:"Provider"})," | ",(0,r.jsx)(s.code,{children:"Signer"})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Provider connected to the L1 chain."}),"\n",(0,r.jsx)(s.h4,{id:"source-7",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:81"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"l2chainid",children:"l2ChainId"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"l2ChainId"}),": ",(0,r.jsx)(s.code,{children:"number"})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Chain ID for the L2 network."}),"\n",(0,r.jsx)(s.h4,{id:"source-8",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:106"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"l2crossdomainmessenger",children:"l2CrossDomainMessenger"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"l2CrossDomainMessenger"}),": ",(0,r.jsx)(s.code,{children:"Contract"})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"CrossDomainMessenger connected to the L2 chain."}),"\n",(0,r.jsx)(s.h4,{id:"source-9",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:96"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"l2signerorprovider",children:"l2SignerOrProvider"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"l2SignerOrProvider"}),": ",(0,r.jsx)(s.code,{children:"Provider"})," | ",(0,r.jsx)(s.code,{children:"Signer"})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Provider connected to the L2 chain."}),"\n",(0,r.jsx)(s.h4,{id:"source-10",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:86"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"populatetransaction",children:"populateTransaction"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"populateTransaction"}),": ",(0,r.jsx)(s.code,{children:"object"})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Object that holds the functions that generate transactions to be signed by the user.\nFollows the pattern used by ethers.js."}),"\n",(0,r.jsx)(s.h4,{id:"approveerc20-1",children:"approveERC20()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"approveERC20"}),": (",(0,r.jsx)(s.code,{children:"l1Token"}),", ",(0,r.jsx)(s.code,{children:"l2Token"}),", ",(0,r.jsx)(s.code,{children:"amount"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"?) => ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Generates a transaction for approving some tokens to deposit into the L2 chain."}),"\n",(0,r.jsx)(s.h5,{id:"parameters-8",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"l1Token"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,r.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"The L1 token address."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"l2Token"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,r.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"The L2 token address."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"amount"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,r.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Amount of the token to approve."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,r.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,r.jsx)(s.p,{children:"Additional options."}),"\n",(0,r.jsx)(s.h5,{id:"returns-8",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n",(0,r.jsx)(s.h4,{id:"depositerc20-1",children:"depositERC20()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"depositERC20"}),": (",(0,r.jsx)(s.code,{children:"l1Token"}),", ",(0,r.jsx)(s.code,{children:"l2Token"}),", ",(0,r.jsx)(s.code,{children:"amount"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"?, ",(0,r.jsx)(s.code,{children:"isEstimatingGas"}),") => ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Generates a transaction for depositing some ERC20 tokens into the L2 chain."}),"\n",(0,r.jsx)(s.h5,{id:"parameters-9",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"l1Token"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,r.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Address of the L1 token."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"l2Token"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,r.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Address of the L2 token."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"amount"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,r.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Amount to deposit."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,r.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,r.jsx)(s.p,{children:"Additional options."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"isEstimatingGas?"}),": ",(0,r.jsx)(s.code,{children:"boolean"}),"= ",(0,r.jsx)(s.code,{children:"false"})]}),"\n",(0,r.jsx)(s.h5,{id:"returns-9",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n",(0,r.jsx)(s.h4,{id:"depositeth-1",children:"depositETH()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"depositETH"}),": (",(0,r.jsx)(s.code,{children:"amount"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"?, ",(0,r.jsx)(s.code,{children:"isEstimatingGas"}),") => ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Generates a transaction for depositing some ETH into the L2 chain."}),"\n",(0,r.jsx)(s.h5,{id:"parameters-10",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"amount"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,r.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Amount of ETH to deposit."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,r.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,r.jsx)(s.p,{children:"Additional options."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"isEstimatingGas?"}),": ",(0,r.jsx)(s.code,{children:"boolean"}),"= ",(0,r.jsx)(s.code,{children:"false"})]}),"\n",(0,r.jsx)(s.h5,{id:"returns-10",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n",(0,r.jsx)(s.h4,{id:"proveandrelaymessage-1",children:"proveAndRelayMessage()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"proveAndRelayMessage"}),": (",(0,r.jsx)(s.code,{children:"message"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"?) => ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Generates a message proving and relaying transaction that can be signed and executed. Only\napplicable for L2 to L1 messages."}),"\n",(0,r.jsx)(s.h5,{id:"parameters-11",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"message"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/MessageLike",children:(0,r.jsx)(s.code,{children:"MessageLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Message to generate the proving transaction for."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,r.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,r.jsx)(s.p,{children:"Additional options."}),"\n",(0,r.jsx)(s.h5,{id:"returns-11",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n",(0,r.jsx)(s.h4,{id:"sendmessage-1",children:"sendMessage()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"sendMessage"}),": (",(0,r.jsx)(s.code,{children:"message"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"?) => ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Generates a transaction that sends a given cross chain message. This transaction can be signed\nand executed by a signer."}),"\n",(0,r.jsx)(s.h5,{id:"parameters-12",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"message"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CrossChainMessageRequest",children:(0,r.jsx)(s.code,{children:"CrossChainMessageRequest"})})]}),"\n",(0,r.jsx)(s.p,{children:"Cross chain message to send."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,r.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,r.jsx)(s.p,{children:"Additional options."}),"\n",(0,r.jsx)(s.h5,{id:"returns-12",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n",(0,r.jsx)(s.h4,{id:"withdrawerc20-1",children:"withdrawERC20()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"withdrawERC20"}),": (",(0,r.jsx)(s.code,{children:"l1Token"}),", ",(0,r.jsx)(s.code,{children:"l2Token"}),", ",(0,r.jsx)(s.code,{children:"amount"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"?, ",(0,r.jsx)(s.code,{children:"isEstimatingGas"}),"?) => ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Generates a transaction for withdrawing some ERC20 tokens back to the L1 chain."}),"\n",(0,r.jsx)(s.h5,{id:"parameters-13",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"l1Token"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,r.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Address of the L1 token."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"l2Token"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,r.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Address of the L2 token."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"amount"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,r.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Amount to withdraw."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,r.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,r.jsx)(s.p,{children:"Additional options."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"isEstimatingGas?"}),": ",(0,r.jsx)(s.code,{children:"boolean"})]}),"\n",(0,r.jsx)(s.h5,{id:"returns-13",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n",(0,r.jsx)(s.h4,{id:"withdraweth-1",children:"withdrawETH()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"withdrawETH"}),": (",(0,r.jsx)(s.code,{children:"amount"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"?, ",(0,r.jsx)(s.code,{children:"isEstimatingGas"}),"?) => ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Generates a transaction for withdrawing some ETH back to the L1 chain."}),"\n",(0,r.jsx)(s.h5,{id:"parameters-14",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"amount"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,r.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Amount of ETH to withdraw."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,r.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,r.jsx)(s.p,{children:"Additional options."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"isEstimatingGas?"}),": ",(0,r.jsx)(s.code,{children:"boolean"})]}),"\n",(0,r.jsx)(s.h5,{id:"returns-14",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n",(0,r.jsx)(s.h4,{id:"source-11",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:1304"}),"\n",(0,r.jsx)(s.h2,{id:"accessors",children:"Accessors"}),"\n",(0,r.jsx)(s.h3,{id:"l1provider",children:"l1Provider"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"get"})," ",(0,r.jsx)(s.strong,{children:"l1Provider"}),"(): ",(0,r.jsx)(s.code,{children:"Provider"})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Provider connected to the L1 chain."}),"\n",(0,r.jsx)(s.h4,{id:"returns-15",children:"Returns"}),"\n",(0,r.jsx)(s.p,{children:(0,r.jsx)(s.code,{children:"Provider"})}),"\n",(0,r.jsx)(s.h4,{id:"source-12",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:193"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"l1signer",children:"l1Signer"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"get"})," ",(0,r.jsx)(s.strong,{children:"l1Signer"}),"(): ",(0,r.jsx)(s.code,{children:"Signer"})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Signer connected to the L1 chain."}),"\n",(0,r.jsx)(s.h4,{id:"returns-16",children:"Returns"}),"\n",(0,r.jsx)(s.p,{children:(0,r.jsx)(s.code,{children:"Signer"})}),"\n",(0,r.jsx)(s.h4,{id:"source-13",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:215"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"l2provider",children:"l2Provider"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"get"})," ",(0,r.jsx)(s.strong,{children:"l2Provider"}),"(): ",(0,r.jsx)(s.code,{children:"Provider"})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Provider connected to the L2 chain."}),"\n",(0,r.jsx)(s.h4,{id:"returns-17",children:"Returns"}),"\n",(0,r.jsx)(s.p,{children:(0,r.jsx)(s.code,{children:"Provider"})}),"\n",(0,r.jsx)(s.h4,{id:"source-14",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:204"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"l2signer",children:"l2Signer"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"get"})," ",(0,r.jsx)(s.strong,{children:"l2Signer"}),"(): ",(0,r.jsx)(s.code,{children:"Signer"})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Signer connected to the L2 chain."}),"\n",(0,r.jsx)(s.h4,{id:"returns-18",children:"Returns"}),"\n",(0,r.jsx)(s.p,{children:(0,r.jsx)(s.code,{children:"Signer"})}),"\n",(0,r.jsx)(s.h4,{id:"source-15",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:226"}),"\n",(0,r.jsx)(s.h2,{id:"methods",children:"Methods"}),"\n",(0,r.jsx)(s.h3,{id:"approval",children:"approval()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"approval"}),"(",(0,r.jsx)(s.code,{children:"l1Token"}),", ",(0,r.jsx)(s.code,{children:"l2Token"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"?): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Queries the account's approval amount for a given L1 token."}),"\n",(0,r.jsx)(s.h4,{id:"parameters-15",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"l1Token"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,r.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"The L1 token address."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"l2Token"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,r.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"The L2 token address."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,r.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,r.jsx)(s.p,{children:"Additional options."}),"\n",(0,r.jsx)(s.h4,{id:"returns-19",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,r.jsx)(s.p,{children:"Amount of tokens approved for deposits from the account."}),"\n",(0,r.jsx)(s.h4,{id:"source-16",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:1214"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"approveerc20-2",children:"approveERC20()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"approveERC20"}),"(",(0,r.jsx)(s.code,{children:"l1Token"}),", ",(0,r.jsx)(s.code,{children:"l2Token"}),", ",(0,r.jsx)(s.code,{children:"amount"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"?): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Approves a deposit into the L2 chain."}),"\n",(0,r.jsx)(s.h4,{id:"parameters-16",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"l1Token"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,r.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"The L1 token address."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"l2Token"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,r.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"The L2 token address."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"amount"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,r.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Amount of the token to approve."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,r.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,r.jsx)(s.p,{children:"Additional options."}),"\n",(0,r.jsx)(s.h4,{id:"returns-20",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n",(0,r.jsx)(s.p,{children:"Transaction response for the approval transaction."}),"\n",(0,r.jsx)(s.h4,{id:"source-17",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:1233"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"depositerc20-2",children:"depositERC20()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"depositERC20"}),"(",(0,r.jsx)(s.code,{children:"l1Token"}),", ",(0,r.jsx)(s.code,{children:"l2Token"}),", ",(0,r.jsx)(s.code,{children:"amount"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"?): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Deposits some ERC20 tokens into the L2 chain."}),"\n",(0,r.jsx)(s.h4,{id:"parameters-17",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"l1Token"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,r.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Address of the L1 token."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"l2Token"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,r.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Address of the L2 token."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"amount"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,r.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Amount to deposit."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,r.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,r.jsx)(s.p,{children:"Additional options."}),"\n",(0,r.jsx)(s.h4,{id:"returns-21",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n",(0,r.jsx)(s.p,{children:"Transaction response for the deposit transaction."}),"\n",(0,r.jsx)(s.h4,{id:"source-18",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:1256"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"depositeth-2",children:"depositETH()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"depositETH"}),"(",(0,r.jsx)(s.code,{children:"amount"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"?): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Deposits some ETH into the L2 chain."}),"\n",(0,r.jsx)(s.h4,{id:"parameters-18",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"amount"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,r.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Amount of ETH to deposit (in wei)."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,r.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,r.jsx)(s.p,{children:"Additional options."}),"\n",(0,r.jsx)(s.h4,{id:"returns-22",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n",(0,r.jsx)(s.p,{children:"Transaction response for the deposit transaction."}),"\n",(0,r.jsx)(s.h4,{id:"source-19",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:1183"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"encodefunctionmessage",children:"encodeFunctionMessage()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"encodeFunctionMessage"}),"(",(0,r.jsx)(s.code,{children:"options"}),"): ",(0,r.jsx)(s.code,{children:"string"})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"L2CrossDomainMessenger contract encode message, such as hashCrossDomainMessagev1"}),"\n",(0,r.jsx)(s.h4,{id:"parameters-19",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"options"})]}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"options.message"}),": ",(0,r.jsx)(s.code,{children:"string"})]}),"\n",(0,r.jsx)(s.p,{children:"The message passed along with the cross domain message"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"options.messageNonce"}),": ",(0,r.jsx)(s.code,{children:"BigNumber"})]}),"\n",(0,r.jsx)(s.p,{children:"The cross domain message nonce"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"options.sender"}),": ",(0,r.jsx)(s.code,{children:"string"})]}),"\n",(0,r.jsx)(s.p,{children:"The sender of the cross domain message"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"options.target"}),": ",(0,r.jsx)(s.code,{children:"string"})]}),"\n",(0,r.jsx)(s.p,{children:"The target of the cross domain message"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"options.value"}),": ",(0,r.jsx)(s.code,{children:"BigNumber"})]}),"\n",(0,r.jsx)(s.p,{children:"The value being sent with the cross domain message"}),"\n",(0,r.jsx)(s.h4,{id:"returns-23",children:"Returns"}),"\n",(0,r.jsx)(s.p,{children:(0,r.jsx)(s.code,{children:"string"})}),"\n",(0,r.jsx)(s.h4,{id:"source-20",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:972"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"estimatel2messagegaslimit",children:"estimateL2MessageGasLimit()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"estimateL2MessageGasLimit"}),"(",(0,r.jsx)(s.code,{children:"message"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"?): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Estimates the amount of gas required to fully execute a given message on L2. Only applies to\nL1 => L2 messages. You would supply this gas limit when sending the message to L2."}),"\n",(0,r.jsx)(s.h4,{id:"parameters-20",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"message"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/MessageRequestLike",children:(0,r.jsx)(s.code,{children:"MessageRequestLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Message get a gas estimate for."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts?"})]}),"\n",(0,r.jsx)(s.p,{children:"Options object."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts.bufferPercent?"}),": ",(0,r.jsx)(s.code,{children:"number"})]}),"\n",(0,r.jsx)(s.p,{children:"Percentage of gas to add to the estimate. Defaults to 20."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts.from?"}),": ",(0,r.jsx)(s.code,{children:"string"})]}),"\n",(0,r.jsx)(s.p,{children:"Address to use as the sender."}),"\n",(0,r.jsx)(s.h4,{id:"returns-24",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,r.jsx)(s.p,{children:"Estimates L2 gas limit."}),"\n",(0,r.jsx)(s.h4,{id:"source-21",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:918"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"getbackendtreesyncindex",children:"getBackendTreeSyncIndex()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"getBackendTreeSyncIndex"}),"(): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"number"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.h4,{id:"returns-25",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"number"}),">"]}),"\n",(0,r.jsx)(s.h4,{id:"source-22",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:1122"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"getbridgefortokenpair",children:"getBridgeForTokenPair()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"getBridgeForTokenPair"}),"(",(0,r.jsx)(s.code,{children:"l1Token"}),", ",(0,r.jsx)(s.code,{children:"l2Token"}),"): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter",children:(0,r.jsx)(s.code,{children:"IBridgeAdapter"})}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Finds the appropriate bridge adapter for a given L1 - L2 token pair. Will throw if no bridges\nsupport the token pair or if more than one bridge supports the token pair."}),"\n",(0,r.jsx)(s.h4,{id:"parameters-21",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"l1Token"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,r.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"L1 token address."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"l2Token"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,r.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"L2 token address."}),"\n",(0,r.jsx)(s.h4,{id:"returns-26",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter",children:(0,r.jsx)(s.code,{children:"IBridgeAdapter"})}),">"]}),"\n",(0,r.jsx)(s.p,{children:"The appropriate bridge adapter for the given token pair."}),"\n",(0,r.jsx)(s.h4,{id:"source-23",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:378"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"getcommittedl2blocknumber",children:"getCommittedL2BlockNumber()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"getCommittedL2BlockNumber"}),"(): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"any"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.h4,{id:"returns-27",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"any"}),">"]}),"\n",(0,r.jsx)(s.h4,{id:"source-24",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:995"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"getdepositsbyaddress",children:"getDepositsByAddress()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"getDepositsByAddress"}),"(",(0,r.jsx)(s.code,{children:"address"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage",children:(0,r.jsx)(s.code,{children:"TokenBridgeMessage"})}),"[]>"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Gets all deposits for a given address."}),"\n",(0,r.jsx)(s.h4,{id:"parameters-22",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"address"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,r.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Address to search for messages from."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts"}),"= ",(0,r.jsx)(s.code,{children:"{}"})]}),"\n",(0,r.jsx)(s.p,{children:"Options object."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts.fromBlock?"}),": ",(0,r.jsx)(s.code,{children:"BlockTag"})]}),"\n",(0,r.jsx)(s.p,{children:"Block to start searching for messages from. If not provided, will start\nfrom the first block (block #0)."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts.toBlock?"}),": ",(0,r.jsx)(s.code,{children:"BlockTag"})]}),"\n",(0,r.jsx)(s.p,{children:'Block to stop searching for messages at. If not provided, will stop at the\nlatest known block ("latest").'}),"\n",(0,r.jsx)(s.h4,{id:"returns-28",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage",children:(0,r.jsx)(s.code,{children:"TokenBridgeMessage"})}),"[]>"]}),"\n",(0,r.jsx)(s.p,{children:"All deposit token bridge messages sent by the given address."}),"\n",(0,r.jsx)(s.h4,{id:"source-25",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:424"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"getfinalizedl2blocknumber",children:"getFinalizedL2BlockNumber()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"getFinalizedL2BlockNumber"}),"(): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"any"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.h4,{id:"returns-29",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"any"}),">"]}),"\n",(0,r.jsx)(s.h4,{id:"source-26",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:1017"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"getmessagereceipt",children:"getMessageReceipt()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"getMessageReceipt"}),"(",(0,r.jsx)(s.code,{children:"message"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/MessageReceipt",children:(0,r.jsx)(s.code,{children:"MessageReceipt"})}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Finds the receipt of the transaction that executed a particular cross chain message."}),"\n",(0,r.jsx)(s.h4,{id:"parameters-23",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"message"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/MessageLike",children:(0,r.jsx)(s.code,{children:"MessageLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Message to find the receipt of."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts"}),"= ",(0,r.jsx)(s.code,{children:"{}"})]}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts.direction?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/enumerations/MessageDirection",children:(0,r.jsx)(s.code,{children:"MessageDirection"})})]}),"\n",(0,r.jsx)(s.h4,{id:"returns-30",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/MessageReceipt",children:(0,r.jsx)(s.code,{children:"MessageReceipt"})}),">"]}),"\n",(0,r.jsx)(s.p,{children:"CrossChainMessage receipt including receipt of the transaction that relayed the\ngiven message."}),"\n",(0,r.jsx)(s.h4,{id:"source-27",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:757"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"getmessagestatus",children:"getMessageStatus()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"getMessageStatus"}),"(",(0,r.jsx)(s.code,{children:"message"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/enumerations/MessageStatus",children:(0,r.jsx)(s.code,{children:"MessageStatus"})}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Retrieves the status of a particular message as an enum."}),"\n",(0,r.jsx)(s.h4,{id:"parameters-24",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"message"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/MessageLike",children:(0,r.jsx)(s.code,{children:"MessageLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Cross chain message to check the status of."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts"}),"= ",(0,r.jsx)(s.code,{children:"{}"})]}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts.direction?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/enumerations/MessageDirection",children:(0,r.jsx)(s.code,{children:"MessageDirection"})})]}),"\n",(0,r.jsx)(s.h4,{id:"returns-31",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/enumerations/MessageStatus",children:(0,r.jsx)(s.code,{children:"MessageStatus"})}),">"]}),"\n",(0,r.jsx)(s.p,{children:"Status of the message."}),"\n",(0,r.jsx)(s.h4,{id:"source-28",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:634"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"getmessagesbytransaction",children:"getMessagesByTransaction()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"getMessagesByTransaction"}),"(",(0,r.jsx)(s.code,{children:"transaction"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CrossChainMessage",children:(0,r.jsx)(s.code,{children:"CrossChainMessage"})}),"[]>"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Retrieves all cross chain messages sent within a given transaction."}),"\n",(0,r.jsx)(s.h4,{id:"parameters-25",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"transaction"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/TransactionLike",children:(0,r.jsx)(s.code,{children:"TransactionLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Transaction hash or receipt to find messages from."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts"}),"= ",(0,r.jsx)(s.code,{children:"{}"})]}),"\n",(0,r.jsx)(s.p,{children:"Options object."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts.direction?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/enumerations/MessageDirection",children:(0,r.jsx)(s.code,{children:"MessageDirection"})})]}),"\n",(0,r.jsx)(s.p,{children:"Direction to search for messages in. If not provided, will attempt to\nautomatically search both directions under the assumption that a transaction hash will only\nexist on one chain. If the hash exists on both chains, will throw an error."}),"\n",(0,r.jsx)(s.h4,{id:"returns-32",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CrossChainMessage",children:(0,r.jsx)(s.code,{children:"CrossChainMessage"})}),"[]>"]}),"\n",(0,r.jsx)(s.p,{children:"All cross chain messages sent within the transaction."}),"\n",(0,r.jsx)(s.h4,{id:"source-29",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:244"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"getprovenwithdrawal",children:"getProvenWithdrawal()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"getProvenWithdrawal"}),"(",(0,r.jsx)(s.code,{children:"withdrawalHash"}),"): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/ProvenWithdrawal",children:(0,r.jsx)(s.code,{children:"ProvenWithdrawal"})}),">"]}),"\n"]}),"\n",(0,r.jsxs)(s.p,{children:["Queries the L1CrossDomainMessenger contract's ",(0,r.jsx)(s.code,{children:"provenWithdrawals"})," mapping\nfor a ProvenWithdrawal that matches the passed withdrawalHash"]}),"\n",(0,r.jsx)(s.h4,{id:"parameters-26",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"withdrawalHash"}),": ",(0,r.jsx)(s.code,{children:"string"})]}),"\n",(0,r.jsx)(s.h4,{id:"returns-33",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/ProvenWithdrawal",children:(0,r.jsx)(s.code,{children:"ProvenWithdrawal"})}),">"]}),"\n",(0,r.jsx)(s.p,{children:"A ProvenWithdrawal object"}),"\n",(0,r.jsx)(s.h4,{id:"source-30",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:957"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"getwithdrawmessageproof",children:"getWithdrawMessageProof()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"getWithdrawMessageProof"}),"(",(0,r.jsx)(s.code,{children:"message"}),"): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/WithdrawMessageProof",children:(0,r.jsx)(s.code,{children:"WithdrawMessageProof"})}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Generates the proof required to finalize an L2 to L1 message."}),"\n",(0,r.jsx)(s.h4,{id:"parameters-27",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"message"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/MessageLike",children:(0,r.jsx)(s.code,{children:"MessageLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Message to generate a proof for."}),"\n",(0,r.jsx)(s.h4,{id:"returns-34",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/WithdrawMessageProof",children:(0,r.jsx)(s.code,{children:"WithdrawMessageProof"})}),">"]}),"\n",(0,r.jsx)(s.p,{children:"Proof that can be used to finalize the message."}),"\n",(0,r.jsx)(s.h4,{id:"source-31",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:1042"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"getwithdrawalsbyaddress",children:"getWithdrawalsByAddress()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"getWithdrawalsByAddress"}),"(",(0,r.jsx)(s.code,{children:"address"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage",children:(0,r.jsx)(s.code,{children:"TokenBridgeMessage"})}),"[]>"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Gets all withdrawals for a given address."}),"\n",(0,r.jsx)(s.h4,{id:"parameters-28",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"address"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,r.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Address to search for messages from."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts"}),"= ",(0,r.jsx)(s.code,{children:"{}"})]}),"\n",(0,r.jsx)(s.p,{children:"Options object."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts.fromBlock?"}),": ",(0,r.jsx)(s.code,{children:"BlockTag"})]}),"\n",(0,r.jsx)(s.p,{children:"Block to start searching for messages from. If not provided, will start\nfrom the first block (block #0)."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts.toBlock?"}),": ",(0,r.jsx)(s.code,{children:"BlockTag"})]}),"\n",(0,r.jsx)(s.p,{children:'Block to stop searching for messages at. If not provided, will stop at the\nlatest known block ("latest").'}),"\n",(0,r.jsx)(s.h4,{id:"returns-35",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage",children:(0,r.jsx)(s.code,{children:"TokenBridgeMessage"})}),"[]>"]}),"\n",(0,r.jsx)(s.p,{children:"All withdrawal token bridge messages sent by the given address."}),"\n",(0,r.jsx)(s.h4,{id:"source-32",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:458"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"proveandrelaymessage-2",children:"proveAndRelayMessage()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"proveAndRelayMessage"}),"(",(0,r.jsx)(s.code,{children:"message"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"?): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Prove and relay a cross chain message that was sent from L2 to L1. Only applicable for L2 to L1\nmessages."}),"\n",(0,r.jsx)(s.h4,{id:"parameters-29",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"message"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/MessageLike",children:(0,r.jsx)(s.code,{children:"MessageLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Message to finalize."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,r.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,r.jsx)(s.p,{children:"Additional options."}),"\n",(0,r.jsx)(s.h4,{id:"returns-36",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n",(0,r.jsx)(s.p,{children:"Transaction response for the finalization transaction."}),"\n",(0,r.jsx)(s.h4,{id:"source-33",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:1163"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"sendmessage-2",children:"sendMessage()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"sendMessage"}),"(",(0,r.jsx)(s.code,{children:"message"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"?): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Sends a given cross chain message. Where the message is sent depends on the direction attached\nto the message itself."}),"\n",(0,r.jsx)(s.h4,{id:"parameters-30",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"message"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CrossChainMessageRequest",children:(0,r.jsx)(s.code,{children:"CrossChainMessageRequest"})})]}),"\n",(0,r.jsx)(s.p,{children:"Cross chain message to send."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,r.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,r.jsx)(s.p,{children:"Additional options."}),"\n",(0,r.jsx)(s.h4,{id:"returns-37",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n",(0,r.jsx)(s.p,{children:"Transaction response for the message sending transaction."}),"\n",(0,r.jsx)(s.h4,{id:"source-34",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:1143"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"tocrosschainmessage",children:"toCrossChainMessage()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"toCrossChainMessage"}),"(",(0,r.jsx)(s.code,{children:"message"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"?): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CrossChainMessage",children:(0,r.jsx)(s.code,{children:"CrossChainMessage"})}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Resolves a MessageLike into a CrossChainMessage object.\nUnlike other coercion functions, this function is stateful and requires making additional\nrequests. For now I'm going to keep this function here, but we could consider putting a\nsimilar function inside of utils/coercion.ts if people want to use this without having to\ncreate an entire CrossChainProvider object."}),"\n",(0,r.jsx)(s.h4,{id:"parameters-31",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"message"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/MessageLike",children:(0,r.jsx)(s.code,{children:"MessageLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"MessageLike to resolve into a CrossChainMessage."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts?"})]}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts.direction?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/enumerations/MessageDirection",children:(0,r.jsx)(s.code,{children:"MessageDirection"})})]}),"\n",(0,r.jsx)(s.h4,{id:"returns-38",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CrossChainMessage",children:(0,r.jsx)(s.code,{children:"CrossChainMessage"})}),">"]}),"\n",(0,r.jsx)(s.p,{children:"Message coerced into a CrossChainMessage."}),"\n",(0,r.jsx)(s.h4,{id:"source-35",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:491"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"tolowlevelmessage",children:"toLowLevelMessage()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"toLowLevelMessage"}),"(",(0,r.jsx)(s.code,{children:"message"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"?): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/LowLevelMessage",children:(0,r.jsx)(s.code,{children:"LowLevelMessage"})}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Transforms a CrossChainMessenger message into its low-level representation inside the\nL2ToL1MessagePasser contract on L2."}),"\n",(0,r.jsx)(s.h4,{id:"parameters-32",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"message"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/MessageLike",children:(0,r.jsx)(s.code,{children:"MessageLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Message to transform."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts?"})]}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts.direction?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/enumerations/MessageDirection",children:(0,r.jsx)(s.code,{children:"MessageDirection"})})]}),"\n",(0,r.jsx)(s.h4,{id:"returns-39",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/LowLevelMessage",children:(0,r.jsx)(s.code,{children:"LowLevelMessage"})}),">"]}),"\n",(0,r.jsx)(s.p,{children:"Transformed message."}),"\n",(0,r.jsx)(s.h4,{id:"source-36",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:326"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"waitbatchfinalize",children:"waitBatchFinalize()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"waitBatchFinalize"}),"(",(0,r.jsx)(s.code,{children:"transactionHash"}),"): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"void"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.h4,{id:"parameters-33",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"transactionHash"}),": ",(0,r.jsx)(s.code,{children:"string"})]}),"\n",(0,r.jsx)(s.h4,{id:"returns-40",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"void"}),">"]}),"\n",(0,r.jsx)(s.h4,{id:"source-37",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:600"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"waitformessagereceipt",children:"waitForMessageReceipt()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"waitForMessageReceipt"}),"(",(0,r.jsx)(s.code,{children:"message"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/MessageReceipt",children:(0,r.jsx)(s.code,{children:"MessageReceipt"})}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Waits for a message to be executed and returns the receipt of the transaction that executed\nthe given message."}),"\n",(0,r.jsx)(s.h4,{id:"parameters-34",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"message"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/MessageLike",children:(0,r.jsx)(s.code,{children:"MessageLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Message to wait for."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts"}),"= ",(0,r.jsx)(s.code,{children:"{}"})]}),"\n",(0,r.jsx)(s.p,{children:"Options to pass to the waiting function."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts.confirmations?"}),": ",(0,r.jsx)(s.code,{children:"number"})]}),"\n",(0,r.jsx)(s.p,{children:"Number of transaction confirmations to wait for before returning."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts.pollIntervalMs?"}),": ",(0,r.jsx)(s.code,{children:"number"})]}),"\n",(0,r.jsx)(s.p,{children:"Number of milliseconds to wait between polling for the receipt."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts.timeoutMs?"}),": ",(0,r.jsx)(s.code,{children:"number"})]}),"\n",(0,r.jsx)(s.p,{children:"Milliseconds to wait before timing out."}),"\n",(0,r.jsx)(s.h4,{id:"returns-41",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/MessageReceipt",children:(0,r.jsx)(s.code,{children:"MessageReceipt"})}),">"]}),"\n",(0,r.jsx)(s.p,{children:"CrossChainMessage receipt including receipt of the transaction that relayed the\ngiven message."}),"\n",(0,r.jsx)(s.h4,{id:"source-38",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:802"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"waitformessagestatus",children:"waitForMessageStatus()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"waitForMessageStatus"}),"(",(0,r.jsx)(s.code,{children:"message"}),", ",(0,r.jsx)(s.code,{children:"status"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"void"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Waits until the status of a given message changes to the expected status. Note that if the\nstatus of the given message changes to a status that implies the expected status, this will\nstill return. If the status of the message changes to a status that exclues the expected\nstatus, this will throw an error."}),"\n",(0,r.jsx)(s.h4,{id:"parameters-35",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"message"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/MessageLike",children:(0,r.jsx)(s.code,{children:"MessageLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Message to wait for."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"status"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/enumerations/MessageStatus",children:(0,r.jsx)(s.code,{children:"MessageStatus"})})]}),"\n",(0,r.jsx)(s.p,{children:"Expected status of the message."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts"}),"= ",(0,r.jsx)(s.code,{children:"{}"})]}),"\n",(0,r.jsx)(s.p,{children:"Options to pass to the waiting function."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts.direction?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/enumerations/MessageDirection",children:(0,r.jsx)(s.code,{children:"MessageDirection"})})]}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts.pollIntervalMs?"}),": ",(0,r.jsx)(s.code,{children:"number"})]}),"\n",(0,r.jsx)(s.p,{children:"Number of milliseconds to wait when polling."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts.timeoutMs?"}),": ",(0,r.jsx)(s.code,{children:"number"})]}),"\n",(0,r.jsx)(s.p,{children:"Milliseconds to wait before timing out."}),"\n",(0,r.jsx)(s.h4,{id:"returns-42",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"void"}),">"]}),"\n",(0,r.jsx)(s.h4,{id:"source-39",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:840"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"waitrollupsuccess",children:"waitRollupSuccess()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"waitRollupSuccess"}),"(",(0,r.jsx)(s.code,{children:"transactionHash"}),"): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"void"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.h4,{id:"parameters-36",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"transactionHash"}),": ",(0,r.jsx)(s.code,{children:"string"})]}),"\n",(0,r.jsx)(s.h4,{id:"returns-43",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"void"}),">"]}),"\n",(0,r.jsx)(s.h4,{id:"source-40",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:552"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"waitsyncsuccess",children:"waitSyncSuccess()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"waitSyncSuccess"}),"(",(0,r.jsx)(s.code,{children:"transactionHash"}),"): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"void"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.h4,{id:"parameters-37",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"transactionHash"}),": ",(0,r.jsx)(s.code,{children:"string"})]}),"\n",(0,r.jsx)(s.h4,{id:"returns-44",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"void"}),">"]}),"\n",(0,r.jsx)(s.h4,{id:"source-41",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:576"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"withdrawerc20-2",children:"withdrawERC20()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"withdrawERC20"}),"(",(0,r.jsx)(s.code,{children:"l1Token"}),", ",(0,r.jsx)(s.code,{children:"l2Token"}),", ",(0,r.jsx)(s.code,{children:"amount"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"?): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Withdraws some ERC20 tokens back to the L1 chain."}),"\n",(0,r.jsx)(s.h4,{id:"parameters-38",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"l1Token"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,r.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Address of the L1 token."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"l2Token"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,r.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Address of the L2 token."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"amount"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,r.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Amount to withdraw."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,r.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,r.jsx)(s.p,{children:"Additional options."}),"\n",(0,r.jsx)(s.h4,{id:"returns-45",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n",(0,r.jsx)(s.p,{children:"Transaction response for the withdraw transaction."}),"\n",(0,r.jsx)(s.h4,{id:"source-42",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:1282"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"withdraweth-2",children:"withdrawETH()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"withdrawETH"}),"(",(0,r.jsx)(s.code,{children:"amount"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"?): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Withdraws some ETH back to the L1 chain."}),"\n",(0,r.jsx)(s.h4,{id:"parameters-39",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"amount"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,r.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Amount of ETH to withdraw."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,r.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,r.jsx)(s.p,{children:"Additional options."}),"\n",(0,r.jsx)(s.h4,{id:"returns-46",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n",(0,r.jsx)(s.p,{children:"Transaction response for the withdraw transaction."}),"\n",(0,r.jsx)(s.h4,{id:"source-43",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:1198"})]})}function a(e={}){const{wrapper:s}={...(0,i.R)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(t,{...e})}):t(e)}},2333:(e,s,n)=>{n.d(s,{R:()=>c,x:()=>o});var r=n(9474);const i={},d=r.createContext(i);function c(e){const s=r.useContext(d);return r.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:c(e.components),r.createElement(d.Provider,{value:s},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[4991],{5747:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>l,contentTitle:()=>c,default:()=>a,frontMatter:()=>d,metadata:()=>o,toc:()=>h});var r=n(6070),i=n(1582);const d={},c="Class: CrossChainMessenger",o={id:"build-on-morph/sdk/classes/CrossChainMessenger",title:"CrossChainMessenger",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/classes/CrossChainMessenger.md",sourceDirName:"build-on-morph/sdk/classes",slug:"/build-on-morph/sdk/classes/CrossChainMessenger",permalink:"/docs/build-on-morph/sdk/classes/CrossChainMessenger",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/classes/CrossChainMessenger.md",tags:[],version:"current",frontMatter:{}},l={},h=[{value:"Constructors",id:"constructors",level:2},{value:"new CrossChainMessenger()",id:"new-crosschainmessenger",level:3},{value:"Parameters",id:"parameters",level:4},{value:"Returns",id:"returns",level:4},{value:"Source",id:"source",level:4},{value:"Properties",id:"properties",level:2},{value:"backendURL",id:"backendurl",level:3},{value:"Source",id:"source-1",level:4},{value:"bridges",id:"bridges",level:3},{value:"Source",id:"source-2",level:4},{value:"contracts",id:"contracts",level:3},{value:"Source",id:"source-3",level:4},{value:"estimateGas",id:"estimategas",level:3},{value:"approveERC20()",id:"approveerc20",level:4},{value:"Parameters",id:"parameters-1",level:5},{value:"Returns",id:"returns-1",level:5},{value:"depositERC20()",id:"depositerc20",level:4},{value:"Parameters",id:"parameters-2",level:5},{value:"Returns",id:"returns-2",level:5},{value:"depositETH()",id:"depositeth",level:4},{value:"Parameters",id:"parameters-3",level:5},{value:"Returns",id:"returns-3",level:5},{value:"proveAndRelayMessage()",id:"proveandrelaymessage",level:4},{value:"Parameters",id:"parameters-4",level:5},{value:"Returns",id:"returns-4",level:5},{value:"sendMessage()",id:"sendmessage",level:4},{value:"Parameters",id:"parameters-5",level:5},{value:"Returns",id:"returns-5",level:5},{value:"withdrawERC20()",id:"withdrawerc20",level:4},{value:"Parameters",id:"parameters-6",level:5},{value:"Returns",id:"returns-6",level:5},{value:"withdrawETH()",id:"withdraweth",level:4},{value:"Parameters",id:"parameters-7",level:5},{value:"Returns",id:"returns-7",level:5},{value:"Source",id:"source-4",level:4},{value:"l1ChainId",id:"l1chainid",level:3},{value:"Source",id:"source-5",level:4},{value:"l1CrossDomainMessenger",id:"l1crossdomainmessenger",level:3},{value:"Source",id:"source-6",level:4},{value:"l1SignerOrProvider",id:"l1signerorprovider",level:3},{value:"Source",id:"source-7",level:4},{value:"l2ChainId",id:"l2chainid",level:3},{value:"Source",id:"source-8",level:4},{value:"l2CrossDomainMessenger",id:"l2crossdomainmessenger",level:3},{value:"Source",id:"source-9",level:4},{value:"l2SignerOrProvider",id:"l2signerorprovider",level:3},{value:"Source",id:"source-10",level:4},{value:"populateTransaction",id:"populatetransaction",level:3},{value:"approveERC20()",id:"approveerc20-1",level:4},{value:"Parameters",id:"parameters-8",level:5},{value:"Returns",id:"returns-8",level:5},{value:"depositERC20()",id:"depositerc20-1",level:4},{value:"Parameters",id:"parameters-9",level:5},{value:"Returns",id:"returns-9",level:5},{value:"depositETH()",id:"depositeth-1",level:4},{value:"Parameters",id:"parameters-10",level:5},{value:"Returns",id:"returns-10",level:5},{value:"proveAndRelayMessage()",id:"proveandrelaymessage-1",level:4},{value:"Parameters",id:"parameters-11",level:5},{value:"Returns",id:"returns-11",level:5},{value:"sendMessage()",id:"sendmessage-1",level:4},{value:"Parameters",id:"parameters-12",level:5},{value:"Returns",id:"returns-12",level:5},{value:"withdrawERC20()",id:"withdrawerc20-1",level:4},{value:"Parameters",id:"parameters-13",level:5},{value:"Returns",id:"returns-13",level:5},{value:"withdrawETH()",id:"withdraweth-1",level:4},{value:"Parameters",id:"parameters-14",level:5},{value:"Returns",id:"returns-14",level:5},{value:"Source",id:"source-11",level:4},{value:"Accessors",id:"accessors",level:2},{value:"l1Provider",id:"l1provider",level:3},{value:"Returns",id:"returns-15",level:4},{value:"Source",id:"source-12",level:4},{value:"l1Signer",id:"l1signer",level:3},{value:"Returns",id:"returns-16",level:4},{value:"Source",id:"source-13",level:4},{value:"l2Provider",id:"l2provider",level:3},{value:"Returns",id:"returns-17",level:4},{value:"Source",id:"source-14",level:4},{value:"l2Signer",id:"l2signer",level:3},{value:"Returns",id:"returns-18",level:4},{value:"Source",id:"source-15",level:4},{value:"Methods",id:"methods",level:2},{value:"approval()",id:"approval",level:3},{value:"Parameters",id:"parameters-15",level:4},{value:"Returns",id:"returns-19",level:4},{value:"Source",id:"source-16",level:4},{value:"approveERC20()",id:"approveerc20-2",level:3},{value:"Parameters",id:"parameters-16",level:4},{value:"Returns",id:"returns-20",level:4},{value:"Source",id:"source-17",level:4},{value:"depositERC20()",id:"depositerc20-2",level:3},{value:"Parameters",id:"parameters-17",level:4},{value:"Returns",id:"returns-21",level:4},{value:"Source",id:"source-18",level:4},{value:"depositETH()",id:"depositeth-2",level:3},{value:"Parameters",id:"parameters-18",level:4},{value:"Returns",id:"returns-22",level:4},{value:"Source",id:"source-19",level:4},{value:"encodeFunctionMessage()",id:"encodefunctionmessage",level:3},{value:"Parameters",id:"parameters-19",level:4},{value:"Returns",id:"returns-23",level:4},{value:"Source",id:"source-20",level:4},{value:"estimateL2MessageGasLimit()",id:"estimatel2messagegaslimit",level:3},{value:"Parameters",id:"parameters-20",level:4},{value:"Returns",id:"returns-24",level:4},{value:"Source",id:"source-21",level:4},{value:"getBackendTreeSyncIndex()",id:"getbackendtreesyncindex",level:3},{value:"Returns",id:"returns-25",level:4},{value:"Source",id:"source-22",level:4},{value:"getBridgeForTokenPair()",id:"getbridgefortokenpair",level:3},{value:"Parameters",id:"parameters-21",level:4},{value:"Returns",id:"returns-26",level:4},{value:"Source",id:"source-23",level:4},{value:"getCommittedL2BlockNumber()",id:"getcommittedl2blocknumber",level:3},{value:"Returns",id:"returns-27",level:4},{value:"Source",id:"source-24",level:4},{value:"getDepositsByAddress()",id:"getdepositsbyaddress",level:3},{value:"Parameters",id:"parameters-22",level:4},{value:"Returns",id:"returns-28",level:4},{value:"Source",id:"source-25",level:4},{value:"getFinalizedL2BlockNumber()",id:"getfinalizedl2blocknumber",level:3},{value:"Returns",id:"returns-29",level:4},{value:"Source",id:"source-26",level:4},{value:"getMessageReceipt()",id:"getmessagereceipt",level:3},{value:"Parameters",id:"parameters-23",level:4},{value:"Returns",id:"returns-30",level:4},{value:"Source",id:"source-27",level:4},{value:"getMessageStatus()",id:"getmessagestatus",level:3},{value:"Parameters",id:"parameters-24",level:4},{value:"Returns",id:"returns-31",level:4},{value:"Source",id:"source-28",level:4},{value:"getMessagesByTransaction()",id:"getmessagesbytransaction",level:3},{value:"Parameters",id:"parameters-25",level:4},{value:"Returns",id:"returns-32",level:4},{value:"Source",id:"source-29",level:4},{value:"getProvenWithdrawal()",id:"getprovenwithdrawal",level:3},{value:"Parameters",id:"parameters-26",level:4},{value:"Returns",id:"returns-33",level:4},{value:"Source",id:"source-30",level:4},{value:"getWithdrawMessageProof()",id:"getwithdrawmessageproof",level:3},{value:"Parameters",id:"parameters-27",level:4},{value:"Returns",id:"returns-34",level:4},{value:"Source",id:"source-31",level:4},{value:"getWithdrawalsByAddress()",id:"getwithdrawalsbyaddress",level:3},{value:"Parameters",id:"parameters-28",level:4},{value:"Returns",id:"returns-35",level:4},{value:"Source",id:"source-32",level:4},{value:"proveAndRelayMessage()",id:"proveandrelaymessage-2",level:3},{value:"Parameters",id:"parameters-29",level:4},{value:"Returns",id:"returns-36",level:4},{value:"Source",id:"source-33",level:4},{value:"sendMessage()",id:"sendmessage-2",level:3},{value:"Parameters",id:"parameters-30",level:4},{value:"Returns",id:"returns-37",level:4},{value:"Source",id:"source-34",level:4},{value:"toCrossChainMessage()",id:"tocrosschainmessage",level:3},{value:"Parameters",id:"parameters-31",level:4},{value:"Returns",id:"returns-38",level:4},{value:"Source",id:"source-35",level:4},{value:"toLowLevelMessage()",id:"tolowlevelmessage",level:3},{value:"Parameters",id:"parameters-32",level:4},{value:"Returns",id:"returns-39",level:4},{value:"Source",id:"source-36",level:4},{value:"waitBatchFinalize()",id:"waitbatchfinalize",level:3},{value:"Parameters",id:"parameters-33",level:4},{value:"Returns",id:"returns-40",level:4},{value:"Source",id:"source-37",level:4},{value:"waitForMessageReceipt()",id:"waitformessagereceipt",level:3},{value:"Parameters",id:"parameters-34",level:4},{value:"Returns",id:"returns-41",level:4},{value:"Source",id:"source-38",level:4},{value:"waitForMessageStatus()",id:"waitformessagestatus",level:3},{value:"Parameters",id:"parameters-35",level:4},{value:"Returns",id:"returns-42",level:4},{value:"Source",id:"source-39",level:4},{value:"waitRollupSuccess()",id:"waitrollupsuccess",level:3},{value:"Parameters",id:"parameters-36",level:4},{value:"Returns",id:"returns-43",level:4},{value:"Source",id:"source-40",level:4},{value:"waitSyncSuccess()",id:"waitsyncsuccess",level:3},{value:"Parameters",id:"parameters-37",level:4},{value:"Returns",id:"returns-44",level:4},{value:"Source",id:"source-41",level:4},{value:"withdrawERC20()",id:"withdrawerc20-2",level:3},{value:"Parameters",id:"parameters-38",level:4},{value:"Returns",id:"returns-45",level:4},{value:"Source",id:"source-42",level:4},{value:"withdrawETH()",id:"withdraweth-2",level:3},{value:"Parameters",id:"parameters-39",level:4},{value:"Returns",id:"returns-46",level:4},{value:"Source",id:"source-43",level:4}];function t(e){const s={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",hr:"hr",p:"p",strong:"strong",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,r.jsx)(s.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,r.jsx)(s.strong,{children:"Docs"})]}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / CrossChainMessenger"]}),"\n",(0,r.jsx)(s.h1,{id:"class-crosschainmessenger",children:"Class: CrossChainMessenger"}),"\n",(0,r.jsx)(s.h2,{id:"constructors",children:"Constructors"}),"\n",(0,r.jsx)(s.h3,{id:"new-crosschainmessenger",children:"new CrossChainMessenger()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"new CrossChainMessenger"}),"(",(0,r.jsx)(s.code,{children:"opts"}),"): ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/CrossChainMessenger",children:(0,r.jsx)(s.code,{children:"CrossChainMessenger"})})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Creates a new CrossChainProvider instance."}),"\n",(0,r.jsx)(s.h4,{id:"parameters",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts"})]}),"\n",(0,r.jsx)(s.p,{children:"Options for the provider."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts.backendURL?"}),": ",(0,r.jsx)(s.code,{children:"string"})]}),"\n",(0,r.jsx)(s.p,{children:"backend for withdraw proof gen."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts.bridges?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/BridgeAdapterData",children:(0,r.jsx)(s.code,{children:"BridgeAdapterData"})})]}),"\n",(0,r.jsx)(s.p,{children:"Optional bridge address list."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts.contracts?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/DeepPartial",children:(0,r.jsx)(s.code,{children:"DeepPartial"})}),"<",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/OEContractsLike",children:(0,r.jsx)(s.code,{children:"OEContractsLike"})}),">"]}),"\n",(0,r.jsx)(s.p,{children:"Optional contract address overrides."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts.l1ChainId"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,r.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Chain ID for the L1 chain."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts.l1SignerOrProvider"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/SignerOrProviderLike",children:(0,r.jsx)(s.code,{children:"SignerOrProviderLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Signer or Provider for the L1 chain, or a JSON-RPC url."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts.l2ChainId"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,r.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Chain ID for the L2 chain."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts.l2SignerOrProvider"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/SignerOrProviderLike",children:(0,r.jsx)(s.code,{children:"SignerOrProviderLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Signer or Provider for the L2 chain, or a JSON-RPC url."}),"\n",(0,r.jsx)(s.h4,{id:"returns",children:"Returns"}),"\n",(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/CrossChainMessenger",children:(0,r.jsx)(s.code,{children:"CrossChainMessenger"})})}),"\n",(0,r.jsx)(s.h4,{id:"source",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:130"}),"\n",(0,r.jsx)(s.h2,{id:"properties",children:"Properties"}),"\n",(0,r.jsx)(s.h3,{id:"backendurl",children:"backendURL"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"backendURL"}),": ",(0,r.jsx)(s.code,{children:"string"})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Backend url for withdrawal prove server"}),"\n",(0,r.jsx)(s.h4,{id:"source-1",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:76"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"bridges",children:"bridges"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"bridges"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/BridgeAdapters",children:(0,r.jsx)(s.code,{children:"BridgeAdapters"})})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"List of custom bridges for the given network."}),"\n",(0,r.jsx)(s.h4,{id:"source-2",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:116"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"contracts",children:"contracts"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"contracts"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/OEContracts",children:(0,r.jsx)(s.code,{children:"OEContracts"})})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Contract objects attached to their respective providers and addresses."}),"\n",(0,r.jsx)(s.h4,{id:"source-3",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:111"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"estimategas",children:"estimateGas"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"estimateGas"}),": ",(0,r.jsx)(s.code,{children:"object"})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Object that holds the functions that estimates the gas required for a given transaction.\nFollows the pattern used by ethers.js."}),"\n",(0,r.jsx)(s.h4,{id:"approveerc20",children:"approveERC20()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"approveERC20"}),": (",(0,r.jsx)(s.code,{children:"l1Token"}),", ",(0,r.jsx)(s.code,{children:"l2Token"}),", ",(0,r.jsx)(s.code,{children:"amount"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"?) => ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Estimates gas required to approve some tokens to deposit into the L2 chain."}),"\n",(0,r.jsx)(s.h5,{id:"parameters-1",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"l1Token"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,r.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"The L1 token address."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"l2Token"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,r.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"The L2 token address."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"amount"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,r.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Amount of the token to approve."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,r.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,r.jsx)(s.p,{children:"Additional options."}),"\n",(0,r.jsx)(s.h5,{id:"returns-1",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,r.jsx)(s.h4,{id:"depositerc20",children:"depositERC20()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"depositERC20"}),": (",(0,r.jsx)(s.code,{children:"l1Token"}),", ",(0,r.jsx)(s.code,{children:"l2Token"}),", ",(0,r.jsx)(s.code,{children:"amount"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"?) => ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Estimates gas required to deposit some ERC20 tokens into the L2 chain."}),"\n",(0,r.jsx)(s.h5,{id:"parameters-2",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"l1Token"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,r.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Address of the L1 token."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"l2Token"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,r.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Address of the L2 token."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"amount"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,r.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Amount to deposit."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,r.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,r.jsx)(s.p,{children:"Additional options."}),"\n",(0,r.jsx)(s.h5,{id:"returns-2",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,r.jsx)(s.h4,{id:"depositeth",children:"depositETH()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"depositETH"}),": (",(0,r.jsx)(s.code,{children:"amount"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"?) => ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Estimates gas required to deposit some ETH into the L2 chain."}),"\n",(0,r.jsx)(s.h5,{id:"parameters-3",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"amount"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,r.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Amount of ETH to deposit."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,r.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,r.jsx)(s.p,{children:"Additional options."}),"\n",(0,r.jsx)(s.h5,{id:"returns-3",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,r.jsx)(s.h4,{id:"proveandrelaymessage",children:"proveAndRelayMessage()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"proveAndRelayMessage"}),": (",(0,r.jsx)(s.code,{children:"message"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"?) => ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Estimates gas required to proveAndRelay a cross chain message. Only applies to L2 to L1 messages."}),"\n",(0,r.jsx)(s.h5,{id:"parameters-4",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"message"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/MessageLike",children:(0,r.jsx)(s.code,{children:"MessageLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Message to generate the proving transaction for."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,r.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,r.jsx)(s.p,{children:"Additional options."}),"\n",(0,r.jsx)(s.h5,{id:"returns-4",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,r.jsx)(s.h4,{id:"sendmessage",children:"sendMessage()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"sendMessage"}),": (",(0,r.jsx)(s.code,{children:"message"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"?) => ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Estimates gas required to send a cross chain message."}),"\n",(0,r.jsx)(s.h5,{id:"parameters-5",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"message"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CrossChainMessageRequest",children:(0,r.jsx)(s.code,{children:"CrossChainMessageRequest"})})]}),"\n",(0,r.jsx)(s.p,{children:"Cross chain message to send."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,r.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,r.jsx)(s.p,{children:"Additional options."}),"\n",(0,r.jsx)(s.h5,{id:"returns-5",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,r.jsx)(s.h4,{id:"withdrawerc20",children:"withdrawERC20()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"withdrawERC20"}),": (",(0,r.jsx)(s.code,{children:"l1Token"}),", ",(0,r.jsx)(s.code,{children:"l2Token"}),", ",(0,r.jsx)(s.code,{children:"amount"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"?) => ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Estimates gas required to withdraw some ERC20 tokens back to the L1 chain."}),"\n",(0,r.jsx)(s.h5,{id:"parameters-6",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"l1Token"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,r.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Address of the L1 token."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"l2Token"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,r.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Address of the L2 token."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"amount"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,r.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Amount to withdraw."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,r.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,r.jsx)(s.p,{children:"Additional options."}),"\n",(0,r.jsx)(s.h5,{id:"returns-6",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,r.jsx)(s.h4,{id:"withdraweth",children:"withdrawETH()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"withdrawETH"}),": (",(0,r.jsx)(s.code,{children:"amount"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"?) => ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Estimates gas required to withdraw some ETH back to the L1 chain."}),"\n",(0,r.jsx)(s.h5,{id:"parameters-7",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"amount"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,r.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Amount of ETH to withdraw."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,r.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,r.jsx)(s.p,{children:"Additional options."}),"\n",(0,r.jsx)(s.h5,{id:"returns-7",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,r.jsx)(s.h4,{id:"source-4",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:1600"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"l1chainid",children:"l1ChainId"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"l1ChainId"}),": ",(0,r.jsx)(s.code,{children:"number"})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Chain ID for the L1 network."}),"\n",(0,r.jsx)(s.h4,{id:"source-5",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:101"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"l1crossdomainmessenger",children:"l1CrossDomainMessenger"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"l1CrossDomainMessenger"}),": ",(0,r.jsx)(s.code,{children:"Contract"})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"CrossDomainMessenger connected to the L1 chain."}),"\n",(0,r.jsx)(s.h4,{id:"source-6",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:91"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"l1signerorprovider",children:"l1SignerOrProvider"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"l1SignerOrProvider"}),": ",(0,r.jsx)(s.code,{children:"Provider"})," | ",(0,r.jsx)(s.code,{children:"Signer"})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Provider connected to the L1 chain."}),"\n",(0,r.jsx)(s.h4,{id:"source-7",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:81"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"l2chainid",children:"l2ChainId"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"l2ChainId"}),": ",(0,r.jsx)(s.code,{children:"number"})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Chain ID for the L2 network."}),"\n",(0,r.jsx)(s.h4,{id:"source-8",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:106"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"l2crossdomainmessenger",children:"l2CrossDomainMessenger"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"l2CrossDomainMessenger"}),": ",(0,r.jsx)(s.code,{children:"Contract"})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"CrossDomainMessenger connected to the L2 chain."}),"\n",(0,r.jsx)(s.h4,{id:"source-9",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:96"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"l2signerorprovider",children:"l2SignerOrProvider"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"l2SignerOrProvider"}),": ",(0,r.jsx)(s.code,{children:"Provider"})," | ",(0,r.jsx)(s.code,{children:"Signer"})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Provider connected to the L2 chain."}),"\n",(0,r.jsx)(s.h4,{id:"source-10",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:86"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"populatetransaction",children:"populateTransaction"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"populateTransaction"}),": ",(0,r.jsx)(s.code,{children:"object"})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Object that holds the functions that generate transactions to be signed by the user.\nFollows the pattern used by ethers.js."}),"\n",(0,r.jsx)(s.h4,{id:"approveerc20-1",children:"approveERC20()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"approveERC20"}),": (",(0,r.jsx)(s.code,{children:"l1Token"}),", ",(0,r.jsx)(s.code,{children:"l2Token"}),", ",(0,r.jsx)(s.code,{children:"amount"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"?) => ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Generates a transaction for approving some tokens to deposit into the L2 chain."}),"\n",(0,r.jsx)(s.h5,{id:"parameters-8",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"l1Token"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,r.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"The L1 token address."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"l2Token"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,r.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"The L2 token address."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"amount"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,r.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Amount of the token to approve."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,r.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,r.jsx)(s.p,{children:"Additional options."}),"\n",(0,r.jsx)(s.h5,{id:"returns-8",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n",(0,r.jsx)(s.h4,{id:"depositerc20-1",children:"depositERC20()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"depositERC20"}),": (",(0,r.jsx)(s.code,{children:"l1Token"}),", ",(0,r.jsx)(s.code,{children:"l2Token"}),", ",(0,r.jsx)(s.code,{children:"amount"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"?, ",(0,r.jsx)(s.code,{children:"isEstimatingGas"}),") => ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Generates a transaction for depositing some ERC20 tokens into the L2 chain."}),"\n",(0,r.jsx)(s.h5,{id:"parameters-9",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"l1Token"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,r.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Address of the L1 token."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"l2Token"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,r.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Address of the L2 token."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"amount"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,r.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Amount to deposit."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,r.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,r.jsx)(s.p,{children:"Additional options."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"isEstimatingGas?"}),": ",(0,r.jsx)(s.code,{children:"boolean"}),"= ",(0,r.jsx)(s.code,{children:"false"})]}),"\n",(0,r.jsx)(s.h5,{id:"returns-9",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n",(0,r.jsx)(s.h4,{id:"depositeth-1",children:"depositETH()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"depositETH"}),": (",(0,r.jsx)(s.code,{children:"amount"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"?, ",(0,r.jsx)(s.code,{children:"isEstimatingGas"}),") => ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Generates a transaction for depositing some ETH into the L2 chain."}),"\n",(0,r.jsx)(s.h5,{id:"parameters-10",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"amount"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,r.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Amount of ETH to deposit."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,r.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,r.jsx)(s.p,{children:"Additional options."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"isEstimatingGas?"}),": ",(0,r.jsx)(s.code,{children:"boolean"}),"= ",(0,r.jsx)(s.code,{children:"false"})]}),"\n",(0,r.jsx)(s.h5,{id:"returns-10",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n",(0,r.jsx)(s.h4,{id:"proveandrelaymessage-1",children:"proveAndRelayMessage()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"proveAndRelayMessage"}),": (",(0,r.jsx)(s.code,{children:"message"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"?) => ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Generates a message proving and relaying transaction that can be signed and executed. Only\napplicable for L2 to L1 messages."}),"\n",(0,r.jsx)(s.h5,{id:"parameters-11",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"message"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/MessageLike",children:(0,r.jsx)(s.code,{children:"MessageLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Message to generate the proving transaction for."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,r.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,r.jsx)(s.p,{children:"Additional options."}),"\n",(0,r.jsx)(s.h5,{id:"returns-11",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n",(0,r.jsx)(s.h4,{id:"sendmessage-1",children:"sendMessage()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"sendMessage"}),": (",(0,r.jsx)(s.code,{children:"message"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"?) => ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Generates a transaction that sends a given cross chain message. This transaction can be signed\nand executed by a signer."}),"\n",(0,r.jsx)(s.h5,{id:"parameters-12",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"message"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CrossChainMessageRequest",children:(0,r.jsx)(s.code,{children:"CrossChainMessageRequest"})})]}),"\n",(0,r.jsx)(s.p,{children:"Cross chain message to send."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,r.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,r.jsx)(s.p,{children:"Additional options."}),"\n",(0,r.jsx)(s.h5,{id:"returns-12",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n",(0,r.jsx)(s.h4,{id:"withdrawerc20-1",children:"withdrawERC20()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"withdrawERC20"}),": (",(0,r.jsx)(s.code,{children:"l1Token"}),", ",(0,r.jsx)(s.code,{children:"l2Token"}),", ",(0,r.jsx)(s.code,{children:"amount"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"?, ",(0,r.jsx)(s.code,{children:"isEstimatingGas"}),"?) => ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Generates a transaction for withdrawing some ERC20 tokens back to the L1 chain."}),"\n",(0,r.jsx)(s.h5,{id:"parameters-13",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"l1Token"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,r.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Address of the L1 token."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"l2Token"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,r.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Address of the L2 token."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"amount"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,r.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Amount to withdraw."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,r.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,r.jsx)(s.p,{children:"Additional options."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"isEstimatingGas?"}),": ",(0,r.jsx)(s.code,{children:"boolean"})]}),"\n",(0,r.jsx)(s.h5,{id:"returns-13",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n",(0,r.jsx)(s.h4,{id:"withdraweth-1",children:"withdrawETH()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"withdrawETH"}),": (",(0,r.jsx)(s.code,{children:"amount"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"?, ",(0,r.jsx)(s.code,{children:"isEstimatingGas"}),"?) => ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Generates a transaction for withdrawing some ETH back to the L1 chain."}),"\n",(0,r.jsx)(s.h5,{id:"parameters-14",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"amount"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,r.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Amount of ETH to withdraw."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,r.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,r.jsx)(s.p,{children:"Additional options."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"isEstimatingGas?"}),": ",(0,r.jsx)(s.code,{children:"boolean"})]}),"\n",(0,r.jsx)(s.h5,{id:"returns-14",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n",(0,r.jsx)(s.h4,{id:"source-11",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:1304"}),"\n",(0,r.jsx)(s.h2,{id:"accessors",children:"Accessors"}),"\n",(0,r.jsx)(s.h3,{id:"l1provider",children:"l1Provider"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"get"})," ",(0,r.jsx)(s.strong,{children:"l1Provider"}),"(): ",(0,r.jsx)(s.code,{children:"Provider"})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Provider connected to the L1 chain."}),"\n",(0,r.jsx)(s.h4,{id:"returns-15",children:"Returns"}),"\n",(0,r.jsx)(s.p,{children:(0,r.jsx)(s.code,{children:"Provider"})}),"\n",(0,r.jsx)(s.h4,{id:"source-12",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:193"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"l1signer",children:"l1Signer"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"get"})," ",(0,r.jsx)(s.strong,{children:"l1Signer"}),"(): ",(0,r.jsx)(s.code,{children:"Signer"})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Signer connected to the L1 chain."}),"\n",(0,r.jsx)(s.h4,{id:"returns-16",children:"Returns"}),"\n",(0,r.jsx)(s.p,{children:(0,r.jsx)(s.code,{children:"Signer"})}),"\n",(0,r.jsx)(s.h4,{id:"source-13",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:215"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"l2provider",children:"l2Provider"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"get"})," ",(0,r.jsx)(s.strong,{children:"l2Provider"}),"(): ",(0,r.jsx)(s.code,{children:"Provider"})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Provider connected to the L2 chain."}),"\n",(0,r.jsx)(s.h4,{id:"returns-17",children:"Returns"}),"\n",(0,r.jsx)(s.p,{children:(0,r.jsx)(s.code,{children:"Provider"})}),"\n",(0,r.jsx)(s.h4,{id:"source-14",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:204"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"l2signer",children:"l2Signer"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"get"})," ",(0,r.jsx)(s.strong,{children:"l2Signer"}),"(): ",(0,r.jsx)(s.code,{children:"Signer"})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Signer connected to the L2 chain."}),"\n",(0,r.jsx)(s.h4,{id:"returns-18",children:"Returns"}),"\n",(0,r.jsx)(s.p,{children:(0,r.jsx)(s.code,{children:"Signer"})}),"\n",(0,r.jsx)(s.h4,{id:"source-15",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:226"}),"\n",(0,r.jsx)(s.h2,{id:"methods",children:"Methods"}),"\n",(0,r.jsx)(s.h3,{id:"approval",children:"approval()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"approval"}),"(",(0,r.jsx)(s.code,{children:"l1Token"}),", ",(0,r.jsx)(s.code,{children:"l2Token"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"?): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Queries the account's approval amount for a given L1 token."}),"\n",(0,r.jsx)(s.h4,{id:"parameters-15",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"l1Token"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,r.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"The L1 token address."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"l2Token"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,r.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"The L2 token address."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,r.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,r.jsx)(s.p,{children:"Additional options."}),"\n",(0,r.jsx)(s.h4,{id:"returns-19",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,r.jsx)(s.p,{children:"Amount of tokens approved for deposits from the account."}),"\n",(0,r.jsx)(s.h4,{id:"source-16",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:1214"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"approveerc20-2",children:"approveERC20()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"approveERC20"}),"(",(0,r.jsx)(s.code,{children:"l1Token"}),", ",(0,r.jsx)(s.code,{children:"l2Token"}),", ",(0,r.jsx)(s.code,{children:"amount"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"?): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Approves a deposit into the L2 chain."}),"\n",(0,r.jsx)(s.h4,{id:"parameters-16",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"l1Token"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,r.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"The L1 token address."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"l2Token"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,r.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"The L2 token address."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"amount"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,r.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Amount of the token to approve."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,r.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,r.jsx)(s.p,{children:"Additional options."}),"\n",(0,r.jsx)(s.h4,{id:"returns-20",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n",(0,r.jsx)(s.p,{children:"Transaction response for the approval transaction."}),"\n",(0,r.jsx)(s.h4,{id:"source-17",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:1233"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"depositerc20-2",children:"depositERC20()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"depositERC20"}),"(",(0,r.jsx)(s.code,{children:"l1Token"}),", ",(0,r.jsx)(s.code,{children:"l2Token"}),", ",(0,r.jsx)(s.code,{children:"amount"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"?): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Deposits some ERC20 tokens into the L2 chain."}),"\n",(0,r.jsx)(s.h4,{id:"parameters-17",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"l1Token"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,r.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Address of the L1 token."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"l2Token"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,r.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Address of the L2 token."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"amount"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,r.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Amount to deposit."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,r.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,r.jsx)(s.p,{children:"Additional options."}),"\n",(0,r.jsx)(s.h4,{id:"returns-21",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n",(0,r.jsx)(s.p,{children:"Transaction response for the deposit transaction."}),"\n",(0,r.jsx)(s.h4,{id:"source-18",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:1256"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"depositeth-2",children:"depositETH()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"depositETH"}),"(",(0,r.jsx)(s.code,{children:"amount"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"?): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Deposits some ETH into the L2 chain."}),"\n",(0,r.jsx)(s.h4,{id:"parameters-18",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"amount"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,r.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Amount of ETH to deposit (in wei)."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,r.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,r.jsx)(s.p,{children:"Additional options."}),"\n",(0,r.jsx)(s.h4,{id:"returns-22",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n",(0,r.jsx)(s.p,{children:"Transaction response for the deposit transaction."}),"\n",(0,r.jsx)(s.h4,{id:"source-19",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:1183"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"encodefunctionmessage",children:"encodeFunctionMessage()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"encodeFunctionMessage"}),"(",(0,r.jsx)(s.code,{children:"options"}),"): ",(0,r.jsx)(s.code,{children:"string"})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"L2CrossDomainMessenger contract encode message, such as hashCrossDomainMessagev1"}),"\n",(0,r.jsx)(s.h4,{id:"parameters-19",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"options"})]}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"options.message"}),": ",(0,r.jsx)(s.code,{children:"string"})]}),"\n",(0,r.jsx)(s.p,{children:"The message passed along with the cross domain message"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"options.messageNonce"}),": ",(0,r.jsx)(s.code,{children:"BigNumber"})]}),"\n",(0,r.jsx)(s.p,{children:"The cross domain message nonce"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"options.sender"}),": ",(0,r.jsx)(s.code,{children:"string"})]}),"\n",(0,r.jsx)(s.p,{children:"The sender of the cross domain message"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"options.target"}),": ",(0,r.jsx)(s.code,{children:"string"})]}),"\n",(0,r.jsx)(s.p,{children:"The target of the cross domain message"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"options.value"}),": ",(0,r.jsx)(s.code,{children:"BigNumber"})]}),"\n",(0,r.jsx)(s.p,{children:"The value being sent with the cross domain message"}),"\n",(0,r.jsx)(s.h4,{id:"returns-23",children:"Returns"}),"\n",(0,r.jsx)(s.p,{children:(0,r.jsx)(s.code,{children:"string"})}),"\n",(0,r.jsx)(s.h4,{id:"source-20",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:972"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"estimatel2messagegaslimit",children:"estimateL2MessageGasLimit()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"estimateL2MessageGasLimit"}),"(",(0,r.jsx)(s.code,{children:"message"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"?): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Estimates the amount of gas required to fully execute a given message on L2. Only applies to\nL1 => L2 messages. You would supply this gas limit when sending the message to L2."}),"\n",(0,r.jsx)(s.h4,{id:"parameters-20",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"message"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/MessageRequestLike",children:(0,r.jsx)(s.code,{children:"MessageRequestLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Message get a gas estimate for."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts?"})]}),"\n",(0,r.jsx)(s.p,{children:"Options object."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts.bufferPercent?"}),": ",(0,r.jsx)(s.code,{children:"number"})]}),"\n",(0,r.jsx)(s.p,{children:"Percentage of gas to add to the estimate. Defaults to 20."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts.from?"}),": ",(0,r.jsx)(s.code,{children:"string"})]}),"\n",(0,r.jsx)(s.p,{children:"Address to use as the sender."}),"\n",(0,r.jsx)(s.h4,{id:"returns-24",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,r.jsx)(s.p,{children:"Estimates L2 gas limit."}),"\n",(0,r.jsx)(s.h4,{id:"source-21",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:918"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"getbackendtreesyncindex",children:"getBackendTreeSyncIndex()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"getBackendTreeSyncIndex"}),"(): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"number"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.h4,{id:"returns-25",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"number"}),">"]}),"\n",(0,r.jsx)(s.h4,{id:"source-22",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:1122"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"getbridgefortokenpair",children:"getBridgeForTokenPair()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"getBridgeForTokenPair"}),"(",(0,r.jsx)(s.code,{children:"l1Token"}),", ",(0,r.jsx)(s.code,{children:"l2Token"}),"): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter",children:(0,r.jsx)(s.code,{children:"IBridgeAdapter"})}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Finds the appropriate bridge adapter for a given L1 - L2 token pair. Will throw if no bridges\nsupport the token pair or if more than one bridge supports the token pair."}),"\n",(0,r.jsx)(s.h4,{id:"parameters-21",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"l1Token"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,r.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"L1 token address."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"l2Token"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,r.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"L2 token address."}),"\n",(0,r.jsx)(s.h4,{id:"returns-26",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter",children:(0,r.jsx)(s.code,{children:"IBridgeAdapter"})}),">"]}),"\n",(0,r.jsx)(s.p,{children:"The appropriate bridge adapter for the given token pair."}),"\n",(0,r.jsx)(s.h4,{id:"source-23",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:378"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"getcommittedl2blocknumber",children:"getCommittedL2BlockNumber()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"getCommittedL2BlockNumber"}),"(): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"any"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.h4,{id:"returns-27",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"any"}),">"]}),"\n",(0,r.jsx)(s.h4,{id:"source-24",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:995"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"getdepositsbyaddress",children:"getDepositsByAddress()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"getDepositsByAddress"}),"(",(0,r.jsx)(s.code,{children:"address"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage",children:(0,r.jsx)(s.code,{children:"TokenBridgeMessage"})}),"[]>"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Gets all deposits for a given address."}),"\n",(0,r.jsx)(s.h4,{id:"parameters-22",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"address"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,r.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Address to search for messages from."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts"}),"= ",(0,r.jsx)(s.code,{children:"{}"})]}),"\n",(0,r.jsx)(s.p,{children:"Options object."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts.fromBlock?"}),": ",(0,r.jsx)(s.code,{children:"BlockTag"})]}),"\n",(0,r.jsx)(s.p,{children:"Block to start searching for messages from. If not provided, will start\nfrom the first block (block #0)."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts.toBlock?"}),": ",(0,r.jsx)(s.code,{children:"BlockTag"})]}),"\n",(0,r.jsx)(s.p,{children:'Block to stop searching for messages at. If not provided, will stop at the\nlatest known block ("latest").'}),"\n",(0,r.jsx)(s.h4,{id:"returns-28",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage",children:(0,r.jsx)(s.code,{children:"TokenBridgeMessage"})}),"[]>"]}),"\n",(0,r.jsx)(s.p,{children:"All deposit token bridge messages sent by the given address."}),"\n",(0,r.jsx)(s.h4,{id:"source-25",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:424"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"getfinalizedl2blocknumber",children:"getFinalizedL2BlockNumber()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"getFinalizedL2BlockNumber"}),"(): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"any"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.h4,{id:"returns-29",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"any"}),">"]}),"\n",(0,r.jsx)(s.h4,{id:"source-26",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:1017"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"getmessagereceipt",children:"getMessageReceipt()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"getMessageReceipt"}),"(",(0,r.jsx)(s.code,{children:"message"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/MessageReceipt",children:(0,r.jsx)(s.code,{children:"MessageReceipt"})}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Finds the receipt of the transaction that executed a particular cross chain message."}),"\n",(0,r.jsx)(s.h4,{id:"parameters-23",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"message"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/MessageLike",children:(0,r.jsx)(s.code,{children:"MessageLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Message to find the receipt of."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts"}),"= ",(0,r.jsx)(s.code,{children:"{}"})]}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts.direction?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/enumerations/MessageDirection",children:(0,r.jsx)(s.code,{children:"MessageDirection"})})]}),"\n",(0,r.jsx)(s.h4,{id:"returns-30",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/MessageReceipt",children:(0,r.jsx)(s.code,{children:"MessageReceipt"})}),">"]}),"\n",(0,r.jsx)(s.p,{children:"CrossChainMessage receipt including receipt of the transaction that relayed the\ngiven message."}),"\n",(0,r.jsx)(s.h4,{id:"source-27",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:757"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"getmessagestatus",children:"getMessageStatus()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"getMessageStatus"}),"(",(0,r.jsx)(s.code,{children:"message"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/enumerations/MessageStatus",children:(0,r.jsx)(s.code,{children:"MessageStatus"})}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Retrieves the status of a particular message as an enum."}),"\n",(0,r.jsx)(s.h4,{id:"parameters-24",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"message"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/MessageLike",children:(0,r.jsx)(s.code,{children:"MessageLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Cross chain message to check the status of."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts"}),"= ",(0,r.jsx)(s.code,{children:"{}"})]}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts.direction?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/enumerations/MessageDirection",children:(0,r.jsx)(s.code,{children:"MessageDirection"})})]}),"\n",(0,r.jsx)(s.h4,{id:"returns-31",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/enumerations/MessageStatus",children:(0,r.jsx)(s.code,{children:"MessageStatus"})}),">"]}),"\n",(0,r.jsx)(s.p,{children:"Status of the message."}),"\n",(0,r.jsx)(s.h4,{id:"source-28",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:634"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"getmessagesbytransaction",children:"getMessagesByTransaction()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"getMessagesByTransaction"}),"(",(0,r.jsx)(s.code,{children:"transaction"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CrossChainMessage",children:(0,r.jsx)(s.code,{children:"CrossChainMessage"})}),"[]>"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Retrieves all cross chain messages sent within a given transaction."}),"\n",(0,r.jsx)(s.h4,{id:"parameters-25",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"transaction"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/TransactionLike",children:(0,r.jsx)(s.code,{children:"TransactionLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Transaction hash or receipt to find messages from."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts"}),"= ",(0,r.jsx)(s.code,{children:"{}"})]}),"\n",(0,r.jsx)(s.p,{children:"Options object."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts.direction?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/enumerations/MessageDirection",children:(0,r.jsx)(s.code,{children:"MessageDirection"})})]}),"\n",(0,r.jsx)(s.p,{children:"Direction to search for messages in. If not provided, will attempt to\nautomatically search both directions under the assumption that a transaction hash will only\nexist on one chain. If the hash exists on both chains, will throw an error."}),"\n",(0,r.jsx)(s.h4,{id:"returns-32",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CrossChainMessage",children:(0,r.jsx)(s.code,{children:"CrossChainMessage"})}),"[]>"]}),"\n",(0,r.jsx)(s.p,{children:"All cross chain messages sent within the transaction."}),"\n",(0,r.jsx)(s.h4,{id:"source-29",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:244"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"getprovenwithdrawal",children:"getProvenWithdrawal()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"getProvenWithdrawal"}),"(",(0,r.jsx)(s.code,{children:"withdrawalHash"}),"): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/ProvenWithdrawal",children:(0,r.jsx)(s.code,{children:"ProvenWithdrawal"})}),">"]}),"\n"]}),"\n",(0,r.jsxs)(s.p,{children:["Queries the L1CrossDomainMessenger contract's ",(0,r.jsx)(s.code,{children:"provenWithdrawals"})," mapping\nfor a ProvenWithdrawal that matches the passed withdrawalHash"]}),"\n",(0,r.jsx)(s.h4,{id:"parameters-26",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"withdrawalHash"}),": ",(0,r.jsx)(s.code,{children:"string"})]}),"\n",(0,r.jsx)(s.h4,{id:"returns-33",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/ProvenWithdrawal",children:(0,r.jsx)(s.code,{children:"ProvenWithdrawal"})}),">"]}),"\n",(0,r.jsx)(s.p,{children:"A ProvenWithdrawal object"}),"\n",(0,r.jsx)(s.h4,{id:"source-30",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:957"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"getwithdrawmessageproof",children:"getWithdrawMessageProof()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"getWithdrawMessageProof"}),"(",(0,r.jsx)(s.code,{children:"message"}),"): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/WithdrawMessageProof",children:(0,r.jsx)(s.code,{children:"WithdrawMessageProof"})}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Generates the proof required to finalize an L2 to L1 message."}),"\n",(0,r.jsx)(s.h4,{id:"parameters-27",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"message"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/MessageLike",children:(0,r.jsx)(s.code,{children:"MessageLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Message to generate a proof for."}),"\n",(0,r.jsx)(s.h4,{id:"returns-34",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/WithdrawMessageProof",children:(0,r.jsx)(s.code,{children:"WithdrawMessageProof"})}),">"]}),"\n",(0,r.jsx)(s.p,{children:"Proof that can be used to finalize the message."}),"\n",(0,r.jsx)(s.h4,{id:"source-31",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:1042"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"getwithdrawalsbyaddress",children:"getWithdrawalsByAddress()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"getWithdrawalsByAddress"}),"(",(0,r.jsx)(s.code,{children:"address"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage",children:(0,r.jsx)(s.code,{children:"TokenBridgeMessage"})}),"[]>"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Gets all withdrawals for a given address."}),"\n",(0,r.jsx)(s.h4,{id:"parameters-28",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"address"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,r.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Address to search for messages from."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts"}),"= ",(0,r.jsx)(s.code,{children:"{}"})]}),"\n",(0,r.jsx)(s.p,{children:"Options object."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts.fromBlock?"}),": ",(0,r.jsx)(s.code,{children:"BlockTag"})]}),"\n",(0,r.jsx)(s.p,{children:"Block to start searching for messages from. If not provided, will start\nfrom the first block (block #0)."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts.toBlock?"}),": ",(0,r.jsx)(s.code,{children:"BlockTag"})]}),"\n",(0,r.jsx)(s.p,{children:'Block to stop searching for messages at. If not provided, will stop at the\nlatest known block ("latest").'}),"\n",(0,r.jsx)(s.h4,{id:"returns-35",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage",children:(0,r.jsx)(s.code,{children:"TokenBridgeMessage"})}),"[]>"]}),"\n",(0,r.jsx)(s.p,{children:"All withdrawal token bridge messages sent by the given address."}),"\n",(0,r.jsx)(s.h4,{id:"source-32",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:458"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"proveandrelaymessage-2",children:"proveAndRelayMessage()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"proveAndRelayMessage"}),"(",(0,r.jsx)(s.code,{children:"message"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"?): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Prove and relay a cross chain message that was sent from L2 to L1. Only applicable for L2 to L1\nmessages."}),"\n",(0,r.jsx)(s.h4,{id:"parameters-29",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"message"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/MessageLike",children:(0,r.jsx)(s.code,{children:"MessageLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Message to finalize."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,r.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,r.jsx)(s.p,{children:"Additional options."}),"\n",(0,r.jsx)(s.h4,{id:"returns-36",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n",(0,r.jsx)(s.p,{children:"Transaction response for the finalization transaction."}),"\n",(0,r.jsx)(s.h4,{id:"source-33",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:1163"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"sendmessage-2",children:"sendMessage()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"sendMessage"}),"(",(0,r.jsx)(s.code,{children:"message"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"?): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Sends a given cross chain message. Where the message is sent depends on the direction attached\nto the message itself."}),"\n",(0,r.jsx)(s.h4,{id:"parameters-30",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"message"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CrossChainMessageRequest",children:(0,r.jsx)(s.code,{children:"CrossChainMessageRequest"})})]}),"\n",(0,r.jsx)(s.p,{children:"Cross chain message to send."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,r.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,r.jsx)(s.p,{children:"Additional options."}),"\n",(0,r.jsx)(s.h4,{id:"returns-37",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n",(0,r.jsx)(s.p,{children:"Transaction response for the message sending transaction."}),"\n",(0,r.jsx)(s.h4,{id:"source-34",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:1143"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"tocrosschainmessage",children:"toCrossChainMessage()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"toCrossChainMessage"}),"(",(0,r.jsx)(s.code,{children:"message"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"?): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CrossChainMessage",children:(0,r.jsx)(s.code,{children:"CrossChainMessage"})}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Resolves a MessageLike into a CrossChainMessage object.\nUnlike other coercion functions, this function is stateful and requires making additional\nrequests. For now I'm going to keep this function here, but we could consider putting a\nsimilar function inside of utils/coercion.ts if people want to use this without having to\ncreate an entire CrossChainProvider object."}),"\n",(0,r.jsx)(s.h4,{id:"parameters-31",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"message"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/MessageLike",children:(0,r.jsx)(s.code,{children:"MessageLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"MessageLike to resolve into a CrossChainMessage."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts?"})]}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts.direction?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/enumerations/MessageDirection",children:(0,r.jsx)(s.code,{children:"MessageDirection"})})]}),"\n",(0,r.jsx)(s.h4,{id:"returns-38",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CrossChainMessage",children:(0,r.jsx)(s.code,{children:"CrossChainMessage"})}),">"]}),"\n",(0,r.jsx)(s.p,{children:"Message coerced into a CrossChainMessage."}),"\n",(0,r.jsx)(s.h4,{id:"source-35",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:491"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"tolowlevelmessage",children:"toLowLevelMessage()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"toLowLevelMessage"}),"(",(0,r.jsx)(s.code,{children:"message"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"?): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/LowLevelMessage",children:(0,r.jsx)(s.code,{children:"LowLevelMessage"})}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Transforms a CrossChainMessenger message into its low-level representation inside the\nL2ToL1MessagePasser contract on L2."}),"\n",(0,r.jsx)(s.h4,{id:"parameters-32",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"message"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/MessageLike",children:(0,r.jsx)(s.code,{children:"MessageLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Message to transform."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts?"})]}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts.direction?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/enumerations/MessageDirection",children:(0,r.jsx)(s.code,{children:"MessageDirection"})})]}),"\n",(0,r.jsx)(s.h4,{id:"returns-39",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/LowLevelMessage",children:(0,r.jsx)(s.code,{children:"LowLevelMessage"})}),">"]}),"\n",(0,r.jsx)(s.p,{children:"Transformed message."}),"\n",(0,r.jsx)(s.h4,{id:"source-36",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:326"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"waitbatchfinalize",children:"waitBatchFinalize()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"waitBatchFinalize"}),"(",(0,r.jsx)(s.code,{children:"transactionHash"}),"): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"void"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.h4,{id:"parameters-33",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"transactionHash"}),": ",(0,r.jsx)(s.code,{children:"string"})]}),"\n",(0,r.jsx)(s.h4,{id:"returns-40",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"void"}),">"]}),"\n",(0,r.jsx)(s.h4,{id:"source-37",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:600"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"waitformessagereceipt",children:"waitForMessageReceipt()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"waitForMessageReceipt"}),"(",(0,r.jsx)(s.code,{children:"message"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/MessageReceipt",children:(0,r.jsx)(s.code,{children:"MessageReceipt"})}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Waits for a message to be executed and returns the receipt of the transaction that executed\nthe given message."}),"\n",(0,r.jsx)(s.h4,{id:"parameters-34",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"message"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/MessageLike",children:(0,r.jsx)(s.code,{children:"MessageLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Message to wait for."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts"}),"= ",(0,r.jsx)(s.code,{children:"{}"})]}),"\n",(0,r.jsx)(s.p,{children:"Options to pass to the waiting function."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts.confirmations?"}),": ",(0,r.jsx)(s.code,{children:"number"})]}),"\n",(0,r.jsx)(s.p,{children:"Number of transaction confirmations to wait for before returning."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts.pollIntervalMs?"}),": ",(0,r.jsx)(s.code,{children:"number"})]}),"\n",(0,r.jsx)(s.p,{children:"Number of milliseconds to wait between polling for the receipt."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts.timeoutMs?"}),": ",(0,r.jsx)(s.code,{children:"number"})]}),"\n",(0,r.jsx)(s.p,{children:"Milliseconds to wait before timing out."}),"\n",(0,r.jsx)(s.h4,{id:"returns-41",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/MessageReceipt",children:(0,r.jsx)(s.code,{children:"MessageReceipt"})}),">"]}),"\n",(0,r.jsx)(s.p,{children:"CrossChainMessage receipt including receipt of the transaction that relayed the\ngiven message."}),"\n",(0,r.jsx)(s.h4,{id:"source-38",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:802"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"waitformessagestatus",children:"waitForMessageStatus()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"waitForMessageStatus"}),"(",(0,r.jsx)(s.code,{children:"message"}),", ",(0,r.jsx)(s.code,{children:"status"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"void"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Waits until the status of a given message changes to the expected status. Note that if the\nstatus of the given message changes to a status that implies the expected status, this will\nstill return. If the status of the message changes to a status that exclues the expected\nstatus, this will throw an error."}),"\n",(0,r.jsx)(s.h4,{id:"parameters-35",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"message"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/MessageLike",children:(0,r.jsx)(s.code,{children:"MessageLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Message to wait for."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"status"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/enumerations/MessageStatus",children:(0,r.jsx)(s.code,{children:"MessageStatus"})})]}),"\n",(0,r.jsx)(s.p,{children:"Expected status of the message."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts"}),"= ",(0,r.jsx)(s.code,{children:"{}"})]}),"\n",(0,r.jsx)(s.p,{children:"Options to pass to the waiting function."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts.direction?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/enumerations/MessageDirection",children:(0,r.jsx)(s.code,{children:"MessageDirection"})})]}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts.pollIntervalMs?"}),": ",(0,r.jsx)(s.code,{children:"number"})]}),"\n",(0,r.jsx)(s.p,{children:"Number of milliseconds to wait when polling."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts.timeoutMs?"}),": ",(0,r.jsx)(s.code,{children:"number"})]}),"\n",(0,r.jsx)(s.p,{children:"Milliseconds to wait before timing out."}),"\n",(0,r.jsx)(s.h4,{id:"returns-42",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"void"}),">"]}),"\n",(0,r.jsx)(s.h4,{id:"source-39",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:840"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"waitrollupsuccess",children:"waitRollupSuccess()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"waitRollupSuccess"}),"(",(0,r.jsx)(s.code,{children:"transactionHash"}),"): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"void"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.h4,{id:"parameters-36",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"transactionHash"}),": ",(0,r.jsx)(s.code,{children:"string"})]}),"\n",(0,r.jsx)(s.h4,{id:"returns-43",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"void"}),">"]}),"\n",(0,r.jsx)(s.h4,{id:"source-40",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:552"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"waitsyncsuccess",children:"waitSyncSuccess()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"waitSyncSuccess"}),"(",(0,r.jsx)(s.code,{children:"transactionHash"}),"): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"void"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.h4,{id:"parameters-37",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"transactionHash"}),": ",(0,r.jsx)(s.code,{children:"string"})]}),"\n",(0,r.jsx)(s.h4,{id:"returns-44",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"void"}),">"]}),"\n",(0,r.jsx)(s.h4,{id:"source-41",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:576"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"withdrawerc20-2",children:"withdrawERC20()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"withdrawERC20"}),"(",(0,r.jsx)(s.code,{children:"l1Token"}),", ",(0,r.jsx)(s.code,{children:"l2Token"}),", ",(0,r.jsx)(s.code,{children:"amount"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"?): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Withdraws some ERC20 tokens back to the L1 chain."}),"\n",(0,r.jsx)(s.h4,{id:"parameters-38",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"l1Token"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,r.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Address of the L1 token."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"l2Token"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,r.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Address of the L2 token."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"amount"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,r.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Amount to withdraw."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,r.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,r.jsx)(s.p,{children:"Additional options."}),"\n",(0,r.jsx)(s.h4,{id:"returns-45",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n",(0,r.jsx)(s.p,{children:"Transaction response for the withdraw transaction."}),"\n",(0,r.jsx)(s.h4,{id:"source-42",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:1282"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"withdraweth-2",children:"withdrawETH()"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"withdrawETH"}),"(",(0,r.jsx)(s.code,{children:"amount"}),", ",(0,r.jsx)(s.code,{children:"opts"}),"?): ",(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"Withdraws some ETH back to the L1 chain."}),"\n",(0,r.jsx)(s.h4,{id:"parameters-39",children:"Parameters"}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"amount"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,r.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,r.jsx)(s.p,{children:"Amount of ETH to withdraw."}),"\n",(0,r.jsxs)(s.p,{children:["\u2022 ",(0,r.jsx)(s.strong,{children:"opts?"}),": ",(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,r.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,r.jsx)(s.p,{children:"Additional options."}),"\n",(0,r.jsx)(s.h4,{id:"returns-46",children:"Returns"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"Promise"}),"<",(0,r.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n",(0,r.jsx)(s.p,{children:"Transaction response for the withdraw transaction."}),"\n",(0,r.jsx)(s.h4,{id:"source-43",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/cross-chain-messenger.ts:1198"})]})}function a(e={}){const{wrapper:s}={...(0,i.R)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(t,{...e})}):t(e)}},1582:(e,s,n)=>{n.d(s,{R:()=>c,x:()=>o});var r=n(758);const i={},d=r.createContext(i);function c(e){const s=r.useContext(d);return r.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:c(e.components),r.createElement(d.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/e8c42455.c205f87f.js b/build/assets/js/e8c42455.5bdb4e2d.js similarity index 84% rename from build/assets/js/e8c42455.c205f87f.js rename to build/assets/js/e8c42455.5bdb4e2d.js index d784b508d..ce0951953 100644 --- a/build/assets/js/e8c42455.c205f87f.js +++ b/build/assets/js/e8c42455.5bdb4e2d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[361],{2635:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>d,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>c,toc:()=>l});var t=n(3274),o=n(2333);const r={},i="Function: estimateL1GasCost()",c={id:"build-on-morph/sdk/functions/estimateL1GasCost",title:"estimateL1GasCost",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/functions/estimateL1GasCost.md",sourceDirName:"build-on-morph/sdk/functions",slug:"/build-on-morph/sdk/functions/estimateL1GasCost",permalink:"/docs/build-on-morph/sdk/functions/estimateL1GasCost",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/functions/estimateL1GasCost.md",tags:[],version:"current",frontMatter:{}},d={},l=[{value:"Parameters",id:"parameters",level:2},{value:"Returns",id:"returns",level:2},{value:"Source",id:"source",level:2}];function a(e){const s={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,o.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,t.jsx)(s.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,t.jsx)(s.strong,{children:"Docs"})]}),"\n",(0,t.jsx)(s.hr,{}),"\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / estimateL1GasCost"]}),"\n",(0,t.jsx)(s.h1,{id:"function-estimatel1gascost",children:"Function: estimateL1GasCost()"}),"\n",(0,t.jsxs)(s.blockquote,{children:["\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.strong,{children:"estimateL1GasCost"}),"(",(0,t.jsx)(s.code,{children:"l2Provider"}),", ",(0,t.jsx)(s.code,{children:"tx"}),"): ",(0,t.jsx)(s.code,{children:"Promise"}),"<",(0,t.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n"]}),"\n",(0,t.jsx)(s.p,{children:"Estimates the amount of L1 gas cost for a given L2 transaction in wei."}),"\n",(0,t.jsx)(s.h2,{id:"parameters",children:"Parameters"}),"\n",(0,t.jsxs)(s.p,{children:["\u2022 ",(0,t.jsx)(s.strong,{children:"l2Provider"}),": ",(0,t.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/ProviderLike",children:(0,t.jsx)(s.code,{children:"ProviderLike"})})]}),"\n",(0,t.jsx)(s.p,{children:"L2 provider to query the gas usage from."}),"\n",(0,t.jsxs)(s.p,{children:["\u2022 ",(0,t.jsx)(s.strong,{children:"tx"}),": ",(0,t.jsx)(s.code,{children:"TransactionRequest"})]}),"\n",(0,t.jsx)(s.p,{children:"Transaction to estimate L1 gas cost for."}),"\n",(0,t.jsx)(s.h2,{id:"returns",children:"Returns"}),"\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.code,{children:"Promise"}),"<",(0,t.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,t.jsx)(s.p,{children:"Estimated L1 gas cost."}),"\n",(0,t.jsx)(s.h2,{id:"source",children:"Source"}),"\n",(0,t.jsx)(s.p,{children:"src/l2-provider.ts:95"})]})}function h(e={}){const{wrapper:s}={...(0,o.R)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(a,{...e})}):a(e)}},2333:(e,s,n)=>{n.d(s,{R:()=>i,x:()=>c});var t=n(9474);const o={},r=t.createContext(o);function i(e){const s=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),t.createElement(r.Provider,{value:s},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[361],{1289:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>d,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>c,toc:()=>l});var t=n(6070),o=n(1582);const r={},i="Function: estimateL1GasCost()",c={id:"build-on-morph/sdk/functions/estimateL1GasCost",title:"estimateL1GasCost",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/functions/estimateL1GasCost.md",sourceDirName:"build-on-morph/sdk/functions",slug:"/build-on-morph/sdk/functions/estimateL1GasCost",permalink:"/docs/build-on-morph/sdk/functions/estimateL1GasCost",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/functions/estimateL1GasCost.md",tags:[],version:"current",frontMatter:{}},d={},l=[{value:"Parameters",id:"parameters",level:2},{value:"Returns",id:"returns",level:2},{value:"Source",id:"source",level:2}];function a(e){const s={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,o.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,t.jsx)(s.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,t.jsx)(s.strong,{children:"Docs"})]}),"\n",(0,t.jsx)(s.hr,{}),"\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / estimateL1GasCost"]}),"\n",(0,t.jsx)(s.h1,{id:"function-estimatel1gascost",children:"Function: estimateL1GasCost()"}),"\n",(0,t.jsxs)(s.blockquote,{children:["\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.strong,{children:"estimateL1GasCost"}),"(",(0,t.jsx)(s.code,{children:"l2Provider"}),", ",(0,t.jsx)(s.code,{children:"tx"}),"): ",(0,t.jsx)(s.code,{children:"Promise"}),"<",(0,t.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n"]}),"\n",(0,t.jsx)(s.p,{children:"Estimates the amount of L1 gas cost for a given L2 transaction in wei."}),"\n",(0,t.jsx)(s.h2,{id:"parameters",children:"Parameters"}),"\n",(0,t.jsxs)(s.p,{children:["\u2022 ",(0,t.jsx)(s.strong,{children:"l2Provider"}),": ",(0,t.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/ProviderLike",children:(0,t.jsx)(s.code,{children:"ProviderLike"})})]}),"\n",(0,t.jsx)(s.p,{children:"L2 provider to query the gas usage from."}),"\n",(0,t.jsxs)(s.p,{children:["\u2022 ",(0,t.jsx)(s.strong,{children:"tx"}),": ",(0,t.jsx)(s.code,{children:"TransactionRequest"})]}),"\n",(0,t.jsx)(s.p,{children:"Transaction to estimate L1 gas cost for."}),"\n",(0,t.jsx)(s.h2,{id:"returns",children:"Returns"}),"\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.code,{children:"Promise"}),"<",(0,t.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,t.jsx)(s.p,{children:"Estimated L1 gas cost."}),"\n",(0,t.jsx)(s.h2,{id:"source",children:"Source"}),"\n",(0,t.jsx)(s.p,{children:"src/l2-provider.ts:95"})]})}function h(e={}){const{wrapper:s}={...(0,o.R)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(a,{...e})}):a(e)}},1582:(e,s,n)=>{n.d(s,{R:()=>i,x:()=>c});var t=n(758);const o={},r=t.createContext(o);function i(e){const s=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),t.createElement(r.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/e8fcecf9.4652c672.js b/build/assets/js/e8fcecf9.4652c672.js new file mode 100644 index 000000000..b191ea876 --- /dev/null +++ b/build/assets/js/e8fcecf9.4652c672.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[3918],{415:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>t,contentTitle:()=>i,default:()=>u,frontMatter:()=>c,metadata:()=>l,toc:()=>d});var s=r(6070),o=r(1582);const c={},i="Enumeration: L2ChainID",l={id:"build-on-morph/sdk/enumerations/L2ChainID",title:"L2ChainID",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/enumerations/L2ChainID.md",sourceDirName:"build-on-morph/sdk/enumerations",slug:"/build-on-morph/sdk/enumerations/L2ChainID",permalink:"/docs/build-on-morph/sdk/enumerations/L2ChainID",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/enumerations/L2ChainID.md",tags:[],version:"current",frontMatter:{}},t={},d=[{value:"Enumeration Members",id:"enumeration-members",level:2},{value:"MORPH_HOLESKY",id:"morph_holesky",level:3},{value:"Source",id:"source",level:4},{value:"MORPH_LOCAL_DEVNET",id:"morph_local_devnet",level:3},{value:"Source",id:"source-1",level:4},{value:"MORPH_MAINNET",id:"morph_mainnet",level:3},{value:"Source",id:"source-2",level:4},{value:"MORPH_QANET",id:"morph_qanet",level:3},{value:"Source",id:"source-3",level:4},{value:"MORPH_TESTNET",id:"morph_testnet",level:3},{value:"Source",id:"source-4",level:4}];function h(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",p:"p",strong:"strong",...(0,o.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,s.jsx)(n.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,s.jsx)(n.strong,{children:"Docs"})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / L2ChainID"]}),"\n",(0,s.jsx)(n.h1,{id:"enumeration-l2chainid",children:"Enumeration: L2ChainID"}),"\n",(0,s.jsx)(n.p,{children:"L2 network chain IDs"}),"\n",(0,s.jsx)(n.h2,{id:"enumeration-members",children:"Enumeration Members"}),"\n",(0,s.jsx)(n.h3,{id:"morph_holesky",children:"MORPH_HOLESKY"}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"MORPH_HOLESKY"}),": ",(0,s.jsx)(n.code,{children:"2810"})]}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"source",children:"Source"}),"\n",(0,s.jsx)(n.p,{children:"src/interfaces/types.ts:35"}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h3,{id:"morph_local_devnet",children:"MORPH_LOCAL_DEVNET"}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"MORPH_LOCAL_DEVNET"}),": ",(0,s.jsx)(n.code,{children:"53077"})]}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"source-1",children:"Source"}),"\n",(0,s.jsx)(n.p,{children:"src/interfaces/types.ts:32"}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h3,{id:"morph_mainnet",children:"MORPH_MAINNET"}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"MORPH_MAINNET"}),": ",(0,s.jsx)(n.code,{children:"0"})]}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"source-2",children:"Source"}),"\n",(0,s.jsx)(n.p,{children:"src/interfaces/types.ts:30"}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h3,{id:"morph_qanet",children:"MORPH_QANET"}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"MORPH_QANET"}),": ",(0,s.jsx)(n.code,{children:"53077"})]}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"source-3",children:"Source"}),"\n",(0,s.jsx)(n.p,{children:"src/interfaces/types.ts:33"}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h3,{id:"morph_testnet",children:"MORPH_TESTNET"}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"MORPH_TESTNET"}),": ",(0,s.jsx)(n.code,{children:"2710"})]}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"source-4",children:"Source"}),"\n",(0,s.jsx)(n.p,{children:"src/interfaces/types.ts:34"})]})}function u(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},1582:(e,n,r)=>{r.d(n,{R:()=>i,x:()=>l});var s=r(758);const o={},c=s.createContext(o);function i(e){const n=s.useContext(c);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),s.createElement(c.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/e8fcecf9.ca3788e5.js b/build/assets/js/e8fcecf9.ca3788e5.js deleted file mode 100644 index 9311cef9c..000000000 --- a/build/assets/js/e8fcecf9.ca3788e5.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[3918],{8413:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>t,contentTitle:()=>i,default:()=>u,frontMatter:()=>c,metadata:()=>l,toc:()=>d});var s=r(3274),o=r(2333);const c={},i="Enumeration: L2ChainID",l={id:"build-on-morph/sdk/enumerations/L2ChainID",title:"L2ChainID",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/enumerations/L2ChainID.md",sourceDirName:"build-on-morph/sdk/enumerations",slug:"/build-on-morph/sdk/enumerations/L2ChainID",permalink:"/docs/build-on-morph/sdk/enumerations/L2ChainID",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/enumerations/L2ChainID.md",tags:[],version:"current",frontMatter:{}},t={},d=[{value:"Enumeration Members",id:"enumeration-members",level:2},{value:"MORPH_HOLESKY",id:"morph_holesky",level:3},{value:"Source",id:"source",level:4},{value:"MORPH_LOCAL_DEVNET",id:"morph_local_devnet",level:3},{value:"Source",id:"source-1",level:4},{value:"MORPH_MAINNET",id:"morph_mainnet",level:3},{value:"Source",id:"source-2",level:4},{value:"MORPH_QANET",id:"morph_qanet",level:3},{value:"Source",id:"source-3",level:4},{value:"MORPH_TESTNET",id:"morph_testnet",level:3},{value:"Source",id:"source-4",level:4}];function h(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",p:"p",strong:"strong",...(0,o.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,s.jsx)(n.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,s.jsx)(n.strong,{children:"Docs"})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / L2ChainID"]}),"\n",(0,s.jsx)(n.h1,{id:"enumeration-l2chainid",children:"Enumeration: L2ChainID"}),"\n",(0,s.jsx)(n.p,{children:"L2 network chain IDs"}),"\n",(0,s.jsx)(n.h2,{id:"enumeration-members",children:"Enumeration Members"}),"\n",(0,s.jsx)(n.h3,{id:"morph_holesky",children:"MORPH_HOLESKY"}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"MORPH_HOLESKY"}),": ",(0,s.jsx)(n.code,{children:"2810"})]}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"source",children:"Source"}),"\n",(0,s.jsx)(n.p,{children:"src/interfaces/types.ts:35"}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h3,{id:"morph_local_devnet",children:"MORPH_LOCAL_DEVNET"}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"MORPH_LOCAL_DEVNET"}),": ",(0,s.jsx)(n.code,{children:"53077"})]}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"source-1",children:"Source"}),"\n",(0,s.jsx)(n.p,{children:"src/interfaces/types.ts:32"}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h3,{id:"morph_mainnet",children:"MORPH_MAINNET"}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"MORPH_MAINNET"}),": ",(0,s.jsx)(n.code,{children:"0"})]}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"source-2",children:"Source"}),"\n",(0,s.jsx)(n.p,{children:"src/interfaces/types.ts:30"}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h3,{id:"morph_qanet",children:"MORPH_QANET"}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"MORPH_QANET"}),": ",(0,s.jsx)(n.code,{children:"53077"})]}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"source-3",children:"Source"}),"\n",(0,s.jsx)(n.p,{children:"src/interfaces/types.ts:33"}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h3,{id:"morph_testnet",children:"MORPH_TESTNET"}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"MORPH_TESTNET"}),": ",(0,s.jsx)(n.code,{children:"2710"})]}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"source-4",children:"Source"}),"\n",(0,s.jsx)(n.p,{children:"src/interfaces/types.ts:34"})]})}function u(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},2333:(e,n,r)=>{r.d(n,{R:()=>i,x:()=>l});var s=r(9474);const o={},c=s.createContext(o);function i(e){const n=s.useContext(c);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),s.createElement(c.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/e912b961.ecb1b798.js b/build/assets/js/e912b961.d4c84c07.js similarity index 90% rename from build/assets/js/e912b961.ecb1b798.js rename to build/assets/js/e912b961.d4c84c07.js index 0c3eb1250..046e60a5f 100644 --- a/build/assets/js/e912b961.ecb1b798.js +++ b/build/assets/js/e912b961.d4c84c07.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[4116],{9866:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>i,contentTitle:()=>s,default:()=>l,frontMatter:()=>t,metadata:()=>d,toc:()=>a});var o=r(3274),c=r(2333);const t={},s="Function: getOEContract()",d={id:"build-on-morph/sdk/functions/getOEContract",title:"getOEContract",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/functions/getOEContract.md",sourceDirName:"build-on-morph/sdk/functions",slug:"/build-on-morph/sdk/functions/getOEContract",permalink:"/docs/build-on-morph/sdk/functions/getOEContract",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/functions/getOEContract.md",tags:[],version:"current",frontMatter:{}},i={},a=[{value:"Parameters",id:"parameters",level:2},{value:"Returns",id:"returns",level:2},{value:"Source",id:"source",level:2}];function h(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,c.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,o.jsx)(n.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,o.jsx)(n.strong,{children:"Docs"})]}),"\n",(0,o.jsx)(n.hr,{}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / getOEContract"]}),"\n",(0,o.jsx)(n.h1,{id:"function-getoecontract",children:"Function: getOEContract()"}),"\n",(0,o.jsxs)(n.blockquote,{children:["\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.strong,{children:"getOEContract"}),"(",(0,o.jsx)(n.code,{children:"contractName"}),", ",(0,o.jsx)(n.code,{children:"l2ChainId"}),", ",(0,o.jsx)(n.code,{children:"opts"}),"): ",(0,o.jsx)(n.code,{children:"Contract"})]}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:"Returns an ethers.Contract object for the given name, connected to the appropriate address for\nthe given L2 chain ID. Users can also provide a custom address to connect the contract to\ninstead. If the chain ID is not known then the user MUST provide a custom address or this\nfunction will throw an error."}),"\n",(0,o.jsx)(n.h2,{id:"parameters",children:"Parameters"}),"\n",(0,o.jsxs)(n.p,{children:["\u2022 ",(0,o.jsx)(n.strong,{children:"contractName"}),": ",(0,o.jsx)(n.code,{children:'"L1MessageQueueWithGasPriceOracle"'})," | ",(0,o.jsx)(n.code,{children:'"L1GatewayRouter"'})," | ",(0,o.jsx)(n.code,{children:'"L2GatewayRouter"'})," | ",(0,o.jsx)(n.code,{children:'"MorphStandardERC20"'})," | ",(0,o.jsx)(n.code,{children:'"L2WETH"'})," | ",(0,o.jsx)(n.code,{children:'"L1WETHGateway"'})," | ",(0,o.jsx)(n.code,{children:'"L2WETHGateway"'})," | ",(0,o.jsx)(n.code,{children:'"L2ToL1MessagePasser"'})," | ",(0,o.jsx)(n.code,{children:'"Sequencer"'})," | ",(0,o.jsx)(n.code,{children:'"Gov"'})," | ",(0,o.jsx)(n.code,{children:'"L2ETHGateway"'})," | ",(0,o.jsx)(n.code,{children:'"L2CrossDomainMessenger"'})," | ",(0,o.jsx)(n.code,{children:'"L2StandardERC20Gateway"'})," | ",(0,o.jsx)(n.code,{children:'"L2ERC721Gateway"'})," | ",(0,o.jsx)(n.code,{children:'"L2TxFeeVault"'})," | ",(0,o.jsx)(n.code,{children:'"L2ERC1155Gateway"'})," | ",(0,o.jsx)(n.code,{children:'"MorphStandardERC20Factory"'})," | ",(0,o.jsx)(n.code,{children:'"GasPriceOracle"'})," | ",(0,o.jsx)(n.code,{children:'"WrappedEther"'})," | ",(0,o.jsx)(n.code,{children:'"MorphToken"'})," | ",(0,o.jsx)(n.code,{children:'"L1CrossDomainMessenger"'})," | ",(0,o.jsx)(n.code,{children:'"Staking"'})," | ",(0,o.jsx)(n.code,{children:'"Rollup"'})," | ",(0,o.jsx)(n.code,{children:'"L1ETHGateway"'})," | ",(0,o.jsx)(n.code,{children:'"L1StandardERC20Gateway"'})," | ",(0,o.jsx)(n.code,{children:'"L1ERC721Gateway"'})," | ",(0,o.jsx)(n.code,{children:'"L1ERC1155Gateway"'})," | ",(0,o.jsx)(n.code,{children:'"EnforcedTxGateway"'})," | ",(0,o.jsx)(n.code,{children:'"WETH"'})]}),"\n",(0,o.jsx)(n.p,{children:"Name of the contract to connect to."}),"\n",(0,o.jsxs)(n.p,{children:["\u2022 ",(0,o.jsx)(n.strong,{children:"l2ChainId"}),": ",(0,o.jsx)(n.code,{children:"number"})]}),"\n",(0,o.jsx)(n.p,{children:"Chain ID for the L2 network."}),"\n",(0,o.jsxs)(n.p,{children:["\u2022 ",(0,o.jsx)(n.strong,{children:"opts"}),"= ",(0,o.jsx)(n.code,{children:"{}"})]}),"\n",(0,o.jsx)(n.p,{children:"Additional options for connecting to the contract."}),"\n",(0,o.jsxs)(n.p,{children:["\u2022 ",(0,o.jsx)(n.strong,{children:"opts.address?"}),": ",(0,o.jsx)(n.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,o.jsx)(n.code,{children:"AddressLike"})})]}),"\n",(0,o.jsx)(n.p,{children:"Custom address to connect to the contract."}),"\n",(0,o.jsxs)(n.p,{children:["\u2022 ",(0,o.jsx)(n.strong,{children:"opts.signerOrProvider?"}),": ",(0,o.jsx)(n.code,{children:"Provider"})," | ",(0,o.jsx)(n.code,{children:"Signer"})]}),"\n",(0,o.jsx)(n.p,{children:"Signer or provider to connect to the contract."}),"\n",(0,o.jsx)(n.h2,{id:"returns",children:"Returns"}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.code,{children:"Contract"})}),"\n",(0,o.jsx)(n.p,{children:"An ethers.Contract object connected to the appropriate address and interface."}),"\n",(0,o.jsx)(n.h2,{id:"source",children:"Source"}),"\n",(0,o.jsx)(n.p,{children:"src/utils/contracts.ts:42"})]})}function l(e={}){const{wrapper:n}={...(0,c.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(h,{...e})}):h(e)}},2333:(e,n,r)=>{r.d(n,{R:()=>s,x:()=>d});var o=r(9474);const c={},t=o.createContext(c);function s(e){const n=o.useContext(t);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(c):e.components||c:s(e.components),o.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[4116],{1252:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>i,contentTitle:()=>s,default:()=>l,frontMatter:()=>t,metadata:()=>d,toc:()=>a});var o=r(6070),c=r(1582);const t={},s="Function: getOEContract()",d={id:"build-on-morph/sdk/functions/getOEContract",title:"getOEContract",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/functions/getOEContract.md",sourceDirName:"build-on-morph/sdk/functions",slug:"/build-on-morph/sdk/functions/getOEContract",permalink:"/docs/build-on-morph/sdk/functions/getOEContract",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/functions/getOEContract.md",tags:[],version:"current",frontMatter:{}},i={},a=[{value:"Parameters",id:"parameters",level:2},{value:"Returns",id:"returns",level:2},{value:"Source",id:"source",level:2}];function h(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,c.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,o.jsx)(n.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,o.jsx)(n.strong,{children:"Docs"})]}),"\n",(0,o.jsx)(n.hr,{}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / getOEContract"]}),"\n",(0,o.jsx)(n.h1,{id:"function-getoecontract",children:"Function: getOEContract()"}),"\n",(0,o.jsxs)(n.blockquote,{children:["\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.strong,{children:"getOEContract"}),"(",(0,o.jsx)(n.code,{children:"contractName"}),", ",(0,o.jsx)(n.code,{children:"l2ChainId"}),", ",(0,o.jsx)(n.code,{children:"opts"}),"): ",(0,o.jsx)(n.code,{children:"Contract"})]}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:"Returns an ethers.Contract object for the given name, connected to the appropriate address for\nthe given L2 chain ID. Users can also provide a custom address to connect the contract to\ninstead. If the chain ID is not known then the user MUST provide a custom address or this\nfunction will throw an error."}),"\n",(0,o.jsx)(n.h2,{id:"parameters",children:"Parameters"}),"\n",(0,o.jsxs)(n.p,{children:["\u2022 ",(0,o.jsx)(n.strong,{children:"contractName"}),": ",(0,o.jsx)(n.code,{children:'"L1MessageQueueWithGasPriceOracle"'})," | ",(0,o.jsx)(n.code,{children:'"L1GatewayRouter"'})," | ",(0,o.jsx)(n.code,{children:'"L2GatewayRouter"'})," | ",(0,o.jsx)(n.code,{children:'"MorphStandardERC20"'})," | ",(0,o.jsx)(n.code,{children:'"L2WETH"'})," | ",(0,o.jsx)(n.code,{children:'"L1WETHGateway"'})," | ",(0,o.jsx)(n.code,{children:'"L2WETHGateway"'})," | ",(0,o.jsx)(n.code,{children:'"L2ToL1MessagePasser"'})," | ",(0,o.jsx)(n.code,{children:'"Sequencer"'})," | ",(0,o.jsx)(n.code,{children:'"Gov"'})," | ",(0,o.jsx)(n.code,{children:'"L2ETHGateway"'})," | ",(0,o.jsx)(n.code,{children:'"L2CrossDomainMessenger"'})," | ",(0,o.jsx)(n.code,{children:'"L2StandardERC20Gateway"'})," | ",(0,o.jsx)(n.code,{children:'"L2ERC721Gateway"'})," | ",(0,o.jsx)(n.code,{children:'"L2TxFeeVault"'})," | ",(0,o.jsx)(n.code,{children:'"L2ERC1155Gateway"'})," | ",(0,o.jsx)(n.code,{children:'"MorphStandardERC20Factory"'})," | ",(0,o.jsx)(n.code,{children:'"GasPriceOracle"'})," | ",(0,o.jsx)(n.code,{children:'"WrappedEther"'})," | ",(0,o.jsx)(n.code,{children:'"MorphToken"'})," | ",(0,o.jsx)(n.code,{children:'"L1CrossDomainMessenger"'})," | ",(0,o.jsx)(n.code,{children:'"Staking"'})," | ",(0,o.jsx)(n.code,{children:'"Rollup"'})," | ",(0,o.jsx)(n.code,{children:'"L1ETHGateway"'})," | ",(0,o.jsx)(n.code,{children:'"L1StandardERC20Gateway"'})," | ",(0,o.jsx)(n.code,{children:'"L1ERC721Gateway"'})," | ",(0,o.jsx)(n.code,{children:'"L1ERC1155Gateway"'})," | ",(0,o.jsx)(n.code,{children:'"EnforcedTxGateway"'})," | ",(0,o.jsx)(n.code,{children:'"WETH"'})]}),"\n",(0,o.jsx)(n.p,{children:"Name of the contract to connect to."}),"\n",(0,o.jsxs)(n.p,{children:["\u2022 ",(0,o.jsx)(n.strong,{children:"l2ChainId"}),": ",(0,o.jsx)(n.code,{children:"number"})]}),"\n",(0,o.jsx)(n.p,{children:"Chain ID for the L2 network."}),"\n",(0,o.jsxs)(n.p,{children:["\u2022 ",(0,o.jsx)(n.strong,{children:"opts"}),"= ",(0,o.jsx)(n.code,{children:"{}"})]}),"\n",(0,o.jsx)(n.p,{children:"Additional options for connecting to the contract."}),"\n",(0,o.jsxs)(n.p,{children:["\u2022 ",(0,o.jsx)(n.strong,{children:"opts.address?"}),": ",(0,o.jsx)(n.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,o.jsx)(n.code,{children:"AddressLike"})})]}),"\n",(0,o.jsx)(n.p,{children:"Custom address to connect to the contract."}),"\n",(0,o.jsxs)(n.p,{children:["\u2022 ",(0,o.jsx)(n.strong,{children:"opts.signerOrProvider?"}),": ",(0,o.jsx)(n.code,{children:"Provider"})," | ",(0,o.jsx)(n.code,{children:"Signer"})]}),"\n",(0,o.jsx)(n.p,{children:"Signer or provider to connect to the contract."}),"\n",(0,o.jsx)(n.h2,{id:"returns",children:"Returns"}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.code,{children:"Contract"})}),"\n",(0,o.jsx)(n.p,{children:"An ethers.Contract object connected to the appropriate address and interface."}),"\n",(0,o.jsx)(n.h2,{id:"source",children:"Source"}),"\n",(0,o.jsx)(n.p,{children:"src/utils/contracts.ts:42"})]})}function l(e={}){const{wrapper:n}={...(0,c.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(h,{...e})}):h(e)}},1582:(e,n,r)=>{r.d(n,{R:()=>s,x:()=>d});var o=r(758);const c={},t=o.createContext(c);function s(e){const n=o.useContext(t);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(c):e.components||c:s(e.components),o.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/eac819ad.8f20034b.js b/build/assets/js/eac819ad.f5609d88.js similarity index 86% rename from build/assets/js/eac819ad.8f20034b.js rename to build/assets/js/eac819ad.f5609d88.js index 273ccb426..2710129a2 100644 --- a/build/assets/js/eac819ad.8f20034b.js +++ b/build/assets/js/eac819ad.f5609d88.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[569],{9621:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>a,contentTitle:()=>l,default:()=>h,frontMatter:()=>d,metadata:()=>t,toc:()=>c});var o=n(3274),r=n(2333);const d={},l="Type alias: LowLevelMessage",t={id:"build-on-morph/sdk/type-aliases/LowLevelMessage",title:"LowLevelMessage",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/type-aliases/LowLevelMessage.md",sourceDirName:"build-on-morph/sdk/type-aliases",slug:"/build-on-morph/sdk/type-aliases/LowLevelMessage",permalink:"/docs/build-on-morph/sdk/type-aliases/LowLevelMessage",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/type-aliases/LowLevelMessage.md",tags:[],version:"current",frontMatter:{}},a={},c=[{value:"Type declaration",id:"type-declaration",level:2},{value:"encodedMessage",id:"encodedmessage",level:3},{value:"messageHash",id:"messagehash",level:3},{value:"messageSender",id:"messagesender",level:3},{value:"messageTarget",id:"messagetarget",level:3},{value:"Source",id:"source",level:2}];function i(e){const s={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",hr:"hr",p:"p",strong:"strong",...(0,r.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,o.jsx)(s.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,o.jsx)(s.strong,{children:"Docs"})]}),"\n",(0,o.jsx)(s.hr,{}),"\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / LowLevelMessage"]}),"\n",(0,o.jsx)(s.h1,{id:"type-alias-lowlevelmessage",children:"Type alias: LowLevelMessage"}),"\n",(0,o.jsxs)(s.blockquote,{children:["\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.strong,{children:"LowLevelMessage"}),": ",(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage",children:(0,o.jsx)(s.code,{children:"CoreCrossChainMessage"})})," & ",(0,o.jsx)(s.code,{children:"object"})]}),"\n"]}),"\n",(0,o.jsx)(s.p,{children:"Describes messages sent inside the L2ToL1MessagePasser on L2. Happens to be the same structure\nas the CoreCrossChainMessage so we'll reuse the type for now."}),"\n",(0,o.jsx)(s.h2,{id:"type-declaration",children:"Type declaration"}),"\n",(0,o.jsx)(s.h3,{id:"encodedmessage",children:"encodedMessage"}),"\n",(0,o.jsxs)(s.blockquote,{children:["\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.strong,{children:"encodedMessage"}),": ",(0,o.jsx)(s.code,{children:"string"})]}),"\n"]}),"\n",(0,o.jsx)(s.h3,{id:"messagehash",children:"messageHash"}),"\n",(0,o.jsxs)(s.blockquote,{children:["\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.strong,{children:"messageHash"}),": ",(0,o.jsx)(s.code,{children:"string"})]}),"\n"]}),"\n",(0,o.jsx)(s.h3,{id:"messagesender",children:"messageSender"}),"\n",(0,o.jsxs)(s.blockquote,{children:["\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.strong,{children:"messageSender"}),": ",(0,o.jsx)(s.code,{children:"string"})]}),"\n"]}),"\n",(0,o.jsx)(s.h3,{id:"messagetarget",children:"messageTarget"}),"\n",(0,o.jsxs)(s.blockquote,{children:["\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.strong,{children:"messageTarget"}),": ",(0,o.jsx)(s.code,{children:"string"})]}),"\n"]}),"\n",(0,o.jsx)(s.h2,{id:"source",children:"Source"}),"\n",(0,o.jsx)(s.p,{children:"src/interfaces/types.ts:263"})]})}function h(e={}){const{wrapper:s}={...(0,r.R)(),...e.components};return s?(0,o.jsx)(s,{...e,children:(0,o.jsx)(i,{...e})}):i(e)}},2333:(e,s,n)=>{n.d(s,{R:()=>l,x:()=>t});var o=n(9474);const r={},d=o.createContext(r);function l(e){const s=o.useContext(d);return o.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function t(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:l(e.components),o.createElement(d.Provider,{value:s},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[569],{3951:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>a,contentTitle:()=>l,default:()=>h,frontMatter:()=>d,metadata:()=>t,toc:()=>c});var o=n(6070),r=n(1582);const d={},l="Type alias: LowLevelMessage",t={id:"build-on-morph/sdk/type-aliases/LowLevelMessage",title:"LowLevelMessage",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/type-aliases/LowLevelMessage.md",sourceDirName:"build-on-morph/sdk/type-aliases",slug:"/build-on-morph/sdk/type-aliases/LowLevelMessage",permalink:"/docs/build-on-morph/sdk/type-aliases/LowLevelMessage",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/type-aliases/LowLevelMessage.md",tags:[],version:"current",frontMatter:{}},a={},c=[{value:"Type declaration",id:"type-declaration",level:2},{value:"encodedMessage",id:"encodedmessage",level:3},{value:"messageHash",id:"messagehash",level:3},{value:"messageSender",id:"messagesender",level:3},{value:"messageTarget",id:"messagetarget",level:3},{value:"Source",id:"source",level:2}];function i(e){const s={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",hr:"hr",p:"p",strong:"strong",...(0,r.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,o.jsx)(s.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,o.jsx)(s.strong,{children:"Docs"})]}),"\n",(0,o.jsx)(s.hr,{}),"\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / LowLevelMessage"]}),"\n",(0,o.jsx)(s.h1,{id:"type-alias-lowlevelmessage",children:"Type alias: LowLevelMessage"}),"\n",(0,o.jsxs)(s.blockquote,{children:["\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.strong,{children:"LowLevelMessage"}),": ",(0,o.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage",children:(0,o.jsx)(s.code,{children:"CoreCrossChainMessage"})})," & ",(0,o.jsx)(s.code,{children:"object"})]}),"\n"]}),"\n",(0,o.jsx)(s.p,{children:"Describes messages sent inside the L2ToL1MessagePasser on L2. Happens to be the same structure\nas the CoreCrossChainMessage so we'll reuse the type for now."}),"\n",(0,o.jsx)(s.h2,{id:"type-declaration",children:"Type declaration"}),"\n",(0,o.jsx)(s.h3,{id:"encodedmessage",children:"encodedMessage"}),"\n",(0,o.jsxs)(s.blockquote,{children:["\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.strong,{children:"encodedMessage"}),": ",(0,o.jsx)(s.code,{children:"string"})]}),"\n"]}),"\n",(0,o.jsx)(s.h3,{id:"messagehash",children:"messageHash"}),"\n",(0,o.jsxs)(s.blockquote,{children:["\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.strong,{children:"messageHash"}),": ",(0,o.jsx)(s.code,{children:"string"})]}),"\n"]}),"\n",(0,o.jsx)(s.h3,{id:"messagesender",children:"messageSender"}),"\n",(0,o.jsxs)(s.blockquote,{children:["\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.strong,{children:"messageSender"}),": ",(0,o.jsx)(s.code,{children:"string"})]}),"\n"]}),"\n",(0,o.jsx)(s.h3,{id:"messagetarget",children:"messageTarget"}),"\n",(0,o.jsxs)(s.blockquote,{children:["\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.strong,{children:"messageTarget"}),": ",(0,o.jsx)(s.code,{children:"string"})]}),"\n"]}),"\n",(0,o.jsx)(s.h2,{id:"source",children:"Source"}),"\n",(0,o.jsx)(s.p,{children:"src/interfaces/types.ts:263"})]})}function h(e={}){const{wrapper:s}={...(0,r.R)(),...e.components};return s?(0,o.jsx)(s,{...e,children:(0,o.jsx)(i,{...e})}):i(e)}},1582:(e,s,n)=>{n.d(s,{R:()=>l,x:()=>t});var o=n(758);const r={},d=o.createContext(r);function l(e){const s=o.useContext(d);return o.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function t(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:l(e.components),o.createElement(d.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/ec29823a.0534a53a.js b/build/assets/js/ec29823a.0534a53a.js deleted file mode 100644 index c0b283790..000000000 --- a/build/assets/js/ec29823a.0534a53a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[3838],{4921:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>s,contentTitle:()=>d,default:()=>h,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var t=o(3274),r=o(2333);const a={title:"How to Run a Morph Validator Node",lang:"en-US"},d=void 0,i={id:"build-on-morph/developer-resources/node-operation/how-to-run-a-validator-node",title:"How to Run a Morph Validator Node",description:"Run a Morph Node",source:"@site/docs/build-on-morph/developer-resources/node-operation/3-how-to-run-a-validator-node.md",sourceDirName:"build-on-morph/developer-resources/node-operation",slug:"/build-on-morph/developer-resources/node-operation/how-to-run-a-validator-node",permalink:"/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-validator-node",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/developer-resources/node-operation/3-how-to-run-a-validator-node.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{title:"How to Run a Morph Validator Node",lang:"en-US"},sidebar:"DeveloperSidebar",previous:{title:"Run a Morph Full Node from Source",permalink:"/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node"},next:{title:"Upgrade node running from docker",permalink:"/docs/build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-docker"}},s={},l=[{value:"Run a Morph Node",id:"run-a-morph-node",level:2},{value:"Build executable binary",id:"build-executable-binary",level:2},{value:"Clone Morph",id:"clone-morph",level:3},{value:"Build Geth",id:"build-geth",level:3},{value:"Build Node",id:"build-node",level:3},{value:"Sync from the genesis block",id:"sync-from-the-genesis-block",level:2},{value:"Config Preparation",id:"config-preparation",level:3},{value:"Script to start the process",id:"script-to-start-the-process",level:2},{value:"Geth",id:"geth",level:3},{value:"Node",id:"node",level:3},{value:"Check Status",id:"check-status",level:2}];function c(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",...(0,r.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h2,{id:"run-a-morph-node",children:"Run a Morph Node"}),"\n",(0,t.jsxs)(n.p,{children:["This guide describes the approach to running a Morph validator node. If you are unfamiliar with the validator duties, please refer to our ",(0,t.jsx)(n.a,{href:"/docs/how-morph-works/optimistic-zkevm",children:"optimistic zkEVM"})," design."]}),"\n",(0,t.jsxs)(n.p,{children:["Create the folder ",(0,t.jsx)(n.code,{children:"~/.morph"})," as our home directory for this example."]}),"\n",(0,t.jsx)(n.h2,{id:"build-executable-binary",children:"Build executable binary"}),"\n",(0,t.jsx)(n.h3,{id:"clone-morph",children:"Clone Morph"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"mkdir -p ~/.morph \ncd ~/.morph\ngit clone https://github.com/morph-l2/morph.git\n"})}),"\n",(0,t.jsx)(n.p,{children:"Currently, we use tag v0.4.0 as our beta version geth."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"cd morph\ngit checkout v0.4.0\n"})}),"\n",(0,t.jsx)(n.h3,{id:"build-geth",children:"Build Geth"}),"\n",(0,t.jsx)(n.p,{children:"Notice: You need C compiler to build geth"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"make geth\n"})}),"\n",(0,t.jsx)(n.h3,{id:"build-node",children:"Build Node"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"cd ~/.morph/morph/node \nmake build\n"})}),"\n",(0,t.jsx)(n.h2,{id:"sync-from-the-genesis-block",children:"Sync from the genesis block"}),"\n",(0,t.jsx)(n.h3,{id:"config-preparation",children:"Config Preparation"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Download the config files and make data dir"}),"\n"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"cd ~/.morph\n\n## mainnet\nwget https://raw.githubusercontent.com/morph-l2/config-template/main/mainnet/data.zip\n\n## testnet\nwget https://raw.githubusercontent.com/morph-l2/config-template/main/holesky/data.zip\n\nunzip data.zip\n"})}),"\n",(0,t.jsxs)(n.ol,{start:"2",children:["\n",(0,t.jsx)(n.li,{children:"Create a shared secret with node"}),"\n"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"cd ~/.morph\nopenssl rand -hex 32 > jwt-secret.txt\n"})}),"\n",(0,t.jsx)(n.h2,{id:"script-to-start-the-process",children:"Script to start the process"}),"\n",(0,t.jsx)(n.h3,{id:"geth",children:"Geth"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",metastring:'title="Script for starting mainnet geth"',children:'./morph/go-ethereum/build/bin/geth --morph \\\n --datadir "./geth-data" \\\n --http --http.api=web3,debug,eth,txpool,net,engine \\\n --authrpc.addr localhost \\\n --authrpc.vhosts="localhost" \\\n --authrpc.port 8551 \\\n --authrpc.jwtsecret=./jwt-secret.txt \\\n --log.filename=./geth.log\n\n'})}),"\n",(0,t.jsx)(n.p,{children:"tail -f geth.log to check if the Geth is running properly, or you can also execute the below curl command to check if you are connected to the peer."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:'curl --location --request POST \'localhost:8545/\' \\\n--header \'Content-Type: application/json\' \\\n--data-raw \'{\n "jsonrpc":"2.0",\n "method":"eth_blockNumber",\n "id":1\n}\'\n\n{"jsonrpc":"2.0","id":1,"result":"0x148e39"}\n'})}),"\n",(0,t.jsx)(n.h3,{id:"node",children:"Node"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"cd ~/.morph\n\n## mainnet\nexport CHAIN_ID=1\nexport L1MESSAGEQUEUE_CONTRACT=0x3931ade842f5bb8763164bdd81e5361dce6cc1ef\nexport START_HEIGHT=20996776\nexport ROLLUP=0x759894ced0e6af42c26668076ffa84d02e3cef60\n\n## start node\n./morph/node/build/bin/morphnode --validator --home ./node-data \\\n --l2.jwt-secret ./jwt-secret.txt \\\n --l2.eth http://localhost:8545 \\\n --l2.engine http://localhost:8551 \\\n --l1.rpc $(Ethereum RPC) \\\n --l1.beaconrpc $(Ethereum beacon chain RPC) \\\n --l1.chain-id ${CHAIN_ID} \\\n --validator.privateKey 0x0000000000000000000000000000000000000000000000000000000000000001 \\\n --sync.depositContractAddr ${L1MESSAGEQUEUE_CONTRACT} \\\n --sync.startHeight ${START_HEIGHT} \\\n --derivation.rollupAddress ${ROLLUP} \\\n --derivation.startHeight ${START_HEIGHT} \\\n --derivation.fetchBlockRange 200 \\\n --log.filename ./node.log\n"})}),"\n",(0,t.jsx)(n.p,{children:"For holesky network, using"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"export CHAIN_ID=17000 \nexport L1MESSAGEQUEUECONTRACT=0x778d1d9a4d8b6b9ade36d967a9ac19455ec3fd0b\nexport START_HEIGHT=1434640\nexport ROLLUP=0xd8c5c541d56f59d65cf775de928ccf4a47d4985c\n"})}),"\n",(0,t.jsx)(n.admonition,{type:"note",children:(0,t.jsxs)(n.p,{children:["Note the ",(0,t.jsx)(n.strong,{children:"validator.privateKey"})," is of no use to you. It is used to send challenges when the state root is found to be incorrect. However, we do not currently accept challenges from third party addresses. But it is also a required parameter for the morphnode command, so we give a ",(0,t.jsx)(n.em,{children:(0,t.jsx)(n.strong,{children:"0x00... 1"})}),"."]})}),"\n",(0,t.jsx)(n.h2,{id:"check-status",children:"Check Status"}),"\n",(0,t.jsx)(n.p,{children:"If your node is successfully started, you will see the following response:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:'I[2024-06-06|15:57:35.216] metrics server enabled module=derivation host=0.0.0.0 port=26660\nderivation node starting\nID> 24-06-06|15:57:35.216] initial sync start module=syncer msg="Running initial sync of L1 messages before starting sequencer, this might take a while..."\nI[2024-06-06|15:57:35.242] initial sync completed module=syncer latestSyncedBlock=1681622\nI[2024-06-06|15:57:35.242] derivation start pull rollupData form l1 module=derivation startBlock=1681599 end=1681622\nI[2024-06-06|15:57:35.244] fetched rollup tx module=derivation txNum=8 latestBatchIndex=59201\nI[2024-06-06|15:57:35.315] fetch rollup transaction success module=derivation txNonce=8764 txHash=0x5fb8a98472d1be73be2bc6be0807b9e0c68b7ba14a648c8a17bdaff7b26eb923 l1BlockNumber=1681599 firstL2BlockNumber=1347115 lastL2BlockNumber=1347129\nI[2024-06-06|15:57:35.669] new l2 block success module=derivation blockNumber=1347115\n'})}),"\n",(0,t.jsx)(n.p,{children:"You can use the following command to check the newest block height to make sure you are aligned."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:'curl --location --request POST \'localhost:8545/\' \\\n--header \'Content-Type: application/json\' \\\n--data-raw \'{\n "jsonrpc":"2.0",\n "method":"eth_blockNumber",\n "id":1\n}\'\n{"jsonrpc":"2.0","id":1,"result":"0x148e39"}\n'})}),"\n",(0,t.jsx)(n.p,{children:"Make sure you check the validator status constantly, if you find response"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"[2024-06-14|16:43:50.904] root hash or withdrawal hash is not equal originStateRootHash=0x13f91d1c272e48e2d864ce7bfb421506d5b2a04def64d45c75391cdcdd69cd78 deriveStateRootHash=0x27e10420c0e34676a7d75c4189d7ccd1c3407cc8fd0b3eafb01c15e250a1215f batchWithdrawalRoot=0xa3e4a7cf45c7591a6bd9868f1fa7485ae345f10067acaade5f5b07d418b2e172 deriveWithdrawalRoot=0xa3e4a7cf45c7591a6bd9868f1fa7485ae345f10067acaade5f5b07d418b2e172\n"})}),"\n",(0,t.jsx)(n.p,{children:"This means your validators find inconsistent between sequencer submission and your own observation."})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},2333:(e,n,o)=>{o.d(n,{R:()=>d,x:()=>i});var t=o(9474);const r={},a=t.createContext(r);function d(e){const n=t.useContext(a);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:d(e.components),t.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/ed22c7e9.05a060d1.js b/build/assets/js/ed22c7e9.05a060d1.js deleted file mode 100644 index 60f32f2dd..000000000 --- a/build/assets/js/ed22c7e9.05a060d1.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[2188],{991:(e,o,n)=>{n.r(o),n.d(o,{assets:()=>a,contentTitle:()=>s,default:()=>h,frontMatter:()=>i,metadata:()=>d,toc:()=>c});var t=n(3274),r=n(2333);const i={title:"Run a Morph Full Node with Docker",lang:"en-US"},s=void 0,d={id:"build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node-docker",title:"Run a Morph Full Node with Docker",description:"This guide will help you start a full node running in the docker container.",source:"@site/docs/build-on-morph/developer-resources/node-operation/2-how-to-run-a-morph-node-docker.md",sourceDirName:"build-on-morph/developer-resources/node-operation",slug:"/build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node-docker",permalink:"/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node-docker",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/developer-resources/node-operation/2-how-to-run-a-morph-node-docker.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{title:"Run a Morph Full Node with Docker",lang:"en-US"},sidebar:"DeveloperSidebar",previous:{title:"Block Explorer",permalink:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/block-explorer"},next:{title:"Run a Morph Full Node from Source",permalink:"/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node"}},a={},c=[{value:"Quick Start",id:"quick-start",level:2},{value:"Advanced Usage",id:"advanced-usage",level:2},{value:"Customizing Data Directory",id:"customizing-data-directory",level:3},{value:"Customizing parameters",id:"customizing-parameters",level:3},{value:"Managing Snapshots Yourself",id:"managing-snapshots-yourself",level:4}];function l(e){const o={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",h4:"h4",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(o.p,{children:"This guide will help you start a full node running in the docker container."}),"\n",(0,t.jsx)(o.admonition,{type:"note",children:(0,t.jsx)(o.p,{children:"We currently only support running a node with docker on testnet"})}),"\n",(0,t.jsx)(o.h2,{id:"quick-start",children:"Quick Start"}),"\n",(0,t.jsx)(o.p,{children:"Currently, users need to build the Docker image themselves using the Docker file and Docker Compose file we provide. However, there's no need to worry, as you only need one command to quickly start a full node. This command will handle everything for you, including downloading snapshots, structure data and config files, building the image, and starting the container."}),"\n",(0,t.jsxs)(o.ol,{children:["\n",(0,t.jsx)(o.li,{children:"Clone the dockerfile repository"}),"\n"]}),"\n",(0,t.jsx)(o.pre,{children:(0,t.jsx)(o.code,{className:"language-bash",children:"## testnet\ngit clone --branch release/0.4.x https://github.com/morph-l2/morph.git\n"})}),"\n",(0,t.jsxs)(o.ol,{start:"2",children:["\n",(0,t.jsx)(o.li,{children:"Run the following command"}),"\n"]}),"\n",(0,t.jsx)(o.pre,{children:(0,t.jsx)(o.code,{className:"language-bash",children:"cd ops/publicnode\n\n## testnet\nmake run-holesky-node\n"})}),"\n",(0,t.jsxs)(o.p,{children:["Running this command will create a ",(0,t.jsx)(o.code,{children:".morph-holesky"})," directory in your user directory by default, serving as the node's home directory. Before starting the node, this command will perform several preparations:"]}),"\n",(0,t.jsxs)(o.ul,{children:["\n",(0,t.jsx)(o.li,{children:"Create the node's home directory and copy the default configuration files into it."}),"\n",(0,t.jsxs)(o.li,{children:["Prepare the ",(0,t.jsx)(o.code,{children:"secret-jwt.txt"})," file for for authentication during RPC calls between geth and the node."]}),"\n",(0,t.jsx)(o.li,{children:"Download the latest snapshot data to speed up node synchronization."}),"\n",(0,t.jsx)(o.li,{children:"Place the extracted snapshot data into the corresponding folder within the home directory."}),"\n"]}),"\n",(0,t.jsx)(o.p,{children:"After completing these preparations, the command will automatically build the image and start the container, with Docker volumes mounted to the created node home directory."}),"\n",(0,t.jsxs)(o.admonition,{type:"info",children:[(0,t.jsxs)(o.p,{children:["If this is your first run, these processes may take some time. Note that if you are starting the node for the first time but already have a ",(0,t.jsx)(o.code,{children:".morph-holesky"})," directory, you must delete that directory before running the command. Otherwise, the preparation phase will be skipped, which may prevent the node from running properly."]}),(0,t.jsxs)(o.p,{children:["If the command fails during execution, you will also need to delete the previously created ",(0,t.jsx)(o.code,{children:".morph-holesky"})," directory before restarting."]})]}),"\n",(0,t.jsx)(o.h2,{id:"advanced-usage",children:"Advanced Usage"}),"\n",(0,t.jsxs)(o.p,{children:["With the ",(0,t.jsx)(o.a,{href:"#quick-start",children:"Quick Start"})," guide above, you can quickly start a node using the default configuration files. However, we also support customizing the node's home directory and parameter settings."]}),"\n",(0,t.jsx)(o.h3,{id:"customizing-data-directory",children:"Customizing Data Directory"}),"\n",(0,t.jsxs)(o.p,{children:["The host directory paths that are mounted by the Docker container are specified in the ",(0,t.jsx)(o.code,{children:"ops/publicnode/.env"})," file."]}),"\n",(0,t.jsx)(o.pre,{children:(0,t.jsx)(o.code,{className:"language-js",metastring:'title="ops/publicnode/.env"',children:"// the home folder of your Morph node\nNODE_HOME=${HOME}/.morph-holesky \n// the data directory for your execution client: geth\nGETH_DATA_DIR=${NODE_HOME}/geth-data\n// the data directory for you consensus client: tendermint\nNODE_DATA_DIR=${NODE_HOME}/node-data\n// the entrypoint shell script for start execution client\nGETH_ENTRYPOINT_FILE=${NODE_HOME}/entrypoint-geth.sh\n// the jwt secret file for communicating between execution client and consensus client via engine API\nJWT_SECRET_FILE=${NODE_HOME}/jwt-secret.txt\n// the snapshot name for holesky Morph node \nSNAPSHOT_NAME=snapshot-20240805-1\n"})}),"\n",(0,t.jsxs)(o.p,{children:["You have the flexibility to customize the directory paths as per your requirements.\nPlease note that if you want to execute ",(0,t.jsx)(o.strong,{children:"make run-holesky-node"})," to generate the necessary configuration files and snapshots for running the node, you need to ensure that the specified node home directory is new (not previously created) and do ",(0,t.jsx)(o.strong,{children:"NOT"})," alter the paths for ",(0,t.jsx)(o.code,{children:"GETH_DATA_DIR"})," and ",(0,t.jsx)(o.code,{children:"NODE_DATA_DIR"}),"."]}),"\n",(0,t.jsx)(o.h3,{id:"customizing-parameters",children:"Customizing parameters"}),"\n",(0,t.jsxs)(o.p,{children:["The default configuration required for node startup is located in the ",(0,t.jsx)(o.code,{children:"ops/publicnode/holesky"})," directory. If your node home directory is empty, the ",(0,t.jsx)(o.strong,{children:"run"})," command will automatically copy these configuration files to the directory mounted in the node's docker container."]}),"\n",(0,t.jsx)(o.pre,{children:(0,t.jsx)(o.code,{className:"language-javascript",children:"\u2514\u2500\u2500 holesky\n \u251c\u2500\u2500 entrypoint-geth.sh\n \u251c\u2500\u2500 geth-data\n \u2502\xa0\xa0 \u2514\u2500\u2500 static-nodes.json\n \u2514\u2500\u2500 node-data\n \u251c\u2500\u2500 config\n \u2502\xa0\xa0 \u251c\u2500\u2500 config.toml\n \u2502\xa0\xa0 \u2514\u2500\u2500 genesis.json\n \u2514\u2500\u2500 data\n"})}),"\n",(0,t.jsxs)(o.p,{children:["If you wish to modify the Geth startup command, you can do so by editing the ",(0,t.jsx)(o.code,{children:"entrypoint-geth.sh"})," file. For adjustments to the Tendermint-related configuration parameters, you should modify the node-data/config/config.toml file.\nNote that if you have customized your ",(0,t.jsx)(o.code,{children:"GETH_DATA_DIR"})," and ",(0,t.jsx)(o.code,{children:"NODE_DATA_DIR"}),", you will need to manually place the modified configuration files in the appropriate locations."]}),"\n",(0,t.jsx)(o.h4,{id:"managing-snapshots-yourself",children:"Managing Snapshots Yourself"}),"\n",(0,t.jsxs)(o.p,{children:["You may also manually manage snapshot, particularly if you are using custom paths for the node directories.\nThe ",(0,t.jsx)(o.strong,{children:"make download-and-decompress-snapshot"})," command in the ",(0,t.jsx)(o.code,{children:"ops/publicnode"})," directory will assist you in downloading and decompressing the snapshot archive."]}),"\n",(0,t.jsxs)(o.p,{children:["Then, you need to manually place the decompressed data files in the appropriate node data directories.\nFor example, if the snapshot folder is named ",(0,t.jsx)(o.code,{children:"snapshot-20240805-1"}),", move the contents from ",(0,t.jsx)(o.code,{children:"snapshot-20240805-1/geth"})," to the ",(0,t.jsx)(o.code,{children:"${GETH_DATA_DIR}/geth"})," directory and the contents from ",(0,t.jsx)(o.code,{children:"snapshot-20240805-1/data"})," to the ",(0,t.jsx)(o.code,{children:"${NODE_DATA_DIR}/data"})," directory."]})]})}function h(e={}){const{wrapper:o}={...(0,r.R)(),...e.components};return o?(0,t.jsx)(o,{...e,children:(0,t.jsx)(l,{...e})}):l(e)}},2333:(e,o,n)=>{n.d(o,{R:()=>s,x:()=>d});var t=n(9474);const r={},i=t.createContext(r);function s(e){const o=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function d(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),t.createElement(i.Provider,{value:o},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/f3316ef7.030164ad.js b/build/assets/js/f3316ef7.030164ad.js new file mode 100644 index 000000000..1cfc25a27 --- /dev/null +++ b/build/assets/js/f3316ef7.030164ad.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[8224],{9544:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>i,contentTitle:()=>s,default:()=>h,frontMatter:()=>a,metadata:()=>d,toc:()=>l});var t=o(6070),r=o(1582);const a={title:"Run a validator from source",lang:"en-US"},s=void 0,d={id:"build-on-morph/developer-resources/node-operation/validator-node/run-on-host",title:"Run a validator from source",description:"Run a Morph Validator",source:"@site/docs/build-on-morph/developer-resources/node-operation/validator-node/2-run-on-host.md",sourceDirName:"build-on-morph/developer-resources/node-operation/validator-node",slug:"/build-on-morph/developer-resources/node-operation/validator-node/run-on-host",permalink:"/docs/build-on-morph/developer-resources/node-operation/validator-node/run-on-host",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/developer-resources/node-operation/validator-node/2-run-on-host.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{title:"Run a validator from source",lang:"en-US"},sidebar:"DeveloperSidebar",previous:{title:"Run a validator with docker",permalink:"/docs/build-on-morph/developer-resources/node-operation/validator-node/run-in-docker"},next:{title:"Upgrade node running from docker",permalink:"/docs/build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-docker"}},i={},l=[{value:"Run a Morph Validator",id:"run-a-morph-validator",level:2},{value:"Build executable binary",id:"build-executable-binary",level:2},{value:"Clone Morph",id:"clone-morph",level:3},{value:"Build Geth",id:"build-geth",level:3},{value:"Build Node",id:"build-node",level:3},{value:"Sync from the snapshot",id:"sync-from-the-snapshot",level:2},{value:"Config Preparation",id:"config-preparation",level:3},{value:"Download snapshot",id:"download-snapshot",level:3},{value:"Script to start the process",id:"script-to-start-the-process",level:2},{value:"Geth",id:"geth",level:3},{value:"Node",id:"node",level:3},{value:"Check Status",id:"check-status",level:2}];function c(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",...(0,r.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h2,{id:"run-a-morph-validator",children:"Run a Morph Validator"}),"\n",(0,t.jsxs)(n.p,{children:["This guide describes the approach to running a Morph validator node. If you are unfamiliar with the validator duties, please refer to our ",(0,t.jsx)(n.a,{href:"/docs/how-morph-works/optimistic-zkevm",children:"optimistic zkEVM"})," design."]}),"\n",(0,t.jsxs)(n.p,{children:["Create the folder ",(0,t.jsx)(n.code,{children:"~/.morph"})," as our home directory for this example."]}),"\n",(0,t.jsx)(n.h2,{id:"build-executable-binary",children:"Build executable binary"}),"\n",(0,t.jsx)(n.h3,{id:"clone-morph",children:"Clone Morph"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"mkdir -p ~/.morph \ncd ~/.morph\ngit clone https://github.com/morph-l2/morph.git\n"})}),"\n",(0,t.jsxs)(n.p,{children:["Next, you need to check out a release version. You can find the available release versions on the ",(0,t.jsx)(n.a,{href:"https://github.com/morph-l2/morph/releases",children:"Morph Releases"})," page. It is recommended to use the latest release version."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"cd morph\ngit checkout ${RELEASE_VERSION}\n"})}),"\n",(0,t.jsx)(n.h3,{id:"build-geth",children:"Build Geth"}),"\n",(0,t.jsx)(n.p,{children:"Notice: You need C compiler to build geth"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"make geth\n"})}),"\n",(0,t.jsx)(n.h3,{id:"build-node",children:"Build Node"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"cd ~/.morph/morph/node \nmake build\n"})}),"\n",(0,t.jsx)(n.h2,{id:"sync-from-the-snapshot",children:"Sync from the snapshot"}),"\n",(0,t.jsx)(n.h3,{id:"config-preparation",children:"Config Preparation"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Download the config files and make data dir"}),"\n"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"cd ~/.morph\n\n## mainnet\nwget https://raw.githubusercontent.com/morph-l2/run-morph-node/main/mainnet/data.zip\n\n## testnet\nwget https://raw.githubusercontent.com/morph-l2/run-morph-node/main/holesky/data.zip\n\nunzip data.zip\n"})}),"\n",(0,t.jsxs)(n.ol,{start:"2",children:["\n",(0,t.jsx)(n.li,{children:"Create a shared secret with node"}),"\n"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"cd ~/.morph\nopenssl rand -hex 32 > jwt-secret.txt\n"})}),"\n",(0,t.jsx)(n.h3,{id:"download-snapshot",children:"Download snapshot"}),"\n",(0,t.jsx)(n.p,{children:"Download the latest snapshot corresponding to either the mainnet or testnet network."}),"\n",(0,t.jsxs)(n.p,{children:["A complete record of historical snapshots is available ",(0,t.jsx)(n.a,{href:"https://github.com/morph-l2/run-morph-node?tab=readme-ov-file#snapshot-information",children:"here"}),". Below is an example of how to download a snapshot"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"## mainnet\nwget -q --show-progress https://snapshot.morphl2.io/mainnet/${SNAPSHOT_NAME}.tar.gz\ntar -xzvf ${SNAPSHOT_NAME}.tar.gz\n\n## holesky\nwget -q --show-progress https://snapshot.morphl2.io/holesky/${SNAPSHOT_NAME}.tar.gz\ntar -xzvf ${SNAPSHOT_NAME}.tar.gz\n"})}),"\n",(0,t.jsx)(n.p,{children:"Extracting snapshot data to the data directory your node points to"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"mv ${SNAPSHOT_NAME}/geth geth-data\nmv ${SNAPSHOT_NAME}/data node-data\n"})}),"\n",(0,t.jsx)(n.h2,{id:"script-to-start-the-process",children:"Script to start the process"}),"\n",(0,t.jsx)(n.h3,{id:"geth",children:"Geth"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",metastring:'title="Script for starting mainnet geth"',children:'./morph/go-ethereum/build/bin/geth --morph \\\n --datadir "./geth-data" \\\n --http --http.api=web3,debug,eth,txpool,net,engine \\\n --authrpc.addr localhost \\\n --authrpc.vhosts="localhost" \\\n --authrpc.port 8551 \\\n --authrpc.jwtsecret=./jwt-secret.txt \\\n --log.filename=./geth.log\n\n'})}),"\n",(0,t.jsx)(n.admonition,{type:"note",children:(0,t.jsxs)(n.p,{children:["For testnet, using ",(0,t.jsx)(n.code,{children:"--morph-holesky"})," instead"]})}),"\n",(0,t.jsxs)(n.p,{children:["tail -f ",(0,t.jsx)(n.code,{children:"geth.log"})," to check if the Geth is running properly, or you can also execute the below curl command to check if you are connected to the peer."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:'curl --location --request POST \'localhost:8545/\' \\\n--header \'Content-Type: application/json\' \\\n--data-raw \'{\n "jsonrpc":"2.0",\n "method":"eth_blockNumber",\n "id":1\n}\'\n\n{"jsonrpc":"2.0","id":1,"result":"0x148e39"}\n'})}),"\n",(0,t.jsx)(n.h3,{id:"node",children:"Node"}),"\n",(0,t.jsxs)(n.p,{children:["You need to set the ",(0,t.jsx)(n.code,{children:"DERIVATION_START_HEIGHT"})," and ",(0,t.jsx)(n.code,{children:"L1_MSG_START_HEIGHT"})," variables correctly to match the snapshot version you downloaded. From the ",(0,t.jsx)(n.a,{href:"https://github.com/morph-l2/run-morph-node?tab=readme-ov-file#snapshot-information",children:"snapshot information"}),", you can find the corresponding height values."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"cd ~/.morph\n\n## mainnet\nexport CHAIN_ID=1\nexport L1MESSAGEQUEUE_CONTRACT=0x3931ade842f5bb8763164bdd81e5361dce6cc1ef\nexport ROLLUP=0x759894ced0e6af42c26668076ffa84d02e3cef60\nexport DERIVATION_START_HEIGHT=${The height matches your snapshot}\nexport L1_MSG_START_HEIGHT=${The height matches your snapshot}\n\n## start node\n./morph/node/build/bin/morphnode --validator --home ./node-data \\\n --l2.jwt-secret ./jwt-secret.txt \\\n --l2.eth http://localhost:8545 \\\n --l2.engine http://localhost:8551 \\\n --l1.rpc $(Ethereum RPC) \\\n --l1.beaconrpc $(Ethereum beacon chain RPC) \\\n --l1.chain-id ${CHAIN_ID} \\\n --validator.privateKey 0x0000000000000000000000000000000000000000000000000000000000000001 \\\n --sync.depositContractAddr ${L1MESSAGEQUEUE_CONTRACT} \\\n --sync.startHeight ${L1_MSG_START_HEIGHT} \\\n --derivation.rollupAddress ${ROLLUP} \\\n --derivation.startHeight ${DERIVATION_START_HEIGHT} \\\n --derivation.fetchBlockRange 200 \\\n --log.filename ./node.log\n"})}),"\n",(0,t.jsx)(n.p,{children:"For holesky network, using"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"export CHAIN_ID=17000 \nexport L1MESSAGEQUEUECONTRACT=0x778d1d9a4d8b6b9ade36d967a9ac19455ec3fd0b\nexport ROLLUP=0xd8c5c541d56f59d65cf775de928ccf4a47d4985c\nexport DERIVATION_START_HEIGHT=${The height matches your snapshot}\nexport L1_MSG_START_HEIGHT=${The height matches your snapshot}\n"})}),"\n",(0,t.jsx)(n.admonition,{type:"note",children:(0,t.jsxs)(n.p,{children:["Note the ",(0,t.jsx)(n.strong,{children:"validator.privateKey"})," is of no use to you. It is used to send challenges when the state root is found to be incorrect. However, we do not currently accept challenges from third party addresses. But it is also a required parameter for the morphnode command, so we give a ",(0,t.jsx)(n.em,{children:(0,t.jsx)(n.strong,{children:"0x00... 1"})}),"."]})}),"\n",(0,t.jsx)(n.h2,{id:"check-status",children:"Check Status"}),"\n",(0,t.jsx)(n.p,{children:"If your node is successfully started, you will see the following response:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:'I[2024-06-06|15:57:35.216] metrics server enabled module=derivation host=0.0.0.0 port=26660\nderivation node starting\nID> 24-06-06|15:57:35.216] initial sync start module=syncer msg="Running initial sync of L1 messages before starting sequencer, this might take a while..."\nI[2024-06-06|15:57:35.242] initial sync completed module=syncer latestSyncedBlock=1681622\nI[2024-06-06|15:57:35.242] derivation start pull rollupData form l1 module=derivation startBlock=1681599 end=1681622\nI[2024-06-06|15:57:35.244] fetched rollup tx module=derivation txNum=8 latestBatchIndex=59201\nI[2024-06-06|15:57:35.315] fetch rollup transaction success module=derivation txNonce=8764 txHash=0x5fb8a98472d1be73be2bc6be0807b9e0c68b7ba14a648c8a17bdaff7b26eb923 l1BlockNumber=1681599 firstL2BlockNumber=1347115 lastL2BlockNumber=1347129\nI[2024-06-06|15:57:35.669] new l2 block success module=derivation blockNumber=1347115\n'})}),"\n",(0,t.jsx)(n.p,{children:"You can use the following command to check the newest block height to make sure you are aligned."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:'curl --location --request POST \'localhost:8545/\' \\\n--header \'Content-Type: application/json\' \\\n--data-raw \'{\n "jsonrpc":"2.0",\n "method":"eth_blockNumber",\n "id":1\n}\'\n{"jsonrpc":"2.0","id":1,"result":"0x148e39"}\n'})}),"\n",(0,t.jsx)(n.p,{children:"Make sure you check the validator status constantly, if you find response"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"[2024-06-14|16:43:50.904] root hash or withdrawal hash is not equal originStateRootHash=0x13f91d1c272e48e2d864ce7bfb421506d5b2a04def64d45c75391cdcdd69cd78 deriveStateRootHash=0x27e10420c0e34676a7d75c4189d7ccd1c3407cc8fd0b3eafb01c15e250a1215f batchWithdrawalRoot=0xa3e4a7cf45c7591a6bd9868f1fa7485ae345f10067acaade5f5b07d418b2e172 deriveWithdrawalRoot=0xa3e4a7cf45c7591a6bd9868f1fa7485ae345f10067acaade5f5b07d418b2e172\n"})}),"\n",(0,t.jsx)(n.p,{children:"This means your validators find inconsistent between sequencer submission and your own observation."})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},1582:(e,n,o)=>{o.d(n,{R:()=>s,x:()=>d});var t=o(758);const r={},a=t.createContext(r);function s(e){const n=t.useContext(a);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),t.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/f435c040.9a696798.js b/build/assets/js/f435c040.edf90f1e.js similarity index 83% rename from build/assets/js/f435c040.9a696798.js rename to build/assets/js/f435c040.edf90f1e.js index c47f79a48..25c9ae3e8 100644 --- a/build/assets/js/f435c040.9a696798.js +++ b/build/assets/js/f435c040.edf90f1e.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[2500],{1297:(r,e,n)=>{n.r(e),n.d(e,{assets:()=>c,contentTitle:()=>t,default:()=>u,frontMatter:()=>s,metadata:()=>d,toc:()=>l});var o=n(3274),i=n(2333);const s={},t="Function: toSignerOrProvider()",d={id:"build-on-morph/sdk/functions/toSignerOrProvider",title:"toSignerOrProvider",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/functions/toSignerOrProvider.md",sourceDirName:"build-on-morph/sdk/functions",slug:"/build-on-morph/sdk/functions/toSignerOrProvider",permalink:"/docs/build-on-morph/sdk/functions/toSignerOrProvider",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/functions/toSignerOrProvider.md",tags:[],version:"current",frontMatter:{}},c={},l=[{value:"Parameters",id:"parameters",level:2},{value:"Returns",id:"returns",level:2},{value:"Source",id:"source",level:2}];function h(r){const e={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,i.R)(),...r.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(e.p,{children:[(0,o.jsx)(e.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,o.jsx)(e.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,o.jsx)(e.strong,{children:"Docs"})]}),"\n",(0,o.jsx)(e.hr,{}),"\n",(0,o.jsxs)(e.p,{children:[(0,o.jsx)(e.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / toSignerOrProvider"]}),"\n",(0,o.jsx)(e.h1,{id:"function-tosignerorprovider",children:"Function: toSignerOrProvider()"}),"\n",(0,o.jsxs)(e.blockquote,{children:["\n",(0,o.jsxs)(e.p,{children:[(0,o.jsx)(e.strong,{children:"toSignerOrProvider"}),"(",(0,o.jsx)(e.code,{children:"signerOrProvider"}),"): ",(0,o.jsx)(e.code,{children:"Provider"})," | ",(0,o.jsx)(e.code,{children:"Signer"})]}),"\n"]}),"\n",(0,o.jsx)(e.p,{children:"Converts a SignerOrProviderLike into a Signer or a Provider. Assumes that if the input is a\nstring then it is a JSON-RPC url."}),"\n",(0,o.jsx)(e.h2,{id:"parameters",children:"Parameters"}),"\n",(0,o.jsxs)(e.p,{children:["\u2022 ",(0,o.jsx)(e.strong,{children:"signerOrProvider"}),": ",(0,o.jsx)(e.a,{href:"/docs/build-on-morph/sdk/type-aliases/SignerOrProviderLike",children:(0,o.jsx)(e.code,{children:"SignerOrProviderLike"})})]}),"\n",(0,o.jsx)(e.p,{children:"SignerOrProviderLike to turn into a Signer or Provider."}),"\n",(0,o.jsx)(e.h2,{id:"returns",children:"Returns"}),"\n",(0,o.jsxs)(e.p,{children:[(0,o.jsx)(e.code,{children:"Provider"})," | ",(0,o.jsx)(e.code,{children:"Signer"})]}),"\n",(0,o.jsx)(e.p,{children:"Input as a Signer or Provider."}),"\n",(0,o.jsx)(e.h2,{id:"source",children:"Source"}),"\n",(0,o.jsx)(e.p,{children:"src/utils/coercion.ts:25"})]})}function u(r={}){const{wrapper:e}={...(0,i.R)(),...r.components};return e?(0,o.jsx)(e,{...r,children:(0,o.jsx)(h,{...r})}):h(r)}},2333:(r,e,n)=>{n.d(e,{R:()=>t,x:()=>d});var o=n(9474);const i={},s=o.createContext(i);function t(r){const e=o.useContext(s);return o.useMemo((function(){return"function"==typeof r?r(e):{...e,...r}}),[e,r])}function d(r){let e;return e=r.disableParentContext?"function"==typeof r.components?r.components(i):r.components||i:t(r.components),o.createElement(s.Provider,{value:e},r.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[2500],{4687:(r,e,n)=>{n.r(e),n.d(e,{assets:()=>c,contentTitle:()=>t,default:()=>u,frontMatter:()=>s,metadata:()=>d,toc:()=>l});var o=n(6070),i=n(1582);const s={},t="Function: toSignerOrProvider()",d={id:"build-on-morph/sdk/functions/toSignerOrProvider",title:"toSignerOrProvider",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/functions/toSignerOrProvider.md",sourceDirName:"build-on-morph/sdk/functions",slug:"/build-on-morph/sdk/functions/toSignerOrProvider",permalink:"/docs/build-on-morph/sdk/functions/toSignerOrProvider",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/functions/toSignerOrProvider.md",tags:[],version:"current",frontMatter:{}},c={},l=[{value:"Parameters",id:"parameters",level:2},{value:"Returns",id:"returns",level:2},{value:"Source",id:"source",level:2}];function h(r){const e={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,i.R)(),...r.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(e.p,{children:[(0,o.jsx)(e.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,o.jsx)(e.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,o.jsx)(e.strong,{children:"Docs"})]}),"\n",(0,o.jsx)(e.hr,{}),"\n",(0,o.jsxs)(e.p,{children:[(0,o.jsx)(e.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / toSignerOrProvider"]}),"\n",(0,o.jsx)(e.h1,{id:"function-tosignerorprovider",children:"Function: toSignerOrProvider()"}),"\n",(0,o.jsxs)(e.blockquote,{children:["\n",(0,o.jsxs)(e.p,{children:[(0,o.jsx)(e.strong,{children:"toSignerOrProvider"}),"(",(0,o.jsx)(e.code,{children:"signerOrProvider"}),"): ",(0,o.jsx)(e.code,{children:"Provider"})," | ",(0,o.jsx)(e.code,{children:"Signer"})]}),"\n"]}),"\n",(0,o.jsx)(e.p,{children:"Converts a SignerOrProviderLike into a Signer or a Provider. Assumes that if the input is a\nstring then it is a JSON-RPC url."}),"\n",(0,o.jsx)(e.h2,{id:"parameters",children:"Parameters"}),"\n",(0,o.jsxs)(e.p,{children:["\u2022 ",(0,o.jsx)(e.strong,{children:"signerOrProvider"}),": ",(0,o.jsx)(e.a,{href:"/docs/build-on-morph/sdk/type-aliases/SignerOrProviderLike",children:(0,o.jsx)(e.code,{children:"SignerOrProviderLike"})})]}),"\n",(0,o.jsx)(e.p,{children:"SignerOrProviderLike to turn into a Signer or Provider."}),"\n",(0,o.jsx)(e.h2,{id:"returns",children:"Returns"}),"\n",(0,o.jsxs)(e.p,{children:[(0,o.jsx)(e.code,{children:"Provider"})," | ",(0,o.jsx)(e.code,{children:"Signer"})]}),"\n",(0,o.jsx)(e.p,{children:"Input as a Signer or Provider."}),"\n",(0,o.jsx)(e.h2,{id:"source",children:"Source"}),"\n",(0,o.jsx)(e.p,{children:"src/utils/coercion.ts:25"})]})}function u(r={}){const{wrapper:e}={...(0,i.R)(),...r.components};return e?(0,o.jsx)(e,{...r,children:(0,o.jsx)(h,{...r})}):h(r)}},1582:(r,e,n)=>{n.d(e,{R:()=>t,x:()=>d});var o=n(758);const i={},s=o.createContext(i);function t(r){const e=o.useContext(s);return o.useMemo((function(){return"function"==typeof r?r(e):{...e,...r}}),[e,r])}function d(r){let e;return e=r.disableParentContext?"function"==typeof r.components?r.components(i):r.components||i:t(r.components),o.createElement(s.Provider,{value:e},r.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/f619ad04.5984a3c3.js b/build/assets/js/f619ad04.5984a3c3.js deleted file mode 100644 index 50b5cf54d..000000000 --- a/build/assets/js/f619ad04.5984a3c3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[6290],{9408:(e,o,n)=>{n.r(o),n.d(o,{assets:()=>a,contentTitle:()=>i,default:()=>h,frontMatter:()=>s,metadata:()=>d,toc:()=>l});var t=n(3274),r=n(2333);const s={title:"Prune State",lang:"en-US"},i=void 0,d={id:"build-on-morph/developer-resources/node-operation/prune-state",title:"Prune State",description:"The performance of a full node will degrade when the storage size reaches a high volume. We suggest that the fullnode always keep light storage by pruning the storage.",source:"@site/docs/build-on-morph/developer-resources/node-operation/4-prune-state.md",sourceDirName:"build-on-morph/developer-resources/node-operation",slug:"/build-on-morph/developer-resources/node-operation/prune-state",permalink:"/docs/build-on-morph/developer-resources/node-operation/prune-state",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/developer-resources/node-operation/4-prune-state.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{title:"Prune State",lang:"en-US"},sidebar:"DeveloperSidebar",previous:{title:"Upgrade node running on the host",permalink:"/docs/build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-host"},next:{title:"Contract Addresses",permalink:"/docs/build-on-morph/developer-resources/contracts"}},a={},l=[{value:"How to Prune",id:"how-to-prune",level:3}];function u(e){const o={admonition:"admonition",code:"code",h3:"h3",li:"li",ol:"ol",p:"p",strong:"strong",...(0,r.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(o.p,{children:"The performance of a full node will degrade when the storage size reaches a high volume. We suggest that the fullnode always keep light storage by pruning the storage."}),"\n",(0,t.jsx)(o.h3,{id:"how-to-prune",children:"How to Prune"}),"\n",(0,t.jsxs)(o.ol,{children:["\n",(0,t.jsx)(o.li,{children:"Stop the node, including the consensus client(morphnode) and the execution client(geth)"}),"\n",(0,t.jsxs)(o.li,{children:["Run ",(0,t.jsx)(o.code,{children:'nohup geth snapshot prune-zk-state --datadir "$GETH_DB_DIR" > prune.log &'}),". It will take 5~7 hours to finish."]}),"\n",(0,t.jsx)(o.li,{children:"Start the node once it is done."}),"\n"]}),"\n",(0,t.jsxs)(o.p,{children:["The hardware is important, ",(0,t.jsx)(o.strong,{children:"make sure the SSD meets: solid-state drive(SSD), 8k IOPS, 500 MB/S throughput, read latency < 1ms."})]}),"\n",(0,t.jsx)(o.admonition,{type:"note",children:(0,t.jsx)(o.p,{children:"To prune a Geth node at least 200 GB of free disk space is recommended. This means pruning cannot be used to save a hard drive that has been completely filled. A good rule of thumb is to prune before the node fills ~80% of the available disk space."})})]})}function h(e={}){const{wrapper:o}={...(0,r.R)(),...e.components};return o?(0,t.jsx)(o,{...e,children:(0,t.jsx)(u,{...e})}):u(e)}},2333:(e,o,n)=>{n.d(o,{R:()=>i,x:()=>d});var t=n(9474);const r={},s=t.createContext(r);function i(e){const o=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function d(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),t.createElement(s.Provider,{value:o},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/f6623e93.cc72725d.js b/build/assets/js/f6623e93.fbb75f09.js similarity index 51% rename from build/assets/js/f6623e93.cc72725d.js rename to build/assets/js/f6623e93.fbb75f09.js index 05a6774ee..e4fbea6fe 100644 --- a/build/assets/js/f6623e93.cc72725d.js +++ b/build/assets/js/f6623e93.fbb75f09.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[9200],{935:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>s,default:()=>h,frontMatter:()=>r,metadata:()=>a,toc:()=>c});var o=i(3274),t=i(2333);const r={title:"Morph Modular Design",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},s=void 0,a={id:"how-morph-works/morph-modular-design",title:"Morph Modular Design",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/how-morph-works/2-morph-modular-design.md",sourceDirName:"how-morph-works",slug:"/how-morph-works/morph-modular-design",permalink:"/docs/how-morph-works/morph-modular-design",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/how-morph-works/2-morph-modular-design.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{title:"Morph Modular Design",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"Developer Docs",permalink:"/docs/build-on-morph/developer-navigation-page"},next:{title:"Optimistic zkEVM",permalink:"/docs/how-morph-works/optimistic-zkevm"}},l={},c=[{value:"Overview",id:"overview",level:2},{value:"3 Major Morph Modules",id:"3-major-morph-modules",level:3},{value:"Sequencer Network - Consensus & Execution",id:"sequencer-network---consensus--execution",level:4},{value:"Optimistic zkEVM - Settlement",id:"optimistic-zkevm---settlement",level:4},{value:"Rollup - Data Availability",id:"rollup---data-availability",level:4},{value:"5 Morph Roles",id:"5-morph-roles",level:3},{value:"Sequencers",id:"sequencers",level:4},{value:"Prover",id:"prover",level:4},{value:"Validator",id:"validator",level:4},{value:"Nodes",id:"nodes",level:4},{value:"Layer 1",id:"layer-1",level:4},{value:"6 Morph Components",id:"6-morph-components",level:3},{value:"L2 Node\u200b",id:"l2-node",level:4},{value:"Batch Submitter\u200b",id:"batch-submitter",level:4},{value:"Consensus Client\u200b",id:"consensus-client",level:4},{value:"zkEVM\u200b",id:"zkevm",level:4},{value:"Aggregators\u200b",id:"aggregators",level:4},{value:"Layer 1 Contract\u200b",id:"layer-1-contract",level:4},{value:"Integration of Components, Roles, and Modules",id:"integration-of-components-roles-and-modules",level:3}];function d(e){const n={a:"a",h2:"h2",h3:"h3",h4:"h4",img:"img",li:"li",ol:"ol",p:"p",ul:"ul",...(0,t.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.p,{children:"The modular design of blockchain technology, known for its improved composability, has become a prevalent trend. Morph leverages this design principle to enhance its architecture and functionality."}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{alt:"arichitecture",src:i(5234).A+"",width:"3840",height:"2160"})}),"\n",(0,o.jsx)(n.h2,{id:"overview",children:"Overview"}),"\n",(0,o.jsx)(n.p,{children:"A modular design typically divides a Layer 1 blockchain into four core functions:"}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsx)(n.li,{children:"Consensus"}),"\n",(0,o.jsx)(n.li,{children:"Execution"}),"\n",(0,o.jsx)(n.li,{children:"Data Availability"}),"\n",(0,o.jsx)(n.li,{children:"Settlements"}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:"Morph applies this modular approach to its Layer 2 solution by dividing it into three primary modules, each responsible for specific functionalities."}),"\n",(0,o.jsx)(n.h3,{id:"3-major-morph-modules",children:"3 Major Morph Modules"}),"\n",(0,o.jsx)(n.h4,{id:"sequencer-network---consensus--execution",children:"Sequencer Network - Consensus & Execution"}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{alt:"Sequencer Network",src:i(5469).A+"",width:"3840",height:"2160"})}),"\n",(0,o.jsxs)(n.p,{children:["Sequencer network responsible for the execution & consensus of the Layer 2 transactions, for more details please refer to Morph's ",(0,o.jsx)(n.a,{href:"../how-morph-works/decentralized-sequencers/morph-decentralized-sequencer-network",children:"decentralized sequencers"}),"."]}),"\n",(0,o.jsx)(n.h4,{id:"optimistic-zkevm---settlement",children:"Optimistic zkEVM - Settlement"}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{alt:"Optimistic zkEVM",src:i(9806).A+"",width:"1920",height:"1080"})}),"\n",(0,o.jsxs)(n.p,{children:["State verification ensures that state changes on Layer 2 are valid on Layer 1. Morph introduces Optimistic zkEVM, a hybrid solution combining zk-rollups and optimistic rollups for state verification. The process involves a Morph innovation known as Responsive Validity Proof (RVP). This innovative approach finalizes and settles Layer 2 transactions and states efficiently. For more details, refer to the documentation on ",(0,o.jsx)(n.a,{href:"../how-morph-works/optimistic-zkevm",children:"Responsive Validity Proof"}),"."]}),"\n",(0,o.jsx)(n.h4,{id:"rollup---data-availability",children:"Rollup - Data Availability"}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{alt:"Rollup",src:i(7133).A+"",width:"1920",height:"1080"})}),"\n",(0,o.jsxs)(n.p,{children:["The ",(0,o.jsx)(n.a,{href:"/docs/how-morph-works/general-protocol-design/rollup",children:"Rollup"})," process involves submitting Layer 2 transactions and states to Layer 1, ensuring data availability. Morph's rollup strategy maximizes efficiency by compressing block content using zk-proofs, which helps manage the cost of Layer 1 data availability."]}),"\n",(0,o.jsx)(n.h3,{id:"5-morph-roles",children:"5 Morph Roles"}),"\n",(0,o.jsx)(n.h4,{id:"sequencers",children:"Sequencers"}),"\n",(0,o.jsx)(n.p,{children:"Sequencers play a crucial role in the network by:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:"Receiving Layer 2 user transactions and forming blocks."}),"\n",(0,o.jsx)(n.li,{children:"Reaching consensus with other sequencers."}),"\n",(0,o.jsx)(n.li,{children:"Executing blocks and applying state transitions."}),"\n",(0,o.jsx)(n.li,{children:"Batching blocks and submitting them to Layer 1."}),"\n",(0,o.jsx)(n.li,{children:"Synchronizing blocks with full nodes."}),"\n",(0,o.jsx)(n.li,{children:"Generating validity proofs when challenged."}),"\n"]}),"\n",(0,o.jsx)(n.h4,{id:"prover",children:"Prover"}),"\n",(0,o.jsx)(n.p,{children:"Provers are essential for generating zk proofs when a sequencer is challenged. They synchronize Layer 2 transaction information and produce the necessary zk proofs to validate state changes."}),"\n",(0,o.jsx)(n.h4,{id:"validator",children:"Validator"}),"\n",(0,o.jsx)(n.p,{children:"Validators can be any user and play a key role in ensuring the correctness of states submitted by sequencers to Layer 1. They maintain an L2 node to synchronize transactions and state changes, triggering challenges when incorrect states are identified."}),"\n",(0,o.jsx)(n.h4,{id:"nodes",children:"Nodes"}),"\n",(0,o.jsx)(n.p,{children:"Nodes facilitate easier access to Layer 2 transactions and states without actively participating in network operations. Running an L2 node is open to anyone and does not require permission."}),"\n",(0,o.jsx)(n.h4,{id:"layer-1",children:"Layer 1"}),"\n",(0,o.jsx)(n.p,{children:"Every Layer 2 solution relies on a Layer 1 blockchain for final settlements and data availability. For Morph, this role is fulfilled by Ethereum. Key contracts on Layer 1 ensure the security and finality of Layer 2 transactions and states."}),"\n",(0,o.jsx)(n.h3,{id:"6-morph-components",children:"6 Morph Components"}),"\n",(0,o.jsx)(n.h4,{id:"l2-node",children:"L2 Node\u200b"}),"\n",(0,o.jsx)(n.p,{children:"The L2 node is central to Morph's architecture, interacting with various modules and roles. It includes sub-components such as:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:"Transactions Manager (Mempool): Manages all Layer 2 transactions, accepting and storing user-initiated transactions."}),"\n",(0,o.jsx)(n.li,{children:"Executor: Applies state transitions and maintains the real-time status of Layer 2."}),"\n",(0,o.jsx)(n.li,{children:"Synchronizer: Synchronizes data between L2 nodes to restore network status."}),"\n"]}),"\n",(0,o.jsx)(n.h4,{id:"batch-submitter",children:"Batch Submitter\u200b"}),"\n",(0,o.jsx)(n.p,{children:"The Batch Submitter is part of the sequencer, responsible for continuously obtaining L2 blocks, packaging them into batches, and assembling the batches into Layer 1 transactions, which are then submitted to the Layer 1 contract."}),"\n",(0,o.jsx)(n.h4,{id:"consensus-client",children:"Consensus Client\u200b"}),"\n",(0,o.jsx)(n.p,{children:"Each sequencer runs a consensus client to reach consensus with other sequencers. The current design uses the Tendermint client to ensure seamless integration and developer friendliness."}),"\n",(0,o.jsx)(n.h4,{id:"zkevm",children:"zkEVM\u200b"}),"\n",(0,o.jsx)(n.p,{children:"zkEVM is part of the Prover and is a zk-friendly virtual machine used to generate zk proofs for Ethereum blocks and state changes. These zk proofs are ultimately used to prove the validity of L2 transactions and states."}),"\n",(0,o.jsx)(n.h4,{id:"aggregators",children:"Aggregators\u200b"}),"\n",(0,o.jsx)(n.p,{children:"Aggregators work with zkEVM to reduce the cost of verifying zk proofs by aggregating them for block production."}),"\n",(0,o.jsx)(n.h4,{id:"layer-1-contract",children:"Layer 1 Contract\u200b"}),"\n",(0,o.jsx)(n.p,{children:"These contracts on Ethereum store Layer 2 transactions, execute global state changes, and bridge assets and information between Layer 2 and Layer 1. They also manage the election and governance of the sequencer set, inheriting the security of Ethereum."}),"\n",(0,o.jsx)(n.h3,{id:"integration-of-components-roles-and-modules",children:"Integration of Components, Roles, and Modules"}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{alt:"modular",src:i(1267).A+"",width:"1920",height:"1080"})}),"\n",(0,o.jsx)(n.p,{children:"The components form the foundation of the various roles in Morph. For instance, running an L2 node allows one to become a Node, while adding batch submitter and consensus client functionalities enables the role of Sequencer. These roles collaborate to perform the core functions of Morph, creating a complete and efficient rollup solution."})]})}function h(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(d,{...e})}):d(e)}},1267:(e,n,i)=>{i.d(n,{A:()=>o});const o=i.p+"assets/images/modu-01191e93311b938abebd1189bfb69b21.png"},5234:(e,n,i)=>{i.d(n,{A:()=>o});const o=i.p+"assets/images/archi-d41d5b2f09000115cef0dfea3705b7aa.png"},5469:(e,n,i)=>{i.d(n,{A:()=>o});const o=i.p+"assets/images/seq1-e90d0e983252714740968a8aaaca0dd8.png"},7133:(e,n,i)=>{i.d(n,{A:()=>o});const o=i.p+"assets/images/rollup-768caf2d310d19ce9909d718badd44e5.png"},9806:(e,n,i)=>{i.d(n,{A:()=>o});const o=i.p+"assets/images/opzk-9ae9b91f62e5e1b9e4771ee2e441c2ba.png"},2333:(e,n,i)=>{i.d(n,{R:()=>s,x:()=>a});var o=i(9474);const t={},r=o.createContext(t);function s(e){const n=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:s(e.components),o.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[9200],{8389:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>s,default:()=>h,frontMatter:()=>r,metadata:()=>a,toc:()=>c});var o=i(6070),t=i(1582);const r={title:"Morph Modular Design",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},s=void 0,a={id:"how-morph-works/morph-modular-design",title:"Morph Modular Design",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/how-morph-works/2-morph-modular-design.md",sourceDirName:"how-morph-works",slug:"/how-morph-works/morph-modular-design",permalink:"/docs/how-morph-works/morph-modular-design",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/how-morph-works/2-morph-modular-design.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{title:"Morph Modular Design",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"Build on Morph",permalink:"/docs/build-on-morph/developer-navigation-page"},next:{title:"Optimistic zkEVM",permalink:"/docs/how-morph-works/optimistic-zkevm"}},l={},c=[{value:"Overview",id:"overview",level:2},{value:"3 Major Morph Modules",id:"3-major-morph-modules",level:3},{value:"Sequencer Network - Consensus & Execution",id:"sequencer-network---consensus--execution",level:4},{value:"Optimistic zkEVM - Settlement",id:"optimistic-zkevm---settlement",level:4},{value:"Rollup - Data Availability",id:"rollup---data-availability",level:4},{value:"5 Morph Roles",id:"5-morph-roles",level:3},{value:"Sequencers",id:"sequencers",level:4},{value:"Prover",id:"prover",level:4},{value:"Validator",id:"validator",level:4},{value:"Nodes",id:"nodes",level:4},{value:"Layer 1",id:"layer-1",level:4},{value:"6 Morph Components",id:"6-morph-components",level:3},{value:"L2 Node\u200b",id:"l2-node",level:4},{value:"Batch Submitter\u200b",id:"batch-submitter",level:4},{value:"Consensus Client\u200b",id:"consensus-client",level:4},{value:"zkEVM\u200b",id:"zkevm",level:4},{value:"Aggregators\u200b",id:"aggregators",level:4},{value:"Layer 1 Contract\u200b",id:"layer-1-contract",level:4},{value:"Integration of Components, Roles, and Modules",id:"integration-of-components-roles-and-modules",level:3}];function d(e){const n={a:"a",h2:"h2",h3:"h3",h4:"h4",img:"img",li:"li",ol:"ol",p:"p",ul:"ul",...(0,t.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.p,{children:"The modular design of blockchain technology, known for its improved composability, has become a prevalent trend. Morph leverages this design principle to enhance its architecture and functionality."}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{alt:"arichitecture",src:i(5422).A+"",width:"3840",height:"2160"})}),"\n",(0,o.jsx)(n.h2,{id:"overview",children:"Overview"}),"\n",(0,o.jsx)(n.p,{children:"A modular design typically divides a Layer 1 blockchain into four core functions:"}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsx)(n.li,{children:"Consensus"}),"\n",(0,o.jsx)(n.li,{children:"Execution"}),"\n",(0,o.jsx)(n.li,{children:"Data Availability"}),"\n",(0,o.jsx)(n.li,{children:"Settlements"}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:"Morph applies this modular approach to its Layer 2 solution by dividing it into three primary modules, each responsible for specific functionalities."}),"\n",(0,o.jsx)(n.h3,{id:"3-major-morph-modules",children:"3 Major Morph Modules"}),"\n",(0,o.jsx)(n.h4,{id:"sequencer-network---consensus--execution",children:"Sequencer Network - Consensus & Execution"}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{alt:"Sequencer Network",src:i(4673).A+"",width:"3840",height:"2160"})}),"\n",(0,o.jsxs)(n.p,{children:["Sequencer network responsible for the execution & consensus of the Layer 2 transactions, for more details please refer to Morph's ",(0,o.jsx)(n.a,{href:"../how-morph-works/decentralized-sequencers/morph-decentralized-sequencer-network",children:"decentralized sequencers"}),"."]}),"\n",(0,o.jsx)(n.h4,{id:"optimistic-zkevm---settlement",children:"Optimistic zkEVM - Settlement"}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{alt:"Optimistic zkEVM",src:i(562).A+"",width:"1920",height:"1080"})}),"\n",(0,o.jsxs)(n.p,{children:["State verification ensures that state changes on Layer 2 are valid on Layer 1. Morph introduces Optimistic zkEVM, a hybrid solution combining zk-rollups and optimistic rollups for state verification. The process involves a Morph innovation known as Responsive Validity Proof (RVP). This innovative approach finalizes and settles Layer 2 transactions and states efficiently. For more details, refer to the documentation on ",(0,o.jsx)(n.a,{href:"../how-morph-works/optimistic-zkevm",children:"Responsive Validity Proof"}),"."]}),"\n",(0,o.jsx)(n.h4,{id:"rollup---data-availability",children:"Rollup - Data Availability"}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{alt:"Rollup",src:i(5633).A+"",width:"1920",height:"1080"})}),"\n",(0,o.jsxs)(n.p,{children:["The ",(0,o.jsx)(n.a,{href:"/docs/how-morph-works/general-protocol-design/rollup",children:"Rollup"})," process involves submitting Layer 2 transactions and states to Layer 1, ensuring data availability. Morph's rollup strategy maximizes efficiency by compressing block content using zk-proofs, which helps manage the cost of Layer 1 data availability."]}),"\n",(0,o.jsx)(n.h3,{id:"5-morph-roles",children:"5 Morph Roles"}),"\n",(0,o.jsx)(n.h4,{id:"sequencers",children:"Sequencers"}),"\n",(0,o.jsx)(n.p,{children:"Sequencers play a crucial role in the network by:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:"Receiving Layer 2 user transactions and forming blocks."}),"\n",(0,o.jsx)(n.li,{children:"Reaching consensus with other sequencers."}),"\n",(0,o.jsx)(n.li,{children:"Executing blocks and applying state transitions."}),"\n",(0,o.jsx)(n.li,{children:"Batching blocks and submitting them to Layer 1."}),"\n",(0,o.jsx)(n.li,{children:"Synchronizing blocks with full nodes."}),"\n",(0,o.jsx)(n.li,{children:"Generating validity proofs when challenged."}),"\n"]}),"\n",(0,o.jsx)(n.h4,{id:"prover",children:"Prover"}),"\n",(0,o.jsx)(n.p,{children:"Provers are essential for generating zk proofs when a sequencer is challenged. They synchronize Layer 2 transaction information and produce the necessary zk proofs to validate state changes."}),"\n",(0,o.jsx)(n.h4,{id:"validator",children:"Validator"}),"\n",(0,o.jsx)(n.p,{children:"Validators can be any user and play a key role in ensuring the correctness of states submitted by sequencers to Layer 1. They maintain an L2 node to synchronize transactions and state changes, triggering challenges when incorrect states are identified."}),"\n",(0,o.jsx)(n.h4,{id:"nodes",children:"Nodes"}),"\n",(0,o.jsx)(n.p,{children:"Nodes facilitate easier access to Layer 2 transactions and states without actively participating in network operations. Running an L2 node is open to anyone and does not require permission."}),"\n",(0,o.jsx)(n.h4,{id:"layer-1",children:"Layer 1"}),"\n",(0,o.jsx)(n.p,{children:"Every Layer 2 solution relies on a Layer 1 blockchain for final settlements and data availability. For Morph, this role is fulfilled by Ethereum. Key contracts on Layer 1 ensure the security and finality of Layer 2 transactions and states."}),"\n",(0,o.jsx)(n.h3,{id:"6-morph-components",children:"6 Morph Components"}),"\n",(0,o.jsx)(n.h4,{id:"l2-node",children:"L2 Node\u200b"}),"\n",(0,o.jsx)(n.p,{children:"The L2 node is central to Morph's architecture, interacting with various modules and roles. It includes sub-components such as:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:"Transactions Manager (Mempool): Manages all Layer 2 transactions, accepting and storing user-initiated transactions."}),"\n",(0,o.jsx)(n.li,{children:"Executor: Applies state transitions and maintains the real-time status of Layer 2."}),"\n",(0,o.jsx)(n.li,{children:"Synchronizer: Synchronizes data between L2 nodes to restore network status."}),"\n"]}),"\n",(0,o.jsx)(n.h4,{id:"batch-submitter",children:"Batch Submitter\u200b"}),"\n",(0,o.jsx)(n.p,{children:"The Batch Submitter is part of the sequencer, responsible for continuously obtaining L2 blocks, packaging them into batches, and assembling the batches into Layer 1 transactions, which are then submitted to the Layer 1 contract."}),"\n",(0,o.jsx)(n.h4,{id:"consensus-client",children:"Consensus Client\u200b"}),"\n",(0,o.jsx)(n.p,{children:"Each sequencer runs a consensus client to reach consensus with other sequencers. The current design uses the Tendermint client to ensure seamless integration and developer friendliness."}),"\n",(0,o.jsx)(n.h4,{id:"zkevm",children:"zkEVM\u200b"}),"\n",(0,o.jsx)(n.p,{children:"zkEVM is part of the Prover and is a zk-friendly virtual machine used to generate zk proofs for Ethereum blocks and state changes. These zk proofs are ultimately used to prove the validity of L2 transactions and states."}),"\n",(0,o.jsx)(n.h4,{id:"aggregators",children:"Aggregators\u200b"}),"\n",(0,o.jsx)(n.p,{children:"Aggregators work with zkEVM to reduce the cost of verifying zk proofs by aggregating them for block production."}),"\n",(0,o.jsx)(n.h4,{id:"layer-1-contract",children:"Layer 1 Contract\u200b"}),"\n",(0,o.jsx)(n.p,{children:"These contracts on Ethereum store Layer 2 transactions, execute global state changes, and bridge assets and information between Layer 2 and Layer 1. They also manage the election and governance of the sequencer set, inheriting the security of Ethereum."}),"\n",(0,o.jsx)(n.h3,{id:"integration-of-components-roles-and-modules",children:"Integration of Components, Roles, and Modules"}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{alt:"modular",src:i(9471).A+"",width:"1920",height:"1080"})}),"\n",(0,o.jsx)(n.p,{children:"The components form the foundation of the various roles in Morph. For instance, running an L2 node allows one to become a Node, while adding batch submitter and consensus client functionalities enables the role of Sequencer. These roles collaborate to perform the core functions of Morph, creating a complete and efficient rollup solution."})]})}function h(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(d,{...e})}):d(e)}},9471:(e,n,i)=>{i.d(n,{A:()=>o});const o=i.p+"assets/images/modu-01191e93311b938abebd1189bfb69b21.png"},5422:(e,n,i)=>{i.d(n,{A:()=>o});const o=i.p+"assets/images/archi-722265224ea729def09d6641d267c941.png"},4673:(e,n,i)=>{i.d(n,{A:()=>o});const o=i.p+"assets/images/seq1-e90d0e983252714740968a8aaaca0dd8.png"},5633:(e,n,i)=>{i.d(n,{A:()=>o});const o=i.p+"assets/images/rollup-768caf2d310d19ce9909d718badd44e5.png"},562:(e,n,i)=>{i.d(n,{A:()=>o});const o=i.p+"assets/images/opzk-f22d92ddda6b9d38f0f917f2025c7b28.png"},1582:(e,n,i)=>{i.d(n,{R:()=>s,x:()=>a});var o=i(758);const t={},r=o.createContext(t);function s(e){const n=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:s(e.components),o.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/f93d7a3b.84f16635.js b/build/assets/js/f93d7a3b.8270a95b.js similarity index 85% rename from build/assets/js/f93d7a3b.84f16635.js rename to build/assets/js/f93d7a3b.8270a95b.js index 10e6f3d20..857cca738 100644 --- a/build/assets/js/f93d7a3b.84f16635.js +++ b/build/assets/js/f93d7a3b.8270a95b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[8898],{7029:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>c,contentTitle:()=>d,default:()=>p,frontMatter:()=>i,metadata:()=>t,toc:()=>l});var s=n(3274),o=n(2333);const i={},d="Function: isL2Provider()",t={id:"build-on-morph/sdk/functions/isL2Provider",title:"isL2Provider",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/functions/isL2Provider.md",sourceDirName:"build-on-morph/sdk/functions",slug:"/build-on-morph/sdk/functions/isL2Provider",permalink:"/docs/build-on-morph/sdk/functions/isL2Provider",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/functions/isL2Provider.md",tags:[],version:"current",frontMatter:{}},c={},l=[{value:"Type parameters",id:"type-parameters",level:2},{value:"Parameters",id:"parameters",level:2},{value:"Returns",id:"returns",level:2},{value:"Example",id:"example",level:2},{value:"Source",id:"source",level:2}];function h(e){const r={a:"a",blockquote:"blockquote",code:"code",em:"em",h1:"h1",h2:"h2",hr:"hr",p:"p",pre:"pre",strong:"strong",...(0,o.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,s.jsx)(r.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,s.jsx)(r.strong,{children:"Docs"})]}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / isL2Provider"]}),"\n",(0,s.jsx)(r.h1,{id:"function-isl2provider",children:"Function: isL2Provider()"}),"\n",(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"isL2Provider"}),"<",(0,s.jsx)(r.code,{children:"TProvider"}),">(",(0,s.jsx)(r.code,{children:"provider"}),"): ",(0,s.jsx)(r.code,{children:"provider is L2Provider<TProvider>"})]}),"\n"]}),"\n",(0,s.jsx)(r.p,{children:"Determines if a given Provider is an L2Provider. Will coerce type\nif true"}),"\n",(0,s.jsx)(r.h2,{id:"type-parameters",children:"Type parameters"}),"\n",(0,s.jsxs)(r.p,{children:["\u2022 ",(0,s.jsx)(r.strong,{children:"TProvider"})," ",(0,s.jsx)(r.em,{children:"extends"})," ",(0,s.jsx)(r.code,{children:"Provider"}),"<",(0,s.jsx)(r.code,{children:"TProvider"}),">"]}),"\n",(0,s.jsx)(r.h2,{id:"parameters",children:"Parameters"}),"\n",(0,s.jsxs)(r.p,{children:["\u2022 ",(0,s.jsx)(r.strong,{children:"provider"}),": ",(0,s.jsx)(r.code,{children:"TProvider"})]}),"\n",(0,s.jsx)(r.p,{children:"The provider to check"}),"\n",(0,s.jsx)(r.h2,{id:"returns",children:"Returns"}),"\n",(0,s.jsx)(r.p,{children:(0,s.jsx)(r.code,{children:"provider is L2Provider<TProvider>"})}),"\n",(0,s.jsx)(r.p,{children:"Boolean"}),"\n",(0,s.jsx)(r.h2,{id:"example",children:"Example"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-ts",children:"if (isL2Provider(provider)) {\n // typescript now knows it is of type L2Provider\n const gasPrice = await provider.estimateL2GasPrice(tx)\n}\n"})}),"\n",(0,s.jsx)(r.h2,{id:"source",children:"Source"}),"\n",(0,s.jsx)(r.p,{children:"src/l2-provider.ts:157"})]})}function p(e={}){const{wrapper:r}={...(0,o.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},2333:(e,r,n)=>{n.d(r,{R:()=>d,x:()=>t});var s=n(9474);const o={},i=s.createContext(o);function d(e){const r=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function t(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:d(e.components),s.createElement(i.Provider,{value:r},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[8898],{9903:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>c,contentTitle:()=>d,default:()=>p,frontMatter:()=>i,metadata:()=>t,toc:()=>l});var s=n(6070),o=n(1582);const i={},d="Function: isL2Provider()",t={id:"build-on-morph/sdk/functions/isL2Provider",title:"isL2Provider",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/functions/isL2Provider.md",sourceDirName:"build-on-morph/sdk/functions",slug:"/build-on-morph/sdk/functions/isL2Provider",permalink:"/docs/build-on-morph/sdk/functions/isL2Provider",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/functions/isL2Provider.md",tags:[],version:"current",frontMatter:{}},c={},l=[{value:"Type parameters",id:"type-parameters",level:2},{value:"Parameters",id:"parameters",level:2},{value:"Returns",id:"returns",level:2},{value:"Example",id:"example",level:2},{value:"Source",id:"source",level:2}];function h(e){const r={a:"a",blockquote:"blockquote",code:"code",em:"em",h1:"h1",h2:"h2",hr:"hr",p:"p",pre:"pre",strong:"strong",...(0,o.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,s.jsx)(r.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,s.jsx)(r.strong,{children:"Docs"})]}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / isL2Provider"]}),"\n",(0,s.jsx)(r.h1,{id:"function-isl2provider",children:"Function: isL2Provider()"}),"\n",(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"isL2Provider"}),"<",(0,s.jsx)(r.code,{children:"TProvider"}),">(",(0,s.jsx)(r.code,{children:"provider"}),"): ",(0,s.jsx)(r.code,{children:"provider is L2Provider<TProvider>"})]}),"\n"]}),"\n",(0,s.jsx)(r.p,{children:"Determines if a given Provider is an L2Provider. Will coerce type\nif true"}),"\n",(0,s.jsx)(r.h2,{id:"type-parameters",children:"Type parameters"}),"\n",(0,s.jsxs)(r.p,{children:["\u2022 ",(0,s.jsx)(r.strong,{children:"TProvider"})," ",(0,s.jsx)(r.em,{children:"extends"})," ",(0,s.jsx)(r.code,{children:"Provider"}),"<",(0,s.jsx)(r.code,{children:"TProvider"}),">"]}),"\n",(0,s.jsx)(r.h2,{id:"parameters",children:"Parameters"}),"\n",(0,s.jsxs)(r.p,{children:["\u2022 ",(0,s.jsx)(r.strong,{children:"provider"}),": ",(0,s.jsx)(r.code,{children:"TProvider"})]}),"\n",(0,s.jsx)(r.p,{children:"The provider to check"}),"\n",(0,s.jsx)(r.h2,{id:"returns",children:"Returns"}),"\n",(0,s.jsx)(r.p,{children:(0,s.jsx)(r.code,{children:"provider is L2Provider<TProvider>"})}),"\n",(0,s.jsx)(r.p,{children:"Boolean"}),"\n",(0,s.jsx)(r.h2,{id:"example",children:"Example"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-ts",children:"if (isL2Provider(provider)) {\n // typescript now knows it is of type L2Provider\n const gasPrice = await provider.estimateL2GasPrice(tx)\n}\n"})}),"\n",(0,s.jsx)(r.h2,{id:"source",children:"Source"}),"\n",(0,s.jsx)(r.p,{children:"src/l2-provider.ts:157"})]})}function p(e={}){const{wrapper:r}={...(0,o.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},1582:(e,r,n)=>{n.d(r,{R:()=>d,x:()=>t});var s=n(758);const o={},i=s.createContext(o);function d(e){const r=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function t(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:d(e.components),s.createElement(i.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/fac53bf8.323a0f38.js b/build/assets/js/fac53bf8.323a0f38.js deleted file mode 100644 index ed8c60755..000000000 --- a/build/assets/js/fac53bf8.323a0f38.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[4305],{2864:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>s,metadata:()=>a,toc:()=>l});var i=n(3274),o=n(2333);const s={title:"Understand Transaction Cost on Morph",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},r=void 0,a={id:"build-on-morph/build-on-morph/understand-transaction-cost-on-morph",title:"Understand Transaction Cost on Morph",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/build-on-morph/build-on-morph/4-understand-transaction-cost-on-morph.md",sourceDirName:"build-on-morph/build-on-morph",slug:"/build-on-morph/build-on-morph/understand-transaction-cost-on-morph",permalink:"/docs/build-on-morph/build-on-morph/understand-transaction-cost-on-morph",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/build-on-morph/4-understand-transaction-cost-on-morph.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{title:"Understand Transaction Cost on Morph",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"Difference between Morph and Ethereum",permalink:"/docs/how-morph-works/general-protocol-design/difference-between-ethereum-and-morph"},next:{title:"Development Setup",permalink:"/docs/build-on-morph/build-on-morph/development-setup"}},c={},l=[{value:"The L2 execution fee",id:"the-l2-execution-fee",level:2},{value:"The L1 data fee",id:"the-l1-data-fee",level:2},{value:"Transaction fees' effect on software development",id:"transaction-fees-effect-on-software-development",level:2},{value:"Sending transactions",id:"sending-transactions",level:3},{value:"Displaying fees to users",id:"displaying-fees-to-users",level:3},{value:"Estimating the L2 execution fee",id:"estimating-the-l2-execution-fee",level:4},{value:"Estimating the L1 data fee",id:"estimating-the-l1-data-fee",level:4},{value:"Estimating the total fee",id:"estimating-the-total-fee",level:4},{value:"Sending max ETH",id:"sending-max-eth",level:3},{value:"Common RPC Errors",id:"common-rpc-errors",level:2},{value:"Insufficient funds",id:"insufficient-funds",level:3},{value:"Gas price too low",id:"gas-price-too-low",level:3},{value:"Gas price too high",id:"gas-price-too-high",level:3}];function d(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",h4:"h4",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,o.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.p,{children:"Transaction fees on Morph work similarly to fees on Ethereum. However, Layer 2 introduces some unique aspects. Morph's optimistic zkEVM makes these differences easy to understand and even easier to handle."}),"\n",(0,i.jsx)(t.p,{children:"This page includes the formula for calculating the gas cost of transactions on Morph.\nThere are two kinds of costs for transactions on Morph: the L2 execution fee and the L1 data/security fee."}),"\n",(0,i.jsx)(t.h2,{id:"the-l2-execution-fee",children:"The L2 execution fee"}),"\n",(0,i.jsx)(t.p,{children:"Like Ethereum, transactions on Morph incur gas costs for computation and storage usage."}),"\n",(0,i.jsxs)(t.p,{children:["Every L2 transaction will pay some ",(0,i.jsx)(t.strong,{children:"execution"})," fee, equal to the amount of gas used multiplied by the gas price of the transaction."]}),"\n",(0,i.jsx)(t.p,{children:"Morph supports EIP-1559 transaction type. The EIP-1559 pricing model, which comprises a base fee and a priority fee, contributes to a more predictable and stable transaction fee."}),"\n",(0,i.jsx)(t.p,{children:"The formula is straightforward:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{children:"l2_execution_fee = l2_gas_price * l2_gas_used\nl2_gas_price = l2_base_fee + l2_priority_fee\n"})}),"\n",(0,i.jsx)(t.p,{children:"The amount of L2 gas used depends on the specific transaction. Due to EVM compatibility, gas usage on Morph is typically similar to Ethereum."}),"\n",(0,i.jsx)(t.h2,{id:"the-l1-data-fee",children:"The L1 data fee"}),"\n",(0,i.jsx)(t.p,{children:"Morph transactions are also published to Ethereum, crucial to Morph\u2019s security as it ensures all data needed to verify Morph's state is always publicly available on Ethereum."}),"\n",(0,i.jsx)(t.p,{children:"Users must pay for the cost of submitting their transactions to Ethereum, known as the L1 data fee. This fee typically represents most of the total cost of a transaction on Morph."}),"\n",(0,i.jsx)(t.p,{children:"Formula:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{children:"l1DataFee = (l1BaseFee * commitScalar + l1BlobBaseFee * len(tx_data) * blobScalar) / rcfg.Precision\n"})}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{children:"len(tx_data) = count_zero_bytes(tx_data) * 4 + count_non_zero_bytes(tx_data) * 16\n"})}),"\n",(0,i.jsx)(t.p,{children:"And other parameters:"}),"\n",(0,i.jsxs)(t.ol,{children:["\n",(0,i.jsx)(t.li,{children:"l1BaseFee\uff1aLayer1 base fee"}),"\n",(0,i.jsx)(t.li,{children:"commitScalar: a factor used to measure the gas cost for data commitment"}),"\n",(0,i.jsx)(t.li,{children:"l1BlobBaseFee: the blobBaseFee on L1"}),"\n",(0,i.jsx)(t.li,{children:"blobScalar: a factor used to measure the gas cost for one transaction to be stored in EIP-4844 blob"}),"\n"]}),"\n",(0,i.jsx)(t.admonition,{type:"tip",children:(0,i.jsxs)(t.p,{children:["You can read the parameter values from the GasPrice oracle contract. Morph has pre-deployed ",(0,i.jsx)(t.code,{children:"GasPriceOracle"}),", accessible on Morph mainnet at ",(0,i.jsx)(t.a,{href:"https://explorer.morphl2.io/address/0x530000000000000000000000000000000000000F",children:"GasPriceOracle"}),"."]})}),"\n",(0,i.jsx)(t.h2,{id:"transaction-fees-effect-on-software-development",children:"Transaction fees' effect on software development"}),"\n",(0,i.jsx)(t.h3,{id:"sending-transactions",children:"Sending transactions"}),"\n",(0,i.jsx)(t.p,{children:"The process of sending a transaction on Morph is identical to sending a transaction on Ethereum."}),"\n",(0,i.jsx)(t.p,{children:"When sending a transaction, you should provide a gas price that is greater than or equal to the current L2 gas price."}),"\n",(0,i.jsxs)(t.p,{children:["Like on Ethereum, you can query this gas price with the ",(0,i.jsx)(t.code,{children:"eth_gasPrice"})," RPC method."]}),"\n",(0,i.jsxs)(t.p,{children:["Similarly, you should set your transaction gas limit in the same way that you would set it on Ethereum (e.g. via ",(0,i.jsx)(t.code,{children:"eth_estimateGas"}),")."]}),"\n",(0,i.jsx)(t.h3,{id:"displaying-fees-to-users",children:"Displaying fees to users"}),"\n",(0,i.jsx)(t.p,{children:"Many Ethereum applications display estimated fees to users by multiplying the gas price by the gas limit."}),"\n",(0,i.jsx)(t.p,{children:"However, as discussed earlier, users on Morph are charged both an L2 execution fee and an L1 data fee."}),"\n",(0,i.jsx)(t.p,{children:"As a result, you should display the sum of both of these fees to give users the most accurate estimate of the total cost of a transaction."}),"\n",(0,i.jsx)(t.h4,{id:"estimating-the-l2-execution-fee",children:"Estimating the L2 execution fee"}),"\n",(0,i.jsx)(t.p,{children:"You can estimate the L2 execution fee by multiplying the gas price by the gas used, just like on Ethereum."}),"\n",(0,i.jsx)(t.p,{children:"The formula is straightforward:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{children:"l2_execution_fee = l2_gas_price * l2_gas_used\nl2_gas_price = l2_base_fee + l2_priority_fee\n"})}),"\n",(0,i.jsx)(t.p,{children:"The amount of L2 gas used depends on the specific transaction. Due to EVM compatibility, gas usage on Morph is typically similar to Ethereum."}),"\n",(0,i.jsx)(t.h4,{id:"estimating-the-l1-data-fee",children:"Estimating the L1 data fee"}),"\n",(0,i.jsxs)(t.p,{children:["You can utilize the pre-deployed ",(0,i.jsx)(t.code,{children:"L1GasPriceOracle"})," at ",(0,i.jsx)(t.code,{children:"0x530000000000000000000000000000000000000F"}),". It offers a ",(0,i.jsx)(t.code,{children:"getL1Fee"})," method to estimate the L1 data fee for the raw data of a given transaction."]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-javascript",children:"function getL1Fee(bytes memory _data) external view override returns (uint256);\n"})}),"\n",(0,i.jsxs)(t.admonition,{type:"tip",children:[(0,i.jsx)(t.p,{children:"Once the sequencer has processed a transaction, a user's L1 fee is secured, and any fluctuations will not impact what a user pays."}),(0,i.jsx)(t.p,{children:"Due to Morph's ~1s block time, any changes in L1 gas between a transaction's submission and its inclusion in a block should be minimal. The sequencer will account for any variations in L1 gas costs between a transaction's inclusion in a block and when the sequencer commits the data to L1."})]}),"\n",(0,i.jsx)(t.h4,{id:"estimating-the-total-fee",children:"Estimating the total fee"}),"\n",(0,i.jsx)(t.p,{children:"You can estimate the total fee by combining your estimates for the L2 execution fee and L1 data fee."}),"\n",(0,i.jsx)(t.h3,{id:"sending-max-eth",children:"Sending max ETH"}),"\n",(0,i.jsx)(t.p,{children:"Sending the maximum amount of ETH that a user has in their wallet is a relatively common use case."}),"\n",(0,i.jsx)(t.p,{children:"When doing this, you will need to subtract the estimated L2 execution fee and the estimated L1 data fee from the amount of ETH you want the user to send."}),"\n",(0,i.jsx)(t.p,{children:"Use the logic described above for estimating the total fee."}),"\n",(0,i.jsx)(t.h2,{id:"common-rpc-errors",children:"Common RPC Errors"}),"\n",(0,i.jsx)(t.h3,{id:"insufficient-funds",children:"Insufficient funds"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:["Error code: ",(0,i.jsx)(t.code,{children:"-32000"})]}),"\n",(0,i.jsxs)(t.li,{children:["Error message: ",(0,i.jsx)(t.code,{children:"invalid transaction: insufficient funds for l1Fee + l2Fee + value"})]}),"\n"]}),"\n",(0,i.jsx)(t.p,{children:"You'll get this error when attempting to send a transaction and you don't have enough ETH to pay for the value of the transaction, the L2 execution fee, and the L1 data fee.\nYou might get this error when attempting to send max ETH if you aren't properly accounting for both the L2 execution fee and the L1 data fee."}),"\n",(0,i.jsx)(t.h3,{id:"gas-price-too-low",children:"Gas price too low"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:["Error code: ",(0,i.jsx)(t.code,{children:"-32000"})]}),"\n",(0,i.jsxs)(t.li,{children:["Error message: ",(0,i.jsx)(t.code,{children:"gas price too low: X wei, use at least tx.gasPrice = Y wei"})]}),"\n"]}),"\n",(0,i.jsxs)(t.p,{children:["This is a custom RPC error that Morph returns when a transaction is rejected because the gas price is too low.\nSee the section on ",(0,i.jsx)(t.a,{href:"#responding-to-gas-price-updates",children:"Responding to gas price updates"})," for more information."]}),"\n",(0,i.jsx)(t.h3,{id:"gas-price-too-high",children:"Gas price too high"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:["Error code: ",(0,i.jsx)(t.code,{children:"-32000"})]}),"\n",(0,i.jsxs)(t.li,{children:["Error message: ",(0,i.jsx)(t.code,{children:"gas price too high: X wei, use at most tx.gasPrice = Y wei"})]}),"\n"]}),"\n",(0,i.jsxs)(t.p,{children:["This is a custom RPC error that Morph returns when a transaction is rejected because the gas price is too high.\nWe include this as a safety measure to prevent users from accidentally sending a transaction with an extremely high L2 gas price.\nSee the section on ",(0,i.jsx)(t.a,{href:"#responding-to-gas-price-updates",children:"Responding to gas price updates"})," for more information."]})]})}function h(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},2333:(e,t,n)=>{n.d(t,{R:()=>r,x:()=>a});var i=n(9474);const o={},s=i.createContext(o);function r(e){const t=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),i.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/fac53bf8.c12dd61e.js b/build/assets/js/fac53bf8.c12dd61e.js new file mode 100644 index 000000000..56a8339bd --- /dev/null +++ b/build/assets/js/fac53bf8.c12dd61e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[4305],{8802:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>s,metadata:()=>a,toc:()=>l});var i=n(6070),o=n(1582);const s={title:"Understand Transaction Cost on Morph",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},r=void 0,a={id:"build-on-morph/build-on-morph/understand-transaction-cost-on-morph",title:"Understand Transaction Cost on Morph",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/build-on-morph/build-on-morph/4-understand-transaction-cost-on-morph.md",sourceDirName:"build-on-morph/build-on-morph",slug:"/build-on-morph/build-on-morph/understand-transaction-cost-on-morph",permalink:"/docs/build-on-morph/build-on-morph/understand-transaction-cost-on-morph",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/build-on-morph/4-understand-transaction-cost-on-morph.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{title:"Understand Transaction Cost on Morph",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"Difference between Morph and Ethereum",permalink:"/docs/how-morph-works/general-protocol-design/difference-between-ethereum-and-morph"},next:{title:"Morph Integration One Page",permalink:"/docs/build-on-morph/build-on-morph/integration-one-page"}},c={},l=[{value:"The L2 execution fee",id:"the-l2-execution-fee",level:2},{value:"The L1 data fee",id:"the-l1-data-fee",level:2},{value:"Transaction fees' effect on software development",id:"transaction-fees-effect-on-software-development",level:2},{value:"Sending transactions",id:"sending-transactions",level:3},{value:"Displaying fees to users",id:"displaying-fees-to-users",level:3},{value:"Estimating the L2 execution fee",id:"estimating-the-l2-execution-fee",level:4},{value:"Estimating the L1 data fee",id:"estimating-the-l1-data-fee",level:4},{value:"Estimating the total fee",id:"estimating-the-total-fee",level:4},{value:"Sending max ETH",id:"sending-max-eth",level:3},{value:"Common RPC Errors",id:"common-rpc-errors",level:2},{value:"Insufficient funds",id:"insufficient-funds",level:3},{value:"Gas price too low",id:"gas-price-too-low",level:3},{value:"Gas price too high",id:"gas-price-too-high",level:3}];function d(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",h4:"h4",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,o.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.p,{children:"Transaction fees on Morph work similarly to fees on Ethereum. However, Layer 2 introduces some unique aspects. Morph's optimistic zkEVM makes these differences easy to understand and even easier to handle."}),"\n",(0,i.jsx)(t.p,{children:"This page includes the formula for calculating the gas cost of transactions on Morph.\nThere are two kinds of costs for transactions on Morph: the L2 execution fee and the L1 data/security fee."}),"\n",(0,i.jsx)(t.h2,{id:"the-l2-execution-fee",children:"The L2 execution fee"}),"\n",(0,i.jsx)(t.p,{children:"Like Ethereum, transactions on Morph incur gas costs for computation and storage usage."}),"\n",(0,i.jsxs)(t.p,{children:["Every L2 transaction will pay some ",(0,i.jsx)(t.strong,{children:"execution"})," fee, equal to the amount of gas used multiplied by the gas price of the transaction."]}),"\n",(0,i.jsx)(t.p,{children:"Morph supports EIP-1559 transaction type. The EIP-1559 pricing model, which comprises a base fee and a priority fee, contributes to a more predictable and stable transaction fee."}),"\n",(0,i.jsx)(t.p,{children:"The formula is straightforward:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{children:"l2_execution_fee = l2_gas_price * l2_gas_used\nl2_gas_price = l2_base_fee + l2_priority_fee\n"})}),"\n",(0,i.jsx)(t.p,{children:"The amount of L2 gas used depends on the specific transaction. Due to EVM compatibility, gas usage on Morph is typically similar to Ethereum."}),"\n",(0,i.jsx)(t.h2,{id:"the-l1-data-fee",children:"The L1 data fee"}),"\n",(0,i.jsx)(t.p,{children:"Morph transactions are also published to Ethereum, crucial to Morph\u2019s security as it ensures all data needed to verify Morph's state is always publicly available on Ethereum."}),"\n",(0,i.jsx)(t.p,{children:"Users must pay for the cost of submitting their transactions to Ethereum, known as the L1 data fee. This fee typically represents most of the total cost of a transaction on Morph."}),"\n",(0,i.jsx)(t.p,{children:"Formula:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{children:"l1DataFee = (l1BaseFee * commitScalar + l1BlobBaseFee * len(tx_data) * blobScalar) / rcfg.Precision\n"})}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{children:"len(tx_data) = count_zero_bytes(tx_data) * 4 + count_non_zero_bytes(tx_data) * 16\n"})}),"\n",(0,i.jsx)(t.p,{children:"And other parameters:"}),"\n",(0,i.jsxs)(t.ol,{children:["\n",(0,i.jsx)(t.li,{children:"l1BaseFee\uff1aLayer1 base fee"}),"\n",(0,i.jsx)(t.li,{children:"commitScalar: a factor used to measure the gas cost for data commitment"}),"\n",(0,i.jsx)(t.li,{children:"l1BlobBaseFee: the blobBaseFee on L1"}),"\n",(0,i.jsx)(t.li,{children:"blobScalar: a factor used to measure the gas cost for one transaction to be stored in EIP-4844 blob"}),"\n"]}),"\n",(0,i.jsx)(t.admonition,{type:"tip",children:(0,i.jsxs)(t.p,{children:["You can read the parameter values from the GasPrice oracle contract. Morph has pre-deployed ",(0,i.jsx)(t.code,{children:"GasPriceOracle"}),", accessible on Morph mainnet at ",(0,i.jsx)(t.a,{href:"https://explorer.morphl2.io/address/0x530000000000000000000000000000000000000f",children:"GasPriceOracle"}),"."]})}),"\n",(0,i.jsx)(t.h2,{id:"transaction-fees-effect-on-software-development",children:"Transaction fees' effect on software development"}),"\n",(0,i.jsx)(t.h3,{id:"sending-transactions",children:"Sending transactions"}),"\n",(0,i.jsx)(t.p,{children:"The process of sending a transaction on Morph is identical to sending a transaction on Ethereum."}),"\n",(0,i.jsx)(t.p,{children:"When sending a transaction, you should provide a gas price that is greater than or equal to the current L2 gas price."}),"\n",(0,i.jsxs)(t.p,{children:["Like on Ethereum, you can query this gas price with the ",(0,i.jsx)(t.code,{children:"eth_gasPrice"})," RPC method."]}),"\n",(0,i.jsxs)(t.p,{children:["Similarly, you should set your transaction gas limit in the same way that you would set it on Ethereum (e.g. via ",(0,i.jsx)(t.code,{children:"eth_estimateGas"}),")."]}),"\n",(0,i.jsx)(t.h3,{id:"displaying-fees-to-users",children:"Displaying fees to users"}),"\n",(0,i.jsx)(t.p,{children:"Many Ethereum applications display estimated fees to users by multiplying the gas price by the gas limit."}),"\n",(0,i.jsx)(t.p,{children:"However, as discussed earlier, users on Morph are charged both an L2 execution fee and an L1 data fee."}),"\n",(0,i.jsx)(t.p,{children:"As a result, you should display the sum of both of these fees to give users the most accurate estimate of the total cost of a transaction."}),"\n",(0,i.jsx)(t.h4,{id:"estimating-the-l2-execution-fee",children:"Estimating the L2 execution fee"}),"\n",(0,i.jsx)(t.p,{children:"You can estimate the L2 execution fee by multiplying the gas price by the gas used, just like on Ethereum."}),"\n",(0,i.jsx)(t.p,{children:"The formula is straightforward:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{children:"l2_execution_fee = l2_gas_price * l2_gas_used\nl2_gas_price = l2_base_fee + l2_priority_fee\n"})}),"\n",(0,i.jsx)(t.p,{children:"The amount of L2 gas used depends on the specific transaction. Due to EVM compatibility, gas usage on Morph is typically similar to Ethereum."}),"\n",(0,i.jsx)(t.h4,{id:"estimating-the-l1-data-fee",children:"Estimating the L1 data fee"}),"\n",(0,i.jsxs)(t.p,{children:["You can utilize the pre-deployed ",(0,i.jsx)(t.code,{children:"L1GasPriceOracle"})," at ",(0,i.jsx)(t.code,{children:"0x530000000000000000000000000000000000000f"}),". It offers a ",(0,i.jsx)(t.code,{children:"getL1Fee"})," method to estimate the L1 data fee for the raw data of a given transaction."]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-javascript",children:"function getL1Fee(bytes memory _data) external view override returns (uint256);\n"})}),"\n",(0,i.jsxs)(t.admonition,{type:"tip",children:[(0,i.jsx)(t.p,{children:"Once the sequencer has processed a transaction, a user's L1 fee is secured, and any fluctuations will not impact what a user pays."}),(0,i.jsx)(t.p,{children:"Due to Morph's ~1s block time, any changes in L1 gas between a transaction's submission and its inclusion in a block should be minimal. The sequencer will account for any variations in L1 gas costs between a transaction's inclusion in a block and when the sequencer commits the data to L1."})]}),"\n",(0,i.jsx)(t.h4,{id:"estimating-the-total-fee",children:"Estimating the total fee"}),"\n",(0,i.jsx)(t.p,{children:"You can estimate the total fee by combining your estimates for the L2 execution fee and L1 data fee."}),"\n",(0,i.jsx)(t.h3,{id:"sending-max-eth",children:"Sending max ETH"}),"\n",(0,i.jsx)(t.p,{children:"Sending the maximum amount of ETH that a user has in their wallet is a relatively common use case."}),"\n",(0,i.jsx)(t.p,{children:"When doing this, you will need to subtract the estimated L2 execution fee and the estimated L1 data fee from the amount of ETH you want the user to send."}),"\n",(0,i.jsx)(t.p,{children:"Use the logic described above for estimating the total fee."}),"\n",(0,i.jsx)(t.h2,{id:"common-rpc-errors",children:"Common RPC Errors"}),"\n",(0,i.jsx)(t.h3,{id:"insufficient-funds",children:"Insufficient funds"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:["Error code: ",(0,i.jsx)(t.code,{children:"-32000"})]}),"\n",(0,i.jsxs)(t.li,{children:["Error message: ",(0,i.jsx)(t.code,{children:"invalid transaction: insufficient funds for l1Fee + l2Fee + value"})]}),"\n"]}),"\n",(0,i.jsx)(t.p,{children:"You'll get this error when attempting to send a transaction and you don't have enough ETH to pay for the value of the transaction, the L2 execution fee, and the L1 data fee.\nYou might get this error when attempting to send max ETH if you aren't properly accounting for both the L2 execution fee and the L1 data fee."}),"\n",(0,i.jsx)(t.h3,{id:"gas-price-too-low",children:"Gas price too low"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:["Error code: ",(0,i.jsx)(t.code,{children:"-32000"})]}),"\n",(0,i.jsxs)(t.li,{children:["Error message: ",(0,i.jsx)(t.code,{children:"gas price too low: X wei, use at least tx.gasPrice = Y wei"})]}),"\n"]}),"\n",(0,i.jsxs)(t.p,{children:["This is a custom RPC error that Morph returns when a transaction is rejected because the gas price is too low.\nSee the section on ",(0,i.jsx)(t.a,{href:"#responding-to-gas-price-updates",children:"Responding to gas price updates"})," for more information."]}),"\n",(0,i.jsx)(t.h3,{id:"gas-price-too-high",children:"Gas price too high"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:["Error code: ",(0,i.jsx)(t.code,{children:"-32000"})]}),"\n",(0,i.jsxs)(t.li,{children:["Error message: ",(0,i.jsx)(t.code,{children:"gas price too high: X wei, use at most tx.gasPrice = Y wei"})]}),"\n"]}),"\n",(0,i.jsx)(t.p,{children:"This is a custom RPC error that Morph returns when a transaction is rejected because the gas price is too high.\nWe include this as a safety measure to prevent users from accidentally sending a transaction with an extremely high L2 gas price."}),"\n",(0,i.jsxs)(t.p,{children:["See the section on ",(0,i.jsx)(t.a,{href:"#responding-to-gas-price-updates",children:"Responding to gas price updates"})," for more information."]})]})}function h(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},1582:(e,t,n)=>{n.d(t,{R:()=>r,x:()=>a});var i=n(758);const o={},s=i.createContext(o);function r(e){const t=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),i.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/fb24aa13.9f926910.js b/build/assets/js/fb24aa13.b798cdeb.js similarity index 98% rename from build/assets/js/fb24aa13.9f926910.js rename to build/assets/js/fb24aa13.b798cdeb.js index 194f76d6a..7fff086a2 100644 --- a/build/assets/js/fb24aa13.9f926910.js +++ b/build/assets/js/fb24aa13.b798cdeb.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[5107],{9546:(e,s,r)=>{r.r(s),r.d(s,{assets:()=>c,contentTitle:()=>o,default:()=>a,frontMatter:()=>i,metadata:()=>l,toc:()=>h});var d=r(3274),n=r(2333);const i={},o="Class: StandardBridgeAdapter",l={id:"build-on-morph/sdk/classes/StandardBridgeAdapter",title:"StandardBridgeAdapter",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/classes/StandardBridgeAdapter.md",sourceDirName:"build-on-morph/sdk/classes",slug:"/build-on-morph/sdk/classes/StandardBridgeAdapter",permalink:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/classes/StandardBridgeAdapter.md",tags:[],version:"current",frontMatter:{}},c={},h=[{value:"Extended by",id:"extended-by",level:2},{value:"Implements",id:"implements",level:2},{value:"Constructors",id:"constructors",level:2},{value:"new StandardBridgeAdapter()",id:"new-standardbridgeadapter",level:3},{value:"Parameters",id:"parameters",level:4},{value:"Returns",id:"returns",level:4},{value:"Source",id:"source",level:4},{value:"Properties",id:"properties",level:2},{value:"estimateGas",id:"estimategas",level:3},{value:"approve()",id:"approve",level:4},{value:"Parameters",id:"parameters-1",level:5},{value:"Returns",id:"returns-1",level:5},{value:"deposit()",id:"deposit",level:4},{value:"Parameters",id:"parameters-2",level:5},{value:"Returns",id:"returns-2",level:5},{value:"withdraw()",id:"withdraw",level:4},{value:"Parameters",id:"parameters-3",level:5},{value:"Returns",id:"returns-3",level:5},{value:"Implementation of",id:"implementation-of",level:4},{value:"Source",id:"source-1",level:4},{value:"l1Bridge",id:"l1bridge",level:3},{value:"Implementation of",id:"implementation-of-1",level:4},{value:"Source",id:"source-2",level:4},{value:"l2Bridge",id:"l2bridge",level:3},{value:"Implementation of",id:"implementation-of-2",level:4},{value:"Source",id:"source-3",level:4},{value:"messenger",id:"messenger",level:3},{value:"Implementation of",id:"implementation-of-3",level:4},{value:"Source",id:"source-4",level:4},{value:"populateTransaction",id:"populatetransaction",level:3},{value:"approve()",id:"approve-1",level:4},{value:"Parameters",id:"parameters-4",level:5},{value:"Returns",id:"returns-4",level:5},{value:"deposit()",id:"deposit-1",level:4},{value:"Parameters",id:"parameters-5",level:5},{value:"Returns",id:"returns-5",level:5},{value:"withdraw()",id:"withdraw-1",level:4},{value:"Parameters",id:"parameters-6",level:5},{value:"Returns",id:"returns-6",level:5},{value:"Implementation of",id:"implementation-of-4",level:4},{value:"Source",id:"source-5",level:4},{value:"Methods",id:"methods",level:2},{value:"approval()",id:"approval",level:3},{value:"Parameters",id:"parameters-7",level:4},{value:"Returns",id:"returns-7",level:4},{value:"Implementation of",id:"implementation-of-5",level:4},{value:"Source",id:"source-6",level:4},{value:"approve()",id:"approve-2",level:3},{value:"Parameters",id:"parameters-8",level:4},{value:"Returns",id:"returns-8",level:4},{value:"Implementation of",id:"implementation-of-6",level:4},{value:"Source",id:"source-7",level:4},{value:"deposit()",id:"deposit-2",level:3},{value:"Parameters",id:"parameters-9",level:4},{value:"Returns",id:"returns-9",level:4},{value:"Implementation of",id:"implementation-of-7",level:4},{value:"Source",id:"source-8",level:4},{value:"getDepositsByAddress()",id:"getdepositsbyaddress",level:3},{value:"Parameters",id:"parameters-10",level:4},{value:"Returns",id:"returns-10",level:4},{value:"Implementation of",id:"implementation-of-8",level:4},{value:"Source",id:"source-9",level:4},{value:"getWithdrawalsByAddress()",id:"getwithdrawalsbyaddress",level:3},{value:"Parameters",id:"parameters-11",level:4},{value:"Returns",id:"returns-11",level:4},{value:"Implementation of",id:"implementation-of-9",level:4},{value:"Source",id:"source-10",level:4},{value:"supportsTokenPair()",id:"supportstokenpair",level:3},{value:"Parameters",id:"parameters-12",level:4},{value:"Returns",id:"returns-12",level:4},{value:"Implementation of",id:"implementation-of-10",level:4},{value:"Source",id:"source-11",level:4},{value:"withdraw()",id:"withdraw-2",level:3},{value:"Parameters",id:"parameters-13",level:4},{value:"Returns",id:"returns-13",level:4},{value:"Implementation of",id:"implementation-of-11",level:4},{value:"Source",id:"source-12",level:4}];function t(e){const s={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",hr:"hr",li:"li",p:"p",strong:"strong",ul:"ul",...(0,n.R)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,d.jsx)(s.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,d.jsx)(s.strong,{children:"Docs"})]}),"\n",(0,d.jsx)(s.hr,{}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / StandardBridgeAdapter"]}),"\n",(0,d.jsx)(s.h1,{id:"class-standardbridgeadapter",children:"Class: StandardBridgeAdapter"}),"\n",(0,d.jsx)(s.p,{children:"Bridge adapter for any token bridge that uses the standard token bridge interface."}),"\n",(0,d.jsx)(s.h2,{id:"extended-by",children:"Extended by"}),"\n",(0,d.jsxs)(s.ul,{children:["\n",(0,d.jsx)(s.li,{children:(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/ETHBridgeAdapter",children:(0,d.jsx)(s.code,{children:"ETHBridgeAdapter"})})}),"\n"]}),"\n",(0,d.jsx)(s.h2,{id:"implements",children:"Implements"}),"\n",(0,d.jsxs)(s.ul,{children:["\n",(0,d.jsx)(s.li,{children:(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter",children:(0,d.jsx)(s.code,{children:"IBridgeAdapter"})})}),"\n"]}),"\n",(0,d.jsx)(s.h2,{id:"constructors",children:"Constructors"}),"\n",(0,d.jsx)(s.h3,{id:"new-standardbridgeadapter",children:"new StandardBridgeAdapter()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"new StandardBridgeAdapter"}),"(",(0,d.jsx)(s.code,{children:"opts"}),"): ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter",children:(0,d.jsx)(s.code,{children:"StandardBridgeAdapter"})})]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"Creates a StandardBridgeAdapter instance."}),"\n",(0,d.jsx)(s.h4,{id:"parameters",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts"})]}),"\n",(0,d.jsx)(s.p,{children:"Options for the adapter."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts.l1Bridge"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"L1 bridge contract."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts.l2Bridge"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"L2 bridge contract."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts.messenger"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/CrossChainMessenger",children:(0,d.jsx)(s.code,{children:"CrossChainMessenger"})})]}),"\n",(0,d.jsx)(s.p,{children:"Provider used to make queries related to cross-chain interactions."}),"\n",(0,d.jsx)(s.h4,{id:"returns",children:"Returns"}),"\n",(0,d.jsx)(s.p,{children:(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter",children:(0,d.jsx)(s.code,{children:"StandardBridgeAdapter"})})}),"\n",(0,d.jsx)(s.h4,{id:"source",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/standard-bridge.ts:52"}),"\n",(0,d.jsx)(s.h2,{id:"properties",children:"Properties"}),"\n",(0,d.jsx)(s.h3,{id:"estimategas",children:"estimateGas"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"estimateGas"}),": ",(0,d.jsx)(s.code,{children:"object"})]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"Object that holds the functions that estimates the gas required for a given transaction.\nFollows the pattern used by ethers.js."}),"\n",(0,d.jsx)(s.h4,{id:"approve",children:"approve()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"approve"}),": (",(0,d.jsx)(s.code,{children:"l1Token"}),", ",(0,d.jsx)(s.code,{children:"l2Token"}),", ",(0,d.jsx)(s.code,{children:"amount"}),", ",(0,d.jsx)(s.code,{children:"opts"}),"?) => ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n"]}),"\n",(0,d.jsx)(s.h5,{id:"parameters-1",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l1Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l2Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"amount"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,d.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts?"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,d.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,d.jsx)(s.h5,{id:"returns-1",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,d.jsx)(s.h4,{id:"deposit",children:"deposit()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"deposit"}),": (",(0,d.jsx)(s.code,{children:"l1Token"}),", ",(0,d.jsx)(s.code,{children:"l2Token"}),", ",(0,d.jsx)(s.code,{children:"amount"}),", ",(0,d.jsx)(s.code,{children:"opts"}),"?) => ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n"]}),"\n",(0,d.jsx)(s.h5,{id:"parameters-2",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l1Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l2Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"amount"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,d.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts?"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,d.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,d.jsx)(s.h5,{id:"returns-2",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,d.jsx)(s.h4,{id:"withdraw",children:"withdraw()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"withdraw"}),": (",(0,d.jsx)(s.code,{children:"l1Token"}),", ",(0,d.jsx)(s.code,{children:"l2Token"}),", ",(0,d.jsx)(s.code,{children:"amount"}),", ",(0,d.jsx)(s.code,{children:"opts"}),"?) => ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n"]}),"\n",(0,d.jsx)(s.h5,{id:"parameters-3",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l1Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l2Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"amount"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,d.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts?"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,d.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,d.jsx)(s.h5,{id:"returns-3",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,d.jsx)(s.h4,{id:"implementation-of",children:"Implementation of"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter",children:(0,d.jsx)(s.code,{children:"IBridgeAdapter"})}),".",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter#estimategas",children:(0,d.jsx)(s.code,{children:"estimateGas"})})]}),"\n",(0,d.jsx)(s.h4,{id:"source-1",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/standard-bridge.ts:405"}),"\n",(0,d.jsx)(s.hr,{}),"\n",(0,d.jsx)(s.h3,{id:"l1bridge",children:"l1Bridge"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"l1Bridge"}),": ",(0,d.jsx)(s.code,{children:"Contract"})]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"L1 bridge contract."}),"\n",(0,d.jsx)(s.h4,{id:"implementation-of-1",children:"Implementation of"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter",children:(0,d.jsx)(s.code,{children:"IBridgeAdapter"})}),".",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter#l1bridge",children:(0,d.jsx)(s.code,{children:"l1Bridge"})})]}),"\n",(0,d.jsx)(s.h4,{id:"source-2",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/standard-bridge.ts:41"}),"\n",(0,d.jsx)(s.hr,{}),"\n",(0,d.jsx)(s.h3,{id:"l2bridge",children:"l2Bridge"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"l2Bridge"}),": ",(0,d.jsx)(s.code,{children:"Contract"})]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"L2 bridge contract."}),"\n",(0,d.jsx)(s.h4,{id:"implementation-of-2",children:"Implementation of"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter",children:(0,d.jsx)(s.code,{children:"IBridgeAdapter"})}),".",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter#l2bridge",children:(0,d.jsx)(s.code,{children:"l2Bridge"})})]}),"\n",(0,d.jsx)(s.h4,{id:"source-3",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/standard-bridge.ts:42"}),"\n",(0,d.jsx)(s.hr,{}),"\n",(0,d.jsx)(s.h3,{id:"messenger",children:"messenger"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"messenger"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/CrossChainMessenger",children:(0,d.jsx)(s.code,{children:"CrossChainMessenger"})})]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"Provider used to make queries related to cross-chain interactions."}),"\n",(0,d.jsx)(s.h4,{id:"implementation-of-3",children:"Implementation of"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter",children:(0,d.jsx)(s.code,{children:"IBridgeAdapter"})}),".",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter#messenger",children:(0,d.jsx)(s.code,{children:"messenger"})})]}),"\n",(0,d.jsx)(s.h4,{id:"source-4",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/standard-bridge.ts:40"}),"\n",(0,d.jsx)(s.hr,{}),"\n",(0,d.jsx)(s.h3,{id:"populatetransaction",children:"populateTransaction"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"populateTransaction"}),": ",(0,d.jsx)(s.code,{children:"object"})]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"Object that holds the functions that generate transactions to be signed by the user.\nFollows the pattern used by ethers.js."}),"\n",(0,d.jsx)(s.h4,{id:"approve-1",children:"approve()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"approve"}),": (",(0,d.jsx)(s.code,{children:"l1Token"}),", ",(0,d.jsx)(s.code,{children:"l2Token"}),", ",(0,d.jsx)(s.code,{children:"amount"}),", ",(0,d.jsx)(s.code,{children:"opts"}),"?) => ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n"]}),"\n",(0,d.jsx)(s.h5,{id:"parameters-4",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l1Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l2Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"amount"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,d.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts?"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,d.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,d.jsx)(s.h5,{id:"returns-4",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n",(0,d.jsx)(s.h4,{id:"deposit-1",children:"deposit()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"deposit"}),": (",(0,d.jsx)(s.code,{children:"l1Token"}),", ",(0,d.jsx)(s.code,{children:"l2Token"}),", ",(0,d.jsx)(s.code,{children:"amount"}),", ",(0,d.jsx)(s.code,{children:"opts"}),"?) => ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n"]}),"\n",(0,d.jsx)(s.h5,{id:"parameters-5",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l1Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l2Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"amount"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,d.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts?"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,d.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,d.jsx)(s.h5,{id:"returns-5",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n",(0,d.jsx)(s.h4,{id:"withdraw-1",children:"withdraw()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"withdraw"}),": (",(0,d.jsx)(s.code,{children:"l1Token"}),", ",(0,d.jsx)(s.code,{children:"l2Token"}),", ",(0,d.jsx)(s.code,{children:"amount"}),", ",(0,d.jsx)(s.code,{children:"opts"}),"?) => ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n"]}),"\n",(0,d.jsx)(s.h5,{id:"parameters-6",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l1Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l2Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"amount"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,d.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts?"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,d.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,d.jsx)(s.h5,{id:"returns-6",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n",(0,d.jsx)(s.h4,{id:"implementation-of-4",children:"Implementation of"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter",children:(0,d.jsx)(s.code,{children:"IBridgeAdapter"})}),".",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter#populatetransaction",children:(0,d.jsx)(s.code,{children:"populateTransaction"})})]}),"\n",(0,d.jsx)(s.h4,{id:"source-5",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/standard-bridge.ts:286"}),"\n",(0,d.jsx)(s.h2,{id:"methods",children:"Methods"}),"\n",(0,d.jsx)(s.h3,{id:"approval",children:"approval()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"approval"}),"(",(0,d.jsx)(s.code,{children:"l1Token"}),", ",(0,d.jsx)(s.code,{children:"l2Token"}),", ",(0,d.jsx)(s.code,{children:"opts"}),"): ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"Queries the account's approval amount for a given L1 token."}),"\n",(0,d.jsx)(s.h4,{id:"parameters-7",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l1Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"The L1 token address."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l2Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"The L2 token address."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,d.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,d.jsx)(s.p,{children:"Additional options."}),"\n",(0,d.jsx)(s.h4,{id:"returns-7",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,d.jsx)(s.p,{children:"Amount of tokens approved for deposits from the account."}),"\n",(0,d.jsx)(s.h4,{id:"implementation-of-5",children:"Implementation of"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter",children:(0,d.jsx)(s.code,{children:"IBridgeAdapter"})}),".",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter#approval",children:(0,d.jsx)(s.code,{children:"approval"})})]}),"\n",(0,d.jsx)(s.h4,{id:"source-6",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/standard-bridge.ts:209"}),"\n",(0,d.jsx)(s.hr,{}),"\n",(0,d.jsx)(s.h3,{id:"approve-2",children:"approve()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"approve"}),"(",(0,d.jsx)(s.code,{children:"l1Token"}),", ",(0,d.jsx)(s.code,{children:"l2Token"}),", ",(0,d.jsx)(s.code,{children:"amount"}),", ",(0,d.jsx)(s.code,{children:"signer"}),", ",(0,d.jsx)(s.code,{children:"opts"}),"?): ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"Approves a deposit into the L2 chain."}),"\n",(0,d.jsx)(s.h4,{id:"parameters-8",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l1Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"The L1 token address."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l2Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"The L2 token address."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"amount"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,d.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"Amount of the token to approve."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"signer"}),": ",(0,d.jsx)(s.code,{children:"Signer"})]}),"\n",(0,d.jsx)(s.p,{children:"Signer used to sign and send the transaction."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts?"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,d.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,d.jsx)(s.p,{children:"Additional options."}),"\n",(0,d.jsx)(s.h4,{id:"returns-8",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n",(0,d.jsx)(s.p,{children:"Transaction response for the approval transaction."}),"\n",(0,d.jsx)(s.h4,{id:"implementation-of-6",children:"Implementation of"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter",children:(0,d.jsx)(s.code,{children:"IBridgeAdapter"})}),".",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter#approve-2",children:(0,d.jsx)(s.code,{children:"approve"})})]}),"\n",(0,d.jsx)(s.h4,{id:"source-7",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/standard-bridge.ts:250"}),"\n",(0,d.jsx)(s.hr,{}),"\n",(0,d.jsx)(s.h3,{id:"deposit-2",children:"deposit()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"deposit"}),"(",(0,d.jsx)(s.code,{children:"l1Token"}),", ",(0,d.jsx)(s.code,{children:"l2Token"}),", ",(0,d.jsx)(s.code,{children:"amount"}),", ",(0,d.jsx)(s.code,{children:"signer"}),", ",(0,d.jsx)(s.code,{children:"opts"}),"?): ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"Deposits some tokens into the L2 chain."}),"\n",(0,d.jsx)(s.h4,{id:"parameters-9",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l1Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"The L1 token address."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l2Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"The L2 token address."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"amount"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,d.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"Amount of the token to deposit."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"signer"}),": ",(0,d.jsx)(s.code,{children:"Signer"})]}),"\n",(0,d.jsx)(s.p,{children:"Signer used to sign and send the transaction."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts?"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,d.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,d.jsx)(s.p,{children:"Additional options."}),"\n",(0,d.jsx)(s.h4,{id:"returns-9",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n",(0,d.jsx)(s.p,{children:"Transaction response for the deposit transaction."}),"\n",(0,d.jsx)(s.h4,{id:"implementation-of-7",children:"Implementation of"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter",children:(0,d.jsx)(s.code,{children:"IBridgeAdapter"})}),".",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter#deposit-2",children:(0,d.jsx)(s.code,{children:"deposit"})})]}),"\n",(0,d.jsx)(s.h4,{id:"source-8",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/standard-bridge.ts:262"}),"\n",(0,d.jsx)(s.hr,{}),"\n",(0,d.jsx)(s.h3,{id:"getdepositsbyaddress",children:"getDepositsByAddress()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"getDepositsByAddress"}),"(",(0,d.jsx)(s.code,{children:"address"}),", ",(0,d.jsx)(s.code,{children:"opts"}),"?): ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage",children:(0,d.jsx)(s.code,{children:"TokenBridgeMessage"})}),"[]>"]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"Gets all deposits for a given address."}),"\n",(0,d.jsx)(s.h4,{id:"parameters-10",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"address"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"Address to search for messages from."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts?"})]}),"\n",(0,d.jsx)(s.p,{children:"Options object."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts.fromBlock?"}),": ",(0,d.jsx)(s.code,{children:"BlockTag"})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts.toBlock?"}),": ",(0,d.jsx)(s.code,{children:"BlockTag"})]}),"\n",(0,d.jsx)(s.h4,{id:"returns-10",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage",children:(0,d.jsx)(s.code,{children:"TokenBridgeMessage"})}),"[]>"]}),"\n",(0,d.jsx)(s.p,{children:"All deposit token bridge messages sent by the given address."}),"\n",(0,d.jsx)(s.h4,{id:"implementation-of-8",children:"Implementation of"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter",children:(0,d.jsx)(s.code,{children:"IBridgeAdapter"})}),".",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter#getdepositsbyaddress",children:(0,d.jsx)(s.code,{children:"getDepositsByAddress"})})]}),"\n",(0,d.jsx)(s.h4,{id:"source-9",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/standard-bridge.ts:75"}),"\n",(0,d.jsx)(s.hr,{}),"\n",(0,d.jsx)(s.h3,{id:"getwithdrawalsbyaddress",children:"getWithdrawalsByAddress()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"getWithdrawalsByAddress"}),"(",(0,d.jsx)(s.code,{children:"address"}),", ",(0,d.jsx)(s.code,{children:"opts"}),"?): ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage",children:(0,d.jsx)(s.code,{children:"TokenBridgeMessage"})}),"[]>"]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"Gets all withdrawals for a given address."}),"\n",(0,d.jsx)(s.h4,{id:"parameters-11",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"address"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"Address to search for messages from."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts?"})]}),"\n",(0,d.jsx)(s.p,{children:"Options object."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts.fromBlock?"}),": ",(0,d.jsx)(s.code,{children:"BlockTag"})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts.toBlock?"}),": ",(0,d.jsx)(s.code,{children:"BlockTag"})]}),"\n",(0,d.jsx)(s.h4,{id:"returns-11",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage",children:(0,d.jsx)(s.code,{children:"TokenBridgeMessage"})}),"[]>"]}),"\n",(0,d.jsx)(s.p,{children:"All withdrawal token bridge messages sent by the given address."}),"\n",(0,d.jsx)(s.h4,{id:"implementation-of-9",children:"Implementation of"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter",children:(0,d.jsx)(s.code,{children:"IBridgeAdapter"})}),".",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter#getwithdrawalsbyaddress",children:(0,d.jsx)(s.code,{children:"getWithdrawalsByAddress"})})]}),"\n",(0,d.jsx)(s.h4,{id:"source-10",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/standard-bridge.ts:122"}),"\n",(0,d.jsx)(s.hr,{}),"\n",(0,d.jsx)(s.h3,{id:"supportstokenpair",children:"supportsTokenPair()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"supportsTokenPair"}),"(",(0,d.jsx)(s.code,{children:"l1Token"}),", ",(0,d.jsx)(s.code,{children:"l2Token"}),"): ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"boolean"}),">"]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"Checks whether the given token pair is supported by the bridge."}),"\n",(0,d.jsx)(s.h4,{id:"parameters-12",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l1Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"The L1 token address."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l2Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"The L2 token address."}),"\n",(0,d.jsx)(s.h4,{id:"returns-12",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"boolean"}),">"]}),"\n",(0,d.jsx)(s.p,{children:"Whether the given token pair is supported by the bridge."}),"\n",(0,d.jsx)(s.h4,{id:"implementation-of-10",children:"Implementation of"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter",children:(0,d.jsx)(s.code,{children:"IBridgeAdapter"})}),".",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter#supportstokenpair",children:(0,d.jsx)(s.code,{children:"supportsTokenPair"})})]}),"\n",(0,d.jsx)(s.h4,{id:"source-11",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/standard-bridge.ts:165"}),"\n",(0,d.jsx)(s.hr,{}),"\n",(0,d.jsx)(s.h3,{id:"withdraw-2",children:"withdraw()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"withdraw"}),"(",(0,d.jsx)(s.code,{children:"l1Token"}),", ",(0,d.jsx)(s.code,{children:"l2Token"}),", ",(0,d.jsx)(s.code,{children:"amount"}),", ",(0,d.jsx)(s.code,{children:"signer"}),", ",(0,d.jsx)(s.code,{children:"opts"}),"?): ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"Withdraws some tokens back to the L1 chain."}),"\n",(0,d.jsx)(s.h4,{id:"parameters-13",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l1Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"The L1 token address."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l2Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"The L2 token address."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"amount"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,d.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"Amount of the token to withdraw."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"signer"}),": ",(0,d.jsx)(s.code,{children:"Signer"})]}),"\n",(0,d.jsx)(s.p,{children:"Signer used to sign and send the transaction."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts?"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,d.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,d.jsx)(s.p,{children:"Additional options."}),"\n",(0,d.jsx)(s.h4,{id:"returns-13",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n",(0,d.jsx)(s.p,{children:"Transaction response for the withdraw transaction."}),"\n",(0,d.jsx)(s.h4,{id:"implementation-of-11",children:"Implementation of"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter",children:(0,d.jsx)(s.code,{children:"IBridgeAdapter"})}),".",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter#withdraw-2",children:(0,d.jsx)(s.code,{children:"withdraw"})})]}),"\n",(0,d.jsx)(s.h4,{id:"source-12",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/standard-bridge.ts:274"})]})}function a(e={}){const{wrapper:s}={...(0,n.R)(),...e.components};return s?(0,d.jsx)(s,{...e,children:(0,d.jsx)(t,{...e})}):t(e)}},2333:(e,s,r)=>{r.d(s,{R:()=>o,x:()=>l});var d=r(9474);const n={},i=d.createContext(n);function o(e){const s=d.useContext(i);return d.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function l(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:o(e.components),d.createElement(i.Provider,{value:s},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[5107],{3588:(e,s,r)=>{r.r(s),r.d(s,{assets:()=>c,contentTitle:()=>o,default:()=>a,frontMatter:()=>i,metadata:()=>l,toc:()=>h});var d=r(6070),n=r(1582);const i={},o="Class: StandardBridgeAdapter",l={id:"build-on-morph/sdk/classes/StandardBridgeAdapter",title:"StandardBridgeAdapter",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/classes/StandardBridgeAdapter.md",sourceDirName:"build-on-morph/sdk/classes",slug:"/build-on-morph/sdk/classes/StandardBridgeAdapter",permalink:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/classes/StandardBridgeAdapter.md",tags:[],version:"current",frontMatter:{}},c={},h=[{value:"Extended by",id:"extended-by",level:2},{value:"Implements",id:"implements",level:2},{value:"Constructors",id:"constructors",level:2},{value:"new StandardBridgeAdapter()",id:"new-standardbridgeadapter",level:3},{value:"Parameters",id:"parameters",level:4},{value:"Returns",id:"returns",level:4},{value:"Source",id:"source",level:4},{value:"Properties",id:"properties",level:2},{value:"estimateGas",id:"estimategas",level:3},{value:"approve()",id:"approve",level:4},{value:"Parameters",id:"parameters-1",level:5},{value:"Returns",id:"returns-1",level:5},{value:"deposit()",id:"deposit",level:4},{value:"Parameters",id:"parameters-2",level:5},{value:"Returns",id:"returns-2",level:5},{value:"withdraw()",id:"withdraw",level:4},{value:"Parameters",id:"parameters-3",level:5},{value:"Returns",id:"returns-3",level:5},{value:"Implementation of",id:"implementation-of",level:4},{value:"Source",id:"source-1",level:4},{value:"l1Bridge",id:"l1bridge",level:3},{value:"Implementation of",id:"implementation-of-1",level:4},{value:"Source",id:"source-2",level:4},{value:"l2Bridge",id:"l2bridge",level:3},{value:"Implementation of",id:"implementation-of-2",level:4},{value:"Source",id:"source-3",level:4},{value:"messenger",id:"messenger",level:3},{value:"Implementation of",id:"implementation-of-3",level:4},{value:"Source",id:"source-4",level:4},{value:"populateTransaction",id:"populatetransaction",level:3},{value:"approve()",id:"approve-1",level:4},{value:"Parameters",id:"parameters-4",level:5},{value:"Returns",id:"returns-4",level:5},{value:"deposit()",id:"deposit-1",level:4},{value:"Parameters",id:"parameters-5",level:5},{value:"Returns",id:"returns-5",level:5},{value:"withdraw()",id:"withdraw-1",level:4},{value:"Parameters",id:"parameters-6",level:5},{value:"Returns",id:"returns-6",level:5},{value:"Implementation of",id:"implementation-of-4",level:4},{value:"Source",id:"source-5",level:4},{value:"Methods",id:"methods",level:2},{value:"approval()",id:"approval",level:3},{value:"Parameters",id:"parameters-7",level:4},{value:"Returns",id:"returns-7",level:4},{value:"Implementation of",id:"implementation-of-5",level:4},{value:"Source",id:"source-6",level:4},{value:"approve()",id:"approve-2",level:3},{value:"Parameters",id:"parameters-8",level:4},{value:"Returns",id:"returns-8",level:4},{value:"Implementation of",id:"implementation-of-6",level:4},{value:"Source",id:"source-7",level:4},{value:"deposit()",id:"deposit-2",level:3},{value:"Parameters",id:"parameters-9",level:4},{value:"Returns",id:"returns-9",level:4},{value:"Implementation of",id:"implementation-of-7",level:4},{value:"Source",id:"source-8",level:4},{value:"getDepositsByAddress()",id:"getdepositsbyaddress",level:3},{value:"Parameters",id:"parameters-10",level:4},{value:"Returns",id:"returns-10",level:4},{value:"Implementation of",id:"implementation-of-8",level:4},{value:"Source",id:"source-9",level:4},{value:"getWithdrawalsByAddress()",id:"getwithdrawalsbyaddress",level:3},{value:"Parameters",id:"parameters-11",level:4},{value:"Returns",id:"returns-11",level:4},{value:"Implementation of",id:"implementation-of-9",level:4},{value:"Source",id:"source-10",level:4},{value:"supportsTokenPair()",id:"supportstokenpair",level:3},{value:"Parameters",id:"parameters-12",level:4},{value:"Returns",id:"returns-12",level:4},{value:"Implementation of",id:"implementation-of-10",level:4},{value:"Source",id:"source-11",level:4},{value:"withdraw()",id:"withdraw-2",level:3},{value:"Parameters",id:"parameters-13",level:4},{value:"Returns",id:"returns-13",level:4},{value:"Implementation of",id:"implementation-of-11",level:4},{value:"Source",id:"source-12",level:4}];function t(e){const s={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",hr:"hr",li:"li",p:"p",strong:"strong",ul:"ul",...(0,n.R)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,d.jsx)(s.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,d.jsx)(s.strong,{children:"Docs"})]}),"\n",(0,d.jsx)(s.hr,{}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / StandardBridgeAdapter"]}),"\n",(0,d.jsx)(s.h1,{id:"class-standardbridgeadapter",children:"Class: StandardBridgeAdapter"}),"\n",(0,d.jsx)(s.p,{children:"Bridge adapter for any token bridge that uses the standard token bridge interface."}),"\n",(0,d.jsx)(s.h2,{id:"extended-by",children:"Extended by"}),"\n",(0,d.jsxs)(s.ul,{children:["\n",(0,d.jsx)(s.li,{children:(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/ETHBridgeAdapter",children:(0,d.jsx)(s.code,{children:"ETHBridgeAdapter"})})}),"\n"]}),"\n",(0,d.jsx)(s.h2,{id:"implements",children:"Implements"}),"\n",(0,d.jsxs)(s.ul,{children:["\n",(0,d.jsx)(s.li,{children:(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter",children:(0,d.jsx)(s.code,{children:"IBridgeAdapter"})})}),"\n"]}),"\n",(0,d.jsx)(s.h2,{id:"constructors",children:"Constructors"}),"\n",(0,d.jsx)(s.h3,{id:"new-standardbridgeadapter",children:"new StandardBridgeAdapter()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"new StandardBridgeAdapter"}),"(",(0,d.jsx)(s.code,{children:"opts"}),"): ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter",children:(0,d.jsx)(s.code,{children:"StandardBridgeAdapter"})})]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"Creates a StandardBridgeAdapter instance."}),"\n",(0,d.jsx)(s.h4,{id:"parameters",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts"})]}),"\n",(0,d.jsx)(s.p,{children:"Options for the adapter."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts.l1Bridge"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"L1 bridge contract."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts.l2Bridge"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"L2 bridge contract."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts.messenger"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/CrossChainMessenger",children:(0,d.jsx)(s.code,{children:"CrossChainMessenger"})})]}),"\n",(0,d.jsx)(s.p,{children:"Provider used to make queries related to cross-chain interactions."}),"\n",(0,d.jsx)(s.h4,{id:"returns",children:"Returns"}),"\n",(0,d.jsx)(s.p,{children:(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter",children:(0,d.jsx)(s.code,{children:"StandardBridgeAdapter"})})}),"\n",(0,d.jsx)(s.h4,{id:"source",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/standard-bridge.ts:52"}),"\n",(0,d.jsx)(s.h2,{id:"properties",children:"Properties"}),"\n",(0,d.jsx)(s.h3,{id:"estimategas",children:"estimateGas"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"estimateGas"}),": ",(0,d.jsx)(s.code,{children:"object"})]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"Object that holds the functions that estimates the gas required for a given transaction.\nFollows the pattern used by ethers.js."}),"\n",(0,d.jsx)(s.h4,{id:"approve",children:"approve()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"approve"}),": (",(0,d.jsx)(s.code,{children:"l1Token"}),", ",(0,d.jsx)(s.code,{children:"l2Token"}),", ",(0,d.jsx)(s.code,{children:"amount"}),", ",(0,d.jsx)(s.code,{children:"opts"}),"?) => ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n"]}),"\n",(0,d.jsx)(s.h5,{id:"parameters-1",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l1Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l2Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"amount"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,d.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts?"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,d.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,d.jsx)(s.h5,{id:"returns-1",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,d.jsx)(s.h4,{id:"deposit",children:"deposit()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"deposit"}),": (",(0,d.jsx)(s.code,{children:"l1Token"}),", ",(0,d.jsx)(s.code,{children:"l2Token"}),", ",(0,d.jsx)(s.code,{children:"amount"}),", ",(0,d.jsx)(s.code,{children:"opts"}),"?) => ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n"]}),"\n",(0,d.jsx)(s.h5,{id:"parameters-2",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l1Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l2Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"amount"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,d.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts?"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,d.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,d.jsx)(s.h5,{id:"returns-2",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,d.jsx)(s.h4,{id:"withdraw",children:"withdraw()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"withdraw"}),": (",(0,d.jsx)(s.code,{children:"l1Token"}),", ",(0,d.jsx)(s.code,{children:"l2Token"}),", ",(0,d.jsx)(s.code,{children:"amount"}),", ",(0,d.jsx)(s.code,{children:"opts"}),"?) => ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n"]}),"\n",(0,d.jsx)(s.h5,{id:"parameters-3",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l1Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l2Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"amount"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,d.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts?"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,d.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,d.jsx)(s.h5,{id:"returns-3",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,d.jsx)(s.h4,{id:"implementation-of",children:"Implementation of"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter",children:(0,d.jsx)(s.code,{children:"IBridgeAdapter"})}),".",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter#estimategas",children:(0,d.jsx)(s.code,{children:"estimateGas"})})]}),"\n",(0,d.jsx)(s.h4,{id:"source-1",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/standard-bridge.ts:405"}),"\n",(0,d.jsx)(s.hr,{}),"\n",(0,d.jsx)(s.h3,{id:"l1bridge",children:"l1Bridge"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"l1Bridge"}),": ",(0,d.jsx)(s.code,{children:"Contract"})]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"L1 bridge contract."}),"\n",(0,d.jsx)(s.h4,{id:"implementation-of-1",children:"Implementation of"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter",children:(0,d.jsx)(s.code,{children:"IBridgeAdapter"})}),".",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter#l1bridge",children:(0,d.jsx)(s.code,{children:"l1Bridge"})})]}),"\n",(0,d.jsx)(s.h4,{id:"source-2",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/standard-bridge.ts:41"}),"\n",(0,d.jsx)(s.hr,{}),"\n",(0,d.jsx)(s.h3,{id:"l2bridge",children:"l2Bridge"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"l2Bridge"}),": ",(0,d.jsx)(s.code,{children:"Contract"})]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"L2 bridge contract."}),"\n",(0,d.jsx)(s.h4,{id:"implementation-of-2",children:"Implementation of"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter",children:(0,d.jsx)(s.code,{children:"IBridgeAdapter"})}),".",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter#l2bridge",children:(0,d.jsx)(s.code,{children:"l2Bridge"})})]}),"\n",(0,d.jsx)(s.h4,{id:"source-3",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/standard-bridge.ts:42"}),"\n",(0,d.jsx)(s.hr,{}),"\n",(0,d.jsx)(s.h3,{id:"messenger",children:"messenger"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"messenger"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/classes/CrossChainMessenger",children:(0,d.jsx)(s.code,{children:"CrossChainMessenger"})})]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"Provider used to make queries related to cross-chain interactions."}),"\n",(0,d.jsx)(s.h4,{id:"implementation-of-3",children:"Implementation of"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter",children:(0,d.jsx)(s.code,{children:"IBridgeAdapter"})}),".",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter#messenger",children:(0,d.jsx)(s.code,{children:"messenger"})})]}),"\n",(0,d.jsx)(s.h4,{id:"source-4",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/standard-bridge.ts:40"}),"\n",(0,d.jsx)(s.hr,{}),"\n",(0,d.jsx)(s.h3,{id:"populatetransaction",children:"populateTransaction"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"populateTransaction"}),": ",(0,d.jsx)(s.code,{children:"object"})]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"Object that holds the functions that generate transactions to be signed by the user.\nFollows the pattern used by ethers.js."}),"\n",(0,d.jsx)(s.h4,{id:"approve-1",children:"approve()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"approve"}),": (",(0,d.jsx)(s.code,{children:"l1Token"}),", ",(0,d.jsx)(s.code,{children:"l2Token"}),", ",(0,d.jsx)(s.code,{children:"amount"}),", ",(0,d.jsx)(s.code,{children:"opts"}),"?) => ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n"]}),"\n",(0,d.jsx)(s.h5,{id:"parameters-4",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l1Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l2Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"amount"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,d.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts?"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,d.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,d.jsx)(s.h5,{id:"returns-4",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n",(0,d.jsx)(s.h4,{id:"deposit-1",children:"deposit()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"deposit"}),": (",(0,d.jsx)(s.code,{children:"l1Token"}),", ",(0,d.jsx)(s.code,{children:"l2Token"}),", ",(0,d.jsx)(s.code,{children:"amount"}),", ",(0,d.jsx)(s.code,{children:"opts"}),"?) => ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n"]}),"\n",(0,d.jsx)(s.h5,{id:"parameters-5",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l1Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l2Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"amount"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,d.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts?"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,d.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,d.jsx)(s.h5,{id:"returns-5",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n",(0,d.jsx)(s.h4,{id:"withdraw-1",children:"withdraw()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"withdraw"}),": (",(0,d.jsx)(s.code,{children:"l1Token"}),", ",(0,d.jsx)(s.code,{children:"l2Token"}),", ",(0,d.jsx)(s.code,{children:"amount"}),", ",(0,d.jsx)(s.code,{children:"opts"}),"?) => ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n"]}),"\n",(0,d.jsx)(s.h5,{id:"parameters-6",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l1Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l2Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"amount"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,d.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts?"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,d.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,d.jsx)(s.h5,{id:"returns-6",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"TransactionRequest"}),">"]}),"\n",(0,d.jsx)(s.h4,{id:"implementation-of-4",children:"Implementation of"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter",children:(0,d.jsx)(s.code,{children:"IBridgeAdapter"})}),".",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter#populatetransaction",children:(0,d.jsx)(s.code,{children:"populateTransaction"})})]}),"\n",(0,d.jsx)(s.h4,{id:"source-5",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/standard-bridge.ts:286"}),"\n",(0,d.jsx)(s.h2,{id:"methods",children:"Methods"}),"\n",(0,d.jsx)(s.h3,{id:"approval",children:"approval()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"approval"}),"(",(0,d.jsx)(s.code,{children:"l1Token"}),", ",(0,d.jsx)(s.code,{children:"l2Token"}),", ",(0,d.jsx)(s.code,{children:"opts"}),"): ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"Queries the account's approval amount for a given L1 token."}),"\n",(0,d.jsx)(s.h4,{id:"parameters-7",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l1Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"The L1 token address."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l2Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"The L2 token address."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,d.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,d.jsx)(s.p,{children:"Additional options."}),"\n",(0,d.jsx)(s.h4,{id:"returns-7",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"BigNumber"}),">"]}),"\n",(0,d.jsx)(s.p,{children:"Amount of tokens approved for deposits from the account."}),"\n",(0,d.jsx)(s.h4,{id:"implementation-of-5",children:"Implementation of"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter",children:(0,d.jsx)(s.code,{children:"IBridgeAdapter"})}),".",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter#approval",children:(0,d.jsx)(s.code,{children:"approval"})})]}),"\n",(0,d.jsx)(s.h4,{id:"source-6",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/standard-bridge.ts:209"}),"\n",(0,d.jsx)(s.hr,{}),"\n",(0,d.jsx)(s.h3,{id:"approve-2",children:"approve()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"approve"}),"(",(0,d.jsx)(s.code,{children:"l1Token"}),", ",(0,d.jsx)(s.code,{children:"l2Token"}),", ",(0,d.jsx)(s.code,{children:"amount"}),", ",(0,d.jsx)(s.code,{children:"signer"}),", ",(0,d.jsx)(s.code,{children:"opts"}),"?): ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"Approves a deposit into the L2 chain."}),"\n",(0,d.jsx)(s.h4,{id:"parameters-8",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l1Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"The L1 token address."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l2Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"The L2 token address."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"amount"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,d.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"Amount of the token to approve."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"signer"}),": ",(0,d.jsx)(s.code,{children:"Signer"})]}),"\n",(0,d.jsx)(s.p,{children:"Signer used to sign and send the transaction."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts?"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,d.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,d.jsx)(s.p,{children:"Additional options."}),"\n",(0,d.jsx)(s.h4,{id:"returns-8",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n",(0,d.jsx)(s.p,{children:"Transaction response for the approval transaction."}),"\n",(0,d.jsx)(s.h4,{id:"implementation-of-6",children:"Implementation of"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter",children:(0,d.jsx)(s.code,{children:"IBridgeAdapter"})}),".",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter#approve-2",children:(0,d.jsx)(s.code,{children:"approve"})})]}),"\n",(0,d.jsx)(s.h4,{id:"source-7",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/standard-bridge.ts:250"}),"\n",(0,d.jsx)(s.hr,{}),"\n",(0,d.jsx)(s.h3,{id:"deposit-2",children:"deposit()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"deposit"}),"(",(0,d.jsx)(s.code,{children:"l1Token"}),", ",(0,d.jsx)(s.code,{children:"l2Token"}),", ",(0,d.jsx)(s.code,{children:"amount"}),", ",(0,d.jsx)(s.code,{children:"signer"}),", ",(0,d.jsx)(s.code,{children:"opts"}),"?): ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"Deposits some tokens into the L2 chain."}),"\n",(0,d.jsx)(s.h4,{id:"parameters-9",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l1Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"The L1 token address."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l2Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"The L2 token address."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"amount"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,d.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"Amount of the token to deposit."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"signer"}),": ",(0,d.jsx)(s.code,{children:"Signer"})]}),"\n",(0,d.jsx)(s.p,{children:"Signer used to sign and send the transaction."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts?"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,d.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,d.jsx)(s.p,{children:"Additional options."}),"\n",(0,d.jsx)(s.h4,{id:"returns-9",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n",(0,d.jsx)(s.p,{children:"Transaction response for the deposit transaction."}),"\n",(0,d.jsx)(s.h4,{id:"implementation-of-7",children:"Implementation of"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter",children:(0,d.jsx)(s.code,{children:"IBridgeAdapter"})}),".",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter#deposit-2",children:(0,d.jsx)(s.code,{children:"deposit"})})]}),"\n",(0,d.jsx)(s.h4,{id:"source-8",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/standard-bridge.ts:262"}),"\n",(0,d.jsx)(s.hr,{}),"\n",(0,d.jsx)(s.h3,{id:"getdepositsbyaddress",children:"getDepositsByAddress()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"getDepositsByAddress"}),"(",(0,d.jsx)(s.code,{children:"address"}),", ",(0,d.jsx)(s.code,{children:"opts"}),"?): ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage",children:(0,d.jsx)(s.code,{children:"TokenBridgeMessage"})}),"[]>"]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"Gets all deposits for a given address."}),"\n",(0,d.jsx)(s.h4,{id:"parameters-10",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"address"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"Address to search for messages from."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts?"})]}),"\n",(0,d.jsx)(s.p,{children:"Options object."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts.fromBlock?"}),": ",(0,d.jsx)(s.code,{children:"BlockTag"})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts.toBlock?"}),": ",(0,d.jsx)(s.code,{children:"BlockTag"})]}),"\n",(0,d.jsx)(s.h4,{id:"returns-10",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage",children:(0,d.jsx)(s.code,{children:"TokenBridgeMessage"})}),"[]>"]}),"\n",(0,d.jsx)(s.p,{children:"All deposit token bridge messages sent by the given address."}),"\n",(0,d.jsx)(s.h4,{id:"implementation-of-8",children:"Implementation of"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter",children:(0,d.jsx)(s.code,{children:"IBridgeAdapter"})}),".",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter#getdepositsbyaddress",children:(0,d.jsx)(s.code,{children:"getDepositsByAddress"})})]}),"\n",(0,d.jsx)(s.h4,{id:"source-9",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/standard-bridge.ts:75"}),"\n",(0,d.jsx)(s.hr,{}),"\n",(0,d.jsx)(s.h3,{id:"getwithdrawalsbyaddress",children:"getWithdrawalsByAddress()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"getWithdrawalsByAddress"}),"(",(0,d.jsx)(s.code,{children:"address"}),", ",(0,d.jsx)(s.code,{children:"opts"}),"?): ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage",children:(0,d.jsx)(s.code,{children:"TokenBridgeMessage"})}),"[]>"]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"Gets all withdrawals for a given address."}),"\n",(0,d.jsx)(s.h4,{id:"parameters-11",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"address"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"Address to search for messages from."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts?"})]}),"\n",(0,d.jsx)(s.p,{children:"Options object."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts.fromBlock?"}),": ",(0,d.jsx)(s.code,{children:"BlockTag"})]}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts.toBlock?"}),": ",(0,d.jsx)(s.code,{children:"BlockTag"})]}),"\n",(0,d.jsx)(s.h4,{id:"returns-11",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage",children:(0,d.jsx)(s.code,{children:"TokenBridgeMessage"})}),"[]>"]}),"\n",(0,d.jsx)(s.p,{children:"All withdrawal token bridge messages sent by the given address."}),"\n",(0,d.jsx)(s.h4,{id:"implementation-of-9",children:"Implementation of"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter",children:(0,d.jsx)(s.code,{children:"IBridgeAdapter"})}),".",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter#getwithdrawalsbyaddress",children:(0,d.jsx)(s.code,{children:"getWithdrawalsByAddress"})})]}),"\n",(0,d.jsx)(s.h4,{id:"source-10",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/standard-bridge.ts:122"}),"\n",(0,d.jsx)(s.hr,{}),"\n",(0,d.jsx)(s.h3,{id:"supportstokenpair",children:"supportsTokenPair()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"supportsTokenPair"}),"(",(0,d.jsx)(s.code,{children:"l1Token"}),", ",(0,d.jsx)(s.code,{children:"l2Token"}),"): ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"boolean"}),">"]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"Checks whether the given token pair is supported by the bridge."}),"\n",(0,d.jsx)(s.h4,{id:"parameters-12",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l1Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"The L1 token address."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l2Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"The L2 token address."}),"\n",(0,d.jsx)(s.h4,{id:"returns-12",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"boolean"}),">"]}),"\n",(0,d.jsx)(s.p,{children:"Whether the given token pair is supported by the bridge."}),"\n",(0,d.jsx)(s.h4,{id:"implementation-of-10",children:"Implementation of"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter",children:(0,d.jsx)(s.code,{children:"IBridgeAdapter"})}),".",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter#supportstokenpair",children:(0,d.jsx)(s.code,{children:"supportsTokenPair"})})]}),"\n",(0,d.jsx)(s.h4,{id:"source-11",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/standard-bridge.ts:165"}),"\n",(0,d.jsx)(s.hr,{}),"\n",(0,d.jsx)(s.h3,{id:"withdraw-2",children:"withdraw()"}),"\n",(0,d.jsxs)(s.blockquote,{children:["\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.strong,{children:"withdraw"}),"(",(0,d.jsx)(s.code,{children:"l1Token"}),", ",(0,d.jsx)(s.code,{children:"l2Token"}),", ",(0,d.jsx)(s.code,{children:"amount"}),", ",(0,d.jsx)(s.code,{children:"signer"}),", ",(0,d.jsx)(s.code,{children:"opts"}),"?): ",(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n"]}),"\n",(0,d.jsx)(s.p,{children:"Withdraws some tokens back to the L1 chain."}),"\n",(0,d.jsx)(s.h4,{id:"parameters-13",children:"Parameters"}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l1Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"The L1 token address."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"l2Token"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/AddressLike",children:(0,d.jsx)(s.code,{children:"AddressLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"The L2 token address."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"amount"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/type-aliases/NumberLike",children:(0,d.jsx)(s.code,{children:"NumberLike"})})]}),"\n",(0,d.jsx)(s.p,{children:"Amount of the token to withdraw."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"signer"}),": ",(0,d.jsx)(s.code,{children:"Signer"})]}),"\n",(0,d.jsx)(s.p,{children:"Signer used to sign and send the transaction."}),"\n",(0,d.jsxs)(s.p,{children:["\u2022 ",(0,d.jsx)(s.strong,{children:"opts?"}),": ",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IActionOptions",children:(0,d.jsx)(s.code,{children:"IActionOptions"})})]}),"\n",(0,d.jsx)(s.p,{children:"Additional options."}),"\n",(0,d.jsx)(s.h4,{id:"returns-13",children:"Returns"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.code,{children:"Promise"}),"<",(0,d.jsx)(s.code,{children:"TransactionResponse"}),">"]}),"\n",(0,d.jsx)(s.p,{children:"Transaction response for the withdraw transaction."}),"\n",(0,d.jsx)(s.h4,{id:"implementation-of-11",children:"Implementation of"}),"\n",(0,d.jsxs)(s.p,{children:[(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter",children:(0,d.jsx)(s.code,{children:"IBridgeAdapter"})}),".",(0,d.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter#withdraw-2",children:(0,d.jsx)(s.code,{children:"withdraw"})})]}),"\n",(0,d.jsx)(s.h4,{id:"source-12",children:"Source"}),"\n",(0,d.jsx)(s.p,{children:"src/adapters/standard-bridge.ts:274"})]})}function a(e={}){const{wrapper:s}={...(0,n.R)(),...e.components};return s?(0,d.jsx)(s,{...e,children:(0,d.jsx)(t,{...e})}):t(e)}},1582:(e,s,r)=>{r.d(s,{R:()=>o,x:()=>l});var d=r(758);const n={},i=d.createContext(n);function o(e){const s=d.useContext(i);return d.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function l(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:o(e.components),d.createElement(i.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/fb26d209.c8fccdcf.js b/build/assets/js/fb26d209.c8fccdcf.js deleted file mode 100644 index 5e5ea8e8e..000000000 --- a/build/assets/js/fb26d209.c8fccdcf.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[7e3],{3647:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>a,frontMatter:()=>s,metadata:()=>h,toc:()=>d});var r=o(3274),t=o(2333);const s={title:"How to Run a Morph Node",lang:"en-US"},i=void 0,h={id:"build-on-morph/developer-resources/how-to-run-a-morph-node",title:"How to Run a Morph Node",description:"Run a Morph Full Node",source:"@site/docs/build-on-morph/developer-resources/2-how-to-run-a-morph-node.md",sourceDirName:"build-on-morph/developer-resources",slug:"/build-on-morph/developer-resources/how-to-run-a-morph-node",permalink:"/docs/build-on-morph/developer-resources/how-to-run-a-morph-node",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/developer-resources/2-how-to-run-a-morph-node.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{title:"How to Run a Morph Node",lang:"en-US"}},c={},d=[{value:"Run a Morph Full Node",id:"run-a-morph-full-node",level:2},{value:"Hardware requirements",id:"hardware-requirements",level:3},{value:"Build executable binary",id:"build-executable-binary",level:3},{value:"Clone morph",id:"clone-morph",level:4},{value:"Build Geth",id:"build-geth",level:4},{value:"Build Node",id:"build-node",level:4},{value:"Sync from genesis block",id:"sync-from-genesis-block",level:3},{value:"Config Preparation",id:"config-preparation",level:4},{value:"Script to start the process",id:"script-to-start-the-process",level:4},{value:"Check sync status",id:"check-sync-status",level:3}];function l(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h2:"h2",h3:"h3",h4:"h4",li:"li",p:"p",pre:"pre",ul:"ul",...(0,t.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h2,{id:"run-a-morph-full-node",children:"Run a Morph Full Node"}),"\n",(0,r.jsxs)(n.p,{children:["This guide outlines the steps to start a Morph node. The example assumes the home directory is ",(0,r.jsx)(n.code,{children:"~/.morph"})]}),"\n",(0,r.jsx)(n.h3,{id:"hardware-requirements",children:"Hardware requirements"}),"\n",(0,r.jsxs)(n.p,{children:["Running the morph node requires 2 processes:",(0,r.jsx)(n.code,{children:"geth"})," and ",(0,r.jsx)(n.code,{children:"node"}),"."]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"Geth"}),":the"," Morph execution layer which needs to meet the ",(0,r.jsx)(n.a,{href:"https://github.com/ethereum/go-ethereum#hardware-requirements",children:"go-ethereum hardware requirements"}),", but with less storage, 500GB is enough so far."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"Node"}),":the"," Morph consensus layer embedded tendermint which needs to meet the ",(0,r.jsx)(n.a,{href:"https://docs.tendermint.com/v0.34/tendermint-core/running-in-production.html#processor-and-memory",children:"tendermint hardware requirements"}),"."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.admonition,{type:"tip",children:(0,r.jsx)(n.p,{children:"Due to limitations in the current geth implementation, only archive mode is supported, meaning the storage size will continually increase with produced blocks."})}),"\n",(0,r.jsx)(n.h3,{id:"build-executable-binary",children:"Build executable binary"}),"\n",(0,r.jsx)(n.h4,{id:"clone-morph",children:"Clone morph"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"mkdir -p ~/.morph \ncd ~/.morph\ngit clone https://github.com/morph-l2/morph.git\n"})}),"\n",(0,r.jsx)(n.p,{children:"Currently, we use tag v0.2.0-beta as our beta version."}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"cd morph\ngit checkout v0.2.0-beta\n"})}),"\n",(0,r.jsx)(n.h4,{id:"build-geth",children:"Build Geth"}),"\n",(0,r.jsx)(n.p,{children:"Notice: You need C compiler to build geth"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"make nccc_geth\n"})}),"\n",(0,r.jsx)(n.h4,{id:"build-node",children:"Build Node"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"cd ~/.morph/morph/node \nmake build\n"})}),"\n",(0,r.jsx)(n.h3,{id:"sync-from-genesis-block",children:"Sync from genesis block"}),"\n",(0,r.jsx)(n.h4,{id:"config-preparation",children:"Config Preparation"}),"\n",(0,r.jsx)(n.p,{children:"Download the config files and make data dir"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"cd ~/.morph\nwget https://raw.githubusercontent.com/morph-l2/config-template/main/holesky/data.zip\nunzip data.zip\n"})}),"\n",(0,r.jsx)(n.p,{children:"Create a shared secret with node"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"cd ~/.morph\nopenssl rand -hex 32 > jwt-secret.txt\n"})}),"\n",(0,r.jsx)(n.h4,{id:"script-to-start-the-process",children:"Script to start the process"}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.em,{children:"Geth"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:'./morph/go-ethereum/build/bin/geth --morph-holesky \\\n --datadir "./geth-data" \\\n --http --http.api=web3,debug,eth,txpool,net,engine \\\n --authrpc.addr localhost \\\n --authrpc.vhosts="localhost" \\\n --authrpc.port 8551 \\\n --authrpc.jwtsecret=./jwt-secret.txt \\\n --miner.gasprice="100000000" \\\n --log.filename=./geth.log\n'})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.em,{children:"tail -f geth.log"})," to check if the Geth is running properly, or you can also exeucte the below curl command to check if you are connected to the peer."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:'curl -X POST -H \'Content-Type: application/json\' --data \n\'{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":74}\' \nlocalhost:8545\n\n{"jsonrpc":"2.0","id":74,"result":"0x3"}\n'})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.em,{children:"Node"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"./morph/node/build/bin/morphnode --home ./node-data \\\n --l2.jwt-secret ./jwt-secret.txt \\\n --l2.eth http://localhost:8545 \\\n --l2.engine http://localhost:8551 \\\n --log.filename ./node.log\n"})}),"\n",(0,r.jsx)(n.p,{children:"tail -f node.log to check if the node is running properly, and you can also execute the command curl to check your node connection status."}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:'curl http://localhost:26657/net_info\n\n{\n "jsonrpc": "2.0",\n "id": -1,\n "result": {\n "listening": true,\n "listeners": [\n "Listener(@)"\n ],\n "n_peers": "3",\n "peers": [\n {\n "node_info": {\n "protocol_version": {\n "p2p": "8",\n "block": "11",\n "app": "0"\n },\n "id": "0fb5ce425197a462a66de015ee5fbbf103835b8a",\n "listen_addr": "tcp://0.0.0.0:26656",\n "network": "chain-morph-holesky",\n "version": "0.37.0-alpha.1",\n "channels": "4020212223386061",\n "moniker": "morph-dataseed-node-1",\n "other": {\n "tx_index": "on",\n "rpc_address": "tcp://0.0.0.0:26657"\n }\n },\n "is_outbound": true,\n'})}),"\n",(0,r.jsx)(n.h3,{id:"check-sync-status",children:"Check sync status"}),"\n",(0,r.jsxs)(n.p,{children:["curl ",(0,r.jsx)(n.a,{href:"http://localhost:26657/status",children:"http://localhost:26657/status"})," to check the sync status of the node"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:'{\n "jsonrpc": "2.0",\n "id": -1,\n "result": {\n "node_info": {\n "protocol_version": {\n "p2p": "8",\n "block": "11",\n "app": "0"\n },\n "id": "b3f34dc2ce9c4fee5449426992941aee1e09670f",\n "listen_addr": "tcp://0.0.0.0:26656",\n "network": "chain-morph-holesky",\n "version": "0.37.0-alpha.1",\n "channels": "4020212223386061",\n "moniker": "my-morph-node",\n "other": {\n "tx_index": "on",\n "rpc_address": "tcp://0.0.0.0:26657"\n }\n },\n "sync_info": {\n "latest_block_hash": "71024385DDBEB7B554DB11FD2AE097ECBD99B2AF826C11B2A74F7172F2DEE5D2",\n "latest_app_hash": "",\n "latest_block_height": "2992",\n "latest_block_time": "2024-04-25T13:48:27.647889852Z",\n "earliest_block_hash": "C7A73D3907C6CA34B9DFA043FC6D4529A8EAEC8F059E100055653E46E63F6F8E",\n "earliest_app_hash": "",\n "earliest_block_height": "1",\n "earliest_block_time": "2024-04-25T09:06:30Z",\n "catching_up": false\n },\n "validator_info": {\n "address": "5FB3D3734640792F14B70E7A53FBBD39DB9787A8",\n "pub_key": {\n "type": "tendermint/PubKeyEd25519",\n "value": "rzN67ZJWsaLSGGpNj7HOWs8nrL5kr1n+w0OckWUCetw="\n },\n "voting_power": "0"\n }\n }\n}\n'})}),"\n",(0,r.jsx)(n.p,{children:'The returned "catching_up" indicates whether the node is in sync or not. True means it is in sync. Meanwhile, the returned latest_block_height indicates the latest block height this node synced.'})]})}function a(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}},2333:(e,n,o)=>{o.d(n,{R:()=>i,x:()=>h});var r=o(9474);const t={},s=r.createContext(t);function i(e){const n=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function h(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),r.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/fb26d209.f7a1412e.js b/build/assets/js/fb26d209.f7a1412e.js new file mode 100644 index 000000000..67af579e1 --- /dev/null +++ b/build/assets/js/fb26d209.f7a1412e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[7e3],{8989:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>a,frontMatter:()=>s,metadata:()=>h,toc:()=>d});var r=o(6070),t=o(1582);const s={title:"How to Run a Morph Node",lang:"en-US"},i=void 0,h={id:"build-on-morph/developer-resources/how-to-run-a-morph-node",title:"How to Run a Morph Node",description:"Run a Morph Full Node",source:"@site/docs/build-on-morph/developer-resources/2-how-to-run-a-morph-node.md",sourceDirName:"build-on-morph/developer-resources",slug:"/build-on-morph/developer-resources/how-to-run-a-morph-node",permalink:"/docs/build-on-morph/developer-resources/how-to-run-a-morph-node",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/developer-resources/2-how-to-run-a-morph-node.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{title:"How to Run a Morph Node",lang:"en-US"}},c={},d=[{value:"Run a Morph Full Node",id:"run-a-morph-full-node",level:2},{value:"Hardware requirements",id:"hardware-requirements",level:3},{value:"Build executable binary",id:"build-executable-binary",level:3},{value:"Clone morph",id:"clone-morph",level:4},{value:"Build Geth",id:"build-geth",level:4},{value:"Build Node",id:"build-node",level:4},{value:"Sync from genesis block",id:"sync-from-genesis-block",level:3},{value:"Config Preparation",id:"config-preparation",level:4},{value:"Script to start the process",id:"script-to-start-the-process",level:4},{value:"Check sync status",id:"check-sync-status",level:3}];function l(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h2:"h2",h3:"h3",h4:"h4",li:"li",p:"p",pre:"pre",ul:"ul",...(0,t.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h2,{id:"run-a-morph-full-node",children:"Run a Morph Full Node"}),"\n",(0,r.jsxs)(n.p,{children:["This guide outlines the steps to start a Morph node. The example assumes the home directory is ",(0,r.jsx)(n.code,{children:"~/.morph"})]}),"\n",(0,r.jsx)(n.h3,{id:"hardware-requirements",children:"Hardware requirements"}),"\n",(0,r.jsxs)(n.p,{children:["Running the morph node requires 2 processes:",(0,r.jsx)(n.code,{children:"geth"})," and ",(0,r.jsx)(n.code,{children:"node"}),"."]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"Geth"}),":the"," Morph execution layer which needs to meet the ",(0,r.jsx)(n.a,{href:"https://github.com/ethereum/go-ethereum#hardware-requirements",children:"go-ethereum hardware requirements"}),", but with less storage, 500GB is enough so far."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"Node"}),":the"," Morph consensus layer embedded tendermint which needs to meet the ",(0,r.jsx)(n.a,{href:"https://docs.tendermint.com/v0.34/tendermint-core/running-in-production.html#processor-and-memory",children:"tendermint hardware requirements"}),"."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.admonition,{type:"tip",children:(0,r.jsx)(n.p,{children:"Due to limitations in the current geth implementation, only archive mode is supported, meaning the storage size will continually increase with produced blocks."})}),"\n",(0,r.jsx)(n.h3,{id:"build-executable-binary",children:"Build executable binary"}),"\n",(0,r.jsx)(n.h4,{id:"clone-morph",children:"Clone morph"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"mkdir -p ~/.morph \ncd ~/.morph\ngit clone https://github.com/morph-l2/morph.git\n"})}),"\n",(0,r.jsx)(n.p,{children:"Currently, we use tag v0.2.0-beta as our beta version."}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"cd morph\ngit checkout v0.2.0-beta\n"})}),"\n",(0,r.jsx)(n.h4,{id:"build-geth",children:"Build Geth"}),"\n",(0,r.jsx)(n.p,{children:"Notice: You need C compiler to build geth"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"make nccc_geth\n"})}),"\n",(0,r.jsx)(n.h4,{id:"build-node",children:"Build Node"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"cd ~/.morph/morph/node \nmake build\n"})}),"\n",(0,r.jsx)(n.h3,{id:"sync-from-genesis-block",children:"Sync from genesis block"}),"\n",(0,r.jsx)(n.h4,{id:"config-preparation",children:"Config Preparation"}),"\n",(0,r.jsx)(n.p,{children:"Download the config files and make data dir"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"cd ~/.morph\nwget https://raw.githubusercontent.com/morph-l2/run-morph-node/main/holesky/data.zip\nunzip data.zip\n"})}),"\n",(0,r.jsx)(n.p,{children:"Create a shared secret with node"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"cd ~/.morph\nopenssl rand -hex 32 > jwt-secret.txt\n"})}),"\n",(0,r.jsx)(n.h4,{id:"script-to-start-the-process",children:"Script to start the process"}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.em,{children:"Geth"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:'./morph/go-ethereum/build/bin/geth --morph-holesky \\\n --datadir "./geth-data" \\\n --http --http.api=web3,debug,eth,txpool,net,engine \\\n --authrpc.addr localhost \\\n --authrpc.vhosts="localhost" \\\n --authrpc.port 8551 \\\n --authrpc.jwtsecret=./jwt-secret.txt \\\n --miner.gasprice="100000000" \\\n --log.filename=./geth.log\n'})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.em,{children:"tail -f geth.log"})," to check if the Geth is running properly, or you can also exeucte the below curl command to check if you are connected to the peer."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:'curl -X POST -H \'Content-Type: application/json\' --data \n\'{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":74}\' \nlocalhost:8545\n\n{"jsonrpc":"2.0","id":74,"result":"0x3"}\n'})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.em,{children:"Node"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"./morph/node/build/bin/morphnode --home ./node-data \\\n --l2.jwt-secret ./jwt-secret.txt \\\n --l2.eth http://localhost:8545 \\\n --l2.engine http://localhost:8551 \\\n --log.filename ./node.log\n"})}),"\n",(0,r.jsx)(n.p,{children:"tail -f node.log to check if the node is running properly, and you can also execute the command curl to check your node connection status."}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:'curl http://localhost:26657/net_info\n\n{\n "jsonrpc": "2.0",\n "id": -1,\n "result": {\n "listening": true,\n "listeners": [\n "Listener(@)"\n ],\n "n_peers": "3",\n "peers": [\n {\n "node_info": {\n "protocol_version": {\n "p2p": "8",\n "block": "11",\n "app": "0"\n },\n "id": "0fb5ce425197a462a66de015ee5fbbf103835b8a",\n "listen_addr": "tcp://0.0.0.0:26656",\n "network": "chain-morph-holesky",\n "version": "0.37.0-alpha.1",\n "channels": "4020212223386061",\n "moniker": "morph-dataseed-node-1",\n "other": {\n "tx_index": "on",\n "rpc_address": "tcp://0.0.0.0:26657"\n }\n },\n "is_outbound": true,\n'})}),"\n",(0,r.jsx)(n.h3,{id:"check-sync-status",children:"Check sync status"}),"\n",(0,r.jsxs)(n.p,{children:["curl ",(0,r.jsx)(n.a,{href:"http://localhost:26657/status",children:"http://localhost:26657/status"})," to check the sync status of the node"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:'{\n "jsonrpc": "2.0",\n "id": -1,\n "result": {\n "node_info": {\n "protocol_version": {\n "p2p": "8",\n "block": "11",\n "app": "0"\n },\n "id": "b3f34dc2ce9c4fee5449426992941aee1e09670f",\n "listen_addr": "tcp://0.0.0.0:26656",\n "network": "chain-morph-holesky",\n "version": "0.37.0-alpha.1",\n "channels": "4020212223386061",\n "moniker": "my-morph-node",\n "other": {\n "tx_index": "on",\n "rpc_address": "tcp://0.0.0.0:26657"\n }\n },\n "sync_info": {\n "latest_block_hash": "71024385DDBEB7B554DB11FD2AE097ECBD99B2AF826C11B2A74F7172F2DEE5D2",\n "latest_app_hash": "",\n "latest_block_height": "2992",\n "latest_block_time": "2024-04-25T13:48:27.647889852Z",\n "earliest_block_hash": "C7A73D3907C6CA34B9DFA043FC6D4529A8EAEC8F059E100055653E46E63F6F8E",\n "earliest_app_hash": "",\n "earliest_block_height": "1",\n "earliest_block_time": "2024-04-25T09:06:30Z",\n "catching_up": false\n },\n "validator_info": {\n "address": "5FB3D3734640792F14B70E7A53FBBD39DB9787A8",\n "pub_key": {\n "type": "tendermint/PubKeyEd25519",\n "value": "rzN67ZJWsaLSGGpNj7HOWs8nrL5kr1n+w0OckWUCetw="\n },\n "voting_power": "0"\n }\n }\n}\n'})}),"\n",(0,r.jsx)(n.p,{children:'The returned "catching_up" indicates whether the node is in sync or not. True means it is in sync. Meanwhile, the returned latest_block_height indicates the latest block height this node synced.'})]})}function a(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}},1582:(e,n,o)=>{o.d(n,{R:()=>i,x:()=>h});var r=o(758);const t={},s=r.createContext(t);function i(e){const n=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function h(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),r.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/fda70fd8.0787519d.js b/build/assets/js/fda70fd8.0b05c46c.js similarity index 94% rename from build/assets/js/fda70fd8.0787519d.js rename to build/assets/js/fda70fd8.0b05c46c.js index e3ba0164a..1e225d9bc 100644 --- a/build/assets/js/fda70fd8.0787519d.js +++ b/build/assets/js/fda70fd8.0b05c46c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[1311],{7634:(e,r,s)=>{s.r(r),s.d(r,{assets:()=>d,contentTitle:()=>o,default:()=>h,frontMatter:()=>l,metadata:()=>t,toc:()=>i});var n=s(3274),c=s(2333);const l={},o="Interface: OEL2Contracts",t={id:"build-on-morph/sdk/interfaces/OEL2Contracts",title:"OEL2Contracts",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/interfaces/OEL2Contracts.md",sourceDirName:"build-on-morph/sdk/interfaces",slug:"/build-on-morph/sdk/interfaces/OEL2Contracts",permalink:"/docs/build-on-morph/sdk/interfaces/OEL2Contracts",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/interfaces/OEL2Contracts.md",tags:[],version:"current",frontMatter:{}},d={},i=[{value:"Properties",id:"properties",level:2},{value:"GasPriceOracle",id:"gaspriceoracle",level:3},{value:"Source",id:"source",level:4},{value:"Gov",id:"gov",level:3},{value:"Source",id:"source-1",level:4},{value:"L2CrossDomainMessenger",id:"l2crossdomainmessenger",level:3},{value:"Source",id:"source-2",level:4},{value:"L2ERC1155Gateway",id:"l2erc1155gateway",level:3},{value:"Source",id:"source-3",level:4},{value:"L2ERC721Gateway",id:"l2erc721gateway",level:3},{value:"Source",id:"source-4",level:4},{value:"L2ETHGateway",id:"l2ethgateway",level:3},{value:"Source",id:"source-5",level:4},{value:"L2GatewayRouter",id:"l2gatewayrouter",level:3},{value:"Source",id:"source-6",level:4},{value:"L2StandardERC20Gateway",id:"l2standarderc20gateway",level:3},{value:"Source",id:"source-7",level:4},{value:"L2ToL1MessagePasser",id:"l2tol1messagepasser",level:3},{value:"Source",id:"source-8",level:4},{value:"L2TxFeeVault",id:"l2txfeevault",level:3},{value:"Source",id:"source-9",level:4},{value:"L2WETH",id:"l2weth",level:3},{value:"Source",id:"source-10",level:4},{value:"L2WETHGateway",id:"l2wethgateway",level:3},{value:"Source",id:"source-11",level:4},{value:"MorphStandardERC20",id:"morphstandarderc20",level:3},{value:"Source",id:"source-12",level:4},{value:"MorphStandardERC20Factory",id:"morphstandarderc20factory",level:3},{value:"Source",id:"source-13",level:4},{value:"MorphToken?",id:"morphtoken",level:3},{value:"Source",id:"source-14",level:4},{value:"Sequencer",id:"sequencer",level:3},{value:"Source",id:"source-15",level:4},{value:"WrappedEther",id:"wrappedether",level:3},{value:"Source",id:"source-16",level:4}];function a(e){const r={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",p:"p",strong:"strong",...(0,c.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,n.jsx)(r.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,n.jsx)(r.strong,{children:"Docs"})]}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / OEL2Contracts"]}),"\n",(0,n.jsx)(r.h1,{id:"interface-oel2contracts",children:"Interface: OEL2Contracts"}),"\n",(0,n.jsx)(r.p,{children:"L2 contract references."}),"\n",(0,n.jsx)(r.h2,{id:"properties",children:"Properties"}),"\n",(0,n.jsx)(r.h3,{id:"gaspriceoracle",children:"GasPriceOracle"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"GasPriceOracle"}),": ",(0,n.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"source",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/interfaces/types.ts:97"}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"gov",children:"Gov"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"Gov"}),": ",(0,n.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"source-1",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/interfaces/types.ts:86"}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"l2crossdomainmessenger",children:"L2CrossDomainMessenger"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"L2CrossDomainMessenger"}),": ",(0,n.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"source-2",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/interfaces/types.ts:89"}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"l2erc1155gateway",children:"L2ERC1155Gateway"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"L2ERC1155Gateway"}),": ",(0,n.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"source-3",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/interfaces/types.ts:94"}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"l2erc721gateway",children:"L2ERC721Gateway"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"L2ERC721Gateway"}),": ",(0,n.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"source-4",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/interfaces/types.ts:91"}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"l2ethgateway",children:"L2ETHGateway"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"L2ETHGateway"}),": ",(0,n.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"source-5",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/interfaces/types.ts:88"}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"l2gatewayrouter",children:"L2GatewayRouter"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"L2GatewayRouter"}),": ",(0,n.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"source-6",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/interfaces/types.ts:84"}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"l2standarderc20gateway",children:"L2StandardERC20Gateway"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"L2StandardERC20Gateway"}),": ",(0,n.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"source-7",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/interfaces/types.ts:90"}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"l2tol1messagepasser",children:"L2ToL1MessagePasser"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"L2ToL1MessagePasser"}),": ",(0,n.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"source-8",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/interfaces/types.ts:83"}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"l2txfeevault",children:"L2TxFeeVault"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"L2TxFeeVault"}),": ",(0,n.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"source-9",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/interfaces/types.ts:92"}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"l2weth",children:"L2WETH"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"L2WETH"}),": ",(0,n.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"source-10",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/interfaces/types.ts:98"}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"l2wethgateway",children:"L2WETHGateway"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"L2WETHGateway"}),": ",(0,n.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"source-11",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/interfaces/types.ts:99"}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"morphstandarderc20",children:"MorphStandardERC20"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"MorphStandardERC20"}),": ",(0,n.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"source-12",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/interfaces/types.ts:95"}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"morphstandarderc20factory",children:"MorphStandardERC20Factory"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"MorphStandardERC20Factory"}),": ",(0,n.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"source-13",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/interfaces/types.ts:96"}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"morphtoken",children:"MorphToken?"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.code,{children:"optional"})," ",(0,n.jsx)(r.strong,{children:"MorphToken"}),": ",(0,n.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"source-14",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/interfaces/types.ts:102"}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"sequencer",children:"Sequencer"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"Sequencer"}),": ",(0,n.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"source-15",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/interfaces/types.ts:85"}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"wrappedether",children:"WrappedEther"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"WrappedEther"}),": ",(0,n.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"source-16",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/interfaces/types.ts:100"})]})}function h(e={}){const{wrapper:r}={...(0,c.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(a,{...e})}):a(e)}},2333:(e,r,s)=>{s.d(r,{R:()=>o,x:()=>t});var n=s(9474);const c={},l=n.createContext(c);function o(e){const r=n.useContext(l);return n.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function t(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(c):e.components||c:o(e.components),n.createElement(l.Provider,{value:r},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[1311],{6312:(e,r,s)=>{s.r(r),s.d(r,{assets:()=>d,contentTitle:()=>o,default:()=>h,frontMatter:()=>l,metadata:()=>t,toc:()=>i});var n=s(6070),c=s(1582);const l={},o="Interface: OEL2Contracts",t={id:"build-on-morph/sdk/interfaces/OEL2Contracts",title:"OEL2Contracts",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/interfaces/OEL2Contracts.md",sourceDirName:"build-on-morph/sdk/interfaces",slug:"/build-on-morph/sdk/interfaces/OEL2Contracts",permalink:"/docs/build-on-morph/sdk/interfaces/OEL2Contracts",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/interfaces/OEL2Contracts.md",tags:[],version:"current",frontMatter:{}},d={},i=[{value:"Properties",id:"properties",level:2},{value:"GasPriceOracle",id:"gaspriceoracle",level:3},{value:"Source",id:"source",level:4},{value:"Gov",id:"gov",level:3},{value:"Source",id:"source-1",level:4},{value:"L2CrossDomainMessenger",id:"l2crossdomainmessenger",level:3},{value:"Source",id:"source-2",level:4},{value:"L2ERC1155Gateway",id:"l2erc1155gateway",level:3},{value:"Source",id:"source-3",level:4},{value:"L2ERC721Gateway",id:"l2erc721gateway",level:3},{value:"Source",id:"source-4",level:4},{value:"L2ETHGateway",id:"l2ethgateway",level:3},{value:"Source",id:"source-5",level:4},{value:"L2GatewayRouter",id:"l2gatewayrouter",level:3},{value:"Source",id:"source-6",level:4},{value:"L2StandardERC20Gateway",id:"l2standarderc20gateway",level:3},{value:"Source",id:"source-7",level:4},{value:"L2ToL1MessagePasser",id:"l2tol1messagepasser",level:3},{value:"Source",id:"source-8",level:4},{value:"L2TxFeeVault",id:"l2txfeevault",level:3},{value:"Source",id:"source-9",level:4},{value:"L2WETH",id:"l2weth",level:3},{value:"Source",id:"source-10",level:4},{value:"L2WETHGateway",id:"l2wethgateway",level:3},{value:"Source",id:"source-11",level:4},{value:"MorphStandardERC20",id:"morphstandarderc20",level:3},{value:"Source",id:"source-12",level:4},{value:"MorphStandardERC20Factory",id:"morphstandarderc20factory",level:3},{value:"Source",id:"source-13",level:4},{value:"MorphToken?",id:"morphtoken",level:3},{value:"Source",id:"source-14",level:4},{value:"Sequencer",id:"sequencer",level:3},{value:"Source",id:"source-15",level:4},{value:"WrappedEther",id:"wrappedether",level:3},{value:"Source",id:"source-16",level:4}];function a(e){const r={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",p:"p",strong:"strong",...(0,c.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,n.jsx)(r.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,n.jsx)(r.strong,{children:"Docs"})]}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / OEL2Contracts"]}),"\n",(0,n.jsx)(r.h1,{id:"interface-oel2contracts",children:"Interface: OEL2Contracts"}),"\n",(0,n.jsx)(r.p,{children:"L2 contract references."}),"\n",(0,n.jsx)(r.h2,{id:"properties",children:"Properties"}),"\n",(0,n.jsx)(r.h3,{id:"gaspriceoracle",children:"GasPriceOracle"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"GasPriceOracle"}),": ",(0,n.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"source",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/interfaces/types.ts:97"}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"gov",children:"Gov"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"Gov"}),": ",(0,n.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"source-1",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/interfaces/types.ts:86"}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"l2crossdomainmessenger",children:"L2CrossDomainMessenger"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"L2CrossDomainMessenger"}),": ",(0,n.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"source-2",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/interfaces/types.ts:89"}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"l2erc1155gateway",children:"L2ERC1155Gateway"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"L2ERC1155Gateway"}),": ",(0,n.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"source-3",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/interfaces/types.ts:94"}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"l2erc721gateway",children:"L2ERC721Gateway"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"L2ERC721Gateway"}),": ",(0,n.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"source-4",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/interfaces/types.ts:91"}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"l2ethgateway",children:"L2ETHGateway"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"L2ETHGateway"}),": ",(0,n.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"source-5",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/interfaces/types.ts:88"}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"l2gatewayrouter",children:"L2GatewayRouter"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"L2GatewayRouter"}),": ",(0,n.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"source-6",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/interfaces/types.ts:84"}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"l2standarderc20gateway",children:"L2StandardERC20Gateway"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"L2StandardERC20Gateway"}),": ",(0,n.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"source-7",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/interfaces/types.ts:90"}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"l2tol1messagepasser",children:"L2ToL1MessagePasser"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"L2ToL1MessagePasser"}),": ",(0,n.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"source-8",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/interfaces/types.ts:83"}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"l2txfeevault",children:"L2TxFeeVault"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"L2TxFeeVault"}),": ",(0,n.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"source-9",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/interfaces/types.ts:92"}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"l2weth",children:"L2WETH"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"L2WETH"}),": ",(0,n.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"source-10",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/interfaces/types.ts:98"}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"l2wethgateway",children:"L2WETHGateway"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"L2WETHGateway"}),": ",(0,n.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"source-11",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/interfaces/types.ts:99"}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"morphstandarderc20",children:"MorphStandardERC20"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"MorphStandardERC20"}),": ",(0,n.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"source-12",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/interfaces/types.ts:95"}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"morphstandarderc20factory",children:"MorphStandardERC20Factory"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"MorphStandardERC20Factory"}),": ",(0,n.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"source-13",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/interfaces/types.ts:96"}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"morphtoken",children:"MorphToken?"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.code,{children:"optional"})," ",(0,n.jsx)(r.strong,{children:"MorphToken"}),": ",(0,n.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"source-14",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/interfaces/types.ts:102"}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"sequencer",children:"Sequencer"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"Sequencer"}),": ",(0,n.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"source-15",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/interfaces/types.ts:85"}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"wrappedether",children:"WrappedEther"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"WrappedEther"}),": ",(0,n.jsx)(r.code,{children:"Contract"})]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"source-16",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:"src/interfaces/types.ts:100"})]})}function h(e={}){const{wrapper:r}={...(0,c.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(a,{...e})}):a(e)}},1582:(e,r,s)=>{s.d(r,{R:()=>o,x:()=>t});var n=s(758);const c={},l=n.createContext(c);function o(e){const r=n.useContext(l);return n.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function t(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(c):e.components||c:o(e.components),n.createElement(l.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/fdc91eb1.05fb4897.js b/build/assets/js/fdc91eb1.05fb4897.js deleted file mode 100644 index fc668d33f..000000000 --- a/build/assets/js/fdc91eb1.05fb4897.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[4908],{3332:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>s,default:()=>a,frontMatter:()=>o,metadata:()=>d,toc:()=>l});var r=i(3274),t=i(2333);const o={title:"Difference between Morph and Ethereum",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},s=void 0,d={id:"how-morph-works/general-protocol-design/difference-between-ethereum-and-morph",title:"Difference between Morph and Ethereum",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/how-morph-works/general-protocol-design/5-difference-between-ethereum-and-morph.md",sourceDirName:"how-morph-works/general-protocol-design",slug:"/how-morph-works/general-protocol-design/difference-between-ethereum-and-morph",permalink:"/docs/how-morph-works/general-protocol-design/difference-between-ethereum-and-morph",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/how-morph-works/general-protocol-design/5-difference-between-ethereum-and-morph.md",tags:[],version:"current",sidebarPosition:5,frontMatter:{title:"Difference between Morph and Ethereum",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"Transactions Life Cycle",permalink:"/docs/how-morph-works/general-protocol-design/transactions-life-cycle"},next:{title:"Understand Transaction Cost on Morph",permalink:"/docs/build-on-morph/build-on-morph/understand-transaction-cost-on-morph"}},c={},l=[{value:"EVM Opcodes",id:"evm-opcodes",level:2},{value:"EVM Precompiles",id:"evm-precompiles",level:2},{value:"Precompile Limits",id:"precompile-limits",level:3},{value:"State Account",id:"state-account",level:2},{value:"<strong>Additional Fields</strong>",id:"additional-fields",level:3},{value:"<strong>CodeHash</strong>",id:"codehash",level:3},{value:"CodeSize",id:"codesize",level:3},{value:"Block Time",id:"block-time",level:2},{value:"Future EIPs",id:"future-eips",level:2}];function h(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,t.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.p,{children:"There are several technical differences between Ethereum\u2019s EVM and Morph's optimistic zkEVM. We\u2019ve compiled a list to help you understand these distinctions better."}),"\n",(0,r.jsx)(n.admonition,{type:"tip",children:(0,r.jsx)(n.p,{children:"For most Solidity developers, these technical details won't significantly impact your development experience."})}),"\n",(0,r.jsx)(n.h2,{id:"evm-opcodes",children:"EVM Opcodes"}),"\n",(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Opcode"}),(0,r.jsx)(n.th,{children:"Solidity equivalent"}),(0,r.jsx)(n.th,{children:"Morph Behavior"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"BLOCKHASH"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"block.blockhash"})}),(0,r.jsxs)(n.td,{children:["Returns ",(0,r.jsx)(n.code,{children:"keccak(chain_id || block_number)"})," for the last 256 blocks."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"COINBASE"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"block.coinbase"})}),(0,r.jsxs)(n.td,{children:["Returns the pre-deployed fee vault contract address. See ",(0,r.jsx)(n.a,{href:"/docs/build-on-morph/developer-resources/contracts",children:"Contracts"})]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsxs)(n.td,{children:[(0,r.jsx)(n.code,{children:"DIFFICULTY"})," / ",(0,r.jsx)(n.code,{children:"PREVRANDAO"})]}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"block.difficulty"})}),(0,r.jsx)(n.td,{children:"Returns 0."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"SELFDESTRUCT"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"selfdestruct"})}),(0,r.jsx)(n.td,{children:"Disabled. If the opcode is encountered, the transaction will be reverted."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"BLOBHASH"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"tx.blob_versioned_hashes[index]"})}),(0,r.jsx)(n.td,{children:"Not supported"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"BLOBBASEFEE"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"blob_base_fee = BLOBBASEFEE()"})}),(0,r.jsx)(n.td,{children:"Not supported"})]})]})]}),"\n",(0,r.jsx)(n.h2,{id:"evm-precompiles",children:"EVM Precompiles"}),"\n",(0,r.jsxs)(n.p,{children:["The ",(0,r.jsx)(n.code,{children:"RIPEMD-160"})," (address ",(0,r.jsx)(n.code,{children:"0x3"}),") ",(0,r.jsx)(n.code,{children:"blake2f"})," (address ",(0,r.jsx)(n.code,{children:"0x9"}),"), and ",(0,r.jsx)(n.code,{children:"point evaluation"})," (address ",(0,r.jsx)(n.code,{children:"0x0a"}),") precompiles are currently not supported. Calls to unsupported precompiled contracts will revert. We plan to enable these precompiles in future hard forks."]}),"\n",(0,r.jsxs)(n.p,{children:["The ",(0,r.jsx)(n.code,{children:"modexp"})," precompile is supported but only supports inputs of size less than or equal to 32 bytes (i.e. ",(0,r.jsx)(n.code,{children:"u256"}),")."]}),"\n",(0,r.jsxs)(n.p,{children:["The ",(0,r.jsx)(n.code,{children:"ecPairing"})," precompile is supported, but the number of points(sets, pairs) is limited to 4, instead of 6."]}),"\n",(0,r.jsxs)(n.p,{children:["The other EVM precompiles are all supported: ",(0,r.jsx)(n.code,{children:"ecRecover"}),", ",(0,r.jsx)(n.code,{children:"identity"}),", ",(0,r.jsx)(n.code,{children:"ecAdd"}),", ",(0,r.jsx)(n.code,{children:"ecMul"}),"."]}),"\n",(0,r.jsx)(n.h3,{id:"precompile-limits",children:"Precompile Limits"}),"\n",(0,r.jsx)(n.p,{children:"Because of a bounded size of the zkEVM circuits, there is an upper limit on the number of calls that can be made for some precompiles. These transactions will not revert, but simply be skipped by the sequencer if they cannot fit into the space of the circuit."}),"\n",(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Precompile / Opcode"}),(0,r.jsx)(n.th,{children:"Limit"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"keccak256"})}),(0,r.jsx)(n.td,{children:"3157"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"ecRecover"})}),(0,r.jsx)(n.td,{children:"119"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"modexp"})}),(0,r.jsx)(n.td,{children:"23"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"ecAdd"})}),(0,r.jsx)(n.td,{children:"50"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"ecMul"})}),(0,r.jsx)(n.td,{children:"50"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"ecPairing"})}),(0,r.jsx)(n.td,{children:"2"})]})]})]}),"\n",(0,r.jsx)(n.admonition,{title:"Several opcode not available",type:"tip",children:(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"BLOBHASH"})," and ",(0,r.jsx)(n.code,{children:"BLOBBASEFEE"})," are not supported on Morph yet. Additionally, ",(0,r.jsx)(n.a,{href:"https://eips.ethereum.org/EIPS/eip-4788",children:"EIP-4788"})," for accessing the Beacon Chain block root is not supported."]})}),"\n",(0,r.jsx)(n.h2,{id:"state-account",children:"State Account"}),"\n",(0,r.jsx)(n.h3,{id:"additional-fields",children:(0,r.jsx)(n.strong,{children:"Additional Fields"})}),"\n",(0,r.jsxs)(n.p,{children:["We added two fields in the current ",(0,r.jsx)(n.code,{children:"StateAccount"})," object: ",(0,r.jsx)(n.code,{children:"PoseidonCodehash"})," and ",(0,r.jsx)(n.code,{children:"CodeSize"}),"."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-go",children:"type StateAccount struct {\n\tNonce uint64\n\tBalance *big.Int\n\tRoot common.Hash // merkle root of the storage trie\n\tKeccakCodeHash []byte // still the Keccak codehash\n\t// added fields\n\tPoseidonCodeHash []byte // the Poseidon codehash\n\tCodeSize uint64\n}\n"})}),"\n",(0,r.jsx)(n.h3,{id:"codehash",children:(0,r.jsx)(n.strong,{children:"CodeHash"})}),"\n",(0,r.jsx)(n.p,{children:"Related to this, we maintain two types of codehash for each contract bytecode: Keccak hash and Poseidon hash."}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"KeccakCodeHash"})," is kept to maintain compatibility for ",(0,r.jsx)(n.code,{children:"EXTCODEHASH"}),". ",(0,r.jsx)(n.code,{children:"PoseidonCodeHash"})," is used for verifying the correctness of bytecodes loaded in the zkEVM, where Poseidon hashing is far more efficient."]}),"\n",(0,r.jsx)(n.h3,{id:"codesize",children:"CodeSize"}),"\n",(0,r.jsxs)(n.p,{children:["When verifying ",(0,r.jsx)(n.code,{children:"EXTCODESIZE"}),", it is expensive to load the whole contract data into the zkEVM. Instead, we store the contract size in storage during contract creation. This way, we do not need to load the code \u2014 a storage proof is sufficient to verify this opcode."]}),"\n",(0,r.jsx)(n.h2,{id:"block-time",children:"Block Time"}),"\n",(0,r.jsx)(n.admonition,{title:"Block Time Subject to Change",type:"tip",children:(0,r.jsx)(n.p,{children:"Blocks are produced every second, with an empty block generated if there are no transactions for 5 seconds. However, this frequency may change in the future."})}),"\n",(0,r.jsx)(n.p,{children:"To compare, Ethereum has a block time of ~12 seconds."}),"\n",(0,r.jsx)(n.p,{children:"Reasons for Faster Block Time in Morph\nUser Experience:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"A faster, consistent block time provides quicker feedback, enhancing the user experience."}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Optimization: As we refine the zkEVM circuits in our testnets, we can achieve higher throughput than Ethereum, even with a smaller gas limit per block or batch."}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"Notice:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"TIMESTAMP"})," will return the timestamp of the block. It will update every second."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"BLOCKNUMBER"})," will return an actual block number. It will update every second. The one-to-one mapping between blocks and transactions will no longer apply."]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"future-eips",children:"Future EIPs"}),"\n",(0,r.jsxs)(n.p,{children:["Morph closely monitors emerging Ethereum Improvement Proposals (EIPs) and adopts them when suitable. For more specifics, join our community forum or ",(0,r.jsx)(n.a,{href:"https://discord.gg/L2Morph",children:"Discord"})," for discussions."]})]})}function a(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},2333:(e,n,i)=>{i.d(n,{R:()=>s,x:()=>d});var r=i(9474);const t={},o=r.createContext(t);function s(e){const n=r.useContext(o);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:s(e.components),r.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/fdc91eb1.d0f3ea4e.js b/build/assets/js/fdc91eb1.d0f3ea4e.js new file mode 100644 index 000000000..b5794273f --- /dev/null +++ b/build/assets/js/fdc91eb1.d0f3ea4e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[4908],{5118:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>a,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var i=r(6070),t=r(1582);const o={title:"Difference between Morph and Ethereum",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},c=void 0,s={id:"how-morph-works/general-protocol-design/difference-between-ethereum-and-morph",title:"Difference between Morph and Ethereum",description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!",source:"@site/docs/how-morph-works/general-protocol-design/5-difference-between-ethereum-and-morph.md",sourceDirName:"how-morph-works/general-protocol-design",slug:"/how-morph-works/general-protocol-design/difference-between-ethereum-and-morph",permalink:"/docs/how-morph-works/general-protocol-design/difference-between-ethereum-and-morph",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/how-morph-works/general-protocol-design/5-difference-between-ethereum-and-morph.md",tags:[],version:"current",sidebarPosition:5,frontMatter:{title:"Difference between Morph and Ethereum",lang:"en-US",keywords:["morph","ethereum","rollup","layer2","validity proof","optimistic zk-rollup"],description:"Upgrade your blockchain experience with Morph - the secure decentralized, cost0efficient, and high-performing optimistic zk-rollup solution. Try it now!"},sidebar:"DeveloperSidebar",previous:{title:"Transactions Life Cycle",permalink:"/docs/how-morph-works/general-protocol-design/transactions-life-cycle"},next:{title:"Understand Transaction Cost on Morph",permalink:"/docs/build-on-morph/build-on-morph/understand-transaction-cost-on-morph"}},d={},l=[{value:"EVM Precompiles Difference",id:"evm-precompiles-difference",level:2},{value:"EVM Opcodes Difference",id:"evm-opcodes-difference",level:2},{value:"State Account Structure Difference",id:"state-account-structure-difference",level:2},{value:"<strong>Additional Fields</strong>",id:"additional-fields",level:3},{value:"<strong>CodeHash</strong>",id:"codehash",level:3},{value:"Block Time Difference",id:"block-time-difference",level:2}];function h(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,t.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.p,{children:"There are several technical differences between Ethereum\u2019s EVM and Morph's optimistic zkEVM."}),"\n",(0,i.jsx)(n.p,{children:"We\u2019ve compiled a list to help you understand these distinctions better."}),"\n",(0,i.jsx)(n.p,{children:"For most Solidity developers, these technical details won't significantly impact your development experience."}),"\n",(0,i.jsx)(n.h2,{id:"evm-precompiles-difference",children:"EVM Precompiles Difference"}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"RIPEMD-160"})," (address ",(0,i.jsx)(n.code,{children:"0x3"}),"), ",(0,i.jsx)(n.code,{children:"blake2f"})," (address ",(0,i.jsx)(n.code,{children:"0x9"}),"), and ",(0,i.jsx)(n.code,{children:"point evaluation"})," (address ",(0,i.jsx)(n.code,{children:"0x0a"}),") precompiles are currently unsupported. Calls to these unsupported precompiled contracts will result in a transaction revert."]}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"modexp"})," precompile is supported, but it only accepts inputs that are 32 bytes or smaller (i.e., ",(0,i.jsx)(n.code,{children:"u256"}),")."]}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"ecPairing"})," precompile is also supported; however, the maximum number of points (sets or pairs) is limited to 4, rather than 6."]}),"\n",(0,i.jsxs)(n.p,{children:["All other EVM precompiles are fully supported: ",(0,i.jsx)(n.code,{children:"ecRecover"}),", ",(0,i.jsx)(n.code,{children:"identity"}),", ",(0,i.jsx)(n.code,{children:"ecAdd"}),", and ",(0,i.jsx)(n.code,{children:"ecMul"}),"."]}),"\n",(0,i.jsx)(n.h2,{id:"evm-opcodes-difference",children:"EVM Opcodes Difference"}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"Opcode"}),(0,i.jsx)(n.th,{children:"Solidity equivalent"}),(0,i.jsx)(n.th,{children:"Morph Behavior"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"BLOCKHASH"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"block.blockhash"})}),(0,i.jsxs)(n.td,{children:["Returns ",(0,i.jsx)(n.code,{children:"keccak(chain_id || block_number)"})," for the last 256 blocks."]})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"COINBASE"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"block.coinbase"})}),(0,i.jsxs)(n.td,{children:["Returns the pre-deployed fee vault contract address. See ",(0,i.jsx)(n.a,{href:"/docs/build-on-morph/developer-resources/contracts",children:"Contracts"})]})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsxs)(n.td,{children:[(0,i.jsx)(n.code,{children:"DIFFICULTY"})," / ",(0,i.jsx)(n.code,{children:"PREVRANDAO"})]}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"block.difficulty"})}),(0,i.jsx)(n.td,{children:"Returns 0."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"SELFDESTRUCT"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"selfdestruct"})}),(0,i.jsx)(n.td,{children:"Disabled. If the opcode is triggered, the transaction will be reverted."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"BLOBHASH"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"tx.blob_versioned_hashes[index]"})}),(0,i.jsx)(n.td,{children:"Not supported"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"BLOBBASEFEE"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"blob_base_fee = BLOBBASEFEE()"})}),(0,i.jsx)(n.td,{children:"Not supported"})]})]})]}),"\n",(0,i.jsxs)(n.admonition,{title:"Several opcode not available",type:"tip",children:[(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"BLOBHASH"})," and ",(0,i.jsx)(n.code,{children:"BLOBBASEFEE"})," are not supported on Morph yet."]}),(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://eips.ethereum.org/EIPS/eip-4788",children:"EIP-4788"})," for accessing the Beacon Chain block root is not supported too."]})]}),"\n",(0,i.jsx)(n.h2,{id:"state-account-structure-difference",children:"State Account Structure Difference"}),"\n",(0,i.jsx)(n.h3,{id:"additional-fields",children:(0,i.jsx)(n.strong,{children:"Additional Fields"})}),"\n",(0,i.jsxs)(n.p,{children:["There are two additional fields in the existing ",(0,i.jsx)(n.code,{children:"StateAccount"})," object: ",(0,i.jsx)(n.code,{children:"PoseidonCodehash"})," and ",(0,i.jsx)(n.code,{children:"CodeSize"}),"."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-go",children:"type StateAccount struct {\n\tNonce uint64\n\tBalance *big.Int\n\tRoot common.Hash // merkle root of the storage trie\n\tKeccakCodeHash []byte // still the Keccak codehash\n\t// added fields\n\tPoseidonCodeHash []byte // the Poseidon codehash\n\tCodeSize uint64\n}\n"})}),"\n",(0,i.jsx)(n.h3,{id:"codehash",children:(0,i.jsx)(n.strong,{children:"CodeHash"})}),"\n",(0,i.jsxs)(n.p,{children:["In this context, we keep two varieties of code hashes for each contract's bytecode: the ",(0,i.jsx)(n.code,{children:"Keccak hash"})," and the ",(0,i.jsx)(n.code,{children:"Poseidon hash"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"KeccakCodeHash"})," is preserved to ensure compatibility with ",(0,i.jsx)(n.code,{children:"EXTCODEHASH"}),", while the ",(0,i.jsx)(n.code,{children:"PoseidonCodeHash"})," is utilized for verifying the accuracy of bytecodes loaded in the zkEVM, as Poseidon hashing offers significantly greater efficiency."]}),"\n",(0,i.jsx)(n.h2,{id:"block-time-difference",children:"Block Time Difference"}),"\n",(0,i.jsx)(n.admonition,{title:"Block Time Subject to Change",type:"tip",children:(0,i.jsx)(n.p,{children:"Blocks are produced every second, with an empty block generated if there are no transactions for 5 seconds. However, this frequency may change in the future."})}),"\n",(0,i.jsx)(n.p,{children:"To compare, Ethereum has a block time of ~12 seconds."}),"\n",(0,i.jsx)(n.p,{children:"Reasons for Faster Block Time in Morph"}),"\n",(0,i.jsx)(n.p,{children:"User Experience:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"A faster, consistent block time provides quicker feedback, enhancing the user experience."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Optimization: As we refine the zkEVM circuits in our testnets, we can achieve higher throughput than Ethereum, even with a smaller gas limit per block or batch."}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"Notice:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"TIMESTAMP"})," will return the timestamp of the block. It will update every second."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"BLOCKNUMBER"})," will return an actual block number. It will update every second. The one-to-one mapping between blocks and transactions will no longer apply."]}),"\n"]})]})}function a(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},1582:(e,n,r)=>{r.d(n,{R:()=>c,x:()=>s});var i=r(758);const t={},o=i.createContext(t);function c(e){const n=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:c(e.components),i.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/fe9c53f2.6e252e5d.js b/build/assets/js/fe9c53f2.35732f59.js similarity index 82% rename from build/assets/js/fe9c53f2.6e252e5d.js rename to build/assets/js/fe9c53f2.35732f59.js index 5ad3d6312..8daaf204f 100644 --- a/build/assets/js/fe9c53f2.6e252e5d.js +++ b/build/assets/js/fe9c53f2.35732f59.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[1688],{2918:(r,e,o)=>{o.r(e),o.d(e,{assets:()=>c,contentTitle:()=>i,default:()=>u,frontMatter:()=>t,metadata:()=>d,toc:()=>l});var n=o(3274),s=o(2333);const t={},i="Function: toProvider()",d={id:"build-on-morph/sdk/functions/toProvider",title:"toProvider",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/functions/toProvider.md",sourceDirName:"build-on-morph/sdk/functions",slug:"/build-on-morph/sdk/functions/toProvider",permalink:"/docs/build-on-morph/sdk/functions/toProvider",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/functions/toProvider.md",tags:[],version:"current",frontMatter:{}},c={},l=[{value:"Parameters",id:"parameters",level:2},{value:"Returns",id:"returns",level:2},{value:"Source",id:"source",level:2}];function h(r){const e={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,s.R)(),...r.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,n.jsx)(e.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,n.jsx)(e.strong,{children:"Docs"})]}),"\n",(0,n.jsx)(e.hr,{}),"\n",(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / toProvider"]}),"\n",(0,n.jsx)(e.h1,{id:"function-toprovider",children:"Function: toProvider()"}),"\n",(0,n.jsxs)(e.blockquote,{children:["\n",(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:"toProvider"}),"(",(0,n.jsx)(e.code,{children:"provider"}),"): ",(0,n.jsx)(e.code,{children:"Provider"})]}),"\n"]}),"\n",(0,n.jsx)(e.p,{children:"Converts a ProviderLike into a Provider. Assumes that if the input is a string then it is a\nJSON-RPC url."}),"\n",(0,n.jsx)(e.h2,{id:"parameters",children:"Parameters"}),"\n",(0,n.jsxs)(e.p,{children:["\u2022 ",(0,n.jsx)(e.strong,{children:"provider"}),": ",(0,n.jsx)(e.a,{href:"/docs/build-on-morph/sdk/type-aliases/ProviderLike",children:(0,n.jsx)(e.code,{children:"ProviderLike"})})]}),"\n",(0,n.jsx)(e.p,{children:"ProviderLike to turn into a Provider."}),"\n",(0,n.jsx)(e.h2,{id:"returns",children:"Returns"}),"\n",(0,n.jsx)(e.p,{children:(0,n.jsx)(e.code,{children:"Provider"})}),"\n",(0,n.jsx)(e.p,{children:"Input as a Provider."}),"\n",(0,n.jsx)(e.h2,{id:"source",children:"Source"}),"\n",(0,n.jsx)(e.p,{children:"src/utils/coercion.ts:46"})]})}function u(r={}){const{wrapper:e}={...(0,s.R)(),...r.components};return e?(0,n.jsx)(e,{...r,children:(0,n.jsx)(h,{...r})}):h(r)}},2333:(r,e,o)=>{o.d(e,{R:()=>i,x:()=>d});var n=o(9474);const s={},t=n.createContext(s);function i(r){const e=n.useContext(t);return n.useMemo((function(){return"function"==typeof r?r(e):{...e,...r}}),[e,r])}function d(r){let e;return e=r.disableParentContext?"function"==typeof r.components?r.components(s):r.components||s:i(r.components),n.createElement(t.Provider,{value:e},r.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[1688],{5428:(r,e,o)=>{o.r(e),o.d(e,{assets:()=>c,contentTitle:()=>i,default:()=>u,frontMatter:()=>t,metadata:()=>d,toc:()=>l});var n=o(6070),s=o(1582);const t={},i="Function: toProvider()",d={id:"build-on-morph/sdk/functions/toProvider",title:"toProvider",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/functions/toProvider.md",sourceDirName:"build-on-morph/sdk/functions",slug:"/build-on-morph/sdk/functions/toProvider",permalink:"/docs/build-on-morph/sdk/functions/toProvider",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/functions/toProvider.md",tags:[],version:"current",frontMatter:{}},c={},l=[{value:"Parameters",id:"parameters",level:2},{value:"Returns",id:"returns",level:2},{value:"Source",id:"source",level:2}];function h(r){const e={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",strong:"strong",...(0,s.R)(),...r.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,n.jsx)(e.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,n.jsx)(e.strong,{children:"Docs"})]}),"\n",(0,n.jsx)(e.hr,{}),"\n",(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / toProvider"]}),"\n",(0,n.jsx)(e.h1,{id:"function-toprovider",children:"Function: toProvider()"}),"\n",(0,n.jsxs)(e.blockquote,{children:["\n",(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:"toProvider"}),"(",(0,n.jsx)(e.code,{children:"provider"}),"): ",(0,n.jsx)(e.code,{children:"Provider"})]}),"\n"]}),"\n",(0,n.jsx)(e.p,{children:"Converts a ProviderLike into a Provider. Assumes that if the input is a string then it is a\nJSON-RPC url."}),"\n",(0,n.jsx)(e.h2,{id:"parameters",children:"Parameters"}),"\n",(0,n.jsxs)(e.p,{children:["\u2022 ",(0,n.jsx)(e.strong,{children:"provider"}),": ",(0,n.jsx)(e.a,{href:"/docs/build-on-morph/sdk/type-aliases/ProviderLike",children:(0,n.jsx)(e.code,{children:"ProviderLike"})})]}),"\n",(0,n.jsx)(e.p,{children:"ProviderLike to turn into a Provider."}),"\n",(0,n.jsx)(e.h2,{id:"returns",children:"Returns"}),"\n",(0,n.jsx)(e.p,{children:(0,n.jsx)(e.code,{children:"Provider"})}),"\n",(0,n.jsx)(e.p,{children:"Input as a Provider."}),"\n",(0,n.jsx)(e.h2,{id:"source",children:"Source"}),"\n",(0,n.jsx)(e.p,{children:"src/utils/coercion.ts:46"})]})}function u(r={}){const{wrapper:e}={...(0,s.R)(),...r.components};return e?(0,n.jsx)(e,{...r,children:(0,n.jsx)(h,{...r})}):h(r)}},1582:(r,e,o)=>{o.d(e,{R:()=>i,x:()=>d});var n=o(758);const s={},t=n.createContext(s);function i(r){const e=n.useContext(t);return n.useMemo((function(){return"function"==typeof r?r(e):{...e,...r}}),[e,r])}function d(r){let e;return e=r.disableParentContext?"function"==typeof r.components?r.components(s):r.components||s:i(r.components),n.createElement(t.Provider,{value:e},r.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/ff3f68fa.5479690d.js b/build/assets/js/ff3f68fa.5479690d.js new file mode 100644 index 000000000..6e5f52a6f --- /dev/null +++ b/build/assets/js/ff3f68fa.5479690d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[8221],{3920:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>c,contentTitle:()=>d,default:()=>l,frontMatter:()=>s,metadata:()=>i,toc:()=>a});var t=o(6070),r=o(1582);const s={title:"Run a full node with docker",lang:"en-US"},d=void 0,i={id:"build-on-morph/developer-resources/node-operation/full-node/run-in-docker",title:"Run a full node with docker",description:"This guide will help you start a full node running in the docker container using run-morph-node",source:"@site/docs/build-on-morph/developer-resources/node-operation/full-node/1-run-in-docker.md",sourceDirName:"build-on-morph/developer-resources/node-operation/full-node",slug:"/build-on-morph/developer-resources/node-operation/full-node/run-in-docker",permalink:"/docs/build-on-morph/developer-resources/node-operation/full-node/run-in-docker",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/developer-resources/node-operation/full-node/1-run-in-docker.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{title:"Run a full node with docker",lang:"en-US"},sidebar:"DeveloperSidebar",previous:{title:"Decentralized Naming Services",permalink:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/decentralized-naming-services"},next:{title:"Run a full node from source",permalink:"/docs/build-on-morph/developer-resources/node-operation/full-node/run-on-host"}},c={},a=[{value:"Quick Start",id:"quick-start",level:2},{value:"Advanced Usage",id:"advanced-usage",level:2},{value:"Customizing Data Directory",id:"customizing-data-directory",level:3},{value:"Customizing parameters",id:"customizing-parameters",level:3},{value:"Sync node from snapshot",id:"sync-node-from-snapshot",level:2},{value:"Clone the dockerfile repository",id:"clone-the-dockerfile-repository",level:3},{value:"Acquire the snapshot you need",id:"acquire-the-snapshot-you-need",level:3},{value:"Set up the snapshot data",id:"set-up-the-snapshot-data",level:3},{value:"4. Run the Node",id:"4-run-the-node",level:3}];function h(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(n.p,{children:["This guide will help you start a full node running in the docker container using ",(0,t.jsx)(n.a,{href:"https://github.com/morph-l2/run-morph-node",children:"run-morph-node"})]}),"\n",(0,t.jsx)(n.h2,{id:"quick-start",children:"Quick Start"}),"\n",(0,t.jsx)(n.admonition,{type:"note",children:(0,t.jsxs)(n.p,{children:["The instructions outlined below detail the procedure for running a full node on the mainnet. To set up and operate a ",(0,t.jsx)(n.strong,{children:"Holesky node"}),", you need to follow the tutorial on ",(0,t.jsx)(n.a,{href:"#sync-node-from-snapshot",children:(0,t.jsx)(n.code,{children:"sync node from snapshot"})}),"."]})}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Clone the dockerfile repository"}),"\n"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"git clone https://github.com/morph-l2/run-morph-node.git\n"})}),"\n",(0,t.jsxs)(n.ol,{start:"2",children:["\n",(0,t.jsx)(n.li,{children:"Run the following command"}),"\n"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"cd morph-node\nmake run-node\n"})}),"\n",(0,t.jsxs)(n.p,{children:["The command ",(0,t.jsx)(n.code,{children:"make run-node"})," takes the ",(0,t.jsx)(n.code,{children:"../mainnet"})," as your node's ",(0,t.jsx)(n.strong,{children:"Home"})," directory by default. There will be two folders in the ",(0,t.jsx)(n.strong,{children:"Home"})," directory named ",(0,t.jsx)(n.code,{children:"geth-data"})," and ",(0,t.jsx)(n.code,{children:"node-data"}),", serving as data directories for the execution client and consensus client of the morph ndoe, respectively."]}),"\n",(0,t.jsxs)(n.p,{children:["This command will also generate the ",(0,t.jsx)(n.code,{children:"secret-jwt.txt"})," file under ",(0,t.jsx)(n.strong,{children:"Home"})," directory for the authentication during RPC calls between the execution client and consensus client."]}),"\n",(0,t.jsx)(n.h2,{id:"advanced-usage",children:"Advanced Usage"}),"\n",(0,t.jsxs)(n.p,{children:["With the ",(0,t.jsx)(n.a,{href:"#quick-start",children:"Quick Start"})," guide above, you can quickly start a node using the default configuration files. However, we also support customizing the node's data directory and parameter settings."]}),"\n",(0,t.jsx)(n.h3,{id:"customizing-data-directory",children:"Customizing Data Directory"}),"\n",(0,t.jsxs)(n.p,{children:["The host directory paths that are mounted by the Docker container are specified in the ",(0,t.jsx)(n.code,{children:"morph-node/.env"})," file."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-js",metastring:'title="morph-node/.env"',children:"// HOME folder for morph node\nMORPH_HOME=../mainnet\n// Flag indicates the network for execution client.\nMORPH_FLAG=morph\n// Location of the jwt file for the authentication between clients\nJWT_SECRET_FILE=${MORPH_HOME}/jwt-secret.txt\n// The entrypoint shell script for start execution client \nGETH_ENTRYPOINT_FILE=./entrypoint-geth.sh\n// The snapshot name for Morph node \nMAINNET_SNAPSHOT_NAME=snapshot-20241218-1\n\n......\n"})}),"\n",(0,t.jsx)(n.p,{children:"You have the flexibility to customize the directory paths as per your requirements."}),"\n",(0,t.jsxs)(n.p,{children:["Please note that if you have customized the ",(0,t.jsx)(n.strong,{children:"HOME"})," directory of your node, you need to copy the necessary configuration files to this directory. Specifically, you should copy the ",(0,t.jsx)(n.code,{children:"node-data"})," and ",(0,t.jsx)(n.code,{children:"geth-data"})," from ",(0,t.jsx)(n.code,{children:"./mainnet"})," to your ",(0,t.jsx)(n.strong,{children:"HOME"})," directory."]}),"\n",(0,t.jsx)(n.admonition,{type:"note",children:(0,t.jsxs)(n.p,{children:["For running a testnet node, the ",(0,t.jsx)(n.code,{children:"morph-node/.env_holesky"})," file should be used instead of the ",(0,t.jsx)(n.code,{children:"morph-node/.env"})," file."]})}),"\n",(0,t.jsx)(n.h3,{id:"customizing-parameters",children:"Customizing parameters"}),"\n",(0,t.jsxs)(n.p,{children:["The default configuration required for mainnet node startup is located in the ",(0,t.jsx)(n.code,{children:"./mainnet"})," directory, while the files under ",(0,t.jsx)(n.code,{children:"./holesky"})," directory is used for testnet node startup."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-javascript",children:"\u2514\u2500\u2500 mainnet\n \u251c\u2500\u2500 geth-data\n \u2502\xa0\xa0 \u2514\u2500\u2500 static-nodes.json\n \u2514\u2500\u2500 node-data\n \u251c\u2500\u2500 config\n \u2502\xa0\xa0 \u251c\u2500\u2500 config.toml\n \u2502\xa0\xa0 \u2514\u2500\u2500 genesis.json\n \u2514\u2500\u2500 data\n\n// for testnet nodes\n\u2514\u2500\u2500 holesky\n \u251c\u2500\u2500 geth-data\n \u2502\xa0\xa0 \u2514\u2500\u2500 static-nodes.json\n \u2514\u2500\u2500 node-data\n \u251c\u2500\u2500 config\n \u2502\xa0\xa0 \u251c\u2500\u2500 config.toml\n \u2502\xa0\xa0 \u2514\u2500\u2500 genesis.json\n \u2514\u2500\u2500 data\n"})}),"\n",(0,t.jsxs)(n.p,{children:["If you wish to modify the Geth startup command, you can do so by editing the ",(0,t.jsx)(n.code,{children:"./morph-node/entrypoint-geth.sh"})," file. For adjustments to the Tendermint-related configuration parameters, you should modify the ",(0,t.jsx)(n.code,{children:"node-data/config/config.toml"})," file."]}),"\n",(0,t.jsx)(n.h2,{id:"sync-node-from-snapshot",children:"Sync node from snapshot"}),"\n",(0,t.jsx)(n.p,{children:"We suggest starting your node sync from a snapshot to speed up the process of syncing your node to the latest state."}),"\n",(0,t.jsx)(n.h3,{id:"clone-the-dockerfile-repository",children:"Clone the dockerfile repository"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"git clone https://github.com/morph-l2/run-morph-node.git\n"})}),"\n",(0,t.jsx)(n.h3,{id:"acquire-the-snapshot-you-need",children:"Acquire the snapshot you need"}),"\n",(0,t.jsxs)(n.p,{children:["The ",(0,t.jsx)(n.code,{children:"morph-node/.env"})," configuration file in the repository you just cloned is designed for setting up the Morph node on the mainnet. By default, it is pre-configured to use the latest snapshot."]}),"\n",(0,t.jsxs)(n.p,{children:["If you need a historical snapshot, you must manually update the ",(0,t.jsx)(n.strong,{children:"SNAPSHOT_NAME"})," in the ",(0,t.jsx)(n.code,{children:"morph-node/.env"})," file. (Note: For the ",(0,t.jsx)(n.strong,{children:"testnet"}),", the corresponding file is ",(0,t.jsx)(n.code,{children:"morph-node/.env_holesky"}),".)"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Fetch historical snapshot(Optional)"}),":"]}),"\n",(0,t.jsxs)(n.p,{children:["The historical snapshots are recorded in ",(0,t.jsx)(n.a,{href:"https://github.com/morph-l2/run-morph-node?tab=readme-ov-file#snapshot-information",children:"snapshot-information"})]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-js",children:"// ...\n\nMAINNET_SNAPSHOT_NAME={your expected snapshot name} \n\n// ...\n"})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Execute download and decompress the snapshot for your network"}),":"]}),"\n",(0,t.jsx)(n.p,{children:"Run the following command to download and decompress the snapshot for your network:"}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"For mainnet"}),":"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"cd ./morph-node\nmake download-and-decompress-mainnet-snapshot\n"})}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"For testnet"}),":"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"cd ./morph-node\nmake download-and-decompress-holesky-snapshot\n"})}),"\n",(0,t.jsx)(n.p,{children:"The command will assist you in downloading and decompressing the snapshot archive."}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"set-up-the-snapshot-data",children:"Set up the snapshot data"}),"\n",(0,t.jsxs)(n.p,{children:["After downloading, locate the snapshot by placing the decompressed data files in the correct directory specified by the ",(0,t.jsx)(n.strong,{children:"MORPH_HOME"})," path in your ",(0,t.jsx)(n.code,{children:".env"})," file. Ensure the data files align with the node's expected structure to allow seamless synchronization."]}),"\n",(0,t.jsxs)(n.p,{children:["For example, if the snapshot folder is named ",(0,t.jsx)(n.code,{children:"snapshot-20241218-1"}),","]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["move the directory ",(0,t.jsx)(n.code,{children:"snapshot-20241218-1/geth"})," to the ",(0,t.jsx)(n.code,{children:"${MORPH_HOME}/geth-data"})," directory"]}),"\n",(0,t.jsxs)(n.li,{children:["move the contents from ",(0,t.jsx)(n.code,{children:"snapshot-20241218-1/data"})," to the ",(0,t.jsx)(n.code,{children:"${NODE_DATA_DIR}/data"})," directory."]}),"\n"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"mv ./morph-node/snapshot-20241218-1/geth ${MORPH_HOME}/geth-data\nmv ./morph-node/snapshot-20241218-1/data/* ${MORPH_HOME}/node-data/data\n"})}),"\n",(0,t.jsx)(n.p,{children:"The folder structure will be like"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-javascript",children:"\u2514\u2500\u2500 ${MORPH_HOME}\n \u251c\u2500\u2500 geth-data // data directory for geth\n \u2502\xa0\xa0 \u2514\u2500\u2500 static-nodes.json\n \u2502\xa0\xa0 \u2514\u2500\u2500 geth // directory from snapshot/geth \n \u2514\u2500\u2500 node-data // data directory for node\n \u251c\u2500\u2500 config\n \u2502\xa0\xa0 \u251c\u2500\u2500 config.toml\n \u2502\xa0\xa0 \u2514\u2500\u2500 genesis.json\n \u2514\u2500\u2500 data // data directory from snapshot/node\n"})}),"\n",(0,t.jsx)(n.h3,{id:"4-run-the-node",children:"4. Run the Node"}),"\n",(0,t.jsxs)(n.p,{children:["With the snapshot and configuration files ready, navigate to the ",(0,t.jsx)(n.code,{children:"morph-node"})," folder under your cloned repository, and start the node using the provided command"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"make run-node\n"})}),"\n",(0,t.jsx)(n.p,{children:"For testnet, run"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"make run-holesky-node\n"})})]})}function l(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(h,{...e})}):h(e)}},1582:(e,n,o)=>{o.d(n,{R:()=>d,x:()=>i});var t=o(758);const r={},s=t.createContext(r);function d(e){const n=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:d(e.components),t.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/ff883f18.96f67b10.js b/build/assets/js/ff883f18.ab8b891b.js similarity index 88% rename from build/assets/js/ff883f18.96f67b10.js rename to build/assets/js/ff883f18.ab8b891b.js index 56be90ab7..939dea593 100644 --- a/build/assets/js/ff883f18.96f67b10.js +++ b/build/assets/js/ff883f18.ab8b891b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[999],{2578:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>l,contentTitle:()=>o,default:()=>a,frontMatter:()=>c,metadata:()=>d,toc:()=>t});var r=n(3274),i=n(2333);const c={},o="Interface: CoreCrossChainMessage",d={id:"build-on-morph/sdk/interfaces/CoreCrossChainMessage",title:"CoreCrossChainMessage",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage.md",sourceDirName:"build-on-morph/sdk/interfaces",slug:"/build-on-morph/sdk/interfaces/CoreCrossChainMessage",permalink:"/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage.md",tags:[],version:"current",frontMatter:{}},l={},t=[{value:"Extended by",id:"extended-by",level:2},{value:"Properties",id:"properties",level:2},{value:"message",id:"message",level:3},{value:"Source",id:"source",level:4},{value:"messageNonce",id:"messagenonce",level:3},{value:"Source",id:"source-1",level:4},{value:"minGasLimit",id:"mingaslimit",level:3},{value:"Source",id:"source-2",level:4},{value:"sender",id:"sender",level:3},{value:"Source",id:"source-3",level:4},{value:"target",id:"target",level:3},{value:"Source",id:"source-4",level:4},{value:"value",id:"value",level:3},{value:"Source",id:"source-5",level:4}];function h(e){const s={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,r.jsx)(s.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,r.jsx)(s.strong,{children:"Docs"})]}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / CoreCrossChainMessage"]}),"\n",(0,r.jsx)(s.h1,{id:"interface-corecrosschainmessage",children:"Interface: CoreCrossChainMessage"}),"\n",(0,r.jsx)(s.p,{children:"Core components of a cross chain message."}),"\n",(0,r.jsx)(s.h2,{id:"extended-by",children:"Extended by"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CrossChainMessage",children:(0,r.jsx)(s.code,{children:"CrossChainMessage"})})}),"\n"]}),"\n",(0,r.jsx)(s.h2,{id:"properties",children:"Properties"}),"\n",(0,r.jsx)(s.h3,{id:"message",children:"message"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"message"}),": ",(0,r.jsx)(s.code,{children:"string"})]}),"\n"]}),"\n",(0,r.jsx)(s.h4,{id:"source",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/interfaces/types.ts:242"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"messagenonce",children:"messageNonce"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"messageNonce"}),": ",(0,r.jsx)(s.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,r.jsx)(s.h4,{id:"source-1",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/interfaces/types.ts:243"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"mingaslimit",children:"minGasLimit"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"minGasLimit"}),": ",(0,r.jsx)(s.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,r.jsx)(s.h4,{id:"source-2",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/interfaces/types.ts:245"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"sender",children:"sender"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"sender"}),": ",(0,r.jsx)(s.code,{children:"string"})]}),"\n"]}),"\n",(0,r.jsx)(s.h4,{id:"source-3",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/interfaces/types.ts:240"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"target",children:"target"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"target"}),": ",(0,r.jsx)(s.code,{children:"string"})]}),"\n"]}),"\n",(0,r.jsx)(s.h4,{id:"source-4",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/interfaces/types.ts:241"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"value",children:"value"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"value"}),": ",(0,r.jsx)(s.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,r.jsx)(s.h4,{id:"source-5",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/interfaces/types.ts:244"})]})}function a(e={}){const{wrapper:s}={...(0,i.R)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},2333:(e,s,n)=>{n.d(s,{R:()=>o,x:()=>d});var r=n(9474);const i={},c=r.createContext(i);function o(e){const s=r.useContext(c);return r.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function d(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),r.createElement(c.Provider,{value:s},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[999],{1060:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>l,contentTitle:()=>o,default:()=>a,frontMatter:()=>c,metadata:()=>d,toc:()=>t});var r=n(6070),i=n(1582);const c={},o="Interface: CoreCrossChainMessage",d={id:"build-on-morph/sdk/interfaces/CoreCrossChainMessage",title:"CoreCrossChainMessage",description:"@morph-l2/sdk \u2022 Docs",source:"@site/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage.md",sourceDirName:"build-on-morph/sdk/interfaces",slug:"/build-on-morph/sdk/interfaces/CoreCrossChainMessage",permalink:"/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage",draft:!1,unlisted:!1,editUrl:"https://github.com/morph-l2/morph-doc/tree/main/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage.md",tags:[],version:"current",frontMatter:{}},l={},t=[{value:"Extended by",id:"extended-by",level:2},{value:"Properties",id:"properties",level:2},{value:"message",id:"message",level:3},{value:"Source",id:"source",level:4},{value:"messageNonce",id:"messagenonce",level:3},{value:"Source",id:"source-1",level:4},{value:"minGasLimit",id:"mingaslimit",level:3},{value:"Source",id:"source-2",level:4},{value:"sender",id:"sender",level:3},{value:"Source",id:"source-3",level:4},{value:"target",id:"target",level:3},{value:"Source",id:"source-4",level:4},{value:"value",id:"value",level:3},{value:"Source",id:"source-5",level:4}];function h(e){const s={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:(0,r.jsx)(s.strong,{children:"@morph-l2/sdk"})})," \u2022 ",(0,r.jsx)(s.strong,{children:"Docs"})]}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/globals",children:"@morph-l2/sdk"})," / CoreCrossChainMessage"]}),"\n",(0,r.jsx)(s.h1,{id:"interface-corecrosschainmessage",children:"Interface: CoreCrossChainMessage"}),"\n",(0,r.jsx)(s.p,{children:"Core components of a cross chain message."}),"\n",(0,r.jsx)(s.h2,{id:"extended-by",children:"Extended by"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"/docs/build-on-morph/sdk/interfaces/CrossChainMessage",children:(0,r.jsx)(s.code,{children:"CrossChainMessage"})})}),"\n"]}),"\n",(0,r.jsx)(s.h2,{id:"properties",children:"Properties"}),"\n",(0,r.jsx)(s.h3,{id:"message",children:"message"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"message"}),": ",(0,r.jsx)(s.code,{children:"string"})]}),"\n"]}),"\n",(0,r.jsx)(s.h4,{id:"source",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/interfaces/types.ts:242"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"messagenonce",children:"messageNonce"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"messageNonce"}),": ",(0,r.jsx)(s.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,r.jsx)(s.h4,{id:"source-1",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/interfaces/types.ts:243"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"mingaslimit",children:"minGasLimit"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"minGasLimit"}),": ",(0,r.jsx)(s.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,r.jsx)(s.h4,{id:"source-2",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/interfaces/types.ts:245"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"sender",children:"sender"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"sender"}),": ",(0,r.jsx)(s.code,{children:"string"})]}),"\n"]}),"\n",(0,r.jsx)(s.h4,{id:"source-3",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/interfaces/types.ts:240"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"target",children:"target"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"target"}),": ",(0,r.jsx)(s.code,{children:"string"})]}),"\n"]}),"\n",(0,r.jsx)(s.h4,{id:"source-4",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/interfaces/types.ts:241"}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h3,{id:"value",children:"value"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"value"}),": ",(0,r.jsx)(s.code,{children:"BigNumber"})]}),"\n"]}),"\n",(0,r.jsx)(s.h4,{id:"source-5",children:"Source"}),"\n",(0,r.jsx)(s.p,{children:"src/interfaces/types.ts:244"})]})}function a(e={}){const{wrapper:s}={...(0,i.R)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},1582:(e,s,n)=>{n.d(s,{R:()=>o,x:()=>d});var r=n(758);const i={},c=r.createContext(i);function o(e){const s=r.useContext(c);return r.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function d(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),r.createElement(c.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/main.100dd08b.js b/build/assets/js/main.100dd08b.js deleted file mode 100644 index 6be86e2d3..000000000 --- a/build/assets/js/main.100dd08b.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see main.100dd08b.js.LICENSE.txt */ -(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[8792],{5781:(e,t,n)=>{"use strict";n.d(t,{W:()=>o});var r=n(9474);function o(){return r.createElement("svg",{width:"20",height:"20",className:"DocSearch-Search-Icon",viewBox:"0 0 20 20"},r.createElement("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}},8881:(e,t,n)=>{var r={"./":6532};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=8881},6974:(e,t,n)=>{"use strict";n.d(t,{A:()=>p});n(9474);var r=n(6849),o=n.n(r),a=n(4054);const i={"028d32dc":[()=>n.e(3797).then(n.bind(n,4071)),"@site/docs/build-on-morph/sdk/functions/toAddress.md",4071],"02a35c22":[()=>n.e(9849).then(n.bind(n,4735)),"@site/docs/build-on-morph/sdk/variables/DEFAULT_L1_CONTRACT_ADDRESSES.md",4735],"066c1628":[()=>n.e(9075).then(n.bind(n,3063)),"@site/docs/build-on-morph/sdk/variables/l1BridgeName.md",3063],"08313b4f":[()=>n.e(3894).then(n.bind(n,9819)),"@site/docs/build-on-morph/sdk/variables/CONTRACT_ADDRESSES.md",9819],"08b9f613":[()=>n.e(2736).then(n.bind(n,9052)),"@site/docs/about-morph/1-overview-of-morph.md",9052],"1483841d":[()=>n.e(1544).then(n.bind(n,1260)),"@site/docs/build-on-morph/sdk/interfaces/ProvenWithdrawal.md",1260],17896441:[()=>Promise.all([n.e(1869),n.e(8401)]).then(n.bind(n,278)),"@theme/DocItem",278],"1a1587e1":[()=>n.e(5678).then(n.bind(n,6837)),"@site/docs/about-morph/6-roadmap.md",6837],"1a4e3797":[()=>Promise.all([n.e(1869),n.e(2138)]).then(n.bind(n,6955)),"@theme/SearchPage",6955],"22a82985":[()=>n.e(7990).then(n.bind(n,9825)),"@site/docs/build-on-morph/developer-resources/3-morph-json-rpc-api-methods.md",9825],"24734b3e":[()=>n.e(933).then(n.bind(n,5758)),"@site/docs/build-on-morph/sdk/interfaces/StateRoot.md",5758],"25bec567":[()=>n.e(690).then(n.bind(n,660)),"@site/docs/build-on-morph/sdk/interfaces/StateRootBatch.md",660],"2a31694d":[()=>n.e(6039).then(n.bind(n,7190)),"@site/docs/build-on-morph/sdk/type-aliases/DeepPartial.md",7190],"2b4bd9da":[()=>n.e(7481).then(n.bind(n,7397)),"@site/docs/build-on-morph/sdk/interfaces/L2Transaction.md",7397],"2ef0e7db":[()=>n.e(2792).then(n.bind(n,6024)),"@site/docs/build-on-morph/build-on-morph/1-difference-between-morph-and-ethereum.md",6024],"2f19d5d4":[()=>n.e(9640).then(n.bind(n,582)),"@site/docs/build-on-morph/code-examples/1-deploy-contract-on-morph.md",582],31699625:[()=>n.e(334).then(n.t.bind(n,4061,19)),"/Users/danny.fu/morphl2/morphism-doc/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",4061],"3250a443":[()=>n.e(6935).then(n.bind(n,9148)),"@site/docs/build-on-morph/developer-resources/node-operation/upgrade-node/2-upgrade-node-docker.md",9148],"325638e1":[()=>n.e(8318).then(n.bind(n,1456)),"@site/docs/quick-start/3-faucet.md",1456],"33e57971":[()=>n.e(8343).then(n.bind(n,3853)),"@site/docs/about-morph/2-the-technology-behind-morph.md",3853],"38e6cd8b":[()=>n.e(8476).then(n.bind(n,7810)),"@site/docs/build-on-morph/sdk/functions/estimateTotalGasCost.md",7810],"39f485e7":[()=>n.e(5980).then(n.bind(n,3597)),"@site/docs/about-morph/7-faqs.md",3597],"3d947c8b":[()=>n.e(177).then(n.bind(n,3567)),"@site/docs/build-on-morph/developer-resources/node-operation/1-how-to-run-a-morph-node.md",3567],"3f6197d4":[()=>n.e(835).then(n.bind(n,1165)),"@site/docs/build-on-morph/1-intro.md",1165],"405a8a84":[()=>n.e(6632).then(n.bind(n,4080)),"@site/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/6-block-explorer.md",4080],"40b4f046":[()=>n.e(4145).then(n.bind(n,8561)),"@site/docs/build-on-morph/sdk/type-aliases/SignerOrProviderLike.md",8561],"44bbd017":[()=>n.e(5223).then(n.bind(n,3018)),"@site/docs/build-on-morph/sdk/variables/l2BridgeName.md",3018],"465c0bc5":[()=>n.e(655).then(n.bind(n,6197)),"@site/docs/build-on-morph/sdk/variables/l1CrossDomainMessengerName.md",6197],46618904:[()=>n.e(8991).then(n.bind(n,269)),"@site/docs/build-on-morph/sdk/functions/getL1GasPrice.md",269],"4784893f":[()=>n.e(2286).then(n.bind(n,6296)),"@site/docs/build-on-morph/sdk/functions/toBigNumber.md",6296],"4a10ae38":[()=>n.e(866).then(n.bind(n,6937)),"@site/docs/build-on-morph/sdk/variables/DEPOSIT_CONFIRMATION_BLOCKS.md",6937],"4a269d4a":[()=>n.e(7396).then(n.bind(n,7093)),"@site/docs/build-on-morph/sdk/interfaces/MessageReceipt.md",7093],"4cbe5783":[()=>n.e(6736).then(n.bind(n,63)),"@site/docs/build-on-morph/sdk/functions/toTransactionHash.md",63],52171187:[()=>n.e(5027).then(n.bind(n,9226)),"@site/docs/about-morph/3-where-should-i-start.md",9226],"578ca001":[()=>n.e(6142).then(n.bind(n,2111)),"@site/docs/how-morph-works/3-optimistic-zkevm.md",2111],"57c15217":[()=>n.e(4766).then(n.bind(n,3877)),"@site/docs/how-morph-works/general-protocol-design/1-rollup.md",3877],"59db22f4":[()=>n.e(3197).then(n.bind(n,4400)),"@site/docs/build-on-morph/sdk/classes/ETHBridgeAdapter.md",4400],"59f4fb6c":[()=>n.e(3186).then(n.bind(n,5637)),"@site/docs/how-morph-works/general-protocol-design/4-transactions-life-cycle.md",5637],"5a91095f":[()=>n.e(6819).then(n.bind(n,7038)),"@site/docs/build-on-morph/sdk/type-aliases/NumberLike.md",7038],"5aa3c257":[()=>n.e(7362).then(n.bind(n,1591)),"@site/docs/how-morph-works/general-protocol-design/2-communicate-between-morph-and-ethereum.md",1591],"5acb1cf6":[()=>n.e(3210).then(n.bind(n,5067)),"@site/docs/build-on-morph/sdk/interfaces/BridgeAdapterData.md",5067],"5bc5b9ce":[()=>n.e(3457).then(n.bind(n,5500)),"@site/docs/build-on-morph/build-on-morph/3-bridge-between-morph-and-ethereum.md",5500],"5c242b2e":[()=>n.e(1394).then(n.bind(n,7006)),"@site/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/3-account-abstraction.md",7006],"5e95c892":[()=>n.e(9647).then(n.bind(n,7729)),"@theme/DocsRoot",7729],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,4784)),"@generated/docusaurus.config",4784],"60479fa4":[()=>n.e(44).then(n.bind(n,314)),"@site/docs/how-morph-works/1-intro.md",314],"618914bf":[()=>n.e(9266).then(n.bind(n,7571)),"@site/docs/quick-start/1-welcome-to-morph.md",7571],"61b1ff91":[()=>n.e(8525).then(n.bind(n,6368)),"@site/docs/build-on-morph/sdk/intro.md",6368],"69301e8b":[()=>n.e(6913).then(n.bind(n,7843)),"@site/docs/build-on-morph/sdk/enumerations/L1RpcUrls.md",7843],"6a8ddb26":[()=>n.e(7762).then(n.bind(n,1839)),"@site/docs/build-on-morph/sdk/type-aliases/MessageRequestLike.md",1839],"6ba36391":[()=>n.e(9720).then(n.bind(n,2802)),"@site/docs/build-on-morph/sdk/functions/migratedWithdrawalGasLimit.md",2802],"6f037fd7":[()=>n.e(8308).then(n.bind(n,5341)),"@site/docs/build-on-morph/sdk/interfaces/L2BlockWithTransactions.md",5341],"6f5ac92b":[()=>n.e(7049).then(n.bind(n,3362)),"@site/docs/quick-start/4-bridge.md",3362],"70e8639a":[()=>n.e(5130).then(n.bind(n,9215)),"@site/docs/build-on-morph/sdk/interfaces/OEContractsLike.md",9215],"71cc7c85":[()=>n.e(586).then(n.bind(n,1352)),"@site/docs/quick-start/morph-zoo/2-voting-rules.md",1352],"720f9cb5":[()=>n.e(1141).then(n.bind(n,5763)),"@site/docs/build-on-morph/sdk/enumerations/MessageDirection.md",5763],"72171cd8":[()=>n.e(8324).then(n.bind(n,4765)),"@site/docs/build-on-morph/sdk/functions/asL2Provider.md",4765],"74fdc727":[()=>n.e(3051).then(n.bind(n,9648)),"@site/docs/quick-start/morph-zoo/1-morph-points.md",9648],"76db7a6d":[()=>n.e(408).then(n.bind(n,2658)),"@site/docs/build-on-morph/sdk/type-aliases/MessageLike.md",2658],"7824cff9":[()=>n.e(8676).then(n.bind(n,5702)),"@site/docs/build-on-morph/sdk/enumerations/L1ChainID.md",5702],"79dc0904":[()=>n.e(4405).then(n.bind(n,9525)),"@site/docs/build-on-morph/sdk/type-aliases/SignerLike.md",9525],"7a5975a7":[()=>n.e(3961).then(n.bind(n,7337)),"@site/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/4-blockchain-indexing-services.md",7337],"7c1e7b23":[()=>n.e(841).then(n.bind(n,5358)),"@site/docs/build-on-morph/sdk/interfaces/CrossChainMessageRequest.md",5358],"7c45cc48":[()=>n.e(1282).then(n.bind(n,176)),"@site/docs/build-on-morph/sdk/enumerations/L2RpcUrls.md",176],"81f29526":[()=>n.e(1508).then(n.bind(n,8338)),"@site/docs/build-on-morph/sdk/type-aliases/ProviderLike.md",8338],"82419dfd":[()=>n.e(2061).then(n.bind(n,2847)),"@site/docs/about-morph/0-user-navigation-page.md",2847],"829b4b9b":[()=>n.e(3427).then(n.bind(n,8836)),"@site/docs/build-on-morph/sdk/variables/DEFAULT_L2_CONTRACT_ADDRESSES.md",8836],"829cd294":[()=>n.e(9248).then(n.bind(n,605)),"@site/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/2-rpc-services.md",605],"833a0690":[()=>n.e(8237).then(n.bind(n,535)),"@site/docs/build-on-morph/sdk/interfaces/CrossChainMessage.md",535],"8347fa88":[()=>n.e(8752).then(n.bind(n,361)),"@site/docs/build-on-morph/code-examples/2-bridge-between-morph-and-ethereum.md",361],"8613d4b8":[()=>n.e(7975).then(n.bind(n,9135)),"@site/docs/build-on-morph/sdk/functions/omit.md",9135],"8b6091b0":[()=>n.e(8451).then(n.bind(n,7298)),"@site/docs/build-on-morph/sdk/variables/BRIDGE_ADAPTER_DATA.md",7298],"8d0b932e":[()=>n.e(2322).then(n.bind(n,724)),"@site/docs/build-on-morph/developer-resources/7-dapp-examples-on-morph.md",724],"9235c071":[()=>n.e(1971).then(n.bind(n,8283)),"@site/docs/build-on-morph/sdk/functions/hashLowLevelMessageV2.md",8283],"935f2afb":[()=>n.e(8581).then(n.t.bind(n,5610,19)),"~docs/default/version-current-metadata-prop-751.json",5610],"95a7ae32":[()=>n.e(5116).then(n.bind(n,684)),"@site/docs/build-on-morph/sdk/enumerations/MessageReceiptStatus.md",684],"979f48c0":[()=>n.e(3679).then(n.bind(n,5970)),"@site/docs/build-on-morph/sdk/interfaces/WithdrawMessageProof.md",5970],"98d1a41e":[()=>n.e(720).then(n.bind(n,5276)),"@site/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage.md",5276],"99b8a708":[()=>n.e(8371).then(n.bind(n,8037)),"@site/docs/about-morph/5-morphs-vision-and-mission.md",8037],"9a9366b1":[()=>n.e(2106).then(n.bind(n,3920)),"@site/docs/build-on-morph/sdk/interfaces/L2Block.md",3920],"9b96db99":[()=>n.e(7855).then(n.bind(n,1726)),"@site/docs/build-on-morph/sdk/type-aliases/L1Provider.md",1726],"9d4e1be7":[()=>n.e(7220).then(n.bind(n,929)),"@site/docs/build-on-morph/build-on-morph/2-development-setup.md",929],"9e1db927":[()=>n.e(2960).then(n.bind(n,6646)),"@site/docs/build-on-morph/sdk/interfaces/IBridgeAdapter.md",6646],"9e78961b":[()=>n.e(2428).then(n.bind(n,4485)),"@site/docs/build-on-morph/sdk/interfaces/OEL1Contracts.md",4485],"9fc9b620":[()=>n.e(8656).then(n.bind(n,9824)),"@site/docs/about-morph/8-key-concepts.md",9824],"9ff57eaa":[()=>n.e(6107).then(n.bind(n,2440)),"@site/docs/build-on-morph/sdk/variables/l2CrossDomainMessengerName.md",2440],a00dd934:[()=>n.e(5784).then(n.bind(n,4470)),"@site/docs/build-on-morph/sdk/variables/CHAIN_BLOCK_TIMES.md",4470],a0d49790:[()=>n.e(1243).then(n.bind(n,4957)),"@site/docs/build-on-morph/sdk/type-aliases/AddressLike.md",4957],a0d75a43:[()=>n.e(3046).then(n.bind(n,9455)),"@site/docs/build-on-morph/developer-resources/node-operation/upgrade-node/1-upgrade-node-host.md",9455],a1f831b5:[()=>n.e(6371).then(n.bind(n,284)),"@site/docs/build-on-morph/sdk/functions/estimateL2GasCost.md",284],a2db6fd6:[()=>n.e(3654).then(n.bind(n,1738)),"@site/docs/build-on-morph/sdk/enumerations/MessageStatus.md",1738],a399e926:[()=>n.e(7131).then(n.bind(n,7734)),"@site/docs/build-on-morph/sdk/functions/toNumber.md",7734],a4da47e1:[()=>n.e(4788).then(n.bind(n,9131)),"@site/docs/build-on-morph/sdk/type-aliases/L2Provider.md",9131],a5f26d61:[()=>n.e(9344).then(n.bind(n,5149)),"@site/docs/build-on-morph/sdk/type-aliases/TransactionLike.md",5149],a7bd4aaa:[()=>n.e(7098).then(n.bind(n,7220)),"@theme/DocVersionRoot",7220],a94703ab:[()=>Promise.all([n.e(1869),n.e(9048)]).then(n.bind(n,5142)),"@theme/DocRoot",5142],acba9d96:[()=>n.e(3398).then(n.t.bind(n,1966,19)),"/Users/danny.fu/morphl2/morphism-doc/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",1966],ad8d1448:[()=>n.e(5991).then(n.bind(n,3042)),"@site/docs/about-morph/4-morphs-architecture.md",3042],af91f293:[()=>n.e(2708).then(n.bind(n,2316)),"@site/docs/build-on-morph/build-on-morph/5-verify-your-smart-contracts.md",2316],b0d24208:[()=>n.e(2397).then(n.bind(n,6726)),"@site/docs/build-on-morph/sdk/interfaces/BridgeAdapters.md",6726],b4c00acc:[()=>n.e(1995).then(n.bind(n,7074)),"@site/docs/build-on-morph/sdk/functions/getAllOEContracts.md",7074],bce3eedd:[()=>n.e(6184).then(n.bind(n,2240)),"@site/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/5-blockchain-oracles.md",2240],beb6ddce:[()=>n.e(3732).then(n.bind(n,5255)),"@site/docs/build-on-morph/sdk/functions/hashMessageHash.md",5255],c07bca7c:[()=>n.e(7335).then(n.t.bind(n,7757,19)),"/Users/danny.fu/morphl2/morphism-doc/.docusaurus/docusaurus-theme-search-algolia/default/plugin-route-context-module-100.json",7757],c30bab43:[()=>n.e(6941).then(n.bind(n,8092)),"@site/docs/build-on-morph/sdk/interfaces/OEContracts.md",8092],c33d6554:[()=>n.e(8520).then(n.bind(n,6292)),"@site/docs/build-on-morph/sdk/type-aliases/OEL2ContractsLike.md",6292],c4f5d8e4:[()=>n.e(2634).then(n.bind(n,4743)),"@site/src/pages/index.js",4743],c5f7ff1a:[()=>n.e(3764).then(n.bind(n,1667)),"@site/docs/build-on-morph/sdk/type-aliases/OEL1ContractsLike.md",1667],c7ccd35b:[()=>n.e(1557).then(n.bind(n,4942)),"@site/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/1-safe-multi-signature-wallet.md",4942],ca4c51aa:[()=>n.e(4300).then(n.bind(n,5046)),"@site/docs/build-on-morph/sdk/interfaces/WithdrawalEntry.md",5046],d26d133a:[()=>n.e(2487).then(n.bind(n,3160)),"@site/docs/quick-start/2-wallet-setup.md",3160],d475c619:[()=>n.e(5042).then(n.bind(n,4394)),"@site/docs/build-on-morph/sdk/globals.md",4394],d4781eda:[()=>n.e(1201).then(n.bind(n,3317)),"@site/docs/build-on-morph/sdk/interfaces/StateRootBatchHeader.md",3317],d8273606:[()=>n.e(7275).then(n.bind(n,8233)),"@site/docs/build-on-morph/sdk/functions/getBridgeAdapters.md",8233],dcf2e50b:[()=>n.e(6232).then(n.bind(n,7e3)),"@site/docs/how-morph-works/decentralized-sequencers/1-morph-decentralized-sequencer-network.md",7e3],dfd8dfaf:[()=>n.e(7430).then(n.bind(n,2352)),"@site/docs/about-morph/key-concepts/1-optimistic-rollup.md",2352],e3875bab:[()=>n.e(6956).then(n.bind(n,7782)),"@site/docs/build-on-morph/sdk/functions/estimateL1Gas.md",7782],e3bda051:[()=>n.e(4352).then(n.bind(n,4162)),"@site/docs/build-on-morph/sdk/interfaces/IActionOptions.md",4162],e6f27cd2:[()=>n.e(7450).then(n.bind(n,225)),"@site/docs/build-on-morph/0-developer-navigation-page.md",225],e7a84acc:[()=>n.e(3667).then(n.bind(n,3169)),"@site/docs/build-on-morph/developer-resources/1-contracts.md",3169],e7f02677:[()=>n.e(4991).then(n.bind(n,3045)),"@site/docs/build-on-morph/sdk/classes/CrossChainMessenger.md",3045],e8c42455:[()=>n.e(361).then(n.bind(n,2635)),"@site/docs/build-on-morph/sdk/functions/estimateL1GasCost.md",2635],e8fcecf9:[()=>n.e(3918).then(n.bind(n,8413)),"@site/docs/build-on-morph/sdk/enumerations/L2ChainID.md",8413],e912b961:[()=>n.e(4116).then(n.bind(n,9866)),"@site/docs/build-on-morph/sdk/functions/getOEContract.md",9866],eac819ad:[()=>n.e(569).then(n.bind(n,9621)),"@site/docs/build-on-morph/sdk/type-aliases/LowLevelMessage.md",9621],ec29823a:[()=>n.e(3838).then(n.bind(n,4921)),"@site/docs/build-on-morph/developer-resources/node-operation/3-how-to-run-a-validator-node.md",4921],ed22c7e9:[()=>n.e(2188).then(n.bind(n,991)),"@site/docs/build-on-morph/developer-resources/node-operation/2-how-to-run-a-morph-node-docker.md",991],f435c040:[()=>n.e(2500).then(n.bind(n,1297)),"@site/docs/build-on-morph/sdk/functions/toSignerOrProvider.md",1297],f619ad04:[()=>n.e(6290).then(n.bind(n,9408)),"@site/docs/build-on-morph/developer-resources/node-operation/4-prune-state.md",9408],f6623e93:[()=>n.e(9200).then(n.bind(n,935)),"@site/docs/how-morph-works/2-morph-modular-design.md",935],f93d7a3b:[()=>n.e(8898).then(n.bind(n,7029)),"@site/docs/build-on-morph/sdk/functions/isL2Provider.md",7029],fac53bf8:[()=>n.e(4305).then(n.bind(n,2864)),"@site/docs/build-on-morph/build-on-morph/4-understand-transaction-cost-on-morph.md",2864],fb24aa13:[()=>n.e(5107).then(n.bind(n,9546)),"@site/docs/build-on-morph/sdk/classes/StandardBridgeAdapter.md",9546],fb26d209:[()=>n.e(7e3).then(n.bind(n,3647)),"@site/docs/build-on-morph/developer-resources/2-how-to-run-a-morph-node.md",3647],fda70fd8:[()=>n.e(1311).then(n.bind(n,7634)),"@site/docs/build-on-morph/sdk/interfaces/OEL2Contracts.md",7634],fdc91eb1:[()=>n.e(4908).then(n.bind(n,3332)),"@site/docs/how-morph-works/general-protocol-design/5-difference-between-ethereum-and-morph.md",3332],fe9c53f2:[()=>n.e(1688).then(n.bind(n,2918)),"@site/docs/build-on-morph/sdk/functions/toProvider.md",2918],ff883f18:[()=>n.e(999).then(n.bind(n,2578)),"@site/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage.md",2578]};var s=n(3274);function l(e){let{error:t,retry:n,pastDelay:r}=e;return t?(0,s.jsxs)("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"},children:[(0,s.jsx)("p",{children:String(t)}),(0,s.jsx)("div",{children:(0,s.jsx)("button",{type:"button",onClick:n,children:"Retry"})})]}):r?(0,s.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:(0,s.jsx)("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb",children:(0,s.jsxs)("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2",children:[(0,s.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,s.jsx)("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,s.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,s.jsx)("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,s.jsx)("circle",{cx:"22",cy:"22",r:"8",children:(0,s.jsx)("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"})})]})})}):null}var c=n(1688),u=n(1079);function d(e,t){if("*"===e)return o()({loading:l,loader:()=>n.e(1965).then(n.bind(n,1965)),modules:["@theme/NotFound"],webpack:()=>[1965],render(e,t){const n=e.default;return(0,s.jsx)(u.W,{value:{plugin:{name:"native",id:"default"}},children:(0,s.jsx)(n,{...t})})}});const r=a[`${e}-${t}`],d={},p=[],f=[],h=(0,c.A)(r);return Object.entries(h).forEach((e=>{let[t,n]=e;const r=i[n];r&&(d[t]=r[0],p.push(r[1]),f.push(r[2]))})),o().Map({loading:l,loader:d,modules:p,webpack:()=>f,render(t,n){const o=JSON.parse(JSON.stringify(r));Object.entries(t).forEach((t=>{let[n,r]=t;const a=r.default;if(!a)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof a&&"function"!=typeof a||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{a[e]=r[e]}));let i=o;const s=n.split(".");s.slice(0,-1).forEach((e=>{i=i[e]})),i[s[s.length-1]]=a}));const a=o.__comp;delete o.__comp;const i=o.__context;return delete o.__context,(0,s.jsx)(u.W,{value:i,children:(0,s.jsx)(a,{...o,...n})})}})}const p=[{path:"/search",component:d("/search","69a"),exact:!0},{path:"/docs",component:d("/docs","b37"),routes:[{path:"/docs",component:d("/docs","ed2"),routes:[{path:"/docs",component:d("/docs","8a8"),routes:[{path:"/docs/about-morph/faqs",component:d("/docs/about-morph/faqs","db6"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/about-morph/key-concepts",component:d("/docs/about-morph/key-concepts","b1a"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/about-morph/key-concepts/optimistic-rollup",component:d("/docs/about-morph/key-concepts/optimistic-rollup","ec2"),exact:!0},{path:"/docs/about-morph/morphs-architecture",component:d("/docs/about-morph/morphs-architecture","1e7"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/about-morph/morphs-vision-and-mission",component:d("/docs/about-morph/morphs-vision-and-mission","cd4"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/about-morph/overview-of-morph",component:d("/docs/about-morph/overview-of-morph","d84"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/about-morph/roadmap",component:d("/docs/about-morph/roadmap","460"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/about-morph/the-technology-behind-morph",component:d("/docs/about-morph/the-technology-behind-morph","b44"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/about-morph/user-navigation-page",component:d("/docs/about-morph/user-navigation-page","19e"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/about-morph/where-should-i-start",component:d("/docs/about-morph/where-should-i-start","e58"),exact:!0},{path:"/docs/build-on-morph/build-on-morph/bridge-between-morph-and-ethereum",component:d("/docs/build-on-morph/build-on-morph/bridge-between-morph-and-ethereum","59b"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/build-on-morph/build-on-morph/development-setup",component:d("/docs/build-on-morph/build-on-morph/development-setup","d4d"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/build-on-morph/build-on-morph/difference-between-morph-and-ethereum",component:d("/docs/build-on-morph/build-on-morph/difference-between-morph-and-ethereum","545"),exact:!0},{path:"/docs/build-on-morph/build-on-morph/understand-transaction-cost-on-morph",component:d("/docs/build-on-morph/build-on-morph/understand-transaction-cost-on-morph","fc4"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/build-on-morph/build-on-morph/verify-your-smart-contracts",component:d("/docs/build-on-morph/build-on-morph/verify-your-smart-contracts","120"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/build-on-morph/code-examples/bridge-between-morph-and-ethereum",component:d("/docs/build-on-morph/code-examples/bridge-between-morph-and-ethereum","ed4"),exact:!0},{path:"/docs/build-on-morph/code-examples/deploy-contract-on-morph",component:d("/docs/build-on-morph/code-examples/deploy-contract-on-morph","5af"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/build-on-morph/developer-navigation-page",component:d("/docs/build-on-morph/developer-navigation-page","6f3"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/build-on-morph/developer-resources/contracts",component:d("/docs/build-on-morph/developer-resources/contracts","51b"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/build-on-morph/developer-resources/dapp-examples-on-morph",component:d("/docs/build-on-morph/developer-resources/dapp-examples-on-morph","899"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/build-on-morph/developer-resources/how-to-run-a-morph-node",component:d("/docs/build-on-morph/developer-resources/how-to-run-a-morph-node","a6b"),exact:!0},{path:"/docs/build-on-morph/developer-resources/morph-json-rpc-api-methods",component:d("/docs/build-on-morph/developer-resources/morph-json-rpc-api-methods","c1b"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node",component:d("/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node","698"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node-docker",component:d("/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node-docker","d81"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-validator-node",component:d("/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-validator-node","df7"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/build-on-morph/developer-resources/node-operation/prune-state",component:d("/docs/build-on-morph/developer-resources/node-operation/prune-state","e28"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-docker",component:d("/docs/build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-docker","fb2"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-host",component:d("/docs/build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-host","d69"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/account-abstraction",component:d("/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/account-abstraction","924"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/block-explorer",component:d("/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/block-explorer","cce"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-indexing-services",component:d("/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-indexing-services","b59"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-oracles",component:d("/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-oracles","b1d"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/rpc-services",component:d("/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/rpc-services","072"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/safe-multi-signature-wallet",component:d("/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/safe-multi-signature-wallet","d7e"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/build-on-morph/intro",component:d("/docs/build-on-morph/intro","235"),exact:!0},{path:"/docs/build-on-morph/sdk/classes/CrossChainMessenger",component:d("/docs/build-on-morph/sdk/classes/CrossChainMessenger","71f"),exact:!0},{path:"/docs/build-on-morph/sdk/classes/ETHBridgeAdapter",component:d("/docs/build-on-morph/sdk/classes/ETHBridgeAdapter","e0f"),exact:!0},{path:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter",component:d("/docs/build-on-morph/sdk/classes/StandardBridgeAdapter","be7"),exact:!0},{path:"/docs/build-on-morph/sdk/enumerations/L1ChainID",component:d("/docs/build-on-morph/sdk/enumerations/L1ChainID","bfe"),exact:!0},{path:"/docs/build-on-morph/sdk/enumerations/L1RpcUrls",component:d("/docs/build-on-morph/sdk/enumerations/L1RpcUrls","212"),exact:!0},{path:"/docs/build-on-morph/sdk/enumerations/L2ChainID",component:d("/docs/build-on-morph/sdk/enumerations/L2ChainID","e8e"),exact:!0},{path:"/docs/build-on-morph/sdk/enumerations/L2RpcUrls",component:d("/docs/build-on-morph/sdk/enumerations/L2RpcUrls","7f9"),exact:!0},{path:"/docs/build-on-morph/sdk/enumerations/MessageDirection",component:d("/docs/build-on-morph/sdk/enumerations/MessageDirection","681"),exact:!0},{path:"/docs/build-on-morph/sdk/enumerations/MessageReceiptStatus",component:d("/docs/build-on-morph/sdk/enumerations/MessageReceiptStatus","1f3"),exact:!0},{path:"/docs/build-on-morph/sdk/enumerations/MessageStatus",component:d("/docs/build-on-morph/sdk/enumerations/MessageStatus","a5a"),exact:!0},{path:"/docs/build-on-morph/sdk/functions/asL2Provider",component:d("/docs/build-on-morph/sdk/functions/asL2Provider","4b1"),exact:!0},{path:"/docs/build-on-morph/sdk/functions/estimateL1Gas",component:d("/docs/build-on-morph/sdk/functions/estimateL1Gas","a2f"),exact:!0},{path:"/docs/build-on-morph/sdk/functions/estimateL1GasCost",component:d("/docs/build-on-morph/sdk/functions/estimateL1GasCost","06e"),exact:!0},{path:"/docs/build-on-morph/sdk/functions/estimateL2GasCost",component:d("/docs/build-on-morph/sdk/functions/estimateL2GasCost","20f"),exact:!0},{path:"/docs/build-on-morph/sdk/functions/estimateTotalGasCost",component:d("/docs/build-on-morph/sdk/functions/estimateTotalGasCost","bc5"),exact:!0},{path:"/docs/build-on-morph/sdk/functions/getAllOEContracts",component:d("/docs/build-on-morph/sdk/functions/getAllOEContracts","91e"),exact:!0},{path:"/docs/build-on-morph/sdk/functions/getBridgeAdapters",component:d("/docs/build-on-morph/sdk/functions/getBridgeAdapters","5d3"),exact:!0},{path:"/docs/build-on-morph/sdk/functions/getL1GasPrice",component:d("/docs/build-on-morph/sdk/functions/getL1GasPrice","68c"),exact:!0},{path:"/docs/build-on-morph/sdk/functions/getOEContract",component:d("/docs/build-on-morph/sdk/functions/getOEContract","ea0"),exact:!0},{path:"/docs/build-on-morph/sdk/functions/hashLowLevelMessageV2",component:d("/docs/build-on-morph/sdk/functions/hashLowLevelMessageV2","301"),exact:!0},{path:"/docs/build-on-morph/sdk/functions/hashMessageHash",component:d("/docs/build-on-morph/sdk/functions/hashMessageHash","f9c"),exact:!0},{path:"/docs/build-on-morph/sdk/functions/isL2Provider",component:d("/docs/build-on-morph/sdk/functions/isL2Provider","0a3"),exact:!0},{path:"/docs/build-on-morph/sdk/functions/migratedWithdrawalGasLimit",component:d("/docs/build-on-morph/sdk/functions/migratedWithdrawalGasLimit","a8f"),exact:!0},{path:"/docs/build-on-morph/sdk/functions/omit",component:d("/docs/build-on-morph/sdk/functions/omit","31d"),exact:!0},{path:"/docs/build-on-morph/sdk/functions/toAddress",component:d("/docs/build-on-morph/sdk/functions/toAddress","52d"),exact:!0},{path:"/docs/build-on-morph/sdk/functions/toBigNumber",component:d("/docs/build-on-morph/sdk/functions/toBigNumber","1cd"),exact:!0},{path:"/docs/build-on-morph/sdk/functions/toNumber",component:d("/docs/build-on-morph/sdk/functions/toNumber","47f"),exact:!0},{path:"/docs/build-on-morph/sdk/functions/toProvider",component:d("/docs/build-on-morph/sdk/functions/toProvider","b81"),exact:!0},{path:"/docs/build-on-morph/sdk/functions/toSignerOrProvider",component:d("/docs/build-on-morph/sdk/functions/toSignerOrProvider","474"),exact:!0},{path:"/docs/build-on-morph/sdk/functions/toTransactionHash",component:d("/docs/build-on-morph/sdk/functions/toTransactionHash","b90"),exact:!0},{path:"/docs/build-on-morph/sdk/globals",component:d("/docs/build-on-morph/sdk/globals","a28"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/build-on-morph/sdk/interfaces/BridgeAdapterData",component:d("/docs/build-on-morph/sdk/interfaces/BridgeAdapterData","658"),exact:!0},{path:"/docs/build-on-morph/sdk/interfaces/BridgeAdapters",component:d("/docs/build-on-morph/sdk/interfaces/BridgeAdapters","6e5"),exact:!0},{path:"/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage",component:d("/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage","e90"),exact:!0},{path:"/docs/build-on-morph/sdk/interfaces/CrossChainMessage",component:d("/docs/build-on-morph/sdk/interfaces/CrossChainMessage","6a8"),exact:!0},{path:"/docs/build-on-morph/sdk/interfaces/CrossChainMessageRequest",component:d("/docs/build-on-morph/sdk/interfaces/CrossChainMessageRequest","c6e"),exact:!0},{path:"/docs/build-on-morph/sdk/interfaces/IActionOptions",component:d("/docs/build-on-morph/sdk/interfaces/IActionOptions","32e"),exact:!0},{path:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter",component:d("/docs/build-on-morph/sdk/interfaces/IBridgeAdapter","d75"),exact:!0},{path:"/docs/build-on-morph/sdk/interfaces/L2Block",component:d("/docs/build-on-morph/sdk/interfaces/L2Block","526"),exact:!0},{path:"/docs/build-on-morph/sdk/interfaces/L2BlockWithTransactions",component:d("/docs/build-on-morph/sdk/interfaces/L2BlockWithTransactions","fd3"),exact:!0},{path:"/docs/build-on-morph/sdk/interfaces/L2Transaction",component:d("/docs/build-on-morph/sdk/interfaces/L2Transaction","107"),exact:!0},{path:"/docs/build-on-morph/sdk/interfaces/MessageReceipt",component:d("/docs/build-on-morph/sdk/interfaces/MessageReceipt","c6d"),exact:!0},{path:"/docs/build-on-morph/sdk/interfaces/OEContracts",component:d("/docs/build-on-morph/sdk/interfaces/OEContracts","174"),exact:!0},{path:"/docs/build-on-morph/sdk/interfaces/OEContractsLike",component:d("/docs/build-on-morph/sdk/interfaces/OEContractsLike","86e"),exact:!0},{path:"/docs/build-on-morph/sdk/interfaces/OEL1Contracts",component:d("/docs/build-on-morph/sdk/interfaces/OEL1Contracts","8b8"),exact:!0},{path:"/docs/build-on-morph/sdk/interfaces/OEL2Contracts",component:d("/docs/build-on-morph/sdk/interfaces/OEL2Contracts","9ec"),exact:!0},{path:"/docs/build-on-morph/sdk/interfaces/ProvenWithdrawal",component:d("/docs/build-on-morph/sdk/interfaces/ProvenWithdrawal","8b3"),exact:!0},{path:"/docs/build-on-morph/sdk/interfaces/StateRoot",component:d("/docs/build-on-morph/sdk/interfaces/StateRoot","5a3"),exact:!0},{path:"/docs/build-on-morph/sdk/interfaces/StateRootBatch",component:d("/docs/build-on-morph/sdk/interfaces/StateRootBatch","65f"),exact:!0},{path:"/docs/build-on-morph/sdk/interfaces/StateRootBatchHeader",component:d("/docs/build-on-morph/sdk/interfaces/StateRootBatchHeader","8f3"),exact:!0},{path:"/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage",component:d("/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage","f09"),exact:!0},{path:"/docs/build-on-morph/sdk/interfaces/WithdrawalEntry",component:d("/docs/build-on-morph/sdk/interfaces/WithdrawalEntry","faa"),exact:!0},{path:"/docs/build-on-morph/sdk/interfaces/WithdrawMessageProof",component:d("/docs/build-on-morph/sdk/interfaces/WithdrawMessageProof","545"),exact:!0},{path:"/docs/build-on-morph/sdk/intro",component:d("/docs/build-on-morph/sdk/intro","542"),exact:!0},{path:"/docs/build-on-morph/sdk/type-aliases/AddressLike",component:d("/docs/build-on-morph/sdk/type-aliases/AddressLike","bac"),exact:!0},{path:"/docs/build-on-morph/sdk/type-aliases/DeepPartial",component:d("/docs/build-on-morph/sdk/type-aliases/DeepPartial","7e6"),exact:!0},{path:"/docs/build-on-morph/sdk/type-aliases/L1Provider",component:d("/docs/build-on-morph/sdk/type-aliases/L1Provider","8de"),exact:!0},{path:"/docs/build-on-morph/sdk/type-aliases/L2Provider",component:d("/docs/build-on-morph/sdk/type-aliases/L2Provider","181"),exact:!0},{path:"/docs/build-on-morph/sdk/type-aliases/LowLevelMessage",component:d("/docs/build-on-morph/sdk/type-aliases/LowLevelMessage","968"),exact:!0},{path:"/docs/build-on-morph/sdk/type-aliases/MessageLike",component:d("/docs/build-on-morph/sdk/type-aliases/MessageLike","5c1"),exact:!0},{path:"/docs/build-on-morph/sdk/type-aliases/MessageRequestLike",component:d("/docs/build-on-morph/sdk/type-aliases/MessageRequestLike","eb0"),exact:!0},{path:"/docs/build-on-morph/sdk/type-aliases/NumberLike",component:d("/docs/build-on-morph/sdk/type-aliases/NumberLike","214"),exact:!0},{path:"/docs/build-on-morph/sdk/type-aliases/OEL1ContractsLike",component:d("/docs/build-on-morph/sdk/type-aliases/OEL1ContractsLike","6f6"),exact:!0},{path:"/docs/build-on-morph/sdk/type-aliases/OEL2ContractsLike",component:d("/docs/build-on-morph/sdk/type-aliases/OEL2ContractsLike","84a"),exact:!0},{path:"/docs/build-on-morph/sdk/type-aliases/ProviderLike",component:d("/docs/build-on-morph/sdk/type-aliases/ProviderLike","2fe"),exact:!0},{path:"/docs/build-on-morph/sdk/type-aliases/SignerLike",component:d("/docs/build-on-morph/sdk/type-aliases/SignerLike","e63"),exact:!0},{path:"/docs/build-on-morph/sdk/type-aliases/SignerOrProviderLike",component:d("/docs/build-on-morph/sdk/type-aliases/SignerOrProviderLike","681"),exact:!0},{path:"/docs/build-on-morph/sdk/type-aliases/TransactionLike",component:d("/docs/build-on-morph/sdk/type-aliases/TransactionLike","5b2"),exact:!0},{path:"/docs/build-on-morph/sdk/variables/BRIDGE_ADAPTER_DATA",component:d("/docs/build-on-morph/sdk/variables/BRIDGE_ADAPTER_DATA","e80"),exact:!0},{path:"/docs/build-on-morph/sdk/variables/CHAIN_BLOCK_TIMES",component:d("/docs/build-on-morph/sdk/variables/CHAIN_BLOCK_TIMES","c46"),exact:!0},{path:"/docs/build-on-morph/sdk/variables/CONTRACT_ADDRESSES",component:d("/docs/build-on-morph/sdk/variables/CONTRACT_ADDRESSES","c94"),exact:!0},{path:"/docs/build-on-morph/sdk/variables/DEFAULT_L1_CONTRACT_ADDRESSES",component:d("/docs/build-on-morph/sdk/variables/DEFAULT_L1_CONTRACT_ADDRESSES","302"),exact:!0},{path:"/docs/build-on-morph/sdk/variables/DEFAULT_L2_CONTRACT_ADDRESSES",component:d("/docs/build-on-morph/sdk/variables/DEFAULT_L2_CONTRACT_ADDRESSES","f2f"),exact:!0},{path:"/docs/build-on-morph/sdk/variables/DEPOSIT_CONFIRMATION_BLOCKS",component:d("/docs/build-on-morph/sdk/variables/DEPOSIT_CONFIRMATION_BLOCKS","e9d"),exact:!0},{path:"/docs/build-on-morph/sdk/variables/l1BridgeName",component:d("/docs/build-on-morph/sdk/variables/l1BridgeName","58e"),exact:!0},{path:"/docs/build-on-morph/sdk/variables/l1CrossDomainMessengerName",component:d("/docs/build-on-morph/sdk/variables/l1CrossDomainMessengerName","55b"),exact:!0},{path:"/docs/build-on-morph/sdk/variables/l2BridgeName",component:d("/docs/build-on-morph/sdk/variables/l2BridgeName","8bb"),exact:!0},{path:"/docs/build-on-morph/sdk/variables/l2CrossDomainMessengerName",component:d("/docs/build-on-morph/sdk/variables/l2CrossDomainMessengerName","ce4"),exact:!0},{path:"/docs/how-morph-works/decentralized-sequencers/morph-decentralized-sequencer-network",component:d("/docs/how-morph-works/decentralized-sequencers/morph-decentralized-sequencer-network","76b"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/how-morph-works/general-protocol-design/communicate-between-morph-and-ethereum",component:d("/docs/how-morph-works/general-protocol-design/communicate-between-morph-and-ethereum","2f6"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/how-morph-works/general-protocol-design/difference-between-ethereum-and-morph",component:d("/docs/how-morph-works/general-protocol-design/difference-between-ethereum-and-morph","1d1"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/how-morph-works/general-protocol-design/rollup",component:d("/docs/how-morph-works/general-protocol-design/rollup","ec8"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/how-morph-works/general-protocol-design/transactions-life-cycle",component:d("/docs/how-morph-works/general-protocol-design/transactions-life-cycle","313"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/how-morph-works/intro",component:d("/docs/how-morph-works/intro","b70"),exact:!0},{path:"/docs/how-morph-works/morph-modular-design",component:d("/docs/how-morph-works/morph-modular-design","700"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/how-morph-works/optimistic-zkevm",component:d("/docs/how-morph-works/optimistic-zkevm","e3e"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/quick-start/bridge",component:d("/docs/quick-start/bridge","199"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/quick-start/faucet",component:d("/docs/quick-start/faucet","b32"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/quick-start/morph-zoo/morph-points",component:d("/docs/quick-start/morph-zoo/morph-points","5cd"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/quick-start/morph-zoo/voting-rules",component:d("/docs/quick-start/morph-zoo/voting-rules","106"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/quick-start/wallet-setup",component:d("/docs/quick-start/wallet-setup","8e9"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/quick-start/welcome-to-morph",component:d("/docs/quick-start/welcome-to-morph","570"),exact:!0}]}]}]},{path:"/",component:d("/","9a2"),exact:!0},{path:"*",component:d("*")}]},3916:(e,t,n)=>{"use strict";n.d(t,{o:()=>a,x:()=>i});var r=n(9474),o=n(3274);const a=r.createContext(!1);function i(e){let{children:t}=e;const[n,i]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{i(!0)}),[]),(0,o.jsx)(a.Provider,{value:n,children:t})}},9090:(e,t,n)=>{"use strict";var r=n(9474),o=n(8088),a=n(9202),i=n(9620),s=n(6388);const l=[n(5981),n(2116),n(7942),n(5130),n(7086)];var c=n(6974),u=n(241),d=n(7221),p=n(3274);function f(e){let{children:t}=e;return(0,p.jsx)(p.Fragment,{children:t})}var h=n(609),m=n(2403),g=n(4184),b=n(4359),v=n(961),y=n(5156),w=n(8414),k=n(7928),x=n(2753),S=n(7047);function _(){const{i18n:{currentLocale:e,defaultLocale:t,localeConfigs:n}}=(0,m.A)(),r=(0,y.o)(),o=n[e].htmlLang,a=e=>e.replace("-","_");return(0,p.jsxs)(h.A,{children:[Object.entries(n).map((e=>{let[t,{htmlLang:n}]=e;return(0,p.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:n},t)})),(0,p.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}),(0,p.jsx)("meta",{property:"og:locale",content:a(o)}),Object.values(n).filter((e=>o!==e.htmlLang)).map((e=>(0,p.jsx)("meta",{property:"og:locale:alternate",content:a(e.htmlLang)},`meta-og-${e.htmlLang}`)))]})}function C(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,m.A)(),r=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,m.A)(),{pathname:r}=(0,u.zy)();return e+(0,x.applyTrailingSlash)((0,g.A)(r),{trailingSlash:n,baseUrl:t})}(),o=t?`${n}${t}`:r;return(0,p.jsxs)(h.A,{children:[(0,p.jsx)("meta",{property:"og:url",content:o}),(0,p.jsx)("link",{rel:"canonical",href:o})]})}function E(){const{i18n:{currentLocale:e}}=(0,m.A)(),{metadata:t,image:n}=(0,b.p)();return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)(h.A,{children:[(0,p.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,p.jsx)("body",{className:w.w})]}),n&&(0,p.jsx)(v.be,{image:n}),(0,p.jsx)(C,{}),(0,p.jsx)(_,{}),(0,p.jsx)(S.A,{tag:k.Cy,locale:e}),(0,p.jsx)(h.A,{children:t.map(((e,t)=>(0,p.jsx)("meta",{...e},t)))})]})}const A=new Map;function L(e){if(A.has(e.pathname))return{...e,pathname:A.get(e.pathname)};if((0,d.u)(c.A,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return A.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return A.set(e.pathname,t),{...e,pathname:t}}var T=n(3916),j=n(8821),R=n(9154);function N(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];const o=l.map((t=>{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>o.forEach((e=>e?.()))}const O=function(e){let{children:t,location:n,previousLocation:r}=e;return(0,R.A)((()=>{r!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,o=t.hash===n.hash,a=t.search===n.search;if(r&&o&&!a)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:r}),N("onRouteDidUpdate",{previousLocation:r,location:n}))}),[r,n]),t};function P(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.u)(c.A,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class D extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=s.A.canUseDOM?N("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=N("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),P(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return(0,p.jsx)(O,{previousLocation:this.previousLocation,location:t,children:(0,p.jsx)(u.qh,{location:t,render:()=>e})})}}const M=D,I="__docusaurus-base-url-issue-banner-container",F="__docusaurus-base-url-issue-banner",B="__docusaurus-base-url-issue-banner-suggestion-container";function z(e){return`\ndocument.addEventListener('DOMContentLoaded', function maybeInsertBanner() {\n var shouldInsert = typeof window['docusaurus'] === 'undefined';\n shouldInsert && insertBanner();\n});\n\nfunction insertBanner() {\n var bannerContainer = document.createElement('div');\n bannerContainer.id = '${I}';\n var bannerHtml = ${JSON.stringify(function(e){return`\n<div id="${F}" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">${e}</span> ${"/"===e?" (default value)":""}</p>\n <p>We suggest trying baseUrl = <span id="${B}" style="font-weight: bold; color: green;"></span></p>\n</div>\n`}(e)).replace(/</g,"\\<")};\n bannerContainer.innerHTML = bannerHtml;\n document.body.prepend(bannerContainer);\n var suggestionContainer = document.getElementById('${B}');\n var actualHomePagePath = window.location.pathname;\n var suggestedBaseUrl = actualHomePagePath.substr(-1) === '/'\n ? actualHomePagePath\n : actualHomePagePath + '/';\n suggestionContainer.innerHTML = suggestedBaseUrl;\n}\n`}function U(){const{siteConfig:{baseUrl:e}}=(0,m.A)();return(0,p.jsx)(p.Fragment,{children:!s.A.canUseDOM&&(0,p.jsx)(h.A,{children:(0,p.jsx)("script",{children:z(e)})})})}function V(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,m.A)(),{pathname:n}=(0,u.zy)();return t&&n===e?(0,p.jsx)(U,{}):null}function q(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:r,localeConfigs:o}}=(0,m.A)(),a=(0,g.A)(e),{htmlLang:i,direction:s}=o[r];return(0,p.jsxs)(h.A,{children:[(0,p.jsx)("html",{lang:i,dir:s}),(0,p.jsx)("title",{children:t}),(0,p.jsx)("meta",{property:"og:title",content:t}),(0,p.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&(0,p.jsx)("meta",{name:"robots",content:"noindex, nofollow"}),e&&(0,p.jsx)("link",{rel:"icon",href:a})]})}var W=n(617),$=n(170);function G(){const e=(0,$.A)();return(0,p.jsx)(h.A,{children:(0,p.jsx)("html",{"data-has-hydrated":e})})}function H(){const e=(0,d.v)(c.A),t=(0,u.zy)();return(0,p.jsx)(W.A,{children:(0,p.jsx)(j.l,{children:(0,p.jsxs)(T.x,{children:[(0,p.jsxs)(f,{children:[(0,p.jsx)(q,{}),(0,p.jsx)(E,{}),(0,p.jsx)(V,{}),(0,p.jsx)(M,{location:L(t),children:e})]}),(0,p.jsx)(G,{})]})})})}var Z=n(4054);const Y=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const o=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;o?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var X=n(1688);const K=new Set,J=new Set,Q=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,ee={prefetch(e){if(!(e=>!Q()&&!J.has(e)&&!K.has(e))(e))return!1;K.add(e);const t=(0,d.u)(c.A,e).flatMap((e=>{return t=e.route.path,Object.entries(Z).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,X.A)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?Y(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!Q()&&!J.has(e))(e)&&(J.add(e),P(e))},te=Object.freeze(ee),ne=Boolean(!0);if(s.A.canUseDOM){window.docusaurus=te;const e=document.getElementById("__docusaurus"),t=(0,p.jsx)(i.vd,{children:(0,p.jsx)(a.Kd,{children:(0,p.jsx)(H,{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},s=()=>{if(ne)r.startTransition((()=>{o.hydrateRoot(e,t,{onRecoverableError:n})}));else{const a=o.createRoot(e,{onRecoverableError:n});r.startTransition((()=>{a.render(t)}))}};P(window.location.pathname).then(s)}},8821:(e,t,n)=>{"use strict";n.d(t,{o:()=>d,l:()=>p});var r=n(9474),o=n(4784);const a=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/docs","versions":[{"name":"current","label":"Next","isLast":true,"path":"/docs","mainDocId":"about-morph/user-navigation-page","docs":[{"id":"about-morph/faqs","path":"/docs/about-morph/faqs","sidebar":"DeveloperSidebar"},{"id":"about-morph/key-concepts","path":"/docs/about-morph/key-concepts","sidebar":"DeveloperSidebar"},{"id":"about-morph/key-concepts/optimistic-rollup","path":"/docs/about-morph/key-concepts/optimistic-rollup"},{"id":"about-morph/morphs-architecture","path":"/docs/about-morph/morphs-architecture","sidebar":"DeveloperSidebar"},{"id":"about-morph/morphs-vision-and-mission","path":"/docs/about-morph/morphs-vision-and-mission","sidebar":"DeveloperSidebar"},{"id":"about-morph/overview-of-morph","path":"/docs/about-morph/overview-of-morph","sidebar":"DeveloperSidebar"},{"id":"about-morph/roadmap","path":"/docs/about-morph/roadmap","sidebar":"DeveloperSidebar"},{"id":"about-morph/the-technology-behind-morph","path":"/docs/about-morph/the-technology-behind-morph","sidebar":"DeveloperSidebar"},{"id":"about-morph/user-navigation-page","path":"/docs/about-morph/user-navigation-page","sidebar":"DeveloperSidebar"},{"id":"about-morph/where-should-i-start","path":"/docs/about-morph/where-should-i-start"},{"id":"build-on-morph/build-on-morph/bridge-between-morph-and-ethereum","path":"/docs/build-on-morph/build-on-morph/bridge-between-morph-and-ethereum","sidebar":"DeveloperSidebar"},{"id":"build-on-morph/build-on-morph/development-setup","path":"/docs/build-on-morph/build-on-morph/development-setup","sidebar":"DeveloperSidebar"},{"id":"build-on-morph/build-on-morph/difference-between-morph-and-ethereum","path":"/docs/build-on-morph/build-on-morph/difference-between-morph-and-ethereum"},{"id":"build-on-morph/build-on-morph/understand-transaction-cost-on-morph","path":"/docs/build-on-morph/build-on-morph/understand-transaction-cost-on-morph","sidebar":"DeveloperSidebar"},{"id":"build-on-morph/build-on-morph/verify-your-smart-contracts","path":"/docs/build-on-morph/build-on-morph/verify-your-smart-contracts","sidebar":"DeveloperSidebar"},{"id":"build-on-morph/code-examples/bridge-between-morph-and-ethereum","path":"/docs/build-on-morph/code-examples/bridge-between-morph-and-ethereum"},{"id":"build-on-morph/code-examples/deploy-contract-on-morph","path":"/docs/build-on-morph/code-examples/deploy-contract-on-morph","sidebar":"DeveloperSidebar"},{"id":"build-on-morph/developer-navigation-page","path":"/docs/build-on-morph/developer-navigation-page","sidebar":"DeveloperSidebar"},{"id":"build-on-morph/developer-resources/contracts","path":"/docs/build-on-morph/developer-resources/contracts","sidebar":"DeveloperSidebar"},{"id":"build-on-morph/developer-resources/dapp-examples-on-morph","path":"/docs/build-on-morph/developer-resources/dapp-examples-on-morph","sidebar":"DeveloperSidebar"},{"id":"build-on-morph/developer-resources/how-to-run-a-morph-node","path":"/docs/build-on-morph/developer-resources/how-to-run-a-morph-node"},{"id":"build-on-morph/developer-resources/morph-json-rpc-api-methods","path":"/docs/build-on-morph/developer-resources/morph-json-rpc-api-methods","sidebar":"DeveloperSidebar"},{"id":"build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node","path":"/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node","sidebar":"DeveloperSidebar"},{"id":"build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node-docker","path":"/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node-docker","sidebar":"DeveloperSidebar"},{"id":"build-on-morph/developer-resources/node-operation/how-to-run-a-validator-node","path":"/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-validator-node","sidebar":"DeveloperSidebar"},{"id":"build-on-morph/developer-resources/node-operation/prune-state","path":"/docs/build-on-morph/developer-resources/node-operation/prune-state","sidebar":"DeveloperSidebar"},{"id":"build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-docker","path":"/docs/build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-docker","sidebar":"DeveloperSidebar"},{"id":"build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-host","path":"/docs/build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-host","sidebar":"DeveloperSidebar"},{"id":"build-on-morph/developer-resources/use-ecosystem-developer-tools/account-abstraction","path":"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/account-abstraction","sidebar":"DeveloperSidebar"},{"id":"build-on-morph/developer-resources/use-ecosystem-developer-tools/block-explorer","path":"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/block-explorer","sidebar":"DeveloperSidebar"},{"id":"build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-indexing-services","path":"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-indexing-services","sidebar":"DeveloperSidebar"},{"id":"build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-oracles","path":"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-oracles","sidebar":"DeveloperSidebar"},{"id":"build-on-morph/developer-resources/use-ecosystem-developer-tools/rpc-services","path":"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/rpc-services","sidebar":"DeveloperSidebar"},{"id":"build-on-morph/developer-resources/use-ecosystem-developer-tools/safe-multi-signature-wallet","path":"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/safe-multi-signature-wallet","sidebar":"DeveloperSidebar"},{"id":"build-on-morph/intro","path":"/docs/build-on-morph/intro"},{"id":"build-on-morph/sdk/classes/CrossChainMessenger","path":"/docs/build-on-morph/sdk/classes/CrossChainMessenger"},{"id":"build-on-morph/sdk/classes/ETHBridgeAdapter","path":"/docs/build-on-morph/sdk/classes/ETHBridgeAdapter"},{"id":"build-on-morph/sdk/classes/StandardBridgeAdapter","path":"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter"},{"id":"build-on-morph/sdk/enumerations/L1ChainID","path":"/docs/build-on-morph/sdk/enumerations/L1ChainID"},{"id":"build-on-morph/sdk/enumerations/L1RpcUrls","path":"/docs/build-on-morph/sdk/enumerations/L1RpcUrls"},{"id":"build-on-morph/sdk/enumerations/L2ChainID","path":"/docs/build-on-morph/sdk/enumerations/L2ChainID"},{"id":"build-on-morph/sdk/enumerations/L2RpcUrls","path":"/docs/build-on-morph/sdk/enumerations/L2RpcUrls"},{"id":"build-on-morph/sdk/enumerations/MessageDirection","path":"/docs/build-on-morph/sdk/enumerations/MessageDirection"},{"id":"build-on-morph/sdk/enumerations/MessageReceiptStatus","path":"/docs/build-on-morph/sdk/enumerations/MessageReceiptStatus"},{"id":"build-on-morph/sdk/enumerations/MessageStatus","path":"/docs/build-on-morph/sdk/enumerations/MessageStatus"},{"id":"build-on-morph/sdk/functions/asL2Provider","path":"/docs/build-on-morph/sdk/functions/asL2Provider"},{"id":"build-on-morph/sdk/functions/estimateL1Gas","path":"/docs/build-on-morph/sdk/functions/estimateL1Gas"},{"id":"build-on-morph/sdk/functions/estimateL1GasCost","path":"/docs/build-on-morph/sdk/functions/estimateL1GasCost"},{"id":"build-on-morph/sdk/functions/estimateL2GasCost","path":"/docs/build-on-morph/sdk/functions/estimateL2GasCost"},{"id":"build-on-morph/sdk/functions/estimateTotalGasCost","path":"/docs/build-on-morph/sdk/functions/estimateTotalGasCost"},{"id":"build-on-morph/sdk/functions/getAllOEContracts","path":"/docs/build-on-morph/sdk/functions/getAllOEContracts"},{"id":"build-on-morph/sdk/functions/getBridgeAdapters","path":"/docs/build-on-morph/sdk/functions/getBridgeAdapters"},{"id":"build-on-morph/sdk/functions/getL1GasPrice","path":"/docs/build-on-morph/sdk/functions/getL1GasPrice"},{"id":"build-on-morph/sdk/functions/getOEContract","path":"/docs/build-on-morph/sdk/functions/getOEContract"},{"id":"build-on-morph/sdk/functions/hashLowLevelMessageV2","path":"/docs/build-on-morph/sdk/functions/hashLowLevelMessageV2"},{"id":"build-on-morph/sdk/functions/hashMessageHash","path":"/docs/build-on-morph/sdk/functions/hashMessageHash"},{"id":"build-on-morph/sdk/functions/isL2Provider","path":"/docs/build-on-morph/sdk/functions/isL2Provider"},{"id":"build-on-morph/sdk/functions/migratedWithdrawalGasLimit","path":"/docs/build-on-morph/sdk/functions/migratedWithdrawalGasLimit"},{"id":"build-on-morph/sdk/functions/omit","path":"/docs/build-on-morph/sdk/functions/omit"},{"id":"build-on-morph/sdk/functions/toAddress","path":"/docs/build-on-morph/sdk/functions/toAddress"},{"id":"build-on-morph/sdk/functions/toBigNumber","path":"/docs/build-on-morph/sdk/functions/toBigNumber"},{"id":"build-on-morph/sdk/functions/toNumber","path":"/docs/build-on-morph/sdk/functions/toNumber"},{"id":"build-on-morph/sdk/functions/toProvider","path":"/docs/build-on-morph/sdk/functions/toProvider"},{"id":"build-on-morph/sdk/functions/toSignerOrProvider","path":"/docs/build-on-morph/sdk/functions/toSignerOrProvider"},{"id":"build-on-morph/sdk/functions/toTransactionHash","path":"/docs/build-on-morph/sdk/functions/toTransactionHash"},{"id":"build-on-morph/sdk/globals","path":"/docs/build-on-morph/sdk/globals","sidebar":"DeveloperSidebar"},{"id":"build-on-morph/sdk/interfaces/BridgeAdapterData","path":"/docs/build-on-morph/sdk/interfaces/BridgeAdapterData"},{"id":"build-on-morph/sdk/interfaces/BridgeAdapters","path":"/docs/build-on-morph/sdk/interfaces/BridgeAdapters"},{"id":"build-on-morph/sdk/interfaces/CoreCrossChainMessage","path":"/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage"},{"id":"build-on-morph/sdk/interfaces/CrossChainMessage","path":"/docs/build-on-morph/sdk/interfaces/CrossChainMessage"},{"id":"build-on-morph/sdk/interfaces/CrossChainMessageRequest","path":"/docs/build-on-morph/sdk/interfaces/CrossChainMessageRequest"},{"id":"build-on-morph/sdk/interfaces/IActionOptions","path":"/docs/build-on-morph/sdk/interfaces/IActionOptions"},{"id":"build-on-morph/sdk/interfaces/IBridgeAdapter","path":"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter"},{"id":"build-on-morph/sdk/interfaces/L2Block","path":"/docs/build-on-morph/sdk/interfaces/L2Block"},{"id":"build-on-morph/sdk/interfaces/L2BlockWithTransactions","path":"/docs/build-on-morph/sdk/interfaces/L2BlockWithTransactions"},{"id":"build-on-morph/sdk/interfaces/L2Transaction","path":"/docs/build-on-morph/sdk/interfaces/L2Transaction"},{"id":"build-on-morph/sdk/interfaces/MessageReceipt","path":"/docs/build-on-morph/sdk/interfaces/MessageReceipt"},{"id":"build-on-morph/sdk/interfaces/OEContracts","path":"/docs/build-on-morph/sdk/interfaces/OEContracts"},{"id":"build-on-morph/sdk/interfaces/OEContractsLike","path":"/docs/build-on-morph/sdk/interfaces/OEContractsLike"},{"id":"build-on-morph/sdk/interfaces/OEL1Contracts","path":"/docs/build-on-morph/sdk/interfaces/OEL1Contracts"},{"id":"build-on-morph/sdk/interfaces/OEL2Contracts","path":"/docs/build-on-morph/sdk/interfaces/OEL2Contracts"},{"id":"build-on-morph/sdk/interfaces/ProvenWithdrawal","path":"/docs/build-on-morph/sdk/interfaces/ProvenWithdrawal"},{"id":"build-on-morph/sdk/interfaces/StateRoot","path":"/docs/build-on-morph/sdk/interfaces/StateRoot"},{"id":"build-on-morph/sdk/interfaces/StateRootBatch","path":"/docs/build-on-morph/sdk/interfaces/StateRootBatch"},{"id":"build-on-morph/sdk/interfaces/StateRootBatchHeader","path":"/docs/build-on-morph/sdk/interfaces/StateRootBatchHeader"},{"id":"build-on-morph/sdk/interfaces/TokenBridgeMessage","path":"/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage"},{"id":"build-on-morph/sdk/interfaces/WithdrawalEntry","path":"/docs/build-on-morph/sdk/interfaces/WithdrawalEntry"},{"id":"build-on-morph/sdk/interfaces/WithdrawMessageProof","path":"/docs/build-on-morph/sdk/interfaces/WithdrawMessageProof"},{"id":"build-on-morph/sdk/intro","path":"/docs/build-on-morph/sdk/intro"},{"id":"build-on-morph/sdk/type-aliases/AddressLike","path":"/docs/build-on-morph/sdk/type-aliases/AddressLike"},{"id":"build-on-morph/sdk/type-aliases/DeepPartial","path":"/docs/build-on-morph/sdk/type-aliases/DeepPartial"},{"id":"build-on-morph/sdk/type-aliases/L1Provider","path":"/docs/build-on-morph/sdk/type-aliases/L1Provider"},{"id":"build-on-morph/sdk/type-aliases/L2Provider","path":"/docs/build-on-morph/sdk/type-aliases/L2Provider"},{"id":"build-on-morph/sdk/type-aliases/LowLevelMessage","path":"/docs/build-on-morph/sdk/type-aliases/LowLevelMessage"},{"id":"build-on-morph/sdk/type-aliases/MessageLike","path":"/docs/build-on-morph/sdk/type-aliases/MessageLike"},{"id":"build-on-morph/sdk/type-aliases/MessageRequestLike","path":"/docs/build-on-morph/sdk/type-aliases/MessageRequestLike"},{"id":"build-on-morph/sdk/type-aliases/NumberLike","path":"/docs/build-on-morph/sdk/type-aliases/NumberLike"},{"id":"build-on-morph/sdk/type-aliases/OEL1ContractsLike","path":"/docs/build-on-morph/sdk/type-aliases/OEL1ContractsLike"},{"id":"build-on-morph/sdk/type-aliases/OEL2ContractsLike","path":"/docs/build-on-morph/sdk/type-aliases/OEL2ContractsLike"},{"id":"build-on-morph/sdk/type-aliases/ProviderLike","path":"/docs/build-on-morph/sdk/type-aliases/ProviderLike"},{"id":"build-on-morph/sdk/type-aliases/SignerLike","path":"/docs/build-on-morph/sdk/type-aliases/SignerLike"},{"id":"build-on-morph/sdk/type-aliases/SignerOrProviderLike","path":"/docs/build-on-morph/sdk/type-aliases/SignerOrProviderLike"},{"id":"build-on-morph/sdk/type-aliases/TransactionLike","path":"/docs/build-on-morph/sdk/type-aliases/TransactionLike"},{"id":"build-on-morph/sdk/variables/BRIDGE_ADAPTER_DATA","path":"/docs/build-on-morph/sdk/variables/BRIDGE_ADAPTER_DATA"},{"id":"build-on-morph/sdk/variables/CHAIN_BLOCK_TIMES","path":"/docs/build-on-morph/sdk/variables/CHAIN_BLOCK_TIMES"},{"id":"build-on-morph/sdk/variables/CONTRACT_ADDRESSES","path":"/docs/build-on-morph/sdk/variables/CONTRACT_ADDRESSES"},{"id":"build-on-morph/sdk/variables/DEFAULT_L1_CONTRACT_ADDRESSES","path":"/docs/build-on-morph/sdk/variables/DEFAULT_L1_CONTRACT_ADDRESSES"},{"id":"build-on-morph/sdk/variables/DEFAULT_L2_CONTRACT_ADDRESSES","path":"/docs/build-on-morph/sdk/variables/DEFAULT_L2_CONTRACT_ADDRESSES"},{"id":"build-on-morph/sdk/variables/DEPOSIT_CONFIRMATION_BLOCKS","path":"/docs/build-on-morph/sdk/variables/DEPOSIT_CONFIRMATION_BLOCKS"},{"id":"build-on-morph/sdk/variables/l1BridgeName","path":"/docs/build-on-morph/sdk/variables/l1BridgeName"},{"id":"build-on-morph/sdk/variables/l1CrossDomainMessengerName","path":"/docs/build-on-morph/sdk/variables/l1CrossDomainMessengerName"},{"id":"build-on-morph/sdk/variables/l2BridgeName","path":"/docs/build-on-morph/sdk/variables/l2BridgeName"},{"id":"build-on-morph/sdk/variables/l2CrossDomainMessengerName","path":"/docs/build-on-morph/sdk/variables/l2CrossDomainMessengerName"},{"id":"how-morph-works/decentralized-sequencers/morph-decentralized-sequencer-network","path":"/docs/how-morph-works/decentralized-sequencers/morph-decentralized-sequencer-network","sidebar":"DeveloperSidebar"},{"id":"how-morph-works/general-protocol-design/communicate-between-morph-and-ethereum","path":"/docs/how-morph-works/general-protocol-design/communicate-between-morph-and-ethereum","sidebar":"DeveloperSidebar"},{"id":"how-morph-works/general-protocol-design/difference-between-ethereum-and-morph","path":"/docs/how-morph-works/general-protocol-design/difference-between-ethereum-and-morph","sidebar":"DeveloperSidebar"},{"id":"how-morph-works/general-protocol-design/rollup","path":"/docs/how-morph-works/general-protocol-design/rollup","sidebar":"DeveloperSidebar"},{"id":"how-morph-works/general-protocol-design/transactions-life-cycle","path":"/docs/how-morph-works/general-protocol-design/transactions-life-cycle","sidebar":"DeveloperSidebar"},{"id":"how-morph-works/intro","path":"/docs/how-morph-works/intro"},{"id":"how-morph-works/morph-modular-design","path":"/docs/how-morph-works/morph-modular-design","sidebar":"DeveloperSidebar"},{"id":"how-morph-works/optimistic-zkevm","path":"/docs/how-morph-works/optimistic-zkevm","sidebar":"DeveloperSidebar"},{"id":"quick-start/bridge","path":"/docs/quick-start/bridge","sidebar":"DeveloperSidebar"},{"id":"quick-start/faucet","path":"/docs/quick-start/faucet","sidebar":"DeveloperSidebar"},{"id":"quick-start/morph-zoo/morph-points","path":"/docs/quick-start/morph-zoo/morph-points","sidebar":"DeveloperSidebar"},{"id":"quick-start/morph-zoo/voting-rules","path":"/docs/quick-start/morph-zoo/voting-rules","sidebar":"DeveloperSidebar"},{"id":"quick-start/wallet-setup","path":"/docs/quick-start/wallet-setup","sidebar":"DeveloperSidebar"},{"id":"quick-start/welcome-to-morph","path":"/docs/quick-start/welcome-to-morph"}],"draftIds":[],"sidebars":{"UserSidebar":{"link":{"path":"/docs/about-morph/user-navigation-page","label":"about-morph/user-navigation-page"}},"DeveloperSidebar":{"link":{"path":"/docs/about-morph/user-navigation-page","label":"about-morph/user-navigation-page"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var s=n(2654);const l=JSON.parse('{"docusaurusVersion":"3.1.1","siteVersion":"4.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.1.1"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"3.1.1"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.1.1"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.1.1"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.1.1"},"docusaurus-theme-search-algolia":{"type":"package","name":"@docusaurus/theme-search-algolia","version":"3.1.1"},"docusaurus-plugin-sass":{"type":"package","name":"docusaurus-plugin-sass","version":"0.2.5"},"docusaurus-tailwindcss":{"type":"local"},"docusaurus-plugin-client-redirects":{"type":"package","name":"@docusaurus/plugin-client-redirects","version":"3.1.1"}}}');var c=n(3274);const u={siteConfig:o.default,siteMetadata:l,globalData:a,i18n:i,codeTranslations:s},d=r.createContext(u);function p(e){let{children:t}=e;return(0,c.jsx)(d.Provider,{value:u,children:t})}},617:(e,t,n)=>{"use strict";n.d(t,{A:()=>f});var r=n(9474),o=n(6388),a=n(609),i=n(2753),s=n(7367),l=n(3274);function c(e){let{error:t,tryAgain:n}=e;return(0,l.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"},children:[(0,l.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,l.jsx)("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,l.jsx)(u,{error:t})]})}function u(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,l.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:n})}function d(e){let{error:t,tryAgain:n}=e;return(0,l.jsxs)(f,{fallback:()=>(0,l.jsx)(c,{error:t,tryAgain:n}),children:[(0,l.jsx)(a.A,{children:(0,l.jsx)("title",{children:"Page Error"})}),(0,l.jsx)(s.A,{children:(0,l.jsx)(c,{error:t,tryAgain:n})})]})}const p=e=>(0,l.jsx)(d,{...e});class f extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){o.A.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??p)(e)}return e??null}}},6388:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,o={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},609:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});n(9474);var r=n(9620),o=n(3274);function a(e){return(0,o.jsx)(r.mg,{...e})}},8379:(e,t,n)=>{"use strict";n.d(t,{A:()=>f});var r=n(9474),o=n(9202),a=n(2753),i=n(2403),s=n(2473),l=n(6388),c=n(2797),u=n(4184),d=n(3274);function p(e,t){let{isNavLink:n,to:p,href:f,activeClassName:h,isActive:m,"data-noBrokenLinkCheck":g,autoAddBaseUrl:b=!0,...v}=e;const{siteConfig:{trailingSlash:y,baseUrl:w}}=(0,i.A)(),{withBaseUrl:k}=(0,u.h)(),x=(0,c.A)(),S=(0,r.useRef)(null);(0,r.useImperativeHandle)(t,(()=>S.current));const _=p||f;const C=(0,s.A)(_),E=_?.replace("pathname://","");let A=void 0!==E?(L=E,b&&(e=>e.startsWith("/"))(L)?k(L):L):void 0;var L;A&&C&&(A=(0,a.applyTrailingSlash)(A,{trailingSlash:y,baseUrl:w}));const T=(0,r.useRef)(!1),j=n?o.k2:o.N_,R=l.A.canUseIntersectionObserver,N=(0,r.useRef)(),O=()=>{T.current||null==A||(window.docusaurus.preload(A),T.current=!0)};(0,r.useEffect)((()=>(!R&&C&&null!=A&&window.docusaurus.prefetch(A),()=>{R&&N.current&&N.current.disconnect()})),[N,A,R,C]);const P=A?.startsWith("#")??!1,D=!v.target||"_self"===v.target,M=!A||!C||!D||P;return g||!P&&M||x.collectLink(A),v.id&&x.collectAnchor(v.id),M?(0,d.jsx)("a",{ref:S,href:A,..._&&!C&&{target:"_blank",rel:"noopener noreferrer"},...v}):(0,d.jsx)(j,{...v,onMouseEnter:O,onTouchStart:O,innerRef:e=>{S.current=e,R&&e&&C&&(N.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(N.current.unobserve(e),N.current.disconnect(),null!=A&&window.docusaurus.prefetch(A))}))})),N.current.observe(e))},to:A,...n&&{isActive:m,activeClassName:h}})}const f=r.forwardRef(p)},1598:(e,t,n)=>{"use strict";n.d(t,{A:()=>c,T:()=>l});var r=n(9474),o=n(3274);function a(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var i=n(2654);function s(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[t??n]??n??t}function l(e,t){let{message:n,id:r}=e;return a(s({message:n,id:r}),t)}function c(e){let{children:t,id:n,values:r}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal <Translate> children",t),new Error("The Docusaurus <Translate> component only accept simple string values");const i=s({message:t,id:n});return(0,o.jsx)(o.Fragment,{children:a(i,r)})}},6130:(e,t,n)=>{"use strict";n.d(t,{W:()=>r});const r="default"},2473:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function o(e){return void 0!==e&&!r(e)}n.d(t,{A:()=>o,z:()=>r})},4184:(e,t,n)=>{"use strict";n.d(t,{A:()=>s,h:()=>i});var r=n(9474),o=n(2403),a=n(2473);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,o.A)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:o=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,a.z)(n))return n;if(o)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const s=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+s:s}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function s(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},2797:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(9474);n(3274);const o=r.createContext({collectAnchor:()=>{},collectLink:()=>{}}),a=()=>(0,r.useContext)(o);function i(){return a()}},2403:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(9474),o=n(8821);function a(){return(0,r.useContext)(o.o)}},170:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(9474),o=n(3916);function a(){return(0,r.useContext)(o.o)}},9154:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(9474);const o=n(6388).A.canUseDOM?r.useLayoutEffect:r.useEffect},1688:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function o(e){const t={};return function e(n,o){Object.entries(n).forEach((n=>{let[a,i]=n;const s=o?`${o}.${a}`:a;r(i)?e(i,s):t[s]=i}))}(e),t}},1079:(e,t,n)=>{"use strict";n.d(t,{W:()=>i,o:()=>a});var r=n(9474),o=n(3274);const a=r.createContext(null);function i(e){let{children:t,value:n}=e;const i=r.useContext(a),s=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:i,value:n})),[i,n]);return(0,o.jsx)(a.Provider,{value:s,children:t})}},4800:(e,t,n)=>{"use strict";n.d(t,{zK:()=>b,vT:()=>f,gk:()=>h,Gy:()=>d,HW:()=>v,ht:()=>p,r7:()=>g,jh:()=>m});var r=n(241),o=n(2403),a=n(6130);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,o.A)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const s=e=>e.versions.find((e=>e.isLast));function l(e,t){const n=s(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.B6)(t,{path:e.path,exact:!1,strict:!1})))}function c(e,t){const n=l(e,t),o=n?.docs.find((e=>!!(0,r.B6)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:o,alternateDocVersions:o?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(o.id):{}}}const u={},d=()=>i("docusaurus-plugin-content-docs")??u,p=e=>function(e,t,n){void 0===t&&(t=a.W),void 0===n&&(n={});const r=i(e),o=r?.[t];if(!o&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return o}("docusaurus-plugin-content-docs",e,{failfast:!0});function f(e){void 0===e&&(e={});const t=d(),{pathname:n}=(0,r.zy)();return function(e,t,n){void 0===n&&(n={});const o=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.B6)(t,{path:n.path,exact:!1,strict:!1})})),a=o?{pluginId:o[0],pluginData:o[1]}:void 0;if(!a&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return a}(t,n,e)}function h(e){void 0===e&&(e={});const t=f(e),{pathname:n}=(0,r.zy)();if(!t)return;return{activePlugin:t,activeVersion:l(t.pluginData,n)}}function m(e){return p(e).versions}function g(e){const t=p(e);return s(t)}function b(e){const t=p(e),{pathname:n}=(0,r.zy)();return c(t,n)}function v(e){const t=p(e),{pathname:n}=(0,r.zy)();return function(e,t){const n=s(e);return{latestDocSuggestion:c(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},6849:(e,t,n)=>{"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function o(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(){return i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}var s=n(9474),l=n(2736),c=[],u=[];function d(e){var t=e(),n={loading:!0,loaded:null,error:null};return n.promise=t.then((function(e){return n.loading=!1,n.loaded=e,e})).catch((function(e){throw n.loading=!1,n.error=e,e})),n}function p(e){var t={loading:!1,loaded:{},error:null},n=[];try{Object.keys(e).forEach((function(r){var o=d(e[r]);o.loading?t.loading=!0:(t.loaded[r]=o.loaded,t.error=o.error),n.push(o.promise),o.promise.then((function(e){t.loaded[r]=e})).catch((function(e){t.error=e}))}))}catch(r){t.error=r}return t.promise=Promise.all(n).then((function(e){return t.loading=!1,e})).catch((function(e){throw t.loading=!1,e})),t}function f(e,t){return s.createElement((n=e)&&n.__esModule?n.default:n,t);var n}function h(e,t){var d,p;if(!t.loading)throw new Error("react-loadable requires a `loading` component");var h=i({loader:null,loading:null,delay:200,timeout:null,render:f,webpack:null,modules:null},t),m=null;function g(){return m||(m=e(h.loader)),m.promise}return c.push(g),"function"==typeof h.webpack&&u.push((function(){if((0,h.webpack)().every((function(e){return void 0!==e&&void 0!==n.m[e]})))return g()})),p=d=function(t){function n(n){var r;return a(o(o(r=t.call(this,n)||this)),"retry",(function(){r.setState({error:null,loading:!0,timedOut:!1}),m=e(h.loader),r._loadModule()})),g(),r.state={error:m.error,pastDelay:!1,timedOut:!1,loading:m.loading,loaded:m.loaded},r}r(n,t),n.preload=function(){return g()};var i=n.prototype;return i.UNSAFE_componentWillMount=function(){this._loadModule()},i.componentDidMount=function(){this._mounted=!0},i._loadModule=function(){var e=this;if(this.context.loadable&&Array.isArray(h.modules)&&h.modules.forEach((function(t){e.context.loadable.report(t)})),m.loading){var t=function(t){e._mounted&&e.setState(t)};"number"==typeof h.delay&&(0===h.delay?this.setState({pastDelay:!0}):this._delay=setTimeout((function(){t({pastDelay:!0})}),h.delay)),"number"==typeof h.timeout&&(this._timeout=setTimeout((function(){t({timedOut:!0})}),h.timeout));var n=function(){t({error:m.error,loaded:m.loaded,loading:m.loading}),e._clearTimeouts()};m.promise.then((function(){return n(),null})).catch((function(e){return n(),null}))}},i.componentWillUnmount=function(){this._mounted=!1,this._clearTimeouts()},i._clearTimeouts=function(){clearTimeout(this._delay),clearTimeout(this._timeout)},i.render=function(){return this.state.loading||this.state.error?s.createElement(h.loading,{isLoading:this.state.loading,pastDelay:this.state.pastDelay,timedOut:this.state.timedOut,error:this.state.error,retry:this.retry}):this.state.loaded?h.render(this.state.loaded,this.props):null},n}(s.Component),a(d,"contextTypes",{loadable:l.shape({report:l.func.isRequired})}),p}function m(e){return h(d,e)}m.Map=function(e){if("function"!=typeof e.render)throw new Error("LoadableMap requires a `render(loaded, props)` function");return h(p,e)};var g=function(e){function t(){return e.apply(this,arguments)||this}r(t,e);var n=t.prototype;return n.getChildContext=function(){return{loadable:{report:this.props.report}}},n.render=function(){return s.Children.only(this.props.children)},t}(s.Component);function b(e){for(var t=[];e.length;){var n=e.pop();t.push(n())}return Promise.all(t).then((function(){if(e.length)return b(e)}))}a(g,"propTypes",{report:l.func.isRequired}),a(g,"childContextTypes",{loadable:l.shape({report:l.func.isRequired}).isRequired}),m.Capture=g,m.preloadAll=function(){return new Promise((function(e,t){b(c).then(e,t)}))},m.preloadReady=function(){return new Promise((function(e,t){b(u).then(e,e)}))},e.exports=m},7942:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(8744),o=n.n(r);o().configure({showSpinner:!1});const a={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{o().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){o().done()}}},2116:(e,t,n)=>{"use strict";n.r(t);var r=n(369),o=n(4784);!function(e){const{themeConfig:{prism:t}}=o.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{"php"===e&&n(1274),n(8881)(`./prism-${e}`)})),delete globalThis.Prism}(r.My)},9382:(e,t,n)=>{"use strict";n.d(t,{A:()=>u});n(9474);var r=n(8923),o=n(1598),a=n(4359),i=n(8379),s=n(2797);const l={anchorWithStickyNavbar:"anchorWithStickyNavbar_an0H",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_W1Gw"};var c=n(3274);function u(e){let{as:t,id:n,...u}=e;const d=(0,s.A)(),{navbar:{hideOnScroll:p}}=(0,a.p)();if("h1"===t||!n)return(0,c.jsx)(t,{...u,id:void 0});d.collectAnchor(n);const f=(0,o.T)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof u.children?u.children:n});return(0,c.jsxs)(t,{...u,className:(0,r.A)("anchor",p?l.anchorWithHideOnScrollNavbar:l.anchorWithStickyNavbar,u.className),id:n,children:[u.children,(0,c.jsx)(i.A,{className:"hash-link",to:`#${n}`,"aria-label":f,title:f,children:"\u200b"})]})}},6350:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});n(9474);const r={iconExternalLink:"iconExternalLink_wCmh"};var o=n(3274);function a(e){let{width:t=13.5,height:n=13.5}=e;return(0,o.jsx)("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:r.iconExternalLink,children:(0,o.jsx)("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"})})}},7367:(e,t,n)=>{"use strict";n.d(t,{A:()=>Gt});var r=n(9474),o=n(8923),a=n(617),i=n(961),s=n(241),l=n(1598),c=n(7097),u=n(3274);const d="__docusaurus_skipToContent_fallback";function p(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function f(){const e=(0,r.useRef)(null),{action:t}=(0,s.W6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&p(t)}),[]);return(0,c.$)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&p(e.current)})),{containerRef:e,onClick:n}}const h=(0,l.T)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function m(e){const t=e.children??h,{containerRef:n,onClick:r}=f();return(0,u.jsx)("div",{ref:n,role:"region","aria-label":h,children:(0,u.jsx)("a",{...e,href:`#${d}`,onClick:r,children:t})})}var g=n(1552),b=n(8414);const v={skipToContent:"skipToContent__k5K"};function y(){return(0,u.jsx)(m,{className:v.skipToContent})}var w=n(4359),k=n(7760);function x(e){let{width:t=21,height:n=21,color:r="currentColor",strokeWidth:o=1.2,className:a,...i}=e;return(0,u.jsx)("svg",{viewBox:"0 0 15 15",width:t,height:n,...i,children:(0,u.jsx)("g",{stroke:r,strokeWidth:o,children:(0,u.jsx)("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})})})}const S={closeButton:"closeButton_QXR6"};function _(e){return(0,u.jsx)("button",{type:"button","aria-label":(0,l.T)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"}),...e,className:(0,o.A)("clean-btn close",S.closeButton,e.className),children:(0,u.jsx)(x,{width:14,height:14,strokeWidth:3.1})})}const C={content:"content_SSOG"};function E(e){const{announcementBar:t}=(0,w.p)(),{content:n}=t;return(0,u.jsx)("div",{...e,className:(0,o.A)(C.content,e.className),dangerouslySetInnerHTML:{__html:n}})}const A={announcementBar:"announcementBar_YClq",announcementBarPlaceholder:"announcementBarPlaceholder_Qmwd",announcementBarClose:"announcementBarClose_w_TL",announcementBarContent:"announcementBarContent_WoJ0"};function L(){const{announcementBar:e}=(0,w.p)(),{isActive:t,close:n}=(0,k.Mj)();if(!t)return null;const{backgroundColor:r,textColor:o,isCloseable:a}=e;return(0,u.jsxs)("div",{className:A.announcementBar,style:{backgroundColor:r,color:o},role:"banner",children:[a&&(0,u.jsx)("div",{className:A.announcementBarPlaceholder}),(0,u.jsx)(E,{className:A.announcementBarContent}),a&&(0,u.jsx)(_,{onClick:n,className:A.announcementBarClose})]})}var T=n(8340),j=n(3839);var R=n(5461),N=n(3725);const O=r.createContext(null);function P(e){let{children:t}=e;const n=function(){const e=(0,T.M)(),t=(0,N.YL)(),[n,o]=(0,r.useState)(!1),a=null!==t.component,i=(0,R.ZC)(a);return(0,r.useEffect)((()=>{a&&!i&&o(!0)}),[a,i]),(0,r.useEffect)((()=>{a?e.shown||o(!0):o(!1)}),[e.shown,a]),(0,r.useMemo)((()=>[n,o]),[n])}();return(0,u.jsx)(O.Provider,{value:n,children:t})}function D(e){if(e.component){const t=e.component;return(0,u.jsx)(t,{...e.props})}}function M(){const e=(0,r.useContext)(O);if(!e)throw new R.dV("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,o=(0,r.useCallback)((()=>n(!1)),[n]),a=(0,N.YL)();return(0,r.useMemo)((()=>({shown:t,hide:o,content:D(a)})),[o,a,t])}function I(e){let{header:t,primaryMenu:n,secondaryMenu:r}=e;const{shown:a}=M();return(0,u.jsxs)("div",{className:"navbar-sidebar",children:[t,(0,u.jsxs)("div",{className:(0,o.A)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":a}),children:[(0,u.jsx)("div",{className:"navbar-sidebar__item menu",children:n}),(0,u.jsx)("div",{className:"navbar-sidebar__item menu",children:r})]})]})}var F=n(2888),B=n(170);function z(e){return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,u.jsx)("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"})})}function U(e){return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,u.jsx)("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"})})}const V={toggle:"toggle_KhJ_",toggleButton:"toggleButton_NdO2",darkToggleIcon:"darkToggleIcon_Jumi",lightToggleIcon:"lightToggleIcon_IrFl",toggleButtonDisabled:"toggleButtonDisabled_TU4i"};function q(e){let{className:t,buttonClassName:n,value:r,onChange:a}=e;const i=(0,B.A)(),s=(0,l.T)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===r?(0,l.T)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,l.T)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return(0,u.jsx)("div",{className:(0,o.A)(V.toggle,t),children:(0,u.jsxs)("button",{className:(0,o.A)("clean-btn",V.toggleButton,!i&&V.toggleButtonDisabled,n),type:"button",onClick:()=>a("dark"===r?"light":"dark"),disabled:!i,title:s,"aria-label":s,"aria-live":"polite",children:[(0,u.jsx)(z,{className:(0,o.A)(V.toggleIcon,V.lightToggleIcon)}),(0,u.jsx)(U,{className:(0,o.A)(V.toggleIcon,V.darkToggleIcon)})]})})}const W=r.memo(q),$={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_uYg4"};function G(e){let{className:t}=e;const n=(0,w.p)().navbar.style,r=(0,w.p)().colorMode.disableSwitch,{colorMode:o,setColorMode:a}=(0,F.G)();return r?null:(0,u.jsx)(W,{className:t,buttonClassName:"dark"===n?$.darkNavbarColorModeToggle:void 0,value:o,onChange:a})}var H=n(9193);function Z(){return(0,u.jsx)(H.A,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function Y(){const e=(0,T.M)();return(0,u.jsx)("button",{type:"button","aria-label":(0,l.T)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle(),children:(0,u.jsx)(x,{color:"var(--ifm-color-emphasis-600)"})})}function X(){return(0,u.jsxs)("div",{className:"navbar-sidebar__brand",children:[(0,u.jsx)(Z,{}),(0,u.jsx)(G,{className:"margin-right--md"}),(0,u.jsx)(Y,{})]})}var K=n(8379),J=n(4184),Q=n(2473),ee=n(8803),te=n(6350);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:r,href:o,label:a,html:i,isDropdownLink:s,prependBaseUrlToHref:l,...c}=e;const d=(0,J.A)(r),p=(0,J.A)(t),f=(0,J.A)(o,{forcePrependBaseUrl:!0}),h=a&&o&&!(0,Q.A)(o),m=i?{dangerouslySetInnerHTML:{__html:i}}:{children:(0,u.jsxs)(u.Fragment,{children:[a,h&&(0,u.jsx)(te.A,{...s&&{width:12,height:12}})]})};return o?(0,u.jsx)(K.A,{href:l?f:o,...c,...m}):(0,u.jsx)(K.A,{to:d,isNavLink:!0,...(t||n)&&{isActive:(e,t)=>n?(0,ee.G)(n,t.pathname):t.pathname.startsWith(p)},...c,...m})}function re(e){let{className:t,isDropdownItem:n=!1,...r}=e;const a=(0,u.jsx)(ne,{className:(0,o.A)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n,...r});return n?(0,u.jsx)("li",{children:a}):a}function oe(e){let{className:t,isDropdownItem:n,...r}=e;return(0,u.jsx)("li",{className:"menu__list-item",children:(0,u.jsx)(ne,{className:(0,o.A)("menu__link",t),...r})})}function ae(e){let{mobile:t=!1,position:n,...r}=e;const o=t?oe:re;return(0,u.jsx)(o,{...r,activeClassName:r.activeClassName??(t?"menu__link--active":"navbar__link--active")})}var ie=n(3635),se=n(8098),le=n(2403);const ce={dropdownNavbarItemMobile:"dropdownNavbarItemMobile_tJ5K"};function ue(e,t){return e.some((e=>function(e,t){return!!(0,se.ys)(e.to,t)||!!(0,ee.G)(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function de(e){let{items:t,position:n,className:a,onClick:i,...s}=e;const l=(0,r.useRef)(null),[c,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{l.current&&!l.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[l]),(0,u.jsxs)("div",{ref:l,className:(0,o.A)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":c}),children:[(0,u.jsx)(ne,{"aria-haspopup":"true","aria-expanded":c,role:"button",href:s.to?void 0:"#",className:(0,o.A)("navbar__link",a),...s,onClick:s.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!c))},children:s.children??s.label}),(0,u.jsx)("ul",{className:"dropdown__menu",children:t.map(((e,t)=>(0,r.createElement)(Ge,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t})))})]})}function pe(e){let{items:t,className:n,position:a,onClick:i,...l}=e;const c=function(){const{siteConfig:{baseUrl:e}}=(0,le.A)(),{pathname:t}=(0,s.zy)();return t.replace(e,"/")}(),d=ue(t,c),{collapsed:p,toggleCollapsed:f,setCollapsed:h}=(0,ie.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&h(!d)}),[c,d,h]),(0,u.jsxs)("li",{className:(0,o.A)("menu__list-item",{"menu__list-item--collapsed":p}),children:[(0,u.jsx)(ne,{role:"button",className:(0,o.A)(ce.dropdownNavbarItemMobile,"menu__link menu__link--sublist menu__link--sublist-caret",n),...l,onClick:e=>{e.preventDefault(),f()},children:l.children??l.label}),(0,u.jsx)(ie.N,{lazy:!0,as:"ul",className:"menu__list",collapsed:p,children:t.map(((e,t)=>(0,r.createElement)(Ge,{mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active",...e,key:t})))})]})}function fe(e){let{mobile:t=!1,...n}=e;const r=t?pe:de;return(0,u.jsx)(r,{...n})}var he=n(5156);function me(e){let{width:t=20,height:n=20,...r}=e;return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0,...r,children:(0,u.jsx)("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"})})}const ge="iconLanguage_Ihod";function be(){return r.createElement("svg",{width:"15",height:"15",className:"DocSearch-Control-Key-Icon"},r.createElement("path",{d:"M4.505 4.496h2M5.505 5.496v5M8.216 4.496l.055 5.993M10 7.5c.333.333.5.667.5 1v2M12.326 4.5v5.996M8.384 4.496c1.674 0 2.116 0 2.116 1.5s-.442 1.5-2.116 1.5M3.205 9.303c-.09.448-.277 1.21-1.241 1.203C1 10.5.5 9.513.5 8V7c0-1.57.5-2.5 1.464-2.494.964.006 1.134.598 1.24 1.342M12.553 10.5h1.953",strokeWidth:"1.2",stroke:"currentColor",fill:"none",strokeLinecap:"square"}))}var ve=n(5781),ye=["translations"];function we(){return we=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},we.apply(this,arguments)}function ke(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,a=[],i=!0,s=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(a.push(r.value),!t||a.length!==t);i=!0);}catch(l){s=!0,o=l}finally{try{i||null==n.return||n.return()}finally{if(s)throw o}}return a}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return xe(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return xe(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function xe(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Se(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var _e="Ctrl";var Ce=r.forwardRef((function(e,t){var n=e.translations,o=void 0===n?{}:n,a=Se(e,ye),i=o.buttonText,s=void 0===i?"Search":i,l=o.buttonAriaLabel,c=void 0===l?"Search":l,u=ke((0,r.useState)(null),2),d=u[0],p=u[1];return(0,r.useEffect)((function(){"undefined"!=typeof navigator&&(/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?p("\u2318"):p(_e))}),[]),r.createElement("button",we({type:"button",className:"DocSearch DocSearch-Button","aria-label":c},a,{ref:t}),r.createElement("span",{className:"DocSearch-Button-Container"},r.createElement(ve.W,null),r.createElement("span",{className:"DocSearch-Button-Placeholder"},s)),r.createElement("span",{className:"DocSearch-Button-Keys"},null!==d&&r.createElement(r.Fragment,null,r.createElement("kbd",{className:"DocSearch-Button-Key"},d===_e?r.createElement(be,null):d),r.createElement("kbd",{className:"DocSearch-Button-Key"},"K"))))})),Ee=n(5244),Ae=n(8930),Le=n(7928);var Te=n(609),je=n(1615);const Re={button:{buttonText:(0,l.T)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"}),buttonAriaLabel:(0,l.T)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"})},modal:{searchBox:{resetButtonTitle:(0,l.T)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),resetButtonAriaLabel:(0,l.T)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),cancelButtonText:(0,l.T)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"}),cancelButtonAriaLabel:(0,l.T)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"})},startScreen:{recentSearchesTitle:(0,l.T)({id:"theme.SearchModal.startScreen.recentSearchesTitle",message:"Recent",description:"The title for recent searches"}),noRecentSearchesText:(0,l.T)({id:"theme.SearchModal.startScreen.noRecentSearchesText",message:"No recent searches",description:"The text when no recent searches"}),saveRecentSearchButtonTitle:(0,l.T)({id:"theme.SearchModal.startScreen.saveRecentSearchButtonTitle",message:"Save this search",description:"The label for save recent search button"}),removeRecentSearchButtonTitle:(0,l.T)({id:"theme.SearchModal.startScreen.removeRecentSearchButtonTitle",message:"Remove this search from history",description:"The label for remove recent search button"}),favoriteSearchesTitle:(0,l.T)({id:"theme.SearchModal.startScreen.favoriteSearchesTitle",message:"Favorite",description:"The title for favorite searches"}),removeFavoriteSearchButtonTitle:(0,l.T)({id:"theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle",message:"Remove this search from favorites",description:"The label for remove favorite search button"})},errorScreen:{titleText:(0,l.T)({id:"theme.SearchModal.errorScreen.titleText",message:"Unable to fetch results",description:"The title for error screen of search modal"}),helpText:(0,l.T)({id:"theme.SearchModal.errorScreen.helpText",message:"You might want to check your network connection.",description:"The help text for error screen of search modal"})},footer:{selectText:(0,l.T)({id:"theme.SearchModal.footer.selectText",message:"to select",description:"The explanatory text of the action for the enter key"}),selectKeyAriaLabel:(0,l.T)({id:"theme.SearchModal.footer.selectKeyAriaLabel",message:"Enter key",description:"The ARIA label for the Enter key button that makes the selection"}),navigateText:(0,l.T)({id:"theme.SearchModal.footer.navigateText",message:"to navigate",description:"The explanatory text of the action for the Arrow up and Arrow down key"}),navigateUpKeyAriaLabel:(0,l.T)({id:"theme.SearchModal.footer.navigateUpKeyAriaLabel",message:"Arrow up",description:"The ARIA label for the Arrow up key button that makes the navigation"}),navigateDownKeyAriaLabel:(0,l.T)({id:"theme.SearchModal.footer.navigateDownKeyAriaLabel",message:"Arrow down",description:"The ARIA label for the Arrow down key button that makes the navigation"}),closeText:(0,l.T)({id:"theme.SearchModal.footer.closeText",message:"to close",description:"The explanatory text of the action for Escape key"}),closeKeyAriaLabel:(0,l.T)({id:"theme.SearchModal.footer.closeKeyAriaLabel",message:"Escape key",description:"The ARIA label for the Escape key button that close the modal"}),searchByText:(0,l.T)({id:"theme.SearchModal.footer.searchByText",message:"Search by",description:"The text explain that the search is making by Algolia"})},noResultsScreen:{noResultsText:(0,l.T)({id:"theme.SearchModal.noResultsScreen.noResultsText",message:"No results for",description:"The text explains that there are no results for the following search"}),suggestedQueryText:(0,l.T)({id:"theme.SearchModal.noResultsScreen.suggestedQueryText",message:"Try searching for",description:"The text for the suggested query when no results are found for the following search"}),reportMissingResultsText:(0,l.T)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsText",message:"Believe this query should return results?",description:"The text for the question where the user thinks there are missing results"}),reportMissingResultsLinkText:(0,l.T)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsLinkText",message:"Let us know.",description:"The text for the link to report missing results"})}},placeholder:(0,l.T)({id:"theme.SearchModal.placeholder",message:"Search docs",description:"The placeholder of the input of the DocSearch pop-up modal"})};function Ne({apiKey:e,alwaysOpen:t,noFastMode:n}){return(0,r.useLayoutEffect)((()=>{if(!window?.document)return;let r=document.getElementById("__cookbook");r||(r=document.createElement("div"),r.id="__cookbook",r.dataset.apiKey=e,t&&(r.dataset.alwaysOpen=""),n&&(r.dataset.noFast=""),document.body.appendChild(r));let o=document.getElementById("__cookbook-script");o||(o=document.createElement("script"),o.src="https://cdn.jsdelivr.net/npm/@cookbookdev/docsbot/dist/standalone/index.cjs.js",o.id="__cookbook-script",o.async=!0,document.body.appendChild(o))}),[]),null}const Oe="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI2NjY5ZDFiNmExMTk3NjM3NDIzOWFmODgiLCJpYXQiOjE3MTgyMTA5OTgsImV4cCI6MjAzMzc4Njk5OH0.m302WLKYHPOARN08cYT7gMb6TvRwhOijtsD39PRaj1A";let Pe=null;function De(e){let{hit:t,children:n}=e;return(0,u.jsx)(K.A,{to:t.url,children:n})}function Me(e){let{state:t,onClose:n}=e;const r=(0,Ee.w)();return(0,u.jsx)(K.A,{to:r(t.query),onClick:n,children:(0,u.jsx)(l.A,{id:"theme.SearchBar.seeAll",values:{count:t.context.nbHits},children:"See all {count} results"})})}function Ie(e){let{contextualSearch:t,externalUrlRegex:o,...a}=e;const{siteMetadata:i}=(0,le.A)(),l=(0,Ae.C)(),c=function(){const{locale:e,tags:t}=(0,Le.af)();return[`language:${e}`,t.map((e=>`docusaurus_tag:${e}`))]}(),d=a.searchParameters?.facetFilters??[],p=t?function(e,t){const n=e=>"string"==typeof e?[e]:e;return[...n(e),...n(t)]}(c,d):d,f={...a.searchParameters,facetFilters:p},h=(0,s.W6)(),m=(0,r.useRef)(null),g=(0,r.useRef)(null),[b,v]=(0,r.useState)(!1),[y,w]=(0,r.useState)(void 0),k=(0,r.useCallback)((()=>Pe?Promise.resolve():Promise.all([n.e(8589).then(n.bind(n,8589)),Promise.all([n.e(1869),n.e(8852)]).then(n.bind(n,8852)),Promise.all([n.e(1869),n.e(1022)]).then(n.bind(n,1022))]).then((e=>{let[{DocSearchModal:t}]=e;Pe=t}))),[]),x=(0,r.useCallback)((()=>{k().then((()=>{m.current=document.createElement("div"),document.body.insertBefore(m.current,document.body.firstChild),v(!0)}))}),[k,v]),S=(0,r.useCallback)((()=>{v(!1),m.current?.remove()}),[v]),_=(0,r.useCallback)((e=>{k().then((()=>{v(!0),w(e.key)}))}),[k,v,w]),C=(0,r.useRef)({navigate(e){let{itemUrl:t}=e;(0,ee.G)(o,t)?window.location.href=t:h.push(t)}}).current,E=(0,r.useRef)((e=>a.transformItems?a.transformItems(e):e.map((e=>({...e,url:l(e.url)}))))).current,A=(0,r.useMemo)((()=>e=>(0,u.jsx)(Me,{...e,onClose:S})),[S]),L=(0,r.useCallback)((e=>(e.addAlgoliaAgent("docusaurus",i.docusaurusVersion),e)),[i.docusaurusVersion]);return function(e){var t=e.isOpen,n=e.onOpen,o=e.onClose,a=e.onInput,i=e.searchButtonRef;r.useEffect((function(){function e(e){var r;(27===e.keyCode&&t||"k"===(null===(r=e.key)||void 0===r?void 0:r.toLowerCase())&&(e.metaKey||e.ctrlKey)||!function(e){var t=e.target,n=t.tagName;return t.isContentEditable||"INPUT"===n||"SELECT"===n||"TEXTAREA"===n}(e)&&"/"===e.key&&!t)&&(e.preventDefault(),t?o():document.body.classList.contains("DocSearch--active")||document.body.classList.contains("DocSearch--active")||n()),i&&i.current===document.activeElement&&a&&/[a-zA-Z0-9]/.test(String.fromCharCode(e.keyCode))&&a(e)}return window.addEventListener("keydown",e),function(){window.removeEventListener("keydown",e)}}),[t,n,o,a,i])}({isOpen:b,onOpen:x,onClose:S,onInput:_,searchButtonRef:g}),(0,u.jsxs)(u.Fragment,{children:[(0,u.jsxs)(Te.A,{children:[(0,u.jsx)("link",{rel:"preconnect",href:`https://${a.appId}-dsn.algolia.net`,crossOrigin:"anonymous"}),(0,u.jsx)("link",{rel:"icon",type:"image/png",href:"/share/share2.png"}),(0,u.jsx)("meta",{property:"og:image",content:"/share/share2.png"}),(0,u.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,u.jsx)("meta",{property:"twitter:image",content:"/share/share2.png"})]}),(0,u.jsx)(Ce,{onTouchStart:k,onFocus:k,onMouseOver:k,onClick:x,ref:g,translations:Re.button}),b&&Pe&&m.current&&(0,je.createPortal)((0,u.jsx)(Pe,{onClose:S,initialScrollY:window.scrollY,initialQuery:y,navigator:C,transformItems:E,hitComponent:De,transformSearchClient:L,...a.searchPagePath&&{resultsFooterComponent:A},...a,searchParameters:f,placeholder:Re.placeholder,translations:Re.modal}),m.current),(0,u.jsx)(Ne,{apiKey:Oe})]})}function Fe(){const{siteConfig:e}=(0,le.A)();return(0,u.jsx)(Ie,{theme:"light",...e.themeConfig.algolia})}const Be={navbarSearchContainer:"navbarSearchContainer_pjLh"};function ze(e){let{children:t,className:n}=e;return(0,u.jsx)("div",{className:(0,o.A)(n,Be.navbarSearchContainer),children:t})}var Ue=n(4800),Ve=n(7830);var qe=n(1558);const We=e=>e.docs.find((t=>t.id===e.mainDocId));const $e={default:ae,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:r,queryString:o="",...a}=e;const{i18n:{currentLocale:i,locales:c,localeConfigs:d}}=(0,le.A)(),p=(0,he.o)(),{search:f,hash:h}=(0,s.zy)(),m=[...n,...c.map((e=>{const n=`${`pathname://${p.createUrl({locale:e,fullyQualified:!1})}`}${f}${h}${o}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...r],g=t?(0,l.T)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return(0,u.jsx)(fe,{...a,mobile:t,label:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(me,{className:ge}),g]}),items:m})},search:function(e){let{mobile:t,className:n}=e;return t?null:(0,u.jsx)(ze,{className:n,children:(0,u.jsx)(Fe,{})})},dropdown:fe,html:function(e){let{value:t,className:n,mobile:r=!1,isDropdownItem:a=!1}=e;const i=a?"li":"div";return(0,u.jsx)(i,{className:(0,o.A)({navbar__item:!r&&!a,"menu__list-item":r},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:r,...o}=e;const{activeDoc:a}=(0,Ue.zK)(r),i=(0,Ve.QB)(t,r),s=a?.path===i?.path;return null===i||i.unlisted&&!s?null:(0,u.jsx)(ae,{exact:!0,...o,isActive:()=>s||!!a?.sidebar&&a.sidebar===i.sidebar,label:n??i.id,to:i.path})},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:r,...o}=e;const{activeDoc:a}=(0,Ue.zK)(r),i=(0,Ve.fW)(t,r).link;if(!i)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return(0,u.jsx)(ae,{exact:!0,...o,isActive:()=>a?.sidebar===t,label:n??i.label,to:i.path})},docsVersion:function(e){let{label:t,to:n,docsPluginId:r,...o}=e;const a=(0,Ve.Vd)(r)[0],i=t??a.label,s=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(a).path;return(0,u.jsx)(ae,{...o,label:i,to:s})},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:r,dropdownItemsBefore:o,dropdownItemsAfter:a,...i}=e;const{search:c,hash:d}=(0,s.zy)(),p=(0,Ue.zK)(n),f=(0,Ue.jh)(n),{savePreferredVersionName:h}=(0,qe.g1)(n),m=[...o,...f.map((e=>{const t=p.alternateDocVersions[e.name]??We(e);return{label:e.label,to:`${t.path}${c}${d}`,isActive:()=>e===p.activeVersion,onClick:()=>h(e.name)}})),...a],g=(0,Ve.Vd)(n)[0],b=t&&m.length>1?(0,l.T)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):g.label,v=t&&m.length>1?void 0:We(g).path;return m.length<=1?(0,u.jsx)(ae,{...i,mobile:t,label:b,to:v,isActive:r?()=>!1:void 0}):(0,u.jsx)(fe,{...i,mobile:t,label:b,to:v,items:m,isActive:r?()=>!1:void 0})}};function Ge(e){let{type:t,...n}=e;const r=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),o=$e[r];if(!o)throw new Error(`No NavbarItem component found for type "${t}".`);return(0,u.jsx)(o,{...n})}function He(){const e=(0,T.M)(),t=(0,w.p)().navbar.items;return(0,u.jsx)("ul",{className:"menu__list",children:t.map(((t,n)=>(0,r.createElement)(Ge,{mobile:!0,...t,onClick:()=>e.toggle(),key:n})))})}function Ze(e){return(0,u.jsx)("button",{...e,type:"button",className:"clean-btn navbar-sidebar__back",children:(0,u.jsx)(l.A,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)",children:"\u2190 Back to main menu"})})}function Ye(){const e=0===(0,w.p)().navbar.items.length,t=M();return(0,u.jsxs)(u.Fragment,{children:[!e&&(0,u.jsx)(Ze,{onClick:()=>t.hide()}),t.content]})}function Xe(){const e=(0,T.M)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?(0,u.jsx)(I,{header:(0,u.jsx)(X,{}),primaryMenu:(0,u.jsx)(He,{}),secondaryMenu:(0,u.jsx)(Ye,{})}):null}const Ke={navbarHideable:"navbarHideable_6CjN",navbarHidden:"navbarHidden_Qzz3"};function Je(e){return(0,u.jsx)("div",{role:"presentation",...e,className:(0,o.A)("navbar-sidebar__backdrop",e.className)})}function Qe(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:a}}=(0,w.p)(),i=(0,T.M)(),{navbarRef:s,isNavbarVisible:d}=function(e){const[t,n]=(0,r.useState)(e),o=(0,r.useRef)(!1),a=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(a.current=e.getBoundingClientRect().height)}),[]);return(0,j.Mq)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i<a.current)return void n(!0);if(o.current)return void(o.current=!1);const s=r?.scrollY,l=document.documentElement.scrollHeight-a.current,c=window.innerHeight;s&&i>=s?n(!1):i+c<l&&n(!0)})),(0,c.$)((t=>{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return o.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return(0,u.jsxs)("nav",{ref:s,"aria-label":(0,l.T)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,o.A)("navbar","navbar--fixed-top",n&&[Ke.navbarHideable,!d&&Ke.navbarHidden],{"navbar--dark":"dark"===a,"navbar--primary":"primary"===a,"navbar-sidebar--show":i.shown}),children:[t,(0,u.jsx)(Je,{onClick:i.toggle}),(0,u.jsx)(Xe,{})]})}var et=n(2753);const tt={errorBoundaryError:"errorBoundaryError_dRln",errorBoundaryFallback:"errorBoundaryFallback_IrKq"};function nt(e){return(0,u.jsx)("button",{type:"button",...e,children:(0,u.jsx)(l.A,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error",children:"Try again"})})}function rt(e){let{error:t}=e;const n=(0,et.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,u.jsx)("p",{className:tt.errorBoundaryError,children:n})}class ot extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const at="right";function it(e){let{width:t=30,height:n=30,className:r,...o}=e;return(0,u.jsx)("svg",{className:r,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true",...o,children:(0,u.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"})})}function st(){const{toggle:e,shown:t}=(0,T.M)();return(0,u.jsx)("button",{onClick:e,"aria-label":(0,l.T)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button",children:(0,u.jsx)(it,{})})}const lt={colorModeToggle:"colorModeToggle_SYc1"};function ct(e){let{items:t}=e;return(0,u.jsx)(u.Fragment,{children:t.map(((e,t)=>(0,u.jsx)(ot,{onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t}),children:(0,u.jsx)(Ge,{...e})},t)))})}function ut(e){let{left:t,right:n}=e;return(0,u.jsxs)("div",{className:"navbar__inner",children:[(0,u.jsx)("div",{className:"navbar__items",children:t}),(0,u.jsx)("div",{className:"navbar__items navbar__items--right",children:n})]})}function dt(){const e=(0,T.M)(),t=(0,w.p)().navbar.items,[n,r]=function(e){function t(e){return"left"===(e.position??at)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),o=t.find((e=>"search"===e.type));return(0,u.jsx)(ut,{left:(0,u.jsxs)(u.Fragment,{children:[!e.disabled&&(0,u.jsx)(st,{}),(0,u.jsx)(Z,{}),(0,u.jsx)(ct,{items:n})]}),right:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(ct,{items:r}),(0,u.jsx)(G,{className:lt.colorModeToggle}),!o&&(0,u.jsx)(ze,{children:(0,u.jsx)(Fe,{})})]})})}function pt(){return(0,u.jsx)(Qe,{children:(0,u.jsx)(dt,{})})}function ft(e){let{item:t}=e;const{to:n,href:r,label:o,prependBaseUrlToHref:a,...i}=t,s=(0,J.A)(n),l=(0,J.A)(r,{forcePrependBaseUrl:!0});return(0,u.jsx)(K.A,{className:"footer__link-item",...r?{href:a?l:r}:{to:s},...i,children:o})}function ht(e){let{item:t}=e;return t.html?(0,u.jsx)("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):(0,u.jsx)("li",{className:"footer__item",children:(0,u.jsx)(ft,{item:t})},t.href??t.to)}function mt(e){let{column:t}=e;return(0,u.jsxs)("div",{className:"flex-1",children:[(0,u.jsx)("div",{className:"footer__title text-[#FFFFFF66]",children:t.title}),(0,u.jsx)("ul",{className:"flex flex-col footer__items clean-list text-[#fff]",children:t.items.map(((e,t)=>(0,u.jsx)(ht,{item:e},t)))})]})}function gt(e){let{columns:t}=e;return(0,u.jsx)("div",{className:"grid grid-cols-2 md:grid-cols-4 xl:flex xl:flex-row",children:t.map(((e,t)=>(0,u.jsx)(mt,{column:e},t)))})}function bt(){return(0,u.jsx)("span",{className:"footer__link-separator",children:"\xb7"})}function vt(e){let{item:t}=e;return t.html?(0,u.jsx)("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):(0,u.jsx)(ft,{item:t})}function yt(e){let{links:t}=e;return(0,u.jsx)("div",{className:"footer__links text--center",children:(0,u.jsx)("div",{className:"footer__links",children:t.map(((e,n)=>(0,u.jsxs)(r.Fragment,{children:[(0,u.jsx)(vt,{item:e}),t.length!==n+1&&(0,u.jsx)(bt,{})]},n)))})})}function wt(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?(0,u.jsx)(gt,{columns:t}):(0,u.jsx)(yt,{links:t})}var kt=n(7500),xt=n.n(kt),St=n(5126);const _t={footerLogoLink:"footerLogoLink_DDai"};function Ct(e){let{logo:t}=e;const{withBaseUrl:n}=(0,J.h)(),r={light:n(t.src),dark:n(t.srcDark??t.src)};return(0,u.jsx)(St.A,{className:xt()("footer__logo",t.className),alt:t.alt,sources:r,width:t.width,height:t.height,style:t.style})}function Et(e){let{logo:t}=e;return t.href?(0,u.jsx)(K.A,{href:t.href,className:_t.footerLogoLink,target:t.target,children:(0,u.jsx)(Ct,{logo:t})}):(0,u.jsx)(Ct,{logo:t})}function At(e){let{copyright:t}=e;return(0,u.jsx)("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}const Lt=e=>{let{fill:t,size:n}=e;return(0,u.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:n||"24",height:n||"24",viewBox:"0 0 10 9",fill:"none",children:(0,u.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M1 2C1.55228 2 2 1.55228 2 1C2 0.447715 1.55228 0 1 0C0.447715 0 0 0.447715 0 1C0 1.55228 0.447715 2 1 2ZM2 9V3H0V9H2ZM3.5 2H5.5V3.49639C5.61312 2.97694 6.21481 2 7.49922 2C8.78661 2 10 2.22698 10 5V9H8.4V5.03955C8.4 4.65066 8.09658 3.53955 6.99922 3.53955C5.83419 3.53955 5.51747 4.70903 5.5 5.01444V9H3.5V2Z",fill:t||"#CCCCCC"})})},Tt=e=>{let{fill:t,size:n,className:r}=e;return(0,u.jsx)("svg",{className:r,fill:"none",height:n||"25",viewBox:"0 0 24 25",width:n||"24",xmlns:"http://www.w3.org/2000/svg",children:(0,u.jsx)("path",{d:"M14.4027 10.4686L21.8482 2H20.0838L13.619 9.3532L8.45547 2H2.5L10.3082 13.1193L2.5 22H4.26443L11.0915 14.2348L16.5445 22H22.5L14.4023 10.4686H14.4027ZM11.9861 13.2173L11.195 12.1101L4.90018 3.29968H7.61025L12.6902 10.4099L13.4813 11.5172L20.0847 20.7594H17.3746L11.9861 13.2177V13.2173Z",fill:t||"#CCCCCC"})})},jt=e=>{let{fill:t,size:n,className:r}=e;return(0,u.jsx)("svg",{className:r,fill:"none",height:n||"24",viewBox:"0 0 24 24",width:n||"24",xmlns:"http://www.w3.org/2000/svg",children:(0,u.jsx)("path",{d:"M19.6695 5.02043C19.6634 5.00856 19.6532 4.99925 19.6409 4.99418C18.2112 4.33826 16.7026 3.87053 15.1526 3.60271C15.1386 3.60009 15.124 3.60198 15.1111 3.60811C15.0981 3.61423 15.0874 3.62429 15.0805 3.63683C14.8751 4.00969 14.6886 4.39268 14.5218 4.78433C12.851 4.53072 11.1516 4.53072 9.4808 4.78433C9.31287 4.39169 9.12339 4.0086 8.91324 3.63683C8.90603 3.62456 8.8953 3.61474 8.88243 3.60865C8.86956 3.60256 8.85515 3.60049 8.84109 3.60271C7.29098 3.86997 5.78223 4.33773 4.35279 4.99422C4.34056 4.99941 4.33023 5.00827 4.32324 5.01957C1.46465 9.2885 0.681579 13.4525 1.06573 17.5649C1.06681 17.5749 1.06991 17.5847 1.07483 17.5936C1.07976 17.6024 1.08642 17.6102 1.09442 17.6164C2.75895 18.8489 4.62074 19.7896 6.60035 20.3985C6.6143 20.4027 6.62918 20.4025 6.64301 20.398C6.65684 20.3934 6.66895 20.3848 6.67772 20.3732C7.10289 19.7946 7.47963 19.182 7.8041 18.5416C7.80856 18.5328 7.81111 18.5232 7.81157 18.5133C7.81204 18.5035 7.81041 18.4936 7.8068 18.4845C7.80319 18.4753 7.79768 18.467 7.79063 18.4601C7.78358 18.4532 7.77515 18.4479 7.76589 18.4445C7.1718 18.2172 6.59665 17.9432 6.04584 17.625C6.03584 17.6192 6.02743 17.6109 6.02137 17.601C6.01532 17.5911 6.01179 17.5799 6.0111 17.5683C6.01042 17.5567 6.01259 17.5451 6.01744 17.5346C6.02229 17.524 6.02966 17.5148 6.0389 17.5078C6.15481 17.4212 6.2687 17.332 6.38049 17.2402C6.3903 17.2321 6.40216 17.2269 6.41475 17.2252C6.42734 17.2235 6.44015 17.2254 6.45174 17.2306C10.0603 18.8775 13.9671 18.8775 17.533 17.2306C17.5446 17.2251 17.5576 17.2229 17.5703 17.2245C17.5831 17.226 17.5952 17.2312 17.6051 17.2393C17.7171 17.3316 17.8312 17.4212 17.9476 17.5078C17.9569 17.5148 17.9643 17.5239 17.9692 17.5344C17.9742 17.5449 17.9764 17.5565 17.9758 17.5681C17.9752 17.5796 17.9718 17.5909 17.9658 17.6008C17.9598 17.6108 17.9515 17.6191 17.9415 17.625C17.392 17.9459 16.8163 18.2197 16.2206 18.4437C16.2114 18.4472 16.203 18.4526 16.196 18.4596C16.189 18.4666 16.1835 18.475 16.18 18.4842C16.1764 18.4935 16.1749 18.5034 16.1754 18.5132C16.176 18.5231 16.1786 18.5328 16.1831 18.5416C16.513 19.1785 16.8892 19.7903 17.3087 20.3721C17.3172 20.3841 17.3292 20.393 17.3431 20.3977C17.357 20.4025 17.372 20.4027 17.386 20.3984C19.3692 19.7916 21.2342 18.8507 22.9009 17.6164C22.909 17.6105 22.9157 17.6029 22.9207 17.5942C22.9256 17.5854 22.9286 17.5757 22.9295 17.5657C23.3894 12.8114 22.1596 8.68152 19.6695 5.02043ZM8.34302 15.0608C7.25657 15.0608 6.36137 14.0638 6.36137 12.8394C6.36137 11.6149 7.2392 10.6178 8.34302 10.6178C9.45545 10.6178 10.342 11.6236 10.3246 12.8393C10.3246 14.0638 9.44675 15.0608 8.34302 15.0608ZM15.6698 15.0608C14.5834 15.0608 13.6882 14.0638 13.6882 12.8394C13.6882 11.6149 14.566 10.6178 15.6698 10.6178C16.7823 10.6178 17.6688 11.6236 17.6514 12.8393C17.6514 14.0638 16.7823 15.0608 15.6698 15.0608Z",fill:t||"#CCCCCC"})})},Rt=e=>{let{fill:t,size:n,className:r}=e;return(0,u.jsx)("svg",{className:r,fill:"none",height:n||"24",viewBox:"0 0 24 24",width:n||"24",xmlns:"http://www.w3.org/2000/svg",children:(0,u.jsx)("path",{d:"M11.9996 1.96875C6.3193 1.96875 1.71387 6.57354 1.71387 12.2545C1.71387 16.7988 4.66137 20.6547 8.74801 22.0143C9.2623 22.1095 9.4513 21.7913 9.4513 21.5193C9.4513 21.2744 9.44165 20.4637 9.43715 19.6042C6.57515 20.2265 5.97151 18.3905 5.97151 18.3905C5.50351 17.2019 4.8298 16.8856 4.8298 16.8856C3.89637 16.2473 4.90051 16.2601 4.90051 16.2601C5.93294 16.3327 6.4768 17.3202 6.4768 17.3202C7.39415 18.8926 8.88301 18.4381 9.46994 18.1752C9.56187 17.5105 9.82865 17.0566 10.1231 16.7995C7.83837 16.5397 5.43665 15.6571 5.43665 11.7164C5.43665 10.5933 5.83844 9.67596 6.49672 8.95532C6.39001 8.69625 6.03772 7.65032 6.59637 6.23346C6.59637 6.23346 7.46037 5.95704 9.42558 7.28775C10.2459 7.05954 11.1259 6.94575 12.0002 6.94125C12.8739 6.94511 13.7546 7.05954 14.5768 7.28775C16.5401 5.95704 17.4022 6.23346 17.4022 6.23346C17.9621 7.65032 17.6098 8.69625 17.5031 8.95532C18.1627 9.67532 18.5619 10.5933 18.5619 11.7164C18.5619 15.6667 16.1557 16.5365 13.8652 16.7917C14.2342 17.1112 14.5627 17.7368 14.5627 18.6965C14.5627 20.0729 14.5504 21.1805 14.5504 21.5193C14.5504 21.7932 14.7356 22.114 15.2569 22.013C19.3417 20.6515 22.2853 16.7975 22.2853 12.2545C22.2853 6.57354 17.6799 1.96875 11.9996 1.96875Z",fill:t||"#CCCCCC"})})},Nt=e=>{let{fill:t,size:n,className:r}=e;return(0,u.jsxs)("svg",{className:r,fill:"none",height:n||"24",viewBox:"0 0 24 24",width:n||"24",xmlns:"http://www.w3.org/2000/svg",children:[(0,u.jsx)("path",{d:"M13.4188 11.8306C13.4188 15.3057 10.6209 18.1227 7.17131 18.1227C3.72172 18.1227 0.923828 15.3036 0.923828 11.8306C0.923828 8.35769 3.72172 5.53857 7.17131 5.53857C10.6209 5.53857 13.4188 8.35557 13.4188 11.8306Z",fill:t||"#CCCCCC"}),(0,u.jsx)("path",{d:"M20.273 11.8307C20.273 15.1019 18.8741 17.7533 17.1482 17.7533C15.4224 17.7533 14.0234 15.1019 14.0234 11.8307C14.0234 8.55937 15.4224 5.90796 17.1482 5.90796C18.8741 5.90796 20.273 8.55937 20.273 11.8307Z",fill:t||"#CCCCCC"}),(0,u.jsx)("path",{d:"M23.0782 11.8306C23.0782 14.7601 22.5857 17.1355 21.9785 17.1355C21.3714 17.1355 20.8789 14.7601 20.8789 11.8306C20.8789 8.90108 21.3714 6.52563 21.9785 6.52563C22.5857 6.52563 23.0782 8.89896 23.0782 11.8306Z",fill:t||"#CCCCCC"})]})},Ot=e=>{let{fill:t,size:n,className:r}=e;return(0,u.jsx)("svg",{className:r,height:n||"24",version:"1.1",viewBox:"0 0 25 24",width:n||"25",xmlns:"http://www.w3.org/2000/svg",children:(0,u.jsx)("path",{d:"M21.1304 18.7457C21.5068 17.5907 23.2704 6.07998 23.4884 3.81182C23.5542 3.12488 23.3371 2.6684 22.9118 2.46463C22.3975 2.21726 21.6358 2.34095 20.7522 2.6595C19.5402 3.09641 4.04667 9.67486 3.15151 10.0557C2.30262 10.4161 1.5 10.8094 1.5 11.3789C1.5 11.7793 1.73758 12.0044 2.39249 12.2384C3.0741 12.4814 4.79056 13.0019 5.80407 13.2813C6.7802 13.5509 7.89159 13.3169 8.51447 12.9298C9.17471 12.5196 16.7943 7.42094 17.3415 6.97425C17.8878 6.52756 18.3239 7.09972 17.8772 7.5473C17.4305 7.99399 12.2001 13.0704 11.5105 13.7734C10.6732 14.6267 11.2676 15.5112 11.8291 15.8653C12.4706 16.2693 17.0843 19.3641 17.7793 19.8606C18.4742 20.3572 19.179 20.5823 19.8241 20.5823C20.4692 20.5823 20.8091 19.7325 21.1304 18.7457Z",fill:t||"#CCCCCC"})})};function Pt(e){let{children:t,href:n,...r}=e;return(0,u.jsx)("a",{href:n||"",target:n?.startsWith("http")?"_blank":"_self",...r,children:t})}"undefined"==typeof window||window.location.origin;const Dt=[{label:"Twitter",link:"https://twitter.com/Morphl2",img:(e,t)=>(0,u.jsx)(Tt,{fill:e,size:t}),log_name:"twitter:_click"},{label:"Discord",link:"https://discord.gg/L2Morph",img:(e,t)=>(0,u.jsx)(jt,{fill:e,size:t})},{label:"Medium",link:"https://blog.morphl2.io/",img:(e,t)=>(0,u.jsx)(Nt,{fill:e,size:t}),log_name:"medium:_click"},{label:"Telegram",link:"https://t.me/MorphL2official",img:(e,t)=>(0,u.jsx)(Ot,{fill:e,size:t})},{label:"Github",link:"",img:(e,t)=>(0,u.jsx)(Rt,{fill:e,size:t})},{label:"LinkedIn",link:"http://www.linkedin.com/company/morphl2",img:(e,t)=>(0,u.jsx)(Lt,{fill:e,size:t})}];function Mt(e){const t=Dt.filter((e=>e.link)).slice(0,e.slice||Dt.length);return(0,u.jsx)("div",{className:xt()("hidden text-b-white",e.className,{[`grid-cols-${t.length}`]:!0}),children:t?.map(((t,n)=>(0,u.jsxs)(Pt,{href:t.link||"",className:e.bgClass+" social-link flex justify-center items-center",target:t.link.startsWith("http")?"_blank":"_self",children:[(0,u.jsx)("span",{className:"inline-block w-6 h-6 flex items-center justify-center",children:t.img(e.fill||"",e.size||"24")}),(0,u.jsx)("span",{className:"sr-only ml-3 -mt-1 social-label",children:t.label})]},n)))})}function It(e){let{style:t,links:n,logo:r,copyright:o}=e;return(0,u.jsxs)("footer",{className:xt()("footer-bg relative min-h-screen !bg-[#21231C]",{"footer--dark":"dark"===t}),children:[(0,u.jsx)("img",{src:"/lottie/logo-cover.svg",className:"-z-0 absolute bottom-8 xl:bottom-14 right-[5%] w-[97px] h-[97px] text-[#FFFFFF0a]"}),(0,u.jsxs)("div",{className:"flex z-30 flex-col md:flex-row max-w-7xl mx-auto px-4 md:px-0 py-6 md:py-10 md:pt-[100px]",children:[(0,u.jsxs)("div",{className:"order-3 md:order-1 mt-0 md:w-[284px]",children:[(0,u.jsx)("div",{className:"hidden morph-logo w-[160px] h-[25px]"}),(0,u.jsx)(Mt,{bgClass:"hidden bg-[#ffffff1a] rounded-full",size:"12",className:"mt-6 flex flex-row gap-4"}),(0,u.jsxs)("div",{className:"copy-right mt-3 text-xs text-desc-1",children:["\xa9 ",(new Date).getFullYear()," ",(0,u.jsx)(Pt,{href:n.brand,className:"text-desc-1",children:"Morph"}),". All rights reserved"]})]}),(0,u.jsx)("div",{className:"order-1 w-[284px]"}),(0,u.jsx)("div",{className:"order-2 flex-1 justify-end",children:n}),(0,u.jsxs)("p",{className:"order-3 mt-[133px] xl:mt-0 text-left pb-8 xl:pb-0 xl:absolute screen-huge xl:bottom-8 text-[#AEDFE0] leading-[59px] text-[59px] md:leading-[84px] md:text-[84px] xl:leading-[100px] xl:text-[140px] font-bold uppercase font-denim",children:[(0,u.jsx)("p",{className:"animate-up",children:"It\u2019s"}),(0,u.jsx)("p",{className:"animate-up",children:"morphing"}),(0,u.jsx)("p",{className:"animate-up",children:"time!"})]})]})]})}var Ft=n(2419);function Bt(){const{footer:e}=(0,w.p)();if(r.useEffect((()=>{(0,Ft.R)({page:"docs_page"})}),[]),!e)return null;const{copyright:t,links:n,logo:o,style:a}=e;return(0,u.jsx)(It,{style:a,links:n&&n.length>0&&(0,u.jsx)(wt,{links:n}),logo:o&&(0,u.jsx)(Et,{logo:o}),copyright:t&&(0,u.jsx)(At,{copyright:t})})}const zt=r.memo(Bt),Ut=(0,R.fM)([F.a,k.oq,j.Tv,qe.VQ,i.Jx,function(e){let{children:t}=e;return(0,u.jsx)(N.y_,{children:(0,u.jsx)(T.e,{children:(0,u.jsx)(P,{children:t})})})}]);function Vt(e){let{children:t}=e;return(0,u.jsx)(Ut,{children:t})}var qt=n(9382);function Wt(e){let{error:t,tryAgain:n}=e;return(0,u.jsx)("main",{className:"container margin-vert--xl",children:(0,u.jsx)("div",{className:"row",children:(0,u.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,u.jsx)(qt.A,{as:"h1",className:"hero__title",children:(0,u.jsx)(l.A,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed",children:"This page crashed."})}),(0,u.jsx)("div",{className:"margin-vert--lg",children:(0,u.jsx)(nt,{onClick:n,className:"button button--primary shadow--lw"})}),(0,u.jsx)("hr",{}),(0,u.jsx)("div",{className:"margin-vert--md",children:(0,u.jsx)(rt,{error:t})})]})})})}const $t={mainWrapper:"mainWrapper_qbsJ"};function Gt(e){const{children:t,noFooter:n,wrapperClassName:r,title:s,description:l}=e;return(0,b.J)(),(0,u.jsxs)(Vt,{children:[(0,u.jsx)(i.be,{title:s,description:l}),(0,u.jsx)(y,{}),(0,u.jsx)(L,{}),(0,u.jsx)(pt,{}),(0,u.jsx)("div",{id:d,className:(0,o.A)(g.G.wrapper.main,$t.mainWrapper,r),children:(0,u.jsx)(a.A,{fallback:e=>(0,u.jsx)(Wt,{...e}),children:t})}),!n&&(0,u.jsx)(zt,{})]})}},9193:(e,t,n)=>{"use strict";n.d(t,{A:()=>u});n(9474);var r=n(8379),o=n(4184),a=n(2403),i=n(4359),s=n(5126),l=n(3274);function c(e){let{logo:t,alt:n,imageClassName:r}=e;const a={light:(0,o.A)(t.src),dark:(0,o.A)(t.srcDark||t.src)},i=(0,l.jsx)(s.A,{className:t.className,sources:a,height:t.height,width:t.width,alt:n,style:t.style});return r?(0,l.jsx)("div",{className:r,children:i}):i}function u(e){const{siteConfig:{title:t}}=(0,a.A)(),{navbar:{title:n,logo:s}}=(0,i.p)(),{imageClassName:u,titleClassName:d,...p}=e,f=(0,o.A)(s?.href||"/"),h=n?"":t,m=s?.alt??h;return(0,l.jsxs)(r.A,{to:f,...p,...s?.target&&{target:s.target},children:[s&&(0,l.jsx)(c,{logo:s,alt:m,imageClassName:u}),null!=n&&(0,l.jsx)("b",{className:d,children:n})]})}},7047:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});n(9474);var r=n(609),o=n(3274);function a(e){let{locale:t,version:n,tag:a}=e;const i=t;return(0,o.jsxs)(r.A,{children:[t&&(0,o.jsx)("meta",{name:"docusaurus_locale",content:t}),n&&(0,o.jsx)("meta",{name:"docusaurus_version",content:n}),a&&(0,o.jsx)("meta",{name:"docusaurus_tag",content:a}),i&&(0,o.jsx)("meta",{name:"docsearch:language",content:i}),n&&(0,o.jsx)("meta",{name:"docsearch:version",content:n}),a&&(0,o.jsx)("meta",{name:"docsearch:docusaurus_tag",content:a})]})}},5126:(e,t,n)=>{"use strict";n.d(t,{A:()=>u});var r=n(9474),o=n(8923),a=n(170),i=n(2888);const s={themedComponent:"themedComponent_RIc6","themedComponent--light":"themedComponent--light_aQWN","themedComponent--dark":"themedComponent--dark_XAeT"};var l=n(3274);function c(e){let{className:t,children:n}=e;const c=(0,a.A)(),{colorMode:u}=(0,i.G)();return(0,l.jsx)(l.Fragment,{children:(c?"dark"===u?["dark"]:["light"]:["light","dark"]).map((e=>{const a=n({theme:e,className:(0,o.A)(t,s.themedComponent,s[`themedComponent--${e}`])});return(0,l.jsx)(r.Fragment,{children:a},e)}))})}function u(e){const{sources:t,className:n,alt:r,...o}=e;return(0,l.jsx)(c,{className:n,children:e=>{let{theme:n,className:a}=e;return(0,l.jsx)("img",{src:t[n],alt:r,className:a,...o})}})}},3635:(e,t,n)=>{"use strict";n.d(t,{N:()=>b,u:()=>c});var r=n(9474),o=n(6388),a=n(9154),i=n(5592),s=n(3274);const l="ease-in-out";function c(e){let{initialState:t}=e;const[n,o]=(0,r.useState)(t??!1),a=(0,r.useCallback)((()=>{o((e=>!e))}),[]);return{collapsed:n,setCollapsed:o,toggleCollapsed:a}}const u={display:"none",overflow:"hidden",height:"0px"},d={display:"block",overflow:"visible",height:"auto"};function p(e,t){const n=t?u:d;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function f(e){let{collapsibleRef:t,collapsed:n,animation:o}=e;const a=(0,r.useRef)(!1);(0,r.useEffect)((()=>{const e=t.current;function r(){const t=e.scrollHeight,n=o?.duration??function(e){if((0,i.O)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${o?.easing??l}`,height:`${t}px`}}function s(){const t=r();e.style.transition=t.transition,e.style.height=t.height}if(!a.current)return p(e,n),void(a.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(s(),requestAnimationFrame((()=>{e.style.height=u.height,e.style.overflow=u.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{s()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,o])}function h(e){if(!o.A.canUseDOM)return e?u:d}function m(e){let{as:t="div",collapsed:n,children:o,animation:a,onCollapseTransitionEnd:i,className:l,disableSSRStyle:c}=e;const u=(0,r.useRef)(null);return f({collapsibleRef:u,collapsed:n,animation:a}),(0,s.jsx)(t,{ref:u,style:c?void 0:h(n),onTransitionEnd:e=>{"height"===e.propertyName&&(p(u.current,n),i?.(n))},className:l,children:o})}function g(e){let{collapsed:t,...n}=e;const[o,i]=(0,r.useState)(!t),[l,c]=(0,r.useState)(t);return(0,a.A)((()=>{t||i(!0)}),[t]),(0,a.A)((()=>{o&&c(t)}),[o,t]),o?(0,s.jsx)(m,{...n,collapsed:l}):null}function b(e){let{lazy:t,...n}=e;const r=t?g:m;return(0,s.jsx)(r,{...n})}},7760:(e,t,n)=>{"use strict";n.d(t,{Mj:()=>m,oq:()=>h});var r=n(9474),o=n(170),a=n(7641),i=n(5461),s=n(4359),l=n(3274);const c=(0,a.Wf)("docusaurus.announcement.dismiss"),u=(0,a.Wf)("docusaurus.announcement.id"),d=()=>"true"===c.get(),p=e=>c.set(String(e)),f=r.createContext(null);function h(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,s.p)(),t=(0,o.A)(),[n,a]=(0,r.useState)((()=>!!t&&d()));(0,r.useEffect)((()=>{a(d())}),[]);const i=(0,r.useCallback)((()=>{p(!0),a(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=u.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;u.set(t),r&&p(!1),!r&&d()||a(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return(0,l.jsx)(f.Provider,{value:n,children:t})}function m(){const e=(0,r.useContext)(f);if(!e)throw new i.dV("AnnouncementBarProvider");return e}},2888:(e,t,n)=>{"use strict";n.d(t,{G:()=>b,a:()=>g});var r=n(9474),o=n(6388),a=n(5461),i=n(7641),s=n(4359),l=n(3274);const c=r.createContext(void 0),u="theme",d=(0,i.Wf)(u),p={light:"light",dark:"dark"},f=e=>e===p.dark?p.dark:p.light,h=e=>o.A.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e),m=e=>{d.set(f(e))};function g(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,s.p)(),[o,a]=(0,r.useState)(h(e));(0,r.useEffect)((()=>{t&&d.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:o=!0}=r;t?(a(t),o&&m(t)):(a(n?window.matchMedia("(prefers-color-scheme: dark)").matches?p.dark:p.light:e),d.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",f(o))}),[o]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==u)return;const t=d.get();null!==t&&i(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const l=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||l.current?l.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:o,setColorMode:i,get isDarkTheme(){return o===p.dark},setLightTheme(){i(p.light)},setDarkTheme(){i(p.dark)}})),[o,i])}();return(0,l.jsx)(c.Provider,{value:n,children:t})}function b(){const e=(0,r.useContext)(c);if(null==e)throw new a.dV("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},1558:(e,t,n)=>{"use strict";n.d(t,{VQ:()=>b,XK:()=>w,g1:()=>y});var r=n(9474),o=n(4800),a=n(6130),i=n(4359),s=n(7830),l=n(5461),c=n(7641),u=n(3274);const d=e=>`docs-preferred-version-${e}`,p={save:(e,t,n)=>{(0,c.Wf)(d(e),{persistence:t}).set(n)},read:(e,t)=>(0,c.Wf)(d(e),{persistence:t}).get(),clear:(e,t)=>{(0,c.Wf)(d(e),{persistence:t}).del()}},f=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const h=r.createContext(null);function m(){const e=(0,o.Gy)(),t=(0,i.p)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[a,s]=(0,r.useState)((()=>f(n)));(0,r.useEffect)((()=>{s(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function o(e){const t=p.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(p.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,o(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[a,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){p.save(e,t,n),s((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function g(e){let{children:t}=e;const n=m();return(0,u.jsx)(h.Provider,{value:n,children:t})}function b(e){let{children:t}=e;return s.C5?(0,u.jsx)(g,{children:t}):(0,u.jsx)(u.Fragment,{children:t})}function v(){const e=(0,r.useContext)(h);if(!e)throw new l.dV("DocsPreferredVersionContextProvider");return e}function y(e){void 0===e&&(e=a.W);const t=(0,o.ht)(e),[n,i]=v(),{preferredVersionName:s}=n[e];return{preferredVersion:t.versions.find((e=>e.name===s))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}function w(){const e=(0,o.Gy)(),[t]=v();function n(n){const r=e[n],{preferredVersionName:o}=t[n];return r.versions.find((e=>e.name===o))??null}const r=Object.keys(e);return Object.fromEntries(r.map((e=>[e,n(e)])))}},9881:(e,t,n)=>{"use strict";n.d(t,{V:()=>l,t:()=>c});var r=n(9474),o=n(5461),a=n(3274);const i=Symbol("EmptyContext"),s=r.createContext(i);function l(e){let{children:t,name:n,items:o}=e;const i=(0,r.useMemo)((()=>n&&o?{name:n,items:o}:null),[n,o]);return(0,a.jsx)(s.Provider,{value:i,children:t})}function c(){const e=(0,r.useContext)(s);if(e===i)throw new o.dV("DocsSidebarProvider");return e}},2569:(e,t,n)=>{"use strict";n.d(t,{n:()=>s,r:()=>l});var r=n(9474),o=n(5461),a=n(3274);const i=r.createContext(null);function s(e){let{children:t,version:n}=e;return(0,a.jsx)(i.Provider,{value:n,children:t})}function l(){const e=(0,r.useContext)(i);if(null===e)throw new o.dV("DocsVersionProvider");return e}},8340:(e,t,n)=>{"use strict";n.d(t,{M:()=>f,e:()=>p});var r=n(9474),o=n(3725),a=n(6342),i=n(4192),s=n(4359),l=n(5461),c=n(3274);const u=r.createContext(void 0);function d(){const e=function(){const e=(0,o.YL)(),{items:t}=(0,s.p)().navbar;return 0===t.length&&!e.component}(),t=(0,a.l)(),n=!e&&"mobile"===t,[l,c]=(0,r.useState)(!1);(0,i.$Z)((()=>{if(l)return c(!1),!1}));const u=(0,r.useCallback)((()=>{c((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&c(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:u,shown:l})),[e,n,u,l])}function p(e){let{children:t}=e;const n=d();return(0,c.jsx)(u.Provider,{value:n,children:t})}function f(){const e=r.useContext(u);if(void 0===e)throw new l.dV("NavbarMobileSidebarProvider");return e}},3725:(e,t,n)=>{"use strict";n.d(t,{GX:()=>c,YL:()=>l,y_:()=>s});var r=n(9474),o=n(5461),a=n(3274);const i=r.createContext(null);function s(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return(0,a.jsx)(i.Provider,{value:n,children:t})}function l(){const e=(0,r.useContext)(i);if(!e)throw new o.dV("NavbarSecondaryMenuContentProvider");return e[0]}function c(e){let{component:t,props:n}=e;const a=(0,r.useContext)(i);if(!a)throw new o.dV("NavbarSecondaryMenuContentProvider");const[,s]=a,l=(0,o.Be)(n);return(0,r.useEffect)((()=>{s({component:t,props:l})}),[s,t,l]),(0,r.useEffect)((()=>()=>s({component:null,props:null})),[s]),null}},8414:(e,t,n)=>{"use strict";n.d(t,{w:()=>o,J:()=>a});var r=n(9474);const o="navigation-with-keyboard";function a(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(o),"mousedown"===e.type&&document.body.classList.remove(o)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(o),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},5244:(e,t,n)=>{"use strict";n.d(t,{b:()=>s,w:()=>l});var r=n(9474),o=n(2403),a=n(4192);const i="q";function s(){return(0,a.l)(i)}function l(){const{siteConfig:{baseUrl:e,themeConfig:t}}=(0,o.A)(),{algolia:{searchPagePath:n}}=t;return(0,r.useCallback)((t=>`${e}${n}?${i}=${encodeURIComponent(t)}`),[e,n])}},6342:(e,t,n)=>{"use strict";n.d(t,{l:()=>s});var r=n(9474),o=n(6388);const a={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function s(e){let{desktopBreakpoint:t=i}=void 0===e?{}:e;const[n,s]=(0,r.useState)((()=>"ssr"));return(0,r.useEffect)((()=>{function e(){s(function(e){if(!o.A.canUseDOM)throw new Error("getWindowSize() should only be called after React hydration");return window.innerWidth>e?a.desktop:a.mobile}(t))}return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}),[t]),n}},1552:(e,t,n)=>{"use strict";n.d(t,{G:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",unlistedBanner:"theme-unlisted-banner",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}}},5592:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{O:()=>r})},7830:(e,t,n)=>{"use strict";n.d(t,{Nr:()=>f,w8:()=>g,C5:()=>p,B5:()=>_,Vd:()=>k,QB:()=>S,fW:()=>x,OF:()=>w,Y:()=>v});var r=n(9474),o=n(241),a=n(7221),i=n(4800),s=n(1558),l=n(2569),c=n(9881);function u(e){return Array.from(new Set(e))}var d=n(8098);const p=!!i.Gy;function f(e){return"link"!==e.type||e.unlisted?"category"===e.type?function(e){if(e.href&&!e.linkUnlisted)return e.href;for(const t of e.items){const e=f(t);if(e)return e}}(e):void 0:e.href}const h=(e,t)=>void 0!==e&&(0,d.ys)(e,t),m=(e,t)=>e.some((e=>g(e,t)));function g(e,t){return"link"===e.type?h(e.href,t):"category"===e.type&&(h(e.href,t)||m(e.items,t))}function b(e,t){switch(e.type){case"category":return g(e,t)||e.items.some((e=>b(e,t)));case"link":return!e.unlisted||g(e,t);default:return!0}}function v(e,t){return(0,r.useMemo)((()=>e.filter((e=>b(e,t)))),[e,t])}function y(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const o=[];return function e(t){for(const a of t)if("category"===a.type&&((0,d.ys)(a.href,n)||e(a.items))||"link"===a.type&&(0,d.ys)(a.href,n)){return r&&"category"!==a.type||o.unshift(a),!0}return!1}(t),o}function w(){const e=(0,c.t)(),{pathname:t}=(0,o.zy)(),n=(0,i.vT)()?.pluginData.breadcrumbs;return!1!==n&&e?y({sidebarItems:e.items,pathname:t}):null}function k(e){const{activeVersion:t}=(0,i.zK)(e),{preferredVersion:n}=(0,s.g1)(e),o=(0,i.r7)(e);return(0,r.useMemo)((()=>u([t,n,o].filter(Boolean))),[t,n,o])}function x(e,t){const n=k(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${t.map((e=>e[0])).join("\n- ")}`);return r[1]}),[e,n])}function S(e,t){const n=k(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${u(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function _(e){let{route:t}=e;const n=(0,o.zy)(),r=(0,l.r)(),i=t.routes,s=i.find((e=>(0,o.B6)(n.pathname,e)));if(!s)return null;const c=s.sidebar,u=c?r.docsSidebars[c]:void 0;return{docElement:(0,a.v)(i),sidebarName:c,sidebarItems:u}}},4904:(e,t,n)=>{"use strict";n.d(t,{s:()=>o});var r=n(2403);function o(e){const{siteConfig:t}=(0,r.A)(),{title:n,titleDelimiter:o}=t;return e?.trim().length?`${e.trim()} ${o} ${n}`:n}},4192:(e,t,n)=>{"use strict";n.d(t,{$Z:()=>i,l:()=>l});var r=n(9474),o=n(241),a=n(5461);function i(e){!function(e){const t=(0,o.W6)(),n=(0,a._q)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}function s(e){return function(e){const t=(0,o.W6)();return(0,r.useSyncExternalStore)(t.listen,(()=>e(t)),(()=>e(t)))}((t=>null===e?null:new URLSearchParams(t.location.search).get(e)))}function l(e){const t=s(e)??"",n=function(){const e=(0,o.W6)();return(0,r.useCallback)(((t,n,r)=>{const o=new URLSearchParams(e.location.search);n?o.set(t,n):o.delete(t),(r?.push?e.push:e.replace)({search:o.toString()})}),[e])}();return[t,(0,r.useCallback)(((t,r)=>{n(e,t,r)}),[n,e])]}},961:(e,t,n)=>{"use strict";n.d(t,{e3:()=>f,be:()=>d,Jx:()=>h});var r=n(9474),o=n(8923),a=n(609),i=n(1079);function s(){const e=r.useContext(i.o);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var l=n(4184),c=n(4904),u=n(3274);function d(e){let{title:t,description:n,keywords:r,image:o,children:i}=e;const s=(0,c.s)(t),{withBaseUrl:d}=(0,l.h)(),p=o?d(o,{absolute:!0}):void 0;return(0,u.jsxs)(a.A,{children:[t&&(0,u.jsx)("title",{children:s}),t&&(0,u.jsx)("meta",{property:"og:title",content:s}),n&&(0,u.jsx)("meta",{name:"description",content:n}),n&&(0,u.jsx)("meta",{property:"og:description",content:n}),r&&(0,u.jsx)("meta",{name:"keywords",content:Array.isArray(r)?r.join(","):r}),p&&(0,u.jsx)("meta",{property:"og:image",content:p}),p&&(0,u.jsx)("meta",{name:"twitter:image",content:p}),i]})}const p=r.createContext(void 0);function f(e){let{className:t,children:n}=e;const i=r.useContext(p),s=(0,o.A)(i,t);return(0,u.jsxs)(p.Provider,{value:s,children:[(0,u.jsx)(a.A,{children:(0,u.jsx)("html",{className:s})}),n]})}function h(e){let{children:t}=e;const n=s(),r=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const a=`plugin-id-${n.plugin.id}`;return(0,u.jsx)(f,{className:(0,o.A)(r,a),children:t})}},5461:(e,t,n)=>{"use strict";n.d(t,{Be:()=>c,ZC:()=>s,_q:()=>i,dV:()=>l,fM:()=>u});var r=n(9474),o=n(9154),a=n(3274);function i(e){const t=(0,r.useRef)(e);return(0,o.A)((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function s(e){const t=(0,r.useRef)();return(0,o.A)((()=>{t.current=e})),t.current}class l extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?<name>\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function c(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function u(e){return t=>{let{children:n}=t;return(0,a.jsx)(a.Fragment,{children:e.reduceRight(((e,t)=>(0,a.jsx)(t,{children:e})),n)})}}},8803:(e,t,n)=>{"use strict";function r(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}n.d(t,{G:()=>r})},8098:(e,t,n)=>{"use strict";n.d(t,{Dt:()=>s,ys:()=>i});var r=n(9474),o=n(6974),a=n(2403);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function s(){const{baseUrl:e}=(0,a.A)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function o(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(o).flatMap((e=>e.routes??[])))}(n)}({routes:o.A,baseUrl:e})),[e])}},3839:(e,t,n)=>{"use strict";n.d(t,{Mq:()=>p,Tv:()=>c,gk:()=>f});var r=n(9474),o=n(6388),a=n(170),i=(n(9154),n(5461)),s=n(3274);const l=r.createContext(void 0);function c(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return(0,s.jsx)(l.Provider,{value:n,children:t})}function u(){const e=(0,r.useContext)(l);if(null==e)throw new i.dV("ScrollControllerProvider");return e}const d=()=>o.A.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function p(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=u(),o=(0,r.useRef)(d()),a=(0,i._q)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=d();a(e,o.current),o.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[a,n,...t])}function f(){const e=(0,r.useRef)(null),t=(0,a.A)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const o=document.documentElement.scrollTop;(n&&o>e||!n&&o<e)&&(t=requestAnimationFrame(r),window.scrollTo(0,Math.floor(.85*(o-e))+e))}(),()=>t&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},7928:(e,t,n)=>{"use strict";n.d(t,{Cy:()=>i,af:()=>l,tU:()=>s});var r=n(4800),o=n(2403),a=n(1558);const i="default";function s(e,t){return`docs-${e}-${t}`}function l(){const{i18n:e}=(0,o.A)(),t=(0,r.Gy)(),n=(0,r.gk)(),l=(0,a.XK)();const c=[i,...Object.keys(t).map((function(e){const r=n?.activePlugin.pluginId===e?n.activeVersion:void 0,o=l[e],a=t[e].versions.find((e=>e.isLast));return s(e,(r??o??a).name)}))];return{locale:e.currentLocale,tags:c}}},7641:(e,t,n)=>{"use strict";n.d(t,{Wf:()=>l});n(9474);const r="localStorage";function o(e){let{key:t,oldValue:n,newValue:r,storage:o}=e;if(n===r)return;const a=document.createEvent("StorageEvent");a.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,o),window.dispatchEvent(a)}function a(e){if(void 0===e&&(e=r),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,i||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),i=!0),null}var t}let i=!1;const s={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function l(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(e);const n=a(t?.persistence);return null===n?s:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{const r=n.getItem(e);n.setItem(e,t),o({key:e,oldValue:r,newValue:t,storage:n})}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{const t=n.getItem(e);n.removeItem(e),o({key:e,oldValue:t,newValue:null,storage:n})}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}},listen:t=>{try{const r=r=>{r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),()=>window.removeEventListener("storage",r)}catch(r){return console.error(`Docusaurus storage error, can't listen for changes of key=${e}`,r),()=>{}}}}}},5156:(e,t,n)=>{"use strict";n.d(t,{o:()=>i});var r=n(2403),o=n(241),a=n(2753);function i(){const{siteConfig:{baseUrl:e,url:t,trailingSlash:n},i18n:{defaultLocale:i,currentLocale:s}}=(0,r.A)(),{pathname:l}=(0,o.zy)(),c=(0,a.applyTrailingSlash)(l,{trailingSlash:n,baseUrl:e}),u=s===i?e:e.replace(`/${s}/`,"/"),d=c.replace(e,"");return{createUrl:function(e){let{locale:n,fullyQualified:r}=e;return`${r?t:""}${function(e){return e===i?`${u}`:`${u}${e}/`}(n)}${d}`}}}},7097:(e,t,n)=>{"use strict";n.d(t,{$:()=>i});var r=n(9474),o=n(241),a=n(5461);function i(e){const t=(0,o.zy)(),n=(0,a.ZC)(t),i=(0,a._q)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},4359:(e,t,n)=>{"use strict";n.d(t,{p:()=>o});var r=n(2403);function o(){return(0,r.A)().siteConfig.themeConfig}},58:(e,t,n)=>{"use strict";n.d(t,{c:()=>o});var r=n(2403);function o(){const{siteConfig:{themeConfig:e}}=(0,r.A)();return e}},8930:(e,t,n)=>{"use strict";n.d(t,{C:()=>s});var r=n(9474),o=n(8803),a=n(4184),i=n(58);function s(){const{withBaseUrl:e}=(0,a.h)(),{algolia:{externalUrlRegex:t,replaceSearchResultPathname:n}}=(0,i.c)();return(0,r.useCallback)((r=>{const a=new URL(r);if((0,o.G)(t,a.href))return r;const i=`${a.pathname+a.hash}`;return e(function(e,t){return t?e.replaceAll(new RegExp(t.from,"g"),t.to):e}(i,n))}),[e,t,n])}},7988:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[o]=e.split(/[#?]/),a="/"===o||o===r?o:(i=o,n?function(e){return e.endsWith("/")?e:`${e}/`}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(o,a)}},66:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},2753:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var o=n(7988);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(o).default}});var a=n(66);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return a.getErrorCausalChain}})},2419:(e,t,n)=>{"use strict";function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function s(){s=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,r="function"==typeof Symbol?Symbol:{},o=r.iterator||"@@iterator",a=r.asyncIterator||"@@asyncIterator",i=r.toStringTag||"@@toStringTag";function l(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,n){return e[t]=n}}function c(e,t,n,r){var o=t&&t.prototype instanceof f?t:f,a=Object.create(o.prototype),i=new C(r||[]);return a._invoke=function(e,t,n){var r="suspendedStart";return function(o,a){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===o)throw a;return{value:void 0,done:!0}}for(n.method=o,n.arg=a;;){var i=n.delegate;if(i){var s=x(i,n);if(s){if(s===d)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var l=u(e,t,n);if("normal"===l.type){if(r=n.done?"completed":"suspendedYield",l.arg===d)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r="completed",n.method="throw",n.arg=l.arg)}}}(e,n,i),a}function u(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=c;var d={};function f(){}function h(){}function m(){}var g={};l(g,o,(function(){return this}));var b=Object.getPrototypeOf,v=b&&b(b(E([])));v&&v!==t&&n.call(v,o)&&(g=v);var y=m.prototype=f.prototype=Object.create(g);function w(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function k(e,t){function r(o,a,i,s){var l=u(e[o],e,a);if("throw"!==l.type){var c=l.arg,d=c.value;return d&&"object"==p(d)&&n.call(d,"__await")?t.resolve(d.__await).then((function(e){r("next",e,i,s)}),(function(e){r("throw",e,i,s)})):t.resolve(d).then((function(e){c.value=e,i(c)}),(function(e){return r("throw",e,i,s)}))}s(l.arg)}var o;this._invoke=function(e,n){function a(){return new t((function(t,o){r(e,n,t,o)}))}return o=o?o.then(a,a):a()}}function x(e,t){var n=e.iterator[t.method];if(void 0===n){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=void 0,x(e,t),"throw"===t.method))return d;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return d}var r=u(n,e.iterator,t.arg);if("throw"===r.type)return t.method="throw",t.arg=r.arg,t.delegate=null,d;var o=r.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,d):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,d)}function S(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function _(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function C(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(S,this),this.reset(!0)}function E(e){if(e){var t=e[o];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,a=function t(){for(;++r<e.length;)if(n.call(e,r))return t.value=e[r],t.done=!1,t;return t.value=void 0,t.done=!0,t};return a.next=a}}return{next:A}}function A(){return{value:void 0,done:!0}}return h.prototype=m,l(y,"constructor",m),l(m,"constructor",h),h.displayName=l(m,i,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===h||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,m):(e.__proto__=m,l(e,i,"GeneratorFunction")),e.prototype=Object.create(y),e},e.awrap=function(e){return{__await:e}},w(k.prototype),l(k.prototype,a,(function(){return this})),e.AsyncIterator=k,e.async=function(t,n,r,o,a){void 0===a&&(a=Promise);var i=new k(c(t,n,r,o),a);return e.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},w(y),l(y,i,"Generator"),l(y,o,(function(){return this})),l(y,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=[];for(var n in e)t.push(n);return t.reverse(),function n(){for(;t.length;){var r=t.pop();if(r in e)return n.value=r,n.done=!1,n}return n.done=!0,n}},e.values=E,C.prototype={constructor:C,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(_),!e)for(var t in this)"t"===t.charAt(0)&&n.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function r(n,r){return i.type="throw",i.arg=e,t.next=n,r&&(t.method="next",t.arg=void 0),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],i=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var s=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(s&&l){if(this.prev<a.catchLoc)return r(a.catchLoc,!0);if(this.prev<a.finallyLoc)return r(a.finallyLoc)}else if(s){if(this.prev<a.catchLoc)return r(a.catchLoc,!0)}else{if(!l)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return r(a.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var a=o;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=e,i.arg=t,a?(this.method="next",this.next=a.finallyLoc,d):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),d},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),_(n),d}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;_(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:E(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),d}},e}function l(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a=[],i=!0,s=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(a.push(r.value),!t||a.length!==t);i=!0);}catch(e){s=!0,o=e}finally{try{i||null==n.return||n.return()}finally{if(s)throw o}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return c(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?c(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function u(e,t,n,r,o,a,i){try{var s=e[a](i),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}function d(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var a=e.apply(t,n);function i(e){u(a,r,o,i,s,"next",e)}function s(e){u(a,r,o,i,s,"throw",e)}i(void 0)}))}}function p(e){return p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},p(e)}n.d(t,{R:()=>ui});var f="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:"undefined"!=typeof self?self:{},h=function(e,t){return e===t||e!=e&&t!=t},m=h,g=function(e,t){for(var n=e.length;n--;)if(m(e[n][0],t))return n;return-1},b=g,v=Array.prototype.splice,y=g,w=g,k=g,x=function(){this.__data__=[],this.size=0};function S(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}S.prototype.clear=x,S.prototype.delete=function(e){var t=this.__data__,n=b(t,e);return!(n<0||(n==t.length-1?t.pop():v.call(t,n,1),--this.size,0))},S.prototype.get=function(e){var t=this.__data__,n=y(t,e);return n<0?void 0:t[n][1]},S.prototype.has=function(e){return w(this.__data__,e)>-1},S.prototype.set=function(e,t){var n=this.__data__,r=k(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this};var _,C=S,E=C,A="object"==p(f)&&f&&f.Object===Object&&f,L=A,T="object"==("undefined"==typeof self?"undefined":p(self))&&self&&self.Object===Object&&self,j=L||T||Function("return this")(),R=j.Symbol,N=R,O=Object.prototype,P=O.hasOwnProperty,D=O.toString,M=N?N.toStringTag:void 0,I=Object.prototype.toString,F=function(e){var t=P.call(e,M),n=e[M];try{e[M]=void 0;var r=!0}catch(e){}var o=D.call(e);return r&&(t?e[M]=n:delete e[M]),o},B=R?R.toStringTag:void 0,z=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":B&&B in Object(e)?F(e):function(e){return I.call(e)}(e)},U=function(e){var t=p(e);return null!=e&&("object"==t||"function"==t)},V=z,q=U,W=function(e){if(!q(e))return!1;var t=V(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t},$=j["__core-js_shared__"],G=(_=/[^.]+$/.exec($&&$.keys&&$.keys.IE_PROTO||""))?"Symbol(src)_1."+_:"",H=Function.prototype.toString,Z=W,Y=function(e){return!!G&&G in e},X=U,K=/^\[object .+?Constructor\]$/,J=Function.prototype,Q=Object.prototype,ee=J.toString,te=Q.hasOwnProperty,ne=RegExp("^"+ee.call(te).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),re=function(e){return!(!X(e)||Y(e))&&(Z(e)?ne:K).test(function(e){if(null!=e){try{return H.call(e)}catch(e){}try{return e+""}catch(e){}}return""}(e))},oe=function(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return re(n)?n:void 0},ae=oe(j,"Map"),ie=oe(Object,"create"),se=ie,le=ie,ce=Object.prototype.hasOwnProperty,ue=ie,de=Object.prototype.hasOwnProperty,pe=ie,fe=function(){this.__data__=se?se(null):{},this.size=0},he=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},me=function(e){var t=this.__data__;if(le){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return ce.call(t,e)?t[e]:void 0};function ge(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}ge.prototype.clear=fe,ge.prototype.delete=he,ge.prototype.get=me,ge.prototype.has=function(e){var t=this.__data__;return ue?void 0!==t[e]:de.call(t,e)},ge.prototype.set=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=pe&&void 0===t?"__lodash_hash_undefined__":t,this};var be=ge,ve=C,ye=ae,we=function(e,t){var n=e.__data__;return function(e){var t=p(e);return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}(t)?n["string"==typeof t?"string":"hash"]:n.map},ke=we,xe=we,Se=we,_e=we;function Ce(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}Ce.prototype.clear=function(){this.size=0,this.__data__={hash:new be,map:new(ye||ve),string:new be}},Ce.prototype.delete=function(e){var t=ke(this,e).delete(e);return this.size-=t?1:0,t},Ce.prototype.get=function(e){return xe(this,e).get(e)},Ce.prototype.has=function(e){return Se(this,e).has(e)},Ce.prototype.set=function(e,t){var n=_e(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this};var Ee=Ce,Ae=C,Le=ae,Te=Ee,je=C,Re=function(){this.__data__=new E,this.size=0},Ne=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},Oe=function(e){return this.__data__.get(e)},Pe=function(e){return this.__data__.has(e)};function De(e){var t=this.__data__=new je(e);this.size=t.size}De.prototype.clear=Re,De.prototype.delete=Ne,De.prototype.get=Oe,De.prototype.has=Pe,De.prototype.set=function(e,t){var n=this.__data__;if(n instanceof Ae){var r=n.__data__;if(!Le||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new Te(r)}return n.set(e,t),this.size=n.size,this};var Me=De,Ie=oe,Fe=function(){try{var e=Ie(Object,"defineProperty");return e({},"",{}),e}catch(e){}}(),Be=Fe,ze=function(e,t,n){"__proto__"==t&&Be?Be(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n},Ue=ze,Ve=h,qe=function(e,t,n){(void 0!==n&&!Ve(e[t],n)||void 0===n&&!(t in e))&&Ue(e,t,n)},We=function(e,t,n){for(var r=-1,o=Object(e),a=n(e),i=a.length;i--;){var s=a[++r];if(!1===t(o[s],s,o))break}return e},$e={exports:{}};!function(e,t){var n=j,r=t&&!t.nodeType&&t,o=r&&e&&!e.nodeType&&e,a=o&&o.exports===r?n.Buffer:void 0,i=a?a.allocUnsafe:void 0;e.exports=function(e,t){if(t)return e.slice();var n=e.length,r=i?i(n):new e.constructor(n);return e.copy(r),r}}($e,$e.exports);var Ge=j.Uint8Array,He=U,Ze=Object.create,Ye=function(){function e(){}return function(t){if(!He(t))return{};if(Ze)return Ze(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}(),Xe=function(e,t){return function(n){return e(t(n))}}(Object.getPrototypeOf,Object),Ke=Object.prototype,Je=function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||Ke)},Qe=Ye,et=Xe,tt=Je,nt=function(e){return null!=e&&"object"==p(e)},rt=z,ot=nt,at=function(e){return ot(e)&&"[object Arguments]"==rt(e)},it=nt,st=Object.prototype,lt=st.hasOwnProperty,ct=st.propertyIsEnumerable,ut=at(function(){return arguments}())?at:function(e){return it(e)&<.call(e,"callee")&&!ct.call(e,"callee")},dt=Array.isArray,pt=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991},ft=W,ht=pt,mt=function(e){return null!=e&&ht(e.length)&&!ft(e)},gt=mt,bt=nt,vt={exports:{}},yt=function(){return!1};!function(e,t){var n=j,r=yt,o=t&&!t.nodeType&&t,a=o&&e&&!e.nodeType&&e,i=a&&a.exports===o?n.Buffer:void 0,s=(i?i.isBuffer:void 0)||r;e.exports=s}(vt,vt.exports);var wt=z,kt=Xe,xt=nt,St=Function.prototype,_t=Object.prototype,Ct=St.toString,Et=_t.hasOwnProperty,At=Ct.call(Object),Lt=z,Tt=pt,jt=nt,Rt={};Rt["[object Float32Array]"]=Rt["[object Float64Array]"]=Rt["[object Int8Array]"]=Rt["[object Int16Array]"]=Rt["[object Int32Array]"]=Rt["[object Uint8Array]"]=Rt["[object Uint8ClampedArray]"]=Rt["[object Uint16Array]"]=Rt["[object Uint32Array]"]=!0,Rt["[object Arguments]"]=Rt["[object Array]"]=Rt["[object ArrayBuffer]"]=Rt["[object Boolean]"]=Rt["[object DataView]"]=Rt["[object Date]"]=Rt["[object Error]"]=Rt["[object Function]"]=Rt["[object Map]"]=Rt["[object Number]"]=Rt["[object Object]"]=Rt["[object RegExp]"]=Rt["[object Set]"]=Rt["[object String]"]=Rt["[object WeakMap]"]=!1;var Nt={exports:{}};!function(e,t){var n=A,r=t&&!t.nodeType&&t,o=r&&e&&!e.nodeType&&e,a=o&&o.exports===r&&n.process,i=function(){try{return o&&o.require&&o.require("util").types||a&&a.binding&&a.binding("util")}catch(e){}}();e.exports=i}(Nt,Nt.exports);var Ot=function(e){return jt(e)&&Tt(e.length)&&!!Rt[Lt(e)]},Pt=function(e){return function(t){return e(t)}},Dt=Nt.exports,Mt=Dt&&Dt.isTypedArray,It=Mt?Pt(Mt):Ot,Ft=function(e,t){if(("constructor"!==t||"function"!=typeof e[t])&&"__proto__"!=t)return e[t]},Bt=ze,zt=h,Ut=Object.prototype.hasOwnProperty,Vt=function(e,t,n){var r=e[t];Ut.call(e,t)&&zt(r,n)&&(void 0!==n||t in e)||Bt(e,t,n)},qt=Vt,Wt=ze,$t=/^(?:0|[1-9]\d*)$/,Gt=function(e,t){var n=p(e);return!!(t=null==t?9007199254740991:t)&&("number"==n||"symbol"!=n&&$t.test(e))&&e>-1&&e%1==0&&e<t},Ht=ut,Zt=dt,Yt=vt.exports,Xt=Gt,Kt=It,Jt=Object.prototype.hasOwnProperty,Qt=U,en=Je,tn=Object.prototype.hasOwnProperty,nn=function(e,t){var n=Zt(e),r=!n&&Ht(e),o=!n&&!r&&Yt(e),a=!n&&!r&&!o&&Kt(e),i=n||r||o||a,s=i?function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}(e.length,String):[],l=s.length;for(var c in e)!t&&!Jt.call(e,c)||i&&("length"==c||o&&("offset"==c||"parent"==c)||a&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||Xt(c,l))||s.push(c);return s},rn=function(e){if(!Qt(e))return function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}(e);var t=en(e),n=[];for(var r in e)("constructor"!=r||!t&&tn.call(e,r))&&n.push(r);return n},on=mt,an=function(e){return on(e)?nn(e,!0):rn(e)},sn=function(e,t,n,r){var o=!n;n||(n={});for(var a=-1,i=t.length;++a<i;){var s=t[a],l=r?r(n[s],e[s],s,n,e):void 0;void 0===l&&(l=e[s]),o?Wt(n,s,l):qt(n,s,l)}return n},ln=an,cn=qe,un=$e.exports,dn=function(e,t){var n=t?function(e){var t=new e.constructor(e.byteLength);return new Ge(t).set(new Ge(e)),t}(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)},pn=function(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t},fn=function(e){return"function"!=typeof e.constructor||tt(e)?{}:Qe(et(e))},hn=ut,mn=dt,gn=function(e){return bt(e)&>(e)},bn=vt.exports,vn=W,yn=U,wn=function(e){if(!xt(e)||"[object Object]"!=wt(e))return!1;var t=kt(e);if(null===t)return!0;var n=Et.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&Ct.call(n)==At},kn=It,xn=Ft,Sn=Me,_n=qe,Cn=We,En=function(e,t,n,r,o,a,i){var s=xn(e,n),l=xn(t,n),c=i.get(l);if(c)cn(e,n,c);else{var u=a?a(s,l,n+"",e,t,i):void 0,d=void 0===u;if(d){var p=mn(l),f=!p&&bn(l),h=!p&&!f&&kn(l);u=l,p||f||h?mn(s)?u=s:gn(s)?u=pn(s):f?(d=!1,u=un(l,!0)):h?(d=!1,u=dn(l,!0)):u=[]:wn(l)||hn(l)?(u=s,hn(s)?u=function(e){return sn(e,ln(e))}(s):yn(s)&&!vn(s)||(u=fn(l))):d=!1}d&&(i.set(l,u),o(u,l,r,a,i),i.delete(l)),cn(e,n,u)}},An=U,Ln=an,Tn=Ft,jn=function(e){return e},Rn=Math.max,Nn=function(e,t,n){return t=Rn(void 0===t?e.length-1:t,0),function(){for(var r=arguments,o=-1,a=Rn(r.length-t,0),i=Array(a);++o<a;)i[o]=r[t+o];o=-1;for(var s=Array(t+1);++o<t;)s[o]=r[o];return s[t]=n(i),function(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}(e,this,s)}},On=function(e){return function(){return e}},Pn=Fe,Dn=Pn?function(e,t){return Pn(e,"toString",{configurable:!0,enumerable:!1,value:On(t),writable:!0})}:jn,Mn=Date.now,In=function(e){var t=0,n=0;return function(){var r=Mn(),o=16-(r-n);if(n=r,o>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}(Dn),Fn=jn,Bn=Nn,zn=In,Un=h,Vn=mt,qn=Gt,Wn=U,$n=function(e,t,n){if(!Wn(n))return!1;var r=p(t);return!!("number"==r?Vn(n)&&qn(t,n.length):"string"==r&&t in n)&&Un(n[t],e)},Gn=$n,Hn=function e(t,n,r,o,a){t!==n&&Cn(n,(function(i,s){if(a||(a=new Sn),An(i))En(t,n,s,r,e,o,a);else{var l=o?o(Tn(t,s),i,s+"",t,n,a):void 0;void 0===l&&(l=i),_n(t,s,l)}}),Ln)},Zn=function(e){return function(e,t){return zn(Bn(e,t,Fn),e+"")}((function(t,n){var r=-1,o=n.length,a=o>1?n[o-1]:void 0,i=o>2?n[2]:void 0;for(a=e.length>3&&"function"==typeof a?(o--,a):void 0,i&&Gn(n[0],n[1],i)&&(a=o<3?void 0:a,o=1),t=Object(t);++r<o;){var s=n[r];s&&e(t,s,r,a)}return t}))}((function(e,t,n){Hn(e,t,n)})),Yn=z,Xn=nt,Kn=function(e){return"symbol"==p(e)||Xn(e)&&"[object Symbol]"==Yn(e)},Jn=dt,Qn=Kn,er=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,tr=/^\w*$/,nr=Ee;function rr(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function n(){var r=arguments,o=t?t.apply(this,r):r[0],a=n.cache;if(a.has(o))return a.get(o);var i=e.apply(this,r);return n.cache=a.set(o,i)||a,i};return n.cache=new(rr.Cache||nr),n}rr.Cache=nr;var or=rr,ar=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ir=/\\(\\)?/g,sr=function(e){var t=or((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(ar,(function(e,n,r,o){t.push(r?o.replace(ir,"$1"):n||e)})),t}),(function(e){return 500===n.size&&n.clear(),e})),n=t.cache;return t}(),lr=dt,cr=Kn,ur=R?R.prototype:void 0,dr=ur?ur.toString:void 0,pr=function e(t){if("string"==typeof t)return t;if(lr(t))return function(e,t){for(var n=-1,r=null==e?0:e.length,o=Array(r);++n<r;)o[n]=t(e[n],n,e);return o}(t,e)+"";if(cr(t))return dr?dr.call(t):"";var n=t+"";return"0"==n&&1/t==-1/0?"-0":n},fr=dt,hr=function(e,t){if(Jn(e))return!1;var n=p(e);return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!Qn(e))||tr.test(e)||!er.test(e)||null!=t&&e in Object(t)},mr=sr,gr=function(e,t){return fr(e)?e:hr(e,t)?[e]:mr(function(e){return null==e?"":pr(e)}(e))},br=Kn,vr=function(e){if("string"==typeof e||br(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t},yr=gr,wr=vr,kr=Vt,xr=gr,Sr=Gt,_r=U,Cr=vr,Er=function(e,t){for(var n=0,r=(t=yr(t,e)).length;null!=e&&n<r;)e=e[wr(t[n++])];return n&&n==r?e:void 0},Ar=function(e,t,n,r){if(!_r(e))return e;for(var o=-1,a=(t=xr(t,e)).length,i=a-1,s=e;null!=s&&++o<a;){var l=Cr(t[o]),c=n;if("__proto__"===l||"constructor"===l||"prototype"===l)return e;if(o!=i){var u=s[l];void 0===(c=r?r(u,l,s):void 0)&&(c=_r(u)?u:Sr(t[o+1])?[]:{})}kr(s,l,c),s=s[l]}return e},Lr=gr,Tr=gr,jr=ut,Rr=dt,Nr=Gt,Or=pt,Pr=vr,Dr=function(e,t){return null!=e&&t in Object(e)},Mr=function(e,t){return null!=e&&function(e,t,n){for(var r=-1,o=(t=Tr(t,e)).length,a=!1;++r<o;){var i=Pr(t[r]);if(!(a=null!=e&&n(e,i)))break;e=e[i]}return a||++r!=o?a:!!(o=null==e?0:e.length)&&Or(o)&&Nr(i,o)&&(Rr(e)||jr(e))}(e,t,Dr)},Ir=ut,Fr=dt,Br=R?R.isConcatSpreadable:void 0,zr=function(e,t){for(var n=-1,r=t.length,o=e.length;++n<r;)e[o+n]=t[n];return e},Ur=function(e){return Fr(e)||Ir(e)||!!(Br&&e&&e[Br])},Vr=function e(t,n,r,o,a){var i=-1,s=t.length;for(r||(r=Ur),a||(a=[]);++i<s;){var l=t[i];n>0&&r(l)?n>1?e(l,n-1,r,o,a):zr(a,l):o||(a[a.length]=l)}return a},qr=function(e){return null!=e&&e.length?Vr(e,1):[]},Wr=Nn,$r=In,Gr=function(e,t){return function(e,t,n){for(var r=-1,o=t.length,a={};++r<o;){var i=t[r],s=Er(e,i);n(s,i)&&Ar(a,Lr(i,e),s)}return a}(e,t,(function(t,n){return Mr(e,n)}))},Hr=function(e){return $r(Wr(e,void 0,qr),e+"")}((function(e,t){return null==e?{}:Gr(e,t)}));function Zr(e,t,n,r){return new(n||(n=Promise))((function(o,a){function i(e){try{l(r.next(e))}catch(e){a(e)}}function s(e){try{l(r.throw(e))}catch(e){a(e)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,s)}l((r=r.apply(e,t||[])).next())}))}function Yr(e,t){var n,r,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;i;)try{if(n=1,r&&(o=2&a[0]?r.return:a[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,a[1])).done)return o;switch(r=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return i.label++,{value:a[1],done:!1};case 5:i.label++,r=a[1],a=[0];continue;case 7:a=i.ops.pop(),i.trys.pop();continue;default:if(!((o=(o=i.trys).length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){i.label=a[1];break}if(6===a[0]&&i.label<o[1]){i.label=o[1],o=a;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(a);break}o[2]&&i.ops.pop(),i.trys.pop();continue}a=t.call(e,i)}catch(e){a=[6,e],r=0}finally{n=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,s])}}}function Xr(e,t,n){if(n||2===arguments.length)for(var r,o=0,a=t.length;o<a;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))}function Kr(e,t){return new Promise((function(n){return setTimeout(n,e,t)}))}function Jr(e){return!!e&&"function"==typeof e.then}function Qr(e,t){try{var n=e();Jr(n)?n.then((function(e){return t(!0,e)}),(function(e){return t(!1,e)})):t(!0,n)}catch(e){t(!1,e)}}function eo(e,t,n){return void 0===n&&(n=16),Zr(this,void 0,void 0,(function(){var r,o,a,i;return Yr(this,(function(s){switch(s.label){case 0:r=Array(e.length),o=Date.now(),a=0,s.label=1;case 1:return a<e.length?(r[a]=t(e[a],a),(i=Date.now())>=o+n?(o=i,[4,Kr(0)]):[3,3]):[3,4];case 2:s.sent(),s.label=3;case 3:return++a,[3,1];case 4:return[2,r]}}))}))}function to(e){e.then(void 0,(function(){}))}function no(e,t){e=[e[0]>>>16,65535&e[0],e[1]>>>16,65535&e[1]],t=[t[0]>>>16,65535&t[0],t[1]>>>16,65535&t[1]];var n=[0,0,0,0];return n[3]+=e[3]+t[3],n[2]+=n[3]>>>16,n[3]&=65535,n[2]+=e[2]+t[2],n[1]+=n[2]>>>16,n[2]&=65535,n[1]+=e[1]+t[1],n[0]+=n[1]>>>16,n[1]&=65535,n[0]+=e[0]+t[0],n[0]&=65535,[n[0]<<16|n[1],n[2]<<16|n[3]]}function ro(e,t){e=[e[0]>>>16,65535&e[0],e[1]>>>16,65535&e[1]],t=[t[0]>>>16,65535&t[0],t[1]>>>16,65535&t[1]];var n=[0,0,0,0];return n[3]+=e[3]*t[3],n[2]+=n[3]>>>16,n[3]&=65535,n[2]+=e[2]*t[3],n[1]+=n[2]>>>16,n[2]&=65535,n[2]+=e[3]*t[2],n[1]+=n[2]>>>16,n[2]&=65535,n[1]+=e[1]*t[3],n[0]+=n[1]>>>16,n[1]&=65535,n[1]+=e[2]*t[2],n[0]+=n[1]>>>16,n[1]&=65535,n[1]+=e[3]*t[1],n[0]+=n[1]>>>16,n[1]&=65535,n[0]+=e[0]*t[3]+e[1]*t[2]+e[2]*t[1]+e[3]*t[0],n[0]&=65535,[n[0]<<16|n[1],n[2]<<16|n[3]]}function oo(e,t){return 32==(t%=64)?[e[1],e[0]]:t<32?[e[0]<<t|e[1]>>>32-t,e[1]<<t|e[0]>>>32-t]:(t-=32,[e[1]<<t|e[0]>>>32-t,e[0]<<t|e[1]>>>32-t])}function ao(e,t){return 0==(t%=64)?e:t<32?[e[0]<<t|e[1]>>>32-t,e[1]<<t]:[e[1]<<t-32,0]}function io(e,t){return[e[0]^t[0],e[1]^t[1]]}function so(e){return e=io(e,[0,e[0]>>>1]),e=io(e=ro(e,[4283543511,3981806797]),[0,e[0]>>>1]),io(e=ro(e,[3301882366,444984403]),[0,e[0]>>>1])}function lo(e){return parseInt(e)}function co(e){return parseFloat(e)}function uo(e,t){return"number"==typeof e&&isNaN(e)?t:e}function po(e){return e.reduce((function(e,t){return e+(t?1:0)}),0)}function fo(e){return e&&"object"===p(e)&&"message"in e?e:{message:e}}function ho(e,t,n){var r=Object.keys(e).filter((function(e){return!function(e,t){for(var n=0,r=e.length;n<r;++n)if(e[n]===t)return!0;return!1}(n,e)})),o=eo(r,(function(n){return function(e,t){var n=new Promise((function(n){var r=Date.now();Qr(e.bind(null,t),(function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var o=Date.now()-r;if(!e[0])return n((function(){return{error:fo(e[1]),duration:o}}));var a=e[1];if(function(e){return"function"!=typeof e}(a))return n((function(){return{value:a,duration:o}}));n((function(){return new Promise((function(e){var t=Date.now();Qr(a,(function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];var a=o+Date.now()-t;if(!n[0])return e({error:fo(n[1]),duration:a});e({value:n[1],duration:a})}))}))}))}))}));return to(n),function(){return n.then((function(e){return e()}))}}(e[n],t)}));return to(o),function(){return Zr(this,void 0,void 0,(function(){var e,t,n,a;return Yr(this,(function(i){switch(i.label){case 0:return[4,o];case 1:return[4,eo(i.sent(),(function(e){var t=e();return to(t),t}))];case 2:return e=i.sent(),[4,Promise.all(e)];case 3:for(t=i.sent(),n={},a=0;a<r.length;++a)n[r[a]]=t[a];return[2,n]}}))}))}}function mo(){var e=window,t=navigator;return po(["MSCSSMatrix"in e,"msSetImmediate"in e,"msIndexedDB"in e,"msMaxTouchPoints"in t,"msPointerEnabled"in t])>=4}function go(){var e=window,t=navigator;return po(["webkitPersistentStorage"in t,"webkitTemporaryStorage"in t,0===t.vendor.indexOf("Google"),"webkitResolveLocalFileSystemURL"in e,"BatteryManager"in e,"webkitMediaStream"in e,"webkitSpeechGrammar"in e])>=5}function bo(){var e=window,t=navigator;return po(["ApplePayError"in e,"CSSPrimitiveValue"in e,"Counter"in e,0===t.vendor.indexOf("Apple"),"getStorageUpdates"in t,"WebKitMediaKeys"in e])>=4}function vo(){var e=window;return po(["safari"in e,!("DeviceMotionEvent"in e),!("ongestureend"in e),!("standalone"in navigator)])>=3}function yo(){var e=document;return(e.exitFullscreen||e.msExitFullscreen||e.mozCancelFullScreen||e.webkitExitFullscreen).call(e)}function wo(e){var t=new Error(e);return t.name=e,t}function ko(e,t,n){var r,o,a;return void 0===n&&(n=50),Zr(this,void 0,void 0,(function(){var i,s;return Yr(this,(function(l){switch(l.label){case 0:i=document,l.label=1;case 1:return i.body?[3,3]:[4,Kr(n)];case 2:return l.sent(),[3,1];case 3:s=i.createElement("iframe"),l.label=4;case 4:return l.trys.push([4,,10,11]),[4,new Promise((function(e,n){var r=!1,o=function(){r=!0,e()};s.onload=o,s.onerror=function(e){r=!0,n(e)};var a=s.style;a.setProperty("display","block","important"),a.position="absolute",a.top="0",a.left="0",a.visibility="hidden",t&&"srcdoc"in s?s.srcdoc=t:s.src="about:blank",i.body.appendChild(s),function e(){var t,n;r||("complete"===(null===(n=null===(t=s.contentWindow)||void 0===t?void 0:t.document)||void 0===n?void 0:n.readyState)?o():setTimeout(e,10))}()}))];case 5:l.sent(),l.label=6;case 6:return(null===(o=null===(r=s.contentWindow)||void 0===r?void 0:r.document)||void 0===o?void 0:o.body)?[3,8]:[4,Kr(n)];case 7:return l.sent(),[3,6];case 8:return[4,e(s,s.contentWindow)];case 9:return[2,l.sent()];case 10:return null===(a=s.parentNode)||void 0===a||a.removeChild(s),[7];case 11:return[2]}}))}))}function xo(e){for(var t=function(e){for(var t,n,r="Unexpected syntax '".concat(e,"'"),o=/^\s*([a-z-]*)(.*)$/i.exec(e),a=o[1]||void 0,i={},s=/([.:#][\w-]+|\[.+?\])/gi,l=function(e,t){i[e]=i[e]||[],i[e].push(t)};;){var c=s.exec(o[2]);if(!c)break;var u=c[0];switch(u[0]){case".":l("class",u.slice(1));break;case"#":l("id",u.slice(1));break;case"[":var d=/^\[([\w-]+)([~|^$*]?=("(.*?)"|([\w-]+)))?(\s+[is])?\]$/.exec(u);if(!d)throw new Error(r);l(d[1],null!==(n=null!==(t=d[4])&&void 0!==t?t:d[5])&&void 0!==n?n:"");break;default:throw new Error(r)}}return[a,i]}(e),n=t[0],r=t[1],o=document.createElement(null!=n?n:"div"),a=0,i=Object.keys(r);a<i.length;a++){var s=i[a],l=r[s].join(" ");"style"===s?So(o.style,l):o.setAttribute(s,l)}return o}function So(e,t){for(var n=0,r=t.split(";");n<r.length;n++){var o=r[n],a=/^\s*([\w-]+)\s*:\s*(.+?)(\s*!([\w-]+))?\s*$/.exec(o);if(a){var i=a[1],s=a[2],l=a[4];e.setProperty(i,s,l||"")}}}var _o,Co,Eo=["monospace","sans-serif","serif"],Ao=["sans-serif-thin","ARNO PRO","Agency FB","Arabic Typesetting","Arial Unicode MS","AvantGarde Bk BT","BankGothic Md BT","Batang","Bitstream Vera Sans Mono","Calibri","Century","Century Gothic","Clarendon","EUROSTILE","Franklin Gothic","Futura Bk BT","Futura Md BT","GOTHAM","Gill Sans","HELV","Haettenschweiler","Helvetica Neue","Humanst521 BT","Leelawadee","Letter Gothic","Levenim MT","Lucida Bright","Lucida Sans","Menlo","MS Mincho","MS Outlook","MS Reference Specialty","MS UI Gothic","MT Extra","MYRIAD PRO","Marlett","Meiryo UI","Microsoft Uighur","Minion Pro","Monotype Corsiva","PMingLiU","Pristina","SCRIPTINA","Segoe UI Light","Serifa","SimHei","Small Fonts","Staccato222 BT","TRAJAN PRO","Univers CE 55 Medium","Vrinda","ZWAdobeF"];function Lo(e){return e.toDataURL()}function To(){var e=screen;return[uo(co(e.availTop),null),uo(co(e.width)-co(e.availWidth)-uo(co(e.availLeft),0),null),uo(co(e.height)-co(e.availHeight)-uo(co(e.availTop),0),null),uo(co(e.availLeft),null)]}function jo(e){for(var t=0;t<4;++t)if(e[t])return!1;return!0}function Ro(e){var t;return Zr(this,void 0,void 0,(function(){var n,r,o,a,i,s,l;return Yr(this,(function(c){switch(c.label){case 0:for(n=document,r=n.createElement("div"),o=new Array(e.length),a={},No(r),l=0;l<e.length;++l)i=xo(e[l]),No(s=n.createElement("div")),s.appendChild(i),r.appendChild(s),o[l]=i;c.label=1;case 1:return n.body?[3,3]:[4,Kr(50)];case 2:return c.sent(),[3,1];case 3:n.body.appendChild(r);try{for(l=0;l<e.length;++l)o[l].offsetParent||(a[e[l]]=!0)}finally{null===(t=r.parentNode)||void 0===t||t.removeChild(r)}return[2,a]}}))}))}function No(e){e.style.setProperty("display","block","important")}function Oo(e){return matchMedia("(inverted-colors: ".concat(e,")")).matches}function Po(e){return matchMedia("(forced-colors: ".concat(e,")")).matches}function Do(e){return matchMedia("(prefers-contrast: ".concat(e,")")).matches}function Mo(e){return matchMedia("(prefers-reduced-motion: ".concat(e,")")).matches}function Io(e){return matchMedia("(dynamic-range: ".concat(e,")")).matches}var Fo=Math,Bo=function(){return 0},zo={default:[],apple:[{font:"-apple-system-body"}],serif:[{fontFamily:"serif"}],sans:[{fontFamily:"sans-serif"}],mono:[{fontFamily:"monospace"}],min:[{fontSize:"1px"}],system:[{fontFamily:"system-ui"}]},Uo={fonts:function(){return ko((function(e,t){var n=t.document,r=n.body;r.style.fontSize="48px";var o=n.createElement("div"),a={},i={},s=function(e){var t=n.createElement("span"),r=t.style;return r.position="absolute",r.top="0",r.left="0",r.fontFamily=e,t.textContent="mmMwWLliI0O&1",o.appendChild(t),t},l=Eo.map(s),c=function(){for(var e={},t=function(t){e[t]=Eo.map((function(e){return function(e,t){return s("'".concat(e,"',").concat(t))}(t,e)}))},n=0,r=Ao;n<r.length;n++)t(r[n]);return e}();r.appendChild(o);for(var u=0;u<Eo.length;u++)a[Eo[u]]=l[u].offsetWidth,i[Eo[u]]=l[u].offsetHeight;return Ao.filter((function(e){return t=c[e],Eo.some((function(e,n){return t[n].offsetWidth!==a[e]||t[n].offsetHeight!==i[e]}));var t}))}))},domBlockers:function(e){var t=(void 0===e?{}:e).debug;return Zr(this,void 0,void 0,(function(){var e,n,r,o,a;return Yr(this,(function(i){switch(i.label){case 0:return bo()||function(){var e=go(),t=function(){var e,t,n=window;return po(["buildID"in navigator,"MozAppearance"in(null!==(t=null===(e=document.documentElement)||void 0===e?void 0:e.style)&&void 0!==t?t:{}),"onmozfullscreenchange"in n,"mozInnerScreenX"in n,"CSSMozDocumentRule"in n,"CanvasCaptureMediaStream"in n])>=4}();if(!e&&!t)return!1;var n=window;return po(["onorientationchange"in n,"orientation"in n,e&&!("SharedWorker"in n),t&&/android/i.test(navigator.appVersion)])>=2}()?(s=atob,e={abpIndo:["#Iklan-Melayang","#Kolom-Iklan-728","#SidebarIklan-wrapper",s("YVt0aXRsZT0iN25hZ2EgcG9rZXIiIGld"),'[title="ALIENBOLA" i]'],abpvn:["#quangcaomb",s("Lmlvc0Fkc2lvc0Fkcy1sYXlvdXQ="),".quangcao",s("W2hyZWZePSJodHRwczovL3I4OC52bi8iXQ=="),s("W2hyZWZePSJodHRwczovL3piZXQudm4vIl0=")],adBlockFinland:[".mainostila",s("LnNwb25zb3JpdA=="),".ylamainos",s("YVtocmVmKj0iL2NsaWNrdGhyZ2guYXNwPyJd"),s("YVtocmVmXj0iaHR0cHM6Ly9hcHAucmVhZHBlYWsuY29tL2FkcyJd")],adBlockPersian:["#navbar_notice_50",".kadr",'TABLE[width="140px"]',"#divAgahi",s("I2FkMl9pbmxpbmU=")],adBlockWarningRemoval:["#adblock-honeypot",".adblocker-root",".wp_adblock_detect",s("LmhlYWRlci1ibG9ja2VkLWFk"),s("I2FkX2Jsb2NrZXI=")],adGuardAnnoyances:['amp-embed[type="zen"]',".hs-sosyal","#cookieconsentdiv",'div[class^="app_gdpr"]',".as-oil"],adGuardBase:[".BetterJsPopOverlay",s("I2FkXzMwMFgyNTA="),s("I2Jhbm5lcmZsb2F0MjI="),s("I2FkLWJhbm5lcg=="),s("I2NhbXBhaWduLWJhbm5lcg==")],adGuardChinese:[s("LlppX2FkX2FfSA=="),s("YVtocmVmKj0iL29kMDA1LmNvbSJd"),s("YVtocmVmKj0iLmh0aGJldDM0LmNvbSJd"),".qq_nr_lad","#widget-quan"],adGuardFrench:[s("I2Jsb2NrLXZpZXdzLWFkcy1zaWRlYmFyLWJsb2NrLWJsb2Nr"),"#pavePub",s("LmFkLWRlc2t0b3AtcmVjdGFuZ2xl"),".mobile_adhesion",".widgetadv"],adGuardGerman:[s("LmJhbm5lcml0ZW13ZXJidW5nX2hlYWRfMQ=="),s("LmJveHN0YXJ0d2VyYnVuZw=="),s("LndlcmJ1bmcz"),s("YVtocmVmXj0iaHR0cDovL3d3dy5laXMuZGUvaW5kZXgucGh0bWw/cmVmaWQ9Il0="),s("YVtocmVmXj0iaHR0cHM6Ly93d3cudGlwaWNvLmNvbS8/YWZmaWxpYXRlSWQ9Il0=")],adGuardJapanese:["#kauli_yad_1",s("YVtocmVmXj0iaHR0cDovL2FkMi50cmFmZmljZ2F0ZS5uZXQvIl0="),s("Ll9wb3BJbl9pbmZpbml0ZV9hZA=="),s("LmFkZ29vZ2xl"),s("LmFkX3JlZ3VsYXIz")],adGuardMobile:[s("YW1wLWF1dG8tYWRz"),s("LmFtcF9hZA=="),'amp-embed[type="24smi"]',"#mgid_iframe1",s("I2FkX2ludmlld19hcmVh")],adGuardRussian:[s("YVtocmVmXj0iaHR0cHM6Ly9hZC5sZXRtZWFkcy5jb20vIl0="),s("LnJlY2xhbWE="),'div[id^="smi2adblock"]',s("ZGl2W2lkXj0iQWRGb3hfYmFubmVyXyJd"),s("I2FkX3NxdWFyZQ==")],adGuardSocial:[s("YVtocmVmXj0iLy93d3cuc3R1bWJsZXVwb24uY29tL3N1Ym1pdD91cmw9Il0="),s("YVtocmVmXj0iLy90ZWxlZ3JhbS5tZS9zaGFyZS91cmw/Il0="),".etsy-tweet","#inlineShare",".popup-social"],adGuardSpanishPortuguese:["#barraPublicidade","#Publicidade","#publiEspecial","#queTooltip",s("W2hyZWZePSJodHRwOi8vYWRzLmdsaXNwYS5jb20vIl0=")],adGuardTrackingProtection:["#qoo-counter",s("YVtocmVmXj0iaHR0cDovL2NsaWNrLmhvdGxvZy5ydS8iXQ=="),s("YVtocmVmXj0iaHR0cDovL2hpdGNvdW50ZXIucnUvdG9wL3N0YXQucGhwIl0="),s("YVtocmVmXj0iaHR0cDovL3RvcC5tYWlsLnJ1L2p1bXAiXQ=="),"#top100counter"],adGuardTurkish:["#backkapat",s("I3Jla2xhbWk="),s("YVtocmVmXj0iaHR0cDovL2Fkc2Vydi5vbnRlay5jb20udHIvIl0="),s("YVtocmVmXj0iaHR0cDovL2l6bGVuemkuY29tL2NhbXBhaWduLyJd"),s("YVtocmVmXj0iaHR0cDovL3d3dy5pbnN0YWxsYWRzLm5ldC8iXQ==")],bulgarian:[s("dGQjZnJlZW5ldF90YWJsZV9hZHM="),"#ea_intext_div",".lapni-pop-over","#xenium_hot_offers",s("I25ld0Fk")],easyList:[s("I0FEX0NPTlRST0xfMjg="),s("LnNlY29uZC1wb3N0LWFkcy13cmFwcGVy"),".universalboxADVBOX03",s("LmFkdmVydGlzZW1lbnQtNzI4eDkw"),s("LnNxdWFyZV9hZHM=")],easyListChina:[s("YVtocmVmKj0iLndlbnNpeHVldGFuZy5jb20vIl0="),s("LmFwcGd1aWRlLXdyYXBbb25jbGljayo9ImJjZWJvcy5jb20iXQ=="),s("LmZyb250cGFnZUFkdk0="),"#taotaole","#aafoot.top_box"],easyListCookie:["#AdaCompliance.app-notice",".text-center.rgpd",".panel--cookie",".js-cookies-andromeda",".elxtr-consent"],easyListCzechSlovak:["#onlajny-stickers",s("I3Jla2xhbW5pLWJveA=="),s("LnJla2xhbWEtbWVnYWJvYXJk"),".sklik",s("W2lkXj0ic2tsaWtSZWtsYW1hIl0=")],easyListDutch:[s("I2FkdmVydGVudGll"),s("I3ZpcEFkbWFya3RCYW5uZXJCbG9jaw=="),".adstekst",s("YVtocmVmXj0iaHR0cHM6Ly94bHR1YmUubmwvY2xpY2svIl0="),"#semilo-lrectangle"],easyListGermany:[s("I0FkX1dpbjJkYXk="),s("I3dlcmJ1bmdzYm94MzAw"),s("YVtocmVmXj0iaHR0cDovL3d3dy5yb3RsaWNodGthcnRlaS5jb20vP3NjPSJd"),s("I3dlcmJ1bmdfd2lkZXNreXNjcmFwZXJfc2NyZWVu"),s("YVtocmVmXj0iaHR0cDovL2xhbmRpbmcucGFya3BsYXR6a2FydGVpLmNvbS8/YWc9Il0=")],easyListItaly:[s("LmJveF9hZHZfYW5udW5jaQ=="),".sb-box-pubbliredazionale",s("YVtocmVmXj0iaHR0cDovL2FmZmlsaWF6aW9uaWFkcy5zbmFpLml0LyJd"),s("YVtocmVmXj0iaHR0cHM6Ly9hZHNlcnZlci5odG1sLml0LyJd"),s("YVtocmVmXj0iaHR0cHM6Ly9hZmZpbGlhemlvbmlhZHMuc25haS5pdC8iXQ==")],easyListLithuania:[s("LnJla2xhbW9zX3RhcnBhcw=="),s("LnJla2xhbW9zX251b3JvZG9z"),s("aW1nW2FsdD0iUmVrbGFtaW5pcyBza3lkZWxpcyJd"),s("aW1nW2FsdD0iRGVkaWt1b3RpLmx0IHNlcnZlcmlhaSJd"),s("aW1nW2FsdD0iSG9zdGluZ2FzIFNlcnZlcmlhaS5sdCJd")],estonian:[s("QVtocmVmKj0iaHR0cDovL3BheTRyZXN1bHRzMjQuZXUiXQ==")],fanboyAnnoyances:["#feedback-tab","#taboola-below-article",".feedburnerFeedBlock",".widget-feedburner-counter",'[title="Subscribe to our blog"]'],fanboyAntiFacebook:[".util-bar-module-firefly-visible"],fanboyEnhancedTrackers:[".open.pushModal","#issuem-leaky-paywall-articles-zero-remaining-nag","#sovrn_container",'div[class$="-hide"][zoompage-fontsize][style="display: block;"]',".BlockNag__Card"],fanboySocial:[".td-tags-and-social-wrapper-box",".twitterContainer",".youtube-social",'a[title^="Like us on Facebook"]','img[alt^="Share on Digg"]'],frellwitSwedish:[s("YVtocmVmKj0iY2FzaW5vcHJvLnNlIl1bdGFyZ2V0PSJfYmxhbmsiXQ=="),s("YVtocmVmKj0iZG9rdG9yLXNlLm9uZWxpbmsubWUiXQ=="),"article.category-samarbete",s("ZGl2LmhvbGlkQWRz"),"ul.adsmodern"],greekAdBlock:[s("QVtocmVmKj0iYWRtYW4ub3RlbmV0LmdyL2NsaWNrPyJd"),s("QVtocmVmKj0iaHR0cDovL2F4aWFiYW5uZXJzLmV4b2R1cy5nci8iXQ=="),s("QVtocmVmKj0iaHR0cDovL2ludGVyYWN0aXZlLmZvcnRobmV0LmdyL2NsaWNrPyJd"),"DIV.agores300","TABLE.advright"],hungarian:["#cemp_doboz",".optimonk-iframe-container",s("LmFkX19tYWlu"),s("W2NsYXNzKj0iR29vZ2xlQWRzIl0="),"#hirdetesek_box"],iDontCareAboutCookies:['.alert-info[data-block-track*="CookieNotice"]',".ModuleTemplateCookieIndicator",".o--cookies--container",".cookie-msg-info-container","#cookies-policy-sticky"],icelandicAbp:[s("QVtocmVmXj0iL2ZyYW1ld29yay9yZXNvdXJjZXMvZm9ybXMvYWRzLmFzcHgiXQ==")],latvian:[s("YVtocmVmPSJodHRwOi8vd3d3LnNhbGlkemluaS5sdi8iXVtzdHlsZT0iZGlzcGxheTogYmxvY2s7IHdpZHRoOiAxMjBweDsgaGVpZ2h0OiA0MHB4OyBvdmVyZmxvdzogaGlkZGVuOyBwb3NpdGlvbjogcmVsYXRpdmU7Il0="),s("YVtocmVmPSJodHRwOi8vd3d3LnNhbGlkemluaS5sdi8iXVtzdHlsZT0iZGlzcGxheTogYmxvY2s7IHdpZHRoOiA4OHB4OyBoZWlnaHQ6IDMxcHg7IG92ZXJmbG93OiBoaWRkZW47IHBvc2l0aW9uOiByZWxhdGl2ZTsiXQ==")],listKr:[s("YVtocmVmKj0iLy9hZC5wbGFuYnBsdXMuY28ua3IvIl0="),s("I2xpdmVyZUFkV3JhcHBlcg=="),s("YVtocmVmKj0iLy9hZHYuaW1hZHJlcC5jby5rci8iXQ=="),s("aW5zLmZhc3R2aWV3LWFk"),".revenue_unit_item.dable"],listeAr:[s("LmdlbWluaUxCMUFk"),".right-and-left-sponsers",s("YVtocmVmKj0iLmFmbGFtLmluZm8iXQ=="),s("YVtocmVmKj0iYm9vcmFxLm9yZyJd"),s("YVtocmVmKj0iZHViaXp6bGUuY29tL2FyLz91dG1fc291cmNlPSJd")],listeFr:[s("YVtocmVmXj0iaHR0cDovL3Byb21vLnZhZG9yLmNvbS8iXQ=="),s("I2FkY29udGFpbmVyX3JlY2hlcmNoZQ=="),s("YVtocmVmKj0id2Vib3JhbWEuZnIvZmNnaS1iaW4vIl0="),".site-pub-interstitiel",'div[id^="crt-"][data-criteo-id]'],officialPolish:["#ceneo-placeholder-ceneo-12",s("W2hyZWZePSJodHRwczovL2FmZi5zZW5kaHViLnBsLyJd"),s("YVtocmVmXj0iaHR0cDovL2Fkdm1hbmFnZXIudGVjaGZ1bi5wbC9yZWRpcmVjdC8iXQ=="),s("YVtocmVmXj0iaHR0cDovL3d3dy50cml6ZXIucGwvP3V0bV9zb3VyY2UiXQ=="),s("ZGl2I3NrYXBpZWNfYWQ=")],ro:[s("YVtocmVmXj0iLy9hZmZ0cmsuYWx0ZXgucm8vQ291bnRlci9DbGljayJd"),'a[href^="/magazin/"]',s("YVtocmVmXj0iaHR0cHM6Ly9ibGFja2ZyaWRheXNhbGVzLnJvL3Ryay9zaG9wLyJd"),s("YVtocmVmXj0iaHR0cHM6Ly9ldmVudC4ycGVyZm9ybWFudC5jb20vZXZlbnRzL2NsaWNrIl0="),s("YVtocmVmXj0iaHR0cHM6Ly9sLnByb2ZpdHNoYXJlLnJvLyJd")],ruAd:[s("YVtocmVmKj0iLy9mZWJyYXJlLnJ1LyJd"),s("YVtocmVmKj0iLy91dGltZy5ydS8iXQ=="),s("YVtocmVmKj0iOi8vY2hpa2lkaWtpLnJ1Il0="),"#pgeldiz",".yandex-rtb-block"],thaiAds:["a[href*=macau-uta-popup]",s("I2Fkcy1nb29nbGUtbWlkZGxlX3JlY3RhbmdsZS1ncm91cA=="),s("LmFkczMwMHM="),".bumq",".img-kosana"],webAnnoyancesUltralist:["#mod-social-share-2","#social-tools",s("LmN0cGwtZnVsbGJhbm5lcg=="),".zergnet-recommend",".yt.btn-link.btn-md.btn"]},n=Object.keys(e),[4,Ro((a=[]).concat.apply(a,n.map((function(t){return e[t]}))))]):[2,void 0];case 1:return r=i.sent(),t&&function(e,t){for(var n="DOM blockers debug:\n```",r=0,o=Object.keys(e);r<o.length;r++){var a=o[r];n+="\n".concat(a,":");for(var i=0,s=e[a];i<s.length;i++){var l=s[i];n+="\n ".concat(t[l]?"\ud83d\udeab":"\u27a1\ufe0f"," ").concat(l)}}console.log("".concat(n,"\n```"))}(e,r),(o=n.filter((function(t){var n=e[t];return po(n.map((function(e){return r[e]})))>.6*n.length}))).sort(),[2,o]}var s}))}))},fontPreferences:function(){return function(e,t){return void 0===t&&(t=4e3),ko((function(e,n){var r=n.document,o=r.body,a=o.style;a.width="".concat(t,"px"),a.webkitTextSizeAdjust=a.textSizeAdjust="none",go()?o.style.zoom="".concat(1/n.devicePixelRatio):bo()&&(o.style.zoom="reset");var i=r.createElement("div");return i.textContent=Xr([],Array(t/20<<0),!0).map((function(){return"word"})).join(" "),o.appendChild(i),function(e,t){for(var n={},r={},o=0,a=Object.keys(zo);o<a.length;o++){var i=a[o],s=zo[i],l=s[0],c=void 0===l?{}:l,u=s[1],d=void 0===u?"mmMwWLliI0fiflO&1":u,p=e.createElement("span");p.textContent=d,p.style.whiteSpace="nowrap";for(var f=0,h=Object.keys(c);f<h.length;f++){var m=h[f],g=c[m];void 0!==g&&(p.style[m]=g)}n[i]=p,t.appendChild(e.createElement("br")),t.appendChild(p)}for(var b=0,v=Object.keys(zo);b<v.length;b++)r[i=v[b]]=n[i].getBoundingClientRect().width;return r}(r,o)}),'<!doctype html><html><head><meta name="viewport" content="width=device-width, initial-scale=1">')}()},audio:function(){var e=window,t=e.OfflineAudioContext||e.webkitOfflineAudioContext;if(!t)return-2;if(bo()&&!vo()&&!function(){var e=window;return po(["DOMRectList"in e,"RTCPeerConnectionIceEvent"in e,"SVGGeometryElement"in e,"ontransitioncancel"in e])>=3}())return-1;var n=new t(1,5e3,44100),r=n.createOscillator();r.type="triangle",r.frequency.value=1e4;var o=n.createDynamicsCompressor();o.threshold.value=-50,o.knee.value=40,o.ratio.value=12,o.attack.value=0,o.release.value=.25,r.connect(o),o.connect(n.destination),r.start(0);var a=function(e){var t=function(){};return[new Promise((function(n,r){var o=!1,a=0,i=0;e.oncomplete=function(e){return n(e.renderedBuffer)};var s=function(){setTimeout((function(){return r(wo("timeout"))}),Math.min(500,i+5e3-Date.now()))};(function t(){try{var n=e.startRendering();switch(Jr(n)&&to(n),e.state){case"running":i=Date.now(),o&&s();break;case"suspended":document.hidden||a++,o&&a>=3?r(wo("suspended")):setTimeout(t,500)}}catch(e){r(e)}})(),t=function(){o||(o=!0,i>0&&s())}})),t]}(n),i=a[0],s=a[1],l=i.then((function(e){return function(e){for(var t=0,n=0;n<e.length;++n)t+=Math.abs(e[n]);return t}(e.getChannelData(0).subarray(4500))}),(function(e){if("timeout"===e.name||"suspended"===e.name)return-3;throw e}));return to(l),function(){return s(),l}},screenFrame:function(){var e=this,t=function(){var e=this;return void 0===Co&&function e(){var t=To();jo(t)?Co=setTimeout(e,2500):(_o=t,Co=void 0)}(),function(){return Zr(e,void 0,void 0,(function(){var e;return Yr(this,(function(t){switch(t.label){case 0:return jo(e=To())?_o?[2,Xr([],_o,!0)]:(n=document).fullscreenElement||n.msFullscreenElement||n.mozFullScreenElement||n.webkitFullscreenElement?[4,yo()]:[3,2]:[3,2];case 1:t.sent(),e=To(),t.label=2;case 2:return jo(e)||(_o=e),[2,e]}var n}))}))}}();return function(){return Zr(e,void 0,void 0,(function(){var e,n;return Yr(this,(function(r){switch(r.label){case 0:return[4,t()];case 1:return e=r.sent(),[2,[(n=function(e){return null===e?null:function(e,t){if(void 0===t&&(t=1),Math.abs(t)>=1)return Math.round(e/t)*t;var n=1/t;return Math.round(e*n)/n}(e,10)})(e[0]),n(e[1]),n(e[2]),n(e[3])]]}}))}))}},osCpu:function(){return navigator.oscpu},languages:function(){var e,t=navigator,n=[],r=t.language||t.userLanguage||t.browserLanguage||t.systemLanguage;if(void 0!==r&&n.push([r]),Array.isArray(t.languages))go()&&po([!("MediaSettingsRange"in(e=window)),"RTCEncodedAudioFrame"in e,""+e.Intl=="[object Intl]",""+e.Reflect=="[object Reflect]"])>=3||n.push(t.languages);else if("string"==typeof t.languages){var o=t.languages;o&&n.push(o.split(","))}return n},colorDepth:function(){return window.screen.colorDepth},deviceMemory:function(){return uo(co(navigator.deviceMemory),void 0)},screenResolution:function(){var e=screen,t=function(e){return uo(lo(e),null)},n=[t(e.width),t(e.height)];return n.sort().reverse(),n},hardwareConcurrency:function(){return uo(lo(navigator.hardwareConcurrency),void 0)},timezone:function(){var e,t=null===(e=window.Intl)||void 0===e?void 0:e.DateTimeFormat;if(t){var n=(new t).resolvedOptions().timeZone;if(n)return n}var r,o=(r=(new Date).getFullYear(),-Math.max(co(new Date(r,0,1).getTimezoneOffset()),co(new Date(r,6,1).getTimezoneOffset())));return"UTC".concat(o>=0?"+":"").concat(Math.abs(o))},sessionStorage:function(){try{return!!window.sessionStorage}catch(r){return!0}},localStorage:function(){try{return!!window.localStorage}catch(r){return!0}},indexedDB:function(){var e,t;if(!(mo()||(e=window,t=navigator,po(["msWriteProfilerMark"in e,"MSStream"in e,"msLaunchUri"in t,"msSaveBlob"in t])>=3&&!mo())))try{return!!window.indexedDB}catch(e){return!0}},openDatabase:function(){return!!window.openDatabase},cpuClass:function(){return navigator.cpuClass},platform:function(){var e=navigator.platform;return"MacIntel"===e&&bo()&&!vo()?function(){if("iPad"===navigator.platform)return!0;var e=screen,t=e.width/e.height;return po(["MediaSource"in window,!!Element.prototype.webkitRequestFullscreen,t>.65&&t<1.53])>=2}()?"iPad":"iPhone":e},plugins:function(){var e=navigator.plugins;if(e){for(var t=[],n=0;n<e.length;++n){var r=e[n];if(r){for(var o=[],a=0;a<r.length;++a){var i=r[a];o.push({type:i.type,suffixes:i.suffixes})}t.push({name:r.name,description:r.description,mimeTypes:o})}}return t}},canvas:function(){var e,t,n=!1,r=function(){var e=document.createElement("canvas");return e.width=1,e.height=1,[e,e.getContext("2d")]}(),o=r[0],a=r[1];if(function(e,t){return!(!t||!e.toDataURL)}(o,a)){n=function(e){return e.rect(0,0,10,10),e.rect(2,2,6,6),!e.isPointInPath(5,5,"evenodd")}(a),function(e,t){e.width=240,e.height=60,t.textBaseline="alphabetic",t.fillStyle="#f60",t.fillRect(100,1,62,20),t.fillStyle="#069",t.font='11pt "Times New Roman"';var n="Cwm fjordbank gly ".concat(String.fromCharCode(55357,56835));t.fillText(n,2,15),t.fillStyle="rgba(102, 204, 0, 0.2)",t.font="18pt Arial",t.fillText(n,4,45)}(o,a);var i=Lo(o);i!==Lo(o)?e=t="unstable":(t=i,function(e,t){e.width=122,e.height=110,t.globalCompositeOperation="multiply";for(var n=0,r=[["#f2f",40,40],["#2ff",80,40],["#ff2",60,80]];n<r.length;n++){var o=r[n],a=o[0],i=o[1],s=o[2];t.fillStyle=a,t.beginPath(),t.arc(i,s,40,0,2*Math.PI,!0),t.closePath(),t.fill()}t.fillStyle="#f9c",t.arc(60,60,60,0,2*Math.PI,!0),t.arc(60,60,20,0,2*Math.PI,!0),t.fill("evenodd")}(o,a),e=Lo(o))}else e=t="";return{winding:n,geometry:e,text:t}},touchSupport:function(){var e,t=navigator,n=0;void 0!==t.maxTouchPoints?n=lo(t.maxTouchPoints):void 0!==t.msMaxTouchPoints&&(n=t.msMaxTouchPoints);try{document.createEvent("TouchEvent"),e=!0}catch(t){e=!1}return{maxTouchPoints:n,touchEvent:e,touchStart:"ontouchstart"in window}},vendor:function(){return navigator.vendor||""},vendorFlavors:function(){for(var e=[],t=0,n=["chrome","safari","__crWeb","__gCrWeb","yandex","__yb","__ybro","__firefox__","__edgeTrackingPreventionStatistics","webkit","oprt","samsungAr","ucweb","UCShellJava","puffinDevice"];t<n.length;t++){var r=n[t],o=window[r];o&&"object"===p(o)&&e.push(r)}return e.sort()},cookiesEnabled:function(){var e=document;try{e.cookie="cookietest=1; SameSite=Strict;";var t=-1!==e.cookie.indexOf("cookietest=");return e.cookie="cookietest=1; SameSite=Strict; expires=Thu, 01-Jan-1970 00:00:01 GMT",t}catch(e){return!1}},colorGamut:function(){for(var e=0,t=["rec2020","p3","srgb"];e<t.length;e++){var n=t[e];if(matchMedia("(color-gamut: ".concat(n,")")).matches)return n}},invertedColors:function(){return!!Oo("inverted")||!Oo("none")&&void 0},forcedColors:function(){return!!Po("active")||!Po("none")&&void 0},monochrome:function(){if(matchMedia("(min-monochrome: 0)").matches){for(var e=0;e<=100;++e)if(matchMedia("(max-monochrome: ".concat(e,")")).matches)return e;throw new Error("Too high value")}},contrast:function(){return Do("no-preference")?0:Do("high")||Do("more")?1:Do("low")||Do("less")?-1:Do("forced")?10:void 0},reducedMotion:function(){return!!Mo("reduce")||!Mo("no-preference")&&void 0},hdr:function(){return!!Io("high")||!Io("standard")&&void 0},math:function(){var e,t=Fo.acos||Bo,n=Fo.acosh||Bo,r=Fo.asin||Bo,o=Fo.asinh||Bo,a=Fo.atanh||Bo,i=Fo.atan||Bo,s=Fo.sin||Bo,l=Fo.sinh||Bo,c=Fo.cos||Bo,u=Fo.cosh||Bo,d=Fo.tan||Bo,p=Fo.tanh||Bo,f=Fo.exp||Bo,h=Fo.expm1||Bo,m=Fo.log1p||Bo;return{acos:t(.12312423423423424),acosh:n(1e308),acoshPf:(e=1e154,Fo.log(e+Fo.sqrt(e*e-1))),asin:r(.12312423423423424),asinh:o(1),asinhPf:Fo.log(1+Fo.sqrt(2)),atanh:a(.5),atanhPf:Fo.log(3)/2,atan:i(.5),sin:s(-1e300),sinh:l(1),sinhPf:Fo.exp(1)-1/Fo.exp(1)/2,cos:c(10.000000000123),cosh:u(1),coshPf:(Fo.exp(1)+1/Fo.exp(1))/2,tan:d(-1e300),tanh:p(1),tanhPf:(Fo.exp(2)-1)/(Fo.exp(2)+1),exp:f(1),expm1:h(1),expm1Pf:Fo.exp(1)-1,log1p:m(10),log1pPf:Fo.log(11),powPI:Fo.pow(Fo.PI,-100)}},videoCard:function(){var e,t=document.createElement("canvas"),n=null!==(e=t.getContext("webgl"))&&void 0!==e?e:t.getContext("experimental-webgl");if(n&&"getExtension"in n){var r=n.getExtension("WEBGL_debug_renderer_info");if(r)return{vendor:(n.getParameter(r.UNMASKED_VENDOR_WEBGL)||"").toString(),renderer:(n.getParameter(r.UNMASKED_RENDERER_WEBGL)||"").toString()}}},pdfViewerEnabled:function(){return navigator.pdfViewerEnabled},architecture:function(){var e=new Float32Array(1),t=new Uint8Array(e.buffer);return e[0]=1/0,e[0]=e[0]-e[0],t[3]}};function Vo(e){return function(e,t){t=t||0;var n,r=(e=e||"").length%16,o=e.length-r,a=[0,t],i=[0,t],s=[0,0],l=[0,0],c=[2277735313,289559509],u=[1291169091,658871167];for(n=0;n<o;n+=16)s=[255&e.charCodeAt(n+4)|(255&e.charCodeAt(n+5))<<8|(255&e.charCodeAt(n+6))<<16|(255&e.charCodeAt(n+7))<<24,255&e.charCodeAt(n)|(255&e.charCodeAt(n+1))<<8|(255&e.charCodeAt(n+2))<<16|(255&e.charCodeAt(n+3))<<24],l=[255&e.charCodeAt(n+12)|(255&e.charCodeAt(n+13))<<8|(255&e.charCodeAt(n+14))<<16|(255&e.charCodeAt(n+15))<<24,255&e.charCodeAt(n+8)|(255&e.charCodeAt(n+9))<<8|(255&e.charCodeAt(n+10))<<16|(255&e.charCodeAt(n+11))<<24],s=oo(s=ro(s,c),31),a=no(a=oo(a=io(a,s=ro(s,u)),27),i),a=no(ro(a,[0,5]),[0,1390208809]),l=oo(l=ro(l,u),33),i=no(i=oo(i=io(i,l=ro(l,c)),31),a),i=no(ro(i,[0,5]),[0,944331445]);switch(s=[0,0],l=[0,0],r){case 15:l=io(l,ao([0,e.charCodeAt(n+14)],48));case 14:l=io(l,ao([0,e.charCodeAt(n+13)],40));case 13:l=io(l,ao([0,e.charCodeAt(n+12)],32));case 12:l=io(l,ao([0,e.charCodeAt(n+11)],24));case 11:l=io(l,ao([0,e.charCodeAt(n+10)],16));case 10:l=io(l,ao([0,e.charCodeAt(n+9)],8));case 9:l=ro(l=io(l,[0,e.charCodeAt(n+8)]),u),i=io(i,l=ro(l=oo(l,33),c));case 8:s=io(s,ao([0,e.charCodeAt(n+7)],56));case 7:s=io(s,ao([0,e.charCodeAt(n+6)],48));case 6:s=io(s,ao([0,e.charCodeAt(n+5)],40));case 5:s=io(s,ao([0,e.charCodeAt(n+4)],32));case 4:s=io(s,ao([0,e.charCodeAt(n+3)],24));case 3:s=io(s,ao([0,e.charCodeAt(n+2)],16));case 2:s=io(s,ao([0,e.charCodeAt(n+1)],8));case 1:s=ro(s=io(s,[0,e.charCodeAt(n)]),c),a=io(a,s=ro(s=oo(s,31),u))}return a=no(a=io(a,[0,e.length]),i=io(i,[0,e.length])),i=no(i,a),a=no(a=so(a),i=so(i)),i=no(i,a),("00000000"+(a[0]>>>0).toString(16)).slice(-8)+("00000000"+(a[1]>>>0).toString(16)).slice(-8)+("00000000"+(i[0]>>>0).toString(16)).slice(-8)+("00000000"+(i[1]>>>0).toString(16)).slice(-8)}(function(e){for(var t="",n=0,r=Object.keys(e).sort();n<r.length;n++){var o=r[n],a=e[o],i=a.error?"error":JSON.stringify(a.value);t+="".concat(t?"|":"").concat(o.replace(/([:|\\])/g,"\\$1"),":").concat(i)}return t}(e))}var qo,Wo,$o={exports:{}};qo=$o,Wo=$o.exports,function(e,t){var n="function",r="undefined",o="object",a="string",i="model",s="name",l="type",c="vendor",u="version",d="architecture",f="console",h="mobile",m="tablet",g="smarttv",b="wearable",v="embedded",y="Amazon",w="Apple",k="ASUS",x="BlackBerry",S="Google",_="Huawei",C="LG",E="Microsoft",A="Motorola",L="Samsung",T="Sony",j="Xiaomi",R="Zebra",N="Facebook",O=function(e){for(var t={},n=0;n<e.length;n++)t[e[n].toUpperCase()]=e[n];return t},P=function(e,t){return p(e)===a&&-1!==D(t).indexOf(D(e))},D=function(e){return e.toLowerCase()},M=function(e,t){if(p(e)===a)return e=e.replace(/^\s\s*/,"").replace(/\s\s*$/,""),p(t)===r?e:e.substring(0,255)},I=function(e,r){for(var a,i,s,l,c,u,d=0;d<r.length&&!c;){var f=r[d],h=r[d+1];for(a=i=0;a<f.length&&!c;)if(c=f[a++].exec(e))for(s=0;s<h.length;s++)u=c[++i],p(l=h[s])===o&&l.length>0?2===l.length?p(l[1])==n?this[l[0]]=l[1].call(this,u):this[l[0]]=l[1]:3===l.length?p(l[1])!==n||l[1].exec&&l[1].test?this[l[0]]=u?u.replace(l[1],l[2]):t:this[l[0]]=u?l[1].call(this,u,l[2]):t:4===l.length&&(this[l[0]]=u?l[3].call(this,u.replace(l[1],l[2])):t):this[l]=u||t;d+=2}},F=function(e,n){for(var r in n)if(p(n[r])===o&&n[r].length>0){for(var a=0;a<n[r].length;a++)if(P(n[r][a],e))return"?"===r?t:r}else if(P(n[r],e))return"?"===r?t:r;return e},B={ME:"4.90","NT 3.11":"NT3.51","NT 4.0":"NT4.0",2e3:"NT 5.0",XP:["NT 5.1","NT 5.2"],Vista:"NT 6.0",7:"NT 6.1",8:"NT 6.2",8.1:"NT 6.3",10:["NT 6.4","NT 10.0"],RT:"ARM"},z={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[u,[s,"Chrome"]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[u,[s,"Edge"]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[s,u],[/opios[\/ ]+([\w\.]+)/i],[u,[s,"Opera Mini"]],[/\bopr\/([\w\.]+)/i],[u,[s,"Opera"]],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer)[\/ ]?([\w\.]*)/i,/(avant |iemobile|slim)(?:browser)?[\/ ]?([\w\.]*)/i,/(ba?idubrowser)[\/ ]?([\w\.]+)/i,/(?:ms|\()(ie) ([\w\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale|qqbrowserlite|qq)\/([-\w\.]+)/i,/(weibo)__([\d\.]+)/i],[s,u],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[u,[s,"UCBrowser"]],[/\bqbcore\/([\w\.]+)/i],[u,[s,"WeChat(Win) Desktop"]],[/micromessenger\/([\w\.]+)/i],[u,[s,"WeChat"]],[/konqueror\/([\w\.]+)/i],[u,[s,"Konqueror"]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[u,[s,"IE"]],[/yabrowser\/([\w\.]+)/i],[u,[s,"Yandex"]],[/(avast|avg)\/([\w\.]+)/i],[[s,/(.+)/,"$1 Secure Browser"],u],[/\bfocus\/([\w\.]+)/i],[u,[s,"Firefox Focus"]],[/\bopt\/([\w\.]+)/i],[u,[s,"Opera Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[u,[s,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[u,[s,"Dolphin"]],[/coast\/([\w\.]+)/i],[u,[s,"Opera Coast"]],[/miuibrowser\/([\w\.]+)/i],[u,[s,"MIUI Browser"]],[/fxios\/([-\w\.]+)/i],[u,[s,"Firefox"]],[/\bqihu|(qi?ho?o?|360)browser/i],[[s,"360 Browser"]],[/(oculus|samsung|sailfish)browser\/([\w\.]+)/i],[[s,/(.+)/,"$1 Browser"],u],[/(comodo_dragon)\/([\w\.]+)/i],[[s,/_/g," "],u],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|baiduboxapp|2345Explorer)[\/ ]?([\w\.]+)/i],[s,u],[/(metasr)[\/ ]?([\w\.]+)/i,/(lbbrowser)/i],[s],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[s,N],u],[/safari (line)\/([\w\.]+)/i,/\b(line)\/([\w\.]+)\/iab/i,/(chromium|instagram)[\/ ]([-\w\.]+)/i],[s,u],[/\bgsa\/([\w\.]+) .*safari\//i],[u,[s,"GSA"]],[/headlesschrome(?:\/([\w\.]+)| )/i],[u,[s,"Chrome Headless"]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[s,"Chrome WebView"],u],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[u,[s,"Android Browser"]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[s,u],[/version\/([\w\.]+) .*mobile\/\w+ (safari)/i],[u,[s,"Mobile Safari"]],[/version\/([\w\.]+) .*(mobile ?safari|safari)/i],[u,s],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[s,[u,F,{"1.0":"/8",1.2:"/1",1.3:"/3","2.0":"/412","2.0.2":"/416","2.0.3":"/417","2.0.4":"/419","?":"/"}]],[/(webkit|khtml)\/([\w\.]+)/i],[s,u],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[s,"Netscape"],u],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[u,[s,"Firefox Reality"]],[/ekiohf.+(flow)\/([\w\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\/ ]?([\w\.\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,/(firefox)\/([\w\.]+)/i,/(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,/(links) \(([\w\.]+)/i],[s,u]],cpu:[[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i],[[d,"amd64"]],[/(ia32(?=;))/i],[[d,D]],[/((?:i[346]|x)86)[;\)]/i],[[d,"ia32"]],[/\b(aarch64|arm(v?8e?l?|_?64))\b/i],[[d,"arm64"]],[/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i],[[d,"armhf"]],[/windows (ce|mobile); ppc;/i],[[d,"arm"]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i],[[d,/ower/,"",D]],[/(sun4\w)[;\)]/i],[[d,"sparc"]],[/((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i],[[d,D]]],device:[[/\b(sch-i[89]0\d|shw-m380s|sm-[pt]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],[i,[c,L],[l,m]],[/\b((?:s[cgp]h|gt|sm)-\w+|galaxy nexus)/i,/samsung[- ]([-\w]+)/i,/sec-(sgh\w+)/i],[i,[c,L],[l,h]],[/\((ip(?:hone|od)[\w ]*);/i],[i,[c,w],[l,h]],[/\((ipad);[-\w\),; ]+apple/i,/applecoremedia\/[\w\.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[i,[c,w],[l,m]],[/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i],[i,[c,_],[l,m]],[/(?:huawei|honor)([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}-[atu]?[ln][01259x][012359][an]?)\b(?!.+d\/s)/i],[i,[c,_],[l,h]],[/\b(poco[\w ]+)(?: bui|\))/i,/\b; (\w+) build\/hm\1/i,/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\))/i],[[i,/_/g," "],[c,j],[l,h]],[/\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i],[[i,/_/g," "],[c,j],[l,m]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[i,[c,"OPPO"],[l,h]],[/vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[i,[c,"Vivo"],[l,h]],[/\b(rmx[12]\d{3})(?: bui|;|\))/i],[i,[c,"Realme"],[l,h]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ](\w*)/i,/((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i],[i,[c,A],[l,h]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[i,[c,A],[l,m]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[i,[c,C],[l,m]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i,/\blg-?([\d\w]+) bui/i],[i,[c,C],[l,h]],[/(ideatab[-\w ]+)/i,/lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i],[i,[c,"Lenovo"],[l,m]],[/(?:maemo|nokia).*(n900|lumia \d+)/i,/nokia[-_ ]?([-\w\.]*)/i],[[i,/_/g," "],[c,"Nokia"],[l,h]],[/(pixel c)\b/i],[i,[c,S],[l,m]],[/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i],[i,[c,S],[l,h]],[/droid.+ ([c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[i,[c,T],[l,h]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[i,"Xperia Tablet"],[c,T],[l,m]],[/ (kb2005|in20[12]5|be20[12][59])\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[i,[c,"OnePlus"],[l,h]],[/(alexa)webm/i,/(kf[a-z]{2}wi)( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[i,[c,y],[l,m]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[i,/(.+)/g,"Fire Phone $1"],[c,y],[l,h]],[/(playbook);[-\w\),; ]+(rim)/i],[i,c,[l,m]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10; (\w+)/i],[i,[c,x],[l,h]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[i,[c,k],[l,m]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[i,[c,k],[l,h]],[/(nexus 9)/i],[i,[c,"HTC"],[l,m]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic|sony)[-_ ]?([-\w]*)/i],[c,[i,/_/g," "],[l,h]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[i,[c,"Acer"],[l,m]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[i,[c,"Meizu"],[l,h]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[i,[c,"Sharp"],[l,h]],[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\w]*)/i,/(hp) ([\w ]+\w)/i,/(asus)-?(\w+)/i,/(microsoft); (lumia[\w ]+)/i,/(lenovo)[-_ ]?([-\w]+)/i,/(jolla)/i,/(oppo) ?([\w ]+) bui/i],[c,i,[l,h]],[/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i,/(nook)[\w ]+build\/(\w+)/i,/(dell) (strea[kpr\d ]*[\dko])/i,/(le[- ]+pan)[- ]+(\w{1,9}) bui/i,/(trinity)[- ]*(t\d{3}) bui/i,/(gigaset)[- ]+(q\w{1,9}) bui/i,/(vodafone) ([\w ]+)(?:\)| bui)/i],[c,i,[l,m]],[/(surface duo)/i],[i,[c,E],[l,m]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[i,[c,"Fairphone"],[l,h]],[/(u304aa)/i],[i,[c,"AT&T"],[l,h]],[/\bsie-(\w*)/i],[i,[c,"Siemens"],[l,h]],[/\b(rct\w+) b/i],[i,[c,"RCA"],[l,m]],[/\b(venue[\d ]{2,7}) b/i],[i,[c,"Dell"],[l,m]],[/\b(q(?:mv|ta)\w+) b/i],[i,[c,"Verizon"],[l,m]],[/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i],[i,[c,"Barnes & Noble"],[l,m]],[/\b(tm\d{3}\w+) b/i],[i,[c,"NuVision"],[l,m]],[/\b(k88) b/i],[i,[c,"ZTE"],[l,m]],[/\b(nx\d{3}j) b/i],[i,[c,"ZTE"],[l,h]],[/\b(gen\d{3}) b.+49h/i],[i,[c,"Swiss"],[l,h]],[/\b(zur\d{3}) b/i],[i,[c,"Swiss"],[l,m]],[/\b((zeki)?tb.*\b) b/i],[i,[c,"Zeki"],[l,m]],[/\b([yr]\d{2}) b/i,/\b(dragon[- ]+touch |dt)(\w{5}) b/i],[[c,"Dragon Touch"],i,[l,m]],[/\b(ns-?\w{0,9}) b/i],[i,[c,"Insignia"],[l,m]],[/\b((nxa|next)-?\w{0,9}) b/i],[i,[c,"NextBook"],[l,m]],[/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[c,"Voice"],i,[l,h]],[/\b(lvtel\-)?(v1[12]) b/i],[[c,"LvTel"],i,[l,h]],[/\b(ph-1) /i],[i,[c,"Essential"],[l,h]],[/\b(v(100md|700na|7011|917g).*\b) b/i],[i,[c,"Envizen"],[l,m]],[/\b(trio[-\w\. ]+) b/i],[i,[c,"MachSpeed"],[l,m]],[/\btu_(1491) b/i],[i,[c,"Rotor"],[l,m]],[/(shield[\w ]+) b/i],[i,[c,"Nvidia"],[l,m]],[/(sprint) (\w+)/i],[c,i,[l,h]],[/(kin\.[onetw]{3})/i],[[i,/\./g," "],[c,E],[l,h]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[i,[c,R],[l,m]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[i,[c,R],[l,h]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[c,i,[l,f]],[/droid.+; (shield) bui/i],[i,[c,"Nvidia"],[l,f]],[/(playstation [345portablevi]+)/i],[i,[c,T],[l,f]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[i,[c,E],[l,f]],[/smart-tv.+(samsung)/i],[c,[l,g]],[/hbbtv.+maple;(\d+)/i],[[i,/^/,"SmartTV"],[c,L],[l,g]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[c,C],[l,g]],[/(apple) ?tv/i],[c,[i,"Apple TV"],[l,g]],[/crkey/i],[[i,"Chromecast"],[c,S],[l,g]],[/droid.+aft(\w)( bui|\))/i],[i,[c,y],[l,g]],[/\(dtv[\);].+(aquos)/i],[i,[c,"Sharp"],[l,g]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w ]*; *(\w[^;]*);([^;]*)/i],[[c,M],[i,M],[l,g]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i],[[l,g]],[/((pebble))app/i],[c,i,[l,b]],[/droid.+; (glass) \d/i],[i,[c,S],[l,b]],[/droid.+; (wt63?0{2,3})\)/i],[i,[c,R],[l,b]],[/(quest( 2)?)/i],[i,[c,N],[l,b]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[c,[l,v]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+? mobile safari/i],[i,[l,h]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i],[i,[l,m]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[l,m]],[/(phone|mobile(?:[;\/]| safari)|pda(?=.+windows ce))/i],[[l,h]],[/(android[-\w\. ]{0,9});.+buil/i],[i,[c,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[u,[s,"EdgeHTML"]],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[u,[s,"Blink"]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i,/ekioh(flow)\/([\w\.]+)/i,/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,/(icab)[\/ ]([23]\.[\d\.]+)/i],[s,u],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[u,s]],os:[[/microsoft (windows) (vista|xp)/i],[s,u],[/(windows) nt 6\.2; (arm)/i,/(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i,/(windows)[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i],[s,[u,F,B]],[/(win(?=3|9|n)|win 9x )([nt\d\.]+)/i],[[s,"Windows"],[u,F,B]],[/ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i,/cfnetwork\/.+darwin/i],[[u,/_/g,"."],[s,"iOS"]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+haiku)/i],[[s,"Mac OS"],[u,/_/g,"."]],[/droid ([\w\.]+)\b.+(android[- ]x86)/i],[u,s],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\/ ]?([\w\.]*)/i,/(blackberry)\w*\/([\w\.]*)/i,/(tizen|kaios)[\/ ]([\w\.]+)/i,/\((series40);/i],[s,u],[/\(bb(10);/i],[u,[s,x]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i],[u,[s,"Symbian"]],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[u,[s,"Firefox OS"]],[/web0s;.+rt(tv)/i,/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i],[u,[s,"webOS"]],[/crkey\/([\d\.]+)/i],[u,[s,"Chromecast"]],[/(cros) [\w]+ ([\w\.]+\w)/i],[[s,"Chromium OS"],u],[/(nintendo|playstation) ([wids345portablevuch]+)/i,/(xbox); +xbox ([^\);]+)/i,/\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,/(mint)[\/\(\) ]?(\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,/(hurd|linux) ?([\w\.]*)/i,/(gnu) ?([\w\.]*)/i,/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku) (\w+)/i],[s,u],[/(sunos) ?([\w\.\d]*)/i],[[s,"Solaris"],u],[/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/(aix) ((\d)(?=\.|\)| )[\w\.])*/i,/\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux)/i,/(unix) ?([\w\.]*)/i],[s,u]]},U=function n(i,s){if(p(i)===o&&(s=i,i=t),!(this instanceof n))return new n(i,s).getResult();var l=i||(p(e)!==r&&e.navigator&&e.navigator.userAgent?e.navigator.userAgent:""),c=s?function(e,t){var n={};for(var r in e)t[r]&&t[r].length%2==0?n[r]=t[r].concat(e[r]):n[r]=e[r];return n}(z,s):z;return this.getBrowser=function(){var e={};return e.name=t,e.version=t,I.call(e,l,c.browser),e.major=function(e){return p(e)===a?e.replace(/[^\d\.]/g,"").split(".")[0]:t}(e.version),e},this.getCPU=function(){var e={};return e.architecture=t,I.call(e,l,c.cpu),e},this.getDevice=function(){var e={};return e.vendor=t,e.model=t,e.type=t,I.call(e,l,c.device),e},this.getEngine=function(){var e={};return e.name=t,e.version=t,I.call(e,l,c.engine),e},this.getOS=function(){var e={};return e.name=t,e.version=t,I.call(e,l,c.os),e},this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}},this.getUA=function(){return l},this.setUA=function(e){return l=p(e)===a&&e.length>255?M(e,255):e,this},this.setUA(l),this};U.VERSION="1.0.2",U.BROWSER=O([s,u,"major"]),U.CPU=O([d]),U.DEVICE=O([i,c,l,f,h,g,m,b,v]),U.ENGINE=U.OS=O([s,u]),qo.exports&&(Wo=qo.exports=U),Wo.UAParser=U;var V=p(e)!==r&&(e.jQuery||e.Zepto);if(V&&!V.ua){var q=new U;V.ua=q.getResult(),V.ua.get=function(){return q.getUA()},V.ua.set=function(e){q.setUA(e);var t=q.getResult();for(var n in t)V.ua[n]=t[n]}}}("object"===("undefined"==typeof window?"undefined":p(window))?window:f);var Go,Ho,Zo,Yo,Xo,Ko,Jo,Qo,ea=$o.exports,ta=Math.floor,na=Math.random,ra=/\s/,oa=/^\s+/,aa=function(e){return e?e.slice(0,function(e){for(var t=e.length;t--&&ra.test(e.charAt(t)););return t}(e)+1).replace(oa,""):e},ia=U,sa=Kn,la=/^[-+]0x[0-9a-f]+$/i,ca=/^0b[01]+$/i,ua=/^0o[0-7]+$/i,da=parseInt,pa=$n,fa=function(e){return e?1/0===(e=function(e){if("number"==typeof e)return e;if(sa(e))return NaN;if(ia(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=ia(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=aa(e);var n=ca.test(e);return n||ua.test(e)?da(e.slice(2),n?2:8):la.test(e)?NaN:+e}(e))||-1/0===e?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0},ha=parseFloat,ma=Math.min,ga=Math.random,ba=function(e,t,n){if(n&&"boolean"!=typeof n&&pa(e,t,n)&&(t=n=void 0),void 0===n&&("boolean"==typeof t?(n=t,t=void 0):"boolean"==typeof e&&(n=e,e=void 0)),void 0===e&&void 0===t?(e=0,t=1):(e=fa(e),void 0===t?(t=e,e=0):t=fa(t)),e>t){var r=e;e=t,t=r}if(n||e%1||t%1){var o=ga();return ma(e+o*(t-e+ha("1e-"+((o+"").length-1))),t)}return function(e,t){return e+ta(na()*(t-e+1))}(e,t)};!function(e){e[e.Show=0]="Show",e[e.Hide=1]="Hide"}(Go||(Go={})),function(e){e[e.Manual=0]="Manual",e[e.Auto=1]="Auto"}(Ho||(Ho={})),function(e){e[e.Page=1]="Page",e[e.Click=2]="Click",e[e.Expose=3]="Expose",e[e.Drag=4]="Drag",e[e.Sideslip=5]="Sideslip",e[e.PullUp=6]="PullUp",e[e.PullDown=7]="PullDown",e[e.Video=8]="Video",e[e.System=9]="System"}(Zo||(Zo={})),function(e){e[e.Web=3]="Web",e[e.Mobile=4]="Mobile",e[e.AppH5=5]="AppH5"}(Yo||(Yo={})),function(e){e.EventList="eventList",e.EventUid="eventUid",e.Fingerprint="fingerprint"}(Xo||(Xo={})),function(e){e.QrVal="qrVal",e.SourceReferer="sourceReferer"}(Ko||(Ko={})),function(e){e.Pre="pre",e.Online="online"}(Jo||(Jo={})),function(e){e.IOS="iOS",e.ANDROID="Android"}(Qo||(Qo={}));var va=[{locale:"en",languageKey:"en_US",languageName:"English",languageType:0},{locale:"en-GB",languageKey:"ko_KR",languageName:"English(UK)",languageType:3},{locale:"ja",languageKey:"ja_JP",languageName:"\u65e5\u672c\u8a9e",languageType:2},{locale:"vi",languageKey:"vi_VN",languageName:"Ti\u1ebfng Vi\u1ec7t",languageType:4},{locale:"ru",languageKey:"ru_RU",languageName:"\u0420\u0443\u0441\u0441\u043a\u0438\u0439",languageType:6},{locale:"es",languageKey:"es_ES",languageName:"Espa\xf1ol",languageType:7},{locale:"tr",languageKey:"tr_TR",languageName:"T\xfcrk\xe7e",languageType:8},{locale:"it",languageKey:"it_IT",languageName:"Italiano",languageType:9},{locale:"fr",languageKey:"fr_FR",languageName:"Fran\xe7ais",languageType:10},{locale:"de",languageKey:"de_DE",languageName:"Deutsch",languageType:11},{locale:"zh-CN",languageKey:"zh_CN",languageName:"\u7b80\u4f53\u4e2d\u6587",languageType:1},{locale:"zh-TW",languageKey:"zh_TW",languageName:"\u7e41\u9ad4\u4e2d\u6587",languageType:5},{locale:"pt",languageKey:"pt_PT",languageName:"Portugu\xeas",languageType:12},{locale:"id",languageKey:"in_ID",languageName:"Bahasa Indonesia",languageType:13},{locale:"th",languageKey:"th_TH",languageName:"\u0e44\u0e17\u0e22",languageType:14},{locale:"nl",languageKey:"nl_NL",languageName:"Dutch",languageType:16},{locale:"en-IN",languageKey:"en_IN",languageName:"English(South Asia)",languageType:18},{locale:"en-PH",languageKey:"en_PH",languageName:"English(Southeast Asia)",languageType:17},{locale:"en-ZA",languageKey:"en_ZA",languageName:"English(Africa)",languageType:19},{locale:"pl",languageKey:"pl_PL",languageName:"Polski",languageType:20},{locale:"uk",languageKey:"uk_UA",languageName:"\u0443\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430",languageType:21},{locale:"sv",languageKey:"sv_SE",languageName:"Svenska",languageType:22},{locale:"pt-PT",languageKey:"pt_EU",languageName:"Portugu\xeas (Portugal)",languageType:24},{locale:"es-ES",languageKey:"es_IN",languageName:"Espa\xf1ol (Internacional)",languageType:23},{locale:"uz",languageKey:"uz_UZ",languageName:"o'zbek",languageType:25},{locale:"ar",languageKey:"ar_US",languageName:"\u0627\u0644\u0639\u0631\u0628\u064a\u0629 (\u0627\u0644\u0628\u062d\u0631\u064a\u0646)",languageType:99}],ya=new ea,wa={baseURL:""};function ka(e,t){return new Promise((function(n,r){var o=ja().pfb,a=wa.baseURL,i=new XMLHttpRequest;function s(){if(i){var e=i.status,t=i.response;!e||e>=200&&e<300?n(t):r(new Error("Request failed with status code ".concat(e)))}}i.open("post","".concat(a).concat(e),!0),"onloadend"in i?i.onloadend=s:i.onreadystatechange=function(){i&&4===i.readyState&&(0!==i.status||i.responseURL&&0===i.responseURL.indexOf("file:"))&&setTimeout(s)},o&&i.setRequestHeader("pfb",o),i.setRequestHeader("Accept","application/json, text/plain, */*"),i.setRequestHeader("Content-Type","application/json"),i.responseType="json",t&&(t=JSON.stringify(t)),i.send(t||null)}))}function xa(e,t){return new Promise((function(n){return setTimeout(n,e,t)}))}function Sa(e){var t={};return function(){for(var n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];var a=JSON.stringify(r);return t[a]||(t[a]=e.apply(this,r))}}var _a=Sa(ya.getBrowser),Ca=Sa(ya.getDevice),Ea=Sa(ya.getOS);function Aa(){return La.apply(this,arguments)}function La(){return La=d(s().mark((function e(){var t;return s().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=ho(Uo,{debug:!1},["fonts","domBlockers","fontPreferences","deviceMemory"]),e.abrupt("return",t());case 2:case"end":return e.stop()}}),e)}))),La.apply(this,arguments)}function Ta(){var e=window.navigator.connection||{},t=e.type,n=e.effectiveType;return t||n}function ja(){var e=window.location.search,t={};return e&&decodeURIComponent(location.search.slice(1)).split("&").forEach((function(e){var n=l(e.split("="),2),r=n[0],o=n[1];t[r]=o})),t}var Ra=function(){if(!window)return!1;if(window.control)return!0;if(!window.control&&!window.webkit)return!1;try{return window.webkit.messageHandlers.transDomainConfig.postMessage(null),!0}catch(r){}return!1};function Na(){var e=window.navigator.userAgent;return Ra()?Yo.AppH5:/iPhone|iPod|Android|ios|iOS|iPad|Backerry|WebOS|Symbian|Windows Phone|Phone/i.test(e)?Yo.Mobile:Yo.Web}function Oa(e,t){try{window.localStorage.setItem(e,JSON.stringify(t))}catch(e){}}function Pa(e){try{var t=window.localStorage.getItem(e);if(t)return JSON.parse(t)}catch(e){}return null}function Da(e,t){try{window.sessionStorage.setItem(e,JSON.stringify(t))}catch(e){}}function Ma(e){try{var t=window.sessionStorage.getItem(e);if(t)return JSON.parse(t)}catch(e){}return null}function Ia(e){var t=[Jo.Pre,Jo.Online];return e&&(t.includes(e)||/test[\d]{1,2}$/.test(e))?e:""}function Fa(){var e=window.location.host,t=e.match(/test[\d]{1,2}/);return t?t[0]:e.includes("bike")?Jo.Pre:Jo.Online}function Ba(e){for(var t="0123456789",n="",r=e;r>0;--r)n+=t[Math.floor(10*Math.random())];return n}function za(e){return(va.find((function(t){return t.locale===e}))||{}).languageKey}function Ua(){return function(){var e=function(){var e={};try{window.document.cookie.split(";").forEach((function(t){var n=l(t.trim().split("="),2),r=n[0],o=n[1];e[r]=o}))}catch(e){console.warn(e)}return e}(),t=e.BITGET_LOCAL_COOKIE;return t?za(JSON.parse(decodeURIComponent(t)).bitget_lang):""}()||((e=l(window.location.pathname.split("/"),3))[0],t=e[1],n=e[2],za(t)||za(n)||va[0].languageKey);var e,t,n}function Va(){var e=ja().qr_val,t=void 0===e?null:e;return t?Da(Ko.QrVal,t):t=Ma(Ko.QrVal),t}function qa(){var e=Ma(Ko.SourceReferer);return e||(e=window.document.referrer,Da(Ko.SourceReferer,e)),e}function Wa(){return Wa=d(s().mark((function e(t,n){var r,a,i,c,u,d,p,f,h,m,g,b,v,y,w=arguments;return s().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=w.length>2&&void 0!==w[2]?w[2]:"",a=window,i=a.screen,c=i.width,u=i.height,d=a.location.host,e.next=4,xa(0);case 4:if(p=_a(),f=Ca(),h=Ea(),m=Pa(Xo.Fingerprint)){e.next=20;break}return e.next=11,xa(0);case 11:return e.next=13,Promise.all([n,Aa()]);case 13:g=e.sent,b=l(g,2),v=b[0].ip,(y=b[1]).ip={value:v},m=Vo(y),Oa(Xo.Fingerprint,m);case 20:return e.abrupt("return",o(o({},t),{},{browser:p.name,browser_version:p.version,manufacturer:f.vendor,model:f.model,screen_width:c,screen_height:u,network_type:Ta(),sys:Na(),os_version:"".concat(h.name," ").concat(h.version),url_host:d,source_referer:qa(),timezone_offset:(new Date).getTimezoneOffset(),log_env:Ia(r)||Fa(),qr_val:Va(),device_id:m,session_id:"".concat(m,"_").concat(Date.now(),"_").concat(ba(0,100))}));case 21:case"end":return e.stop()}}),e)}))),Wa.apply(this,arguments)}var $a,Ga={app_id:null,app_name:null,ver:"1.0.0",uid:($a=Pa(Xo.EventUid),$a||($a="w-".concat(Ba(9),"-").concat(Date.now(),"-").concat(Ba(9)),Oa(Xo.EventUid,$a)),$a)},Ha={browser:null,browser_version:null,session_id:null,network_type:null,sys:Yo.Web,os_version:null,device_id:null,manufacturer:null,brand:null,model:null,screen_width:0,screen_height:0,carrier:null,url_host:null,lib_version:"1.1.23-2",timezone_offset:0,channel:null,log_env:null,qr_val:null,source_referer:""},Za={path:"",business1:"/",business2:null,event_tracking:"/",event_tracking_id:"/",event_tracking_ext:{}},Ya={type:Zo.Page,url:null,curr_page:null,event_tracking_id:null,event_tracking:null,title:null,page_status:null,track_type:Ho.Manual,timestamp:0,timely:!1,event_tracking_ext:{},curr_page_ext:{},seq:0,log_seq:0,retry_count:-1,user_language:null,referer:""},Xa=["pushState","replaceState"],Ka="/v1/buried/log/info",Ja=function(){var e=d(s().mark((function e(){var t,n,r,o,a,i;return s().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,ka("/v1/mix/public/webCommonConfig");case 3:return t=e.sent,n=t.data,r=n.clientCommonConfig,o=r.eventLogUploadSwitch,a=r.userId,i=n.localVo.ip,e.abrupt("return",{shouldUpload:o,uid:a,ip:i});case 12:e.prev=12,e.t0=e.catch(0),console.warn(e.t0);case 15:return e.abrupt("return",{shouldUpload:!1,uid:null});case 16:case"end":return e.stop()}}),e,null,[[0,12]])})));return function(){return e.apply(this,arguments)}}(),Qa=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(Ra())try{return ti(e)}catch(a){return ei(e,t)}return ei(e,t)},ei=function(e,t){return t?ni(e):ka(Ka,e)},ti=function(e){var t=Ea().name;return e.forEach((function(e){if(t===Qo.IOS)window.webkit.messageHandlers.appGenerateUploadBuried.postMessage(JSON.stringify(e));else{if(t!==Qo.ANDROID)throw new Error("Unknown Os");window.control.appGenerateUploadBuried(JSON.stringify(e))}})),!0},ni=function(e){return!!window.navigator.sendBeacon&&window.navigator.sendBeacon(Ka,new Blob([JSON.stringify(e)],{type:"application/json; charset=UTF-8"}))},ri=function(){function e(t){var n=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")})(this,e),this.external=Ga,this.interior=Ha,this.storageIdentity="",this.seq=0,this.logSeq=0,this.pageInfoList=[],this.eventList=[],this.uploadPromise=Promise.resolve(),this.exposeList=[],this.exposedEventList=[],this.currentHref="",this.currentPageId="",this.currentPageConfig=Za,this.isUploading=!1,this.shouldUpload=!1,this.referer=window.document.referrer;var a=o.storageIdentity,i=void 0===a?"":a,s=o.log_env,l=void 0===s?"":s,c=o.baseURL;c&&function(e){Zn(wa,Hr(e,Object.keys(wa)))}({baseURL:c}),this.storageIdentity=i,this.updateExternal(t),this.updatePageInfoList(r),this.readyPromise=this.createInterior(l);try{var u=Pa(this.createStorageKey(Xo.EventList));u&&u.length&&u.forEach((function(e){n.addEvent(e)}))}catch(e){console.warn(e)}this.eventLoop(),this.handlePageChange(),this.handleUrlChange(),window.addEventListener("popstate",(function(){n.handlePageChange(),n.handleUrlChange()})),Xa.forEach((function(e){var t=window.history[e];window.history[e]=function(){for(var e=arguments.length,r=new Array(e),o=0;o<e;o++)r[o]=arguments[o];t.apply(window.history,r),n.handlePageChange(),n.handleUrlChange()}})),window.document.addEventListener("visibilitychange",(function(){"hidden"===window.document.visibilityState?(clearInterval(n.loopTimer),n.leaveEvent&&n.addEvent(Zn(n.leaveEvent,{timestamp:Date.now()})),n.currentHref="",n.leaveEvent=void 0,n.eventList.length&&n.upload(!0)):(n.eventLoop(),n.handlePageChange())}))}var t,n,r,a,c;return t=e,n=[{key:"createStorageKey",value:function(e){return this.storageIdentity?"".concat(this.storageIdentity).concat(e.charAt(0).toLocaleUpperCase()).concat(e.slice(1)):e}},{key:"getCommonConfig",value:function(){var e=this;return Ja().then((function(t){var n=t.shouldUpload,r=t.uid,o=t.ip;return e.shouldUpload=n,r&&e.updateExternal({uid:r}),{ip:o}}))}},{key:"createInterior",value:function(e){var t=this,n=this.getCommonConfig();return function(e,t){return Wa.apply(this,arguments)}(this.interior,n,e).then((function(e){t.interior=e}))}},{key:"updateExternal",value:function(e){var t=this;this.external=Zn({},this.external,Hr(e,Object.keys(Ga))),this.eventList.forEach((function(e){return Zn(e,t.external)})),this.leaveEvent&&Zn(this.leaveEvent,this.external)}},{key:"updatePageInfoList",value:function(e){this.pageInfoList=Zn([],this.pageInfoList,e)}},{key:"update",value:(c=d(s().mark((function e(t,n){return s().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.updatePageInfoList(n),this.updateExternal(t),e.next=4,this.readyPromise;case 4:this.shouldUpload||(this.readyPromise=this.getCommonConfig());case 5:case"end":return e.stop()}}),e,this)}))),function(e,t){return c.apply(this,arguments)})},{key:"getPageConfig",value:function(){var e=window.location.pathname,t=this.pageInfoList.find((function(t){var n,r=t.path,o=(n=r,Object.prototype.toString.call(n).slice(8,-1));return"String"===o?e.endsWith(r):"RegExp"===o?e.match(r):void 0}));return t?Zn({},Za,t):Za}},{key:"checkEvent",value:function(e){var t=this.getPageConfig();t&&(this.currentPageConfig=t,e())}},{key:"combineEvent",value:function(e){var t=window,n=t.location.href,r=t.document.title,a=this.currentPageConfig,i=a.business1,s=a.business2,l=this.referer===n?"":this.referer;return e.type===Zo.Page&&this.seq++,Zn({},Ya,o(o(o(o({},e),this.external),this.interior),{},{url:n,title:r,business1:e.business1||i,business2:e.business2||s,seq:this.seq,log_seq:++this.logSeq,retry_count:-1,user_language:Ua(),referer:l}))}},{key:"addEvent",value:function(e){var t=this;e.device_id||(this.interior.device_id?Zn(e,this.interior):this.readyPromise.then((function(){Zn(e,t.interior),t.eventList.push(e),Oa(t.createStorageKey(Xo.EventList),t.eventList)}))),e.device_id&&(this.eventList.push(e),Oa(this.createStorageKey(Xo.EventList),this.eventList))}},{key:"formatExtra",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t={};if("function"==typeof e)try{t=e()}catch(e){console.warn(e)}else t=e;return t}},{key:"createPageEvent",value:function(e){var t=this.currentPageConfig,n=t.event_tracking,r=t.event_tracking_id,o=t.event_tracking_ext;return e===Go.Show&&(this.currentPageId="".concat(Date.now(),"_").concat(this.seq)),{type:Zo.Page,timely:!0,page_status:e,event_tracking:n,event_tracking_id:r,event_tracking_ext:this.formatExtra(o),page_unique_id:this.currentPageId,track_type:Ho.Auto,timestamp:Date.now()}}},{key:"createCommonEvent",value:function(e){var t=this.currentPageConfig,n=t.event_tracking,r=t.event_tracking_ext;return o(o({},e),{},{curr_page:n,curr_page_ext:this.formatExtra(r),track_type:Ho.Manual,timestamp:Date.now()})}},{key:"page",value:function(e){var t=this;this.checkEvent((function(){var n=t.combineEvent(t.createPageEvent(e));t.addEvent(n),t.leaveEvent=t.combineEvent(t.createPageEvent(Go.Hide))}))}},{key:"click",value:function(e){var t=this,n=e.business1,r=e.business2,o=e.event_tracking,a=e.event_tracking_id,i=e.event_tracking_ext,s=void 0===i?{}:i,l=e.timely,c=void 0!==l&&l;this.checkEvent((function(){var e=t.combineEvent(t.createCommonEvent({type:Zo.Click,timely:c,business1:n,business2:r,event_tracking:o,event_tracking_id:a,event_tracking_ext:s}));t.addEvent(e)}))}},{key:"expose",value:function(e){var t=this,n=e.business1,r=e.business2,o=e.event_tracking,a=e.event_tracking_id,i=e.event_tracking_ext,s=void 0===i?{}:i,l=e.timely,c=void 0!==l&&l;this.checkEvent((function(){var e=t.combineEvent(t.createCommonEvent({type:Zo.Expose,timely:c,business1:n,business2:r,event_tracking:o,event_tracking_id:a,event_tracking_ext:s}));e.url===t.currentHref?t.addEvent(e):t.exposedEventList.push(e)}))}},{key:"drag",value:function(e){var t=this,n=e.business1,r=e.business2,o=e.event_tracking,a=e.event_tracking_id,i=e.event_tracking_ext,s=void 0===i?{}:i,l=e.timely,c=void 0!==l&&l;this.checkEvent((function(){var e=t.combineEvent(t.createCommonEvent({type:Zo.Drag,timely:c,business1:n,business2:r,event_tracking:o,event_tracking_id:a,event_tracking_ext:s}));t.addEvent(e)}))}},{key:"sideslip",value:function(e){var t=this,n=e.business1,r=e.business2,o=e.event_tracking,a=e.event_tracking_id,i=e.event_tracking_ext,s=void 0===i?{}:i,l=e.timely,c=void 0!==l&&l;this.checkEvent((function(){var e=t.combineEvent(t.createCommonEvent({type:Zo.Sideslip,timely:c,business1:n,business2:r,event_tracking:o,event_tracking_id:a,event_tracking_ext:s}));t.addEvent(e)}))}},{key:"pullUp",value:function(e){var t=this,n=e.business1,r=e.business2,o=e.event_tracking,a=e.event_tracking_id,i=e.event_tracking_ext,s=void 0===i?{}:i,l=e.timely,c=void 0!==l&&l;this.checkEvent((function(){var e=t.combineEvent(t.createCommonEvent({type:Zo.PullUp,timely:c,business1:n,business2:r,event_tracking:o,event_tracking_id:a,event_tracking_ext:s}));t.addEvent(e)}))}},{key:"pullDown",value:function(e){var t=this,n=e.business1,r=e.business2,o=e.event_tracking,a=e.event_tracking_id,i=e.event_tracking_ext,s=void 0===i?{}:i,l=e.timely,c=void 0!==l&&l;this.checkEvent((function(){var e=t.combineEvent(t.createCommonEvent({type:Zo.PullDown,timely:c,business1:n,business2:r,event_tracking:o,event_tracking_id:a,event_tracking_ext:s}));t.addEvent(e)}))}},{key:"video",value:function(e){var t=this,n=e.business1,r=e.business2,o=e.event_tracking,a=e.event_tracking_id,i=e.event_tracking_ext,s=void 0===i?{}:i,l=e.timely,c=void 0!==l&&l;this.checkEvent((function(){var e=t.combineEvent(t.createCommonEvent({type:Zo.Video,timely:c,business1:n,business2:r,event_tracking:o,event_tracking_id:a,event_tracking_ext:s}));t.addEvent(e)}))}},{key:"system",value:function(e){var t=this,n=e.business1,r=e.business2,o=e.event_tracking,a=e.event_tracking_id,i=e.event_tracking_ext,s=void 0===i?{}:i,l=e.timely,c=void 0!==l&&l;this.checkEvent((function(){var e=t.combineEvent(t.createCommonEvent({type:Zo.System,timely:c,business1:n,business2:r,event_tracking:o,event_tracking_id:a,event_tracking_ext:s}));t.addEvent(e)}))}},{key:"additionObserver",value:function(e){var t=e.el,n=e.box_el,r=function(e){var t=e.el,n=e.callback,r=new IntersectionObserver((function(e,t){var r=l(e,1)[0];try{n(r,t)}catch(e){console.warn(e)}}),{root:e.box_el||null});return r.observe(t),r}({el:t,box_el:n,callback:e.callback});return{el:t,box_el:n,observer:r}}},{key:"addExpose",value:function(e){var t=e.el,n=this.exposeList.find((function(e){return e.el===t}));n?(n.observer.disconnect(),Reflect.deleteProperty(n,"observer"),Zn(n,e)):this.exposeList.push(e)}},{key:"registerExposeEvent",value:function(e){var t=this,n=e.el,r=e.box_el,o=e.once,a=void 0!==o&&o,i=e.business1,s=e.business2,l=e.event_tracking,c=e.event_tracking_id,u=e.event_tracking_ext,d=void 0===u?{}:u,p=e.timely,f=void 0!==p&&p,h=this.additionObserver({el:n,box_el:r,callback:function(e,n){e.isIntersecting&&(t.expose({business1:i,business2:s,event_tracking:l,event_tracking_id:c,event_tracking_ext:d,timely:f}),a&&n.disconnect())}});this.addExpose(h)}},{key:"registerCustomExposeEvent",value:function(e){var t=e.el,n=e.box_el,r=e.callback,o=this.additionObserver({el:t,box_el:n,callback:function(e){try{r(e.isIntersecting)}catch(e){console.warn(e)}}});this.addExpose(o)}},{key:"customExposeEvent",value:function(e){this.registerCustomExposeEvent(e)}},{key:"checkExposeList",value:function(){console.warn("This method is no longer required due to the use of the new api IntersectionObserver")}},{key:"clearEvent",value:function(e){var t=e.map((function(e){return e.log_seq}));this.eventList=this.eventList.filter((function(e){return!t.includes(e.log_seq)})),Oa(this.createStorageKey(Xo.EventList),this.eventList)}},{key:"uploadDefault",value:(a=d(s().mark((function e(){var t;return s().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return(t=this.eventList.slice(0,50)).forEach((function(e){e.ctime=Date.now(),e.retry_count++})),e.next=4,Qa(t);case 4:if(this.clearEvent(t),!(this.eventList.length>=50)){e.next=8;break}return e.next=8,this.uploadDefault();case 8:case"end":return e.stop()}}),e,this)}))),function(){return a.apply(this,arguments)})},{key:"uploadImmediately",value:function(){this.eventList.forEach((function(e){e.ctime=Date.now(),e.retry_count++}));for(var e=0;e<this.eventList.length;e+=50){var t=this.eventList.slice(e,e+50);Qa(t,!0)&&this.clearEvent(t)}}},{key:"upload",value:(r=d(s().mark((function e(){var t,n=arguments;return s().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=n.length>0&&void 0!==n[0]&&n[0],this.isUploading=!0,e.prev=2,e.next=5,this.readyPromise;case 5:if(!this.shouldUpload){e.next=12;break}if(!t){e.next=10;break}this.uploadImmediately(),e.next=12;break;case 10:return e.next=12,this.uploadDefault();case 12:e.next=17;break;case 14:e.prev=14,e.t0=e.catch(2),console.warn(e.t0);case 17:return e.prev=17,this.isUploading=!1,e.finish(17);case 20:return e.abrupt("return",!0);case 21:case"end":return e.stop()}}),e,this,[[2,14,17,20]])}))),function(){return r.apply(this,arguments)})},{key:"handlePageChange",value:function(){var e=this;try{var t=window,n=t.location.href,r=t.document;this.currentHref!==n&&(this.currentHref=n,this.leaveEvent&&(this.addEvent(Zn(this.leaveEvent,{timestamp:Date.now()})),this.leaveEvent=void 0),this.page(Go.Show),this.exposedEventList.length&&(this.exposedEventList.filter((function(t){return t.url===e.currentHref})).forEach((function(t){e.addEvent(Zn(t,{timestamp:Date.now()+1}))})),this.exposedEventList=[]),this.exposeList=this.exposeList.filter((function(e){var t=r.contains(e.el);return t||(e.observer.disconnect(),Reflect.deleteProperty(e,"observer")),t})))}catch(e){}}},{key:"handleUrlChange",value:function(){var e=window.location.href;this.referer=e}},{key:"eventLoop",value:function(){var e=this;clearInterval(this.loopTimer),this.loopTimer=setInterval(d(s().mark((function t(){return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(t.prev=0,!e.eventList.length||e.isUploading){t.next=5;break}return t.next=4,e.uploadPromise;case 4:e.uploadPromise=e.upload();case 5:t.next=10;break;case 7:t.prev=7,t.t0=t.catch(0),console.warn(t.t0);case 10:case"end":return t.stop()}}),t,null,[[0,7]])}))),500)}}],n&&i(t.prototype,n),Object.defineProperty(t,"prototype",{writable:!1}),e}();let oi,ai;const ii="mph_web",si="morphism",li="website",ci={docs_page:"b5446"},ui=e=>{let{page:t="docs_page"}=e;if("undefined"!=typeof window)return oi=navigator.language||navigator.userLanguage,ai=[{path:"",curr_page:"/",brand:"morphism",business1:si,business2:li,event_tracking:`${ii}_${t}`,event_tracking_id:`${ci[t]}`,event_tracking_ext:{usr_language:oi}}],new ri({app_id:"xyz.morphism.pc",app_name:ii},ai,{baseURL:"https://log.noxiaohao.com"})}},8602:(e,t,n)=>{"use strict";n.d(t,{zR:()=>S,TM:()=>T,yJ:()=>m,sC:()=>R,AO:()=>h,Fu:()=>g});var r=n(2994);function o(e){return"/"===e.charAt(0)}function a(e,t){for(var n=t,r=n+1,o=e.length;r<o;n+=1,r+=1)e[n]=e[r];e.pop()}const i=function(e,t){void 0===t&&(t="");var n,r=e&&e.split("/")||[],i=t&&t.split("/")||[],s=e&&o(e),l=t&&o(t),c=s||l;if(e&&o(e)?i=r:r.length&&(i.pop(),i=i.concat(r)),!i.length)return"/";if(i.length){var u=i[i.length-1];n="."===u||".."===u||""===u}else n=!1;for(var d=0,p=i.length;p>=0;p--){var f=i[p];"."===f?a(i,p):".."===f?(a(i,p),d++):d&&(a(i,p),d--)}if(!c)for(;d--;d)i.unshift("..");!c||""===i[0]||i[0]&&o(i[0])||i.unshift("");var h=i.join("/");return n&&"/"!==h.substr(-1)&&(h+="/"),h};function s(e){return e.valueOf?e.valueOf():Object.prototype.valueOf.call(e)}const l=function e(t,n){if(t===n)return!0;if(null==t||null==n)return!1;if(Array.isArray(t))return Array.isArray(n)&&t.length===n.length&&t.every((function(t,r){return e(t,n[r])}));if("object"==typeof t||"object"==typeof n){var r=s(t),o=s(n);return r!==t||o!==n?e(r,o):Object.keys(Object.assign({},t,n)).every((function(r){return e(t[r],n[r])}))}return!1};var c=n(2630);function u(e){return"/"===e.charAt(0)?e:"/"+e}function d(e){return"/"===e.charAt(0)?e.substr(1):e}function p(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function f(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function h(e){var t=e.pathname,n=e.search,r=e.hash,o=t||"/";return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o}function m(e,t,n,o){var a;"string"==typeof e?(a=function(e){var t=e||"/",n="",r="",o=t.indexOf("#");-1!==o&&(r=t.substr(o),t=t.substr(0,o));var a=t.indexOf("?");return-1!==a&&(n=t.substr(a),t=t.substr(0,a)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),a.state=t):(void 0===(a=(0,r.A)({},e)).pathname&&(a.pathname=""),a.search?"?"!==a.search.charAt(0)&&(a.search="?"+a.search):a.search="",a.hash?"#"!==a.hash.charAt(0)&&(a.hash="#"+a.hash):a.hash="",void 0!==t&&void 0===a.state&&(a.state=t));try{a.pathname=decodeURI(a.pathname)}catch(s){throw s instanceof URIError?new URIError('Pathname "'+a.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):s}return n&&(a.key=n),o?a.pathname?"/"!==a.pathname.charAt(0)&&(a.pathname=i(a.pathname,o.pathname)):a.pathname=o.pathname:a.pathname||(a.pathname="/"),a}function g(e,t){return e.pathname===t.pathname&&e.search===t.search&&e.hash===t.hash&&e.key===t.key&&l(e.state,t.state)}function b(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,o){if(null!=e){var a="function"==typeof e?e(t,n):e;"string"==typeof a?"function"==typeof r?r(a,o):o(!0):o(!1!==a)}else o(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];t.forEach((function(e){return e.apply(void 0,n)}))}}}var v=!("undefined"==typeof window||!window.document||!window.document.createElement);function y(e,t){t(window.confirm(e))}var w="popstate",k="hashchange";function x(){try{return window.history.state||{}}catch(e){return{}}}function S(e){void 0===e&&(e={}),v||(0,c.A)(!1);var t,n=window.history,o=(-1===(t=window.navigator.userAgent).indexOf("Android 2.")&&-1===t.indexOf("Android 4.0")||-1===t.indexOf("Mobile Safari")||-1!==t.indexOf("Chrome")||-1!==t.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history,a=!(-1===window.navigator.userAgent.indexOf("Trident")),i=e,s=i.forceRefresh,l=void 0!==s&&s,d=i.getUserConfirmation,g=void 0===d?y:d,S=i.keyLength,_=void 0===S?6:S,C=e.basename?f(u(e.basename)):"";function E(e){var t=e||{},n=t.key,r=t.state,o=window.location,a=o.pathname+o.search+o.hash;return C&&(a=p(a,C)),m(a,r,n)}function A(){return Math.random().toString(36).substr(2,_)}var L=b();function T(e){(0,r.A)(U,e),U.length=n.length,L.notifyListeners(U.location,U.action)}function j(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||O(E(e.state))}function R(){O(E(x()))}var N=!1;function O(e){if(N)N=!1,T();else{L.confirmTransitionTo(e,"POP",g,(function(t){t?T({action:"POP",location:e}):function(e){var t=U.location,n=D.indexOf(t.key);-1===n&&(n=0);var r=D.indexOf(e.key);-1===r&&(r=0);var o=n-r;o&&(N=!0,I(o))}(e)}))}}var P=E(x()),D=[P.key];function M(e){return C+h(e)}function I(e){n.go(e)}var F=0;function B(e){1===(F+=e)&&1===e?(window.addEventListener(w,j),a&&window.addEventListener(k,R)):0===F&&(window.removeEventListener(w,j),a&&window.removeEventListener(k,R))}var z=!1;var U={length:n.length,action:"POP",location:P,createHref:M,push:function(e,t){var r="PUSH",a=m(e,t,A(),U.location);L.confirmTransitionTo(a,r,g,(function(e){if(e){var t=M(a),i=a.key,s=a.state;if(o)if(n.pushState({key:i,state:s},null,t),l)window.location.href=t;else{var c=D.indexOf(U.location.key),u=D.slice(0,c+1);u.push(a.key),D=u,T({action:r,location:a})}else window.location.href=t}}))},replace:function(e,t){var r="REPLACE",a=m(e,t,A(),U.location);L.confirmTransitionTo(a,r,g,(function(e){if(e){var t=M(a),i=a.key,s=a.state;if(o)if(n.replaceState({key:i,state:s},null,t),l)window.location.replace(t);else{var c=D.indexOf(U.location.key);-1!==c&&(D[c]=a.key),T({action:r,location:a})}else window.location.replace(t)}}))},go:I,goBack:function(){I(-1)},goForward:function(){I(1)},block:function(e){void 0===e&&(e=!1);var t=L.setPrompt(e);return z||(B(1),z=!0),function(){return z&&(z=!1,B(-1)),t()}},listen:function(e){var t=L.appendListener(e);return B(1),function(){B(-1),t()}}};return U}var _="hashchange",C={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+d(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:d,decodePath:u},slash:{encodePath:u,decodePath:u}};function E(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function A(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function L(e){window.location.replace(E(window.location.href)+"#"+e)}function T(e){void 0===e&&(e={}),v||(0,c.A)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),o=n.getUserConfirmation,a=void 0===o?y:o,i=n.hashType,s=void 0===i?"slash":i,l=e.basename?f(u(e.basename)):"",d=C[s],g=d.encodePath,w=d.decodePath;function k(){var e=w(A());return l&&(e=p(e,l)),m(e)}var x=b();function S(e){(0,r.A)(z,e),z.length=t.length,x.notifyListeners(z.location,z.action)}var T=!1,j=null;function R(){var e,t,n=A(),r=g(n);if(n!==r)L(r);else{var o=k(),i=z.location;if(!T&&(t=o,(e=i).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(j===h(o))return;j=null,function(e){if(T)T=!1,S();else{var t="POP";x.confirmTransitionTo(e,t,a,(function(n){n?S({action:t,location:e}):function(e){var t=z.location,n=D.lastIndexOf(h(t));-1===n&&(n=0);var r=D.lastIndexOf(h(e));-1===r&&(r=0);var o=n-r;o&&(T=!0,M(o))}(e)}))}}(o)}}var N=A(),O=g(N);N!==O&&L(O);var P=k(),D=[h(P)];function M(e){t.go(e)}var I=0;function F(e){1===(I+=e)&&1===e?window.addEventListener(_,R):0===I&&window.removeEventListener(_,R)}var B=!1;var z={length:t.length,action:"POP",location:P,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=E(window.location.href)),n+"#"+g(l+h(e))},push:function(e,t){var n="PUSH",r=m(e,void 0,void 0,z.location);x.confirmTransitionTo(r,n,a,(function(e){if(e){var t=h(r),o=g(l+t);if(A()!==o){j=t,function(e){window.location.hash=e}(o);var a=D.lastIndexOf(h(z.location)),i=D.slice(0,a+1);i.push(t),D=i,S({action:n,location:r})}else S()}}))},replace:function(e,t){var n="REPLACE",r=m(e,void 0,void 0,z.location);x.confirmTransitionTo(r,n,a,(function(e){if(e){var t=h(r),o=g(l+t);A()!==o&&(j=t,L(o));var a=D.indexOf(h(z.location));-1!==a&&(D[a]=t),S({action:n,location:r})}}))},go:M,goBack:function(){M(-1)},goForward:function(){M(1)},block:function(e){void 0===e&&(e=!1);var t=x.setPrompt(e);return B||(F(1),B=!0),function(){return B&&(B=!1,F(-1)),t()}},listen:function(e){var t=x.appendListener(e);return F(1),function(){F(-1),t()}}};return z}function j(e,t,n){return Math.min(Math.max(e,t),n)}function R(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,o=t.initialEntries,a=void 0===o?["/"]:o,i=t.initialIndex,s=void 0===i?0:i,l=t.keyLength,c=void 0===l?6:l,u=b();function d(e){(0,r.A)(w,e),w.length=w.entries.length,u.notifyListeners(w.location,w.action)}function p(){return Math.random().toString(36).substr(2,c)}var f=j(s,0,a.length-1),g=a.map((function(e){return m(e,void 0,"string"==typeof e?p():e.key||p())})),v=h;function y(e){var t=j(w.index+e,0,w.entries.length-1),r=w.entries[t];u.confirmTransitionTo(r,"POP",n,(function(e){e?d({action:"POP",location:r,index:t}):d()}))}var w={length:g.length,action:"POP",location:g[f],index:f,entries:g,createHref:v,push:function(e,t){var r="PUSH",o=m(e,t,p(),w.location);u.confirmTransitionTo(o,r,n,(function(e){if(e){var t=w.index+1,n=w.entries.slice(0);n.length>t?n.splice(t,n.length-t,o):n.push(o),d({action:r,location:o,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",o=m(e,t,p(),w.location);u.confirmTransitionTo(o,r,n,(function(e){e&&(w.entries[w.index]=o,d({action:r,location:o}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=w.index+e;return t>=0&&t<w.entries.length},block:function(e){return void 0===e&&(e=!1),u.setPrompt(e)},listen:function(e){return u.appendListener(e)}};return w}},1035:(e,t,n)=>{"use strict";var r=n(5959),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function l(e){return r.isMemo(e)?i:s[e.$$typeof]||o}s[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[r.Memo]=i;var c=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,h=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(h){var o=f(n);o&&o!==h&&e(t,o,r)}var i=u(n);d&&(i=i.concat(d(n)));for(var s=l(t),m=l(n),g=0;g<i.length;++g){var b=i[g];if(!(a[b]||r&&r[b]||m&&m[b]||s&&s[b])){var v=p(n,b);try{c(t,b,v)}catch(y){}}}}return t}},9597:e=>{"use strict";e.exports=function(e,t,n,r,o,a,i,s){if(!e){var l;if(void 0===t)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,o,a,i,s],u=0;(l=new Error(t.replace(/%s/g,(function(){return c[u++]})))).name="Invariant Violation"}throw l.framesToPop=1,l}}},5526:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},7086:(e,t,n)=>{"use strict";n.r(t)},5130:(e,t,n)=>{"use strict";n.r(t)},5981:(e,t,n)=>{"use strict";n.r(t)},8744:function(e,t,n){var r,o;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function o(e,t,n){return e<t?t:e>n?n:e}function a(e){return 100*(-1+e)}function i(e,t,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+a(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+a(e)+"%,0)"}:{"margin-left":a(e)+"%"}).transition="all "+t+"ms "+n,o}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=o(e,r.minimum,1),n.status=1===e?null:e;var a=n.render(!t),c=a.querySelector(r.barSelector),u=r.speed,d=r.easing;return a.offsetWidth,s((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),l(c,i(e,u,d)),1===e?(l(a,{transition:"none",opacity:1}),a.offsetWidth,setTimeout((function(){l(a,{transition:"all "+u+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),u)}),u)):setTimeout(t,u)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*o(Math.random()*t,.1,.95)),t=o(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var o,i=t.querySelector(r.barSelector),s=e?"-100":a(n.status||0),c=document.querySelector(r.parent);return l(i,{transition:"all 0 linear",transform:"translate3d("+s+"%,0,0)"}),r.showSpinner||(o=t.querySelector(r.spinnerSelector))&&f(o),c!=document.body&&u(c,"nprogress-custom-parent"),c.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var s=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),l=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,o=e.length,a=t.charAt(0).toUpperCase()+t.slice(1);o--;)if((r=e[o]+a)in n)return r;return t}function o(e){return e=n(e),t[e]||(t[e]=r(e))}function a(e,t,n){t=o(t),e.style[t]=n}return function(e,t){var n,r,o=arguments;if(2==o.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&a(e,n,r);else a(e,o[1],o[2])}}();function c(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=p(e),r=n+t;c(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);c(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(o="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=o)},6150:(e,t,n)=>{var r=n(5526);e.exports=f,e.exports.parse=a,e.exports.compile=function(e,t){return s(a(e,t),t)},e.exports.tokensToFunction=s,e.exports.tokensToRegExp=p;var o=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function a(e,t){for(var n,r=[],a=0,i=0,s="",u=t&&t.delimiter||"/";null!=(n=o.exec(e));){var d=n[0],p=n[1],f=n.index;if(s+=e.slice(i,f),i=f+d.length,p)s+=p[1];else{var h=e[i],m=n[2],g=n[3],b=n[4],v=n[5],y=n[6],w=n[7];s&&(r.push(s),s="");var k=null!=m&&null!=h&&h!==m,x="+"===y||"*"===y,S="?"===y||"*"===y,_=n[2]||u,C=b||v;r.push({name:g||a++,prefix:m||"",delimiter:_,optional:S,repeat:x,partial:k,asterisk:!!w,pattern:C?c(C):w?".*":"[^"+l(_)+"]+?"})}}return i<e.length&&(s+=e.substr(i)),s&&r.push(s),r}function i(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function s(e,t){for(var n=new Array(e.length),o=0;o<e.length;o++)"object"==typeof e[o]&&(n[o]=new RegExp("^(?:"+e[o].pattern+")$",d(t)));return function(t,o){for(var a="",s=t||{},l=(o||{}).pretty?i:encodeURIComponent,c=0;c<e.length;c++){var u=e[c];if("string"!=typeof u){var d,p=s[u.name];if(null==p){if(u.optional){u.partial&&(a+=u.prefix);continue}throw new TypeError('Expected "'+u.name+'" to be defined')}if(r(p)){if(!u.repeat)throw new TypeError('Expected "'+u.name+'" to not repeat, but received `'+JSON.stringify(p)+"`");if(0===p.length){if(u.optional)continue;throw new TypeError('Expected "'+u.name+'" to not be empty')}for(var f=0;f<p.length;f++){if(d=l(p[f]),!n[c].test(d))throw new TypeError('Expected all "'+u.name+'" to match "'+u.pattern+'", but received `'+JSON.stringify(d)+"`");a+=(0===f?u.prefix:u.delimiter)+d}}else{if(d=u.asterisk?encodeURI(p).replace(/[?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})):l(p),!n[c].test(d))throw new TypeError('Expected "'+u.name+'" to match "'+u.pattern+'", but received "'+d+'"');a+=u.prefix+d}}else a+=u}return a}}function l(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function c(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function u(e,t){return e.keys=t,e}function d(e){return e&&e.sensitive?"":"i"}function p(e,t,n){r(t)||(n=t||n,t=[]);for(var o=(n=n||{}).strict,a=!1!==n.end,i="",s=0;s<e.length;s++){var c=e[s];if("string"==typeof c)i+=l(c);else{var p=l(c.prefix),f="(?:"+c.pattern+")";t.push(c),c.repeat&&(f+="(?:"+p+f+")*"),i+=f=c.optional?c.partial?p+"("+f+")?":"(?:"+p+"("+f+"))?":p+"("+f+")"}}var h=l(n.delimiter||"/"),m=i.slice(-h.length)===h;return o||(i=(m?i.slice(0,-h.length):i)+"(?:"+h+"(?=$))?"),i+=a?"$":o&&m?"":"(?="+h+"|$)",u(new RegExp("^"+i,d(n)),t)}function f(e,t,n){return r(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return u(e,t)}(e,t):r(e)?function(e,t,n){for(var r=[],o=0;o<e.length;o++)r.push(f(e[o],t,n).source);return u(new RegExp("(?:"+r.join("|")+")",d(n)),t)}(e,t,n):function(e,t,n){return p(a(e,n),t,n)}(e,t,n)}},9227:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to <a href="https://webplatform.github.io/docs/">WebPlatform.org documentation</a>. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (<code>.comment</code> can become <code>.namespace--comment</code>) or replace them with your defined ones (like <code>.editor__comment</code>). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the <code>highlightAll</code> and <code>highlightAllUnder</code> methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},6532:(e,t,n)=>{const r=n(9227),o=n(9670),a=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...a,...Object.keys(Prism.languages)];o(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(7507).resolve(t)],delete Prism.languages[e],n(7507)(t),a.add(e)}))}i.silent=!1,e.exports=i},1274:()=>{!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,o,a){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(o,(function(e){if("function"==typeof a&&!a(e))return e;for(var o,s=i.length;-1!==n.code.indexOf(o=t(r,s));)++s;return i[s]=e,o})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var o=0,a=Object.keys(n.tokenStack);!function i(s){for(var l=0;l<s.length&&!(o>=a.length);l++){var c=s[l];if("string"==typeof c||c.content&&"string"==typeof c.content){var u=a[o],d=n.tokenStack[u],p="string"==typeof c?c:c.content,f=t(r,u),h=p.indexOf(f);if(h>-1){++o;var m=p.substring(0,h),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=p.substring(h+f.length),v=[];m&&v.push.apply(v,i([m])),v.push(g),b&&v.push.apply(v,i([b])),"string"==typeof c?s.splice.apply(s,[l,1].concat(v)):c.content=v}}else c.content&&i(c.content)}return s}(n.tokens)}}}})}(Prism)},7507:(e,t,n)=>{var r={"./":6532};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=7507},9670:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n<r;n++)t[e[n]]=!0;return t}function r(e){var n={},r=[];function o(r,a){if(!(r in n)){a.push(r);var i=a.indexOf(r);if(i<a.length-1)throw new Error("Circular dependency: "+a.slice(i).join(" -> "));var s={},l=e[r];if(l){function c(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in s))for(var i in o(t,a),s[t]=!0,n[t])s[i]=!0}t(l.require,c),t(l.optional,c),t(l.modify,c)}n[r]=s,a.pop()}}return function(e){var t=n[e];return t||(o(e,r),t=n[e]),t}}function o(e){for(var t in e)return!0;return!1}return function(a,i,s){var l=function(e){var t={};for(var n in e){var r=e[n];for(var o in r)if("meta"!=o){var a=r[o];t[o]="string"==typeof a?{title:a}:a}}return t}(a),c=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var o in n={},e){var a=e[o];t(a&&a.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+o+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+o+" because it is a component.");n[t]=o}))}return n[r]||r}}(l);i=i.map(c),s=(s||[]).map(c);var u=n(i),d=n(s);i.forEach((function e(n){var r=l[n];t(r&&r.require,(function(t){t in d||(u[t]=!0,e(t))}))}));for(var p,f=r(l),h=u;o(h);){for(var m in p={},h){var g=l[m];t(g&&g.modify,(function(e){e in d&&(p[e]=!0)}))}for(var b in d)if(!(b in u))for(var v in f(b))if(v in u){p[b]=!0;break}for(var y in h=p)u[y]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,o){var a=o?o.series:void 0,i=o?o.parallel:e,s={},l={};function c(e){if(e in s)return s[e];l[e]=!0;var o,u=[];for(var d in t(e))d in n&&u.push(d);if(0===u.length)o=r(e);else{var p=i(u.map((function(e){var t=c(e);return delete l[e],t})));a?o=a(p,(function(){return r(e)})):r(e)}return s[e]=o}for(var u in n)c(u);var d=[];for(var p in l)d.push(s[p]);return i(d)}(f,u,t,n)}};return w}}();e.exports=t},6186:(e,t,n)=>{"use strict";var r=n(2985);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,a,i){if(i!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:o};return n.PropTypes=n,n}},2736:(e,t,n)=>{e.exports=n(6186)()},2985:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},1929:(e,t,n)=>{"use strict";var r=n(9474),o=n(2614);function a(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var i=new Set,s={};function l(e,t){c(e,t),c(e+"Capture",t)}function c(e,t){for(s[e]=t,e=0;e<t.length;e++)i.add(t[e])}var u=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),d=Object.prototype.hasOwnProperty,p=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,f={},h={};function m(e,t,n,r,o,a,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=a,this.removeEmptyString=i}var g={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){g[e]=new m(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];g[t]=new m(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){g[e]=new m(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){g[e]=new m(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){g[e]=new m(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){g[e]=new m(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){g[e]=new m(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){g[e]=new m(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){g[e]=new m(e,5,!1,e.toLowerCase(),null,!1,!1)}));var b=/[\-:]([a-z])/g;function v(e){return e[1].toUpperCase()}function y(e,t,n,r){var o=g.hasOwnProperty(t)?g[t]:null;(null!==o?0!==o.type:r||!(2<t.length)||"o"!==t[0]&&"O"!==t[0]||"n"!==t[1]&&"N"!==t[1])&&(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,o,r)&&(n=null),r||null===o?function(e){return!!d.call(h,e)||!d.call(f,e)&&(p.test(e)?h[e]=!0:(f[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):o.mustUseProperty?e[o.propertyName]=null===n?3!==o.type&&"":n:(t=o.attributeName,r=o.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(o=o.type)||4===o&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(b,v);g[t]=new m(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(b,v);g[t]=new m(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(b,v);g[t]=new m(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){g[e]=new m(e,1,!1,e.toLowerCase(),null,!1,!1)})),g.xlinkHref=new m("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){g[e]=new m(e,1,!1,e.toLowerCase(),null,!0,!0)}));var w=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,k=Symbol.for("react.element"),x=Symbol.for("react.portal"),S=Symbol.for("react.fragment"),_=Symbol.for("react.strict_mode"),C=Symbol.for("react.profiler"),E=Symbol.for("react.provider"),A=Symbol.for("react.context"),L=Symbol.for("react.forward_ref"),T=Symbol.for("react.suspense"),j=Symbol.for("react.suspense_list"),R=Symbol.for("react.memo"),N=Symbol.for("react.lazy");Symbol.for("react.scope"),Symbol.for("react.debug_trace_mode");var O=Symbol.for("react.offscreen");Symbol.for("react.legacy_hidden"),Symbol.for("react.cache"),Symbol.for("react.tracing_marker");var P=Symbol.iterator;function D(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=P&&e[P]||e["@@iterator"])?e:null}var M,I=Object.assign;function F(e){if(void 0===M)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);M=t&&t[1]||""}return"\n"+M+e}var B=!1;function z(e,t){if(!e||B)return"";B=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(c){var r=c}Reflect.construct(e,[],t)}else{try{t.call()}catch(c){r=c}e.call(t.prototype)}else{try{throw Error()}catch(c){r=c}e()}}catch(c){if(c&&r&&"string"==typeof c.stack){for(var o=c.stack.split("\n"),a=r.stack.split("\n"),i=o.length-1,s=a.length-1;1<=i&&0<=s&&o[i]!==a[s];)s--;for(;1<=i&&0<=s;i--,s--)if(o[i]!==a[s]){if(1!==i||1!==s)do{if(i--,0>--s||o[i]!==a[s]){var l="\n"+o[i].replace(" at new "," at ");return e.displayName&&l.includes("<anonymous>")&&(l=l.replace("<anonymous>",e.displayName)),l}}while(1<=i&&0<=s);break}}}finally{B=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?F(e):""}function U(e){switch(e.tag){case 5:return F(e.type);case 16:return F("Lazy");case 13:return F("Suspense");case 19:return F("SuspenseList");case 0:case 2:case 15:return e=z(e.type,!1);case 11:return e=z(e.type.render,!1);case 1:return e=z(e.type,!0);default:return""}}function V(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case S:return"Fragment";case x:return"Portal";case C:return"Profiler";case _:return"StrictMode";case T:return"Suspense";case j:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case A:return(e.displayName||"Context")+".Consumer";case E:return(e._context.displayName||"Context")+".Provider";case L:var t=e.render;return(e=e.displayName)||(e=""!==(e=t.displayName||t.name||"")?"ForwardRef("+e+")":"ForwardRef"),e;case R:return null!==(t=e.displayName||null)?t:V(e.type)||"Memo";case N:t=e._payload,e=e._init;try{return V(e(t))}catch(n){}}return null}function q(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=(e=t.render).displayName||e.name||"",t.displayName||(""!==e?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return V(t);case 8:return t===_?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if("function"==typeof t)return t.displayName||t.name||null;if("string"==typeof t)return t}return null}function W(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":case"object":return e;default:return""}}function $(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function G(e){e._valueTracker||(e._valueTracker=function(e){var t=$(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var o=n.get,a=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(e){r=""+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function H(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=$(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function Z(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function Y(e,t){var n=t.checked;return I({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function X(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=W(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function K(e,t){null!=(t=t.checked)&&y(e,"checked",t,!1)}function J(e,t){K(e,t);var n=W(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?ee(e,t.type,n):t.hasOwnProperty("defaultValue")&&ee(e,t.type,W(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function Q(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function ee(e,t,n){"number"===t&&Z(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var te=Array.isArray;function ne(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o<n.length;o++)t["$"+n[o]]=!0;for(n=0;n<e.length;n++)o=t.hasOwnProperty("$"+e[n].value),e[n].selected!==o&&(e[n].selected=o),o&&r&&(e[n].defaultSelected=!0)}else{for(n=""+W(n),t=null,o=0;o<e.length;o++){if(e[o].value===n)return e[o].selected=!0,void(r&&(e[o].defaultSelected=!0));null!==t||e[o].disabled||(t=e[o])}null!==t&&(t.selected=!0)}}function re(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(a(91));return I({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function oe(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(a(92));if(te(n)){if(1<n.length)throw Error(a(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:W(n)}}function ae(e,t){var n=W(t.value),r=W(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ie(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}function se(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function le(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?se(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var ce,ue,de=(ue=function(e,t){if("http://www.w3.org/2000/svg"!==e.namespaceURI||"innerHTML"in e)e.innerHTML=t;else{for((ce=ce||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=ce.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return ue(e,t)}))}:ue);function pe(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var fe={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},he=["Webkit","ms","Moz","O"];function me(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||fe.hasOwnProperty(e)&&fe[e]?(""+t).trim():t+"px"}function ge(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),o=me(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}Object.keys(fe).forEach((function(e){he.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),fe[t]=fe[e]}))}));var be=I({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function ve(e,t){if(t){if(be[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(a(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(a(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(a(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(a(62))}}function ye(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var we=null;function ke(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var xe=null,Se=null,_e=null;function Ce(e){if(e=wo(e)){if("function"!=typeof xe)throw Error(a(280));var t=e.stateNode;t&&(t=xo(t),xe(e.stateNode,e.type,t))}}function Ee(e){Se?_e?_e.push(e):_e=[e]:Se=e}function Ae(){if(Se){var e=Se,t=_e;if(_e=Se=null,Ce(e),t)for(e=0;e<t.length;e++)Ce(t[e])}}function Le(e,t){return e(t)}function Te(){}var je=!1;function Re(e,t,n){if(je)return e(t,n);je=!0;try{return Le(e,t,n)}finally{je=!1,(null!==Se||null!==_e)&&(Te(),Ae())}}function Ne(e,t){var n=e.stateNode;if(null===n)return null;var r=xo(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(a(231,t,typeof n));return n}var Oe=!1;if(u)try{var Pe={};Object.defineProperty(Pe,"passive",{get:function(){Oe=!0}}),window.addEventListener("test",Pe,Pe),window.removeEventListener("test",Pe,Pe)}catch(ue){Oe=!1}function De(e,t,n,r,o,a,i,s,l){var c=Array.prototype.slice.call(arguments,3);try{t.apply(n,c)}catch(u){this.onError(u)}}var Me=!1,Ie=null,Fe=!1,Be=null,ze={onError:function(e){Me=!0,Ie=e}};function Ue(e,t,n,r,o,a,i,s,l){Me=!1,Ie=null,De.apply(ze,arguments)}function Ve(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(4098&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function qe(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function We(e){if(Ve(e)!==e)throw Error(a(188))}function $e(e){return null!==(e=function(e){var t=e.alternate;if(!t){if(null===(t=Ve(e)))throw Error(a(188));return t!==e?null:e}for(var n=e,r=t;;){var o=n.return;if(null===o)break;var i=o.alternate;if(null===i){if(null!==(r=o.return)){n=r;continue}break}if(o.child===i.child){for(i=o.child;i;){if(i===n)return We(o),e;if(i===r)return We(o),t;i=i.sibling}throw Error(a(188))}if(n.return!==r.return)n=o,r=i;else{for(var s=!1,l=o.child;l;){if(l===n){s=!0,n=o,r=i;break}if(l===r){s=!0,r=o,n=i;break}l=l.sibling}if(!s){for(l=i.child;l;){if(l===n){s=!0,n=i,r=o;break}if(l===r){s=!0,r=i,n=o;break}l=l.sibling}if(!s)throw Error(a(189))}}if(n.alternate!==r)throw Error(a(190))}if(3!==n.tag)throw Error(a(188));return n.stateNode.current===n?e:t}(e))?Ge(e):null}function Ge(e){if(5===e.tag||6===e.tag)return e;for(e=e.child;null!==e;){var t=Ge(e);if(null!==t)return t;e=e.sibling}return null}var He=o.unstable_scheduleCallback,Ze=o.unstable_cancelCallback,Ye=o.unstable_shouldYield,Xe=o.unstable_requestPaint,Ke=o.unstable_now,Je=o.unstable_getCurrentPriorityLevel,Qe=o.unstable_ImmediatePriority,et=o.unstable_UserBlockingPriority,tt=o.unstable_NormalPriority,nt=o.unstable_LowPriority,rt=o.unstable_IdlePriority,ot=null,at=null;var it=Math.clz32?Math.clz32:function(e){return e>>>=0,0===e?32:31-(st(e)/lt|0)|0},st=Math.log,lt=Math.LN2;var ct=64,ut=4194304;function dt(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return 4194240&e;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return 130023424&e;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function pt(e,t){var n=e.pendingLanes;if(0===n)return 0;var r=0,o=e.suspendedLanes,a=e.pingedLanes,i=268435455&n;if(0!==i){var s=i&~o;0!==s?r=dt(s):0!==(a&=i)&&(r=dt(a))}else 0!==(i=n&~o)?r=dt(i):0!==a&&(r=dt(a));if(0===r)return 0;if(0!==t&&t!==r&&0==(t&o)&&((o=r&-r)>=(a=t&-t)||16===o&&0!=(4194240&a)))return t;if(0!=(4&r)&&(r|=16&n),0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)o=1<<(n=31-it(t)),r|=e[n],t&=~o;return r}function ft(e,t){switch(e){case 1:case 2:case 4:return t+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;default:return-1}}function ht(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function mt(){var e=ct;return 0==(4194240&(ct<<=1))&&(ct=64),e}function gt(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function bt(e,t,n){e.pendingLanes|=t,536870912!==t&&(e.suspendedLanes=0,e.pingedLanes=0),(e=e.eventTimes)[t=31-it(t)]=n}function vt(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-it(n),o=1<<r;o&t|e[r]&t&&(e[r]|=t),n&=~o}}var yt=0;function wt(e){return 1<(e&=-e)?4<e?0!=(268435455&e)?16:536870912:4:1}var kt,xt,St,_t,Ct,Et=!1,At=[],Lt=null,Tt=null,jt=null,Rt=new Map,Nt=new Map,Ot=[],Pt="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function Dt(e,t){switch(e){case"focusin":case"focusout":Lt=null;break;case"dragenter":case"dragleave":Tt=null;break;case"mouseover":case"mouseout":jt=null;break;case"pointerover":case"pointerout":Rt.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Nt.delete(t.pointerId)}}function Mt(e,t,n,r,o,a){return null===e||e.nativeEvent!==a?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:a,targetContainers:[o]},null!==t&&(null!==(t=wo(t))&&xt(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==o&&-1===t.indexOf(o)&&t.push(o),e)}function It(e){var t=yo(e.target);if(null!==t){var n=Ve(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=qe(n)))return e.blockedOn=t,void Ct(e.priority,(function(){St(n)}))}else if(3===t&&n.stateNode.current.memoizedState.isDehydrated)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function Ft(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Yt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=wo(n))&&xt(t),e.blockedOn=n,!1;var r=new(n=e.nativeEvent).constructor(n.type,n);we=r,n.target.dispatchEvent(r),we=null,t.shift()}return!0}function Bt(e,t,n){Ft(e)&&n.delete(t)}function zt(){Et=!1,null!==Lt&&Ft(Lt)&&(Lt=null),null!==Tt&&Ft(Tt)&&(Tt=null),null!==jt&&Ft(jt)&&(jt=null),Rt.forEach(Bt),Nt.forEach(Bt)}function Ut(e,t){e.blockedOn===t&&(e.blockedOn=null,Et||(Et=!0,o.unstable_scheduleCallback(o.unstable_NormalPriority,zt)))}function Vt(e){function t(t){return Ut(t,e)}if(0<At.length){Ut(At[0],e);for(var n=1;n<At.length;n++){var r=At[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==Lt&&Ut(Lt,e),null!==Tt&&Ut(Tt,e),null!==jt&&Ut(jt,e),Rt.forEach(t),Nt.forEach(t),n=0;n<Ot.length;n++)(r=Ot[n]).blockedOn===e&&(r.blockedOn=null);for(;0<Ot.length&&null===(n=Ot[0]).blockedOn;)It(n),null===n.blockedOn&&Ot.shift()}var qt=w.ReactCurrentBatchConfig,Wt=!0;function $t(e,t,n,r){var o=yt,a=qt.transition;qt.transition=null;try{yt=1,Ht(e,t,n,r)}finally{yt=o,qt.transition=a}}function Gt(e,t,n,r){var o=yt,a=qt.transition;qt.transition=null;try{yt=4,Ht(e,t,n,r)}finally{yt=o,qt.transition=a}}function Ht(e,t,n,r){if(Wt){var o=Yt(e,t,n,r);if(null===o)Wr(e,t,r,Zt,n),Dt(e,r);else if(function(e,t,n,r,o){switch(t){case"focusin":return Lt=Mt(Lt,e,t,n,r,o),!0;case"dragenter":return Tt=Mt(Tt,e,t,n,r,o),!0;case"mouseover":return jt=Mt(jt,e,t,n,r,o),!0;case"pointerover":var a=o.pointerId;return Rt.set(a,Mt(Rt.get(a)||null,e,t,n,r,o)),!0;case"gotpointercapture":return a=o.pointerId,Nt.set(a,Mt(Nt.get(a)||null,e,t,n,r,o)),!0}return!1}(o,e,t,n,r))r.stopPropagation();else if(Dt(e,r),4&t&&-1<Pt.indexOf(e)){for(;null!==o;){var a=wo(o);if(null!==a&&kt(a),null===(a=Yt(e,t,n,r))&&Wr(e,t,r,Zt,n),a===o)break;o=a}null!==o&&r.stopPropagation()}else Wr(e,t,r,null,n)}}var Zt=null;function Yt(e,t,n,r){if(Zt=null,null!==(e=yo(e=ke(r))))if(null===(t=Ve(e)))e=null;else if(13===(n=t.tag)){if(null!==(e=qe(t)))return e;e=null}else if(3===n){if(t.stateNode.current.memoizedState.isDehydrated)return 3===t.tag?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return Zt=e,null}function Xt(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(Je()){case Qe:return 1;case et:return 4;case tt:case nt:return 16;case rt:return 536870912;default:return 16}default:return 16}}var Kt=null,Jt=null,Qt=null;function en(){if(Qt)return Qt;var e,t,n=Jt,r=n.length,o="value"in Kt?Kt.value:Kt.textContent,a=o.length;for(e=0;e<r&&n[e]===o[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===o[a-t];t++);return Qt=o.slice(e,1<t?1-t:void 0)}function tn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function nn(){return!0}function rn(){return!1}function on(e){function t(t,n,r,o,a){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=o,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(o):o[i]);return this.isDefaultPrevented=(null!=o.defaultPrevented?o.defaultPrevented:!1===o.returnValue)?nn:rn,this.isPropagationStopped=rn,this}return I(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=nn)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=nn)},persist:function(){},isPersistent:nn}),t}var an,sn,ln,cn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},un=on(cn),dn=I({},cn,{view:0,detail:0}),pn=on(dn),fn=I({},dn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Cn,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==ln&&(ln&&"mousemove"===e.type?(an=e.screenX-ln.screenX,sn=e.screenY-ln.screenY):sn=an=0,ln=e),an)},movementY:function(e){return"movementY"in e?e.movementY:sn}}),hn=on(fn),mn=on(I({},fn,{dataTransfer:0})),gn=on(I({},dn,{relatedTarget:0})),bn=on(I({},cn,{animationName:0,elapsedTime:0,pseudoElement:0})),vn=I({},cn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),yn=on(vn),wn=on(I({},cn,{data:0})),kn={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},xn={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Sn={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function _n(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=Sn[e])&&!!t[e]}function Cn(){return _n}var En=I({},dn,{key:function(e){if(e.key){var t=kn[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=tn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?xn[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Cn,charCode:function(e){return"keypress"===e.type?tn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?tn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),An=on(En),Ln=on(I({},fn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Tn=on(I({},dn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Cn})),jn=on(I({},cn,{propertyName:0,elapsedTime:0,pseudoElement:0})),Rn=I({},fn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Nn=on(Rn),On=[9,13,27,32],Pn=u&&"CompositionEvent"in window,Dn=null;u&&"documentMode"in document&&(Dn=document.documentMode);var Mn=u&&"TextEvent"in window&&!Dn,In=u&&(!Pn||Dn&&8<Dn&&11>=Dn),Fn=String.fromCharCode(32),Bn=!1;function zn(e,t){switch(e){case"keyup":return-1!==On.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Un(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Vn=!1;var qn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Wn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!qn[e.type]:"textarea"===t}function $n(e,t,n,r){Ee(r),0<(t=Gr(t,"onChange")).length&&(n=new un("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Gn=null,Hn=null;function Zn(e){Fr(e,0)}function Yn(e){if(H(ko(e)))return e}function Xn(e,t){if("change"===e)return t}var Kn=!1;if(u){var Jn;if(u){var Qn="oninput"in document;if(!Qn){var er=document.createElement("div");er.setAttribute("oninput","return;"),Qn="function"==typeof er.oninput}Jn=Qn}else Jn=!1;Kn=Jn&&(!document.documentMode||9<document.documentMode)}function tr(){Gn&&(Gn.detachEvent("onpropertychange",nr),Hn=Gn=null)}function nr(e){if("value"===e.propertyName&&Yn(Hn)){var t=[];$n(t,Hn,e,ke(e)),Re(Zn,t)}}function rr(e,t,n){"focusin"===e?(tr(),Hn=n,(Gn=t).attachEvent("onpropertychange",nr)):"focusout"===e&&tr()}function or(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Yn(Hn)}function ar(e,t){if("click"===e)return Yn(t)}function ir(e,t){if("input"===e||"change"===e)return Yn(t)}var sr="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t};function lr(e,t){if(sr(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var o=n[r];if(!d.call(t,o)||!sr(e[o],t[o]))return!1}return!0}function cr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function ur(e,t){var n,r=cr(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=cr(r)}}function dr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?dr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function pr(){for(var e=window,t=Z();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=Z((e=t.contentWindow).document)}return t}function fr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}function hr(e){var t=pr(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&dr(n.ownerDocument.documentElement,n)){if(null!==r&&fr(n))if(t=r.start,void 0===(e=r.end)&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if((e=(t=n.ownerDocument||document)&&t.defaultView||window).getSelection){e=e.getSelection();var o=n.textContent.length,a=Math.min(r.start,o);r=void 0===r.end?a:Math.min(r.end,o),!e.extend&&a>r&&(o=r,r=a,a=o),o=ur(n,a);var i=ur(n,r);o&&i&&(1!==e.rangeCount||e.anchorNode!==o.node||e.anchorOffset!==o.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&((t=t.createRange()).setStart(o.node,o.offset),e.removeAllRanges(),a>r?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),e.addRange(t)))}for(t=[],e=n;e=e.parentNode;)1===e.nodeType&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for("function"==typeof n.focus&&n.focus(),n=0;n<t.length;n++)(e=t[n]).element.scrollLeft=e.left,e.element.scrollTop=e.top}}var mr=u&&"documentMode"in document&&11>=document.documentMode,gr=null,br=null,vr=null,yr=!1;function wr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;yr||null==gr||gr!==Z(r)||("selectionStart"in(r=gr)&&fr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},vr&&lr(vr,r)||(vr=r,0<(r=Gr(br,"onSelect")).length&&(t=new un("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=gr)))}function kr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var xr={animationend:kr("Animation","AnimationEnd"),animationiteration:kr("Animation","AnimationIteration"),animationstart:kr("Animation","AnimationStart"),transitionend:kr("Transition","TransitionEnd")},Sr={},_r={};function Cr(e){if(Sr[e])return Sr[e];if(!xr[e])return e;var t,n=xr[e];for(t in n)if(n.hasOwnProperty(t)&&t in _r)return Sr[e]=n[t];return e}u&&(_r=document.createElement("div").style,"AnimationEvent"in window||(delete xr.animationend.animation,delete xr.animationiteration.animation,delete xr.animationstart.animation),"TransitionEvent"in window||delete xr.transitionend.transition);var Er=Cr("animationend"),Ar=Cr("animationiteration"),Lr=Cr("animationstart"),Tr=Cr("transitionend"),jr=new Map,Rr="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Nr(e,t){jr.set(e,t),l(t,[e])}for(var Or=0;Or<Rr.length;Or++){var Pr=Rr[Or];Nr(Pr.toLowerCase(),"on"+(Pr[0].toUpperCase()+Pr.slice(1)))}Nr(Er,"onAnimationEnd"),Nr(Ar,"onAnimationIteration"),Nr(Lr,"onAnimationStart"),Nr("dblclick","onDoubleClick"),Nr("focusin","onFocus"),Nr("focusout","onBlur"),Nr(Tr,"onTransitionEnd"),c("onMouseEnter",["mouseout","mouseover"]),c("onMouseLeave",["mouseout","mouseover"]),c("onPointerEnter",["pointerout","pointerover"]),c("onPointerLeave",["pointerout","pointerover"]),l("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),l("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),l("onBeforeInput",["compositionend","keypress","textInput","paste"]),l("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),l("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),l("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Dr="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Mr=new Set("cancel close invalid load scroll toggle".split(" ").concat(Dr));function Ir(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,o,i,s,l,c){if(Ue.apply(this,arguments),Me){if(!Me)throw Error(a(198));var u=Ie;Me=!1,Ie=null,Fe||(Fe=!0,Be=u)}}(r,t,void 0,e),e.currentTarget=null}function Fr(e,t){t=0!=(4&t);for(var n=0;n<e.length;n++){var r=e[n],o=r.event;r=r.listeners;e:{var a=void 0;if(t)for(var i=r.length-1;0<=i;i--){var s=r[i],l=s.instance,c=s.currentTarget;if(s=s.listener,l!==a&&o.isPropagationStopped())break e;Ir(o,s,c),a=l}else for(i=0;i<r.length;i++){if(l=(s=r[i]).instance,c=s.currentTarget,s=s.listener,l!==a&&o.isPropagationStopped())break e;Ir(o,s,c),a=l}}}if(Fe)throw e=Be,Fe=!1,Be=null,e}function Br(e,t){var n=t[go];void 0===n&&(n=t[go]=new Set);var r=e+"__bubble";n.has(r)||(qr(t,e,2,!1),n.add(r))}function zr(e,t,n){var r=0;t&&(r|=4),qr(n,e,r,t)}var Ur="_reactListening"+Math.random().toString(36).slice(2);function Vr(e){if(!e[Ur]){e[Ur]=!0,i.forEach((function(t){"selectionchange"!==t&&(Mr.has(t)||zr(t,!1,e),zr(t,!0,e))}));var t=9===e.nodeType?e:e.ownerDocument;null===t||t[Ur]||(t[Ur]=!0,zr("selectionchange",!1,t))}}function qr(e,t,n,r){switch(Xt(t)){case 1:var o=$t;break;case 4:o=Gt;break;default:o=Ht}n=o.bind(null,t,n,e),o=void 0,!Oe||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(o=!0),r?void 0!==o?e.addEventListener(t,n,{capture:!0,passive:o}):e.addEventListener(t,n,!0):void 0!==o?e.addEventListener(t,n,{passive:o}):e.addEventListener(t,n,!1)}function Wr(e,t,n,r,o){var a=r;if(0==(1&t)&&0==(2&t)&&null!==r)e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var s=r.stateNode.containerInfo;if(s===o||8===s.nodeType&&s.parentNode===o)break;if(4===i)for(i=r.return;null!==i;){var l=i.tag;if((3===l||4===l)&&((l=i.stateNode.containerInfo)===o||8===l.nodeType&&l.parentNode===o))return;i=i.return}for(;null!==s;){if(null===(i=yo(s)))return;if(5===(l=i.tag)||6===l){r=a=i;continue e}s=s.parentNode}}r=r.return}Re((function(){var r=a,o=ke(n),i=[];e:{var s=jr.get(e);if(void 0!==s){var l=un,c=e;switch(e){case"keypress":if(0===tn(n))break e;case"keydown":case"keyup":l=An;break;case"focusin":c="focus",l=gn;break;case"focusout":c="blur",l=gn;break;case"beforeblur":case"afterblur":l=gn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":l=hn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":l=mn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":l=Tn;break;case Er:case Ar:case Lr:l=bn;break;case Tr:l=jn;break;case"scroll":l=pn;break;case"wheel":l=Nn;break;case"copy":case"cut":case"paste":l=yn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":l=Ln}var u=0!=(4&t),d=!u&&"scroll"===e,p=u?null!==s?s+"Capture":null:s;u=[];for(var f,h=r;null!==h;){var m=(f=h).stateNode;if(5===f.tag&&null!==m&&(f=m,null!==p&&(null!=(m=Ne(h,p))&&u.push($r(h,m,f)))),d)break;h=h.return}0<u.length&&(s=new l(s,c,null,n,o),i.push({event:s,listeners:u}))}}if(0==(7&t)){if(l="mouseout"===e||"pointerout"===e,(!(s="mouseover"===e||"pointerover"===e)||n===we||!(c=n.relatedTarget||n.fromElement)||!yo(c)&&!c[mo])&&(l||s)&&(s=o.window===o?o:(s=o.ownerDocument)?s.defaultView||s.parentWindow:window,l?(l=r,null!==(c=(c=n.relatedTarget||n.toElement)?yo(c):null)&&(c!==(d=Ve(c))||5!==c.tag&&6!==c.tag)&&(c=null)):(l=null,c=r),l!==c)){if(u=hn,m="onMouseLeave",p="onMouseEnter",h="mouse","pointerout"!==e&&"pointerover"!==e||(u=Ln,m="onPointerLeave",p="onPointerEnter",h="pointer"),d=null==l?s:ko(l),f=null==c?s:ko(c),(s=new u(m,h+"leave",l,n,o)).target=d,s.relatedTarget=f,m=null,yo(o)===r&&((u=new u(p,h+"enter",c,n,o)).target=f,u.relatedTarget=d,m=u),d=m,l&&c)e:{for(p=c,h=0,f=u=l;f;f=Hr(f))h++;for(f=0,m=p;m;m=Hr(m))f++;for(;0<h-f;)u=Hr(u),h--;for(;0<f-h;)p=Hr(p),f--;for(;h--;){if(u===p||null!==p&&u===p.alternate)break e;u=Hr(u),p=Hr(p)}u=null}else u=null;null!==l&&Zr(i,s,l,u,!1),null!==c&&null!==d&&Zr(i,d,c,u,!0)}if("select"===(l=(s=r?ko(r):window).nodeName&&s.nodeName.toLowerCase())||"input"===l&&"file"===s.type)var g=Xn;else if(Wn(s))if(Kn)g=ir;else{g=or;var b=rr}else(l=s.nodeName)&&"input"===l.toLowerCase()&&("checkbox"===s.type||"radio"===s.type)&&(g=ar);switch(g&&(g=g(e,r))?$n(i,g,n,o):(b&&b(e,s,r),"focusout"===e&&(b=s._wrapperState)&&b.controlled&&"number"===s.type&&ee(s,"number",s.value)),b=r?ko(r):window,e){case"focusin":(Wn(b)||"true"===b.contentEditable)&&(gr=b,br=r,vr=null);break;case"focusout":vr=br=gr=null;break;case"mousedown":yr=!0;break;case"contextmenu":case"mouseup":case"dragend":yr=!1,wr(i,n,o);break;case"selectionchange":if(mr)break;case"keydown":case"keyup":wr(i,n,o)}var v;if(Pn)e:{switch(e){case"compositionstart":var y="onCompositionStart";break e;case"compositionend":y="onCompositionEnd";break e;case"compositionupdate":y="onCompositionUpdate";break e}y=void 0}else Vn?zn(e,n)&&(y="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(y="onCompositionStart");y&&(In&&"ko"!==n.locale&&(Vn||"onCompositionStart"!==y?"onCompositionEnd"===y&&Vn&&(v=en()):(Jt="value"in(Kt=o)?Kt.value:Kt.textContent,Vn=!0)),0<(b=Gr(r,y)).length&&(y=new wn(y,e,null,n,o),i.push({event:y,listeners:b}),v?y.data=v:null!==(v=Un(n))&&(y.data=v))),(v=Mn?function(e,t){switch(e){case"compositionend":return Un(t);case"keypress":return 32!==t.which?null:(Bn=!0,Fn);case"textInput":return(e=t.data)===Fn&&Bn?null:e;default:return null}}(e,n):function(e,t){if(Vn)return"compositionend"===e||!Pn&&zn(e,t)?(e=en(),Qt=Jt=Kt=null,Vn=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return In&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(r=Gr(r,"onBeforeInput")).length&&(o=new wn("onBeforeInput","beforeinput",null,n,o),i.push({event:o,listeners:r}),o.data=v))}Fr(i,t)}))}function $r(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Gr(e,t){for(var n=t+"Capture",r=[];null!==e;){var o=e,a=o.stateNode;5===o.tag&&null!==a&&(o=a,null!=(a=Ne(e,n))&&r.unshift($r(e,a,o)),null!=(a=Ne(e,t))&&r.push($r(e,a,o))),e=e.return}return r}function Hr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Zr(e,t,n,r,o){for(var a=t._reactName,i=[];null!==n&&n!==r;){var s=n,l=s.alternate,c=s.stateNode;if(null!==l&&l===r)break;5===s.tag&&null!==c&&(s=c,o?null!=(l=Ne(n,a))&&i.unshift($r(n,l,s)):o||null!=(l=Ne(n,a))&&i.push($r(n,l,s))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}var Yr=/\r\n?/g,Xr=/\u0000|\uFFFD/g;function Kr(e){return("string"==typeof e?e:""+e).replace(Yr,"\n").replace(Xr,"")}function Jr(e,t,n){if(t=Kr(t),Kr(e)!==t&&n)throw Error(a(425))}function Qr(){}var eo=null,to=null;function no(e,t){return"textarea"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var ro="function"==typeof setTimeout?setTimeout:void 0,oo="function"==typeof clearTimeout?clearTimeout:void 0,ao="function"==typeof Promise?Promise:void 0,io="function"==typeof queueMicrotask?queueMicrotask:void 0!==ao?function(e){return ao.resolve(null).then(e).catch(so)}:ro;function so(e){setTimeout((function(){throw e}))}function lo(e,t){var n=t,r=0;do{var o=n.nextSibling;if(e.removeChild(n),o&&8===o.nodeType)if("/$"===(n=o.data)){if(0===r)return e.removeChild(o),void Vt(t);r--}else"$"!==n&&"$?"!==n&&"$!"!==n||r++;n=o}while(n);Vt(t)}function co(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break;if(8===t){if("$"===(t=e.data)||"$!"===t||"$?"===t)break;if("/$"===t)return null}}return e}function uo(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var po=Math.random().toString(36).slice(2),fo="__reactFiber$"+po,ho="__reactProps$"+po,mo="__reactContainer$"+po,go="__reactEvents$"+po,bo="__reactListeners$"+po,vo="__reactHandles$"+po;function yo(e){var t=e[fo];if(t)return t;for(var n=e.parentNode;n;){if(t=n[mo]||n[fo]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=uo(e);null!==e;){if(n=e[fo])return n;e=uo(e)}return t}n=(e=n).parentNode}return null}function wo(e){return!(e=e[fo]||e[mo])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function ko(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(a(33))}function xo(e){return e[ho]||null}var So=[],_o=-1;function Co(e){return{current:e}}function Eo(e){0>_o||(e.current=So[_o],So[_o]=null,_o--)}function Ao(e,t){_o++,So[_o]=e.current,e.current=t}var Lo={},To=Co(Lo),jo=Co(!1),Ro=Lo;function No(e,t){var n=e.type.contextTypes;if(!n)return Lo;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o,a={};for(o in n)a[o]=t[o];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=a),a}function Oo(e){return null!=(e=e.childContextTypes)}function Po(){Eo(jo),Eo(To)}function Do(e,t,n){if(To.current!==Lo)throw Error(a(168));Ao(To,t),Ao(jo,n)}function Mo(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var o in r=r.getChildContext())if(!(o in t))throw Error(a(108,q(e)||"Unknown",o));return I({},n,r)}function Io(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Lo,Ro=To.current,Ao(To,e),Ao(jo,jo.current),!0}function Fo(e,t,n){var r=e.stateNode;if(!r)throw Error(a(169));n?(e=Mo(e,t,Ro),r.__reactInternalMemoizedMergedChildContext=e,Eo(jo),Eo(To),Ao(To,e)):Eo(jo),Ao(jo,n)}var Bo=null,zo=!1,Uo=!1;function Vo(e){null===Bo?Bo=[e]:Bo.push(e)}function qo(){if(!Uo&&null!==Bo){Uo=!0;var e=0,t=yt;try{var n=Bo;for(yt=1;e<n.length;e++){var r=n[e];do{r=r(!0)}while(null!==r)}Bo=null,zo=!1}catch(o){throw null!==Bo&&(Bo=Bo.slice(e+1)),He(Qe,qo),o}finally{yt=t,Uo=!1}}return null}var Wo=[],$o=0,Go=null,Ho=0,Zo=[],Yo=0,Xo=null,Ko=1,Jo="";function Qo(e,t){Wo[$o++]=Ho,Wo[$o++]=Go,Go=e,Ho=t}function ea(e,t,n){Zo[Yo++]=Ko,Zo[Yo++]=Jo,Zo[Yo++]=Xo,Xo=e;var r=Ko;e=Jo;var o=32-it(r)-1;r&=~(1<<o),n+=1;var a=32-it(t)+o;if(30<a){var i=o-o%5;a=(r&(1<<i)-1).toString(32),r>>=i,o-=i,Ko=1<<32-it(t)+o|n<<o|r,Jo=a+e}else Ko=1<<a|n<<o|r,Jo=e}function ta(e){null!==e.return&&(Qo(e,1),ea(e,1,0))}function na(e){for(;e===Go;)Go=Wo[--$o],Wo[$o]=null,Ho=Wo[--$o],Wo[$o]=null;for(;e===Xo;)Xo=Zo[--Yo],Zo[Yo]=null,Jo=Zo[--Yo],Zo[Yo]=null,Ko=Zo[--Yo],Zo[Yo]=null}var ra=null,oa=null,aa=!1,ia=null;function sa(e,t){var n=Nc(5,null,null,0);n.elementType="DELETED",n.stateNode=t,n.return=e,null===(t=e.deletions)?(e.deletions=[n],e.flags|=16):t.push(n)}function la(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,ra=e,oa=co(t.firstChild),!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,ra=e,oa=null,!0);case 13:return null!==(t=8!==t.nodeType?null:t)&&(n=null!==Xo?{id:Ko,overflow:Jo}:null,e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},(n=Nc(18,null,null,0)).stateNode=t,n.return=e,e.child=n,ra=e,oa=null,!0);default:return!1}}function ca(e){return 0!=(1&e.mode)&&0==(128&e.flags)}function ua(e){if(aa){var t=oa;if(t){var n=t;if(!la(e,t)){if(ca(e))throw Error(a(418));t=co(n.nextSibling);var r=ra;t&&la(e,t)?sa(r,n):(e.flags=-4097&e.flags|2,aa=!1,ra=e)}}else{if(ca(e))throw Error(a(418));e.flags=-4097&e.flags|2,aa=!1,ra=e}}}function da(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;ra=e}function pa(e){if(e!==ra)return!1;if(!aa)return da(e),aa=!0,!1;var t;if((t=3!==e.tag)&&!(t=5!==e.tag)&&(t="head"!==(t=e.type)&&"body"!==t&&!no(e.type,e.memoizedProps)),t&&(t=oa)){if(ca(e))throw fa(),Error(a(418));for(;t;)sa(e,t),t=co(t.nextSibling)}if(da(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(a(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){oa=co(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}oa=null}}else oa=ra?co(e.stateNode.nextSibling):null;return!0}function fa(){for(var e=oa;e;)e=co(e.nextSibling)}function ha(){oa=ra=null,aa=!1}function ma(e){null===ia?ia=[e]:ia.push(e)}var ga=w.ReactCurrentBatchConfig;function ba(e,t){if(e&&e.defaultProps){for(var n in t=I({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var va=Co(null),ya=null,wa=null,ka=null;function xa(){ka=wa=ya=null}function Sa(e){var t=va.current;Eo(va),e._currentValue=t}function _a(e,t,n){for(;null!==e;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,null!==r&&(r.childLanes|=t)):null!==r&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function Ca(e,t){ya=e,ka=wa=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!=(e.lanes&t)&&(ws=!0),e.firstContext=null)}function Ea(e){var t=e._currentValue;if(ka!==e)if(e={context:e,memoizedValue:t,next:null},null===wa){if(null===ya)throw Error(a(308));wa=e,ya.dependencies={lanes:0,firstContext:e}}else wa=wa.next=e;return t}var Aa=null;function La(e){null===Aa?Aa=[e]:Aa.push(e)}function Ta(e,t,n,r){var o=t.interleaved;return null===o?(n.next=n,La(t)):(n.next=o.next,o.next=n),t.interleaved=n,ja(e,r)}function ja(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}var Ra=!1;function Na(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Oa(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Pa(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Da(e,t,n){var r=e.updateQueue;if(null===r)return null;if(r=r.shared,0!=(2&Tl)){var o=r.pending;return null===o?t.next=t:(t.next=o.next,o.next=t),r.pending=t,ja(e,n)}return null===(o=r.interleaved)?(t.next=t,La(r)):(t.next=o.next,o.next=t),r.interleaved=t,ja(e,n)}function Ma(e,t,n){if(null!==(t=t.updateQueue)&&(t=t.shared,0!=(4194240&n))){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,vt(e,n)}}function Ia(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var o=null,a=null;if(null!==(n=n.firstBaseUpdate)){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===a?o=a=i:a=a.next=i,n=n.next}while(null!==n);null===a?o=a=t:a=a.next=t}else o=a=t;return n={baseState:r.baseState,firstBaseUpdate:o,lastBaseUpdate:a,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Fa(e,t,n,r){var o=e.updateQueue;Ra=!1;var a=o.firstBaseUpdate,i=o.lastBaseUpdate,s=o.shared.pending;if(null!==s){o.shared.pending=null;var l=s,c=l.next;l.next=null,null===i?a=c:i.next=c,i=l;var u=e.alternate;null!==u&&((s=(u=u.updateQueue).lastBaseUpdate)!==i&&(null===s?u.firstBaseUpdate=c:s.next=c,u.lastBaseUpdate=l))}if(null!==a){var d=o.baseState;for(i=0,u=c=l=null,s=a;;){var p=s.lane,f=s.eventTime;if((r&p)===p){null!==u&&(u=u.next={eventTime:f,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var h=e,m=s;switch(p=t,f=n,m.tag){case 1:if("function"==typeof(h=m.payload)){d=h.call(f,d,p);break e}d=h;break e;case 3:h.flags=-65537&h.flags|128;case 0:if(null==(p="function"==typeof(h=m.payload)?h.call(f,d,p):h))break e;d=I({},d,p);break e;case 2:Ra=!0}}null!==s.callback&&0!==s.lane&&(e.flags|=64,null===(p=o.effects)?o.effects=[s]:p.push(s))}else f={eventTime:f,lane:p,tag:s.tag,payload:s.payload,callback:s.callback,next:null},null===u?(c=u=f,l=d):u=u.next=f,i|=p;if(null===(s=s.next)){if(null===(s=o.shared.pending))break;s=(p=s).next,p.next=null,o.lastBaseUpdate=p,o.shared.pending=null}}if(null===u&&(l=d),o.baseState=l,o.firstBaseUpdate=c,o.lastBaseUpdate=u,null!==(t=o.shared.interleaved)){o=t;do{i|=o.lane,o=o.next}while(o!==t)}else null===a&&(o.shared.lanes=0);Il|=i,e.lanes=i,e.memoizedState=d}}function Ba(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],o=r.callback;if(null!==o){if(r.callback=null,r=n,"function"!=typeof o)throw Error(a(191,o));o.call(r)}}}var za=(new r.Component).refs;function Ua(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:I({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var Va={isMounted:function(e){return!!(e=e._reactInternals)&&Ve(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=tc(),o=nc(e),a=Pa(r,o);a.payload=t,null!=n&&(a.callback=n),null!==(t=Da(e,a,o))&&(rc(t,e,o,r),Ma(t,e,o))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=tc(),o=nc(e),a=Pa(r,o);a.tag=1,a.payload=t,null!=n&&(a.callback=n),null!==(t=Da(e,a,o))&&(rc(t,e,o,r),Ma(t,e,o))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=tc(),r=nc(e),o=Pa(n,r);o.tag=2,null!=t&&(o.callback=t),null!==(t=Da(e,o,r))&&(rc(t,e,r,n),Ma(t,e,r))}};function qa(e,t,n,r,o,a,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,a,i):!t.prototype||!t.prototype.isPureReactComponent||(!lr(n,r)||!lr(o,a))}function Wa(e,t,n){var r=!1,o=Lo,a=t.contextType;return"object"==typeof a&&null!==a?a=Ea(a):(o=Oo(t)?Ro:To.current,a=(r=null!=(r=t.contextTypes))?No(e,o):Lo),t=new t(n,a),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=Va,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=o,e.__reactInternalMemoizedMaskedChildContext=a),t}function $a(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&Va.enqueueReplaceState(t,t.state,null)}function Ga(e,t,n,r){var o=e.stateNode;o.props=n,o.state=e.memoizedState,o.refs=za,Na(e);var a=t.contextType;"object"==typeof a&&null!==a?o.context=Ea(a):(a=Oo(t)?Ro:To.current,o.context=No(e,a)),o.state=e.memoizedState,"function"==typeof(a=t.getDerivedStateFromProps)&&(Ua(e,t,a,n),o.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof o.getSnapshotBeforeUpdate||"function"!=typeof o.UNSAFE_componentWillMount&&"function"!=typeof o.componentWillMount||(t=o.state,"function"==typeof o.componentWillMount&&o.componentWillMount(),"function"==typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount(),t!==o.state&&Va.enqueueReplaceState(o,o.state,null),Fa(e,n,o,r),o.state=e.memoizedState),"function"==typeof o.componentDidMount&&(e.flags|=4194308)}function Ha(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(a(309));var r=n.stateNode}if(!r)throw Error(a(147,e));var o=r,i=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===i?t.ref:(t=function(e){var t=o.refs;t===za&&(t=o.refs={}),null===e?delete t[i]:t[i]=e},t._stringRef=i,t)}if("string"!=typeof e)throw Error(a(284));if(!n._owner)throw Error(a(290,e))}return e}function Za(e,t){throw e=Object.prototype.toString.call(t),Error(a(31,"[object Object]"===e?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function Ya(e){return(0,e._init)(e._payload)}function Xa(e){function t(t,n){if(e){var r=t.deletions;null===r?(t.deletions=[n],t.flags|=16):r.push(n)}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function o(e,t){return(e=Pc(e,t)).index=0,e.sibling=null,e}function i(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags|=2,n):r:(t.flags|=2,n):(t.flags|=1048576,n)}function s(t){return e&&null===t.alternate&&(t.flags|=2),t}function l(e,t,n,r){return null===t||6!==t.tag?((t=Fc(n,e.mode,r)).return=e,t):((t=o(t,n)).return=e,t)}function c(e,t,n,r){var a=n.type;return a===S?d(e,t,n.props.children,r,n.key):null!==t&&(t.elementType===a||"object"==typeof a&&null!==a&&a.$$typeof===N&&Ya(a)===t.type)?((r=o(t,n.props)).ref=Ha(e,t,n),r.return=e,r):((r=Dc(n.type,n.key,n.props,null,e.mode,r)).ref=Ha(e,t,n),r.return=e,r)}function u(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Bc(n,e.mode,r)).return=e,t):((t=o(t,n.children||[])).return=e,t)}function d(e,t,n,r,a){return null===t||7!==t.tag?((t=Mc(n,e.mode,r,a)).return=e,t):((t=o(t,n)).return=e,t)}function p(e,t,n){if("string"==typeof t&&""!==t||"number"==typeof t)return(t=Fc(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case k:return(n=Dc(t.type,t.key,t.props,null,e.mode,n)).ref=Ha(e,null,t),n.return=e,n;case x:return(t=Bc(t,e.mode,n)).return=e,t;case N:return p(e,(0,t._init)(t._payload),n)}if(te(t)||D(t))return(t=Mc(t,e.mode,n,null)).return=e,t;Za(e,t)}return null}function f(e,t,n,r){var o=null!==t?t.key:null;if("string"==typeof n&&""!==n||"number"==typeof n)return null!==o?null:l(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case k:return n.key===o?c(e,t,n,r):null;case x:return n.key===o?u(e,t,n,r):null;case N:return f(e,t,(o=n._init)(n._payload),r)}if(te(n)||D(n))return null!==o?null:d(e,t,n,r,null);Za(e,n)}return null}function h(e,t,n,r,o){if("string"==typeof r&&""!==r||"number"==typeof r)return l(t,e=e.get(n)||null,""+r,o);if("object"==typeof r&&null!==r){switch(r.$$typeof){case k:return c(t,e=e.get(null===r.key?n:r.key)||null,r,o);case x:return u(t,e=e.get(null===r.key?n:r.key)||null,r,o);case N:return h(e,t,n,(0,r._init)(r._payload),o)}if(te(r)||D(r))return d(t,e=e.get(n)||null,r,o,null);Za(t,r)}return null}function m(o,a,s,l){for(var c=null,u=null,d=a,m=a=0,g=null;null!==d&&m<s.length;m++){d.index>m?(g=d,d=null):g=d.sibling;var b=f(o,d,s[m],l);if(null===b){null===d&&(d=g);break}e&&d&&null===b.alternate&&t(o,d),a=i(b,a,m),null===u?c=b:u.sibling=b,u=b,d=g}if(m===s.length)return n(o,d),aa&&Qo(o,m),c;if(null===d){for(;m<s.length;m++)null!==(d=p(o,s[m],l))&&(a=i(d,a,m),null===u?c=d:u.sibling=d,u=d);return aa&&Qo(o,m),c}for(d=r(o,d);m<s.length;m++)null!==(g=h(d,o,m,s[m],l))&&(e&&null!==g.alternate&&d.delete(null===g.key?m:g.key),a=i(g,a,m),null===u?c=g:u.sibling=g,u=g);return e&&d.forEach((function(e){return t(o,e)})),aa&&Qo(o,m),c}function g(o,s,l,c){var u=D(l);if("function"!=typeof u)throw Error(a(150));if(null==(l=u.call(l)))throw Error(a(151));for(var d=u=null,m=s,g=s=0,b=null,v=l.next();null!==m&&!v.done;g++,v=l.next()){m.index>g?(b=m,m=null):b=m.sibling;var y=f(o,m,v.value,c);if(null===y){null===m&&(m=b);break}e&&m&&null===y.alternate&&t(o,m),s=i(y,s,g),null===d?u=y:d.sibling=y,d=y,m=b}if(v.done)return n(o,m),aa&&Qo(o,g),u;if(null===m){for(;!v.done;g++,v=l.next())null!==(v=p(o,v.value,c))&&(s=i(v,s,g),null===d?u=v:d.sibling=v,d=v);return aa&&Qo(o,g),u}for(m=r(o,m);!v.done;g++,v=l.next())null!==(v=h(m,o,g,v.value,c))&&(e&&null!==v.alternate&&m.delete(null===v.key?g:v.key),s=i(v,s,g),null===d?u=v:d.sibling=v,d=v);return e&&m.forEach((function(e){return t(o,e)})),aa&&Qo(o,g),u}return function e(r,a,i,l){if("object"==typeof i&&null!==i&&i.type===S&&null===i.key&&(i=i.props.children),"object"==typeof i&&null!==i){switch(i.$$typeof){case k:e:{for(var c=i.key,u=a;null!==u;){if(u.key===c){if((c=i.type)===S){if(7===u.tag){n(r,u.sibling),(a=o(u,i.props.children)).return=r,r=a;break e}}else if(u.elementType===c||"object"==typeof c&&null!==c&&c.$$typeof===N&&Ya(c)===u.type){n(r,u.sibling),(a=o(u,i.props)).ref=Ha(r,u,i),a.return=r,r=a;break e}n(r,u);break}t(r,u),u=u.sibling}i.type===S?((a=Mc(i.props.children,r.mode,l,i.key)).return=r,r=a):((l=Dc(i.type,i.key,i.props,null,r.mode,l)).ref=Ha(r,a,i),l.return=r,r=l)}return s(r);case x:e:{for(u=i.key;null!==a;){if(a.key===u){if(4===a.tag&&a.stateNode.containerInfo===i.containerInfo&&a.stateNode.implementation===i.implementation){n(r,a.sibling),(a=o(a,i.children||[])).return=r,r=a;break e}n(r,a);break}t(r,a),a=a.sibling}(a=Bc(i,r.mode,l)).return=r,r=a}return s(r);case N:return e(r,a,(u=i._init)(i._payload),l)}if(te(i))return m(r,a,i,l);if(D(i))return g(r,a,i,l);Za(r,i)}return"string"==typeof i&&""!==i||"number"==typeof i?(i=""+i,null!==a&&6===a.tag?(n(r,a.sibling),(a=o(a,i)).return=r,r=a):(n(r,a),(a=Fc(i,r.mode,l)).return=r,r=a),s(r)):n(r,a)}}var Ka=Xa(!0),Ja=Xa(!1),Qa={},ei=Co(Qa),ti=Co(Qa),ni=Co(Qa);function ri(e){if(e===Qa)throw Error(a(174));return e}function oi(e,t){switch(Ao(ni,t),Ao(ti,e),Ao(ei,Qa),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:le(null,"");break;default:t=le(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}Eo(ei),Ao(ei,t)}function ai(){Eo(ei),Eo(ti),Eo(ni)}function ii(e){ri(ni.current);var t=ri(ei.current),n=le(t,e.type);t!==n&&(Ao(ti,e),Ao(ei,n))}function si(e){ti.current===e&&(Eo(ei),Eo(ti))}var li=Co(0);function ci(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(128&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var ui=[];function di(){for(var e=0;e<ui.length;e++)ui[e]._workInProgressVersionPrimary=null;ui.length=0}var pi=w.ReactCurrentDispatcher,fi=w.ReactCurrentBatchConfig,hi=0,mi=null,gi=null,bi=null,vi=!1,yi=!1,wi=0,ki=0;function xi(){throw Error(a(321))}function Si(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!sr(e[n],t[n]))return!1;return!0}function _i(e,t,n,r,o,i){if(hi=i,mi=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,pi.current=null===e||null===e.memoizedState?ss:ls,e=n(r,o),yi){i=0;do{if(yi=!1,wi=0,25<=i)throw Error(a(301));i+=1,bi=gi=null,t.updateQueue=null,pi.current=cs,e=n(r,o)}while(yi)}if(pi.current=is,t=null!==gi&&null!==gi.next,hi=0,bi=gi=mi=null,vi=!1,t)throw Error(a(300));return e}function Ci(){var e=0!==wi;return wi=0,e}function Ei(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===bi?mi.memoizedState=bi=e:bi=bi.next=e,bi}function Ai(){if(null===gi){var e=mi.alternate;e=null!==e?e.memoizedState:null}else e=gi.next;var t=null===bi?mi.memoizedState:bi.next;if(null!==t)bi=t,gi=e;else{if(null===e)throw Error(a(310));e={memoizedState:(gi=e).memoizedState,baseState:gi.baseState,baseQueue:gi.baseQueue,queue:gi.queue,next:null},null===bi?mi.memoizedState=bi=e:bi=bi.next=e}return bi}function Li(e,t){return"function"==typeof t?t(e):t}function Ti(e){var t=Ai(),n=t.queue;if(null===n)throw Error(a(311));n.lastRenderedReducer=e;var r=gi,o=r.baseQueue,i=n.pending;if(null!==i){if(null!==o){var s=o.next;o.next=i.next,i.next=s}r.baseQueue=o=i,n.pending=null}if(null!==o){i=o.next,r=r.baseState;var l=s=null,c=null,u=i;do{var d=u.lane;if((hi&d)===d)null!==c&&(c=c.next={lane:0,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),r=u.hasEagerState?u.eagerState:e(r,u.action);else{var p={lane:d,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null};null===c?(l=c=p,s=r):c=c.next=p,mi.lanes|=d,Il|=d}u=u.next}while(null!==u&&u!==i);null===c?s=r:c.next=l,sr(r,t.memoizedState)||(ws=!0),t.memoizedState=r,t.baseState=s,t.baseQueue=c,n.lastRenderedState=r}if(null!==(e=n.interleaved)){o=e;do{i=o.lane,mi.lanes|=i,Il|=i,o=o.next}while(o!==e)}else null===o&&(n.lanes=0);return[t.memoizedState,n.dispatch]}function ji(e){var t=Ai(),n=t.queue;if(null===n)throw Error(a(311));n.lastRenderedReducer=e;var r=n.dispatch,o=n.pending,i=t.memoizedState;if(null!==o){n.pending=null;var s=o=o.next;do{i=e(i,s.action),s=s.next}while(s!==o);sr(i,t.memoizedState)||(ws=!0),t.memoizedState=i,null===t.baseQueue&&(t.baseState=i),n.lastRenderedState=i}return[i,r]}function Ri(){}function Ni(e,t){var n=mi,r=Ai(),o=t(),i=!sr(r.memoizedState,o);if(i&&(r.memoizedState=o,ws=!0),r=r.queue,Wi(Di.bind(null,n,r,e),[e]),r.getSnapshot!==t||i||null!==bi&&1&bi.memoizedState.tag){if(n.flags|=2048,Bi(9,Pi.bind(null,n,r,o,t),void 0,null),null===jl)throw Error(a(349));0!=(30&hi)||Oi(n,t,o)}return o}function Oi(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},null===(t=mi.updateQueue)?(t={lastEffect:null,stores:null},mi.updateQueue=t,t.stores=[e]):null===(n=t.stores)?t.stores=[e]:n.push(e)}function Pi(e,t,n,r){t.value=n,t.getSnapshot=r,Mi(t)&&Ii(e)}function Di(e,t,n){return n((function(){Mi(t)&&Ii(e)}))}function Mi(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!sr(e,n)}catch(r){return!0}}function Ii(e){var t=ja(e,1);null!==t&&rc(t,e,1,-1)}function Fi(e){var t=Ei();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Li,lastRenderedState:e},t.queue=e,e=e.dispatch=ns.bind(null,mi,e),[t.memoizedState,e]}function Bi(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=mi.updateQueue)?(t={lastEffect:null,stores:null},mi.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function zi(){return Ai().memoizedState}function Ui(e,t,n,r){var o=Ei();mi.flags|=e,o.memoizedState=Bi(1|t,n,void 0,void 0===r?null:r)}function Vi(e,t,n,r){var o=Ai();r=void 0===r?null:r;var a=void 0;if(null!==gi){var i=gi.memoizedState;if(a=i.destroy,null!==r&&Si(r,i.deps))return void(o.memoizedState=Bi(t,n,a,r))}mi.flags|=e,o.memoizedState=Bi(1|t,n,a,r)}function qi(e,t){return Ui(8390656,8,e,t)}function Wi(e,t){return Vi(2048,8,e,t)}function $i(e,t){return Vi(4,2,e,t)}function Gi(e,t){return Vi(4,4,e,t)}function Hi(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function Zi(e,t,n){return n=null!=n?n.concat([e]):null,Vi(4,4,Hi.bind(null,t,e),n)}function Yi(){}function Xi(e,t){var n=Ai();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&Si(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Ki(e,t){var n=Ai();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&Si(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Ji(e,t,n){return 0==(21&hi)?(e.baseState&&(e.baseState=!1,ws=!0),e.memoizedState=n):(sr(n,t)||(n=mt(),mi.lanes|=n,Il|=n,e.baseState=!0),t)}function Qi(e,t){var n=yt;yt=0!==n&&4>n?n:4,e(!0);var r=fi.transition;fi.transition={};try{e(!1),t()}finally{yt=n,fi.transition=r}}function es(){return Ai().memoizedState}function ts(e,t,n){var r=nc(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},rs(e))os(t,n);else if(null!==(n=Ta(e,t,n,r))){rc(n,e,r,tc()),as(n,t,r)}}function ns(e,t,n){var r=nc(e),o={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(rs(e))os(t,o);else{var a=e.alternate;if(0===e.lanes&&(null===a||0===a.lanes)&&null!==(a=t.lastRenderedReducer))try{var i=t.lastRenderedState,s=a(i,n);if(o.hasEagerState=!0,o.eagerState=s,sr(s,i)){var l=t.interleaved;return null===l?(o.next=o,La(t)):(o.next=l.next,l.next=o),void(t.interleaved=o)}}catch(c){}null!==(n=Ta(e,t,o,r))&&(rc(n,e,r,o=tc()),as(n,t,r))}}function rs(e){var t=e.alternate;return e===mi||null!==t&&t===mi}function os(e,t){yi=vi=!0;var n=e.pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function as(e,t,n){if(0!=(4194240&n)){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,vt(e,n)}}var is={readContext:Ea,useCallback:xi,useContext:xi,useEffect:xi,useImperativeHandle:xi,useInsertionEffect:xi,useLayoutEffect:xi,useMemo:xi,useReducer:xi,useRef:xi,useState:xi,useDebugValue:xi,useDeferredValue:xi,useTransition:xi,useMutableSource:xi,useSyncExternalStore:xi,useId:xi,unstable_isNewReconciler:!1},ss={readContext:Ea,useCallback:function(e,t){return Ei().memoizedState=[e,void 0===t?null:t],e},useContext:Ea,useEffect:qi,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,Ui(4194308,4,Hi.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Ui(4194308,4,e,t)},useInsertionEffect:function(e,t){return Ui(4,2,e,t)},useMemo:function(e,t){var n=Ei();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Ei();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=ts.bind(null,mi,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},Ei().memoizedState=e},useState:Fi,useDebugValue:Yi,useDeferredValue:function(e){return Ei().memoizedState=e},useTransition:function(){var e=Fi(!1),t=e[0];return e=Qi.bind(null,e[1]),Ei().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=mi,o=Ei();if(aa){if(void 0===n)throw Error(a(407));n=n()}else{if(n=t(),null===jl)throw Error(a(349));0!=(30&hi)||Oi(r,t,n)}o.memoizedState=n;var i={value:n,getSnapshot:t};return o.queue=i,qi(Di.bind(null,r,i,e),[e]),r.flags|=2048,Bi(9,Pi.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=Ei(),t=jl.identifierPrefix;if(aa){var n=Jo;t=":"+t+"R"+(n=(Ko&~(1<<32-it(Ko)-1)).toString(32)+n),0<(n=wi++)&&(t+="H"+n.toString(32)),t+=":"}else t=":"+t+"r"+(n=ki++).toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},ls={readContext:Ea,useCallback:Xi,useContext:Ea,useEffect:Wi,useImperativeHandle:Zi,useInsertionEffect:$i,useLayoutEffect:Gi,useMemo:Ki,useReducer:Ti,useRef:zi,useState:function(){return Ti(Li)},useDebugValue:Yi,useDeferredValue:function(e){return Ji(Ai(),gi.memoizedState,e)},useTransition:function(){return[Ti(Li)[0],Ai().memoizedState]},useMutableSource:Ri,useSyncExternalStore:Ni,useId:es,unstable_isNewReconciler:!1},cs={readContext:Ea,useCallback:Xi,useContext:Ea,useEffect:Wi,useImperativeHandle:Zi,useInsertionEffect:$i,useLayoutEffect:Gi,useMemo:Ki,useReducer:ji,useRef:zi,useState:function(){return ji(Li)},useDebugValue:Yi,useDeferredValue:function(e){var t=Ai();return null===gi?t.memoizedState=e:Ji(t,gi.memoizedState,e)},useTransition:function(){return[ji(Li)[0],Ai().memoizedState]},useMutableSource:Ri,useSyncExternalStore:Ni,useId:es,unstable_isNewReconciler:!1};function us(e,t){try{var n="",r=t;do{n+=U(r),r=r.return}while(r);var o=n}catch(a){o="\nError generating stack: "+a.message+"\n"+a.stack}return{value:e,source:t,stack:o,digest:null}}function ds(e,t,n){return{value:e,source:null,stack:null!=n?n:null,digest:null!=t?t:null}}function ps(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}var fs="function"==typeof WeakMap?WeakMap:Map;function hs(e,t,n){(n=Pa(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){$l||($l=!0,Gl=r),ps(0,t)},n}function ms(e,t,n){(n=Pa(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var o=t.value;n.payload=function(){return r(o)},n.callback=function(){ps(0,t)}}var a=e.stateNode;return null!==a&&"function"==typeof a.componentDidCatch&&(n.callback=function(){ps(0,t),"function"!=typeof r&&(null===Hl?Hl=new Set([this]):Hl.add(this));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}function gs(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new fs;var o=new Set;r.set(t,o)}else void 0===(o=r.get(t))&&(o=new Set,r.set(t,o));o.has(n)||(o.add(n),e=Ec.bind(null,e,t,n),t.then(e,e))}function bs(e){do{var t;if((t=13===e.tag)&&(t=null===(t=e.memoizedState)||null!==t.dehydrated),t)return e;e=e.return}while(null!==e);return null}function vs(e,t,n,r,o){return 0==(1&e.mode)?(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,1===n.tag&&(null===n.alternate?n.tag=17:((t=Pa(-1,1)).tag=2,Da(n,t,1))),n.lanes|=1),e):(e.flags|=65536,e.lanes=o,e)}var ys=w.ReactCurrentOwner,ws=!1;function ks(e,t,n,r){t.child=null===e?Ja(t,null,n,r):Ka(t,e.child,n,r)}function xs(e,t,n,r,o){n=n.render;var a=t.ref;return Ca(t,o),r=_i(e,t,n,r,a,o),n=Ci(),null===e||ws?(aa&&n&&ta(t),t.flags|=1,ks(e,t,r,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,$s(e,t,o))}function Ss(e,t,n,r,o){if(null===e){var a=n.type;return"function"!=typeof a||Oc(a)||void 0!==a.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Dc(n.type,null,r,t,t.mode,o)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=a,_s(e,t,a,r,o))}if(a=e.child,0==(e.lanes&o)){var i=a.memoizedProps;if((n=null!==(n=n.compare)?n:lr)(i,r)&&e.ref===t.ref)return $s(e,t,o)}return t.flags|=1,(e=Pc(a,r)).ref=t.ref,e.return=t,t.child=e}function _s(e,t,n,r,o){if(null!==e){var a=e.memoizedProps;if(lr(a,r)&&e.ref===t.ref){if(ws=!1,t.pendingProps=r=a,0==(e.lanes&o))return t.lanes=e.lanes,$s(e,t,o);0!=(131072&e.flags)&&(ws=!0)}}return As(e,t,n,r,o)}function Cs(e,t,n){var r=t.pendingProps,o=r.children,a=null!==e?e.memoizedState:null;if("hidden"===r.mode)if(0==(1&t.mode))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},Ao(Pl,Ol),Ol|=n;else{if(0==(1073741824&n))return e=null!==a?a.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,Ao(Pl,Ol),Ol|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=null!==a?a.baseLanes:n,Ao(Pl,Ol),Ol|=r}else null!==a?(r=a.baseLanes|n,t.memoizedState=null):r=n,Ao(Pl,Ol),Ol|=r;return ks(e,t,o,n),t.child}function Es(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function As(e,t,n,r,o){var a=Oo(n)?Ro:To.current;return a=No(t,a),Ca(t,o),n=_i(e,t,n,r,a,o),r=Ci(),null===e||ws?(aa&&r&&ta(t),t.flags|=1,ks(e,t,n,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,$s(e,t,o))}function Ls(e,t,n,r,o){if(Oo(n)){var a=!0;Io(t)}else a=!1;if(Ca(t,o),null===t.stateNode)Ws(e,t),Wa(t,n,r),Ga(t,n,r,o),r=!0;else if(null===e){var i=t.stateNode,s=t.memoizedProps;i.props=s;var l=i.context,c=n.contextType;"object"==typeof c&&null!==c?c=Ea(c):c=No(t,c=Oo(n)?Ro:To.current);var u=n.getDerivedStateFromProps,d="function"==typeof u||"function"==typeof i.getSnapshotBeforeUpdate;d||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(s!==r||l!==c)&&$a(t,i,r,c),Ra=!1;var p=t.memoizedState;i.state=p,Fa(t,r,i,o),l=t.memoizedState,s!==r||p!==l||jo.current||Ra?("function"==typeof u&&(Ua(t,n,u,r),l=t.memoizedState),(s=Ra||qa(t,n,s,r,p,l,c))?(d||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||("function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"==typeof i.componentDidMount&&(t.flags|=4194308)):("function"==typeof i.componentDidMount&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=l),i.props=r,i.state=l,i.context=c,r=s):("function"==typeof i.componentDidMount&&(t.flags|=4194308),r=!1)}else{i=t.stateNode,Oa(e,t),s=t.memoizedProps,c=t.type===t.elementType?s:ba(t.type,s),i.props=c,d=t.pendingProps,p=i.context,"object"==typeof(l=n.contextType)&&null!==l?l=Ea(l):l=No(t,l=Oo(n)?Ro:To.current);var f=n.getDerivedStateFromProps;(u="function"==typeof f||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(s!==d||p!==l)&&$a(t,i,r,l),Ra=!1,p=t.memoizedState,i.state=p,Fa(t,r,i,o);var h=t.memoizedState;s!==d||p!==h||jo.current||Ra?("function"==typeof f&&(Ua(t,n,f,r),h=t.memoizedState),(c=Ra||qa(t,n,c,r,p,h,l)||!1)?(u||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,h,l),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,h,l)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=1024)):("function"!=typeof i.componentDidUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=h),i.props=r,i.state=h,i.context=l,r=c):("function"!=typeof i.componentDidUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),r=!1)}return Ts(e,t,n,r,a,o)}function Ts(e,t,n,r,o,a){Es(e,t);var i=0!=(128&t.flags);if(!r&&!i)return o&&Fo(t,n,!1),$s(e,t,a);r=t.stateNode,ys.current=t;var s=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=Ka(t,e.child,null,a),t.child=Ka(t,null,s,a)):ks(e,t,s,a),t.memoizedState=r.state,o&&Fo(t,n,!0),t.child}function js(e){var t=e.stateNode;t.pendingContext?Do(0,t.pendingContext,t.pendingContext!==t.context):t.context&&Do(0,t.context,!1),oi(e,t.containerInfo)}function Rs(e,t,n,r,o){return ha(),ma(o),t.flags|=256,ks(e,t,n,r),t.child}var Ns,Os,Ps,Ds,Ms={dehydrated:null,treeContext:null,retryLane:0};function Is(e){return{baseLanes:e,cachePool:null,transitions:null}}function Fs(e,t,n){var r,o=t.pendingProps,i=li.current,s=!1,l=0!=(128&t.flags);if((r=l)||(r=(null===e||null!==e.memoizedState)&&0!=(2&i)),r?(s=!0,t.flags&=-129):null!==e&&null===e.memoizedState||(i|=1),Ao(li,1&i),null===e)return ua(t),null!==(e=t.memoizedState)&&null!==(e=e.dehydrated)?(0==(1&t.mode)?t.lanes=1:"$!"===e.data?t.lanes=8:t.lanes=1073741824,null):(l=o.children,e=o.fallback,s?(o=t.mode,s=t.child,l={mode:"hidden",children:l},0==(1&o)&&null!==s?(s.childLanes=0,s.pendingProps=l):s=Ic(l,o,0,null),e=Mc(e,o,n,null),s.return=t,e.return=t,s.sibling=e,t.child=s,t.child.memoizedState=Is(n),t.memoizedState=Ms,e):Bs(t,l));if(null!==(i=e.memoizedState)&&null!==(r=i.dehydrated))return function(e,t,n,r,o,i,s){if(n)return 256&t.flags?(t.flags&=-257,zs(e,t,s,r=ds(Error(a(422))))):null!==t.memoizedState?(t.child=e.child,t.flags|=128,null):(i=r.fallback,o=t.mode,r=Ic({mode:"visible",children:r.children},o,0,null),(i=Mc(i,o,s,null)).flags|=2,r.return=t,i.return=t,r.sibling=i,t.child=r,0!=(1&t.mode)&&Ka(t,e.child,null,s),t.child.memoizedState=Is(s),t.memoizedState=Ms,i);if(0==(1&t.mode))return zs(e,t,s,null);if("$!"===o.data){if(r=o.nextSibling&&o.nextSibling.dataset)var l=r.dgst;return r=l,zs(e,t,s,r=ds(i=Error(a(419)),r,void 0))}if(l=0!=(s&e.childLanes),ws||l){if(null!==(r=jl)){switch(s&-s){case 4:o=2;break;case 16:o=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:o=32;break;case 536870912:o=268435456;break;default:o=0}0!==(o=0!=(o&(r.suspendedLanes|s))?0:o)&&o!==i.retryLane&&(i.retryLane=o,ja(e,o),rc(r,e,o,-1))}return gc(),zs(e,t,s,r=ds(Error(a(421))))}return"$?"===o.data?(t.flags|=128,t.child=e.child,t=Lc.bind(null,e),o._reactRetry=t,null):(e=i.treeContext,oa=co(o.nextSibling),ra=t,aa=!0,ia=null,null!==e&&(Zo[Yo++]=Ko,Zo[Yo++]=Jo,Zo[Yo++]=Xo,Ko=e.id,Jo=e.overflow,Xo=t),t=Bs(t,r.children),t.flags|=4096,t)}(e,t,l,o,r,i,n);if(s){s=o.fallback,l=t.mode,r=(i=e.child).sibling;var c={mode:"hidden",children:o.children};return 0==(1&l)&&t.child!==i?((o=t.child).childLanes=0,o.pendingProps=c,t.deletions=null):(o=Pc(i,c)).subtreeFlags=14680064&i.subtreeFlags,null!==r?s=Pc(r,s):(s=Mc(s,l,n,null)).flags|=2,s.return=t,o.return=t,o.sibling=s,t.child=o,o=s,s=t.child,l=null===(l=e.child.memoizedState)?Is(n):{baseLanes:l.baseLanes|n,cachePool:null,transitions:l.transitions},s.memoizedState=l,s.childLanes=e.childLanes&~n,t.memoizedState=Ms,o}return e=(s=e.child).sibling,o=Pc(s,{mode:"visible",children:o.children}),0==(1&t.mode)&&(o.lanes=n),o.return=t,o.sibling=null,null!==e&&(null===(n=t.deletions)?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=o,t.memoizedState=null,o}function Bs(e,t){return(t=Ic({mode:"visible",children:t},e.mode,0,null)).return=e,e.child=t}function zs(e,t,n,r){return null!==r&&ma(r),Ka(t,e.child,null,n),(e=Bs(t,t.pendingProps.children)).flags|=2,t.memoizedState=null,e}function Us(e,t,n){e.lanes|=t;var r=e.alternate;null!==r&&(r.lanes|=t),_a(e.return,t,n)}function Vs(e,t,n,r,o){var a=e.memoizedState;null===a?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:o}:(a.isBackwards=t,a.rendering=null,a.renderingStartTime=0,a.last=r,a.tail=n,a.tailMode=o)}function qs(e,t,n){var r=t.pendingProps,o=r.revealOrder,a=r.tail;if(ks(e,t,r.children,n),0!=(2&(r=li.current)))r=1&r|2,t.flags|=128;else{if(null!==e&&0!=(128&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&Us(e,n,t);else if(19===e.tag)Us(e,n,t);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(Ao(li,r),0==(1&t.mode))t.memoizedState=null;else switch(o){case"forwards":for(n=t.child,o=null;null!==n;)null!==(e=n.alternate)&&null===ci(e)&&(o=n),n=n.sibling;null===(n=o)?(o=t.child,t.child=null):(o=n.sibling,n.sibling=null),Vs(t,!1,o,n,a);break;case"backwards":for(n=null,o=t.child,t.child=null;null!==o;){if(null!==(e=o.alternate)&&null===ci(e)){t.child=o;break}e=o.sibling,o.sibling=n,n=o,o=e}Vs(t,!0,n,null,a);break;case"together":Vs(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function Ws(e,t){0==(1&t.mode)&&null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2)}function $s(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Il|=t.lanes,0==(n&t.childLanes))return null;if(null!==e&&t.child!==e.child)throw Error(a(153));if(null!==t.child){for(n=Pc(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Pc(e,e.pendingProps)).return=t;n.sibling=null}return t.child}function Gs(e,t){if(!aa)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Hs(e){var t=null!==e.alternate&&e.alternate.child===e.child,n=0,r=0;if(t)for(var o=e.child;null!==o;)n|=o.lanes|o.childLanes,r|=14680064&o.subtreeFlags,r|=14680064&o.flags,o.return=e,o=o.sibling;else for(o=e.child;null!==o;)n|=o.lanes|o.childLanes,r|=o.subtreeFlags,r|=o.flags,o.return=e,o=o.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function Zs(e,t,n){var r=t.pendingProps;switch(na(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Hs(t),null;case 1:case 17:return Oo(t.type)&&Po(),Hs(t),null;case 3:return r=t.stateNode,ai(),Eo(jo),Eo(To),di(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(pa(t)?t.flags|=4:null===e||e.memoizedState.isDehydrated&&0==(256&t.flags)||(t.flags|=1024,null!==ia&&(sc(ia),ia=null))),Os(e,t),Hs(t),null;case 5:si(t);var o=ri(ni.current);if(n=t.type,null!==e&&null!=t.stateNode)Ps(e,t,n,r,o),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(null===t.stateNode)throw Error(a(166));return Hs(t),null}if(e=ri(ei.current),pa(t)){r=t.stateNode,n=t.type;var i=t.memoizedProps;switch(r[fo]=t,r[ho]=i,e=0!=(1&t.mode),n){case"dialog":Br("cancel",r),Br("close",r);break;case"iframe":case"object":case"embed":Br("load",r);break;case"video":case"audio":for(o=0;o<Dr.length;o++)Br(Dr[o],r);break;case"source":Br("error",r);break;case"img":case"image":case"link":Br("error",r),Br("load",r);break;case"details":Br("toggle",r);break;case"input":X(r,i),Br("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!i.multiple},Br("invalid",r);break;case"textarea":oe(r,i),Br("invalid",r)}for(var l in ve(n,i),o=null,i)if(i.hasOwnProperty(l)){var c=i[l];"children"===l?"string"==typeof c?r.textContent!==c&&(!0!==i.suppressHydrationWarning&&Jr(r.textContent,c,e),o=["children",c]):"number"==typeof c&&r.textContent!==""+c&&(!0!==i.suppressHydrationWarning&&Jr(r.textContent,c,e),o=["children",""+c]):s.hasOwnProperty(l)&&null!=c&&"onScroll"===l&&Br("scroll",r)}switch(n){case"input":G(r),Q(r,i,!0);break;case"textarea":G(r),ie(r);break;case"select":case"option":break;default:"function"==typeof i.onClick&&(r.onclick=Qr)}r=o,t.updateQueue=r,null!==r&&(t.flags|=4)}else{l=9===o.nodeType?o:o.ownerDocument,"http://www.w3.org/1999/xhtml"===e&&(e=se(n)),"http://www.w3.org/1999/xhtml"===e?"script"===n?((e=l.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=l.createElement(n,{is:r.is}):(e=l.createElement(n),"select"===n&&(l=e,r.multiple?l.multiple=!0:r.size&&(l.size=r.size))):e=l.createElementNS(e,n),e[fo]=t,e[ho]=r,Ns(e,t,!1,!1),t.stateNode=e;e:{switch(l=ye(n,r),n){case"dialog":Br("cancel",e),Br("close",e),o=r;break;case"iframe":case"object":case"embed":Br("load",e),o=r;break;case"video":case"audio":for(o=0;o<Dr.length;o++)Br(Dr[o],e);o=r;break;case"source":Br("error",e),o=r;break;case"img":case"image":case"link":Br("error",e),Br("load",e),o=r;break;case"details":Br("toggle",e),o=r;break;case"input":X(e,r),o=Y(e,r),Br("invalid",e);break;case"option":default:o=r;break;case"select":e._wrapperState={wasMultiple:!!r.multiple},o=I({},r,{value:void 0}),Br("invalid",e);break;case"textarea":oe(e,r),o=re(e,r),Br("invalid",e)}for(i in ve(n,o),c=o)if(c.hasOwnProperty(i)){var u=c[i];"style"===i?ge(e,u):"dangerouslySetInnerHTML"===i?null!=(u=u?u.__html:void 0)&&de(e,u):"children"===i?"string"==typeof u?("textarea"!==n||""!==u)&&pe(e,u):"number"==typeof u&&pe(e,""+u):"suppressContentEditableWarning"!==i&&"suppressHydrationWarning"!==i&&"autoFocus"!==i&&(s.hasOwnProperty(i)?null!=u&&"onScroll"===i&&Br("scroll",e):null!=u&&y(e,i,u,l))}switch(n){case"input":G(e),Q(e,r,!1);break;case"textarea":G(e),ie(e);break;case"option":null!=r.value&&e.setAttribute("value",""+W(r.value));break;case"select":e.multiple=!!r.multiple,null!=(i=r.value)?ne(e,!!r.multiple,i,!1):null!=r.defaultValue&&ne(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof o.onClick&&(e.onclick=Qr)}switch(n){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}}r&&(t.flags|=4)}null!==t.ref&&(t.flags|=512,t.flags|=2097152)}return Hs(t),null;case 6:if(e&&null!=t.stateNode)Ds(e,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(a(166));if(n=ri(ni.current),ri(ei.current),pa(t)){if(r=t.stateNode,n=t.memoizedProps,r[fo]=t,(i=r.nodeValue!==n)&&null!==(e=ra))switch(e.tag){case 3:Jr(r.nodeValue,n,0!=(1&e.mode));break;case 5:!0!==e.memoizedProps.suppressHydrationWarning&&Jr(r.nodeValue,n,0!=(1&e.mode))}i&&(t.flags|=4)}else(r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[fo]=t,t.stateNode=r}return Hs(t),null;case 13:if(Eo(li),r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(aa&&null!==oa&&0!=(1&t.mode)&&0==(128&t.flags))fa(),ha(),t.flags|=98560,i=!1;else if(i=pa(t),null!==r&&null!==r.dehydrated){if(null===e){if(!i)throw Error(a(318));if(!(i=null!==(i=t.memoizedState)?i.dehydrated:null))throw Error(a(317));i[fo]=t}else ha(),0==(128&t.flags)&&(t.memoizedState=null),t.flags|=4;Hs(t),i=!1}else null!==ia&&(sc(ia),ia=null),i=!0;if(!i)return 65536&t.flags?t:null}return 0!=(128&t.flags)?(t.lanes=n,t):((r=null!==r)!==(null!==e&&null!==e.memoizedState)&&r&&(t.child.flags|=8192,0!=(1&t.mode)&&(null===e||0!=(1&li.current)?0===Dl&&(Dl=3):gc())),null!==t.updateQueue&&(t.flags|=4),Hs(t),null);case 4:return ai(),Os(e,t),null===e&&Vr(t.stateNode.containerInfo),Hs(t),null;case 10:return Sa(t.type._context),Hs(t),null;case 19:if(Eo(li),null===(i=t.memoizedState))return Hs(t),null;if(r=0!=(128&t.flags),null===(l=i.rendering))if(r)Gs(i,!1);else{if(0!==Dl||null!==e&&0!=(128&e.flags))for(e=t.child;null!==e;){if(null!==(l=ci(e))){for(t.flags|=128,Gs(i,!1),null!==(r=l.updateQueue)&&(t.updateQueue=r,t.flags|=4),t.subtreeFlags=0,r=n,n=t.child;null!==n;)e=r,(i=n).flags&=14680066,null===(l=i.alternate)?(i.childLanes=0,i.lanes=e,i.child=null,i.subtreeFlags=0,i.memoizedProps=null,i.memoizedState=null,i.updateQueue=null,i.dependencies=null,i.stateNode=null):(i.childLanes=l.childLanes,i.lanes=l.lanes,i.child=l.child,i.subtreeFlags=0,i.deletions=null,i.memoizedProps=l.memoizedProps,i.memoizedState=l.memoizedState,i.updateQueue=l.updateQueue,i.type=l.type,e=l.dependencies,i.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return Ao(li,1&li.current|2),t.child}e=e.sibling}null!==i.tail&&Ke()>ql&&(t.flags|=128,r=!0,Gs(i,!1),t.lanes=4194304)}else{if(!r)if(null!==(e=ci(l))){if(t.flags|=128,r=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),Gs(i,!0),null===i.tail&&"hidden"===i.tailMode&&!l.alternate&&!aa)return Hs(t),null}else 2*Ke()-i.renderingStartTime>ql&&1073741824!==n&&(t.flags|=128,r=!0,Gs(i,!1),t.lanes=4194304);i.isBackwards?(l.sibling=t.child,t.child=l):(null!==(n=i.last)?n.sibling=l:t.child=l,i.last=l)}return null!==i.tail?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Ke(),t.sibling=null,n=li.current,Ao(li,r?1&n|2:1&n),t):(Hs(t),null);case 22:case 23:return pc(),r=null!==t.memoizedState,null!==e&&null!==e.memoizedState!==r&&(t.flags|=8192),r&&0!=(1&t.mode)?0!=(1073741824&Ol)&&(Hs(t),6&t.subtreeFlags&&(t.flags|=8192)):Hs(t),null;case 24:case 25:return null}throw Error(a(156,t.tag))}function Ys(e,t){switch(na(t),t.tag){case 1:return Oo(t.type)&&Po(),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return ai(),Eo(jo),Eo(To),di(),0!=(65536&(e=t.flags))&&0==(128&e)?(t.flags=-65537&e|128,t):null;case 5:return si(t),null;case 13:if(Eo(li),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(a(340));ha()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return Eo(li),null;case 4:return ai(),null;case 10:return Sa(t.type._context),null;case 22:case 23:return pc(),null;default:return null}}Ns=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Os=function(){},Ps=function(e,t,n,r){var o=e.memoizedProps;if(o!==r){e=t.stateNode,ri(ei.current);var a,i=null;switch(n){case"input":o=Y(e,o),r=Y(e,r),i=[];break;case"select":o=I({},o,{value:void 0}),r=I({},r,{value:void 0}),i=[];break;case"textarea":o=re(e,o),r=re(e,r),i=[];break;default:"function"!=typeof o.onClick&&"function"==typeof r.onClick&&(e.onclick=Qr)}for(u in ve(n,r),n=null,o)if(!r.hasOwnProperty(u)&&o.hasOwnProperty(u)&&null!=o[u])if("style"===u){var l=o[u];for(a in l)l.hasOwnProperty(a)&&(n||(n={}),n[a]="")}else"dangerouslySetInnerHTML"!==u&&"children"!==u&&"suppressContentEditableWarning"!==u&&"suppressHydrationWarning"!==u&&"autoFocus"!==u&&(s.hasOwnProperty(u)?i||(i=[]):(i=i||[]).push(u,null));for(u in r){var c=r[u];if(l=null!=o?o[u]:void 0,r.hasOwnProperty(u)&&c!==l&&(null!=c||null!=l))if("style"===u)if(l){for(a in l)!l.hasOwnProperty(a)||c&&c.hasOwnProperty(a)||(n||(n={}),n[a]="");for(a in c)c.hasOwnProperty(a)&&l[a]!==c[a]&&(n||(n={}),n[a]=c[a])}else n||(i||(i=[]),i.push(u,n)),n=c;else"dangerouslySetInnerHTML"===u?(c=c?c.__html:void 0,l=l?l.__html:void 0,null!=c&&l!==c&&(i=i||[]).push(u,c)):"children"===u?"string"!=typeof c&&"number"!=typeof c||(i=i||[]).push(u,""+c):"suppressContentEditableWarning"!==u&&"suppressHydrationWarning"!==u&&(s.hasOwnProperty(u)?(null!=c&&"onScroll"===u&&Br("scroll",e),i||l===c||(i=[])):(i=i||[]).push(u,c))}n&&(i=i||[]).push("style",n);var u=i;(t.updateQueue=u)&&(t.flags|=4)}},Ds=function(e,t,n,r){n!==r&&(t.flags|=4)};var Xs=!1,Ks=!1,Js="function"==typeof WeakSet?WeakSet:Set,Qs=null;function el(e,t){var n=e.ref;if(null!==n)if("function"==typeof n)try{n(null)}catch(r){Cc(e,t,r)}else n.current=null}function tl(e,t,n){try{n()}catch(r){Cc(e,t,r)}}var nl=!1;function rl(e,t,n){var r=t.updateQueue;if(null!==(r=null!==r?r.lastEffect:null)){var o=r=r.next;do{if((o.tag&e)===e){var a=o.destroy;o.destroy=void 0,void 0!==a&&tl(t,n,a)}o=o.next}while(o!==r)}}function ol(e,t){if(null!==(t=null!==(t=t.updateQueue)?t.lastEffect:null)){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function al(e){var t=e.ref;if(null!==t){var n=e.stateNode;e.tag,e=n,"function"==typeof t?t(e):t.current=e}}function il(e){var t=e.alternate;null!==t&&(e.alternate=null,il(t)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&(null!==(t=e.stateNode)&&(delete t[fo],delete t[ho],delete t[go],delete t[bo],delete t[vo])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function sl(e){return 5===e.tag||3===e.tag||4===e.tag}function ll(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||sl(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(2&e.flags)continue e;if(null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function cl(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=Qr));else if(4!==r&&null!==(e=e.child))for(cl(e,t,n),e=e.sibling;null!==e;)cl(e,t,n),e=e.sibling}function ul(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(ul(e,t,n),e=e.sibling;null!==e;)ul(e,t,n),e=e.sibling}var dl=null,pl=!1;function fl(e,t,n){for(n=n.child;null!==n;)hl(e,t,n),n=n.sibling}function hl(e,t,n){if(at&&"function"==typeof at.onCommitFiberUnmount)try{at.onCommitFiberUnmount(ot,n)}catch(s){}switch(n.tag){case 5:Ks||el(n,t);case 6:var r=dl,o=pl;dl=null,fl(e,t,n),pl=o,null!==(dl=r)&&(pl?(e=dl,n=n.stateNode,8===e.nodeType?e.parentNode.removeChild(n):e.removeChild(n)):dl.removeChild(n.stateNode));break;case 18:null!==dl&&(pl?(e=dl,n=n.stateNode,8===e.nodeType?lo(e.parentNode,n):1===e.nodeType&&lo(e,n),Vt(e)):lo(dl,n.stateNode));break;case 4:r=dl,o=pl,dl=n.stateNode.containerInfo,pl=!0,fl(e,t,n),dl=r,pl=o;break;case 0:case 11:case 14:case 15:if(!Ks&&(null!==(r=n.updateQueue)&&null!==(r=r.lastEffect))){o=r=r.next;do{var a=o,i=a.destroy;a=a.tag,void 0!==i&&(0!=(2&a)||0!=(4&a))&&tl(n,t,i),o=o.next}while(o!==r)}fl(e,t,n);break;case 1:if(!Ks&&(el(n,t),"function"==typeof(r=n.stateNode).componentWillUnmount))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(s){Cc(n,t,s)}fl(e,t,n);break;case 21:fl(e,t,n);break;case 22:1&n.mode?(Ks=(r=Ks)||null!==n.memoizedState,fl(e,t,n),Ks=r):fl(e,t,n);break;default:fl(e,t,n)}}function ml(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new Js),t.forEach((function(t){var r=Tc.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function gl(e,t){var n=t.deletions;if(null!==n)for(var r=0;r<n.length;r++){var o=n[r];try{var i=e,s=t,l=s;e:for(;null!==l;){switch(l.tag){case 5:dl=l.stateNode,pl=!1;break e;case 3:case 4:dl=l.stateNode.containerInfo,pl=!0;break e}l=l.return}if(null===dl)throw Error(a(160));hl(i,s,o),dl=null,pl=!1;var c=o.alternate;null!==c&&(c.return=null),o.return=null}catch(u){Cc(o,t,u)}}if(12854&t.subtreeFlags)for(t=t.child;null!==t;)bl(t,e),t=t.sibling}function bl(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(gl(t,e),vl(e),4&r){try{rl(3,e,e.return),ol(3,e)}catch(g){Cc(e,e.return,g)}try{rl(5,e,e.return)}catch(g){Cc(e,e.return,g)}}break;case 1:gl(t,e),vl(e),512&r&&null!==n&&el(n,n.return);break;case 5:if(gl(t,e),vl(e),512&r&&null!==n&&el(n,n.return),32&e.flags){var o=e.stateNode;try{pe(o,"")}catch(g){Cc(e,e.return,g)}}if(4&r&&null!=(o=e.stateNode)){var i=e.memoizedProps,s=null!==n?n.memoizedProps:i,l=e.type,c=e.updateQueue;if(e.updateQueue=null,null!==c)try{"input"===l&&"radio"===i.type&&null!=i.name&&K(o,i),ye(l,s);var u=ye(l,i);for(s=0;s<c.length;s+=2){var d=c[s],p=c[s+1];"style"===d?ge(o,p):"dangerouslySetInnerHTML"===d?de(o,p):"children"===d?pe(o,p):y(o,d,p,u)}switch(l){case"input":J(o,i);break;case"textarea":ae(o,i);break;case"select":var f=o._wrapperState.wasMultiple;o._wrapperState.wasMultiple=!!i.multiple;var h=i.value;null!=h?ne(o,!!i.multiple,h,!1):f!==!!i.multiple&&(null!=i.defaultValue?ne(o,!!i.multiple,i.defaultValue,!0):ne(o,!!i.multiple,i.multiple?[]:"",!1))}o[ho]=i}catch(g){Cc(e,e.return,g)}}break;case 6:if(gl(t,e),vl(e),4&r){if(null===e.stateNode)throw Error(a(162));o=e.stateNode,i=e.memoizedProps;try{o.nodeValue=i}catch(g){Cc(e,e.return,g)}}break;case 3:if(gl(t,e),vl(e),4&r&&null!==n&&n.memoizedState.isDehydrated)try{Vt(t.containerInfo)}catch(g){Cc(e,e.return,g)}break;case 4:default:gl(t,e),vl(e);break;case 13:gl(t,e),vl(e),8192&(o=e.child).flags&&(i=null!==o.memoizedState,o.stateNode.isHidden=i,!i||null!==o.alternate&&null!==o.alternate.memoizedState||(Vl=Ke())),4&r&&ml(e);break;case 22:if(d=null!==n&&null!==n.memoizedState,1&e.mode?(Ks=(u=Ks)||d,gl(t,e),Ks=u):gl(t,e),vl(e),8192&r){if(u=null!==e.memoizedState,(e.stateNode.isHidden=u)&&!d&&0!=(1&e.mode))for(Qs=e,d=e.child;null!==d;){for(p=Qs=d;null!==Qs;){switch(h=(f=Qs).child,f.tag){case 0:case 11:case 14:case 15:rl(4,f,f.return);break;case 1:el(f,f.return);var m=f.stateNode;if("function"==typeof m.componentWillUnmount){r=f,n=f.return;try{t=r,m.props=t.memoizedProps,m.state=t.memoizedState,m.componentWillUnmount()}catch(g){Cc(r,n,g)}}break;case 5:el(f,f.return);break;case 22:if(null!==f.memoizedState){xl(p);continue}}null!==h?(h.return=f,Qs=h):xl(p)}d=d.sibling}e:for(d=null,p=e;;){if(5===p.tag){if(null===d){d=p;try{o=p.stateNode,u?"function"==typeof(i=o.style).setProperty?i.setProperty("display","none","important"):i.display="none":(l=p.stateNode,s=null!=(c=p.memoizedProps.style)&&c.hasOwnProperty("display")?c.display:null,l.style.display=me("display",s))}catch(g){Cc(e,e.return,g)}}}else if(6===p.tag){if(null===d)try{p.stateNode.nodeValue=u?"":p.memoizedProps}catch(g){Cc(e,e.return,g)}}else if((22!==p.tag&&23!==p.tag||null===p.memoizedState||p===e)&&null!==p.child){p.child.return=p,p=p.child;continue}if(p===e)break e;for(;null===p.sibling;){if(null===p.return||p.return===e)break e;d===p&&(d=null),p=p.return}d===p&&(d=null),p.sibling.return=p.return,p=p.sibling}}break;case 19:gl(t,e),vl(e),4&r&&ml(e);case 21:}}function vl(e){var t=e.flags;if(2&t){try{e:{for(var n=e.return;null!==n;){if(sl(n)){var r=n;break e}n=n.return}throw Error(a(160))}switch(r.tag){case 5:var o=r.stateNode;32&r.flags&&(pe(o,""),r.flags&=-33),ul(e,ll(e),o);break;case 3:case 4:var i=r.stateNode.containerInfo;cl(e,ll(e),i);break;default:throw Error(a(161))}}catch(s){Cc(e,e.return,s)}e.flags&=-3}4096&t&&(e.flags&=-4097)}function yl(e,t,n){Qs=e,wl(e,t,n)}function wl(e,t,n){for(var r=0!=(1&e.mode);null!==Qs;){var o=Qs,a=o.child;if(22===o.tag&&r){var i=null!==o.memoizedState||Xs;if(!i){var s=o.alternate,l=null!==s&&null!==s.memoizedState||Ks;s=Xs;var c=Ks;if(Xs=i,(Ks=l)&&!c)for(Qs=o;null!==Qs;)l=(i=Qs).child,22===i.tag&&null!==i.memoizedState?Sl(o):null!==l?(l.return=i,Qs=l):Sl(o);for(;null!==a;)Qs=a,wl(a,t,n),a=a.sibling;Qs=o,Xs=s,Ks=c}kl(e)}else 0!=(8772&o.subtreeFlags)&&null!==a?(a.return=o,Qs=a):kl(e)}}function kl(e){for(;null!==Qs;){var t=Qs;if(0!=(8772&t.flags)){var n=t.alternate;try{if(0!=(8772&t.flags))switch(t.tag){case 0:case 11:case 15:Ks||ol(5,t);break;case 1:var r=t.stateNode;if(4&t.flags&&!Ks)if(null===n)r.componentDidMount();else{var o=t.elementType===t.type?n.memoizedProps:ba(t.type,n.memoizedProps);r.componentDidUpdate(o,n.memoizedState,r.__reactInternalSnapshotBeforeUpdate)}var i=t.updateQueue;null!==i&&Ba(t,i,r);break;case 3:var s=t.updateQueue;if(null!==s){if(n=null,null!==t.child)switch(t.child.tag){case 5:case 1:n=t.child.stateNode}Ba(t,s,n)}break;case 5:var l=t.stateNode;if(null===n&&4&t.flags){n=l;var c=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":c.autoFocus&&n.focus();break;case"img":c.src&&(n.src=c.src)}}break;case 6:case 4:case 12:case 19:case 17:case 21:case 22:case 23:case 25:break;case 13:if(null===t.memoizedState){var u=t.alternate;if(null!==u){var d=u.memoizedState;if(null!==d){var p=d.dehydrated;null!==p&&Vt(p)}}}break;default:throw Error(a(163))}Ks||512&t.flags&&al(t)}catch(f){Cc(t,t.return,f)}}if(t===e){Qs=null;break}if(null!==(n=t.sibling)){n.return=t.return,Qs=n;break}Qs=t.return}}function xl(e){for(;null!==Qs;){var t=Qs;if(t===e){Qs=null;break}var n=t.sibling;if(null!==n){n.return=t.return,Qs=n;break}Qs=t.return}}function Sl(e){for(;null!==Qs;){var t=Qs;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{ol(4,t)}catch(l){Cc(t,n,l)}break;case 1:var r=t.stateNode;if("function"==typeof r.componentDidMount){var o=t.return;try{r.componentDidMount()}catch(l){Cc(t,o,l)}}var a=t.return;try{al(t)}catch(l){Cc(t,a,l)}break;case 5:var i=t.return;try{al(t)}catch(l){Cc(t,i,l)}}}catch(l){Cc(t,t.return,l)}if(t===e){Qs=null;break}var s=t.sibling;if(null!==s){s.return=t.return,Qs=s;break}Qs=t.return}}var _l,Cl=Math.ceil,El=w.ReactCurrentDispatcher,Al=w.ReactCurrentOwner,Ll=w.ReactCurrentBatchConfig,Tl=0,jl=null,Rl=null,Nl=0,Ol=0,Pl=Co(0),Dl=0,Ml=null,Il=0,Fl=0,Bl=0,zl=null,Ul=null,Vl=0,ql=1/0,Wl=null,$l=!1,Gl=null,Hl=null,Zl=!1,Yl=null,Xl=0,Kl=0,Jl=null,Ql=-1,ec=0;function tc(){return 0!=(6&Tl)?Ke():-1!==Ql?Ql:Ql=Ke()}function nc(e){return 0==(1&e.mode)?1:0!=(2&Tl)&&0!==Nl?Nl&-Nl:null!==ga.transition?(0===ec&&(ec=mt()),ec):0!==(e=yt)?e:e=void 0===(e=window.event)?16:Xt(e.type)}function rc(e,t,n,r){if(50<Kl)throw Kl=0,Jl=null,Error(a(185));bt(e,n,r),0!=(2&Tl)&&e===jl||(e===jl&&(0==(2&Tl)&&(Fl|=n),4===Dl&&lc(e,Nl)),oc(e,r),1===n&&0===Tl&&0==(1&t.mode)&&(ql=Ke()+500,zo&&qo()))}function oc(e,t){var n=e.callbackNode;!function(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,o=e.expirationTimes,a=e.pendingLanes;0<a;){var i=31-it(a),s=1<<i,l=o[i];-1===l?0!=(s&n)&&0==(s&r)||(o[i]=ft(s,t)):l<=t&&(e.expiredLanes|=s),a&=~s}}(e,t);var r=pt(e,e===jl?Nl:0);if(0===r)null!==n&&Ze(n),e.callbackNode=null,e.callbackPriority=0;else if(t=r&-r,e.callbackPriority!==t){if(null!=n&&Ze(n),1===t)0===e.tag?function(e){zo=!0,Vo(e)}(cc.bind(null,e)):Vo(cc.bind(null,e)),io((function(){0==(6&Tl)&&qo()})),n=null;else{switch(wt(r)){case 1:n=Qe;break;case 4:n=et;break;case 16:default:n=tt;break;case 536870912:n=rt}n=jc(n,ac.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function ac(e,t){if(Ql=-1,ec=0,0!=(6&Tl))throw Error(a(327));var n=e.callbackNode;if(Sc()&&e.callbackNode!==n)return null;var r=pt(e,e===jl?Nl:0);if(0===r)return null;if(0!=(30&r)||0!=(r&e.expiredLanes)||t)t=bc(e,r);else{t=r;var o=Tl;Tl|=2;var i=mc();for(jl===e&&Nl===t||(Wl=null,ql=Ke()+500,fc(e,t));;)try{yc();break}catch(l){hc(e,l)}xa(),El.current=i,Tl=o,null!==Rl?t=0:(jl=null,Nl=0,t=Dl)}if(0!==t){if(2===t&&(0!==(o=ht(e))&&(r=o,t=ic(e,o))),1===t)throw n=Ml,fc(e,0),lc(e,r),oc(e,Ke()),n;if(6===t)lc(e,r);else{if(o=e.current.alternate,0==(30&r)&&!function(e){for(var t=e;;){if(16384&t.flags){var n=t.updateQueue;if(null!==n&&null!==(n=n.stores))for(var r=0;r<n.length;r++){var o=n[r],a=o.getSnapshot;o=o.value;try{if(!sr(a(),o))return!1}catch(s){return!1}}}if(n=t.child,16384&t.subtreeFlags&&null!==n)n.return=t,t=n;else{if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}(o)&&(2===(t=bc(e,r))&&(0!==(i=ht(e))&&(r=i,t=ic(e,i))),1===t))throw n=Ml,fc(e,0),lc(e,r),oc(e,Ke()),n;switch(e.finishedWork=o,e.finishedLanes=r,t){case 0:case 1:throw Error(a(345));case 2:case 5:xc(e,Ul,Wl);break;case 3:if(lc(e,r),(130023424&r)===r&&10<(t=Vl+500-Ke())){if(0!==pt(e,0))break;if(((o=e.suspendedLanes)&r)!==r){tc(),e.pingedLanes|=e.suspendedLanes&o;break}e.timeoutHandle=ro(xc.bind(null,e,Ul,Wl),t);break}xc(e,Ul,Wl);break;case 4:if(lc(e,r),(4194240&r)===r)break;for(t=e.eventTimes,o=-1;0<r;){var s=31-it(r);i=1<<s,(s=t[s])>o&&(o=s),r&=~i}if(r=o,10<(r=(120>(r=Ke()-r)?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*Cl(r/1960))-r)){e.timeoutHandle=ro(xc.bind(null,e,Ul,Wl),r);break}xc(e,Ul,Wl);break;default:throw Error(a(329))}}}return oc(e,Ke()),e.callbackNode===n?ac.bind(null,e):null}function ic(e,t){var n=zl;return e.current.memoizedState.isDehydrated&&(fc(e,t).flags|=256),2!==(e=bc(e,t))&&(t=Ul,Ul=n,null!==t&&sc(t)),e}function sc(e){null===Ul?Ul=e:Ul.push.apply(Ul,e)}function lc(e,t){for(t&=~Bl,t&=~Fl,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-it(t),r=1<<n;e[n]=-1,t&=~r}}function cc(e){if(0!=(6&Tl))throw Error(a(327));Sc();var t=pt(e,0);if(0==(1&t))return oc(e,Ke()),null;var n=bc(e,t);if(0!==e.tag&&2===n){var r=ht(e);0!==r&&(t=r,n=ic(e,r))}if(1===n)throw n=Ml,fc(e,0),lc(e,t),oc(e,Ke()),n;if(6===n)throw Error(a(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,xc(e,Ul,Wl),oc(e,Ke()),null}function uc(e,t){var n=Tl;Tl|=1;try{return e(t)}finally{0===(Tl=n)&&(ql=Ke()+500,zo&&qo())}}function dc(e){null!==Yl&&0===Yl.tag&&0==(6&Tl)&&Sc();var t=Tl;Tl|=1;var n=Ll.transition,r=yt;try{if(Ll.transition=null,yt=1,e)return e()}finally{yt=r,Ll.transition=n,0==(6&(Tl=t))&&qo()}}function pc(){Ol=Pl.current,Eo(Pl)}function fc(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,oo(n)),null!==Rl)for(n=Rl.return;null!==n;){var r=n;switch(na(r),r.tag){case 1:null!=(r=r.type.childContextTypes)&&Po();break;case 3:ai(),Eo(jo),Eo(To),di();break;case 5:si(r);break;case 4:ai();break;case 13:case 19:Eo(li);break;case 10:Sa(r.type._context);break;case 22:case 23:pc()}n=n.return}if(jl=e,Rl=e=Pc(e.current,null),Nl=Ol=t,Dl=0,Ml=null,Bl=Fl=Il=0,Ul=zl=null,null!==Aa){for(t=0;t<Aa.length;t++)if(null!==(r=(n=Aa[t]).interleaved)){n.interleaved=null;var o=r.next,a=n.pending;if(null!==a){var i=a.next;a.next=o,r.next=i}n.pending=r}Aa=null}return e}function hc(e,t){for(;;){var n=Rl;try{if(xa(),pi.current=is,vi){for(var r=mi.memoizedState;null!==r;){var o=r.queue;null!==o&&(o.pending=null),r=r.next}vi=!1}if(hi=0,bi=gi=mi=null,yi=!1,wi=0,Al.current=null,null===n||null===n.return){Dl=1,Ml=t,Rl=null;break}e:{var i=e,s=n.return,l=n,c=t;if(t=Nl,l.flags|=32768,null!==c&&"object"==typeof c&&"function"==typeof c.then){var u=c,d=l,p=d.tag;if(0==(1&d.mode)&&(0===p||11===p||15===p)){var f=d.alternate;f?(d.updateQueue=f.updateQueue,d.memoizedState=f.memoizedState,d.lanes=f.lanes):(d.updateQueue=null,d.memoizedState=null)}var h=bs(s);if(null!==h){h.flags&=-257,vs(h,s,l,0,t),1&h.mode&&gs(i,u,t),c=u;var m=(t=h).updateQueue;if(null===m){var g=new Set;g.add(c),t.updateQueue=g}else m.add(c);break e}if(0==(1&t)){gs(i,u,t),gc();break e}c=Error(a(426))}else if(aa&&1&l.mode){var b=bs(s);if(null!==b){0==(65536&b.flags)&&(b.flags|=256),vs(b,s,l,0,t),ma(us(c,l));break e}}i=c=us(c,l),4!==Dl&&(Dl=2),null===zl?zl=[i]:zl.push(i),i=s;do{switch(i.tag){case 3:i.flags|=65536,t&=-t,i.lanes|=t,Ia(i,hs(0,c,t));break e;case 1:l=c;var v=i.type,y=i.stateNode;if(0==(128&i.flags)&&("function"==typeof v.getDerivedStateFromError||null!==y&&"function"==typeof y.componentDidCatch&&(null===Hl||!Hl.has(y)))){i.flags|=65536,t&=-t,i.lanes|=t,Ia(i,ms(i,l,t));break e}}i=i.return}while(null!==i)}kc(n)}catch(w){t=w,Rl===n&&null!==n&&(Rl=n=n.return);continue}break}}function mc(){var e=El.current;return El.current=is,null===e?is:e}function gc(){0!==Dl&&3!==Dl&&2!==Dl||(Dl=4),null===jl||0==(268435455&Il)&&0==(268435455&Fl)||lc(jl,Nl)}function bc(e,t){var n=Tl;Tl|=2;var r=mc();for(jl===e&&Nl===t||(Wl=null,fc(e,t));;)try{vc();break}catch(o){hc(e,o)}if(xa(),Tl=n,El.current=r,null!==Rl)throw Error(a(261));return jl=null,Nl=0,Dl}function vc(){for(;null!==Rl;)wc(Rl)}function yc(){for(;null!==Rl&&!Ye();)wc(Rl)}function wc(e){var t=_l(e.alternate,e,Ol);e.memoizedProps=e.pendingProps,null===t?kc(e):Rl=t,Al.current=null}function kc(e){var t=e;do{var n=t.alternate;if(e=t.return,0==(32768&t.flags)){if(null!==(n=Zs(n,t,Ol)))return void(Rl=n)}else{if(null!==(n=Ys(n,t)))return n.flags&=32767,void(Rl=n);if(null===e)return Dl=6,void(Rl=null);e.flags|=32768,e.subtreeFlags=0,e.deletions=null}if(null!==(t=t.sibling))return void(Rl=t);Rl=t=e}while(null!==t);0===Dl&&(Dl=5)}function xc(e,t,n){var r=yt,o=Ll.transition;try{Ll.transition=null,yt=1,function(e,t,n,r){do{Sc()}while(null!==Yl);if(0!=(6&Tl))throw Error(a(327));n=e.finishedWork;var o=e.finishedLanes;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(a(177));e.callbackNode=null,e.callbackPriority=0;var i=n.lanes|n.childLanes;if(function(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0<n;){var o=31-it(n),a=1<<o;t[o]=0,r[o]=-1,e[o]=-1,n&=~a}}(e,i),e===jl&&(Rl=jl=null,Nl=0),0==(2064&n.subtreeFlags)&&0==(2064&n.flags)||Zl||(Zl=!0,jc(tt,(function(){return Sc(),null}))),i=0!=(15990&n.flags),0!=(15990&n.subtreeFlags)||i){i=Ll.transition,Ll.transition=null;var s=yt;yt=1;var l=Tl;Tl|=4,Al.current=null,function(e,t){if(eo=Wt,fr(e=pr())){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{var r=(n=(n=e.ownerDocument)&&n.defaultView||window).getSelection&&n.getSelection();if(r&&0!==r.rangeCount){n=r.anchorNode;var o=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch(k){n=null;break e}var s=0,l=-1,c=-1,u=0,d=0,p=e,f=null;t:for(;;){for(var h;p!==n||0!==o&&3!==p.nodeType||(l=s+o),p!==i||0!==r&&3!==p.nodeType||(c=s+r),3===p.nodeType&&(s+=p.nodeValue.length),null!==(h=p.firstChild);)f=p,p=h;for(;;){if(p===e)break t;if(f===n&&++u===o&&(l=s),f===i&&++d===r&&(c=s),null!==(h=p.nextSibling))break;f=(p=f).parentNode}p=h}n=-1===l||-1===c?null:{start:l,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(to={focusedElem:e,selectionRange:n},Wt=!1,Qs=t;null!==Qs;)if(e=(t=Qs).child,0!=(1028&t.subtreeFlags)&&null!==e)e.return=t,Qs=e;else for(;null!==Qs;){t=Qs;try{var m=t.alternate;if(0!=(1024&t.flags))switch(t.tag){case 0:case 11:case 15:case 5:case 6:case 4:case 17:break;case 1:if(null!==m){var g=m.memoizedProps,b=m.memoizedState,v=t.stateNode,y=v.getSnapshotBeforeUpdate(t.elementType===t.type?g:ba(t.type,g),b);v.__reactInternalSnapshotBeforeUpdate=y}break;case 3:var w=t.stateNode.containerInfo;1===w.nodeType?w.textContent="":9===w.nodeType&&w.documentElement&&w.removeChild(w.documentElement);break;default:throw Error(a(163))}}catch(k){Cc(t,t.return,k)}if(null!==(e=t.sibling)){e.return=t.return,Qs=e;break}Qs=t.return}m=nl,nl=!1}(e,n),bl(n,e),hr(to),Wt=!!eo,to=eo=null,e.current=n,yl(n,e,o),Xe(),Tl=l,yt=s,Ll.transition=i}else e.current=n;if(Zl&&(Zl=!1,Yl=e,Xl=o),i=e.pendingLanes,0===i&&(Hl=null),function(e){if(at&&"function"==typeof at.onCommitFiberRoot)try{at.onCommitFiberRoot(ot,e,void 0,128==(128&e.current.flags))}catch(t){}}(n.stateNode),oc(e,Ke()),null!==t)for(r=e.onRecoverableError,n=0;n<t.length;n++)o=t[n],r(o.value,{componentStack:o.stack,digest:o.digest});if($l)throw $l=!1,e=Gl,Gl=null,e;0!=(1&Xl)&&0!==e.tag&&Sc(),i=e.pendingLanes,0!=(1&i)?e===Jl?Kl++:(Kl=0,Jl=e):Kl=0,qo()}(e,t,n,r)}finally{Ll.transition=o,yt=r}return null}function Sc(){if(null!==Yl){var e=wt(Xl),t=Ll.transition,n=yt;try{if(Ll.transition=null,yt=16>e?16:e,null===Yl)var r=!1;else{if(e=Yl,Yl=null,Xl=0,0!=(6&Tl))throw Error(a(331));var o=Tl;for(Tl|=4,Qs=e.current;null!==Qs;){var i=Qs,s=i.child;if(0!=(16&Qs.flags)){var l=i.deletions;if(null!==l){for(var c=0;c<l.length;c++){var u=l[c];for(Qs=u;null!==Qs;){var d=Qs;switch(d.tag){case 0:case 11:case 15:rl(8,d,i)}var p=d.child;if(null!==p)p.return=d,Qs=p;else for(;null!==Qs;){var f=(d=Qs).sibling,h=d.return;if(il(d),d===u){Qs=null;break}if(null!==f){f.return=h,Qs=f;break}Qs=h}}}var m=i.alternate;if(null!==m){var g=m.child;if(null!==g){m.child=null;do{var b=g.sibling;g.sibling=null,g=b}while(null!==g)}}Qs=i}}if(0!=(2064&i.subtreeFlags)&&null!==s)s.return=i,Qs=s;else e:for(;null!==Qs;){if(0!=(2048&(i=Qs).flags))switch(i.tag){case 0:case 11:case 15:rl(9,i,i.return)}var v=i.sibling;if(null!==v){v.return=i.return,Qs=v;break e}Qs=i.return}}var y=e.current;for(Qs=y;null!==Qs;){var w=(s=Qs).child;if(0!=(2064&s.subtreeFlags)&&null!==w)w.return=s,Qs=w;else e:for(s=y;null!==Qs;){if(0!=(2048&(l=Qs).flags))try{switch(l.tag){case 0:case 11:case 15:ol(9,l)}}catch(x){Cc(l,l.return,x)}if(l===s){Qs=null;break e}var k=l.sibling;if(null!==k){k.return=l.return,Qs=k;break e}Qs=l.return}}if(Tl=o,qo(),at&&"function"==typeof at.onPostCommitFiberRoot)try{at.onPostCommitFiberRoot(ot,e)}catch(x){}r=!0}return r}finally{yt=n,Ll.transition=t}}return!1}function _c(e,t,n){e=Da(e,t=hs(0,t=us(n,t),1),1),t=tc(),null!==e&&(bt(e,1,t),oc(e,t))}function Cc(e,t,n){if(3===e.tag)_c(e,e,n);else for(;null!==t;){if(3===t.tag){_c(t,e,n);break}if(1===t.tag){var r=t.stateNode;if("function"==typeof t.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Hl||!Hl.has(r))){t=Da(t,e=ms(t,e=us(n,e),1),1),e=tc(),null!==t&&(bt(t,1,e),oc(t,e));break}}t=t.return}}function Ec(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=tc(),e.pingedLanes|=e.suspendedLanes&n,jl===e&&(Nl&n)===n&&(4===Dl||3===Dl&&(130023424&Nl)===Nl&&500>Ke()-Vl?fc(e,0):Bl|=n),oc(e,t)}function Ac(e,t){0===t&&(0==(1&e.mode)?t=1:(t=ut,0==(130023424&(ut<<=1))&&(ut=4194304)));var n=tc();null!==(e=ja(e,t))&&(bt(e,t,n),oc(e,n))}function Lc(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),Ac(e,n)}function Tc(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,o=e.memoizedState;null!==o&&(n=o.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(a(314))}null!==r&&r.delete(t),Ac(e,n)}function jc(e,t){return He(e,t)}function Rc(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Nc(e,t,n,r){return new Rc(e,t,n,r)}function Oc(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Pc(e,t){var n=e.alternate;return null===n?((n=Nc(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=14680064&e.flags,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Dc(e,t,n,r,o,i){var s=2;if(r=e,"function"==typeof e)Oc(e)&&(s=1);else if("string"==typeof e)s=5;else e:switch(e){case S:return Mc(n.children,o,i,t);case _:s=8,o|=8;break;case C:return(e=Nc(12,n,t,2|o)).elementType=C,e.lanes=i,e;case T:return(e=Nc(13,n,t,o)).elementType=T,e.lanes=i,e;case j:return(e=Nc(19,n,t,o)).elementType=j,e.lanes=i,e;case O:return Ic(n,o,i,t);default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case E:s=10;break e;case A:s=9;break e;case L:s=11;break e;case R:s=14;break e;case N:s=16,r=null;break e}throw Error(a(130,null==e?e:typeof e,""))}return(t=Nc(s,n,t,o)).elementType=e,t.type=r,t.lanes=i,t}function Mc(e,t,n,r){return(e=Nc(7,e,r,t)).lanes=n,e}function Ic(e,t,n,r){return(e=Nc(22,e,r,t)).elementType=O,e.lanes=n,e.stateNode={isHidden:!1},e}function Fc(e,t,n){return(e=Nc(6,e,null,t)).lanes=n,e}function Bc(e,t,n){return(t=Nc(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function zc(e,t,n,r,o){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=gt(0),this.expirationTimes=gt(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=gt(0),this.identifierPrefix=r,this.onRecoverableError=o,this.mutableSourceEagerHydrationData=null}function Uc(e,t,n,r,o,a,i,s,l){return e=new zc(e,t,n,s,l),1===t?(t=1,!0===a&&(t|=8)):t=0,a=Nc(3,null,null,t),e.current=a,a.stateNode=e,a.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Na(a),e}function Vc(e){if(!e)return Lo;e:{if(Ve(e=e._reactInternals)!==e||1!==e.tag)throw Error(a(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(Oo(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(null!==t);throw Error(a(171))}if(1===e.tag){var n=e.type;if(Oo(n))return Mo(e,n,t)}return t}function qc(e,t,n,r,o,a,i,s,l){return(e=Uc(n,r,!0,e,0,a,0,s,l)).context=Vc(null),n=e.current,(a=Pa(r=tc(),o=nc(n))).callback=null!=t?t:null,Da(n,a,o),e.current.lanes=o,bt(e,o,r),oc(e,r),e}function Wc(e,t,n,r){var o=t.current,a=tc(),i=nc(o);return n=Vc(n),null===t.context?t.context=n:t.pendingContext=n,(t=Pa(a,i)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),null!==(e=Da(o,t,i))&&(rc(e,o,i,a),Ma(e,o,i)),i}function $c(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function Gc(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function Hc(e,t){Gc(e,t),(e=e.alternate)&&Gc(e,t)}_l=function(e,t,n){if(null!==e)if(e.memoizedProps!==t.pendingProps||jo.current)ws=!0;else{if(0==(e.lanes&n)&&0==(128&t.flags))return ws=!1,function(e,t,n){switch(t.tag){case 3:js(t),ha();break;case 5:ii(t);break;case 1:Oo(t.type)&&Io(t);break;case 4:oi(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,o=t.memoizedProps.value;Ao(va,r._currentValue),r._currentValue=o;break;case 13:if(null!==(r=t.memoizedState))return null!==r.dehydrated?(Ao(li,1&li.current),t.flags|=128,null):0!=(n&t.child.childLanes)?Fs(e,t,n):(Ao(li,1&li.current),null!==(e=$s(e,t,n))?e.sibling:null);Ao(li,1&li.current);break;case 19:if(r=0!=(n&t.childLanes),0!=(128&e.flags)){if(r)return qs(e,t,n);t.flags|=128}if(null!==(o=t.memoizedState)&&(o.rendering=null,o.tail=null,o.lastEffect=null),Ao(li,li.current),r)break;return null;case 22:case 23:return t.lanes=0,Cs(e,t,n)}return $s(e,t,n)}(e,t,n);ws=0!=(131072&e.flags)}else ws=!1,aa&&0!=(1048576&t.flags)&&ea(t,Ho,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Ws(e,t),e=t.pendingProps;var o=No(t,To.current);Ca(t,n),o=_i(null,t,r,e,o,n);var i=Ci();return t.flags|=1,"object"==typeof o&&null!==o&&"function"==typeof o.render&&void 0===o.$$typeof?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Oo(r)?(i=!0,Io(t)):i=!1,t.memoizedState=null!==o.state&&void 0!==o.state?o.state:null,Na(t),o.updater=Va,t.stateNode=o,o._reactInternals=t,Ga(t,r,e,n),t=Ts(null,t,r,!0,i,n)):(t.tag=0,aa&&i&&ta(t),ks(null,t,o,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Ws(e,t),e=t.pendingProps,r=(o=r._init)(r._payload),t.type=r,o=t.tag=function(e){if("function"==typeof e)return Oc(e)?1:0;if(null!=e){if((e=e.$$typeof)===L)return 11;if(e===R)return 14}return 2}(r),e=ba(r,e),o){case 0:t=As(null,t,r,e,n);break e;case 1:t=Ls(null,t,r,e,n);break e;case 11:t=xs(null,t,r,e,n);break e;case 14:t=Ss(null,t,r,ba(r.type,e),n);break e}throw Error(a(306,r,""))}return t;case 0:return r=t.type,o=t.pendingProps,As(e,t,r,o=t.elementType===r?o:ba(r,o),n);case 1:return r=t.type,o=t.pendingProps,Ls(e,t,r,o=t.elementType===r?o:ba(r,o),n);case 3:e:{if(js(t),null===e)throw Error(a(387));r=t.pendingProps,o=(i=t.memoizedState).element,Oa(e,t),Fa(t,r,null,n);var s=t.memoizedState;if(r=s.element,i.isDehydrated){if(i={element:r,isDehydrated:!1,cache:s.cache,pendingSuspenseBoundaries:s.pendingSuspenseBoundaries,transitions:s.transitions},t.updateQueue.baseState=i,t.memoizedState=i,256&t.flags){t=Rs(e,t,r,n,o=us(Error(a(423)),t));break e}if(r!==o){t=Rs(e,t,r,n,o=us(Error(a(424)),t));break e}for(oa=co(t.stateNode.containerInfo.firstChild),ra=t,aa=!0,ia=null,n=Ja(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|4096,n=n.sibling}else{if(ha(),r===o){t=$s(e,t,n);break e}ks(e,t,r,n)}t=t.child}return t;case 5:return ii(t),null===e&&ua(t),r=t.type,o=t.pendingProps,i=null!==e?e.memoizedProps:null,s=o.children,no(r,o)?s=null:null!==i&&no(r,i)&&(t.flags|=32),Es(e,t),ks(e,t,s,n),t.child;case 6:return null===e&&ua(t),null;case 13:return Fs(e,t,n);case 4:return oi(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Ka(t,null,r,n):ks(e,t,r,n),t.child;case 11:return r=t.type,o=t.pendingProps,xs(e,t,r,o=t.elementType===r?o:ba(r,o),n);case 7:return ks(e,t,t.pendingProps,n),t.child;case 8:case 12:return ks(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,o=t.pendingProps,i=t.memoizedProps,s=o.value,Ao(va,r._currentValue),r._currentValue=s,null!==i)if(sr(i.value,s)){if(i.children===o.children&&!jo.current){t=$s(e,t,n);break e}}else for(null!==(i=t.child)&&(i.return=t);null!==i;){var l=i.dependencies;if(null!==l){s=i.child;for(var c=l.firstContext;null!==c;){if(c.context===r){if(1===i.tag){(c=Pa(-1,n&-n)).tag=2;var u=i.updateQueue;if(null!==u){var d=(u=u.shared).pending;null===d?c.next=c:(c.next=d.next,d.next=c),u.pending=c}}i.lanes|=n,null!==(c=i.alternate)&&(c.lanes|=n),_a(i.return,n,t),l.lanes|=n;break}c=c.next}}else if(10===i.tag)s=i.type===t.type?null:i.child;else if(18===i.tag){if(null===(s=i.return))throw Error(a(341));s.lanes|=n,null!==(l=s.alternate)&&(l.lanes|=n),_a(s,n,t),s=i.sibling}else s=i.child;if(null!==s)s.return=i;else for(s=i;null!==s;){if(s===t){s=null;break}if(null!==(i=s.sibling)){i.return=s.return,s=i;break}s=s.return}i=s}ks(e,t,o.children,n),t=t.child}return t;case 9:return o=t.type,r=t.pendingProps.children,Ca(t,n),r=r(o=Ea(o)),t.flags|=1,ks(e,t,r,n),t.child;case 14:return o=ba(r=t.type,t.pendingProps),Ss(e,t,r,o=ba(r.type,o),n);case 15:return _s(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:ba(r,o),Ws(e,t),t.tag=1,Oo(r)?(e=!0,Io(t)):e=!1,Ca(t,n),Wa(t,r,o),Ga(t,r,o,n),Ts(null,t,r,!0,e,n);case 19:return qs(e,t,n);case 22:return Cs(e,t,n)}throw Error(a(156,t.tag))};var Zc="function"==typeof reportError?reportError:function(e){console.error(e)};function Yc(e){this._internalRoot=e}function Xc(e){this._internalRoot=e}function Kc(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType)}function Jc(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function Qc(){}function eu(e,t,n,r,o){var a=n._reactRootContainer;if(a){var i=a;if("function"==typeof o){var s=o;o=function(){var e=$c(i);s.call(e)}}Wc(t,i,e,o)}else i=function(e,t,n,r,o){if(o){if("function"==typeof r){var a=r;r=function(){var e=$c(i);a.call(e)}}var i=qc(t,r,e,0,null,!1,0,"",Qc);return e._reactRootContainer=i,e[mo]=i.current,Vr(8===e.nodeType?e.parentNode:e),dc(),i}for(;o=e.lastChild;)e.removeChild(o);if("function"==typeof r){var s=r;r=function(){var e=$c(l);s.call(e)}}var l=Uc(e,0,!1,null,0,!1,0,"",Qc);return e._reactRootContainer=l,e[mo]=l.current,Vr(8===e.nodeType?e.parentNode:e),dc((function(){Wc(t,l,n,r)})),l}(n,t,e,o,r);return $c(i)}Xc.prototype.render=Yc.prototype.render=function(e){var t=this._internalRoot;if(null===t)throw Error(a(409));Wc(e,t,null,null)},Xc.prototype.unmount=Yc.prototype.unmount=function(){var e=this._internalRoot;if(null!==e){this._internalRoot=null;var t=e.containerInfo;dc((function(){Wc(null,e,null,null)})),t[mo]=null}},Xc.prototype.unstable_scheduleHydration=function(e){if(e){var t=_t();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Ot.length&&0!==t&&t<Ot[n].priority;n++);Ot.splice(n,0,e),0===n&&It(e)}},kt=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=dt(t.pendingLanes);0!==n&&(vt(t,1|n),oc(t,Ke()),0==(6&Tl)&&(ql=Ke()+500,qo()))}break;case 13:dc((function(){var t=ja(e,1);if(null!==t){var n=tc();rc(t,e,1,n)}})),Hc(e,1)}},xt=function(e){if(13===e.tag){var t=ja(e,134217728);if(null!==t)rc(t,e,134217728,tc());Hc(e,134217728)}},St=function(e){if(13===e.tag){var t=nc(e),n=ja(e,t);if(null!==n)rc(n,e,t,tc());Hc(e,t)}},_t=function(){return yt},Ct=function(e,t){var n=yt;try{return yt=e,t()}finally{yt=n}},xe=function(e,t,n){switch(t){case"input":if(J(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var o=xo(r);if(!o)throw Error(a(90));H(r),J(r,o)}}}break;case"textarea":ae(e,n);break;case"select":null!=(t=n.value)&&ne(e,!!n.multiple,t,!1)}},Le=uc,Te=dc;var tu={usingClientEntryPoint:!1,Events:[wo,ko,xo,Ee,Ae,uc]},nu={findFiberByHostInstance:yo,bundleType:0,version:"18.2.0",rendererPackageName:"react-dom"},ru={bundleType:nu.bundleType,version:nu.version,rendererPackageName:nu.rendererPackageName,rendererConfig:nu.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:w.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=$e(e))?null:e.stateNode},findFiberByHostInstance:nu.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.2.0-next-9e3b772b8-20220608"};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var ou=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!ou.isDisabled&&ou.supportsFiber)try{ot=ou.inject(ru),at=ou}catch(ue){}}t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=tu,t.createPortal=function(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!Kc(t))throw Error(a(200));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:x,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)},t.createRoot=function(e,t){if(!Kc(e))throw Error(a(299));var n=!1,r="",o=Zc;return null!=t&&(!0===t.unstable_strictMode&&(n=!0),void 0!==t.identifierPrefix&&(r=t.identifierPrefix),void 0!==t.onRecoverableError&&(o=t.onRecoverableError)),t=Uc(e,1,!1,null,0,n,0,r,o),e[mo]=t.current,Vr(8===e.nodeType?e.parentNode:e),new Yc(t)},t.findDOMNode=function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=e._reactInternals;if(void 0===t){if("function"==typeof e.render)throw Error(a(188));throw e=Object.keys(e).join(","),Error(a(268,e))}return e=null===(e=$e(t))?null:e.stateNode},t.flushSync=function(e){return dc(e)},t.hydrate=function(e,t,n){if(!Jc(t))throw Error(a(200));return eu(null,e,t,!0,n)},t.hydrateRoot=function(e,t,n){if(!Kc(e))throw Error(a(405));var r=null!=n&&n.hydratedSources||null,o=!1,i="",s=Zc;if(null!=n&&(!0===n.unstable_strictMode&&(o=!0),void 0!==n.identifierPrefix&&(i=n.identifierPrefix),void 0!==n.onRecoverableError&&(s=n.onRecoverableError)),t=qc(t,null,e,1,null!=n?n:null,o,0,i,s),e[mo]=t.current,Vr(e),r)for(e=0;e<r.length;e++)o=(o=(n=r[e])._getVersion)(n._source),null==t.mutableSourceEagerHydrationData?t.mutableSourceEagerHydrationData=[n,o]:t.mutableSourceEagerHydrationData.push(n,o);return new Xc(t)},t.render=function(e,t,n){if(!Jc(t))throw Error(a(200));return eu(null,e,t,!1,n)},t.unmountComponentAtNode=function(e){if(!Jc(e))throw Error(a(40));return!!e._reactRootContainer&&(dc((function(){eu(null,null,e,!1,(function(){e._reactRootContainer=null,e[mo]=null}))})),!0)},t.unstable_batchedUpdates=uc,t.unstable_renderSubtreeIntoContainer=function(e,t,n,r){if(!Jc(n))throw Error(a(200));if(null==e||void 0===e._reactInternals)throw Error(a(38));return eu(e,t,n,!1,r)},t.version="18.2.0-next-9e3b772b8-20220608"},8088:(e,t,n)=>{"use strict";var r=n(1615);t.createRoot=r.createRoot,t.hydrateRoot=r.hydrateRoot},1615:(e,t,n)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(1929)},4072:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,r="function"==typeof Set,o="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function a(e,i){if(e===i)return!0;if(e&&i&&"object"==typeof e&&"object"==typeof i){if(e.constructor!==i.constructor)return!1;var s,l,c,u;if(Array.isArray(e)){if((s=e.length)!=i.length)return!1;for(l=s;0!=l--;)if(!a(e[l],i[l]))return!1;return!0}if(n&&e instanceof Map&&i instanceof Map){if(e.size!==i.size)return!1;for(u=e.entries();!(l=u.next()).done;)if(!i.has(l.value[0]))return!1;for(u=e.entries();!(l=u.next()).done;)if(!a(l.value[1],i.get(l.value[0])))return!1;return!0}if(r&&e instanceof Set&&i instanceof Set){if(e.size!==i.size)return!1;for(u=e.entries();!(l=u.next()).done;)if(!i.has(l.value[0]))return!1;return!0}if(o&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(i)){if((s=e.length)!=i.length)return!1;for(l=s;0!=l--;)if(e[l]!==i[l])return!1;return!0}if(e.constructor===RegExp)return e.source===i.source&&e.flags===i.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"==typeof e.valueOf&&"function"==typeof i.valueOf)return e.valueOf()===i.valueOf();if(e.toString!==Object.prototype.toString&&"function"==typeof e.toString&&"function"==typeof i.toString)return e.toString()===i.toString();if((s=(c=Object.keys(e)).length)!==Object.keys(i).length)return!1;for(l=s;0!=l--;)if(!Object.prototype.hasOwnProperty.call(i,c[l]))return!1;if(t&&e instanceof Element)return!1;for(l=s;0!=l--;)if(("_owner"!==c[l]&&"__v"!==c[l]&&"__o"!==c[l]||!e.$$typeof)&&!a(e[c[l]],i[c[l]]))return!1;return!0}return e!=e&&i!=i}e.exports=function(e,t){try{return a(e,t)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}}},9620:(e,t,n)=>{"use strict";n.d(t,{mg:()=>Q,vd:()=>$});var r=n(9474),o=n(2736),a=n.n(o),i=n(4072),s=n.n(i),l=n(9597),c=n.n(l),u=n(2945),d=n.n(u);function p(){return p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},p.apply(this,arguments)}function f(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,h(e,t)}function h(e,t){return h=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},h(e,t)}function m(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t.indexOf(n=a[r])>=0||(o[n]=e[n]);return o}var g={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},b={rel:["amphtml","canonical","alternate"]},v={type:["application/ld+json"]},y={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},w=Object.keys(g).map((function(e){return g[e]})),k={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},x=Object.keys(k).reduce((function(e,t){return e[k[t]]=t,e}),{}),S=function(e,t){for(var n=e.length-1;n>=0;n-=1){var r=e[n];if(Object.prototype.hasOwnProperty.call(r,t))return r[t]}return null},_=function(e){var t=S(e,g.TITLE),n=S(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,(function(){return t}));var r=S(e,"defaultTitle");return t||r||void 0},C=function(e){return S(e,"onChangeClientState")||function(){}},E=function(e,t){return t.filter((function(t){return void 0!==t[e]})).map((function(t){return t[e]})).reduce((function(e,t){return p({},e,t)}),{})},A=function(e,t){return t.filter((function(e){return void 0!==e[g.BASE]})).map((function(e){return e[g.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var r=Object.keys(n),o=0;o<r.length;o+=1){var a=r[o].toLowerCase();if(-1!==e.indexOf(a)&&n[a])return t.concat(n)}return t}),[])},L=function(e,t,n){var r={};return n.filter((function(t){return!!Array.isArray(t[e])||(void 0!==t[e]&&console&&"function"==typeof console.warn&&console.warn("Helmet: "+e+' should be of type "Array". Instead found type "'+typeof t[e]+'"'),!1)})).map((function(t){return t[e]})).reverse().reduce((function(e,n){var o={};n.filter((function(e){for(var n,a=Object.keys(e),i=0;i<a.length;i+=1){var s=a[i],l=s.toLowerCase();-1===t.indexOf(l)||"rel"===n&&"canonical"===e[n].toLowerCase()||"rel"===l&&"stylesheet"===e[l].toLowerCase()||(n=l),-1===t.indexOf(s)||"innerHTML"!==s&&"cssText"!==s&&"itemprop"!==s||(n=s)}if(!n||!e[n])return!1;var c=e[n].toLowerCase();return r[n]||(r[n]={}),o[n]||(o[n]={}),!r[n][c]&&(o[n][c]=!0,!0)})).reverse().forEach((function(t){return e.push(t)}));for(var a=Object.keys(o),i=0;i<a.length;i+=1){var s=a[i],l=p({},r[s],o[s]);r[s]=l}return e}),[]).reverse()},T=function(e,t){if(Array.isArray(e)&&e.length)for(var n=0;n<e.length;n+=1)if(e[n][t])return!0;return!1},j=function(e){return Array.isArray(e)?e.join(""):e},R=function(e,t){return Array.isArray(e)?e.reduce((function(e,n){return function(e,t){for(var n=Object.keys(e),r=0;r<n.length;r+=1)if(t[n[r]]&&t[n[r]].includes(e[n[r]]))return!0;return!1}(n,t)?e.priority.push(n):e.default.push(n),e}),{priority:[],default:[]}):{default:e}},N=function(e,t){var n;return p({},e,((n={})[t]=void 0,n))},O=[g.NOSCRIPT,g.SCRIPT,g.STYLE],P=function(e,t){return void 0===t&&(t=!0),!1===t?String(e):String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},D=function(e){return Object.keys(e).reduce((function(t,n){var r=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r}),"")},M=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce((function(t,n){return t[k[n]||n]=e[n],t}),t)},I=function(e,t){return t.map((function(t,n){var o,a=((o={key:n})["data-rh"]=!0,o);return Object.keys(t).forEach((function(e){var n=k[e]||e;"innerHTML"===n||"cssText"===n?a.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:a[n]=t[e]})),r.createElement(e,a)}))},F=function(e,t,n){switch(e){case g.TITLE:return{toComponent:function(){return n=t.titleAttributes,(o={key:e=t.title})["data-rh"]=!0,a=M(n,o),[r.createElement(g.TITLE,a,e)];var e,n,o,a},toString:function(){return function(e,t,n,r){var o=D(n),a=j(t);return o?"<"+e+' data-rh="true" '+o+">"+P(a,r)+"</"+e+">":"<"+e+' data-rh="true">'+P(a,r)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return M(t)},toString:function(){return D(t)}};default:return{toComponent:function(){return I(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,r){var o=Object.keys(r).filter((function(e){return!("innerHTML"===e||"cssText"===e)})).reduce((function(e,t){var o=void 0===r[t]?t:t+'="'+P(r[t],n)+'"';return e?e+" "+o:o}),""),a=r.innerHTML||r.cssText||"",i=-1===O.indexOf(e);return t+"<"+e+' data-rh="true" '+o+(i?"/>":">"+a+"</"+e+">")}),"")}(e,t,n)}}}},B=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,o=e.htmlAttributes,a=e.noscriptTags,i=e.styleTags,s=e.title,l=void 0===s?"":s,c=e.titleAttributes,u=e.linkTags,d=e.metaTags,p=e.scriptTags,f={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var h=function(e){var t=e.linkTags,n=e.scriptTags,r=e.encode,o=R(e.metaTags,y),a=R(t,b),i=R(n,v);return{priorityMethods:{toComponent:function(){return[].concat(I(g.META,o.priority),I(g.LINK,a.priority),I(g.SCRIPT,i.priority))},toString:function(){return F(g.META,o.priority,r)+" "+F(g.LINK,a.priority,r)+" "+F(g.SCRIPT,i.priority,r)}},metaTags:o.default,linkTags:a.default,scriptTags:i.default}}(e);f=h.priorityMethods,u=h.linkTags,d=h.metaTags,p=h.scriptTags}return{priority:f,base:F(g.BASE,t,r),bodyAttributes:F("bodyAttributes",n,r),htmlAttributes:F("htmlAttributes",o,r),link:F(g.LINK,u,r),meta:F(g.META,d,r),noscript:F(g.NOSCRIPT,a,r),script:F(g.SCRIPT,p,r),style:F(g.STYLE,i,r),title:F(g.TITLE,{title:l,titleAttributes:c},r)}},z=[],U=function(e,t){var n=this;void 0===t&&(t="undefined"!=typeof document),this.instances=[],this.value={setHelmet:function(e){n.context.helmet=e},helmetInstances:{get:function(){return n.canUseDOM?z:n.instances},add:function(e){(n.canUseDOM?z:n.instances).push(e)},remove:function(e){var t=(n.canUseDOM?z:n.instances).indexOf(e);(n.canUseDOM?z:n.instances).splice(t,1)}}},this.context=e,this.canUseDOM=t,t||(e.helmet=B({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},V=r.createContext({}),q=a().shape({setHelmet:a().func,helmetInstances:a().shape({get:a().func,add:a().func,remove:a().func})}),W="undefined"!=typeof document,$=function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new U(r.props.context,t.canUseDOM),r}return f(t,e),t.prototype.render=function(){return r.createElement(V.Provider,{value:this.helmetData.value},this.props.children)},t}(r.Component);$.canUseDOM=W,$.propTypes={context:a().shape({helmet:a().shape()}),children:a().node.isRequired},$.defaultProps={context:{}},$.displayName="HelmetProvider";var G=function(e,t){var n,r=document.head||document.querySelector(g.HEAD),o=r.querySelectorAll(e+"[data-rh]"),a=[].slice.call(o),i=[];return t&&t.length&&t.forEach((function(t){var r=document.createElement(e);for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&("innerHTML"===o?r.innerHTML=t.innerHTML:"cssText"===o?r.styleSheet?r.styleSheet.cssText=t.cssText:r.appendChild(document.createTextNode(t.cssText)):r.setAttribute(o,void 0===t[o]?"":t[o]));r.setAttribute("data-rh","true"),a.some((function(e,t){return n=t,r.isEqualNode(e)}))?a.splice(n,1):i.push(r)})),a.forEach((function(e){return e.parentNode.removeChild(e)})),i.forEach((function(e){return r.appendChild(e)})),{oldTags:a,newTags:i}},H=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute("data-rh"),o=r?r.split(","):[],a=[].concat(o),i=Object.keys(t),s=0;s<i.length;s+=1){var l=i[s],c=t[l]||"";n.getAttribute(l)!==c&&n.setAttribute(l,c),-1===o.indexOf(l)&&o.push(l);var u=a.indexOf(l);-1!==u&&a.splice(u,1)}for(var d=a.length-1;d>=0;d-=1)n.removeAttribute(a[d]);o.length===a.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==i.join(",")&&n.setAttribute("data-rh",i.join(","))}},Z=function(e,t){var n=e.baseTag,r=e.htmlAttributes,o=e.linkTags,a=e.metaTags,i=e.noscriptTags,s=e.onChangeClientState,l=e.scriptTags,c=e.styleTags,u=e.title,d=e.titleAttributes;H(g.BODY,e.bodyAttributes),H(g.HTML,r),function(e,t){void 0!==e&&document.title!==e&&(document.title=j(e)),H(g.TITLE,t)}(u,d);var p={baseTag:G(g.BASE,n),linkTags:G(g.LINK,o),metaTags:G(g.META,a),noscriptTags:G(g.NOSCRIPT,i),scriptTags:G(g.SCRIPT,l),styleTags:G(g.STYLE,c)},f={},h={};Object.keys(p).forEach((function(e){var t=p[e],n=t.newTags,r=t.oldTags;n.length&&(f[e]=n),r.length&&(h[e]=p[e].oldTags)})),t&&t(),s(e,f,h)},Y=null,X=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=e.call.apply(e,[this].concat(r))||this).rendered=!1,t}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!d()(e,this.props)},n.componentDidUpdate=function(){this.emitChange()},n.componentWillUnmount=function(){this.props.context.helmetInstances.remove(this),this.emitChange()},n.emitChange=function(){var e,t,n=this.props.context,r=n.setHelmet,o=null,a=(e=n.helmetInstances.get().map((function(e){var t=p({},e.props);return delete t.context,t})),{baseTag:A(["href"],e),bodyAttributes:E("bodyAttributes",e),defer:S(e,"defer"),encode:S(e,"encodeSpecialCharacters"),htmlAttributes:E("htmlAttributes",e),linkTags:L(g.LINK,["rel","href"],e),metaTags:L(g.META,["name","charset","http-equiv","property","itemprop"],e),noscriptTags:L(g.NOSCRIPT,["innerHTML"],e),onChangeClientState:C(e),scriptTags:L(g.SCRIPT,["src","innerHTML"],e),styleTags:L(g.STYLE,["cssText"],e),title:_(e),titleAttributes:E("titleAttributes",e),prioritizeSeoTags:T(e,"prioritizeSeoTags")});$.canUseDOM?(t=a,Y&&cancelAnimationFrame(Y),t.defer?Y=requestAnimationFrame((function(){Z(t,(function(){Y=null}))})):(Z(t),Y=null)):B&&(o=B(a)),r(o)},n.init=function(){this.rendered||(this.rendered=!0,this.props.context.helmetInstances.add(this),this.emitChange())},n.render=function(){return this.init(),null},t}(r.Component);X.propTypes={context:q.isRequired},X.displayName="HelmetDispatcher";var K=["children"],J=["children"],Q=function(e){function t(){return e.apply(this,arguments)||this}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!s()(N(this.props,"helmetData"),N(e,"helmetData"))},n.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case g.SCRIPT:case g.NOSCRIPT:return{innerHTML:t};case g.STYLE:return{cssText:t};default:throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")}},n.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren;return p({},r,((t={})[n.type]=[].concat(r[n.type]||[],[p({},e.newChildProps,this.mapNestedChildrenToProps(n,e.nestedChildren))]),t))},n.mapObjectTypeChildren=function(e){var t,n,r=e.child,o=e.newProps,a=e.newChildProps,i=e.nestedChildren;switch(r.type){case g.TITLE:return p({},o,((t={})[r.type]=i,t.titleAttributes=p({},a),t));case g.BODY:return p({},o,{bodyAttributes:p({},a)});case g.HTML:return p({},o,{htmlAttributes:p({},a)});default:return p({},o,((n={})[r.type]=p({},a),n))}},n.mapArrayTypeChildrenToProps=function(e,t){var n=p({},t);return Object.keys(e).forEach((function(t){var r;n=p({},n,((r={})[t]=e[t],r))})),n},n.warnOnInvalidChildren=function(e,t){return c()(w.some((function(t){return e.type===t})),"function"==typeof e.type?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":"Only elements types "+w.join(", ")+" are allowed. Helmet does not support rendering <"+e.type+"> elements. Refer to our API for more information."),c()(!t||"string"==typeof t||Array.isArray(t)&&!t.some((function(e){return"string"!=typeof e})),"Helmet expects a string as a child of <"+e.type+">. Did you forget to wrap your children in braces? ( <"+e.type+">{``}</"+e.type+"> ) Refer to our API for more information."),!0},n.mapChildrenToProps=function(e,t){var n=this,o={};return r.Children.forEach(e,(function(e){if(e&&e.props){var r=e.props,a=r.children,i=m(r,K),s=Object.keys(i).reduce((function(e,t){return e[x[t]||t]=i[t],e}),{}),l=e.type;switch("symbol"==typeof l?l=l.toString():n.warnOnInvalidChildren(e,a),l){case g.FRAGMENT:t=n.mapChildrenToProps(a,t);break;case g.LINK:case g.META:case g.NOSCRIPT:case g.SCRIPT:case g.STYLE:o=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:o,newChildProps:s,nestedChildren:a});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:s,nestedChildren:a})}}})),this.mapArrayTypeChildrenToProps(o,t)},n.render=function(){var e=this.props,t=e.children,n=m(e,J),o=p({},n),a=n.helmetData;return t&&(o=this.mapChildrenToProps(t,o)),!a||a instanceof U||(a=new U(a.context,a.instances)),a?r.createElement(X,p({},o,{context:a.value,helmetData:void 0})):r.createElement(V.Consumer,null,(function(e){return r.createElement(X,p({},o,{context:e}))}))},t}(r.Component);Q.propTypes={base:a().object,bodyAttributes:a().object,children:a().oneOfType([a().arrayOf(a().node),a().node]),defaultTitle:a().string,defer:a().bool,encodeSpecialCharacters:a().bool,htmlAttributes:a().object,link:a().arrayOf(a().object),meta:a().arrayOf(a().object),noscript:a().arrayOf(a().object),onChangeClientState:a().func,script:a().arrayOf(a().object),style:a().arrayOf(a().object),title:a().string,titleAttributes:a().object,titleTemplate:a().string,prioritizeSeoTags:a().bool,helmetData:a().object},Q.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},Q.displayName="Helmet"},5843:(e,t)=>{"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,o=n?Symbol.for("react.portal"):60106,a=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,s=n?Symbol.for("react.profiler"):60114,l=n?Symbol.for("react.provider"):60109,c=n?Symbol.for("react.context"):60110,u=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,p=n?Symbol.for("react.forward_ref"):60112,f=n?Symbol.for("react.suspense"):60113,h=n?Symbol.for("react.suspense_list"):60120,m=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,b=n?Symbol.for("react.block"):60121,v=n?Symbol.for("react.fundamental"):60117,y=n?Symbol.for("react.responder"):60118,w=n?Symbol.for("react.scope"):60119;function k(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case u:case d:case a:case s:case i:case f:return e;default:switch(e=e&&e.$$typeof){case c:case p:case g:case m:case l:return e;default:return t}}case o:return t}}}function x(e){return k(e)===d}t.AsyncMode=u,t.ConcurrentMode=d,t.ContextConsumer=c,t.ContextProvider=l,t.Element=r,t.ForwardRef=p,t.Fragment=a,t.Lazy=g,t.Memo=m,t.Portal=o,t.Profiler=s,t.StrictMode=i,t.Suspense=f,t.isAsyncMode=function(e){return x(e)||k(e)===u},t.isConcurrentMode=x,t.isContextConsumer=function(e){return k(e)===c},t.isContextProvider=function(e){return k(e)===l},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return k(e)===p},t.isFragment=function(e){return k(e)===a},t.isLazy=function(e){return k(e)===g},t.isMemo=function(e){return k(e)===m},t.isPortal=function(e){return k(e)===o},t.isProfiler=function(e){return k(e)===s},t.isStrictMode=function(e){return k(e)===i},t.isSuspense=function(e){return k(e)===f},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===a||e===d||e===s||e===i||e===f||e===h||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===m||e.$$typeof===l||e.$$typeof===c||e.$$typeof===p||e.$$typeof===v||e.$$typeof===y||e.$$typeof===w||e.$$typeof===b)},t.typeOf=k},5959:(e,t,n)=>{"use strict";e.exports=n(5843)},7221:(e,t,n)=>{"use strict";n.d(t,{u:()=>i,v:()=>s});var r=n(241),o=n(2994),a=n(9474);function i(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var o=e.path?(0,r.B6)(t,e):n.length?n[n.length-1].match:r.Ix.computeRootMatch(t);return o&&(n.push({route:e,match:o}),e.routes&&i(e.routes,t,n)),o})),n}function s(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?a.createElement(r.dO,n,e.map((function(e,n){return a.createElement(r.qh,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,o.A)({},n,{},t,{route:e})):a.createElement(e.component,(0,o.A)({},n,t,{route:e}))}})}))):null}},9202:(e,t,n)=>{"use strict";n.d(t,{Kd:()=>u,N_:()=>g,k2:()=>y});var r=n(241),o=n(6398),a=n(9474),i=n(8602),s=n(2994),l=n(2693),c=n(2630),u=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.zR)(t.props),t}return(0,o.A)(t,e),t.prototype.render=function(){return a.createElement(r.Ix,{history:this.history,children:this.props.children})},t}(a.Component);a.Component;var d=function(e,t){return"function"==typeof e?e(t):e},p=function(e,t){return"string"==typeof e?(0,i.yJ)(e,null,null,t):e},f=function(e){return e},h=a.forwardRef;void 0===h&&(h=f);var m=h((function(e,t){var n=e.innerRef,r=e.navigate,o=e.onClick,i=(0,l.A)(e,["innerRef","navigate","onClick"]),c=i.target,u=(0,s.A)({},i,{onClick:function(e){try{o&&o(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||c&&"_self"!==c||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),r())}});return u.ref=f!==h&&t||n,a.createElement("a",u)}));var g=h((function(e,t){var n=e.component,o=void 0===n?m:n,u=e.replace,g=e.to,b=e.innerRef,v=(0,l.A)(e,["component","replace","to","innerRef"]);return a.createElement(r.XZ.Consumer,null,(function(e){e||(0,c.A)(!1);var n=e.history,r=p(d(g,e.location),e.location),l=r?n.createHref(r):"",m=(0,s.A)({},v,{href:l,navigate:function(){var t=d(g,e.location),r=(0,i.AO)(e.location)===(0,i.AO)(p(t));(u||r?n.replace:n.push)(t)}});return f!==h?m.ref=t||b:m.innerRef=b,a.createElement(o,m)}))})),b=function(e){return e},v=a.forwardRef;void 0===v&&(v=b);var y=v((function(e,t){var n=e["aria-current"],o=void 0===n?"page":n,i=e.activeClassName,u=void 0===i?"active":i,f=e.activeStyle,h=e.className,m=e.exact,y=e.isActive,w=e.location,k=e.sensitive,x=e.strict,S=e.style,_=e.to,C=e.innerRef,E=(0,l.A)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return a.createElement(r.XZ.Consumer,null,(function(e){e||(0,c.A)(!1);var n=w||e.location,i=p(d(_,n),n),l=i.pathname,A=l&&l.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),L=A?(0,r.B6)(n.pathname,{path:A,exact:m,sensitive:k,strict:x}):null,T=!!(y?y(L,n):L),j="function"==typeof h?h(T):h,R="function"==typeof S?S(T):S;T&&(j=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter((function(e){return e})).join(" ")}(j,u),R=(0,s.A)({},R,f));var N=(0,s.A)({"aria-current":T&&o||null,className:j,style:R,to:i},E);return b!==v?N.ref=t||C:N.innerRef=C,a.createElement(g,N)}))}))},241:(e,t,n)=>{"use strict";n.d(t,{B6:()=>T,Ix:()=>y,W6:()=>F,XZ:()=>v,dO:()=>M,qh:()=>j,rd:()=>C,zy:()=>B});var r=n(6398),o=n(9474),a=n(2736),i=n.n(a),s=n(8602),l=n(2630),c=n(2994),u=n(6150),d=n.n(u),p=(n(5959),n(2693)),f=(n(1035),1073741823),h="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};var m=o.createContext||function(e,t){var n,a,s="__create-react-context-"+function(){var e="__global_unique_id__";return h[e]=(h[e]||0)+1}()+"__",l=function(e){function n(){for(var t,n,r,o=arguments.length,a=new Array(o),i=0;i<o;i++)a[i]=arguments[i];return(t=e.call.apply(e,[this].concat(a))||this).emitter=(n=t.props.value,r=[],{on:function(e){r.push(e)},off:function(e){r=r.filter((function(t){return t!==e}))},get:function(){return n},set:function(e,t){n=e,r.forEach((function(e){return e(n,t)}))}}),t}(0,r.A)(n,e);var o=n.prototype;return o.getChildContext=function(){var e;return(e={})[s]=this.emitter,e},o.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,o=e.value;((a=r)===(i=o)?0!==a||1/a==1/i:a!=a&&i!=i)?n=0:(n="function"==typeof t?t(r,o):f,0!==(n|=0)&&this.emitter.set(e.value,n))}var a,i},o.render=function(){return this.props.children},n}(o.Component);l.childContextTypes=((n={})[s]=i().object.isRequired,n);var c=function(t){function n(){for(var e,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(e=t.call.apply(t,[this].concat(r))||this).observedBits=void 0,e.state={value:e.getValue()},e.onUpdate=function(t,n){0!=((0|e.observedBits)&n)&&e.setState({value:e.getValue()})},e}(0,r.A)(n,t);var o=n.prototype;return o.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?f:t},o.componentDidMount=function(){this.context[s]&&this.context[s].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?f:e},o.componentWillUnmount=function(){this.context[s]&&this.context[s].off(this.onUpdate)},o.getValue=function(){return this.context[s]?this.context[s].get():e},o.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(o.Component);return c.contextTypes=((a={})[s]=i().object,a),{Provider:l,Consumer:c}},g=function(e){var t=m();return t.displayName=e,t},b=g("Router-History"),v=g("Router"),y=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen((function(e){n._pendingLocation=e}))),n}(0,r.A)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){var e=this;this._isMounted=!0,this.unlisten&&this.unlisten(),this.props.staticContext||(this.unlisten=this.props.history.listen((function(t){e._isMounted&&e.setState({location:t})}))),this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},n.render=function(){return o.createElement(v.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},o.createElement(b.Provider,{children:this.props.children||null,value:this.props.history}))},t}(o.Component);o.Component;var w=function(e){function t(){return e.apply(this,arguments)||this}(0,r.A)(t,e);var n=t.prototype;return n.componentDidMount=function(){this.props.onMount&&this.props.onMount.call(this,this)},n.componentDidUpdate=function(e){this.props.onUpdate&&this.props.onUpdate.call(this,this,e)},n.componentWillUnmount=function(){this.props.onUnmount&&this.props.onUnmount.call(this,this)},n.render=function(){return null},t}(o.Component);var k={},x=1e4,S=0;function _(e,t){return void 0===e&&(e="/"),void 0===t&&(t={}),"/"===e?e:function(e){if(k[e])return k[e];var t=d().compile(e);return S<x&&(k[e]=t,S++),t}(e)(t,{pretty:!0})}function C(e){var t=e.computedMatch,n=e.to,r=e.push,a=void 0!==r&&r;return o.createElement(v.Consumer,null,(function(e){e||(0,l.A)(!1);var r=e.history,i=e.staticContext,u=a?r.push:r.replace,d=(0,s.yJ)(t?"string"==typeof n?_(n,t.params):(0,c.A)({},n,{pathname:_(n.pathname,t.params)}):n);return i?(u(d),null):o.createElement(w,{onMount:function(){u(d)},onUpdate:function(e,t){var n=(0,s.yJ)(t.to);(0,s.Fu)(n,(0,c.A)({},d,{key:n.key}))||u(d)},to:n})}))}var E={},A=1e4,L=0;function T(e,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var n=t,r=n.path,o=n.exact,a=void 0!==o&&o,i=n.strict,s=void 0!==i&&i,l=n.sensitive,c=void 0!==l&&l;return[].concat(r).reduce((function(t,n){if(!n&&""!==n)return null;if(t)return t;var r=function(e,t){var n=""+t.end+t.strict+t.sensitive,r=E[n]||(E[n]={});if(r[e])return r[e];var o=[],a={regexp:d()(e,o,t),keys:o};return L<A&&(r[e]=a,L++),a}(n,{end:a,strict:s,sensitive:c}),o=r.regexp,i=r.keys,l=o.exec(e);if(!l)return null;var u=l[0],p=l.slice(1),f=e===u;return a&&!f?null:{path:n,url:"/"===n&&""===u?"/":u,isExact:f,params:i.reduce((function(e,t,n){return e[t.name]=p[n],e}),{})}}),null)}var j=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.A)(t,e),t.prototype.render=function(){var e=this;return o.createElement(v.Consumer,null,(function(t){t||(0,l.A)(!1);var n=e.props.location||t.location,r=e.props.computedMatch?e.props.computedMatch:e.props.path?T(n.pathname,e.props):t.match,a=(0,c.A)({},t,{location:n,match:r}),i=e.props,s=i.children,u=i.component,d=i.render;return Array.isArray(s)&&function(e){return 0===o.Children.count(e)}(s)&&(s=null),o.createElement(v.Provider,{value:a},a.match?s?"function"==typeof s?s(a):s:u?o.createElement(u,a):d?d(a):null:"function"==typeof s?s(a):null)}))},t}(o.Component);function R(e){return"/"===e.charAt(0)?e:"/"+e}function N(e,t){if(!e)return t;var n=R(e);return 0!==t.pathname.indexOf(n)?t:(0,c.A)({},t,{pathname:t.pathname.substr(n.length)})}function O(e){return"string"==typeof e?e:(0,s.AO)(e)}function P(e){return function(){(0,l.A)(!1)}}function D(){}o.Component;var M=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.A)(t,e),t.prototype.render=function(){var e=this;return o.createElement(v.Consumer,null,(function(t){t||(0,l.A)(!1);var n,r,a=e.props.location||t.location;return o.Children.forEach(e.props.children,(function(e){if(null==r&&o.isValidElement(e)){n=e;var i=e.props.path||e.props.from;r=i?T(a.pathname,(0,c.A)({},e.props,{path:i})):t.match}})),r?o.cloneElement(n,{location:a,computedMatch:r}):null}))},t}(o.Component);var I=o.useContext;function F(){return I(b)}function B(){return I(v).location}},8034:(e,t,n)=>{"use strict";var r=n(9474),o=Symbol.for("react.element"),a=Symbol.for("react.fragment"),i=Object.prototype.hasOwnProperty,s=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,l={key:!0,ref:!0,__self:!0,__source:!0};function c(e,t,n){var r,a={},c=null,u=null;for(r in void 0!==n&&(c=""+n),void 0!==t.key&&(c=""+t.key),void 0!==t.ref&&(u=t.ref),t)i.call(t,r)&&!l.hasOwnProperty(r)&&(a[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===a[r]&&(a[r]=t[r]);return{$$typeof:o,type:e,key:c,ref:u,props:a,_owner:s.current}}t.Fragment=a,t.jsx=c,t.jsxs=c},2749:(e,t)=>{"use strict";var n=Symbol.for("react.element"),r=Symbol.for("react.portal"),o=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),s=Symbol.for("react.provider"),l=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),u=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),p=Symbol.for("react.lazy"),f=Symbol.iterator;var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},m=Object.assign,g={};function b(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||h}function v(){}function y(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||h}b.prototype.isReactComponent={},b.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},b.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},v.prototype=b.prototype;var w=y.prototype=new v;w.constructor=y,m(w,b.prototype),w.isPureReactComponent=!0;var k=Array.isArray,x=Object.prototype.hasOwnProperty,S={current:null},_={key:!0,ref:!0,__self:!0,__source:!0};function C(e,t,r){var o,a={},i=null,s=null;if(null!=t)for(o in void 0!==t.ref&&(s=t.ref),void 0!==t.key&&(i=""+t.key),t)x.call(t,o)&&!_.hasOwnProperty(o)&&(a[o]=t[o]);var l=arguments.length-2;if(1===l)a.children=r;else if(1<l){for(var c=Array(l),u=0;u<l;u++)c[u]=arguments[u+2];a.children=c}if(e&&e.defaultProps)for(o in l=e.defaultProps)void 0===a[o]&&(a[o]=l[o]);return{$$typeof:n,type:e,key:i,ref:s,props:a,_owner:S.current}}function E(e){return"object"==typeof e&&null!==e&&e.$$typeof===n}var A=/\/+/g;function L(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function T(e,t,o,a,i){var s=typeof e;"undefined"!==s&&"boolean"!==s||(e=null);var l=!1;if(null===e)l=!0;else switch(s){case"string":case"number":l=!0;break;case"object":switch(e.$$typeof){case n:case r:l=!0}}if(l)return i=i(l=e),e=""===a?"."+L(l,0):a,k(i)?(o="",null!=e&&(o=e.replace(A,"$&/")+"/"),T(i,t,o,"",(function(e){return e}))):null!=i&&(E(i)&&(i=function(e,t){return{$$typeof:n,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(i,o+(!i.key||l&&l.key===i.key?"":(""+i.key).replace(A,"$&/")+"/")+e)),t.push(i)),1;if(l=0,a=""===a?".":a+":",k(e))for(var c=0;c<e.length;c++){var u=a+L(s=e[c],c);l+=T(s,t,o,u,i)}else if(u=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=f&&e[f]||e["@@iterator"])?e:null}(e),"function"==typeof u)for(e=u.call(e),c=0;!(s=e.next()).done;)l+=T(s=s.value,t,o,u=a+L(s,c++),i);else if("object"===s)throw t=String(e),Error("Objects are not valid as a React child (found: "+("[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return l}function j(e,t,n){if(null==e)return e;var r=[],o=0;return T(e,r,"","",(function(e){return t.call(n,e,o++)})),r}function R(e){if(-1===e._status){var t=e._result;(t=t()).then((function(t){0!==e._status&&-1!==e._status||(e._status=1,e._result=t)}),(function(t){0!==e._status&&-1!==e._status||(e._status=2,e._result=t)})),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var N={current:null},O={transition:null},P={ReactCurrentDispatcher:N,ReactCurrentBatchConfig:O,ReactCurrentOwner:S};t.Children={map:j,forEach:function(e,t,n){j(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return j(e,(function(){t++})),t},toArray:function(e){return j(e,(function(e){return e}))||[]},only:function(e){if(!E(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},t.Component=b,t.Fragment=o,t.Profiler=i,t.PureComponent=y,t.StrictMode=a,t.Suspense=u,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=P,t.cloneElement=function(e,t,r){if(null==e)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var o=m({},e.props),a=e.key,i=e.ref,s=e._owner;if(null!=t){if(void 0!==t.ref&&(i=t.ref,s=S.current),void 0!==t.key&&(a=""+t.key),e.type&&e.type.defaultProps)var l=e.type.defaultProps;for(c in t)x.call(t,c)&&!_.hasOwnProperty(c)&&(o[c]=void 0===t[c]&&void 0!==l?l[c]:t[c])}var c=arguments.length-2;if(1===c)o.children=r;else if(1<c){l=Array(c);for(var u=0;u<c;u++)l[u]=arguments[u+2];o.children=l}return{$$typeof:n,type:e.type,key:a,ref:i,props:o,_owner:s}},t.createContext=function(e){return(e={$$typeof:l,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null}).Provider={$$typeof:s,_context:e},e.Consumer=e},t.createElement=C,t.createFactory=function(e){var t=C.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:c,render:e}},t.isValidElement=E,t.lazy=function(e){return{$$typeof:p,_payload:{_status:-1,_result:e},_init:R}},t.memo=function(e,t){return{$$typeof:d,type:e,compare:void 0===t?null:t}},t.startTransition=function(e){var t=O.transition;O.transition={};try{e()}finally{O.transition=t}},t.unstable_act=function(){throw Error("act(...) is not supported in production builds of React.")},t.useCallback=function(e,t){return N.current.useCallback(e,t)},t.useContext=function(e){return N.current.useContext(e)},t.useDebugValue=function(){},t.useDeferredValue=function(e){return N.current.useDeferredValue(e)},t.useEffect=function(e,t){return N.current.useEffect(e,t)},t.useId=function(){return N.current.useId()},t.useImperativeHandle=function(e,t,n){return N.current.useImperativeHandle(e,t,n)},t.useInsertionEffect=function(e,t){return N.current.useInsertionEffect(e,t)},t.useLayoutEffect=function(e,t){return N.current.useLayoutEffect(e,t)},t.useMemo=function(e,t){return N.current.useMemo(e,t)},t.useReducer=function(e,t,n){return N.current.useReducer(e,t,n)},t.useRef=function(e){return N.current.useRef(e)},t.useState=function(e){return N.current.useState(e)},t.useSyncExternalStore=function(e,t,n){return N.current.useSyncExternalStore(e,t,n)},t.useTransition=function(){return N.current.useTransition()},t.version="18.2.0"},9474:(e,t,n)=>{"use strict";e.exports=n(2749)},3274:(e,t,n)=>{"use strict";e.exports=n(8034)},8207:(e,t)=>{"use strict";function n(e,t){var n=e.length;e.push(t);e:for(;0<n;){var r=n-1>>>1,o=e[r];if(!(0<a(o,t)))break e;e[r]=t,e[n]=o,n=r}}function r(e){return 0===e.length?null:e[0]}function o(e){if(0===e.length)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,o=e.length,i=o>>>1;r<i;){var s=2*(r+1)-1,l=e[s],c=s+1,u=e[c];if(0>a(l,n))c<o&&0>a(u,l)?(e[r]=u,e[c]=n,r=c):(e[r]=l,e[s]=n,r=s);else{if(!(c<o&&0>a(u,n)))break e;e[r]=u,e[c]=n,r=c}}}return t}function a(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if("object"==typeof performance&&"function"==typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var s=Date,l=s.now();t.unstable_now=function(){return s.now()-l}}var c=[],u=[],d=1,p=null,f=3,h=!1,m=!1,g=!1,b="function"==typeof setTimeout?setTimeout:null,v="function"==typeof clearTimeout?clearTimeout:null,y="undefined"!=typeof setImmediate?setImmediate:null;function w(e){for(var t=r(u);null!==t;){if(null===t.callback)o(u);else{if(!(t.startTime<=e))break;o(u),t.sortIndex=t.expirationTime,n(c,t)}t=r(u)}}function k(e){if(g=!1,w(e),!m)if(null!==r(c))m=!0,O(x);else{var t=r(u);null!==t&&P(k,t.startTime-e)}}function x(e,n){m=!1,g&&(g=!1,v(E),E=-1),h=!0;var a=f;try{for(w(n),p=r(c);null!==p&&(!(p.expirationTime>n)||e&&!T());){var i=p.callback;if("function"==typeof i){p.callback=null,f=p.priorityLevel;var s=i(p.expirationTime<=n);n=t.unstable_now(),"function"==typeof s?p.callback=s:p===r(c)&&o(c),w(n)}else o(c);p=r(c)}if(null!==p)var l=!0;else{var d=r(u);null!==d&&P(k,d.startTime-n),l=!1}return l}finally{p=null,f=a,h=!1}}"undefined"!=typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);var S,_=!1,C=null,E=-1,A=5,L=-1;function T(){return!(t.unstable_now()-L<A)}function j(){if(null!==C){var e=t.unstable_now();L=e;var n=!0;try{n=C(!0,e)}finally{n?S():(_=!1,C=null)}}else _=!1}if("function"==typeof y)S=function(){y(j)};else if("undefined"!=typeof MessageChannel){var R=new MessageChannel,N=R.port2;R.port1.onmessage=j,S=function(){N.postMessage(null)}}else S=function(){b(j,0)};function O(e){C=e,_||(_=!0,S())}function P(e,n){E=b((function(){e(t.unstable_now())}),n)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){m||h||(m=!0,O(x))},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):A=0<e?Math.floor(1e3/e):5},t.unstable_getCurrentPriorityLevel=function(){return f},t.unstable_getFirstCallbackNode=function(){return r(c)},t.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=function(){},t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},t.unstable_scheduleCallback=function(e,o,a){var i=t.unstable_now();switch("object"==typeof a&&null!==a?a="number"==typeof(a=a.delay)&&0<a?i+a:i:a=i,e){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return e={id:d++,callback:o,priorityLevel:e,startTime:a,expirationTime:s=a+s,sortIndex:-1},a>i?(e.sortIndex=a,n(u,e),null===r(c)&&e===r(u)&&(g?(v(E),E=-1):g=!0,P(k,a-i))):(e.sortIndex=s,n(c,e),m||h||(m=!0,O(x))),e},t.unstable_shouldYield=T,t.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}},2614:(e,t,n)=>{"use strict";e.exports=n(8207)},2945:e=>{e.exports=function(e,t,n,r){var o=n?n.call(r,e,t):void 0;if(void 0!==o)return!!o;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var a=Object.keys(e),i=Object.keys(t);if(a.length!==i.length)return!1;for(var s=Object.prototype.hasOwnProperty.bind(t),l=0;l<a.length;l++){var c=a[l];if(!s(c))return!1;var u=e[c],d=t[c];if(!1===(o=n?n.call(r,u,d,c):void 0)||void 0===o&&u!==d)return!1}return!0}},7500:(e,t)=>{var n;!function(){"use strict";var r={}.hasOwnProperty;function o(){for(var e="",t=0;t<arguments.length;t++){var n=arguments[t];n&&(e=i(e,a(n)))}return e}function a(e){if("string"==typeof e||"number"==typeof e)return e;if("object"!=typeof e)return"";if(Array.isArray(e))return o.apply(null,e);if(e.toString!==Object.prototype.toString&&!e.toString.toString().includes("[native code]"))return e.toString();var t="";for(var n in e)r.call(e,n)&&e[n]&&(t=i(t,n));return t}function i(e,t){return t?e?e+" "+t:e+t:e}e.exports?(o.default=o,e.exports=o):void 0===(n=function(){return o}.apply(t,[]))||(e.exports=n)}()},4784:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={title:"Morph docs \u2013 The Optimistic zkEVM Scaling Solution docs",tagline:"",favicon:"https://www.morphl2.io/favicon.ico",staticDirectories:["public","static"],url:"https://docs.morphl2.io",baseUrl:"/",organizationName:"morph labs",projectName:"morph docs",onBrokenLinks:"throw",onBrokenMarkdownLinks:"warn",i18n:{defaultLocale:"en",locales:["en"],path:"i18n",localeConfigs:{}},plugins:["docusaurus-plugin-sass",null,["@docusaurus/plugin-client-redirects",{fromExtensions:["html","htm"],toExtensions:["exe","zip"],redirects:[{to:"/docs/about-morph/user-navigation-page",from:["/","/docs"]}]}]],presets:[["classic",{docs:{sidebarPath:"/Users/danny.fu/morphl2/morphism-doc/sidebars.js",editUrl:"https://github.com/morph-l2/morph-doc/tree/main",remarkPlugins:[null],rehypePlugins:[null]},blog:{showReadingTime:!0,editUrl:"https://github.com/morph-l2/morph-doc/tree/main",remarkPlugins:[null],rehypePlugins:[null]},theme:{customCss:["/Users/danny.fu/morphl2/morphism-doc/src/css/fonts.scss","/Users/danny.fu/morphl2/morphism-doc/src/css/custom.scss"]}}]],themeConfig:{prism:{theme:{plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},darkTheme:{plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},additionalLanguages:[],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},metadata:[{name:"keywords",content:"Morph,EVM-equivalent,Optimistic,zkEVM"},{name:"google-site-verification",content:"-GPotcMH5Ecuj8EnU-Tasmm8TOZXEHWEPD5qP5d0FEU"}],algolia:{appId:"SHJ1679REC",apiKey:"df15e839c737b5e37ef9147c341ac5f1",indexName:"morph_doc",contextualSearch:!0,replaceSearchResultPathname:{from:"/docs/",to:"/docs/"},searchParameters:{},searchPagePath:"search"},image:"img/docusaurus-social-card.jpg",colorMode:{defaultMode:"light",disableSwitch:!1,respectPrefersColorScheme:!1},sidebar:{autoCollapseCategories:!0},navbar:{title:"",logo:{alt:"Morph Doc Logo",src:"logo/LogoMorphGreen-summary.svg",srcDark:"logo/LogoMorphGreen-summary.svg"},items:[{type:"doc",position:"right",docId:"about-morph/user-navigation-page",label:"For Users"},{type:"doc",position:"right",docId:"build-on-morph/developer-navigation-page",label:"For Developers"}],hideOnScroll:!1},footer:{links:[{title:"Learn",items:[{label:"Docs",href:"https://docs.morphl2.io/docs/how-morph-works/intro/"},{label:"Blog",href:"https://blog.morphl2.io/"}]},{title:"Developers",items:[{label:"APIs",href:"https://explorer.morphl2.io/api-docs"},{label:"Tools",href:"https://morphl2.io/build"}]},{title:"Community",items:[{label:"Forum",href:"https://forum.morphl2.io"},{label:"Telegram",href:"https://t.me/MorphL2official"},{label:"Twitter",href:"https://twitter.com/Morphl2"},{label:"Discord",href:"https://discord.gg/L2Morph"}]},{title:"Company",items:[{label:"About",href:"https://morphl2.io/about"},{label:"Contact us",href:"https://morphl2.io/about"},{label:"Careers",href:"https://morphl2.io/careers"},{label:"Brand Kit",href:"https://morphl2brand.notion.site/Morph-brand-guideline-56eca01ef6d14212be0e9562ad1e2fc1"}]}],copyright:"\xa9 2024 Morph. All rights reserved.",style:"light"},docs:{versionPersistence:"localStorage",sidebar:{hideable:!1,autoCollapseCategories:!1}},tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3}},baseUrlIssueBanner:!0,onBrokenAnchors:"warn",onDuplicateRoutes:"warn",customFields:{},themes:[],scripts:[],headTags:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1,markdown:{format:"mdx",mermaid:!1,mdx1Compat:{comments:!0,admonitions:!0,headingIds:!0}}}},2994:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{A:()=>r})},6398:(e,t,n)=>{"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}function o(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,{A:()=>o})},2693:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}n.d(t,{A:()=>r})},8923:(e,t,n)=>{"use strict";function r(e){var t,n,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e)){var a=e.length;for(t=0;t<a;t++)e[t]&&(n=r(e[t]))&&(o&&(o+=" "),o+=n)}else for(n in e)e[n]&&(o&&(o+=" "),o+=n);return o}n.d(t,{A:()=>o});const o=function(){for(var e,t,n=0,o="",a=arguments.length;n<a;n++)(e=arguments[n])&&(t=r(e))&&(o&&(o+=" "),o+=t);return o}},369:(e,t,n)=>{"use strict";n.d(t,{My:()=>A,f4:()=>ee});var r,o,a,i,s,l,c,u=n(9474),d=n(8923),p=Object.create,f=Object.defineProperty,h=Object.defineProperties,m=Object.getOwnPropertyDescriptor,g=Object.getOwnPropertyDescriptors,b=Object.getOwnPropertyNames,v=Object.getOwnPropertySymbols,y=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty,k=Object.prototype.propertyIsEnumerable,x=(e,t,n)=>t in e?f(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,S=(e,t)=>{for(var n in t||(t={}))w.call(t,n)&&x(e,n,t[n]);if(v)for(var n of v(t))k.call(t,n)&&x(e,n,t[n]);return e},_=(e,t)=>h(e,g(t)),C=(e,t)=>{var n={};for(var r in e)w.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&v)for(var r of v(e))t.indexOf(r)<0&&k.call(e,r)&&(n[r]=e[r]);return n},E=(r={"../../node_modules/.pnpm/prismjs@1.29.0_patch_hash=vrxx3pzkik6jpmgpayxfjunetu/node_modules/prismjs/prism.js"(e,t){var n=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof o?new o(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function e(t,n){var o,a;switch(n=n||{},r.util.type(t)){case"Object":if(a=r.util.objId(t),n[a])return n[a];for(var i in o={},n[a]=o,t)t.hasOwnProperty(i)&&(o[i]=e(t[i],n));return o;case"Array":return a=r.util.objId(t),n[a]?n[a]:(o=[],n[a]=o,t.forEach((function(t,r){o[r]=e(t,n)})),o);default:return t}},getLanguage:function(t){for(;t;){var n=e.exec(t.className);if(n)return n[1].toLowerCase();t=t.parentElement}return"none"},setLanguage:function(t,n){t.className=t.className.replace(RegExp(e,"gi"),""),t.classList.add("language-"+n)},isActive:function(e,t,n){for(var r="no-"+t;e;){var o=e.classList;if(o.contains(t))return!0;if(o.contains(r))return!1;e=e.parentElement}return!!n}},languages:{plain:n,plaintext:n,text:n,txt:n,extend:function(e,t){var n=r.util.clone(r.languages[e]);for(var o in t)n[o]=t[o];return n},insertBefore:function(e,t,n,o){var a=(o=o||r.languages)[e],i={};for(var s in a)if(a.hasOwnProperty(s)){if(s==t)for(var l in n)n.hasOwnProperty(l)&&(i[l]=n[l]);n.hasOwnProperty(s)||(i[s]=a[s])}var c=o[e];return o[e]=i,r.languages.DFS(r.languages,(function(t,n){n===c&&t!=e&&(this[t]=i)})),i},DFS:function e(t,n,o,a){a=a||{};var i=r.util.objId;for(var s in t)if(t.hasOwnProperty(s)){n.call(t,s,t[s],o||s);var l=t[s],c=r.util.type(l);"Object"!==c||a[i(l)]?"Array"!==c||a[i(l)]||(a[i(l)]=!0,e(l,n,s,a)):(a[i(l)]=!0,e(l,n,null,a))}}},plugins:{},highlight:function(e,t,n){var a={code:e,grammar:t,language:n};if(r.hooks.run("before-tokenize",a),!a.grammar)throw new Error('The language "'+a.language+'" has no grammar.');return a.tokens=r.tokenize(a.code,a.grammar),r.hooks.run("after-tokenize",a),o.stringify(r.util.encode(a.tokens),a.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var o=new s;return l(o,o.head,e),i(e,o,t,o.head,0),function(e){for(var t=[],n=e.head.next;n!==e.tail;)t.push(n.value),n=n.next;return t}(o)},hooks:{all:{},add:function(e,t){var n=r.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=r.hooks.all[e];if(n&&n.length)for(var o,a=0;o=n[a++];)o(t)}},Token:o};function o(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function a(e,t,n,r){e.lastIndex=t;var o=e.exec(n);if(o&&r&&o[1]){var a=o[1].length;o.index+=a,o[0]=o[0].slice(a)}return o}function i(e,t,n,s,u,d){for(var p in n)if(n.hasOwnProperty(p)&&n[p]){var f=n[p];f=Array.isArray(f)?f:[f];for(var h=0;h<f.length;++h){if(d&&d.cause==p+","+h)return;var m=f[h],g=m.inside,b=!!m.lookbehind,v=!!m.greedy,y=m.alias;if(v&&!m.pattern.global){var w=m.pattern.toString().match(/[imsuy]*$/)[0];m.pattern=RegExp(m.pattern.source,w+"g")}for(var k=m.pattern||m,x=s.next,S=u;x!==t.tail&&!(d&&S>=d.reach);S+=x.value.length,x=x.next){var _=x.value;if(t.length>e.length)return;if(!(_ instanceof o)){var C,E=1;if(v){if(!(C=a(k,S,e,b))||C.index>=e.length)break;var A=C.index,L=C.index+C[0].length,T=S;for(T+=x.value.length;A>=T;)T+=(x=x.next).value.length;if(S=T-=x.value.length,x.value instanceof o)continue;for(var j=x;j!==t.tail&&(T<L||"string"==typeof j.value);j=j.next)E++,T+=j.value.length;E--,_=e.slice(S,T),C.index-=S}else if(!(C=a(k,0,_,b)))continue;A=C.index;var R=C[0],N=_.slice(0,A),O=_.slice(A+R.length),P=S+_.length;d&&P>d.reach&&(d.reach=P);var D=x.prev;if(N&&(D=l(t,D,N),S+=N.length),c(t,D,E),x=l(t,D,new o(p,g?r.tokenize(R,g):R,y,R)),O&&l(t,x,O),E>1){var M={cause:p+","+h,reach:P};i(e,t,n,x.prev,S,M),d&&M.reach>d.reach&&(d.reach=M.reach)}}}}}}function s(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function l(e,t,n){var r=t.next,o={value:n,prev:t,next:r};return t.next=o,r.prev=o,e.length++,o}function c(e,t,n){for(var r=t.next,o=0;o<n&&r!==e.tail;o++)r=r.next;t.next=r,r.prev=t,e.length-=o}return o.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var o="";return t.forEach((function(t){o+=e(t,n)})),o}var a={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},i=t.alias;i&&(Array.isArray(i)?Array.prototype.push.apply(a.classes,i):a.classes.push(i)),r.hooks.run("wrap",a);var s="";for(var l in a.attributes)s+=" "+l+'="'+(a.attributes[l]||"").replace(/"/g,""")+'"';return"<"+a.tag+' class="'+a.classes.join(" ")+'"'+s+">"+a.content+"</"+a.tag+">"},r}();t.exports=n,n.default=n}},function(){return o||(0,r[b(r)[0]])((o={exports:{}}).exports,o),o.exports}),A=((e,t,n)=>(n=null!=e?p(y(e)):{},((e,t,n,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let o of b(t))w.call(e,o)||o===n||f(e,o,{get:()=>t[o],enumerable:!(r=m(t,o))||r.enumerable});return e})(!t&&e&&e.__esModule?n:f(n,"default",{value:e,enumerable:!0}),e)))(E());A.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},A.languages.markup.tag.inside["attr-value"].inside.entity=A.languages.markup.entity,A.languages.markup.doctype.inside["internal-subset"].inside=A.languages.markup,A.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(A.languages.markup.tag,"addInlined",{value:function(e,t){var n;(t=((n=((n={})["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:A.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i,{"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}}))["language-"+t]={pattern:/[\s\S]+/,inside:A.languages[t]},{}))[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:n},A.languages.insertBefore("markup","cdata",t)}}),Object.defineProperty(A.languages.markup.tag,"addAttribute",{value:function(e,t){A.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:A.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),A.languages.html=A.languages.markup,A.languages.mathml=A.languages.markup,A.languages.svg=A.languages.markup,A.languages.xml=A.languages.extend("markup",{}),A.languages.ssml=A.languages.xml,A.languages.atom=A.languages.xml,A.languages.rss=A.languages.xml,a=A,i={pattern:/\\[\\(){}[\]^$+*?|.]/,alias:"escape"},l="(?:[^\\\\-]|"+(s=/\\(?:x[\da-fA-F]{2}|u[\da-fA-F]{4}|u\{[\da-fA-F]+\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/).source+")",l=RegExp(l+"-"+l),c={pattern:/(<|')[^<>']+(?=[>']$)/,lookbehind:!0,alias:"variable"},a.languages.regex={"char-class":{pattern:/((?:^|[^\\])(?:\\\\)*)\[(?:[^\\\]]|\\[\s\S])*\]/,lookbehind:!0,inside:{"char-class-negation":{pattern:/(^\[)\^/,lookbehind:!0,alias:"operator"},"char-class-punctuation":{pattern:/^\[|\]$/,alias:"punctuation"},range:{pattern:l,inside:{escape:s,"range-punctuation":{pattern:/-/,alias:"operator"}}},"special-escape":i,"char-set":{pattern:/\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},escape:s}},"special-escape":i,"char-set":{pattern:/\.|\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},backreference:[{pattern:/\\(?![123][0-7]{2})[1-9]/,alias:"keyword"},{pattern:/\\k<[^<>']+>/,alias:"keyword",inside:{"group-name":c}}],anchor:{pattern:/[$^]|\\[ABbGZz]/,alias:"function"},escape:s,group:[{pattern:/\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|<?[=!]|[idmnsuxU]+(?:-[idmnsuxU]+)?:?))?/,alias:"punctuation",inside:{"group-name":c}},{pattern:/\)/,alias:"punctuation"}],quantifier:{pattern:/(?:[+*?]|\{\d+(?:,\d*)?\})[?+]?/,alias:"number"},alternation:{pattern:/\|/,alias:"keyword"}},A.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},A.languages.javascript=A.languages.extend("clike",{"class-name":[A.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),A.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,A.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:A.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:A.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:A.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:A.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:A.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),A.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:A.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),A.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),A.languages.markup&&(A.languages.markup.tag.addInlined("script","javascript"),A.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),A.languages.js=A.languages.javascript,A.languages.actionscript=A.languages.extend("javascript",{keyword:/\b(?:as|break|case|catch|class|const|default|delete|do|dynamic|each|else|extends|final|finally|for|function|get|if|implements|import|in|include|instanceof|interface|internal|is|namespace|native|new|null|override|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|use|var|void|while|with)\b/,operator:/\+\+|--|(?:[+\-*\/%^]|&&?|\|\|?|<<?|>>?>?|[!=]=?)=?|[~?@]/}),A.languages.actionscript["class-name"].alias="function",delete A.languages.actionscript.parameter,delete A.languages.actionscript["literal-property"],A.languages.markup&&A.languages.insertBefore("actionscript","string",{xml:{pattern:/(^|[^.])<\/?\w+(?:\s+[^\s>\/=]+=("|')(?:\\[\s\S]|(?!\2)[^\\])*\2)*\s*\/?>/,lookbehind:!0,inside:A.languages.markup}}),function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(A),function(e){var t=e.languages.javadoclike={parameter:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*@(?:arg|arguments|param)\s+)\w+/m,lookbehind:!0},keyword:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*|\{)@[a-z][a-zA-Z-]+\b/m,lookbehind:!0},punctuation:/[{}]/};Object.defineProperty(t,"addSupport",{value:function(t,n){(t="string"==typeof t?[t]:t).forEach((function(t){var r=function(e){e.inside||(e.inside={}),e.inside.rest=n},o="doc-comment";if(a=e.languages[t]){var a,i=a[o];if((i=i||(a=e.languages.insertBefore(t,"comment",{"doc-comment":{pattern:/(^|[^\\])\/\*\*[^/][\s\S]*?(?:\*\/|$)/,lookbehind:!0,alias:"comment"}}))[o])instanceof RegExp&&(i=a[o]={pattern:i}),Array.isArray(i))for(var s=0,l=i.length;s<l;s++)i[s]instanceof RegExp&&(i[s]={pattern:i[s]}),r(i[s]);else r(i)}}))}}),t.addSupport(["java","javascript","php"],t)}(A),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;(t=(e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+t.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css,e.languages.markup))&&(t.tag.addInlined("style","css"),t.tag.addAttribute("style","css"))}(A),function(e){var t=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,n=(t=(e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+t.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[t,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}}),{pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0}),{pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0});e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|RebeccaPurple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,number:n})}(A),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",o=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-]<PLAIN>)(?:[ \t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),a=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<value>>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<<prop>>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<<prop>>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<<prop>>[ \t]+)?)<<key>>(?=\s*:\s)/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<key>>/g,(function(){return"(?:"+o+"|"+a+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(a),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(A),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(/<inner>/g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,o=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),a=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source,i=(e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+o+a+"(?:"+o+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+o+a+")(?:"+o+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+o+")"+a+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+o+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\b|\*\*(?:(?!\*)<inner>|\*(?:(?!\*)<inner>)+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\b|\*(?:(?!\*)<inner>|\*\*(?:(?!\*)<inner>)+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~)<inner>)+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\])<inner>)+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\])<inner>)+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n<r;n++){var o,a=t[n];"code"!==a.type?e(a.content):(o=a.content[1],a=a.content[3],o&&a&&"code-language"===o.type&&"code-block"===a.type&&"string"==typeof o.content&&(o=o.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),o="language-"+(o=(/[a-z][\w-]*/i.exec(o)||[""])[0].toLowerCase()),a.alias?"string"==typeof a.alias?a.alias=[a.alias,o]:a.alias.push(o):a.alias=[o]))}}(e.tokens)})),e.hooks.add("wrap",(function(t){if("code-block"===t.type){for(var n="",r=0,o=t.classes.length;r<o;r++){var a=t.classes[r];if(a=/language-(.+)/.exec(a)){n=a[1];break}}var c,u=e.languages[n];u?t.content=e.highlight(t.content.replace(i,"").replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,(function(e,t){var n;return"#"===(t=t.toLowerCase())[0]?(n="x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1)),l(n)):s[t]||e})),u,n):n&&"none"!==n&&e.plugins.autoloader&&(c="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random()),t.attributes.id=c,e.plugins.autoloader.loadLanguages(n,(function(){var t=document.getElementById(c);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))})))}})),RegExp(e.languages.markup.tag.pattern.source,"gi")),s={amp:"&",lt:"<",gt:">",quot:'"'},l=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(A),A.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:A.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},A.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n<t.length;){var r=t[n++];if("keyword"===r.type&&"mutation"===r.content){var o=[];if(d(["definition-mutation","punctuation"])&&"("===u(1).content){n+=2;var a=p(/^\($/,/^\)$/);if(-1===a)continue;for(;n<a;n++){var i=u(0);"variable"===i.type&&(f(i,"variable-input"),o.push(i.content))}n=a+1}if(d(["punctuation","property-query"])&&"{"===u(0).content&&(n++,f(u(0),"property-mutation"),0<o.length)){var s=p(/^\{$/,/^\}$/);if(-1!==s)for(var l=n;l<s;l++){var c=t[l];"variable"===c.type&&0<=o.indexOf(c.content)&&f(c,"variable-input")}}}}function u(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n<e.length;n++){var r=u(n+t);if(!r||r.type!==e[n])return}return 1}function p(e,r){for(var o=1,a=n;a<t.length;a++){var i=t[a],s=i.content;if("punctuation"===i.type&&"string"==typeof s)if(e.test(s))o++;else if(r.test(s)&&0==--o)return a}return-1}function f(e,t){var n=e.alias;n?Array.isArray(n)||(e.alias=n=[n]):e.alias=n=[],n.push(t)}})),A.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,o=r.inside["interpolation-punctuation"],a=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function s(t,n,r){return t={code:t,grammar:n,language:r},e.hooks.run("before-tokenize",t),t.tokens=e.tokenize(t.code,t.grammar),e.hooks.run("after-tokenize",t),t.tokens}function l(t,n,i){var l=e.tokenize(t,{interpolation:{pattern:RegExp(a),lookbehind:!0}}),c=0,u={},d=(l=s(l.map((function(e){if("string"==typeof e)return e;var n,r;for(e=e.content;-1!==t.indexOf((r=c++,n="___"+i.toUpperCase()+"_"+r+"___")););return u[n]=e,n})).join(""),n,i),Object.keys(u));return c=0,function t(n){for(var a=0;a<n.length;a++){if(c>=d.length)return;var i,l,p,f,h,m,g,b=n[a];"string"==typeof b||"string"==typeof b.content?(i=d[c],-1!==(g=(m="string"==typeof b?b:b.content).indexOf(i))&&(++c,l=m.substring(0,g),h=u[i],p=void 0,(f={})["interpolation-punctuation"]=o,3===(f=e.tokenize(h,f)).length&&((p=[1,1]).push.apply(p,s(f[1],e.languages.javascript,"javascript")),f.splice.apply(f,p)),p=new e.Token("interpolation",f,r.alias,h),f=m.substring(g+i.length),h=[],l&&h.push(l),h.push(p),f&&(t(m=[f]),h.push.apply(h,m)),"string"==typeof b?(n.splice.apply(n,[a,1].concat(h)),a+=h.length-1):b.content=h)):(g=b.content,Array.isArray(g)?t(g):t([g]))}}(l),new e.Token(i,l,"language-"+i,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var c={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function u(e){return"string"==typeof e?e:Array.isArray(e)?e.map(u).join(""):u(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in c&&function t(n){for(var r=0,o=n.length;r<o;r++){var a,i,s,c=n[r];"string"!=typeof c&&(a=c.content,Array.isArray(a)?"template-string"===c.type?(c=a[1],3===a.length&&"string"!=typeof c&&"embedded-code"===c.type&&(i=u(c),c=c.alias,c=Array.isArray(c)?c[0]:c,s=e.languages[c])&&(a[1]=l(i,s,c))):t(a):"string"!=typeof a&&t([a]))}}(t.tokens)}))}(A),function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(A),function(e){var t=e.languages.javascript,n=/\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})+\}/.source,r="(@(?:arg|argument|param|property)\\s+(?:"+n+"\\s+)?)";e.languages.jsdoc=e.languages.extend("javadoclike",{parameter:{pattern:RegExp(r+/(?:(?!\s)[$\w\xA0-\uFFFF.])+(?=\s|$)/.source),lookbehind:!0,inside:{punctuation:/\./}}}),e.languages.insertBefore("jsdoc","keyword",{"optional-parameter":{pattern:RegExp(r+/\[(?:(?!\s)[$\w\xA0-\uFFFF.])+(?:=[^[\]]+)?\](?=\s|$)/.source),lookbehind:!0,inside:{parameter:{pattern:/(^\[)[$\w\xA0-\uFFFF\.]+/,lookbehind:!0,inside:{punctuation:/\./}},code:{pattern:/(=)[\s\S]*(?=\]$)/,lookbehind:!0,inside:t,alias:"language-javascript"},punctuation:/[=[\]]/}},"class-name":[{pattern:RegExp(/(@(?:augments|class|extends|interface|memberof!?|template|this|typedef)\s+(?:<TYPE>\s+)?)[A-Z]\w*(?:\.[A-Z]\w*)*/.source.replace(/<TYPE>/g,(function(){return n}))),lookbehind:!0,inside:{punctuation:/\./}},{pattern:RegExp("(@[a-z]+\\s+)"+n),lookbehind:!0,inside:{string:t.string,number:t.number,boolean:t.boolean,keyword:e.languages.typescript.keyword,operator:/=>|\.\.\.|[&|?:*]/,punctuation:/[.,;=<>{}()[\]]/}}],example:{pattern:/(@example\s+(?!\s))(?:[^@\s]|\s+(?!\s))+?(?=\s*(?:\*\s*)?(?:@\w|\*\/))/,lookbehind:!0,inside:{code:{pattern:/^([\t ]*(?:\*\s*)?)\S.*$/m,lookbehind:!0,inside:t,alias:"language-javascript"}}}}),e.languages.javadoclike.addSupport("javascript",e.languages.jsdoc)}(A),function(e){e.languages.flow=e.languages.extend("javascript",{}),e.languages.insertBefore("flow","keyword",{type:[{pattern:/\b(?:[Bb]oolean|Function|[Nn]umber|[Ss]tring|[Ss]ymbol|any|mixed|null|void)\b/,alias:"class-name"}]}),e.languages.flow["function-variable"].pattern=/(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=\s*(?:function\b|(?:\([^()]*\)(?:\s*:\s*\w+)?|(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/i,delete e.languages.flow.parameter,e.languages.insertBefore("flow","operator",{"flow-punctuation":{pattern:/\{\||\|\}/,alias:"punctuation"}}),Array.isArray(e.languages.flow.keyword)||(e.languages.flow.keyword=[e.languages.flow.keyword]),e.languages.flow.keyword.unshift({pattern:/(^|[^$]\b)(?:Class|declare|opaque|type)\b(?!\$)/,lookbehind:!0},{pattern:/(^|[^$]\B)\$(?:Diff|Enum|Exact|Keys|ObjMap|PropertyType|Record|Shape|Subtype|Supertype|await)\b(?!\$)/,lookbehind:!0})}(A),A.languages.n4js=A.languages.extend("javascript",{keyword:/\b(?:Array|any|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/}),A.languages.insertBefore("n4js","constant",{annotation:{pattern:/@+\w+/,alias:"operator"}}),A.languages.n4jsd=A.languages.n4js,function(e){function t(e,t){return RegExp(e.replace(/<ID>/g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:<ID>(?:\s*,\s*(?:\*\s*as\s+<ID>|\{[^{}]*\}))?|\*\s*as\s+<ID>|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+<ID>)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?<ID>/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r<n.length;r++){var o=n[r],a=e.languages.javascript[o];o=(a="RegExp"===e.util.type(a)?e.languages.javascript[o]={pattern:a}:a).inside||{};(a.inside=o)["maybe-class-name"]=/^[A-Z][\s\S]*/}}(A),function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,r=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,o=/(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;function a(e,t){return e=e.replace(/<S>/g,(function(){return n})).replace(/<BRACES>/g,(function(){return r})).replace(/<SPREAD>/g,(function(){return o})),RegExp(e,t)}function i(t){for(var n=[],r=0;r<t.length;r++){var o=t[r],a=!1;"string"!=typeof o&&("tag"===o.type&&o.content[0]&&"tag"===o.content[0].type?"</"===o.content[0].content[0].content?0<n.length&&n[n.length-1].tagName===s(o.content[0].content[1])&&n.pop():"/>"!==o.content[o.content.length-1].content&&n.push({tagName:s(o.content[0].content[1]),openedBraces:0}):0<n.length&&"punctuation"===o.type&&"{"===o.content?n[n.length-1].openedBraces++:0<n.length&&0<n[n.length-1].openedBraces&&"punctuation"===o.type&&"}"===o.content?n[n.length-1].openedBraces--:a=!0),(a||"string"==typeof o)&&0<n.length&&0===n[n.length-1].openedBraces&&(a=s(o),r<t.length-1&&("string"==typeof t[r+1]||"plain-text"===t[r+1].type)&&(a+=s(t[r+1]),t.splice(r+1,1)),0<r&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(a=s(t[r-1])+a,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",a,null,a)),o.content&&"string"!=typeof o.content&&i(o.content)}}o=a(o).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=a(/<\/?(?:[\w.:-]+(?:<S>+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:a(/<SPREAD>/.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:a(/=<BRACES>/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var s=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(s).join(""):""};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||i(e.tokens)}))}(A),function(e){var t=e.util.clone(e.languages.typescript);(t=(e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"],e.languages.tsx.tag)).pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+t.pattern.source+")",t.pattern.flags),t.lookbehind=!0}(A),A.languages.swift={comment:{pattern:/(^|[^\\:])(?:\/\/.*|\/\*(?:[^/*]|\/(?!\*)|\*(?!\/)|\/\*(?:[^*]|\*(?!\/))*\*\/)*\*\/)/,lookbehind:!0,greedy:!0},"string-literal":[{pattern:RegExp(/(^|[^"#])/.source+"(?:"+/"(?:\\(?:\((?:[^()]|\([^()]*\))*\)|\r\n|[^(])|[^\\\r\n"])*"/.source+"|"+/"""(?:\\(?:\((?:[^()]|\([^()]*\))*\)|[^(])|[^\\"]|"(?!""))*"""/.source+")"+/(?!["#])/.source),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\\($/,alias:"punctuation"},punctuation:/\\(?=[\r\n])/,string:/[\s\S]+/}},{pattern:RegExp(/(^|[^"#])(#+)/.source+"(?:"+/"(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|\r\n|[^#])|[^\\\r\n])*?"/.source+"|"+/"""(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|[^#])|[^\\])*?"""/.source+")\\2"),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\#+\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\#+\($/,alias:"punctuation"},string:/[\s\S]+/}}],directive:{pattern:RegExp(/#/.source+"(?:"+/(?:elseif|if)\b/.source+"(?:[ \t]*"+/(?:![ \t]*)?(?:\b\w+\b(?:[ \t]*\((?:[^()]|\([^()]*\))*\))?|\((?:[^()]|\([^()]*\))*\))(?:[ \t]*(?:&&|\|\|))?/.source+")+|"+/(?:else|endif)\b/.source+")"),alias:"property",inside:{"directive-name":/^#\w+/,boolean:/\b(?:false|true)\b/,number:/\b\d+(?:\.\d+)*\b/,operator:/!|&&|\|\||[<>]=?/,punctuation:/[(),]/}},literal:{pattern:/#(?:colorLiteral|column|dsohandle|file(?:ID|Literal|Path)?|function|imageLiteral|line)\b/,alias:"constant"},"other-directive":{pattern:/#\w+\b/,alias:"property"},attribute:{pattern:/@\w+/,alias:"atrule"},"function-definition":{pattern:/(\bfunc\s+)\w+/,lookbehind:!0,alias:"function"},label:{pattern:/\b(break|continue)\s+\w+|\b[a-zA-Z_]\w*(?=\s*:\s*(?:for|repeat|while)\b)/,lookbehind:!0,alias:"important"},keyword:/\b(?:Any|Protocol|Self|Type|actor|as|assignment|associatedtype|associativity|async|await|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic|else|enum|extension|fallthrough|fileprivate|final|for|func|get|guard|higherThan|if|import|in|indirect|infix|init|inout|internal|is|isolated|lazy|left|let|lowerThan|mutating|none|nonisolated|nonmutating|open|operator|optional|override|postfix|precedencegroup|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|set|some|static|struct|subscript|super|switch|throw|throws|try|typealias|unowned|unsafe|var|weak|where|while|willSet)\b/,boolean:/\b(?:false|true)\b/,nil:{pattern:/\bnil\b/,alias:"constant"},"short-argument":/\$\d+\b/,omit:{pattern:/\b_\b/,alias:"keyword"},number:/\b(?:[\d_]+(?:\.[\de_]+)?|0x[a-f0-9_]+(?:\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i,"class-name":/\b[A-Z](?:[A-Z_\d]*[a-z]\w*)?\b/,function:/\b[a-z_]\w*(?=\s*\()/i,constant:/\b(?:[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/,operator:/[-+*/%=!<>&|^~?]+|\.[.\-+*/%=!<>&|^~?]+/,punctuation:/[{}[\]();,.:\\]/},A.languages.swift["string-literal"].forEach((function(e){e.inside.interpolation.inside=A.languages.swift})),function(e){e.languages.kotlin=e.languages.extend("clike",{keyword:{pattern:/(^|[^.])\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\b/,lookbehind:!0},function:[{pattern:/(?:`[^\r\n`]+`|\b\w+)(?=\s*\()/,greedy:!0},{pattern:/(\.)(?:`[^\r\n`]+`|\w+)(?=\s*\{)/,lookbehind:!0,greedy:!0}],number:/\b(?:0[xX][\da-fA-F]+(?:_[\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?[fFL]?)\b/,operator:/\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/}),delete e.languages.kotlin["class-name"];var t={"interpolation-punctuation":{pattern:/^\$\{?|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:e.languages.kotlin}};e.languages.insertBefore("kotlin","string",{"string-literal":[{pattern:/"""(?:[^$]|\$(?:(?!\{)|\{[^{}]*\}))*?"""/,alias:"multiline",inside:{interpolation:{pattern:/\$(?:[a-z_]\w*|\{[^{}]*\})/i,inside:t},string:/[\s\S]+/}},{pattern:/"(?:[^"\\\r\n$]|\\.|\$(?:(?!\{)|\{[^{}]*\}))*"/,alias:"singleline",inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:[a-z_]\w*|\{[^{}]*\})/i,lookbehind:!0,inside:t},string:/[\s\S]+/}}],char:{pattern:/'(?:[^'\\\r\n]|\\(?:.|u[a-fA-F0-9]{0,4}))'/,greedy:!0}}),delete e.languages.kotlin.string,e.languages.insertBefore("kotlin","keyword",{annotation:{pattern:/\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/,alias:"builtin"}}),e.languages.insertBefore("kotlin","function",{label:{pattern:/\b\w+@|@\w+\b/,alias:"symbol"}}),e.languages.kt=e.languages.kotlin,e.languages.kts=e.languages.kotlin}(A),A.languages.c=A.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),A.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),A.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},A.languages.c.string],char:A.languages.c.char,comment:A.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:A.languages.c}}}}),A.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete A.languages.c.boolean,A.languages.objectivec=A.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete A.languages.objectivec["class-name"],A.languages.objc=A.languages.objectivec,A.languages.reason=A.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),A.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete A.languages.reason.function,function(e){for(var t=/\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|<self>)*\*\//.source,n=0;n<2;n++)t=t.replace(/<self>/g,(function(){return t}));t=t.replace(/<self>/g,(function(){return/[^\s\S]/.source})),e.languages.rust={comment:[{pattern:RegExp(/(^|[^\\])/.source+t),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,greedy:!0},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:"attr-name",inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:"punctuation"},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:"symbol"},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:"punctuation"},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:"function"},"type-definition":{pattern:/(\b(?:enum|struct|trait|type|union)\s+)\w+/,lookbehind:!0,alias:"class-name"},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:"namespace"},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:"namespace",inside:{punctuation:/::/}}],keyword:[/\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\b\w+!/,alias:"property"},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<<?=?|>>?=?|[@?]/},e.languages.rust["closure-params"].inside.rest=e.languages.rust,e.languages.rust.attribute.inside.string=e.languages.rust.string}(A),A.languages.go=A.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),A.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete A.languages.go["class-name"],function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!<keyword>)\w+(?:\s*\.\s*\w+)*\b/.source.replace(/<keyword>/g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!<keyword>)\w+/.source.replace(/<keyword>/g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/<mod-name>(?:\s*:\s*<mod-name>)?|:\s*<mod-name>/.source.replace(/<mod-name>/g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(A),A.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},A.languages.python["string-interpolation"].inside.interpolation.inside.rest=A.languages.python,A.languages.py=A.languages.python;((e,t)=>{for(var n in t)f(e,n,{get:t[n],enumerable:!0})})({},{dracula:()=>L,duotoneDark:()=>T,duotoneLight:()=>j,github:()=>R,jettwaveDark:()=>W,jettwaveLight:()=>$,nightOwl:()=>N,nightOwlLight:()=>O,oceanicNext:()=>M,okaidia:()=>I,oneDark:()=>G,oneLight:()=>H,palenight:()=>F,shadesOfPurple:()=>B,synthwave84:()=>z,ultramin:()=>U,vsDark:()=>V,vsLight:()=>q});var L={plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},T={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule-id"],style:{color:"#eeebff"}},{types:["attr-name"],style:{color:"#c4b9fe"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule","placeholder","variable"],style:{color:"#ffcc99"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#c4b9fe"}}]},j={plain:{backgroundColor:"#faf8f5",color:"#728fcb"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#b6ad9a"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#063289"}},{types:["property","function"],style:{color:"#b29762"}},{types:["tag-id","selector","atrule-id"],style:{color:"#2d2006"}},{types:["attr-name"],style:{color:"#896724"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule"],style:{color:"#728fcb"}},{types:["placeholder","variable"],style:{color:"#93abdc"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#896724"}}]},R={plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},N={plain:{color:"#d6deeb",backgroundColor:"#011627"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(99, 119, 119)",fontStyle:"italic"}},{types:["string","url"],style:{color:"rgb(173, 219, 103)"}},{types:["variable"],style:{color:"rgb(214, 222, 235)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation"],style:{color:"rgb(199, 146, 234)"}},{types:["selector","doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(255, 203, 139)"}},{types:["tag","operator","keyword"],style:{color:"rgb(127, 219, 202)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["property"],style:{color:"rgb(128, 203, 196)"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}}]},O={plain:{color:"#403f53",backgroundColor:"#FBFBFB"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(72, 118, 214)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(152, 159, 177)",fontStyle:"italic"}},{types:["string","builtin","char","constant","url"],style:{color:"rgb(72, 118, 214)"}},{types:["variable"],style:{color:"rgb(201, 103, 101)"}},{types:["number"],style:{color:"rgb(170, 9, 130)"}},{types:["punctuation"],style:{color:"rgb(153, 76, 195)"}},{types:["function","selector","doctype"],style:{color:"rgb(153, 76, 195)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(17, 17, 17)"}},{types:["tag"],style:{color:"rgb(153, 76, 195)"}},{types:["operator","property","keyword","namespace"],style:{color:"rgb(12, 150, 155)"}},{types:["boolean"],style:{color:"rgb(188, 84, 84)"}}]},P="#c5a5c5",D="#8dc891",M={plain:{backgroundColor:"#282c34",color:"#ffffff"},styles:[{types:["attr-name"],style:{color:P}},{types:["attr-value"],style:{color:D}},{types:["comment","block-comment","prolog","doctype","cdata","shebang"],style:{color:"#999999"}},{types:["property","number","function-name","constant","symbol","deleted"],style:{color:"#5a9bcf"}},{types:["boolean"],style:{color:"#ff8b50"}},{types:["tag"],style:{color:"#fc929e"}},{types:["string"],style:{color:D}},{types:["punctuation"],style:{color:D}},{types:["selector","char","builtin","inserted"],style:{color:"#D8DEE9"}},{types:["function"],style:{color:"#79b6f2"}},{types:["operator","entity","url","variable"],style:{color:"#d7deea"}},{types:["keyword"],style:{color:P}},{types:["atrule","class-name"],style:{color:"#FAC863"}},{types:["important"],style:{fontWeight:"400"}},{types:["bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}}]},I={plain:{color:"#f8f8f2",backgroundColor:"#272822"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"#f92672",fontStyle:"italic"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"#8292a2",fontStyle:"italic"}},{types:["string","url"],style:{color:"#a6e22e"}},{types:["variable"],style:{color:"#f8f8f2"}},{types:["number"],style:{color:"#ae81ff"}},{types:["builtin","char","constant","function","class-name"],style:{color:"#e6db74"}},{types:["punctuation"],style:{color:"#f8f8f2"}},{types:["selector","doctype"],style:{color:"#a6e22e",fontStyle:"italic"}},{types:["tag","operator","keyword"],style:{color:"#66d9ef"}},{types:["boolean"],style:{color:"#ae81ff"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)",opacity:.7}},{types:["tag","property"],style:{color:"#f92672"}},{types:["attr-name"],style:{color:"#a6e22e !important"}},{types:["doctype"],style:{color:"#8292a2"}},{types:["rule"],style:{color:"#e6db74"}}]},F={plain:{color:"#bfc7d5",backgroundColor:"#292d3e"},styles:[{types:["comment"],style:{color:"rgb(105, 112, 152)",fontStyle:"italic"}},{types:["string","inserted"],style:{color:"rgb(195, 232, 141)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation","selector"],style:{color:"rgb(199, 146, 234)"}},{types:["variable"],style:{color:"rgb(191, 199, 213)"}},{types:["class-name","attr-name"],style:{color:"rgb(255, 203, 107)"}},{types:["tag","deleted"],style:{color:"rgb(255, 85, 114)"}},{types:["operator"],style:{color:"rgb(137, 221, 255)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["keyword"],style:{fontStyle:"italic"}},{types:["doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}},{types:["url"],style:{color:"rgb(221, 221, 221)"}}]},B={plain:{color:"#9EFEFF",backgroundColor:"#2D2A55"},styles:[{types:["changed"],style:{color:"rgb(255, 238, 128)"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)"}},{types:["comment"],style:{color:"rgb(179, 98, 255)",fontStyle:"italic"}},{types:["punctuation"],style:{color:"rgb(255, 255, 255)"}},{types:["constant"],style:{color:"rgb(255, 98, 140)"}},{types:["string","url"],style:{color:"rgb(165, 255, 144)"}},{types:["variable"],style:{color:"rgb(255, 238, 128)"}},{types:["number","boolean"],style:{color:"rgb(255, 98, 140)"}},{types:["attr-name"],style:{color:"rgb(255, 180, 84)"}},{types:["keyword","operator","property","namespace","tag","selector","doctype"],style:{color:"rgb(255, 157, 0)"}},{types:["builtin","char","constant","function","class-name"],style:{color:"rgb(250, 208, 0)"}}]},z={plain:{backgroundColor:"linear-gradient(to bottom, #2a2139 75%, #34294f)",backgroundImage:"#34294f",color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"},styles:[{types:["comment","block-comment","prolog","doctype","cdata"],style:{color:"#495495",fontStyle:"italic"}},{types:["punctuation"],style:{color:"#ccc"}},{types:["tag","attr-name","namespace","number","unit","hexcode","deleted"],style:{color:"#e2777a"}},{types:["property","selector"],style:{color:"#72f1b8",textShadow:"0 0 2px #100c0f, 0 0 10px #257c5575, 0 0 35px #21272475"}},{types:["function-name"],style:{color:"#6196cc"}},{types:["boolean","selector-id","function"],style:{color:"#fdfdfd",textShadow:"0 0 2px #001716, 0 0 3px #03edf975, 0 0 5px #03edf975, 0 0 8px #03edf975"}},{types:["class-name","maybe-class-name","builtin"],style:{color:"#fff5f6",textShadow:"0 0 2px #000, 0 0 10px #fc1f2c75, 0 0 5px #fc1f2c75, 0 0 25px #fc1f2c75"}},{types:["constant","symbol"],style:{color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"}},{types:["important","atrule","keyword","selector-class"],style:{color:"#f4eee4",textShadow:"0 0 2px #393a33, 0 0 8px #f39f0575, 0 0 2px #f39f0575"}},{types:["string","char","attr-value","regex","variable"],style:{color:"#f87c32"}},{types:["parameter"],style:{fontStyle:"italic"}},{types:["entity","url"],style:{color:"#67cdcc"}},{types:["operator"],style:{color:"ffffffee"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["entity"],style:{cursor:"help"}},{types:["inserted"],style:{color:"green"}}]},U={plain:{color:"#282a2e",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(197, 200, 198)"}},{types:["string","number","builtin","variable"],style:{color:"rgb(150, 152, 150)"}},{types:["class-name","function","tag","attr-name"],style:{color:"rgb(40, 42, 46)"}}]},V={plain:{color:"#9CDCFE",backgroundColor:"#1E1E1E"},styles:[{types:["prolog"],style:{color:"rgb(0, 0, 128)"}},{types:["comment"],style:{color:"rgb(106, 153, 85)"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"rgb(86, 156, 214)"}},{types:["number","inserted"],style:{color:"rgb(181, 206, 168)"}},{types:["constant"],style:{color:"rgb(100, 102, 149)"}},{types:["attr-name","variable"],style:{color:"rgb(156, 220, 254)"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"rgb(206, 145, 120)"}},{types:["selector"],style:{color:"rgb(215, 186, 125)"}},{types:["tag"],style:{color:"rgb(78, 201, 176)"}},{types:["tag"],languages:["markup"],style:{color:"rgb(86, 156, 214)"}},{types:["punctuation","operator"],style:{color:"rgb(212, 212, 212)"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"rgb(220, 220, 170)"}},{types:["class-name"],style:{color:"rgb(78, 201, 176)"}},{types:["char"],style:{color:"rgb(209, 105, 105)"}}]},q={plain:{color:"#000000",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(0, 128, 0)"}},{types:["builtin"],style:{color:"rgb(0, 112, 193)"}},{types:["number","variable","inserted"],style:{color:"rgb(9, 134, 88)"}},{types:["operator"],style:{color:"rgb(0, 0, 0)"}},{types:["constant","char"],style:{color:"rgb(129, 31, 63)"}},{types:["tag"],style:{color:"rgb(128, 0, 0)"}},{types:["attr-name"],style:{color:"rgb(255, 0, 0)"}},{types:["deleted","string"],style:{color:"rgb(163, 21, 21)"}},{types:["changed","punctuation"],style:{color:"rgb(4, 81, 165)"}},{types:["function","keyword"],style:{color:"rgb(0, 0, 255)"}},{types:["class-name"],style:{color:"rgb(38, 127, 153)"}}]},W={plain:{color:"#f8fafc",backgroundColor:"#011627"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#569CD6"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#f8fafc"}},{types:["attr-name","variable"],style:{color:"#9CDCFE"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#cbd5e1"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#D4D4D4"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#7dd3fc"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},$={plain:{color:"#0f172a",backgroundColor:"#f1f5f9"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#0c4a6e"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#0f172a"}},{types:["attr-name","variable"],style:{color:"#0c4a6e"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#64748b"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#475569"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#0e7490"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},G={plain:{backgroundColor:"hsl(220, 13%, 18%)",color:"hsl(220, 14%, 71%)",textShadow:"0 1px rgba(0, 0, 0, 0.3)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(220, 10%, 40%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(220, 14%, 71%)"}},{types:["attr-name","class-name","maybe-class-name","boolean","constant","number","atrule"],style:{color:"hsl(29, 54%, 61%)"}},{types:["keyword"],style:{color:"hsl(286, 60%, 67%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(355, 65%, 65%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value"],style:{color:"hsl(95, 38%, 62%)"}},{types:["variable","operator","function"],style:{color:"hsl(207, 82%, 66%)"}},{types:["url"],style:{color:"hsl(187, 47%, 55%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(220, 14%, 71%)"}}]},H={plain:{backgroundColor:"hsl(230, 1%, 98%)",color:"hsl(230, 8%, 24%)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(230, 4%, 64%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(230, 8%, 24%)"}},{types:["attr-name","class-name","boolean","constant","number","atrule"],style:{color:"hsl(35, 99%, 36%)"}},{types:["keyword"],style:{color:"hsl(301, 63%, 40%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(5, 74%, 59%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value","punctuation"],style:{color:"hsl(119, 34%, 47%)"}},{types:["variable","operator","function"],style:{color:"hsl(221, 87%, 60%)"}},{types:["url"],style:{color:"hsl(198, 99%, 37%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(230, 8%, 24%)"}}]},Z=(e,t)=>{const{plain:n}=e,r=e.styles.reduce(((e,n)=>{const{languages:r,style:o}=n;return r&&!r.includes(t)||n.types.forEach((t=>{const n=S(S({},e[t]),o);e[t]=n})),e}),{});return r.root=n,r.plain=_(S({},n),{backgroundColor:void 0}),r},Y=/\r\n|\r|\n/,X=e=>{0===e.length?e.push({types:["plain"],content:"\n",empty:!0}):1===e.length&&""===e[0].content&&(e[0].content="\n",e[0].empty=!0)},K=(e,t)=>{const n=e.length;return n>0&&e[n-1]===t?e:e.concat(t)},J=e=>{const t=[[]],n=[e],r=[0],o=[e.length];let a=0,i=0,s=[];const l=[s];for(;i>-1;){for(;(a=r[i]++)<o[i];){let e,c=t[i];const u=n[i][a];if("string"==typeof u?(c=i>0?c:["plain"],e=u):(c=K(c,u.type),u.alias&&(c=K(c,u.alias)),e=u.content),"string"!=typeof e){i++,t.push(c),n.push(e),r.push(0),o.push(e.length);continue}const d=e.split(Y),p=d.length;s.push({types:c,content:d[0]});for(let t=1;t<p;t++)X(s),l.push(s=[]),s.push({types:c,content:d[t]})}i--,t.pop(),n.pop(),r.pop(),o.pop()}return X(s),l},Q=({children:e,language:t,code:n,theme:r,prism:o})=>{const a=t.toLowerCase(),i=((e,t)=>{const[n,r]=(0,u.useState)(Z(t,e)),o=(0,u.useRef)(),a=(0,u.useRef)();return(0,u.useEffect)((()=>{t===o.current&&e===a.current||(o.current=t,a.current=e,r(Z(t,e)))}),[e,t]),n})(a,r),s=(e=>(0,u.useCallback)((t=>{var n=t,{className:r,style:o,line:a}=n,i=C(n,["className","style","line"]);const s=_(S({},i),{className:(0,d.A)("token-line",r)});return"object"==typeof e&&"plain"in e&&(s.style=e.plain),"object"==typeof o&&(s.style=S(S({},s.style||{}),o)),s}),[e]))(i),l=(e=>{const t=(0,u.useCallback)((({types:t,empty:n})=>{if(null!=e)return 1===t.length&&"plain"===t[0]?null!=n?{display:"inline-block"}:void 0:1===t.length&&null!=n?e[t[0]]:Object.assign(null!=n?{display:"inline-block"}:{},...t.map((t=>e[t])))}),[e]);return(0,u.useCallback)((e=>{var n=e,{token:r,className:o,style:a}=n,i=C(n,["token","className","style"]);const s=_(S({},i),{className:(0,d.A)("token",...r.types,o),children:r.content,style:t(r)});return null!=a&&(s.style=S(S({},s.style||{}),a)),s}),[t])})(i),c=(({prism:e,code:t,grammar:n,language:r})=>{const o=(0,u.useRef)(e);return(0,u.useMemo)((()=>{if(null==n)return J([t]);const e={code:t,grammar:n,language:r,tokens:[]};return o.current.hooks.run("before-tokenize",e),e.tokens=o.current.tokenize(t,n),o.current.hooks.run("after-tokenize",e),J(e.tokens)}),[t,n,r])})({prism:o,language:a,code:n,grammar:o.languages[a]});return e({tokens:c,className:`prism-code language-${a}`,style:null!=i?i.root:{},getLineProps:s,getTokenProps:l})},ee=e=>(0,u.createElement)(Q,_(S({},e),{prism:e.prism||A,theme:e.theme||V,code:e.code,language:e.language}))},2630:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=!0,o="Invariant failed";function a(e,t){if(!e){if(r)throw new Error(o);var n="function"==typeof t?t():t,a=n?"".concat(o,": ").concat(n):o;throw new Error(a)}}},2654:e=>{"use strict";e.exports={}},4054:e=>{"use strict";e.exports=JSON.parse('{"/search-69a":{"__comp":"1a4e3797","__context":{"plugin":"c07bca7c"}},"/docs-b37":{"__comp":"5e95c892","__context":{"plugin":"acba9d96"}},"/docs-ed2":{"__comp":"a7bd4aaa","version":"935f2afb"},"/docs-8a8":{"__comp":"a94703ab"},"/docs/about-morph/faqs-db6":{"__comp":"17896441","content":"39f485e7"},"/docs/about-morph/key-concepts-b1a":{"__comp":"17896441","content":"9fc9b620"},"/docs/about-morph/key-concepts/optimistic-rollup-ec2":{"__comp":"17896441","content":"dfd8dfaf"},"/docs/about-morph/morphs-architecture-1e7":{"__comp":"17896441","content":"ad8d1448"},"/docs/about-morph/morphs-vision-and-mission-cd4":{"__comp":"17896441","content":"99b8a708"},"/docs/about-morph/overview-of-morph-d84":{"__comp":"17896441","content":"08b9f613"},"/docs/about-morph/roadmap-460":{"__comp":"17896441","content":"1a1587e1"},"/docs/about-morph/the-technology-behind-morph-b44":{"__comp":"17896441","content":"33e57971"},"/docs/about-morph/user-navigation-page-19e":{"__comp":"17896441","content":"82419dfd"},"/docs/about-morph/where-should-i-start-e58":{"__comp":"17896441","content":"52171187"},"/docs/build-on-morph/build-on-morph/bridge-between-morph-and-ethereum-59b":{"__comp":"17896441","content":"5bc5b9ce"},"/docs/build-on-morph/build-on-morph/development-setup-d4d":{"__comp":"17896441","content":"9d4e1be7"},"/docs/build-on-morph/build-on-morph/difference-between-morph-and-ethereum-545":{"__comp":"17896441","content":"2ef0e7db"},"/docs/build-on-morph/build-on-morph/understand-transaction-cost-on-morph-fc4":{"__comp":"17896441","content":"fac53bf8"},"/docs/build-on-morph/build-on-morph/verify-your-smart-contracts-120":{"__comp":"17896441","content":"af91f293"},"/docs/build-on-morph/code-examples/bridge-between-morph-and-ethereum-ed4":{"__comp":"17896441","content":"8347fa88"},"/docs/build-on-morph/code-examples/deploy-contract-on-morph-5af":{"__comp":"17896441","content":"2f19d5d4"},"/docs/build-on-morph/developer-navigation-page-6f3":{"__comp":"17896441","content":"e6f27cd2"},"/docs/build-on-morph/developer-resources/contracts-51b":{"__comp":"17896441","content":"e7a84acc"},"/docs/build-on-morph/developer-resources/dapp-examples-on-morph-899":{"__comp":"17896441","content":"8d0b932e"},"/docs/build-on-morph/developer-resources/how-to-run-a-morph-node-a6b":{"__comp":"17896441","content":"fb26d209"},"/docs/build-on-morph/developer-resources/morph-json-rpc-api-methods-c1b":{"__comp":"17896441","content":"22a82985"},"/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node-698":{"__comp":"17896441","content":"3d947c8b"},"/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node-docker-d81":{"__comp":"17896441","content":"ed22c7e9"},"/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-validator-node-df7":{"__comp":"17896441","content":"ec29823a"},"/docs/build-on-morph/developer-resources/node-operation/prune-state-e28":{"__comp":"17896441","content":"f619ad04"},"/docs/build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-docker-fb2":{"__comp":"17896441","content":"3250a443"},"/docs/build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-host-d69":{"__comp":"17896441","content":"a0d75a43"},"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/account-abstraction-924":{"__comp":"17896441","content":"5c242b2e"},"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/block-explorer-cce":{"__comp":"17896441","content":"405a8a84"},"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-indexing-services-b59":{"__comp":"17896441","content":"7a5975a7"},"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-oracles-b1d":{"__comp":"17896441","content":"bce3eedd"},"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/rpc-services-072":{"__comp":"17896441","content":"829cd294"},"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/safe-multi-signature-wallet-d7e":{"__comp":"17896441","content":"c7ccd35b"},"/docs/build-on-morph/intro-235":{"__comp":"17896441","content":"3f6197d4"},"/docs/build-on-morph/sdk/classes/CrossChainMessenger-71f":{"__comp":"17896441","content":"e7f02677"},"/docs/build-on-morph/sdk/classes/ETHBridgeAdapter-e0f":{"__comp":"17896441","content":"59db22f4"},"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter-be7":{"__comp":"17896441","content":"fb24aa13"},"/docs/build-on-morph/sdk/enumerations/L1ChainID-bfe":{"__comp":"17896441","content":"7824cff9"},"/docs/build-on-morph/sdk/enumerations/L1RpcUrls-212":{"__comp":"17896441","content":"69301e8b"},"/docs/build-on-morph/sdk/enumerations/L2ChainID-e8e":{"__comp":"17896441","content":"e8fcecf9"},"/docs/build-on-morph/sdk/enumerations/L2RpcUrls-7f9":{"__comp":"17896441","content":"7c45cc48"},"/docs/build-on-morph/sdk/enumerations/MessageDirection-681":{"__comp":"17896441","content":"720f9cb5"},"/docs/build-on-morph/sdk/enumerations/MessageReceiptStatus-1f3":{"__comp":"17896441","content":"95a7ae32"},"/docs/build-on-morph/sdk/enumerations/MessageStatus-a5a":{"__comp":"17896441","content":"a2db6fd6"},"/docs/build-on-morph/sdk/functions/asL2Provider-4b1":{"__comp":"17896441","content":"72171cd8"},"/docs/build-on-morph/sdk/functions/estimateL1Gas-a2f":{"__comp":"17896441","content":"e3875bab"},"/docs/build-on-morph/sdk/functions/estimateL1GasCost-06e":{"__comp":"17896441","content":"e8c42455"},"/docs/build-on-morph/sdk/functions/estimateL2GasCost-20f":{"__comp":"17896441","content":"a1f831b5"},"/docs/build-on-morph/sdk/functions/estimateTotalGasCost-bc5":{"__comp":"17896441","content":"38e6cd8b"},"/docs/build-on-morph/sdk/functions/getAllOEContracts-91e":{"__comp":"17896441","content":"b4c00acc"},"/docs/build-on-morph/sdk/functions/getBridgeAdapters-5d3":{"__comp":"17896441","content":"d8273606"},"/docs/build-on-morph/sdk/functions/getL1GasPrice-68c":{"__comp":"17896441","content":"46618904"},"/docs/build-on-morph/sdk/functions/getOEContract-ea0":{"__comp":"17896441","content":"e912b961"},"/docs/build-on-morph/sdk/functions/hashLowLevelMessageV2-301":{"__comp":"17896441","content":"9235c071"},"/docs/build-on-morph/sdk/functions/hashMessageHash-f9c":{"__comp":"17896441","content":"beb6ddce"},"/docs/build-on-morph/sdk/functions/isL2Provider-0a3":{"__comp":"17896441","content":"f93d7a3b"},"/docs/build-on-morph/sdk/functions/migratedWithdrawalGasLimit-a8f":{"__comp":"17896441","content":"6ba36391"},"/docs/build-on-morph/sdk/functions/omit-31d":{"__comp":"17896441","content":"8613d4b8"},"/docs/build-on-morph/sdk/functions/toAddress-52d":{"__comp":"17896441","content":"028d32dc"},"/docs/build-on-morph/sdk/functions/toBigNumber-1cd":{"__comp":"17896441","content":"4784893f"},"/docs/build-on-morph/sdk/functions/toNumber-47f":{"__comp":"17896441","content":"a399e926"},"/docs/build-on-morph/sdk/functions/toProvider-b81":{"__comp":"17896441","content":"fe9c53f2"},"/docs/build-on-morph/sdk/functions/toSignerOrProvider-474":{"__comp":"17896441","content":"f435c040"},"/docs/build-on-morph/sdk/functions/toTransactionHash-b90":{"__comp":"17896441","content":"4cbe5783"},"/docs/build-on-morph/sdk/globals-a28":{"__comp":"17896441","content":"d475c619"},"/docs/build-on-morph/sdk/interfaces/BridgeAdapterData-658":{"__comp":"17896441","content":"5acb1cf6"},"/docs/build-on-morph/sdk/interfaces/BridgeAdapters-6e5":{"__comp":"17896441","content":"b0d24208"},"/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage-e90":{"__comp":"17896441","content":"ff883f18"},"/docs/build-on-morph/sdk/interfaces/CrossChainMessage-6a8":{"__comp":"17896441","content":"833a0690"},"/docs/build-on-morph/sdk/interfaces/CrossChainMessageRequest-c6e":{"__comp":"17896441","content":"7c1e7b23"},"/docs/build-on-morph/sdk/interfaces/IActionOptions-32e":{"__comp":"17896441","content":"e3bda051"},"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter-d75":{"__comp":"17896441","content":"9e1db927"},"/docs/build-on-morph/sdk/interfaces/L2Block-526":{"__comp":"17896441","content":"9a9366b1"},"/docs/build-on-morph/sdk/interfaces/L2BlockWithTransactions-fd3":{"__comp":"17896441","content":"6f037fd7"},"/docs/build-on-morph/sdk/interfaces/L2Transaction-107":{"__comp":"17896441","content":"2b4bd9da"},"/docs/build-on-morph/sdk/interfaces/MessageReceipt-c6d":{"__comp":"17896441","content":"4a269d4a"},"/docs/build-on-morph/sdk/interfaces/OEContracts-174":{"__comp":"17896441","content":"c30bab43"},"/docs/build-on-morph/sdk/interfaces/OEContractsLike-86e":{"__comp":"17896441","content":"70e8639a"},"/docs/build-on-morph/sdk/interfaces/OEL1Contracts-8b8":{"__comp":"17896441","content":"9e78961b"},"/docs/build-on-morph/sdk/interfaces/OEL2Contracts-9ec":{"__comp":"17896441","content":"fda70fd8"},"/docs/build-on-morph/sdk/interfaces/ProvenWithdrawal-8b3":{"__comp":"17896441","content":"1483841d"},"/docs/build-on-morph/sdk/interfaces/StateRoot-5a3":{"__comp":"17896441","content":"24734b3e"},"/docs/build-on-morph/sdk/interfaces/StateRootBatch-65f":{"__comp":"17896441","content":"25bec567"},"/docs/build-on-morph/sdk/interfaces/StateRootBatchHeader-8f3":{"__comp":"17896441","content":"d4781eda"},"/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage-f09":{"__comp":"17896441","content":"98d1a41e"},"/docs/build-on-morph/sdk/interfaces/WithdrawalEntry-faa":{"__comp":"17896441","content":"ca4c51aa"},"/docs/build-on-morph/sdk/interfaces/WithdrawMessageProof-545":{"__comp":"17896441","content":"979f48c0"},"/docs/build-on-morph/sdk/intro-542":{"__comp":"17896441","content":"61b1ff91"},"/docs/build-on-morph/sdk/type-aliases/AddressLike-bac":{"__comp":"17896441","content":"a0d49790"},"/docs/build-on-morph/sdk/type-aliases/DeepPartial-7e6":{"__comp":"17896441","content":"2a31694d"},"/docs/build-on-morph/sdk/type-aliases/L1Provider-8de":{"__comp":"17896441","content":"9b96db99"},"/docs/build-on-morph/sdk/type-aliases/L2Provider-181":{"__comp":"17896441","content":"a4da47e1"},"/docs/build-on-morph/sdk/type-aliases/LowLevelMessage-968":{"__comp":"17896441","content":"eac819ad"},"/docs/build-on-morph/sdk/type-aliases/MessageLike-5c1":{"__comp":"17896441","content":"76db7a6d"},"/docs/build-on-morph/sdk/type-aliases/MessageRequestLike-eb0":{"__comp":"17896441","content":"6a8ddb26"},"/docs/build-on-morph/sdk/type-aliases/NumberLike-214":{"__comp":"17896441","content":"5a91095f"},"/docs/build-on-morph/sdk/type-aliases/OEL1ContractsLike-6f6":{"__comp":"17896441","content":"c5f7ff1a"},"/docs/build-on-morph/sdk/type-aliases/OEL2ContractsLike-84a":{"__comp":"17896441","content":"c33d6554"},"/docs/build-on-morph/sdk/type-aliases/ProviderLike-2fe":{"__comp":"17896441","content":"81f29526"},"/docs/build-on-morph/sdk/type-aliases/SignerLike-e63":{"__comp":"17896441","content":"79dc0904"},"/docs/build-on-morph/sdk/type-aliases/SignerOrProviderLike-681":{"__comp":"17896441","content":"40b4f046"},"/docs/build-on-morph/sdk/type-aliases/TransactionLike-5b2":{"__comp":"17896441","content":"a5f26d61"},"/docs/build-on-morph/sdk/variables/BRIDGE_ADAPTER_DATA-e80":{"__comp":"17896441","content":"8b6091b0"},"/docs/build-on-morph/sdk/variables/CHAIN_BLOCK_TIMES-c46":{"__comp":"17896441","content":"a00dd934"},"/docs/build-on-morph/sdk/variables/CONTRACT_ADDRESSES-c94":{"__comp":"17896441","content":"08313b4f"},"/docs/build-on-morph/sdk/variables/DEFAULT_L1_CONTRACT_ADDRESSES-302":{"__comp":"17896441","content":"02a35c22"},"/docs/build-on-morph/sdk/variables/DEFAULT_L2_CONTRACT_ADDRESSES-f2f":{"__comp":"17896441","content":"829b4b9b"},"/docs/build-on-morph/sdk/variables/DEPOSIT_CONFIRMATION_BLOCKS-e9d":{"__comp":"17896441","content":"4a10ae38"},"/docs/build-on-morph/sdk/variables/l1BridgeName-58e":{"__comp":"17896441","content":"066c1628"},"/docs/build-on-morph/sdk/variables/l1CrossDomainMessengerName-55b":{"__comp":"17896441","content":"465c0bc5"},"/docs/build-on-morph/sdk/variables/l2BridgeName-8bb":{"__comp":"17896441","content":"44bbd017"},"/docs/build-on-morph/sdk/variables/l2CrossDomainMessengerName-ce4":{"__comp":"17896441","content":"9ff57eaa"},"/docs/how-morph-works/decentralized-sequencers/morph-decentralized-sequencer-network-76b":{"__comp":"17896441","content":"dcf2e50b"},"/docs/how-morph-works/general-protocol-design/communicate-between-morph-and-ethereum-2f6":{"__comp":"17896441","content":"5aa3c257"},"/docs/how-morph-works/general-protocol-design/difference-between-ethereum-and-morph-1d1":{"__comp":"17896441","content":"fdc91eb1"},"/docs/how-morph-works/general-protocol-design/rollup-ec8":{"__comp":"17896441","content":"57c15217"},"/docs/how-morph-works/general-protocol-design/transactions-life-cycle-313":{"__comp":"17896441","content":"59f4fb6c"},"/docs/how-morph-works/intro-b70":{"__comp":"17896441","content":"60479fa4"},"/docs/how-morph-works/morph-modular-design-700":{"__comp":"17896441","content":"f6623e93"},"/docs/how-morph-works/optimistic-zkevm-e3e":{"__comp":"17896441","content":"578ca001"},"/docs/quick-start/bridge-199":{"__comp":"17896441","content":"6f5ac92b"},"/docs/quick-start/faucet-b32":{"__comp":"17896441","content":"325638e1"},"/docs/quick-start/morph-zoo/morph-points-5cd":{"__comp":"17896441","content":"74fdc727"},"/docs/quick-start/morph-zoo/voting-rules-106":{"__comp":"17896441","content":"71cc7c85"},"/docs/quick-start/wallet-setup-8e9":{"__comp":"17896441","content":"d26d133a"},"/docs/quick-start/welcome-to-morph-570":{"__comp":"17896441","content":"618914bf"},"/-9a2":{"__comp":"c4f5d8e4","__context":{"plugin":"31699625"},"config":"5e9f5e1a"}}')}},e=>{e.O(0,[1869],(()=>{return t=9090,e(e.s=t);var t}));e.O()}]); \ No newline at end of file diff --git a/build/assets/js/main.16291c43.js b/build/assets/js/main.16291c43.js new file mode 100644 index 000000000..44a6a6e68 --- /dev/null +++ b/build/assets/js/main.16291c43.js @@ -0,0 +1,2 @@ +/*! For license information please see main.16291c43.js.LICENSE.txt */ +(self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[]).push([[8792],{2525:(e,t,n)=>{"use strict";n.d(t,{Bc:()=>j,E8:()=>Zn,a1:()=>Qn});var r=n(758);n(8143);function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function a(e,t,n,r,o,a,i){try{var s=e[a](i),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}function i(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function s(e){a(i,r,o,s,l,"next",e)}function l(e){a(i,r,o,s,l,"throw",e)}s(void 0)}))}}function s(e,t,n){return t=f(t),function(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,h()?Reflect.construct(t,n||[],f(e).constructor):t.apply(e,n))}function l(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function c(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,x(r.key),r)}}function u(e,t,n){return t&&c(e.prototype,t),n&&c(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function d(e,t,n){return(t=x(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function p(){return p=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},p.apply(null,arguments)}function f(e){return f=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},f(e)}function m(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&w(e,t)}function h(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(h=function(){return!!e})()}function g(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function b(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?g(Object(n),!0).forEach((function(t){d(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):g(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function v(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.includes(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.includes(n)||{}.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function y(){y=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,o=Object.defineProperty||function(e,t,n){e[t]=n.value},a="function"==typeof Symbol?Symbol:{},i=a.iterator||"@@iterator",s=a.asyncIterator||"@@asyncIterator",l=a.toStringTag||"@@toStringTag";function c(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,n){return e[t]=n}}function u(e,t,n,r){var a=t&&t.prototype instanceof b?t:b,i=Object.create(a.prototype),s=new L(r||[]);return o(i,"_invoke",{value:O(e,n,s)}),i}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=u;var p="suspendedStart",f="suspendedYield",m="executing",h="completed",g={};function b(){}function v(){}function w(){}var k={};c(k,i,(function(){return this}));var S=Object.getPrototypeOf,x=S&&S(S(P([])));x&&x!==n&&r.call(x,i)&&(k=x);var E=w.prototype=b.prototype=Object.create(k);function C(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function _(e,t){function n(o,a,i,s){var l=d(e[o],e,a);if("throw"!==l.type){var c=l.arg,u=c.value;return u&&"object"==typeof u&&r.call(u,"__await")?t.resolve(u.__await).then((function(e){n("next",e,i,s)}),(function(e){n("throw",e,i,s)})):t.resolve(u).then((function(e){c.value=e,i(c)}),(function(e){return n("throw",e,i,s)}))}s(l.arg)}var a;o(this,"_invoke",{value:function(e,r){function o(){return new t((function(t,o){n(e,r,t,o)}))}return a=a?a.then(o,o):o()}})}function O(t,n,r){var o=p;return function(a,i){if(o===m)throw Error("Generator is already running");if(o===h){if("throw"===a)throw i;return{value:e,done:!0}}for(r.method=a,r.arg=i;;){var s=r.delegate;if(s){var l=A(s,r);if(l){if(l===g)continue;return l}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(o===p)throw o=h,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);o=m;var c=d(t,n,r);if("normal"===c.type){if(o=r.done?h:f,c.arg===g)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(o=h,r.method="throw",r.arg=c.arg)}}}function A(t,n){var r=n.method,o=t.iterator[r];if(o===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,A(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),g;var a=d(o,t.iterator,n.arg);if("throw"===a.type)return n.method="throw",n.arg=a.arg,n.delegate=null,g;var i=a.arg;return i?i.done?(n[t.resultName]=i.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,g):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,g)}function T(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function j(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function L(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(T,this),this.reset(!0)}function P(t){if(t||""===t){var n=t[i];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,a=function n(){for(;++o<t.length;)if(r.call(t,o))return n.value=t[o],n.done=!1,n;return n.value=e,n.done=!0,n};return a.next=a}}throw new TypeError(typeof t+" is not iterable")}return v.prototype=w,o(E,"constructor",{value:w,configurable:!0}),o(w,"constructor",{value:v,configurable:!0}),v.displayName=c(w,l,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===v||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,w):(e.__proto__=w,c(e,l,"GeneratorFunction")),e.prototype=Object.create(E),e},t.awrap=function(e){return{__await:e}},C(_.prototype),c(_.prototype,s,(function(){return this})),t.AsyncIterator=_,t.async=function(e,n,r,o,a){void 0===a&&(a=Promise);var i=new _(u(e,n,r,o),a);return t.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},C(E),c(E,l,"Generator"),c(E,i,(function(){return this})),c(E,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=P,L.prototype={constructor:L,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(j),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function o(r,o){return s.type="throw",s.arg=t,n.next=r,o&&(n.method="next",n.arg=e),!!o}for(var a=this.tryEntries.length-1;a>=0;--a){var i=this.tryEntries[a],s=i.completion;if("root"===i.tryLoc)return o("end");if(i.tryLoc<=this.prev){var l=r.call(i,"catchLoc"),c=r.call(i,"finallyLoc");if(l&&c){if(this.prev<i.catchLoc)return o(i.catchLoc,!0);if(this.prev<i.finallyLoc)return o(i.finallyLoc)}else if(l){if(this.prev<i.catchLoc)return o(i.catchLoc,!0)}else{if(!c)throw Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return o(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var a=o;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=e,i.arg=t,a?(this.method="next",this.next=a.finallyLoc,g):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),g},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),j(n),g}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;j(n)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:P(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),g}},t}function w(e,t){return w=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},w(e,t)}function k(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a,i,s=[],l=!0,c=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(e){c=!0,o=e}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(c)throw o}}return s}}(e,t)||E(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function S(e){return function(e){if(Array.isArray(e))return o(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||E(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function x(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}function E(e,t){if(e){if("string"==typeof e)return o(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?o(e,t):void 0}}function C(e){var t="function"==typeof Map?new Map:void 0;return C=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return function(e,t,n){if(h())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,t);var o=new(e.bind.apply(e,r));return n&&w(o,n.prototype),o}(e,arguments,f(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),w(n,e)},C(e)}function _(){return r.createElement("svg",{width:"15",height:"15",className:"DocSearch-Control-Key-Icon"},r.createElement("path",{d:"M4.505 4.496h2M5.505 5.496v5M8.216 4.496l.055 5.993M10 7.5c.333.333.5.667.5 1v2M12.326 4.5v5.996M8.384 4.496c1.674 0 2.116 0 2.116 1.5s-.442 1.5-2.116 1.5M3.205 9.303c-.09.448-.277 1.21-1.241 1.203C1 10.5.5 9.513.5 8V7c0-1.57.5-2.5 1.464-2.494.964.006 1.134.598 1.24 1.342M12.553 10.5h1.953",strokeWidth:"1.2",stroke:"currentColor",fill:"none",strokeLinecap:"square"}))}function O(){return r.createElement("svg",{width:"20",height:"20",className:"DocSearch-Search-Icon",viewBox:"0 0 20 20","aria-hidden":"true"},r.createElement("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}var A=["translations"],T="Ctrl",j=r.forwardRef((function(e,t){var n=e.translations,o=void 0===n?{}:n,a=v(e,A),i=o.buttonText,s=void 0===i?"Search":i,l=o.buttonAriaLabel,c=void 0===l?"Search":l,u=k((0,r.useState)(null),2),d=u[0],f=u[1];return(0,r.useEffect)((function(){"undefined"!=typeof navigator&&(/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?f("\u2318"):f(T))}),[]),r.createElement("button",p({type:"button",className:"DocSearch DocSearch-Button","aria-label":c},a,{ref:t}),r.createElement("span",{className:"DocSearch-Button-Container"},r.createElement(O,null),r.createElement("span",{className:"DocSearch-Button-Placeholder"},s)),r.createElement("span",{className:"DocSearch-Button-Keys"},null!==d&&r.createElement(r.Fragment,null,r.createElement(L,{reactsToKey:d===T?T:"Meta"},d===T?r.createElement(_,null):d),r.createElement(L,{reactsToKey:"k"},"K"))))}));function L(e){var t=e.reactsToKey,n=e.children,o=k((0,r.useState)(!1),2),a=o[0],i=o[1];return(0,r.useEffect)((function(){if(t)return window.addEventListener("keydown",e),window.addEventListener("keyup",n),function(){window.removeEventListener("keydown",e),window.removeEventListener("keyup",n)};function e(e){e.key===t&&i(!0)}function n(e){e.key!==t&&"Meta"!==e.key||i(!1)}}),[t]),r.createElement("kbd",{className:a?"DocSearch-Button-Key DocSearch-Button-Key--pressed":"DocSearch-Button-Key"},n)}function P(e,t){var n=void 0;return function(){for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];n&&clearTimeout(n),n=setTimeout((function(){return e.apply(void 0,o)}),t)}}function D(e){return e.reduce((function(e,t){return e.concat(t)}),[])}var R=0;function N(e){return 0===e.collections.length?0:e.collections.reduce((function(e,t){return e+t.items.length}),0)}function I(e){return e!==Object(e)}function M(e,t){if(e===t)return!0;if(I(e)||I(t)||"function"==typeof e||"function"==typeof t)return e===t;if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n=0,r=Object.keys(e);n<r.length;n++){var o=r[n];if(!(o in t))return!1;if(!M(e[o],t[o]))return!1}return!0}var F=function(){},B=[{segment:"autocomplete-core",version:"1.9.3"}];function z(e){var t=e.item,n=e.items;return{index:t.__autocomplete_indexName,items:[t],positions:[1+n.findIndex((function(e){return e.objectID===t.objectID}))],queryID:t.__autocomplete_queryID,algoliaSource:["autocomplete"]}}function U(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var q=["items"],$=["items"];function H(e){return H="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},H(e)}function G(e){return function(e){if(Array.isArray(e))return V(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return V(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?V(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function V(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function W(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function K(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Q(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?K(Object(n),!0).forEach((function(t){Z(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):K(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Z(e,t,n){return(t=function(e){var t=function(e){if("object"!==H(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!==H(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"===H(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Y(e){return e.map((function(e){var t=e.items,n=W(e,q);return Q(Q({},n),{},{objectIDs:(null==t?void 0:t.map((function(e){return e.objectID})))||n.objectIDs})}))}function J(e){var t,n,r,o=(t=function(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a,i,s=[],l=!0,c=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(e){c=!0,o=e}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(c)throw o}}return s}}(e,t)||function(e,t){if(e){if("string"==typeof e)return U(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?U(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}((e.version||"").split(".").map(Number),2),n=t[0],r=t[1],n>=3||2===n&&r>=4||1===n&&r>=10);function a(t,n,r){if(o&&void 0!==r){var a=r[0].__autocomplete_algoliaCredentials,i={"X-Algolia-Application-Id":a.appId,"X-Algolia-API-Key":a.apiKey};e.apply(void 0,[t].concat(G(n),[{headers:i}]))}else e.apply(void 0,[t].concat(G(n)))}return{init:function(t,n){e("init",{appId:t,apiKey:n})},setUserToken:function(t){e("setUserToken",t)},clickedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];t.length>0&&a("clickedObjectIDsAfterSearch",Y(t),t[0].items)},clickedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];t.length>0&&a("clickedObjectIDs",Y(t),t[0].items)},clickedFilters:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];n.length>0&&e.apply(void 0,["clickedFilters"].concat(n))},convertedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];t.length>0&&a("convertedObjectIDsAfterSearch",Y(t),t[0].items)},convertedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];t.length>0&&a("convertedObjectIDs",Y(t),t[0].items)},convertedFilters:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];n.length>0&&e.apply(void 0,["convertedFilters"].concat(n))},viewedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];t.length>0&&t.reduce((function(e,t){var n=t.items,r=W(t,$);return[].concat(G(e),G(function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:20,n=[],r=0;r<e.objectIDs.length;r+=t)n.push(Q(Q({},e),{},{objectIDs:e.objectIDs.slice(r,r+t)}));return n}(Q(Q({},r),{},{objectIDs:(null==n?void 0:n.map((function(e){return e.objectID})))||r.objectIDs})).map((function(e){return{items:n,payload:e}}))))}),[]).forEach((function(e){var t=e.items;return a("viewedObjectIDs",[e.payload],t)}))},viewedFilters:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];n.length>0&&e.apply(void 0,["viewedFilters"].concat(n))}}}function X(e){var t=e.items.reduce((function(e,t){var n;return e[t.__autocomplete_indexName]=(null!==(n=e[t.__autocomplete_indexName])&&void 0!==n?n:[]).concat(t),e}),{});return Object.keys(t).map((function(e){return{index:e,items:t[e],algoliaSource:["autocomplete"]}}))}function ee(e){return e.objectID&&e.__autocomplete_indexName&&e.__autocomplete_queryID}function te(e){return te="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},te(e)}function ne(e){return function(e){if(Array.isArray(e))return re(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return re(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?re(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function re(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function oe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ae(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?oe(Object(n),!0).forEach((function(t){ie(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):oe(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ie(e,t,n){return(t=function(e){var t=function(e){if("object"!==te(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!==te(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"===te(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var se="2.6.0",le="https://cdn.jsdelivr.net/npm/search-insights@".concat(se,"/dist/search-insights.min.js"),ce=P((function(e){var t=e.onItemsChange,n=e.items,r=e.insights,o=e.state;t({insights:r,insightsEvents:X({items:n}).map((function(e){return ae({eventName:"Items Viewed"},e)})),state:o})}),400);function ue(e){var t=function(e){return ae({onItemsChange:function(e){var t=e.insights,n=e.insightsEvents;t.viewedObjectIDs.apply(t,ne(n.map((function(e){return ae(ae({},e),{},{algoliaSource:[].concat(ne(e.algoliaSource||[]),["autocomplete-internal"])})}))))},onSelect:function(e){var t=e.insights,n=e.insightsEvents;t.clickedObjectIDsAfterSearch.apply(t,ne(n.map((function(e){return ae(ae({},e),{},{algoliaSource:[].concat(ne(e.algoliaSource||[]),["autocomplete-internal"])})}))))},onActive:F},e)}(e),n=t.insightsClient,r=t.onItemsChange,o=t.onSelect,a=t.onActive,i=n;n||"undefined"!=typeof window&&function(e){var t=e.window,n=t.AlgoliaAnalyticsObject||"aa";"string"==typeof n&&(i=t[n]),i||(t.AlgoliaAnalyticsObject=n,t[n]||(t[n]=function(){t[n].queue||(t[n].queue=[]);for(var e=arguments.length,r=new Array(e),o=0;o<e;o++)r[o]=arguments[o];t[n].queue.push(r)}),t[n].version=se,i=t[n],function(e){var t="[Autocomplete]: Could not load search-insights.js. Please load it manually following https://alg.li/insights-autocomplete";try{var n=e.document.createElement("script");n.async=!0,n.src=le,n.onerror=function(){console.error(t)},document.body.appendChild(n)}catch(e){console.error(t)}}(t))}({window:window});var s=J(i),l={current:[]},c=P((function(e){var t=e.state;if(t.isOpen){var n=t.collections.reduce((function(e,t){return[].concat(ne(e),ne(t.items))}),[]).filter(ee);M(l.current.map((function(e){return e.objectID})),n.map((function(e){return e.objectID})))||(l.current=n,n.length>0&&ce({onItemsChange:r,items:n,insights:s,state:t}))}}),0);return{name:"aa.algoliaInsightsPlugin",subscribe:function(e){var t=e.setContext,n=e.onSelect,r=e.onActive;i("addAlgoliaAgent","insights-plugin"),t({algoliaInsightsPlugin:{__algoliaSearchParameters:{clickAnalytics:!0},insights:s}}),n((function(e){var t=e.item,n=e.state,r=e.event;ee(t)&&o({state:n,event:r,insights:s,item:t,insightsEvents:[ae({eventName:"Item Selected"},z({item:t,items:l.current}))]})})),r((function(e){var t=e.item,n=e.state,r=e.event;ee(t)&&a({state:n,event:r,insights:s,item:t,insightsEvents:[ae({eventName:"Item Active"},z({item:t,items:l.current}))]})}))},onStateChange:function(e){var t=e.state;c({state:t})},__autocomplete_pluginOptions:e}}function de(e,t){var n=t;return{then:function(t,r){return de(e.then(fe(t,n,e),fe(r,n,e)),n)},catch:function(t){return de(e.catch(fe(t,n,e)),n)},finally:function(t){return t&&n.onCancelList.push(t),de(e.finally(fe(t&&function(){return n.onCancelList=[],t()},n,e)),n)},cancel:function(){n.isCanceled=!0;var e=n.onCancelList;n.onCancelList=[],e.forEach((function(e){e()}))},isCanceled:function(){return!0===n.isCanceled}}}function pe(e){return de(e,{isCanceled:!1,onCancelList:[]})}function fe(e,t,n){return e?function(n){return t.isCanceled?n:e(n)}:n}function me(e,t,n,r){if(!n)return null;if(e<0&&(null===t||null!==r&&0===t))return n+e;var o=(null===t?-1:t)+e;return o<=-1||o>=n?null===r?null:0:o}function he(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ge(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?he(Object(n),!0).forEach((function(t){be(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):he(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function be(e,t,n){return(t=function(e){var t=function(e){if("object"!==ve(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!==ve(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"===ve(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ve(e){return ve="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ve(e)}function ye(e){var t=function(e){var t=e.collections.map((function(e){return e.items.length})).reduce((function(e,t,n){var r=(e[n-1]||0)+t;return e.push(r),e}),[]).reduce((function(t,n){return n<=e.activeItemId?t+1:t}),0);return e.collections[t]}(e);if(!t)return null;var n=t.items[function(e){for(var t=e.state,n=e.collection,r=!1,o=0,a=0;!1===r;){var i=t.collections[o];if(i===n){r=!0;break}a+=i.items.length,o++}return t.activeItemId-a}({state:e,collection:t})],r=t.source;return{item:n,itemInputValue:r.getItemInputValue({item:n,state:e}),itemUrl:r.getItemUrl({item:n,state:e}),source:r}}var we=/((gt|sm)-|galaxy nexus)|samsung[- ]|samsungbrowser/i;function ke(e){return ke="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ke(e)}function Se(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function xe(e,t,n){return(t=function(e){var t=function(e){if("object"!==ke(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!==ke(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"===ke(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ee(e){return Ee="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ee(e)}function Ce(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _e(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ce(Object(n),!0).forEach((function(t){Oe(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ce(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Oe(e,t,n){return(t=function(e){var t=function(e){if("object"!==Ee(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!==Ee(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"===Ee(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ae(e){return Ae="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ae(e)}function Te(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function je(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Le(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?je(Object(n),!0).forEach((function(t){Pe(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):je(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Pe(e,t,n){return(t=function(e){var t=function(e){if("object"!==Ae(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!==Ae(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"===Ae(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function De(e,t){var n,r="undefined"!=typeof window?window:{},o=e.plugins||[];return Le(Le({debug:!1,openOnFocus:!1,placeholder:"",autoFocus:!1,defaultActiveItemId:null,stallThreshold:300,insights:!1,environment:r,shouldPanelOpen:function(e){return N(e.state)>0},reshape:function(e){return e.sources}},e),{},{id:null!==(n=e.id)&&void 0!==n?n:"autocomplete-".concat(R++),plugins:o,initialState:Le({activeItemId:null,query:"",completion:null,collections:[],isOpen:!1,status:"idle",context:{}},e.initialState),onStateChange:function(t){var n;null===(n=e.onStateChange)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onStateChange)||void 0===n?void 0:n.call(e,t)}))},onSubmit:function(t){var n;null===(n=e.onSubmit)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onSubmit)||void 0===n?void 0:n.call(e,t)}))},onReset:function(t){var n;null===(n=e.onReset)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onReset)||void 0===n?void 0:n.call(e,t)}))},getSources:function(n){return Promise.all([].concat(function(e){return function(e){if(Array.isArray(e))return Te(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return Te(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Te(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(o.map((function(e){return e.getSources}))),[e.getSources]).filter(Boolean).map((function(e){return function(e,t){var n=[];return Promise.resolve(e(t)).then((function(e){return Promise.all(e.filter((function(e){return Boolean(e)})).map((function(e){if(e.sourceId,n.includes(e.sourceId))throw new Error("[Autocomplete] The `sourceId` ".concat(JSON.stringify(e.sourceId)," is not unique."));n.push(e.sourceId);var t={getItemInputValue:function(e){return e.state.query},getItemUrl:function(){},onSelect:function(e){(0,e.setIsOpen)(!1)},onActive:F,onResolve:F};Object.keys(t).forEach((function(e){t[e].__default=!0}));var r=ge(ge({},t),e);return Promise.resolve(r)})))}))}(e,n)}))).then((function(e){return D(e)})).then((function(e){return e.map((function(e){return Le(Le({},e),{},{onSelect:function(n){e.onSelect(n),t.forEach((function(e){var t;return null===(t=e.onSelect)||void 0===t?void 0:t.call(e,n)}))},onActive:function(n){e.onActive(n),t.forEach((function(e){var t;return null===(t=e.onActive)||void 0===t?void 0:t.call(e,n)}))},onResolve:function(n){e.onResolve(n),t.forEach((function(e){var t;return null===(t=e.onResolve)||void 0===t?void 0:t.call(e,n)}))}})}))}))},navigator:Le({navigate:function(e){var t=e.itemUrl;r.location.assign(t)},navigateNewTab:function(e){var t=e.itemUrl,n=r.open(t,"_blank","noopener");null==n||n.focus()},navigateNewWindow:function(e){var t=e.itemUrl;r.open(t,"_blank","noopener")}},e.navigator)})}function Re(e){return Re="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Re(e)}function Ne(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ie(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ne(Object(n),!0).forEach((function(t){Me(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ne(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Me(e,t,n){return(t=function(e){var t=function(e){if("object"!==Re(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!==Re(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"===Re(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Fe(e){return Fe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Fe(e)}function Be(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ze(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Be(Object(n),!0).forEach((function(t){Ue(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Be(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Ue(e,t,n){return(t=function(e){var t=function(e){if("object"!==Fe(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!==Fe(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"===Fe(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function qe(e){return function(e){if(Array.isArray(e))return $e(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return $e(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?$e(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function $e(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function He(e){return Boolean(e.execute)}function Ge(e){var t=e.reduce((function(e,t){if(!He(t))return e.push(t),e;var n=t.searchClient,r=t.execute,o=t.requesterId,a=t.requests,i=e.find((function(e){return He(t)&&He(e)&&e.searchClient===n&&Boolean(o)&&e.requesterId===o}));if(i){var s;(s=i.items).push.apply(s,qe(a))}else{var l={execute:r,requesterId:o,items:a,searchClient:n};e.push(l)}return e}),[]).map((function(e){if(!He(e))return Promise.resolve(e);var t=e,n=t.execute,r=t.items;return n({searchClient:t.searchClient,requests:r})}));return Promise.all(t).then((function(e){return D(e)}))}function Ve(e){return Ve="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ve(e)}var We=["event","nextState","props","query","refresh","store"];function Ke(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Qe(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ke(Object(n),!0).forEach((function(t){Ze(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ke(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Ze(e,t,n){return(t=function(e){var t=function(e){if("object"!==Ve(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!==Ve(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"===Ve(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Ye,Je,Xe,et=null,tt=(Ye=-1,Je=-1,Xe=void 0,function(e){var t=++Ye;return Promise.resolve(e).then((function(e){return Xe&&t<Je?Xe:(Je=t,Xe=e,e)}))});function nt(e){var t=e.event,n=e.nextState,r=void 0===n?{}:n,o=e.props,a=e.query,i=e.refresh,s=e.store,l=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,We);et&&o.environment.clearTimeout(et);var c=l.setCollections,u=l.setIsOpen,d=l.setQuery,p=l.setActiveItemId,f=l.setStatus;if(d(a),p(o.defaultActiveItemId),!a&&!1===o.openOnFocus){var m,h=s.getState().collections.map((function(e){return Qe(Qe({},e),{},{items:[]})}));f("idle"),c(h),u(null!==(m=r.isOpen)&&void 0!==m?m:o.shouldPanelOpen({state:s.getState()}));var g=pe(tt(h).then((function(){return Promise.resolve()})));return s.pendingRequests.add(g)}f("loading"),et=o.environment.setTimeout((function(){f("stalled")}),o.stallThreshold);var b=pe(tt(o.getSources(Qe({query:a,refresh:i,state:s.getState()},l)).then((function(e){return Promise.all(e.map((function(e){return Promise.resolve(e.getItems(Qe({query:a,refresh:i,state:s.getState()},l))).then((function(t){return function(e,t,n){if(o=e,Boolean(null==o?void 0:o.execute)){var r="algolia"===e.requesterId?Object.assign.apply(Object,[{}].concat(qe(Object.keys(n.context).map((function(e){var t;return null===(t=n.context[e])||void 0===t?void 0:t.__algoliaSearchParameters}))))):{};return ze(ze({},e),{},{requests:e.queries.map((function(n){return{query:"algolia"===e.requesterId?ze(ze({},n),{},{params:ze(ze({},r),n.params)}):n,sourceId:t,transformResponse:e.transformResponse}}))})}var o;return{items:e,sourceId:t}}(t,e.sourceId,s.getState())}))}))).then(Ge).then((function(t){return function(e,t,n){return t.map((function(t){var r,o=e.filter((function(e){return e.sourceId===t.sourceId})),a=o.map((function(e){return e.items})),i=o[0].transformResponse,s=i?i({results:r=a,hits:r.map((function(e){return e.hits})).filter(Boolean),facetHits:r.map((function(e){var t;return null===(t=e.facetHits)||void 0===t?void 0:t.map((function(e){return{label:e.value,count:e.count,_highlightResult:{label:{value:e.highlighted}}}}))})).filter(Boolean)}):a;return t.onResolve({source:t,results:a,items:s,state:n.getState()}),s.every(Boolean),'The `getItems` function from source "'.concat(t.sourceId,'" must return an array of items but returned ').concat(JSON.stringify(void 0),".\n\nDid you forget to return items?\n\nSee: https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/sources/#param-getitems"),{source:t,items:s}}))}(t,e,s)})).then((function(e){return function(e){var t=e.props,n=e.state,r=e.collections.reduce((function(e,t){return Ie(Ie({},e),{},Me({},t.source.sourceId,Ie(Ie({},t.source),{},{getItems:function(){return D(t.items)}})))}),{}),o=t.plugins.reduce((function(e,t){return t.reshape?t.reshape(e):e}),{sourcesBySourceId:r,state:n}).sourcesBySourceId;return D(t.reshape({sourcesBySourceId:o,sources:Object.values(o),state:n})).filter(Boolean).map((function(e){return{source:e,items:e.getItems()}}))}({collections:e,props:o,state:s.getState()})}))})))).then((function(e){var n;f("idle"),c(e);var d=o.shouldPanelOpen({state:s.getState()});u(null!==(n=r.isOpen)&&void 0!==n?n:o.openOnFocus&&!a&&d||d);var p=ye(s.getState());if(null!==s.getState().activeItemId&&p){var m=p.item,h=p.itemInputValue,g=p.itemUrl,b=p.source;b.onActive(Qe({event:t,item:m,itemInputValue:h,itemUrl:g,refresh:i,source:b,state:s.getState()},l))}})).finally((function(){f("idle"),et&&o.environment.clearTimeout(et)}));return s.pendingRequests.add(b)}function rt(e){return rt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},rt(e)}var ot=["event","props","refresh","store"];function at(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function it(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?at(Object(n),!0).forEach((function(t){st(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):at(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function st(e,t,n){return(t=function(e){var t=function(e){if("object"!==rt(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!==rt(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"===rt(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function lt(e){return lt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},lt(e)}var ct=["props","refresh","store"],ut=["inputElement","formElement","panelElement"],dt=["inputElement"],pt=["inputElement","maxLength"],ft=["sourceIndex"],mt=["sourceIndex"],ht=["item","source","sourceIndex"];function gt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function bt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?gt(Object(n),!0).forEach((function(t){vt(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):gt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function vt(e,t,n){return(t=function(e){var t=function(e){if("object"!==lt(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!==lt(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"===lt(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function yt(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function wt(e){var t=e.props,n=e.refresh,r=e.store,o=yt(e,ct),a=function(e,t){return void 0!==t?"".concat(e,"-").concat(t):e};return{getEnvironmentProps:function(e){var n=e.inputElement,o=e.formElement,a=e.panelElement;function i(e){!r.getState().isOpen&&r.pendingRequests.isEmpty()||e.target===n||!1===[o,a].some((function(t){return(n=t)===(r=e.target)||n.contains(r);var n,r}))&&(r.dispatch("blur",null),t.debug||r.pendingRequests.cancelAll())}return bt({onTouchStart:i,onMouseDown:i,onTouchMove:function(e){!1!==r.getState().isOpen&&n===t.environment.document.activeElement&&e.target!==n&&n.blur()}},yt(e,ut))},getRootProps:function(e){return bt({role:"combobox","aria-expanded":r.getState().isOpen,"aria-haspopup":"listbox","aria-owns":r.getState().isOpen?"".concat(t.id,"-list"):void 0,"aria-labelledby":"".concat(t.id,"-label")},e)},getFormProps:function(e){return e.inputElement,bt({action:"",noValidate:!0,role:"search",onSubmit:function(a){var i;a.preventDefault(),t.onSubmit(bt({event:a,refresh:n,state:r.getState()},o)),r.dispatch("submit",null),null===(i=e.inputElement)||void 0===i||i.blur()},onReset:function(a){var i;a.preventDefault(),t.onReset(bt({event:a,refresh:n,state:r.getState()},o)),r.dispatch("reset",null),null===(i=e.inputElement)||void 0===i||i.focus()}},yt(e,dt))},getLabelProps:function(e){var n=e||{},r=n.sourceIndex,o=yt(n,ft);return bt({htmlFor:"".concat(a(t.id,r),"-input"),id:"".concat(a(t.id,r),"-label")},o)},getInputProps:function(e){var a;function i(e){(t.openOnFocus||Boolean(r.getState().query))&&nt(bt({event:e,props:t,query:r.getState().completion||r.getState().query,refresh:n,store:r},o)),r.dispatch("focus",null)}var s=e||{},l=(s.inputElement,s.maxLength),c=void 0===l?512:l,u=yt(s,pt),d=ye(r.getState()),p=function(e){return Boolean(e&&e.match(we))}((null===(a=t.environment.navigator)||void 0===a?void 0:a.userAgent)||""),f=null!=d&&d.itemUrl&&!p?"go":"search";return bt({"aria-autocomplete":"both","aria-activedescendant":r.getState().isOpen&&null!==r.getState().activeItemId?"".concat(t.id,"-item-").concat(r.getState().activeItemId):void 0,"aria-controls":r.getState().isOpen?"".concat(t.id,"-list"):void 0,"aria-labelledby":"".concat(t.id,"-label"),value:r.getState().completion||r.getState().query,id:"".concat(t.id,"-input"),autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",enterKeyHint:f,spellCheck:"false",autoFocus:t.autoFocus,placeholder:t.placeholder,maxLength:c,type:"search",onChange:function(e){nt(bt({event:e,props:t,query:e.currentTarget.value.slice(0,c),refresh:n,store:r},o))},onKeyDown:function(e){!function(e){var t=e.event,n=e.props,r=e.refresh,o=e.store,a=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,ot);if("ArrowUp"===t.key||"ArrowDown"===t.key){var i=function(){var e=n.environment.document.getElementById("".concat(n.id,"-item-").concat(o.getState().activeItemId));e&&(e.scrollIntoViewIfNeeded?e.scrollIntoViewIfNeeded(!1):e.scrollIntoView(!1))},s=function(){var e=ye(o.getState());if(null!==o.getState().activeItemId&&e){var n=e.item,i=e.itemInputValue,s=e.itemUrl,l=e.source;l.onActive(it({event:t,item:n,itemInputValue:i,itemUrl:s,refresh:r,source:l,state:o.getState()},a))}};t.preventDefault(),!1===o.getState().isOpen&&(n.openOnFocus||Boolean(o.getState().query))?nt(it({event:t,props:n,query:o.getState().query,refresh:r,store:o},a)).then((function(){o.dispatch(t.key,{nextActiveItemId:n.defaultActiveItemId}),s(),setTimeout(i,0)})):(o.dispatch(t.key,{}),s(),i())}else if("Escape"===t.key)t.preventDefault(),o.dispatch(t.key,null),o.pendingRequests.cancelAll();else if("Tab"===t.key)o.dispatch("blur",null),o.pendingRequests.cancelAll();else if("Enter"===t.key){if(null===o.getState().activeItemId||o.getState().collections.every((function(e){return 0===e.items.length})))return void(n.debug||o.pendingRequests.cancelAll());t.preventDefault();var l=ye(o.getState()),c=l.item,u=l.itemInputValue,d=l.itemUrl,p=l.source;if(t.metaKey||t.ctrlKey)void 0!==d&&(p.onSelect(it({event:t,item:c,itemInputValue:u,itemUrl:d,refresh:r,source:p,state:o.getState()},a)),n.navigator.navigateNewTab({itemUrl:d,item:c,state:o.getState()}));else if(t.shiftKey)void 0!==d&&(p.onSelect(it({event:t,item:c,itemInputValue:u,itemUrl:d,refresh:r,source:p,state:o.getState()},a)),n.navigator.navigateNewWindow({itemUrl:d,item:c,state:o.getState()}));else if(t.altKey);else{if(void 0!==d)return p.onSelect(it({event:t,item:c,itemInputValue:u,itemUrl:d,refresh:r,source:p,state:o.getState()},a)),void n.navigator.navigate({itemUrl:d,item:c,state:o.getState()});nt(it({event:t,nextState:{isOpen:!1},props:n,query:u,refresh:r,store:o},a)).then((function(){p.onSelect(it({event:t,item:c,itemInputValue:u,itemUrl:d,refresh:r,source:p,state:o.getState()},a))}))}}}(bt({event:e,props:t,refresh:n,store:r},o))},onFocus:i,onBlur:F,onClick:function(n){e.inputElement!==t.environment.document.activeElement||r.getState().isOpen||i(n)}},u)},getPanelProps:function(e){return bt({onMouseDown:function(e){e.preventDefault()},onMouseLeave:function(){r.dispatch("mouseleave",null)}},e)},getListProps:function(e){var n=e||{},r=n.sourceIndex,o=yt(n,mt);return bt({role:"listbox","aria-labelledby":"".concat(a(t.id,r),"-label"),id:"".concat(a(t.id,r),"-list")},o)},getItemProps:function(e){var i=e.item,s=e.source,l=e.sourceIndex,c=yt(e,ht);return bt({id:"".concat(a(t.id,l),"-item-").concat(i.__autocomplete_id),role:"option","aria-selected":r.getState().activeItemId===i.__autocomplete_id,onMouseMove:function(e){if(i.__autocomplete_id!==r.getState().activeItemId){r.dispatch("mousemove",i.__autocomplete_id);var t=ye(r.getState());if(null!==r.getState().activeItemId&&t){var a=t.item,s=t.itemInputValue,l=t.itemUrl,c=t.source;c.onActive(bt({event:e,item:a,itemInputValue:s,itemUrl:l,refresh:n,source:c,state:r.getState()},o))}}},onMouseDown:function(e){e.preventDefault()},onClick:function(e){var a=s.getItemInputValue({item:i,state:r.getState()}),l=s.getItemUrl({item:i,state:r.getState()});(l?Promise.resolve():nt(bt({event:e,nextState:{isOpen:!1},props:t,query:a,refresh:n,store:r},o))).then((function(){s.onSelect(bt({event:e,item:i,itemInputValue:a,itemUrl:l,refresh:n,source:s,state:r.getState()},o))}))}},c)}}}function kt(e){return kt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},kt(e)}function St(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function xt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?St(Object(n),!0).forEach((function(t){Et(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):St(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Et(e,t,n){return(t=function(e){var t=function(e){if("object"!==kt(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!==kt(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"===kt(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ct(e){var t,n,r,o,a=e.plugins,i=e.options,s=null===(t=((null===(n=i.__autocomplete_metadata)||void 0===n?void 0:n.userAgents)||[])[0])||void 0===t?void 0:t.segment,l=s?Et({},s,Object.keys((null===(r=i.__autocomplete_metadata)||void 0===r?void 0:r.options)||{})):{};return{plugins:a.map((function(e){return{name:e.name,options:Object.keys(e.__autocomplete_pluginOptions||[])}})),options:xt({"autocomplete-core":Object.keys(i)},l),ua:B.concat((null===(o=i.__autocomplete_metadata)||void 0===o?void 0:o.userAgents)||[])}}function _t(e){var t,n=e.state;return!1===n.isOpen||null===n.activeItemId?null:(null===(t=ye(n))||void 0===t?void 0:t.itemInputValue)||null}function Ot(e){return Ot="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ot(e)}function At(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Tt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?At(Object(n),!0).forEach((function(t){jt(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):At(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function jt(e,t,n){return(t=function(e){var t=function(e){if("object"!==Ot(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!==Ot(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"===Ot(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Lt=function(e,t){switch(t.type){case"setActiveItemId":case"mousemove":return Tt(Tt({},e),{},{activeItemId:t.payload});case"setQuery":return Tt(Tt({},e),{},{query:t.payload,completion:null});case"setCollections":return Tt(Tt({},e),{},{collections:t.payload});case"setIsOpen":return Tt(Tt({},e),{},{isOpen:t.payload});case"setStatus":return Tt(Tt({},e),{},{status:t.payload});case"setContext":return Tt(Tt({},e),{},{context:Tt(Tt({},e.context),t.payload)});case"ArrowDown":var n=Tt(Tt({},e),{},{activeItemId:t.payload.hasOwnProperty("nextActiveItemId")?t.payload.nextActiveItemId:me(1,e.activeItemId,N(e),t.props.defaultActiveItemId)});return Tt(Tt({},n),{},{completion:_t({state:n})});case"ArrowUp":var r=Tt(Tt({},e),{},{activeItemId:me(-1,e.activeItemId,N(e),t.props.defaultActiveItemId)});return Tt(Tt({},r),{},{completion:_t({state:r})});case"Escape":return e.isOpen?Tt(Tt({},e),{},{activeItemId:null,isOpen:!1,completion:null}):Tt(Tt({},e),{},{activeItemId:null,query:"",status:"idle",collections:[]});case"submit":return Tt(Tt({},e),{},{activeItemId:null,isOpen:!1,status:"idle"});case"reset":return Tt(Tt({},e),{},{activeItemId:!0===t.props.openOnFocus?t.props.defaultActiveItemId:null,status:"idle",query:""});case"focus":return Tt(Tt({},e),{},{activeItemId:t.props.defaultActiveItemId,isOpen:(t.props.openOnFocus||Boolean(e.query))&&t.props.shouldPanelOpen({state:e})});case"blur":return t.props.debug?e:Tt(Tt({},e),{},{isOpen:!1,activeItemId:null});case"mouseleave":return Tt(Tt({},e),{},{activeItemId:t.props.defaultActiveItemId});default:return"The reducer action ".concat(JSON.stringify(t.type)," is not supported."),e}};function Pt(e){return Pt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Pt(e)}function Dt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Rt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Dt(Object(n),!0).forEach((function(t){Nt(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Dt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Nt(e,t,n){return(t=function(e){var t=function(e){if("object"!==Pt(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!==Pt(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"===Pt(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function It(e){var t=[],n=De(e,t),r=function(e,t,n){var r,o=t.initialState;return{getState:function(){return o},dispatch:function(r,a){var i=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Se(Object(n),!0).forEach((function(t){xe(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Se(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},o);o=e(o,{type:r,props:t,payload:a}),n({state:o,prevState:i})},pendingRequests:(r=[],{add:function(e){return r.push(e),e.finally((function(){r=r.filter((function(t){return t!==e}))}))},cancelAll:function(){r.forEach((function(e){return e.cancel()}))},isEmpty:function(){return 0===r.length}})}}(Lt,n,(function(e){var t=e.prevState,r=e.state;n.onStateChange(Rt({prevState:t,state:r,refresh:i,navigator:n.navigator},o))})),o=function(e){var t=e.store;return{setActiveItemId:function(e){t.dispatch("setActiveItemId",e)},setQuery:function(e){t.dispatch("setQuery",e)},setCollections:function(e){var n=0,r=e.map((function(e){return _e(_e({},e),{},{items:D(e.items).map((function(e){return _e(_e({},e),{},{__autocomplete_id:n++})}))})}));t.dispatch("setCollections",r)},setIsOpen:function(e){t.dispatch("setIsOpen",e)},setStatus:function(e){t.dispatch("setStatus",e)},setContext:function(e){t.dispatch("setContext",e)}}}({store:r}),a=wt(Rt({props:n,refresh:i,store:r,navigator:n.navigator},o));function i(){return nt(Rt({event:new Event("input"),nextState:{isOpen:r.getState().isOpen},props:n,navigator:n.navigator,query:r.getState().query,refresh:i,store:r},o))}if(e.insights&&!n.plugins.some((function(e){return"aa.algoliaInsightsPlugin"===e.name}))){var s="boolean"==typeof e.insights?{}:e.insights;n.plugins.push(ue(s))}return n.plugins.forEach((function(e){var r;return null===(r=e.subscribe)||void 0===r?void 0:r.call(e,Rt(Rt({},o),{},{navigator:n.navigator,refresh:i,onSelect:function(e){t.push({onSelect:e})},onActive:function(e){t.push({onActive:e})},onResolve:function(e){t.push({onResolve:e})}}))})),function(e){var t,n,r=e.metadata,o=e.environment;if(null===(t=o.navigator)||void 0===t||null===(n=t.userAgent)||void 0===n?void 0:n.includes("Algolia Crawler")){var a=o.document.createElement("meta"),i=o.document.querySelector("head");a.name="algolia:metadata",setTimeout((function(){a.content=JSON.stringify(r),i.appendChild(a)}),0)}}({metadata:Ct({plugins:n.plugins,options:e}),environment:n.environment}),Rt(Rt({refresh:i,navigator:n.navigator},a),o)}function Mt(e){var t=e.translations,n=(void 0===t?{}:t).searchByText,o=void 0===n?"Search by":n;return r.createElement("a",{href:"https://www.algolia.com/ref/docsearch/?utm_source=".concat(window.location.hostname,"&utm_medium=referral&utm_content=powered_by&utm_campaign=docsearch"),target:"_blank",rel:"noopener noreferrer"},r.createElement("span",{className:"DocSearch-Label"},o),r.createElement("svg",{width:"77",height:"19","aria-label":"Algolia",role:"img",id:"Layer_1",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 2196.2 500"},r.createElement("defs",null,r.createElement("style",null,".cls-1,.cls-2{fill:#003dff;}.cls-2{fill-rule:evenodd;}")),r.createElement("path",{className:"cls-2",d:"M1070.38,275.3V5.91c0-3.63-3.24-6.39-6.82-5.83l-50.46,7.94c-2.87,.45-4.99,2.93-4.99,5.84l.17,273.22c0,12.92,0,92.7,95.97,95.49,3.33,.1,6.09-2.58,6.09-5.91v-40.78c0-2.96-2.19-5.51-5.12-5.84-34.85-4.01-34.85-47.57-34.85-54.72Z"}),r.createElement("rect",{className:"cls-1",x:"1845.88",y:"104.73",width:"62.58",height:"277.9",rx:"5.9",ry:"5.9"}),r.createElement("path",{className:"cls-2",d:"M1851.78,71.38h50.77c3.26,0,5.9-2.64,5.9-5.9V5.9c0-3.62-3.24-6.39-6.82-5.83l-50.77,7.95c-2.87,.45-4.99,2.92-4.99,5.83v51.62c0,3.26,2.64,5.9,5.9,5.9Z"}),r.createElement("path",{className:"cls-2",d:"M1764.03,275.3V5.91c0-3.63-3.24-6.39-6.82-5.83l-50.46,7.94c-2.87,.45-4.99,2.93-4.99,5.84l.17,273.22c0,12.92,0,92.7,95.97,95.49,3.33,.1,6.09-2.58,6.09-5.91v-40.78c0-2.96-2.19-5.51-5.12-5.84-34.85-4.01-34.85-47.57-34.85-54.72Z"}),r.createElement("path",{className:"cls-2",d:"M1631.95,142.72c-11.14-12.25-24.83-21.65-40.78-28.31-15.92-6.53-33.26-9.85-52.07-9.85-18.78,0-36.15,3.17-51.92,9.85-15.59,6.66-29.29,16.05-40.76,28.31-11.47,12.23-20.38,26.87-26.76,44.03-6.38,17.17-9.24,37.37-9.24,58.36,0,20.99,3.19,36.87,9.55,54.21,6.38,17.32,15.14,32.11,26.45,44.36,11.29,12.23,24.83,21.62,40.6,28.46,15.77,6.83,40.12,10.33,52.4,10.48,12.25,0,36.78-3.82,52.7-10.48,15.92-6.68,29.46-16.23,40.78-28.46,11.29-12.25,20.05-27.04,26.25-44.36,6.22-17.34,9.24-33.22,9.24-54.21,0-20.99-3.34-41.19-10.03-58.36-6.38-17.17-15.14-31.8-26.43-44.03Zm-44.43,163.75c-11.47,15.75-27.56,23.7-48.09,23.7-20.55,0-36.63-7.8-48.1-23.7-11.47-15.75-17.21-34.01-17.21-61.2,0-26.89,5.59-49.14,17.06-64.87,11.45-15.75,27.54-23.52,48.07-23.52,20.55,0,36.63,7.78,48.09,23.52,11.47,15.57,17.36,37.98,17.36,64.87,0,27.19-5.72,45.3-17.19,61.2Z"}),r.createElement("path",{className:"cls-2",d:"M894.42,104.73h-49.33c-48.36,0-90.91,25.48-115.75,64.1-14.52,22.58-22.99,49.63-22.99,78.73,0,44.89,20.13,84.92,51.59,111.1,2.93,2.6,6.05,4.98,9.31,7.14,12.86,8.49,28.11,13.47,44.52,13.47,1.23,0,2.46-.03,3.68-.09,.36-.02,.71-.05,1.07-.07,.87-.05,1.75-.11,2.62-.2,.34-.03,.68-.08,1.02-.12,.91-.1,1.82-.21,2.73-.34,.21-.03,.42-.07,.63-.1,32.89-5.07,61.56-30.82,70.9-62.81v57.83c0,3.26,2.64,5.9,5.9,5.9h50.42c3.26,0,5.9-2.64,5.9-5.9V110.63c0-3.26-2.64-5.9-5.9-5.9h-56.32Zm0,206.92c-12.2,10.16-27.97,13.98-44.84,15.12-.16,.01-.33,.03-.49,.04-1.12,.07-2.24,.1-3.36,.1-42.24,0-77.12-35.89-77.12-79.37,0-10.25,1.96-20.01,5.42-28.98,11.22-29.12,38.77-49.74,71.06-49.74h49.33v142.83Z"}),r.createElement("path",{className:"cls-2",d:"M2133.97,104.73h-49.33c-48.36,0-90.91,25.48-115.75,64.1-14.52,22.58-22.99,49.63-22.99,78.73,0,44.89,20.13,84.92,51.59,111.1,2.93,2.6,6.05,4.98,9.31,7.14,12.86,8.49,28.11,13.47,44.52,13.47,1.23,0,2.46-.03,3.68-.09,.36-.02,.71-.05,1.07-.07,.87-.05,1.75-.11,2.62-.2,.34-.03,.68-.08,1.02-.12,.91-.1,1.82-.21,2.73-.34,.21-.03,.42-.07,.63-.1,32.89-5.07,61.56-30.82,70.9-62.81v57.83c0,3.26,2.64,5.9,5.9,5.9h50.42c3.26,0,5.9-2.64,5.9-5.9V110.63c0-3.26-2.64-5.9-5.9-5.9h-56.32Zm0,206.92c-12.2,10.16-27.97,13.98-44.84,15.12-.16,.01-.33,.03-.49,.04-1.12,.07-2.24,.1-3.36,.1-42.24,0-77.12-35.89-77.12-79.37,0-10.25,1.96-20.01,5.42-28.98,11.22-29.12,38.77-49.74,71.06-49.74h49.33v142.83Z"}),r.createElement("path",{className:"cls-2",d:"M1314.05,104.73h-49.33c-48.36,0-90.91,25.48-115.75,64.1-11.79,18.34-19.6,39.64-22.11,62.59-.58,5.3-.88,10.68-.88,16.14s.31,11.15,.93,16.59c4.28,38.09,23.14,71.61,50.66,94.52,2.93,2.6,6.05,4.98,9.31,7.14,12.86,8.49,28.11,13.47,44.52,13.47h0c17.99,0,34.61-5.93,48.16-15.97,16.29-11.58,28.88-28.54,34.48-47.75v50.26h-.11v11.08c0,21.84-5.71,38.27-17.34,49.36-11.61,11.08-31.04,16.63-58.25,16.63-11.12,0-28.79-.59-46.6-2.41-2.83-.29-5.46,1.5-6.27,4.22l-12.78,43.11c-1.02,3.46,1.27,7.02,4.83,7.53,21.52,3.08,42.52,4.68,54.65,4.68,48.91,0,85.16-10.75,108.89-32.21,21.48-19.41,33.15-48.89,35.2-88.52V110.63c0-3.26-2.64-5.9-5.9-5.9h-56.32Zm0,64.1s.65,139.13,0,143.36c-12.08,9.77-27.11,13.59-43.49,14.7-.16,.01-.33,.03-.49,.04-1.12,.07-2.24,.1-3.36,.1-1.32,0-2.63-.03-3.94-.1-40.41-2.11-74.52-37.26-74.52-79.38,0-10.25,1.96-20.01,5.42-28.98,11.22-29.12,38.77-49.74,71.06-49.74h49.33Z"}),r.createElement("path",{className:"cls-1",d:"M249.83,0C113.3,0,2,110.09,.03,246.16c-2,138.19,110.12,252.7,248.33,253.5,42.68,.25,83.79-10.19,120.3-30.03,3.56-1.93,4.11-6.83,1.08-9.51l-23.38-20.72c-4.75-4.21-11.51-5.4-17.36-2.92-25.48,10.84-53.17,16.38-81.71,16.03-111.68-1.37-201.91-94.29-200.13-205.96,1.76-110.26,92-199.41,202.67-199.41h202.69V407.41l-115-102.18c-3.72-3.31-9.42-2.66-12.42,1.31-18.46,24.44-48.53,39.64-81.93,37.34-46.33-3.2-83.87-40.5-87.34-86.81-4.15-55.24,39.63-101.52,94-101.52,49.18,0,89.68,37.85,93.91,85.95,.38,4.28,2.31,8.27,5.52,11.12l29.95,26.55c3.4,3.01,8.79,1.17,9.63-3.3,2.16-11.55,2.92-23.58,2.07-35.92-4.82-70.34-61.8-126.93-132.17-131.26-80.68-4.97-148.13,58.14-150.27,137.25-2.09,77.1,61.08,143.56,138.19,145.26,32.19,.71,62.03-9.41,86.14-26.95l150.26,133.2c6.44,5.71,16.61,1.14,16.61-7.47V9.48C499.66,4.25,495.42,0,490.18,0H249.83Z"})))}function Ft(e){return r.createElement("svg",{width:"15",height:"15","aria-label":e.ariaLabel,role:"img"},r.createElement("g",{fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.2"},e.children))}function Bt(e){var t=e.translations,n=void 0===t?{}:t,o=n.selectText,a=void 0===o?"to select":o,i=n.selectKeyAriaLabel,s=void 0===i?"Enter key":i,l=n.navigateText,c=void 0===l?"to navigate":l,u=n.navigateUpKeyAriaLabel,d=void 0===u?"Arrow up":u,p=n.navigateDownKeyAriaLabel,f=void 0===p?"Arrow down":p,m=n.closeText,h=void 0===m?"to close":m,g=n.closeKeyAriaLabel,b=void 0===g?"Escape key":g,v=n.searchByText,y=void 0===v?"Search by":v;return r.createElement(r.Fragment,null,r.createElement("div",{className:"DocSearch-Logo"},r.createElement(Mt,{translations:{searchByText:y}})),r.createElement("ul",{className:"DocSearch-Commands"},r.createElement("li",null,r.createElement("kbd",{className:"DocSearch-Commands-Key"},r.createElement(Ft,{ariaLabel:s},r.createElement("path",{d:"M12 3.53088v3c0 1-1 2-2 2H4M7 11.53088l-3-3 3-3"}))),r.createElement("span",{className:"DocSearch-Label"},a)),r.createElement("li",null,r.createElement("kbd",{className:"DocSearch-Commands-Key"},r.createElement(Ft,{ariaLabel:f},r.createElement("path",{d:"M7.5 3.5v8M10.5 8.5l-3 3-3-3"}))),r.createElement("kbd",{className:"DocSearch-Commands-Key"},r.createElement(Ft,{ariaLabel:d},r.createElement("path",{d:"M7.5 11.5v-8M10.5 6.5l-3-3-3 3"}))),r.createElement("span",{className:"DocSearch-Label"},c)),r.createElement("li",null,r.createElement("kbd",{className:"DocSearch-Commands-Key"},r.createElement(Ft,{ariaLabel:b},r.createElement("path",{d:"M13.6167 8.936c-.1065.3583-.6883.962-1.4875.962-.7993 0-1.653-.9165-1.653-2.1258v-.5678c0-1.2548.7896-2.1016 1.653-2.1016.8634 0 1.3601.4778 1.4875 1.0724M9 6c-.1352-.4735-.7506-.9219-1.46-.8972-.7092.0246-1.344.57-1.344 1.2166s.4198.8812 1.3445.9805C8.465 7.3992 8.968 7.9337 9 8.5c.032.5663-.454 1.398-1.4595 1.398C6.6593 9.898 6 9 5.963 8.4851m-1.4748.5368c-.2635.5941-.8099.876-1.5443.876s-1.7073-.6248-1.7073-2.204v-.4603c0-1.0416.721-2.131 1.7073-2.131.9864 0 1.6425 1.031 1.5443 2.2492h-2.956"}))),r.createElement("span",{className:"DocSearch-Label"},h))))}function zt(e){var t=e.hit,n=e.children;return r.createElement("a",{href:t.url},n)}function Ut(){return r.createElement("svg",{viewBox:"0 0 38 38",stroke:"currentColor",strokeOpacity:".5"},r.createElement("g",{fill:"none",fillRule:"evenodd"},r.createElement("g",{transform:"translate(1 1)",strokeWidth:"2"},r.createElement("circle",{strokeOpacity:".3",cx:"18",cy:"18",r:"18"}),r.createElement("path",{d:"M36 18c0-9.94-8.06-18-18-18"},r.createElement("animateTransform",{attributeName:"transform",type:"rotate",from:"0 18 18",to:"360 18 18",dur:"1s",repeatCount:"indefinite"})))))}function qt(){return r.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},r.createElement("g",{stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},r.createElement("path",{d:"M3.18 6.6a8.23 8.23 0 1112.93 9.94h0a8.23 8.23 0 01-11.63 0"}),r.createElement("path",{d:"M6.44 7.25H2.55V3.36M10.45 6v5.6M10.45 11.6L13 13"})))}function $t(){return r.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},r.createElement("path",{d:"M10 10l5.09-5.09L10 10l5.09 5.09L10 10zm0 0L4.91 4.91 10 10l-5.09 5.09L10 10z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}function Ht(){return r.createElement("svg",{className:"DocSearch-Hit-Select-Icon",width:"20",height:"20",viewBox:"0 0 20 20"},r.createElement("g",{stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},r.createElement("path",{d:"M18 3v4c0 2-2 4-4 4H2"}),r.createElement("path",{d:"M8 17l-6-6 6-6"})))}var Gt=function(){return r.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},r.createElement("path",{d:"M17 6v12c0 .52-.2 1-1 1H4c-.7 0-1-.33-1-1V2c0-.55.42-1 1-1h8l5 5zM14 8h-3.13c-.51 0-.87-.34-.87-.87V4",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinejoin:"round"}))};function Vt(e){switch(e.type){case"lvl1":return r.createElement(Gt,null);case"content":return r.createElement(Kt,null);default:return r.createElement(Wt,null)}}function Wt(){return r.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},r.createElement("path",{d:"M13 13h4-4V8H7v5h6v4-4H7V8H3h4V3v5h6V3v5h4-4v5zm-6 0v4-4H3h4z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}function Kt(){return r.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},r.createElement("path",{d:"M17 5H3h14zm0 5H3h14zm0 5H3h14z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinejoin:"round"}))}function Qt(){return r.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},r.createElement("path",{d:"M10 14.2L5 17l1-5.6-4-4 5.5-.7 2.5-5 2.5 5 5.6.8-4 4 .9 5.5z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinejoin:"round"}))}function Zt(){return r.createElement("svg",{width:"40",height:"40",viewBox:"0 0 20 20",fill:"none",fillRule:"evenodd",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"},r.createElement("path",{d:"M19 4.8a16 16 0 00-2-1.2m-3.3-1.2A16 16 0 001.1 4.7M16.7 8a12 12 0 00-2.8-1.4M10 6a12 12 0 00-6.7 2M12.3 14.7a4 4 0 00-4.5 0M14.5 11.4A8 8 0 0010 10M3 16L18 2M10 18h0"}))}function Yt(){return r.createElement("svg",{width:"40",height:"40",viewBox:"0 0 20 20",fill:"none",fillRule:"evenodd",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"},r.createElement("path",{d:"M15.5 4.8c2 3 1.7 7-1 9.7h0l4.3 4.3-4.3-4.3a7.8 7.8 0 01-9.8 1m-2.2-2.2A7.8 7.8 0 0113.2 2.4M2 18L18 2"}))}function Jt(e){var t=e.translations,n=void 0===t?{}:t,o=n.titleText,a=void 0===o?"Unable to fetch results":o,i=n.helpText,s=void 0===i?"You might want to check your network connection.":i;return r.createElement("div",{className:"DocSearch-ErrorScreen"},r.createElement("div",{className:"DocSearch-Screen-Icon"},r.createElement(Zt,null)),r.createElement("p",{className:"DocSearch-Title"},a),r.createElement("p",{className:"DocSearch-Help"},s))}var Xt=["translations"];function en(e){var t=e.translations,n=void 0===t?{}:t,o=v(e,Xt),a=n.noResultsText,i=void 0===a?"No results for":a,s=n.suggestedQueryText,l=void 0===s?"Try searching for":s,c=n.reportMissingResultsText,u=void 0===c?"Believe this query should return results?":c,d=n.reportMissingResultsLinkText,p=void 0===d?"Let us know.":d,f=o.state.context.searchSuggestions;return r.createElement("div",{className:"DocSearch-NoResults"},r.createElement("div",{className:"DocSearch-Screen-Icon"},r.createElement(Yt,null)),r.createElement("p",{className:"DocSearch-Title"},i,' "',r.createElement("strong",null,o.state.query),'"'),f&&f.length>0&&r.createElement("div",{className:"DocSearch-NoResults-Prefill-List"},r.createElement("p",{className:"DocSearch-Help"},l,":"),r.createElement("ul",null,f.slice(0,3).reduce((function(e,t){return[].concat(S(e),[r.createElement("li",{key:t},r.createElement("button",{className:"DocSearch-Prefill",key:t,type:"button",onClick:function(){o.setQuery(t.toLowerCase()+" "),o.refresh(),o.inputRef.current.focus()}},t))])}),[]))),o.getMissingResultsUrl&&r.createElement("p",{className:"DocSearch-Help"},"".concat(u," "),r.createElement("a",{href:o.getMissingResultsUrl({query:o.state.query}),target:"_blank",rel:"noopener noreferrer"},p)))}var tn=["hit","attribute","tagName"];function nn(e,t){return t.split(".").reduce((function(e,t){return null!=e&&e[t]?e[t]:null}),e)}function rn(e){var t=e.hit,n=e.attribute,o=e.tagName,a=void 0===o?"span":o,i=v(e,tn);return(0,r.createElement)(a,b(b({},i),{},{dangerouslySetInnerHTML:{__html:nn(t,"_snippetResult.".concat(n,".value"))||nn(t,n)}}))}function on(e){return e.collection&&0!==e.collection.items.length?r.createElement("section",{className:"DocSearch-Hits"},r.createElement("div",{className:"DocSearch-Hit-source"},e.title),r.createElement("ul",e.getListProps(),e.collection.items.map((function(t,n){return r.createElement(an,p({key:[e.title,t.objectID].join(":"),item:t,index:n},e))})))):null}function an(e){var t=e.item,n=e.index,o=e.renderIcon,a=e.renderAction,i=e.getItemProps,s=e.onItemClick,l=e.collection,c=e.hitComponent,u=k(r.useState(!1),2),d=u[0],f=u[1],m=k(r.useState(!1),2),h=m[0],g=m[1],b=r.useRef(null),v=c;return r.createElement("li",p({className:["DocSearch-Hit",t.__docsearch_parent&&"DocSearch-Hit--Child",d&&"DocSearch-Hit--deleting",h&&"DocSearch-Hit--favoriting"].filter(Boolean).join(" "),onTransitionEnd:function(){b.current&&b.current()}},i({item:t,source:l.source,onClick:function(e){s(t,e)}})),r.createElement(v,{hit:t},r.createElement("div",{className:"DocSearch-Hit-Container"},o({item:t,index:n}),t.hierarchy[t.type]&&"lvl1"===t.type&&r.createElement("div",{className:"DocSearch-Hit-content-wrapper"},r.createElement(rn,{className:"DocSearch-Hit-title",hit:t,attribute:"hierarchy.lvl1"}),t.content&&r.createElement(rn,{className:"DocSearch-Hit-path",hit:t,attribute:"content"})),t.hierarchy[t.type]&&("lvl2"===t.type||"lvl3"===t.type||"lvl4"===t.type||"lvl5"===t.type||"lvl6"===t.type)&&r.createElement("div",{className:"DocSearch-Hit-content-wrapper"},r.createElement(rn,{className:"DocSearch-Hit-title",hit:t,attribute:"hierarchy.".concat(t.type)}),r.createElement(rn,{className:"DocSearch-Hit-path",hit:t,attribute:"hierarchy.lvl1"})),"content"===t.type&&r.createElement("div",{className:"DocSearch-Hit-content-wrapper"},r.createElement(rn,{className:"DocSearch-Hit-title",hit:t,attribute:"content"}),r.createElement(rn,{className:"DocSearch-Hit-path",hit:t,attribute:"hierarchy.lvl1"})),a({item:t,runDeleteTransition:function(e){f(!0),b.current=e},runFavoriteTransition:function(e){g(!0),b.current=e}}))))}function sn(e,t,n){return e.reduce((function(e,r){var o=t(r);return e.hasOwnProperty(o)||(e[o]=[]),e[o].length<(n||5)&&e[o].push(r),e}),{})}function ln(e){return e}function cn(e){return 1===e.button||e.altKey||e.ctrlKey||e.metaKey||e.shiftKey}function un(){}var dn=/(<mark>|<\/mark>)/g,pn=RegExp(dn.source);function fn(e){var t,n,r=e;if(!r.__docsearch_parent&&!e._highlightResult)return e.hierarchy.lvl0;var o=r.__docsearch_parent?null===(t=r.__docsearch_parent)||void 0===t||null===(t=t._highlightResult)||void 0===t||null===(t=t.hierarchy)||void 0===t?void 0:t.lvl0:null===(n=e._highlightResult)||void 0===n||null===(n=n.hierarchy)||void 0===n?void 0:n.lvl0;return o?o.value&&pn.test(o.value)?o.value.replace(dn,""):o.value:e.hierarchy.lvl0}function mn(e){return r.createElement("div",{className:"DocSearch-Dropdown-Container"},e.state.collections.map((function(t){if(0===t.items.length)return null;var n=fn(t.items[0]);return r.createElement(on,p({},e,{key:t.source.sourceId,title:n,collection:t,renderIcon:function(e){var n,o=e.item,a=e.index;return r.createElement(r.Fragment,null,o.__docsearch_parent&&r.createElement("svg",{className:"DocSearch-Hit-Tree",viewBox:"0 0 24 54"},r.createElement("g",{stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},o.__docsearch_parent!==(null===(n=t.items[a+1])||void 0===n?void 0:n.__docsearch_parent)?r.createElement("path",{d:"M8 6v21M20 27H8.3"}):r.createElement("path",{d:"M8 6v42M20 27H8.3"}))),r.createElement("div",{className:"DocSearch-Hit-icon"},r.createElement(Vt,{type:o.type})))},renderAction:function(){return r.createElement("div",{className:"DocSearch-Hit-action"},r.createElement(Ht,null))}}))})),e.resultsFooterComponent&&r.createElement("section",{className:"DocSearch-HitsFooter"},r.createElement(e.resultsFooterComponent,{state:e.state})))}var hn=["translations"];function gn(e){var t=e.translations,n=void 0===t?{}:t,o=v(e,hn),a=n.recentSearchesTitle,i=void 0===a?"Recent":a,s=n.noRecentSearchesText,l=void 0===s?"No recent searches":s,c=n.saveRecentSearchButtonTitle,u=void 0===c?"Save this search":c,d=n.removeRecentSearchButtonTitle,f=void 0===d?"Remove this search from history":d,m=n.favoriteSearchesTitle,h=void 0===m?"Favorite":m,g=n.removeFavoriteSearchButtonTitle,b=void 0===g?"Remove this search from favorites":g;return"idle"===o.state.status&&!1===o.hasCollections?o.disableUserPersonalization?null:r.createElement("div",{className:"DocSearch-StartScreen"},r.createElement("p",{className:"DocSearch-Help"},l)):!1===o.hasCollections?null:r.createElement("div",{className:"DocSearch-Dropdown-Container"},r.createElement(on,p({},o,{title:i,collection:o.state.collections[0],renderIcon:function(){return r.createElement("div",{className:"DocSearch-Hit-icon"},r.createElement(qt,null))},renderAction:function(e){var t=e.item,n=e.runFavoriteTransition,a=e.runDeleteTransition;return r.createElement(r.Fragment,null,r.createElement("div",{className:"DocSearch-Hit-action"},r.createElement("button",{className:"DocSearch-Hit-action-button",title:u,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),n((function(){o.favoriteSearches.add(t),o.recentSearches.remove(t),o.refresh()}))}},r.createElement(Qt,null))),r.createElement("div",{className:"DocSearch-Hit-action"},r.createElement("button",{className:"DocSearch-Hit-action-button",title:f,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),a((function(){o.recentSearches.remove(t),o.refresh()}))}},r.createElement($t,null))))}})),r.createElement(on,p({},o,{title:h,collection:o.state.collections[1],renderIcon:function(){return r.createElement("div",{className:"DocSearch-Hit-icon"},r.createElement(Qt,null))},renderAction:function(e){var t=e.item,n=e.runDeleteTransition;return r.createElement("div",{className:"DocSearch-Hit-action"},r.createElement("button",{className:"DocSearch-Hit-action-button",title:b,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),n((function(){o.favoriteSearches.remove(t),o.refresh()}))}},r.createElement($t,null)))}})))}var bn=["translations"],vn=r.memo((function(e){var t=e.translations,n=void 0===t?{}:t,o=v(e,bn);if("error"===o.state.status)return r.createElement(Jt,{translations:null==n?void 0:n.errorScreen});var a=o.state.collections.some((function(e){return e.items.length>0}));return o.state.query?!1===a?r.createElement(en,p({},o,{translations:null==n?void 0:n.noResultsScreen})):r.createElement(mn,o):r.createElement(gn,p({},o,{hasCollections:a,translations:null==n?void 0:n.startScreen}))}),(function(e,t){return"loading"===t.state.status||"stalled"===t.state.status})),yn=["translations"];function wn(e){var t=e.translations,n=void 0===t?{}:t,o=v(e,yn),a=n.resetButtonTitle,i=void 0===a?"Clear the query":a,s=n.resetButtonAriaLabel,l=void 0===s?"Clear the query":s,c=n.cancelButtonText,u=void 0===c?"Cancel":c,d=n.cancelButtonAriaLabel,f=void 0===d?"Cancel":d,m=n.searchInputLabel,h=void 0===m?"Search":m,g=o.getFormProps({inputElement:o.inputRef.current}).onReset;return r.useEffect((function(){o.autoFocus&&o.inputRef.current&&o.inputRef.current.focus()}),[o.autoFocus,o.inputRef]),r.useEffect((function(){o.isFromSelection&&o.inputRef.current&&o.inputRef.current.select()}),[o.isFromSelection,o.inputRef]),r.createElement(r.Fragment,null,r.createElement("form",{className:"DocSearch-Form",onSubmit:function(e){e.preventDefault()},onReset:g},r.createElement("label",p({className:"DocSearch-MagnifierLabel"},o.getLabelProps()),r.createElement(O,null),r.createElement("span",{className:"DocSearch-VisuallyHiddenForAccessibility"},h)),r.createElement("div",{className:"DocSearch-LoadingIndicator"},r.createElement(Ut,null)),r.createElement("input",p({className:"DocSearch-Input",ref:o.inputRef},o.getInputProps({inputElement:o.inputRef.current,autoFocus:o.autoFocus,maxLength:64}))),r.createElement("button",{type:"reset",title:i,className:"DocSearch-Reset","aria-label":l,hidden:!o.state.query},r.createElement($t,null))),r.createElement("button",{className:"DocSearch-Cancel",type:"reset","aria-label":f,onClick:o.onClose},u))}var kn=["_highlightResult","_snippetResult"];function Sn(e){var t=e.key,n=e.limit,r=void 0===n?5:n,o=function(e){return!1===function(){var e="__TEST_KEY__";try{return localStorage.setItem(e,""),localStorage.removeItem(e),!0}catch(e){return!1}}()?{setItem:function(){},getItem:function(){return[]}}:{setItem:function(t){return window.localStorage.setItem(e,JSON.stringify(t))},getItem:function(){var t=window.localStorage.getItem(e);return t?JSON.parse(t):[]}}}(t),a=o.getItem().slice(0,r);return{add:function(e){var t=e,n=(t._highlightResult,t._snippetResult,v(t,kn)),i=a.findIndex((function(e){return e.objectID===n.objectID}));i>-1&&a.splice(i,1),a.unshift(n),a=a.slice(0,r),o.setItem(a)},remove:function(e){a=a.filter((function(t){return t.objectID!==e.objectID})),o.setItem(a)},getAll:function(){return a}}}function xn(e){var t,n="algolia-client-js-".concat(e.key);function r(){return void 0===t&&(t=e.localStorage||window.localStorage),t}function o(){return JSON.parse(r().getItem(n)||"{}")}function a(e){r().setItem(n,JSON.stringify(e))}return{get:function(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return Promise.resolve().then((function(){var n,r,i;return n=e.timeToLive?1e3*e.timeToLive:null,r=o(),a(i=Object.fromEntries(Object.entries(r).filter((function(e){return void 0!==k(e,2)[1].timestamp})))),n&&a(Object.fromEntries(Object.entries(i).filter((function(e){var t=k(e,2)[1],r=(new Date).getTime();return!(t.timestamp+n<r)})))),o()[JSON.stringify(t)]})).then((function(e){return Promise.all([e?e.value:n(),void 0!==e])})).then((function(e){var t=k(e,2),n=t[0],o=t[1];return Promise.all([n,o||r.miss(n)])})).then((function(e){return k(e,1)[0]}))},set:function(e,t){return Promise.resolve().then((function(){var a=o();return a[JSON.stringify(e)]={timestamp:(new Date).getTime(),value:t},r().setItem(n,JSON.stringify(a)),t}))},delete:function(e){return Promise.resolve().then((function(){var t=o();delete t[JSON.stringify(e)],r().setItem(n,JSON.stringify(t))}))},clear:function(){return Promise.resolve().then((function(){r().removeItem(n)}))}}}function En(e){var t=S(e.caches),n=t.shift();return void 0===n?{get:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return t().then((function(e){return Promise.all([e,n.miss(e)])})).then((function(e){return k(e,1)[0]}))},set:function(e,t){return Promise.resolve(t)},delete:function(e){return Promise.resolve()},clear:function(){return Promise.resolve()}}:{get:function(e,r){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return n.get(e,r,o).catch((function(){return En({caches:t}).get(e,r,o)}))},set:function(e,r){return n.set(e,r).catch((function(){return En({caches:t}).set(e,r)}))},delete:function(e){return n.delete(e).catch((function(){return En({caches:t}).delete(e)}))},clear:function(){return n.clear().catch((function(){return En({caches:t}).clear()}))}}}function Cn(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{serializable:!0},t={};return{get:function(n,r){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}},a=JSON.stringify(n);if(a in t)return Promise.resolve(e.serializable?JSON.parse(t[a]):t[a]);var i=r();return i.then((function(e){return o.miss(e)})).then((function(){return i}))},set:function(n,r){return t[JSON.stringify(n)]=e.serializable?JSON.stringify(r):r,Promise.resolve(r)},delete:function(e){return delete t[JSON.stringify(e)],Promise.resolve()},clear:function(){return t={},Promise.resolve()}}}function _n(e){var t=e.algoliaAgents,n=e.client,r=e.version,o=function(e){var t={value:"Algolia for JavaScript (".concat(e,")"),add:function(e){var n="; ".concat(e.segment).concat(void 0!==e.version?" (".concat(e.version,")"):"");return-1===t.value.indexOf(n)&&(t.value="".concat(t.value).concat(n)),t}};return t}(r).add({segment:n,version:r});return t.forEach((function(e){return o.add(e)})),o}var On=12e4;function An(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"up",n=Date.now();return b(b({},e),{},{status:t,lastUpdate:n,isUp:function(){return"up"===t||Date.now()-n>On},isTimedOut:function(){return"timed out"===t&&Date.now()-n<=On}})}var Tn=function(){function e(t,n){var r;return l(this,e),d(r=s(this,e,[t]),"name","AlgoliaError"),n&&(r.name=n),r}return m(e,C(Error)),u(e)}(),jn=function(){function e(t,n,r){var o;return l(this,e),d(o=s(this,e,[t,r]),"stackTrace",void 0),o.stackTrace=n,o}return m(e,Tn),u(e)}(),Ln=function(){function e(t){return l(this,e),s(this,e,["Unreachable hosts - your application id may be incorrect. If the error persists, please reach out to the Algolia Support team: https://alg.li/support.",t,"RetryError"])}return m(e,jn),u(e)}(),Pn=function(){function e(t,n,r){var o,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"ApiError";return l(this,e),d(o=s(this,e,[t,r,a]),"status",void 0),o.status=n,o}return m(e,jn),u(e)}(),Dn=function(){function e(t,n){var r;return l(this,e),d(r=s(this,e,[t,"DeserializationError"]),"response",void 0),r.response=n,r}return m(e,Tn),u(e)}(),Rn=function(){function e(t,n,r,o){var a;return l(this,e),d(a=s(this,e,[t,n,o,"DetailedApiError"]),"error",void 0),a.error=r,a}return m(e,Pn),u(e)}();function Nn(e,t,n){var r,o=(r=n,Object.keys(r).filter((function(e){return void 0!==r[e]})).sort().map((function(e){return"".concat(e,"=").concat(encodeURIComponent("[object Array]"===Object.prototype.toString.call(r[e])?r[e].join(","):r[e]).replace(/\+/g,"%20"))})).join("&")),a="".concat(e.protocol,"://").concat(e.url).concat(e.port?":".concat(e.port):"","/").concat("/"===t.charAt(0)?t.substring(1):t);return o.length&&(a+="?".concat(o)),a}function In(e,t){if("GET"!==e.method&&(void 0!==e.data||void 0!==t.data)){var n=Array.isArray(e.data)?e.data:b(b({},e.data),t.data);return JSON.stringify(n)}}function Mn(e,t,n){var r=b(b(b({Accept:"application/json"},e),t),n),o={};return Object.keys(r).forEach((function(e){var t=r[e];o[e.toLowerCase()]=t})),o}function Fn(e){try{return JSON.parse(e.content)}catch(t){throw new Dn(t.message,e)}}function Bn(e,t){var n=e.content,r=e.status;try{var o=JSON.parse(n);return"error"in o?new Rn(o.message,r,o.error,t):new Pn(o.message,r,t)}catch(e){}return new Pn(n,r,t)}function zn(e){return e.map((function(e){return Un(e)}))}function Un(e){var t=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return b(b({},e),{},{request:b(b({},e.request),{},{headers:b(b({},e.request.headers),t)})})}var qn=["appId","apiKey","authMode","algoliaAgents"],$n=["params"],Hn="5.12.0";function Gn(e){return[{url:"".concat(e,"-dsn.algolia.net"),accept:"read",protocol:"https"},{url:"".concat(e,".algolia.net"),accept:"write",protocol:"https"}].concat(function(e){for(var t=e,n=e.length-1;n>0;n--){var r=Math.floor(Math.random()*(n+1)),o=e[n];t[n]=e[r],t[r]=o}return t}([{url:"".concat(e,"-1.algolianet.com"),accept:"readWrite",protocol:"https"},{url:"".concat(e,"-2.algolianet.com"),accept:"readWrite",protocol:"https"},{url:"".concat(e,"-3.algolianet.com"),accept:"readWrite",protocol:"https"}]))}var Vn="3.6.3";function Wn(e,t,n){return r.useMemo((function(){var r=function(e,t){if(!e||"string"!=typeof e)throw new Error("`appId` is missing.");if(!t||"string"!=typeof t)throw new Error("`apiKey` is missing.");return function(e){var t=e.appId,n=e.apiKey,r=e.authMode,o=e.algoliaAgents,a=v(e,qn),s=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"WithinHeaders",r={"x-algolia-api-key":t,"x-algolia-application-id":e};return{headers:function(){return"WithinHeaders"===n?r:{}},queryParameters:function(){return"WithinQueryParameters"===n?r:{}}}}(t,n,r),l=function(e){var t=e.hosts,n=e.hostsCache,r=e.baseHeaders,o=e.logger,a=e.baseQueryParameters,s=e.algoliaAgent,l=e.timeouts,c=e.requester,u=e.requestsCache,d=e.responsesCache;function p(e){return f.apply(this,arguments)}function f(){return(f=i(y().mark((function e(t){var r,o,a,i,s;return y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Promise.all(t.map((function(e){return n.get(e,(function(){return Promise.resolve(An(e))}))})));case 2:return r=e.sent,o=r.filter((function(e){return e.isUp()})),a=r.filter((function(e){return e.isTimedOut()})),i=[].concat(S(o),S(a)),s=i.length>0?i:t,e.abrupt("return",{hosts:s,getTimeout:function(e,t){return(0===a.length&&0===e?1:a.length+3+e)*t}});case 8:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function m(e,t){return h.apply(this,arguments)}function h(){return h=i(y().mark((function e(u,d){var f,m,h,g,v,w,k,x,E,C,_,O,A,T=arguments;return y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(f=!(T.length>2&&void 0!==T[2])||T[2],m=[],h=In(u,d),g=Mn(r,u.headers,d.headers),v="GET"===u.method?b(b({},u.data),d.data):{},w=b(b(b({},a),u.queryParameters),v),s.value&&(w["x-algolia-agent"]=s.value),d&&d.queryParameters)for(k=0,x=Object.keys(d.queryParameters);k<x.length;k++)E=x[k],d.queryParameters[E]&&"[object Object]"!==Object.prototype.toString.call(d.queryParameters[E])?w[E]=d.queryParameters[E].toString():w[E]=d.queryParameters[E];return C=0,_=function(){var e=i(y().mark((function e(t,r){var a,i,s,p,v,k;return y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(void 0!==(a=t.pop())){e.next=3;break}throw new Ln(zn(m));case 3:return i=b(b({},l),d.timeouts),s={data:h,headers:g,method:u.method,url:Nn(a,u.path,w),connectTimeout:r(C,i.connect),responseTimeout:r(C,f?i.read:i.write)},p=function(e){var n={request:s,response:e,host:a,triesLeft:t.length};return m.push(n),n},e.next=8,c.send(s);case 8:if(S=(y=v=e.sent).isTimedOut,x=y.status,!(S||function(e){return!e.isTimedOut&&!~~e.status}({isTimedOut:S,status:x})||2!=~~(x/100)&&4!=~~(x/100))){e.next=16;break}return k=p(v),v.isTimedOut&&C++,o.info("Retryable failure",Un(k)),e.next=15,n.set(a,An(a,v.isTimedOut?"timed out":"down"));case 15:return e.abrupt("return",_(t,r));case 16:if(2!=~~(v.status/100)){e.next=18;break}return e.abrupt("return",Fn(v));case 18:throw p(v),Bn(v,m);case 20:case"end":return e.stop()}var y,S,x}),e)})));return function(t,n){return e.apply(this,arguments)}}(),O=t.filter((function(e){return"readWrite"===e.accept||(f?"read"===e.accept:"write"===e.accept)})),e.next=13,p(O);case 13:return A=e.sent,e.abrupt("return",_(S(A.hosts).reverse(),A.getTimeout));case 15:case"end":return e.stop()}}),e)}))),h.apply(this,arguments)}return{hostsCache:n,requester:c,timeouts:l,logger:o,algoliaAgent:s,baseHeaders:r,baseQueryParameters:a,hosts:t,request:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.useReadTransporter||"GET"===e.method;if(!n)return m(e,t,n);var o=function(){return m(e,t)};if(!0!==(t.cacheable||e.cacheable))return o();var i={request:e,requestOptions:t,transporter:{queryParameters:a,headers:r}};return d.get(i,(function(){return u.get(i,(function(){return u.set(i,o()).then((function(e){return Promise.all([u.delete(i),e])}),(function(e){return Promise.all([u.delete(i),Promise.reject(e)])})).then((function(e){var t=k(e,2);return t[0],t[1]}))}))}),{miss:function(e){return d.set(i,e)}})},requestsCache:u,responsesCache:d}}(b(b({hosts:Gn(t)},a),{},{algoliaAgent:_n({algoliaAgents:o,client:"Lite",version:Hn}),baseHeaders:b(b({"content-type":"text/plain"},s.headers()),a.baseHeaders),baseQueryParameters:b(b({},s.queryParameters()),a.baseQueryParameters)}));return{transporter:l,appId:t,clearCache:function(){return Promise.all([l.requestsCache.clear(),l.responsesCache.clear()]).then((function(){}))},get _ua(){return l.algoliaAgent.value},addAlgoliaAgent:function(e,t){l.algoliaAgent.add({segment:e,version:t})},setClientApiKey:function(e){var t=e.apiKey;r&&"WithinHeaders"!==r?l.baseQueryParameters["x-algolia-api-key"]=t:l.baseHeaders["x-algolia-api-key"]=t},searchForHits:function(e,t){return this.search(e,t)},searchForFacets:function(e,t){return this.search(e,t)},customPost:function(e,t){var n=e.path,r=e.parameters,o=e.body;if(!n)throw new Error("Parameter `path` is required when calling `customPost`.");var a={method:"POST",path:"/{path}".replace("{path}",n),queryParameters:r||{},headers:{},data:o||{}};return l.request(a,t)},getRecommendations:function(e,t){if(e&&Array.isArray(e)&&(e={requests:e}),!e)throw new Error("Parameter `getRecommendationsParams` is required when calling `getRecommendations`.");if(!e.requests)throw new Error("Parameter `getRecommendationsParams.requests` is required when calling `getRecommendations`.");var n={method:"POST",path:"/1/indexes/*/recommendations",queryParameters:{},headers:{},data:e,useReadTransporter:!0,cacheable:!0};return l.request(n,t)},search:function(e,t){if(e&&Array.isArray(e)){var n={requests:e.map((function(e){var t=e.params,n=v(e,$n);return"facet"===n.type?b(b(b({},n),t),{},{type:"facet"}):b(b(b({},n),t),{},{facet:void 0,maxFacetHits:void 0,facetQuery:void 0})}))};e=n}if(!e)throw new Error("Parameter `searchMethodParams` is required when calling `search`.");if(!e.requests)throw new Error("Parameter `searchMethodParams.requests` is required when calling `search`.");var r={method:"POST",path:"/1/indexes/*/queries",queryParameters:{},headers:{},data:e,useReadTransporter:!0,cacheable:!0};return l.request(r,t)}}}(b({appId:e,apiKey:t,timeouts:{connect:1e3,read:2e3,write:3e4},logger:{debug:function(e,t){return Promise.resolve()},info:function(e,t){return Promise.resolve()},error:function(e,t){return Promise.resolve()}},requester:{send:function(e){return new Promise((function(t){var n=new XMLHttpRequest;n.open(e.method,e.url,!0),Object.keys(e.headers).forEach((function(t){return n.setRequestHeader(t,e.headers[t])}));var r,o=function(e,r){return setTimeout((function(){n.abort(),t({status:0,content:r,isTimedOut:!0})}),e)},a=o(e.connectTimeout,"Connection timeout");n.onreadystatechange=function(){n.readyState>n.OPENED&&void 0===r&&(clearTimeout(a),r=o(e.responseTimeout,"Socket timeout"))},n.onerror=function(){0===n.status&&(clearTimeout(a),clearTimeout(r),t({content:n.responseText||"Network request failed",status:n.status,isTimedOut:!1}))},n.onload=function(){clearTimeout(a),clearTimeout(r),t({content:n.responseText,status:n.status,isTimedOut:!1})},n.send(e.data)}))}},algoliaAgents:[{segment:"Browser"}],authMode:"WithinQueryParameters",responsesCache:Cn(),requestsCache:Cn({serializable:!1}),hostsCache:En({caches:[xn({key:"".concat(Hn,"-").concat(e)}),Cn()]})},void 0))}(e,t);return r.addAlgoliaAgent("docsearch",Vn),!1===/docsearch.js \(.*\)/.test(r.transporter.algoliaAgent.value)&&r.addAlgoliaAgent("docsearch-react",Vn),n(r)}),[e,t,n])}var Kn=["footer","searchBox"];function Qn(e){var t=e.appId,n=e.apiKey,o=e.indexName,a=e.placeholder,i=void 0===a?"Search docs":a,s=e.searchParameters,l=e.maxResultsPerGroup,c=e.onClose,u=void 0===c?un:c,d=e.transformItems,f=void 0===d?ln:d,m=e.hitComponent,h=void 0===m?zt:m,g=e.resultsFooterComponent,y=void 0===g?function(){return null}:g,w=e.navigator,S=e.initialScrollY,x=void 0===S?0:S,E=e.transformSearchClient,C=void 0===E?ln:E,_=e.disableUserPersonalization,O=void 0!==_&&_,A=e.initialQuery,T=void 0===A?"":A,j=e.translations,L=void 0===j?{}:j,P=e.getMissingResultsUrl,D=e.insights,R=void 0!==D&&D,N=L.footer,I=L.searchBox,M=v(L,Kn),F=k(r.useState({query:"",collections:[],completion:null,context:{},isOpen:!1,activeItemId:null,status:"idle"}),2),B=F[0],z=F[1],U=r.useRef(null),q=r.useRef(null),$=r.useRef(null),H=r.useRef(null),G=r.useRef(null),V=r.useRef(10),W=r.useRef("undefined"!=typeof window?window.getSelection().toString().slice(0,64):"").current,K=r.useRef(T||W).current,Q=Wn(t,n,C),Z=r.useRef(Sn({key:"__DOCSEARCH_FAVORITE_SEARCHES__".concat(o),limit:10})).current,Y=r.useRef(Sn({key:"__DOCSEARCH_RECENT_SEARCHES__".concat(o),limit:0===Z.getAll().length?7:4})).current,J=r.useCallback((function(e){if(!O){var t="content"===e.type?e.__docsearch_parent:e;t&&-1===Z.getAll().findIndex((function(e){return e.objectID===t.objectID}))&&Y.add(t)}}),[Z,Y,O]),X=r.useCallback((function(e){if(B.context.algoliaInsightsPlugin&&e.__autocomplete_id){var t=e,n={eventName:"Item Selected",index:t.__autocomplete_indexName,items:[t],positions:[e.__autocomplete_id],queryID:t.__autocomplete_queryID};B.context.algoliaInsightsPlugin.insights.clickedObjectIDsAfterSearch(n)}}),[B.context.algoliaInsightsPlugin]),ee=r.useMemo((function(){return It({id:"docsearch",defaultActiveItemId:0,placeholder:i,openOnFocus:!0,initialState:{query:K,context:{searchSuggestions:[]}},insights:R,navigator:w,onStateChange:function(e){z(e.state)},getSources:function(e){var r=e.query,a=e.state,i=e.setContext,c=e.setStatus;if(!r)return O?[]:[{sourceId:"recentSearches",onSelect:function(e){var t=e.item,n=e.event;J(t),cn(n)||u()},getItemUrl:function(e){return e.item.url},getItems:function(){return Y.getAll()}},{sourceId:"favoriteSearches",onSelect:function(e){var t=e.item,n=e.event;J(t),cn(n)||u()},getItemUrl:function(e){return e.item.url},getItems:function(){return Z.getAll()}}];var d=Boolean(R);return Q.search({requests:[b({query:r,indexName:o,attributesToRetrieve:["hierarchy.lvl0","hierarchy.lvl1","hierarchy.lvl2","hierarchy.lvl3","hierarchy.lvl4","hierarchy.lvl5","hierarchy.lvl6","content","type","url"],attributesToSnippet:["hierarchy.lvl1:".concat(V.current),"hierarchy.lvl2:".concat(V.current),"hierarchy.lvl3:".concat(V.current),"hierarchy.lvl4:".concat(V.current),"hierarchy.lvl5:".concat(V.current),"hierarchy.lvl6:".concat(V.current),"content:".concat(V.current)],snippetEllipsisText:"\u2026",highlightPreTag:"<mark>",highlightPostTag:"</mark>",hitsPerPage:20,clickAnalytics:d},s)]}).catch((function(e){throw"RetryError"===e.name&&c("error"),e})).then((function(e){var r=e.results[0],s=r.hits,c=r.nbHits,p=sn(s,(function(e){return fn(e)}),l);a.context.searchSuggestions.length<Object.keys(p).length&&i({searchSuggestions:Object.keys(p)}),i({nbHits:c});var m={};return d&&(m={__autocomplete_indexName:o,__autocomplete_queryID:r.queryID,__autocomplete_algoliaCredentials:{appId:t,apiKey:n}}),Object.values(p).map((function(e,t){return{sourceId:"hits".concat(t),onSelect:function(e){var t=e.item,n=e.event;J(t),cn(n)||u()},getItemUrl:function(e){return e.item.url},getItems:function(){return Object.values(sn(e,(function(e){return e.hierarchy.lvl1}),l)).map(f).map((function(e){return e.map((function(t){var n=null,r=e.find((function(e){return"lvl1"===e.type&&e.hierarchy.lvl1===t.hierarchy.lvl1}));return"lvl1"!==t.type&&r&&(n=r),b(b({},t),{},{__docsearch_parent:n},m)}))})).flat()}}}))}))}})}),[o,s,l,Q,u,Y,Z,J,K,i,w,f,O,R,t,n]),te=ee.getEnvironmentProps,ne=ee.getRootProps,re=ee.refresh;return function(e){var t=e.getEnvironmentProps,n=e.panelElement,o=e.formElement,a=e.inputElement;r.useEffect((function(){if(n&&o&&a){var e=t({panelElement:n,formElement:o,inputElement:a}),r=e.onTouchStart,i=e.onTouchMove;return window.addEventListener("touchstart",r),window.addEventListener("touchmove",i),function(){window.removeEventListener("touchstart",r),window.removeEventListener("touchmove",i)}}}),[t,n,o,a])}({getEnvironmentProps:te,panelElement:H.current,formElement:$.current,inputElement:G.current}),function(e){var t=e.container;r.useEffect((function(){if(t){var e=t.querySelectorAll("a[href]:not([disabled]), button:not([disabled]), input:not([disabled])"),n=e[0],r=e[e.length-1];return t.addEventListener("keydown",o),function(){t.removeEventListener("keydown",o)}}function o(e){"Tab"===e.key&&(e.shiftKey?document.activeElement===n&&(e.preventDefault(),r.focus()):document.activeElement===r&&(e.preventDefault(),n.focus()))}}),[t])}({container:U.current}),r.useEffect((function(){return document.body.classList.add("DocSearch--active"),function(){var e,t;document.body.classList.remove("DocSearch--active"),null===(e=(t=window).scrollTo)||void 0===e||e.call(t,0,x)}}),[]),r.useEffect((function(){window.matchMedia("(max-width: 768px)").matches&&(V.current=5)}),[]),r.useEffect((function(){H.current&&(H.current.scrollTop=0)}),[B.query]),r.useEffect((function(){K.length>0&&(re(),G.current&&G.current.focus())}),[K,re]),r.useEffect((function(){function e(){if(q.current){var e=.01*window.innerHeight;q.current.style.setProperty("--docsearch-vh","".concat(e,"px"))}}return e(),window.addEventListener("resize",e),function(){window.removeEventListener("resize",e)}}),[]),r.createElement("div",p({ref:U},ne({"aria-expanded":!0}),{className:["DocSearch","DocSearch-Container","stalled"===B.status&&"DocSearch-Container--Stalled","error"===B.status&&"DocSearch-Container--Errored"].filter(Boolean).join(" "),role:"button",tabIndex:0,onMouseDown:function(e){e.target===e.currentTarget&&u()}}),r.createElement("div",{className:"DocSearch-Modal",ref:q},r.createElement("header",{className:"DocSearch-SearchBar",ref:$},r.createElement(wn,p({},ee,{state:B,autoFocus:0===K.length,inputRef:G,isFromSelection:Boolean(K)&&K===W,translations:I,onClose:u}))),r.createElement("div",{className:"DocSearch-Dropdown",ref:H},r.createElement(vn,p({},ee,{indexName:o,state:B,hitComponent:h,resultsFooterComponent:y,disableUserPersonalization:O,recentSearches:Y,favoriteSearches:Z,inputRef:G,translations:M,getMissingResultsUrl:P,onItemClick:function(e,t){X(e),J(e),cn(t)||u()}}))),r.createElement("footer",{className:"DocSearch-Footer"},r.createElement(Bt,{translations:N}))))}function Zn(e){var t=e.isOpen,n=e.onOpen,o=e.onClose,a=e.onInput,i=e.searchButtonRef;r.useEffect((function(){function e(e){var r;if("Escape"===e.code&&t||"k"===(null===(r=e.key)||void 0===r?void 0:r.toLowerCase())&&(e.metaKey||e.ctrlKey)||!function(e){var t=e.target,n=t.tagName;return t.isContentEditable||"INPUT"===n||"SELECT"===n||"TEXTAREA"===n}(e)&&"/"===e.key&&!t)return e.preventDefault(),void(t?o():document.body.classList.contains("DocSearch--active")||n());i&&i.current===document.activeElement&&a&&/[a-zA-Z0-9]/.test(String.fromCharCode(e.keyCode))&&a(e)}return window.addEventListener("keydown",e),function(){window.removeEventListener("keydown",e)}}),[t,n,o,a,i])}},9225:(e,t,n)=>{var r={"./":6532};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=9225},9625:(e,t,n)=>{"use strict";n.d(t,{A:()=>p});n(758);var r=n(5534),o=n.n(r),a=n(4054);const i={"028d32dc":[()=>n.e(3797).then(n.bind(n,2037)),"@site/docs/build-on-morph/sdk/functions/toAddress.md",2037],"02a35c22":[()=>n.e(9849).then(n.bind(n,1545)),"@site/docs/build-on-morph/sdk/variables/DEFAULT_L1_CONTRACT_ADDRESSES.md",1545],"066c1628":[()=>n.e(9075).then(n.bind(n,1833)),"@site/docs/build-on-morph/sdk/variables/l1BridgeName.md",1833],"08313b4f":[()=>n.e(3894).then(n.bind(n,2701)),"@site/docs/build-on-morph/sdk/variables/CONTRACT_ADDRESSES.md",2701],"08b9f613":[()=>n.e(2736).then(n.bind(n,5270)),"@site/docs/about-morph/1-overview-of-morph.md",5270],"1483841d":[()=>n.e(1544).then(n.bind(n,7306)),"@site/docs/build-on-morph/sdk/interfaces/ProvenWithdrawal.md",7306],17896441:[()=>Promise.all([n.e(1869),n.e(8401)]).then(n.bind(n,5948)),"@theme/DocItem",5948],"1a1587e1":[()=>n.e(5678).then(n.bind(n,5879)),"@site/docs/about-morph/6-roadmap.md",5879],"1a4e3797":[()=>Promise.all([n.e(1869),n.e(2138)]).then(n.bind(n,6210)),"@theme/SearchPage",6210],"1f2dc99a":[()=>n.e(8170).then(n.bind(n,3306)),"@site/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/7-artificial-intelligence.md",3306],"22a82985":[()=>n.e(7990).then(n.bind(n,3927)),"@site/docs/build-on-morph/developer-resources/3-morph-json-rpc-api-methods.md",3927],"24734b3e":[()=>n.e(933).then(n.bind(n,5660)),"@site/docs/build-on-morph/sdk/interfaces/StateRoot.md",5660],"25bec567":[()=>n.e(690).then(n.bind(n,3406)),"@site/docs/build-on-morph/sdk/interfaces/StateRootBatch.md",3406],"2a31694d":[()=>n.e(6039).then(n.bind(n,2583)),"@site/docs/build-on-morph/sdk/type-aliases/DeepPartial.md",2583],"2b4bd9da":[()=>n.e(7481).then(n.bind(n,1767)),"@site/docs/build-on-morph/sdk/interfaces/L2Transaction.md",1767],"2f19d5d4":[()=>n.e(9640).then(n.bind(n,4240)),"@site/docs/build-on-morph/code-examples/1-deploy-contract-on-morph.md",4240],"3250a443":[()=>n.e(6935).then(n.bind(n,2702)),"@site/docs/build-on-morph/developer-resources/node-operation/upgrade-node/2-upgrade-node-docker.md",2702],"325638e1":[()=>n.e(8318).then(n.bind(n,9926)),"@site/docs/quick-start/3-faucet.md",9926],"33e57971":[()=>n.e(8343).then(n.bind(n,6139)),"@site/docs/about-morph/2-the-technology-behind-morph.md",6139],"38a5c357":[()=>n.e(4286).then(n.t.bind(n,7757,19)),"/Users/danny.fu/morphl2/morph-frontend/apps/morph-doc/.docusaurus/docusaurus-theme-search-algolia/default/plugin-route-context-module-100.json",7757],"38e6cd8b":[()=>n.e(8476).then(n.bind(n,760)),"@site/docs/build-on-morph/sdk/functions/estimateTotalGasCost.md",760],"39f485e7":[()=>n.e(5980).then(n.bind(n,6747)),"@site/docs/about-morph/7-faqs.md",6747],"3f6197d4":[()=>n.e(835).then(n.bind(n,4215)),"@site/docs/build-on-morph/1-intro.md",4215],"405a8a84":[()=>n.e(6632).then(n.bind(n,7578)),"@site/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/6-block-explorer.md",7578],"40b4f046":[()=>n.e(4145).then(n.bind(n,4379)),"@site/docs/build-on-morph/sdk/type-aliases/SignerOrProviderLike.md",4379],"44bbd017":[()=>n.e(5223).then(n.bind(n,8480)),"@site/docs/build-on-morph/sdk/variables/l2BridgeName.md",8480],"465c0bc5":[()=>n.e(655).then(n.bind(n,8963)),"@site/docs/build-on-morph/sdk/variables/l1CrossDomainMessengerName.md",8963],46618904:[()=>n.e(8991).then(n.bind(n,6935)),"@site/docs/build-on-morph/sdk/functions/getL1GasPrice.md",6935],"4784893f":[()=>n.e(2286).then(n.bind(n,6158)),"@site/docs/build-on-morph/sdk/functions/toBigNumber.md",6158],"4a10ae38":[()=>n.e(866).then(n.bind(n,5887)),"@site/docs/build-on-morph/sdk/variables/DEPOSIT_CONFIRMATION_BLOCKS.md",5887],"4a269d4a":[()=>n.e(7396).then(n.bind(n,5768)),"@site/docs/build-on-morph/sdk/interfaces/MessageReceipt.md",5768],"4cbe5783":[()=>n.e(6736).then(n.bind(n,3053)),"@site/docs/build-on-morph/sdk/functions/toTransactionHash.md",3053],"4f7a49ab":[()=>n.e(749).then(n.bind(n,2877)),"@site/docs/build-on-morph/developer-resources/node-operation/validator-node/1-run-in-docker.md",2877],52171187:[()=>n.e(5027).then(n.bind(n,1520)),"@site/docs/about-morph/3-where-should-i-start.md",1520],"578ca001":[()=>n.e(6142).then(n.bind(n,761)),"@site/docs/how-morph-works/3-optimistic-zkevm.md",761],"57c15217":[()=>n.e(4766).then(n.bind(n,3499)),"@site/docs/how-morph-works/general-protocol-design/1-rollup.md",3499],"59db22f4":[()=>n.e(3197).then(n.bind(n,9642)),"@site/docs/build-on-morph/sdk/classes/ETHBridgeAdapter.md",9642],"59f4fb6c":[()=>n.e(3186).then(n.bind(n,1615)),"@site/docs/how-morph-works/general-protocol-design/4-transactions-life-cycle.md",1615],"5a91095f":[()=>n.e(6819).then(n.bind(n,4284)),"@site/docs/build-on-morph/sdk/type-aliases/NumberLike.md",4284],"5aa3c257":[()=>n.e(7362).then(n.bind(n,4885)),"@site/docs/how-morph-works/general-protocol-design/2-communicate-between-morph-and-ethereum.md",4885],"5acb1cf6":[()=>n.e(3210).then(n.bind(n,3593)),"@site/docs/build-on-morph/sdk/interfaces/BridgeAdapterData.md",3593],"5bc5b9ce":[()=>n.e(3457).then(n.bind(n,9010)),"@site/docs/build-on-morph/build-on-morph/3-bridge-between-morph-and-ethereum.md",9010],"5c242b2e":[()=>n.e(1394).then(n.bind(n,7216)),"@site/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/3-account-abstraction.md",7216],"5d313dc3":[()=>n.e(3147).then(n.bind(n,365)),"@site/docs/build-on-morph/developer-resources/node-operation/1-prune-state.md",365],"5e95c892":[()=>n.e(9647).then(n.bind(n,6130)),"@theme/DocsRoot",6130],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,4784)),"@generated/docusaurus.config",4784],"60479fa4":[()=>n.e(44).then(n.bind(n,3264)),"@site/docs/how-morph-works/1-intro.md",3264],"618914bf":[()=>n.e(9266).then(n.bind(n,7333)),"@site/docs/quick-start/1-welcome-to-morph.md",7333],"61b1ff91":[()=>n.e(8525).then(n.bind(n,3830)),"@site/docs/build-on-morph/sdk/intro.md",3830],"68efb262":[()=>n.e(8744).then(n.t.bind(n,1966,19)),"/Users/danny.fu/morphl2/morph-frontend/apps/morph-doc/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",1966],"69301e8b":[()=>n.e(6913).then(n.bind(n,6121)),"@site/docs/build-on-morph/sdk/enumerations/L1RpcUrls.md",6121],"6a8ddb26":[()=>n.e(7762).then(n.bind(n,213)),"@site/docs/build-on-morph/sdk/type-aliases/MessageRequestLike.md",213],"6ba36391":[()=>n.e(9720).then(n.bind(n,8256)),"@site/docs/build-on-morph/sdk/functions/migratedWithdrawalGasLimit.md",8256],"6f037fd7":[()=>n.e(8308).then(n.bind(n,3711)),"@site/docs/build-on-morph/sdk/interfaces/L2BlockWithTransactions.md",3711],"6f5ac92b":[()=>n.e(7049).then(n.bind(n,96)),"@site/docs/quick-start/4-bridge.md",96],"70e8639a":[()=>n.e(5130).then(n.bind(n,2205)),"@site/docs/build-on-morph/sdk/interfaces/OEContractsLike.md",2205],"720f9cb5":[()=>n.e(1141).then(n.bind(n,5329)),"@site/docs/build-on-morph/sdk/enumerations/MessageDirection.md",5329],"72171cd8":[()=>n.e(8324).then(n.bind(n,9415)),"@site/docs/build-on-morph/sdk/functions/asL2Provider.md",9415],"73af12fb":[()=>n.e(5577).then(n.bind(n,3702)),"@site/docs/build-on-morph/build-on-morph/1-integration-one-page.md",3702],"76db7a6d":[()=>n.e(408).then(n.bind(n,6068)),"@site/docs/build-on-morph/sdk/type-aliases/MessageLike.md",6068],"7824cff9":[()=>n.e(8676).then(n.bind(n,2644)),"@site/docs/build-on-morph/sdk/enumerations/L1ChainID.md",2644],"79dc0904":[()=>n.e(4405).then(n.bind(n,9247)),"@site/docs/build-on-morph/sdk/type-aliases/SignerLike.md",9247],"7a5975a7":[()=>n.e(3961).then(n.bind(n,4059)),"@site/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/4-blockchain-indexing-services.md",4059],"7c1e7b23":[()=>n.e(841).then(n.bind(n,5968)),"@site/docs/build-on-morph/sdk/interfaces/CrossChainMessageRequest.md",5968],"7c45cc48":[()=>n.e(1282).then(n.bind(n,2122)),"@site/docs/build-on-morph/sdk/enumerations/L2RpcUrls.md",2122],"81f29526":[()=>n.e(1508).then(n.bind(n,5356)),"@site/docs/build-on-morph/sdk/type-aliases/ProviderLike.md",5356],"82419dfd":[()=>n.e(2061).then(n.bind(n,6825)),"@site/docs/about-morph/0-user-navigation-page.md",6825],"829b4b9b":[()=>n.e(3427).then(n.bind(n,7706)),"@site/docs/build-on-morph/sdk/variables/DEFAULT_L2_CONTRACT_ADDRESSES.md",7706],"829cd294":[()=>n.e(9248).then(n.bind(n,164)),"@site/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/2-rpc-services.md",164],"833a0690":[()=>n.e(8237).then(n.bind(n,5629)),"@site/docs/build-on-morph/sdk/interfaces/CrossChainMessage.md",5629],"8347fa88":[()=>n.e(8752).then(n.bind(n,8547)),"@site/docs/build-on-morph/code-examples/2-bridge-between-morph-and-ethereum.md",8547],"8613d4b8":[()=>n.e(7975).then(n.bind(n,3933)),"@site/docs/build-on-morph/sdk/functions/omit.md",3933],"868b6fb8":[()=>n.e(2985).then(n.t.bind(n,4061,19)),"/Users/danny.fu/morphl2/morph-frontend/apps/morph-doc/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",4061],"8b6091b0":[()=>n.e(8451).then(n.bind(n,2896)),"@site/docs/build-on-morph/sdk/variables/BRIDGE_ADAPTER_DATA.md",2896],"8d0b932e":[()=>n.e(2322).then(n.bind(n,30)),"@site/docs/build-on-morph/developer-resources/7-dapp-examples-on-morph.md",30],"9235c071":[()=>n.e(1971).then(n.bind(n,4605)),"@site/docs/build-on-morph/sdk/functions/hashLowLevelMessageV2.md",4605],"935f2afb":[()=>n.e(8581).then(n.t.bind(n,5610,19)),"~docs/default/version-current-metadata-prop-751.json",5610],"95a7ae32":[()=>n.e(5116).then(n.bind(n,5485)),"@site/docs/build-on-morph/sdk/enumerations/MessageReceiptStatus.md",5485],"979f48c0":[()=>n.e(3679).then(n.bind(n,588)),"@site/docs/build-on-morph/sdk/interfaces/WithdrawMessageProof.md",588],"98d1a41e":[()=>n.e(720).then(n.bind(n,3074)),"@site/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage.md",3074],"99b8a708":[()=>n.e(8371).then(n.bind(n,339)),"@site/docs/about-morph/5-morphs-vision-and-mission.md",339],"9a9366b1":[()=>n.e(2106).then(n.bind(n,8490)),"@site/docs/build-on-morph/sdk/interfaces/L2Block.md",8490],"9b96db99":[()=>n.e(7855).then(n.bind(n,2708)),"@site/docs/build-on-morph/sdk/type-aliases/L1Provider.md",2708],"9d4e1be7":[()=>n.e(7220).then(n.bind(n,4775)),"@site/docs/build-on-morph/build-on-morph/2-development-setup.md",4775],"9e1db927":[()=>n.e(2960).then(n.bind(n,2600)),"@site/docs/build-on-morph/sdk/interfaces/IBridgeAdapter.md",2600],"9e78961b":[()=>n.e(2428).then(n.bind(n,5575)),"@site/docs/build-on-morph/sdk/interfaces/OEL1Contracts.md",5575],"9fc9b620":[()=>n.e(8656).then(n.bind(n,1706)),"@site/docs/about-morph/8-key-concepts.md",1706],"9ff57eaa":[()=>n.e(6107).then(n.bind(n,2130)),"@site/docs/build-on-morph/sdk/variables/l2CrossDomainMessengerName.md",2130],a00dd934:[()=>n.e(5784).then(n.bind(n,5656)),"@site/docs/build-on-morph/sdk/variables/CHAIN_BLOCK_TIMES.md",5656],a04af9a2:[()=>n.e(819).then(n.bind(n,8179)),"@site/docs/build-on-morph/build-on-morph/6-integration-one-page-cn.md",8179],a0d49790:[()=>n.e(1243).then(n.bind(n,1287)),"@site/docs/build-on-morph/sdk/type-aliases/AddressLike.md",1287],a0d75a43:[()=>n.e(3046).then(n.bind(n,7237)),"@site/docs/build-on-morph/developer-resources/node-operation/upgrade-node/1-upgrade-node-host.md",7237],a1f831b5:[()=>n.e(6371).then(n.bind(n,7750)),"@site/docs/build-on-morph/sdk/functions/estimateL2GasCost.md",7750],a2db6fd6:[()=>n.e(3654).then(n.bind(n,524)),"@site/docs/build-on-morph/sdk/enumerations/MessageStatus.md",524],a399e926:[()=>n.e(7131).then(n.bind(n,9440)),"@site/docs/build-on-morph/sdk/functions/toNumber.md",9440],a4da47e1:[()=>n.e(4788).then(n.bind(n,6821)),"@site/docs/build-on-morph/sdk/type-aliases/L2Provider.md",6821],a5f26d61:[()=>n.e(9344).then(n.bind(n,6787)),"@site/docs/build-on-morph/sdk/type-aliases/TransactionLike.md",6787],a7bd4aaa:[()=>n.e(7098).then(n.bind(n,5679)),"@theme/DocVersionRoot",5679],a94703ab:[()=>Promise.all([n.e(1869),n.e(9048)]).then(n.bind(n,8652)),"@theme/DocRoot",8652],ad8d1448:[()=>n.e(5991).then(n.bind(n,6540)),"@site/docs/about-morph/4-morphs-architecture.md",6540],af91f293:[()=>n.e(2708).then(n.bind(n,2986)),"@site/docs/build-on-morph/build-on-morph/5-verify-your-smart-contracts.md",2986],b0d24208:[()=>n.e(2397).then(n.bind(n,7028)),"@site/docs/build-on-morph/sdk/interfaces/BridgeAdapters.md",7028],b137769e:[()=>n.e(6951).then(n.bind(n,613)),"@site/docs/build-on-morph/developer-resources/node-operation/full-node/2-run-on-host.md",613],b202810b:[()=>n.e(4734).then(n.bind(n,684)),"@site/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/0-cross-chain-interoperability.md",684],b4c00acc:[()=>n.e(1995).then(n.bind(n,9600)),"@site/docs/build-on-morph/sdk/functions/getAllOEContracts.md",9600],bce3eedd:[()=>n.e(6184).then(n.bind(n,9994)),"@site/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/5-blockchain-oracles.md",9994],beb6ddce:[()=>n.e(3732).then(n.bind(n,6689)),"@site/docs/build-on-morph/sdk/functions/hashMessageHash.md",6689],c30bab43:[()=>n.e(6941).then(n.bind(n,4718)),"@site/docs/build-on-morph/sdk/interfaces/OEContracts.md",4718],c33d6554:[()=>n.e(8520).then(n.bind(n,866)),"@site/docs/build-on-morph/sdk/type-aliases/OEL2ContractsLike.md",866],c4f5d8e4:[()=>n.e(2634).then(n.bind(n,9421)),"@site/src/pages/index.js",9421],c5f7ff1a:[()=>n.e(3764).then(n.bind(n,4429)),"@site/docs/build-on-morph/sdk/type-aliases/OEL1ContractsLike.md",4429],c7ccd35b:[()=>n.e(1557).then(n.bind(n,1232)),"@site/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/1-safe-multi-signature-wallet.md",1232],ca4c51aa:[()=>n.e(4300).then(n.bind(n,1904)),"@site/docs/build-on-morph/sdk/interfaces/WithdrawalEntry.md",1904],cfe67a99:[()=>n.e(9567).then(n.bind(n,9103)),"@site/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/9-user-onboarding.md",9103],d26d133a:[()=>n.e(2487).then(n.bind(n,3566)),"@site/docs/quick-start/2-wallet-setup.md",3566],d475c619:[()=>n.e(5042).then(n.bind(n,3084)),"@site/docs/build-on-morph/sdk/globals.md",3084],d4781eda:[()=>n.e(1201).then(n.bind(n,5859)),"@site/docs/build-on-morph/sdk/interfaces/StateRootBatchHeader.md",5859],d8273606:[()=>n.e(7275).then(n.bind(n,6663)),"@site/docs/build-on-morph/sdk/functions/getBridgeAdapters.md",6663],dcf2e50b:[()=>n.e(6232).then(n.bind(n,5130)),"@site/docs/how-morph-works/decentralized-sequencers/1-morph-decentralized-sequencer-network.md",5130],dfd8dfaf:[()=>n.e(7430).then(n.bind(n,6418)),"@site/docs/about-morph/key-concepts/1-optimistic-rollup.md",6418],e3875bab:[()=>n.e(6956).then(n.bind(n,360)),"@site/docs/build-on-morph/sdk/functions/estimateL1Gas.md",360],e3bda051:[()=>n.e(4352).then(n.bind(n,6320)),"@site/docs/build-on-morph/sdk/interfaces/IActionOptions.md",6320],e6305dab:[()=>n.e(9817).then(n.bind(n,2359)),"@site/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/8-decentralized-naming-services.md",2359],e6f27cd2:[()=>n.e(7450).then(n.bind(n,779)),"@site/docs/build-on-morph/0-developer-navigation-page.md",779],e7a84acc:[()=>n.e(3667).then(n.bind(n,7479)),"@site/docs/build-on-morph/developer-resources/1-contracts.md",7479],e7f02677:[()=>n.e(4991).then(n.bind(n,5747)),"@site/docs/build-on-morph/sdk/classes/CrossChainMessenger.md",5747],e8c42455:[()=>n.e(361).then(n.bind(n,1289)),"@site/docs/build-on-morph/sdk/functions/estimateL1GasCost.md",1289],e8fcecf9:[()=>n.e(3918).then(n.bind(n,415)),"@site/docs/build-on-morph/sdk/enumerations/L2ChainID.md",415],e912b961:[()=>n.e(4116).then(n.bind(n,1252)),"@site/docs/build-on-morph/sdk/functions/getOEContract.md",1252],eac819ad:[()=>n.e(569).then(n.bind(n,3951)),"@site/docs/build-on-morph/sdk/type-aliases/LowLevelMessage.md",3951],f3316ef7:[()=>n.e(8224).then(n.bind(n,9544)),"@site/docs/build-on-morph/developer-resources/node-operation/validator-node/2-run-on-host.md",9544],f435c040:[()=>n.e(2500).then(n.bind(n,4687)),"@site/docs/build-on-morph/sdk/functions/toSignerOrProvider.md",4687],f6623e93:[()=>n.e(9200).then(n.bind(n,8389)),"@site/docs/how-morph-works/2-morph-modular-design.md",8389],f93d7a3b:[()=>n.e(8898).then(n.bind(n,9903)),"@site/docs/build-on-morph/sdk/functions/isL2Provider.md",9903],fac53bf8:[()=>n.e(4305).then(n.bind(n,8802)),"@site/docs/build-on-morph/build-on-morph/4-understand-transaction-cost-on-morph.md",8802],fb24aa13:[()=>n.e(5107).then(n.bind(n,3588)),"@site/docs/build-on-morph/sdk/classes/StandardBridgeAdapter.md",3588],fb26d209:[()=>n.e(7e3).then(n.bind(n,8989)),"@site/docs/build-on-morph/developer-resources/2-how-to-run-a-morph-node.md",8989],fda70fd8:[()=>n.e(1311).then(n.bind(n,6312)),"@site/docs/build-on-morph/sdk/interfaces/OEL2Contracts.md",6312],fdc91eb1:[()=>n.e(4908).then(n.bind(n,5118)),"@site/docs/how-morph-works/general-protocol-design/5-difference-between-ethereum-and-morph.md",5118],fe9c53f2:[()=>n.e(1688).then(n.bind(n,5428)),"@site/docs/build-on-morph/sdk/functions/toProvider.md",5428],ff3f68fa:[()=>n.e(8221).then(n.bind(n,3920)),"@site/docs/build-on-morph/developer-resources/node-operation/full-node/1-run-in-docker.md",3920],ff883f18:[()=>n.e(999).then(n.bind(n,1060)),"@site/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage.md",1060]};var s=n(6070);function l(e){let{error:t,retry:n,pastDelay:r}=e;return t?(0,s.jsxs)("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"},children:[(0,s.jsx)("p",{children:String(t)}),(0,s.jsx)("div",{children:(0,s.jsx)("button",{type:"button",onClick:n,children:"Retry"})})]}):r?(0,s.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:(0,s.jsx)("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb",children:(0,s.jsxs)("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2",children:[(0,s.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,s.jsx)("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,s.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,s.jsx)("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,s.jsx)("circle",{cx:"22",cy:"22",r:"8",children:(0,s.jsx)("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"})})]})})}):null}var c=n(4290),u=n(5353);function d(e,t){if("*"===e)return o()({loading:l,loader:()=>n.e(7242).then(n.bind(n,7242)),modules:["@theme/NotFound"],webpack:()=>[7242],render(e,t){const n=e.default;return(0,s.jsx)(u.W,{value:{plugin:{name:"native",id:"default"}},children:(0,s.jsx)(n,{...t})})}});const r=a[`${e}-${t}`],d={},p=[],f=[],m=(0,c.A)(r);return Object.entries(m).forEach((e=>{let[t,n]=e;const r=i[n];r&&(d[t]=r[0],p.push(r[1]),f.push(r[2]))})),o().Map({loading:l,loader:d,modules:p,webpack:()=>f,render(t,n){const o=JSON.parse(JSON.stringify(r));Object.entries(t).forEach((t=>{let[n,r]=t;const a=r.default;if(!a)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof a&&"function"!=typeof a||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{a[e]=r[e]}));let i=o;const s=n.split(".");s.slice(0,-1).forEach((e=>{i=i[e]})),i[s[s.length-1]]=a}));const a=o.__comp;delete o.__comp;const i=o.__context;return delete o.__context,(0,s.jsx)(u.W,{value:i,children:(0,s.jsx)(a,{...o,...n})})}})}const p=[{path:"/search",component:d("/search","6c5"),exact:!0},{path:"/docs",component:d("/docs","a1a"),routes:[{path:"/docs",component:d("/docs","9c7"),routes:[{path:"/docs",component:d("/docs","af1"),routes:[{path:"/docs/about-morph/faqs",component:d("/docs/about-morph/faqs","db6"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/about-morph/key-concepts",component:d("/docs/about-morph/key-concepts","b1a"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/about-morph/key-concepts/optimistic-rollup",component:d("/docs/about-morph/key-concepts/optimistic-rollup","ec2"),exact:!0},{path:"/docs/about-morph/morphs-architecture",component:d("/docs/about-morph/morphs-architecture","1e7"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/about-morph/morphs-vision-and-mission",component:d("/docs/about-morph/morphs-vision-and-mission","cd4"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/about-morph/overview-of-morph",component:d("/docs/about-morph/overview-of-morph","d84"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/about-morph/roadmap",component:d("/docs/about-morph/roadmap","460"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/about-morph/the-technology-behind-morph",component:d("/docs/about-morph/the-technology-behind-morph","b44"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/about-morph/user-navigation-page",component:d("/docs/about-morph/user-navigation-page","19e"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/about-morph/where-should-i-start",component:d("/docs/about-morph/where-should-i-start","e58"),exact:!0},{path:"/docs/build-on-morph/build-on-morph/bridge-between-morph-and-ethereum",component:d("/docs/build-on-morph/build-on-morph/bridge-between-morph-and-ethereum","59b"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/build-on-morph/build-on-morph/development-setup",component:d("/docs/build-on-morph/build-on-morph/development-setup","d4d"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/build-on-morph/build-on-morph/integration-one-page",component:d("/docs/build-on-morph/build-on-morph/integration-one-page","48a"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/build-on-morph/build-on-morph/integration-one-page-cn",component:d("/docs/build-on-morph/build-on-morph/integration-one-page-cn","e8d"),exact:!0},{path:"/docs/build-on-morph/build-on-morph/understand-transaction-cost-on-morph",component:d("/docs/build-on-morph/build-on-morph/understand-transaction-cost-on-morph","fc4"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/build-on-morph/build-on-morph/verify-your-smart-contracts",component:d("/docs/build-on-morph/build-on-morph/verify-your-smart-contracts","120"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/build-on-morph/code-examples/bridge-between-morph-and-ethereum",component:d("/docs/build-on-morph/code-examples/bridge-between-morph-and-ethereum","ed4"),exact:!0},{path:"/docs/build-on-morph/code-examples/deploy-contract-on-morph",component:d("/docs/build-on-morph/code-examples/deploy-contract-on-morph","5af"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/build-on-morph/developer-navigation-page",component:d("/docs/build-on-morph/developer-navigation-page","6f3"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/build-on-morph/developer-resources/contracts",component:d("/docs/build-on-morph/developer-resources/contracts","51b"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/build-on-morph/developer-resources/dapp-examples-on-morph",component:d("/docs/build-on-morph/developer-resources/dapp-examples-on-morph","899"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/build-on-morph/developer-resources/how-to-run-a-morph-node",component:d("/docs/build-on-morph/developer-resources/how-to-run-a-morph-node","a6b"),exact:!0},{path:"/docs/build-on-morph/developer-resources/morph-json-rpc-api-methods",component:d("/docs/build-on-morph/developer-resources/morph-json-rpc-api-methods","c1b"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/build-on-morph/developer-resources/node-operation/full-node/run-in-docker",component:d("/docs/build-on-morph/developer-resources/node-operation/full-node/run-in-docker","e0e"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/build-on-morph/developer-resources/node-operation/full-node/run-on-host",component:d("/docs/build-on-morph/developer-resources/node-operation/full-node/run-on-host","c23"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/build-on-morph/developer-resources/node-operation/prune-state",component:d("/docs/build-on-morph/developer-resources/node-operation/prune-state","63a"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-docker",component:d("/docs/build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-docker","fb2"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-host",component:d("/docs/build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-host","d69"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/build-on-morph/developer-resources/node-operation/validator-node/run-in-docker",component:d("/docs/build-on-morph/developer-resources/node-operation/validator-node/run-in-docker","4df"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/build-on-morph/developer-resources/node-operation/validator-node/run-on-host",component:d("/docs/build-on-morph/developer-resources/node-operation/validator-node/run-on-host","653"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/account-abstraction",component:d("/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/account-abstraction","924"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/artificial-intelligence",component:d("/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/artificial-intelligence","ad8"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/block-explorer",component:d("/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/block-explorer","cce"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-indexing-services",component:d("/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-indexing-services","b59"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-oracles",component:d("/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-oracles","b1d"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/cross-chain-interoperability",component:d("/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/cross-chain-interoperability","efa"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/decentralized-naming-services",component:d("/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/decentralized-naming-services","2a2"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/rpc-services",component:d("/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/rpc-services","072"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/safe-multi-signature-wallet",component:d("/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/safe-multi-signature-wallet","d7e"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/user-onboarding",component:d("/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/user-onboarding","fe8"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/build-on-morph/intro",component:d("/docs/build-on-morph/intro","235"),exact:!0},{path:"/docs/build-on-morph/sdk/classes/CrossChainMessenger",component:d("/docs/build-on-morph/sdk/classes/CrossChainMessenger","71f"),exact:!0},{path:"/docs/build-on-morph/sdk/classes/ETHBridgeAdapter",component:d("/docs/build-on-morph/sdk/classes/ETHBridgeAdapter","e0f"),exact:!0},{path:"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter",component:d("/docs/build-on-morph/sdk/classes/StandardBridgeAdapter","be7"),exact:!0},{path:"/docs/build-on-morph/sdk/enumerations/L1ChainID",component:d("/docs/build-on-morph/sdk/enumerations/L1ChainID","bfe"),exact:!0},{path:"/docs/build-on-morph/sdk/enumerations/L1RpcUrls",component:d("/docs/build-on-morph/sdk/enumerations/L1RpcUrls","212"),exact:!0},{path:"/docs/build-on-morph/sdk/enumerations/L2ChainID",component:d("/docs/build-on-morph/sdk/enumerations/L2ChainID","e8e"),exact:!0},{path:"/docs/build-on-morph/sdk/enumerations/L2RpcUrls",component:d("/docs/build-on-morph/sdk/enumerations/L2RpcUrls","7f9"),exact:!0},{path:"/docs/build-on-morph/sdk/enumerations/MessageDirection",component:d("/docs/build-on-morph/sdk/enumerations/MessageDirection","681"),exact:!0},{path:"/docs/build-on-morph/sdk/enumerations/MessageReceiptStatus",component:d("/docs/build-on-morph/sdk/enumerations/MessageReceiptStatus","1f3"),exact:!0},{path:"/docs/build-on-morph/sdk/enumerations/MessageStatus",component:d("/docs/build-on-morph/sdk/enumerations/MessageStatus","a5a"),exact:!0},{path:"/docs/build-on-morph/sdk/functions/asL2Provider",component:d("/docs/build-on-morph/sdk/functions/asL2Provider","4b1"),exact:!0},{path:"/docs/build-on-morph/sdk/functions/estimateL1Gas",component:d("/docs/build-on-morph/sdk/functions/estimateL1Gas","a2f"),exact:!0},{path:"/docs/build-on-morph/sdk/functions/estimateL1GasCost",component:d("/docs/build-on-morph/sdk/functions/estimateL1GasCost","06e"),exact:!0},{path:"/docs/build-on-morph/sdk/functions/estimateL2GasCost",component:d("/docs/build-on-morph/sdk/functions/estimateL2GasCost","20f"),exact:!0},{path:"/docs/build-on-morph/sdk/functions/estimateTotalGasCost",component:d("/docs/build-on-morph/sdk/functions/estimateTotalGasCost","bc5"),exact:!0},{path:"/docs/build-on-morph/sdk/functions/getAllOEContracts",component:d("/docs/build-on-morph/sdk/functions/getAllOEContracts","91e"),exact:!0},{path:"/docs/build-on-morph/sdk/functions/getBridgeAdapters",component:d("/docs/build-on-morph/sdk/functions/getBridgeAdapters","5d3"),exact:!0},{path:"/docs/build-on-morph/sdk/functions/getL1GasPrice",component:d("/docs/build-on-morph/sdk/functions/getL1GasPrice","68c"),exact:!0},{path:"/docs/build-on-morph/sdk/functions/getOEContract",component:d("/docs/build-on-morph/sdk/functions/getOEContract","ea0"),exact:!0},{path:"/docs/build-on-morph/sdk/functions/hashLowLevelMessageV2",component:d("/docs/build-on-morph/sdk/functions/hashLowLevelMessageV2","301"),exact:!0},{path:"/docs/build-on-morph/sdk/functions/hashMessageHash",component:d("/docs/build-on-morph/sdk/functions/hashMessageHash","f9c"),exact:!0},{path:"/docs/build-on-morph/sdk/functions/isL2Provider",component:d("/docs/build-on-morph/sdk/functions/isL2Provider","0a3"),exact:!0},{path:"/docs/build-on-morph/sdk/functions/migratedWithdrawalGasLimit",component:d("/docs/build-on-morph/sdk/functions/migratedWithdrawalGasLimit","a8f"),exact:!0},{path:"/docs/build-on-morph/sdk/functions/omit",component:d("/docs/build-on-morph/sdk/functions/omit","31d"),exact:!0},{path:"/docs/build-on-morph/sdk/functions/toAddress",component:d("/docs/build-on-morph/sdk/functions/toAddress","52d"),exact:!0},{path:"/docs/build-on-morph/sdk/functions/toBigNumber",component:d("/docs/build-on-morph/sdk/functions/toBigNumber","1cd"),exact:!0},{path:"/docs/build-on-morph/sdk/functions/toNumber",component:d("/docs/build-on-morph/sdk/functions/toNumber","47f"),exact:!0},{path:"/docs/build-on-morph/sdk/functions/toProvider",component:d("/docs/build-on-morph/sdk/functions/toProvider","b81"),exact:!0},{path:"/docs/build-on-morph/sdk/functions/toSignerOrProvider",component:d("/docs/build-on-morph/sdk/functions/toSignerOrProvider","474"),exact:!0},{path:"/docs/build-on-morph/sdk/functions/toTransactionHash",component:d("/docs/build-on-morph/sdk/functions/toTransactionHash","b90"),exact:!0},{path:"/docs/build-on-morph/sdk/globals",component:d("/docs/build-on-morph/sdk/globals","a28"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/build-on-morph/sdk/interfaces/BridgeAdapterData",component:d("/docs/build-on-morph/sdk/interfaces/BridgeAdapterData","658"),exact:!0},{path:"/docs/build-on-morph/sdk/interfaces/BridgeAdapters",component:d("/docs/build-on-morph/sdk/interfaces/BridgeAdapters","6e5"),exact:!0},{path:"/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage",component:d("/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage","e90"),exact:!0},{path:"/docs/build-on-morph/sdk/interfaces/CrossChainMessage",component:d("/docs/build-on-morph/sdk/interfaces/CrossChainMessage","6a8"),exact:!0},{path:"/docs/build-on-morph/sdk/interfaces/CrossChainMessageRequest",component:d("/docs/build-on-morph/sdk/interfaces/CrossChainMessageRequest","c6e"),exact:!0},{path:"/docs/build-on-morph/sdk/interfaces/IActionOptions",component:d("/docs/build-on-morph/sdk/interfaces/IActionOptions","32e"),exact:!0},{path:"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter",component:d("/docs/build-on-morph/sdk/interfaces/IBridgeAdapter","d75"),exact:!0},{path:"/docs/build-on-morph/sdk/interfaces/L2Block",component:d("/docs/build-on-morph/sdk/interfaces/L2Block","526"),exact:!0},{path:"/docs/build-on-morph/sdk/interfaces/L2BlockWithTransactions",component:d("/docs/build-on-morph/sdk/interfaces/L2BlockWithTransactions","fd3"),exact:!0},{path:"/docs/build-on-morph/sdk/interfaces/L2Transaction",component:d("/docs/build-on-morph/sdk/interfaces/L2Transaction","107"),exact:!0},{path:"/docs/build-on-morph/sdk/interfaces/MessageReceipt",component:d("/docs/build-on-morph/sdk/interfaces/MessageReceipt","c6d"),exact:!0},{path:"/docs/build-on-morph/sdk/interfaces/OEContracts",component:d("/docs/build-on-morph/sdk/interfaces/OEContracts","174"),exact:!0},{path:"/docs/build-on-morph/sdk/interfaces/OEContractsLike",component:d("/docs/build-on-morph/sdk/interfaces/OEContractsLike","86e"),exact:!0},{path:"/docs/build-on-morph/sdk/interfaces/OEL1Contracts",component:d("/docs/build-on-morph/sdk/interfaces/OEL1Contracts","8b8"),exact:!0},{path:"/docs/build-on-morph/sdk/interfaces/OEL2Contracts",component:d("/docs/build-on-morph/sdk/interfaces/OEL2Contracts","9ec"),exact:!0},{path:"/docs/build-on-morph/sdk/interfaces/ProvenWithdrawal",component:d("/docs/build-on-morph/sdk/interfaces/ProvenWithdrawal","8b3"),exact:!0},{path:"/docs/build-on-morph/sdk/interfaces/StateRoot",component:d("/docs/build-on-morph/sdk/interfaces/StateRoot","5a3"),exact:!0},{path:"/docs/build-on-morph/sdk/interfaces/StateRootBatch",component:d("/docs/build-on-morph/sdk/interfaces/StateRootBatch","65f"),exact:!0},{path:"/docs/build-on-morph/sdk/interfaces/StateRootBatchHeader",component:d("/docs/build-on-morph/sdk/interfaces/StateRootBatchHeader","8f3"),exact:!0},{path:"/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage",component:d("/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage","f09"),exact:!0},{path:"/docs/build-on-morph/sdk/interfaces/WithdrawalEntry",component:d("/docs/build-on-morph/sdk/interfaces/WithdrawalEntry","faa"),exact:!0},{path:"/docs/build-on-morph/sdk/interfaces/WithdrawMessageProof",component:d("/docs/build-on-morph/sdk/interfaces/WithdrawMessageProof","545"),exact:!0},{path:"/docs/build-on-morph/sdk/intro",component:d("/docs/build-on-morph/sdk/intro","542"),exact:!0},{path:"/docs/build-on-morph/sdk/type-aliases/AddressLike",component:d("/docs/build-on-morph/sdk/type-aliases/AddressLike","bac"),exact:!0},{path:"/docs/build-on-morph/sdk/type-aliases/DeepPartial",component:d("/docs/build-on-morph/sdk/type-aliases/DeepPartial","7e6"),exact:!0},{path:"/docs/build-on-morph/sdk/type-aliases/L1Provider",component:d("/docs/build-on-morph/sdk/type-aliases/L1Provider","8de"),exact:!0},{path:"/docs/build-on-morph/sdk/type-aliases/L2Provider",component:d("/docs/build-on-morph/sdk/type-aliases/L2Provider","181"),exact:!0},{path:"/docs/build-on-morph/sdk/type-aliases/LowLevelMessage",component:d("/docs/build-on-morph/sdk/type-aliases/LowLevelMessage","968"),exact:!0},{path:"/docs/build-on-morph/sdk/type-aliases/MessageLike",component:d("/docs/build-on-morph/sdk/type-aliases/MessageLike","5c1"),exact:!0},{path:"/docs/build-on-morph/sdk/type-aliases/MessageRequestLike",component:d("/docs/build-on-morph/sdk/type-aliases/MessageRequestLike","eb0"),exact:!0},{path:"/docs/build-on-morph/sdk/type-aliases/NumberLike",component:d("/docs/build-on-morph/sdk/type-aliases/NumberLike","214"),exact:!0},{path:"/docs/build-on-morph/sdk/type-aliases/OEL1ContractsLike",component:d("/docs/build-on-morph/sdk/type-aliases/OEL1ContractsLike","6f6"),exact:!0},{path:"/docs/build-on-morph/sdk/type-aliases/OEL2ContractsLike",component:d("/docs/build-on-morph/sdk/type-aliases/OEL2ContractsLike","84a"),exact:!0},{path:"/docs/build-on-morph/sdk/type-aliases/ProviderLike",component:d("/docs/build-on-morph/sdk/type-aliases/ProviderLike","2fe"),exact:!0},{path:"/docs/build-on-morph/sdk/type-aliases/SignerLike",component:d("/docs/build-on-morph/sdk/type-aliases/SignerLike","e63"),exact:!0},{path:"/docs/build-on-morph/sdk/type-aliases/SignerOrProviderLike",component:d("/docs/build-on-morph/sdk/type-aliases/SignerOrProviderLike","681"),exact:!0},{path:"/docs/build-on-morph/sdk/type-aliases/TransactionLike",component:d("/docs/build-on-morph/sdk/type-aliases/TransactionLike","5b2"),exact:!0},{path:"/docs/build-on-morph/sdk/variables/BRIDGE_ADAPTER_DATA",component:d("/docs/build-on-morph/sdk/variables/BRIDGE_ADAPTER_DATA","e80"),exact:!0},{path:"/docs/build-on-morph/sdk/variables/CHAIN_BLOCK_TIMES",component:d("/docs/build-on-morph/sdk/variables/CHAIN_BLOCK_TIMES","c46"),exact:!0},{path:"/docs/build-on-morph/sdk/variables/CONTRACT_ADDRESSES",component:d("/docs/build-on-morph/sdk/variables/CONTRACT_ADDRESSES","c94"),exact:!0},{path:"/docs/build-on-morph/sdk/variables/DEFAULT_L1_CONTRACT_ADDRESSES",component:d("/docs/build-on-morph/sdk/variables/DEFAULT_L1_CONTRACT_ADDRESSES","302"),exact:!0},{path:"/docs/build-on-morph/sdk/variables/DEFAULT_L2_CONTRACT_ADDRESSES",component:d("/docs/build-on-morph/sdk/variables/DEFAULT_L2_CONTRACT_ADDRESSES","f2f"),exact:!0},{path:"/docs/build-on-morph/sdk/variables/DEPOSIT_CONFIRMATION_BLOCKS",component:d("/docs/build-on-morph/sdk/variables/DEPOSIT_CONFIRMATION_BLOCKS","e9d"),exact:!0},{path:"/docs/build-on-morph/sdk/variables/l1BridgeName",component:d("/docs/build-on-morph/sdk/variables/l1BridgeName","58e"),exact:!0},{path:"/docs/build-on-morph/sdk/variables/l1CrossDomainMessengerName",component:d("/docs/build-on-morph/sdk/variables/l1CrossDomainMessengerName","55b"),exact:!0},{path:"/docs/build-on-morph/sdk/variables/l2BridgeName",component:d("/docs/build-on-morph/sdk/variables/l2BridgeName","8bb"),exact:!0},{path:"/docs/build-on-morph/sdk/variables/l2CrossDomainMessengerName",component:d("/docs/build-on-morph/sdk/variables/l2CrossDomainMessengerName","ce4"),exact:!0},{path:"/docs/how-morph-works/decentralized-sequencers/morph-decentralized-sequencer-network",component:d("/docs/how-morph-works/decentralized-sequencers/morph-decentralized-sequencer-network","76b"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/how-morph-works/general-protocol-design/communicate-between-morph-and-ethereum",component:d("/docs/how-morph-works/general-protocol-design/communicate-between-morph-and-ethereum","2f6"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/how-morph-works/general-protocol-design/difference-between-ethereum-and-morph",component:d("/docs/how-morph-works/general-protocol-design/difference-between-ethereum-and-morph","1d1"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/how-morph-works/general-protocol-design/rollup",component:d("/docs/how-morph-works/general-protocol-design/rollup","ec8"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/how-morph-works/general-protocol-design/transactions-life-cycle",component:d("/docs/how-morph-works/general-protocol-design/transactions-life-cycle","313"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/how-morph-works/intro",component:d("/docs/how-morph-works/intro","b70"),exact:!0},{path:"/docs/how-morph-works/morph-modular-design",component:d("/docs/how-morph-works/morph-modular-design","700"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/how-morph-works/optimistic-zkevm",component:d("/docs/how-morph-works/optimistic-zkevm","e3e"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/quick-start/bridge",component:d("/docs/quick-start/bridge","199"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/quick-start/faucet",component:d("/docs/quick-start/faucet","b32"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/quick-start/wallet-setup",component:d("/docs/quick-start/wallet-setup","8e9"),exact:!0,sidebar:"DeveloperSidebar"},{path:"/docs/quick-start/welcome-to-morph",component:d("/docs/quick-start/welcome-to-morph","570"),exact:!0}]}]}]},{path:"/",component:d("/","509"),exact:!0},{path:"*",component:d("*")}]},5286:(e,t,n)=>{"use strict";n.d(t,{o:()=>a,x:()=>i});var r=n(758),o=n(6070);const a=r.createContext(!1);function i(e){let{children:t}=e;const[n,i]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{i(!0)}),[]),(0,o.jsx)(a.Provider,{value:n,children:t})}},7170:(e,t,n)=>{"use strict";var r=n(758),o=n(9576),a=n(1742),i=n(932),s=n(3782);const l=[n(3396),n(4644),n(4523),n(3331),n(700)];var c=n(9625),u=n(5557),d=n(1977),p=n(6070);function f(e){let{children:t}=e;return(0,p.jsx)(p.Fragment,{children:t})}var m=n(7471),h=n(6869),g=n(7838),b=n(5349),v=n(926),y=n(282),w=n(6906),k=n(3330),S=n(4932),x=n(7740);function E(){const{i18n:{currentLocale:e,defaultLocale:t,localeConfigs:n}}=(0,h.A)(),r=(0,y.o)(),o=n[e].htmlLang,a=e=>e.replace("-","_");return(0,p.jsxs)(m.A,{children:[Object.entries(n).map((e=>{let[t,{htmlLang:n}]=e;return(0,p.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:n},t)})),(0,p.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}),(0,p.jsx)("meta",{property:"og:locale",content:a(o)}),Object.values(n).filter((e=>o!==e.htmlLang)).map((e=>(0,p.jsx)("meta",{property:"og:locale:alternate",content:a(e.htmlLang)},`meta-og-${e.htmlLang}`)))]})}function C(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,h.A)(),r=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,h.A)(),{pathname:r}=(0,u.zy)();return e+(0,S.applyTrailingSlash)((0,g.A)(r),{trailingSlash:n,baseUrl:t})}(),o=t?`${n}${t}`:r;return(0,p.jsxs)(m.A,{children:[(0,p.jsx)("meta",{property:"og:url",content:o}),(0,p.jsx)("link",{rel:"canonical",href:o})]})}function _(){const{i18n:{currentLocale:e}}=(0,h.A)(),{metadata:t,image:n}=(0,b.p)();return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)(m.A,{children:[(0,p.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,p.jsx)("body",{className:w.w})]}),n&&(0,p.jsx)(v.be,{image:n}),(0,p.jsx)(C,{}),(0,p.jsx)(E,{}),(0,p.jsx)(x.A,{tag:k.Cy,locale:e}),(0,p.jsx)(m.A,{children:t.map(((e,t)=>(0,p.jsx)("meta",{...e},t)))})]})}const O=new Map;function A(e){if(O.has(e.pathname))return{...e,pathname:O.get(e.pathname)};if((0,d.u)(c.A,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return O.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return O.set(e.pathname,t),{...e,pathname:t}}var T=n(5286),j=n(4299),L=n(7132);function P(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];const o=l.map((t=>{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>o.forEach((e=>e?.()))}const D=function(e){let{children:t,location:n,previousLocation:r}=e;return(0,L.A)((()=>{r!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,o=t.hash===n.hash,a=t.search===n.search;if(r&&o&&!a)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:r}),P("onRouteDidUpdate",{previousLocation:r,location:n}))}),[r,n]),t};function R(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.u)(c.A,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class N extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=s.A.canUseDOM?P("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=P("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),R(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return(0,p.jsx)(D,{previousLocation:this.previousLocation,location:t,children:(0,p.jsx)(u.qh,{location:t,render:()=>e})})}}const I=N,M="__docusaurus-base-url-issue-banner-suggestion-container";function F(e){return`\ndocument.addEventListener('DOMContentLoaded', function maybeInsertBanner() {\n var shouldInsert = typeof window['docusaurus'] === 'undefined';\n shouldInsert && insertBanner();\n});\n\nfunction insertBanner() {\n var bannerContainer = document.createElement('div');\n bannerContainer.id = '__docusaurus-base-url-issue-banner-container';\n var bannerHtml = ${JSON.stringify(function(e){return`\n<div id="__docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">${e}</span> ${"/"===e?" (default value)":""}</p>\n <p>We suggest trying baseUrl = <span id="${M}" style="font-weight: bold; color: green;"></span></p>\n</div>\n`}(e)).replace(/</g,"\\<")};\n bannerContainer.innerHTML = bannerHtml;\n document.body.prepend(bannerContainer);\n var suggestionContainer = document.getElementById('${M}');\n var actualHomePagePath = window.location.pathname;\n var suggestedBaseUrl = actualHomePagePath.substr(-1) === '/'\n ? actualHomePagePath\n : actualHomePagePath + '/';\n suggestionContainer.innerHTML = suggestedBaseUrl;\n}\n`}function B(){const{siteConfig:{baseUrl:e}}=(0,h.A)();return(0,p.jsx)(p.Fragment,{children:!s.A.canUseDOM&&(0,p.jsx)(m.A,{children:(0,p.jsx)("script",{children:F(e)})})})}function z(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,h.A)(),{pathname:n}=(0,u.zy)();return t&&n===e?(0,p.jsx)(B,{}):null}function U(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:r,localeConfigs:o}}=(0,h.A)(),a=(0,g.A)(e),{htmlLang:i,direction:s}=o[r];return(0,p.jsxs)(m.A,{children:[(0,p.jsx)("html",{lang:i,dir:s}),(0,p.jsx)("title",{children:t}),(0,p.jsx)("meta",{property:"og:title",content:t}),(0,p.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&(0,p.jsx)("meta",{name:"robots",content:"noindex, nofollow"}),e&&(0,p.jsx)("link",{rel:"icon",href:a})]})}var q=n(3308),$=n(600);function H(){const e=(0,$.A)();return(0,p.jsx)(m.A,{children:(0,p.jsx)("html",{"data-has-hydrated":e})})}function G(){const e=(0,d.v)(c.A),t=(0,u.zy)();return(0,p.jsx)(q.A,{children:(0,p.jsx)(j.l,{children:(0,p.jsxs)(T.x,{children:[(0,p.jsxs)(f,{children:[(0,p.jsx)(U,{}),(0,p.jsx)(_,{}),(0,p.jsx)(z,{}),(0,p.jsx)(I,{location:A(t),children:e})]}),(0,p.jsx)(H,{})]})})})}var V=n(4054);const W=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const o=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;o?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var K=n(4290);const Q=new Set,Z=new Set,Y=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,J={prefetch(e){if(!(e=>!Y()&&!Z.has(e)&&!Q.has(e))(e))return!1;Q.add(e);const t=(0,d.u)(c.A,e).flatMap((e=>{return t=e.route.path,Object.entries(V).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,K.A)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?W(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!Y()&&!Z.has(e))(e)&&(Z.add(e),R(e))},X=Object.freeze(J),ee=Boolean(!0);if(s.A.canUseDOM){window.docusaurus=X;const e=document.getElementById("__docusaurus"),t=(0,p.jsx)(i.vd,{children:(0,p.jsx)(a.Kd,{children:(0,p.jsx)(G,{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},s=()=>{if(ee)r.startTransition((()=>{o.hydrateRoot(e,t,{onRecoverableError:n})}));else{const a=o.createRoot(e,{onRecoverableError:n});r.startTransition((()=>{a.render(t)}))}};R(window.location.pathname).then(s)}},4299:(e,t,n)=>{"use strict";n.d(t,{o:()=>d,l:()=>p});var r=n(758),o=n(4784);const a=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/docs","versions":[{"name":"current","label":"Next","isLast":true,"path":"/docs","mainDocId":"about-morph/user-navigation-page","docs":[{"id":"about-morph/faqs","path":"/docs/about-morph/faqs","sidebar":"DeveloperSidebar"},{"id":"about-morph/key-concepts","path":"/docs/about-morph/key-concepts","sidebar":"DeveloperSidebar"},{"id":"about-morph/key-concepts/optimistic-rollup","path":"/docs/about-morph/key-concepts/optimistic-rollup"},{"id":"about-morph/morphs-architecture","path":"/docs/about-morph/morphs-architecture","sidebar":"DeveloperSidebar"},{"id":"about-morph/morphs-vision-and-mission","path":"/docs/about-morph/morphs-vision-and-mission","sidebar":"DeveloperSidebar"},{"id":"about-morph/overview-of-morph","path":"/docs/about-morph/overview-of-morph","sidebar":"DeveloperSidebar"},{"id":"about-morph/roadmap","path":"/docs/about-morph/roadmap","sidebar":"DeveloperSidebar"},{"id":"about-morph/the-technology-behind-morph","path":"/docs/about-morph/the-technology-behind-morph","sidebar":"DeveloperSidebar"},{"id":"about-morph/user-navigation-page","path":"/docs/about-morph/user-navigation-page","sidebar":"DeveloperSidebar"},{"id":"about-morph/where-should-i-start","path":"/docs/about-morph/where-should-i-start"},{"id":"build-on-morph/build-on-morph/bridge-between-morph-and-ethereum","path":"/docs/build-on-morph/build-on-morph/bridge-between-morph-and-ethereum","sidebar":"DeveloperSidebar"},{"id":"build-on-morph/build-on-morph/development-setup","path":"/docs/build-on-morph/build-on-morph/development-setup","sidebar":"DeveloperSidebar"},{"id":"build-on-morph/build-on-morph/integration-one-page","path":"/docs/build-on-morph/build-on-morph/integration-one-page","sidebar":"DeveloperSidebar"},{"id":"build-on-morph/build-on-morph/integration-one-page-cn","path":"/docs/build-on-morph/build-on-morph/integration-one-page-cn"},{"id":"build-on-morph/build-on-morph/understand-transaction-cost-on-morph","path":"/docs/build-on-morph/build-on-morph/understand-transaction-cost-on-morph","sidebar":"DeveloperSidebar"},{"id":"build-on-morph/build-on-morph/verify-your-smart-contracts","path":"/docs/build-on-morph/build-on-morph/verify-your-smart-contracts","sidebar":"DeveloperSidebar"},{"id":"build-on-morph/code-examples/bridge-between-morph-and-ethereum","path":"/docs/build-on-morph/code-examples/bridge-between-morph-and-ethereum"},{"id":"build-on-morph/code-examples/deploy-contract-on-morph","path":"/docs/build-on-morph/code-examples/deploy-contract-on-morph","sidebar":"DeveloperSidebar"},{"id":"build-on-morph/developer-navigation-page","path":"/docs/build-on-morph/developer-navigation-page","sidebar":"DeveloperSidebar"},{"id":"build-on-morph/developer-resources/contracts","path":"/docs/build-on-morph/developer-resources/contracts","sidebar":"DeveloperSidebar"},{"id":"build-on-morph/developer-resources/dapp-examples-on-morph","path":"/docs/build-on-morph/developer-resources/dapp-examples-on-morph","sidebar":"DeveloperSidebar"},{"id":"build-on-morph/developer-resources/how-to-run-a-morph-node","path":"/docs/build-on-morph/developer-resources/how-to-run-a-morph-node"},{"id":"build-on-morph/developer-resources/morph-json-rpc-api-methods","path":"/docs/build-on-morph/developer-resources/morph-json-rpc-api-methods","sidebar":"DeveloperSidebar"},{"id":"build-on-morph/developer-resources/node-operation/full-node/run-in-docker","path":"/docs/build-on-morph/developer-resources/node-operation/full-node/run-in-docker","sidebar":"DeveloperSidebar"},{"id":"build-on-morph/developer-resources/node-operation/full-node/run-on-host","path":"/docs/build-on-morph/developer-resources/node-operation/full-node/run-on-host","sidebar":"DeveloperSidebar"},{"id":"build-on-morph/developer-resources/node-operation/prune-state","path":"/docs/build-on-morph/developer-resources/node-operation/prune-state","sidebar":"DeveloperSidebar"},{"id":"build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-docker","path":"/docs/build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-docker","sidebar":"DeveloperSidebar"},{"id":"build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-host","path":"/docs/build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-host","sidebar":"DeveloperSidebar"},{"id":"build-on-morph/developer-resources/node-operation/validator-node/run-in-docker","path":"/docs/build-on-morph/developer-resources/node-operation/validator-node/run-in-docker","sidebar":"DeveloperSidebar"},{"id":"build-on-morph/developer-resources/node-operation/validator-node/run-on-host","path":"/docs/build-on-morph/developer-resources/node-operation/validator-node/run-on-host","sidebar":"DeveloperSidebar"},{"id":"build-on-morph/developer-resources/use-ecosystem-developer-tools/account-abstraction","path":"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/account-abstraction","sidebar":"DeveloperSidebar"},{"id":"build-on-morph/developer-resources/use-ecosystem-developer-tools/artificial-intelligence","path":"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/artificial-intelligence","sidebar":"DeveloperSidebar"},{"id":"build-on-morph/developer-resources/use-ecosystem-developer-tools/block-explorer","path":"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/block-explorer","sidebar":"DeveloperSidebar"},{"id":"build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-indexing-services","path":"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-indexing-services","sidebar":"DeveloperSidebar"},{"id":"build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-oracles","path":"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-oracles","sidebar":"DeveloperSidebar"},{"id":"build-on-morph/developer-resources/use-ecosystem-developer-tools/cross-chain-interoperability","path":"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/cross-chain-interoperability","sidebar":"DeveloperSidebar"},{"id":"build-on-morph/developer-resources/use-ecosystem-developer-tools/decentralized-naming-services","path":"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/decentralized-naming-services","sidebar":"DeveloperSidebar"},{"id":"build-on-morph/developer-resources/use-ecosystem-developer-tools/rpc-services","path":"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/rpc-services","sidebar":"DeveloperSidebar"},{"id":"build-on-morph/developer-resources/use-ecosystem-developer-tools/safe-multi-signature-wallet","path":"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/safe-multi-signature-wallet","sidebar":"DeveloperSidebar"},{"id":"build-on-morph/developer-resources/use-ecosystem-developer-tools/user-onboarding","path":"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/user-onboarding","sidebar":"DeveloperSidebar"},{"id":"build-on-morph/intro","path":"/docs/build-on-morph/intro"},{"id":"build-on-morph/sdk/classes/CrossChainMessenger","path":"/docs/build-on-morph/sdk/classes/CrossChainMessenger"},{"id":"build-on-morph/sdk/classes/ETHBridgeAdapter","path":"/docs/build-on-morph/sdk/classes/ETHBridgeAdapter"},{"id":"build-on-morph/sdk/classes/StandardBridgeAdapter","path":"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter"},{"id":"build-on-morph/sdk/enumerations/L1ChainID","path":"/docs/build-on-morph/sdk/enumerations/L1ChainID"},{"id":"build-on-morph/sdk/enumerations/L1RpcUrls","path":"/docs/build-on-morph/sdk/enumerations/L1RpcUrls"},{"id":"build-on-morph/sdk/enumerations/L2ChainID","path":"/docs/build-on-morph/sdk/enumerations/L2ChainID"},{"id":"build-on-morph/sdk/enumerations/L2RpcUrls","path":"/docs/build-on-morph/sdk/enumerations/L2RpcUrls"},{"id":"build-on-morph/sdk/enumerations/MessageDirection","path":"/docs/build-on-morph/sdk/enumerations/MessageDirection"},{"id":"build-on-morph/sdk/enumerations/MessageReceiptStatus","path":"/docs/build-on-morph/sdk/enumerations/MessageReceiptStatus"},{"id":"build-on-morph/sdk/enumerations/MessageStatus","path":"/docs/build-on-morph/sdk/enumerations/MessageStatus"},{"id":"build-on-morph/sdk/functions/asL2Provider","path":"/docs/build-on-morph/sdk/functions/asL2Provider"},{"id":"build-on-morph/sdk/functions/estimateL1Gas","path":"/docs/build-on-morph/sdk/functions/estimateL1Gas"},{"id":"build-on-morph/sdk/functions/estimateL1GasCost","path":"/docs/build-on-morph/sdk/functions/estimateL1GasCost"},{"id":"build-on-morph/sdk/functions/estimateL2GasCost","path":"/docs/build-on-morph/sdk/functions/estimateL2GasCost"},{"id":"build-on-morph/sdk/functions/estimateTotalGasCost","path":"/docs/build-on-morph/sdk/functions/estimateTotalGasCost"},{"id":"build-on-morph/sdk/functions/getAllOEContracts","path":"/docs/build-on-morph/sdk/functions/getAllOEContracts"},{"id":"build-on-morph/sdk/functions/getBridgeAdapters","path":"/docs/build-on-morph/sdk/functions/getBridgeAdapters"},{"id":"build-on-morph/sdk/functions/getL1GasPrice","path":"/docs/build-on-morph/sdk/functions/getL1GasPrice"},{"id":"build-on-morph/sdk/functions/getOEContract","path":"/docs/build-on-morph/sdk/functions/getOEContract"},{"id":"build-on-morph/sdk/functions/hashLowLevelMessageV2","path":"/docs/build-on-morph/sdk/functions/hashLowLevelMessageV2"},{"id":"build-on-morph/sdk/functions/hashMessageHash","path":"/docs/build-on-morph/sdk/functions/hashMessageHash"},{"id":"build-on-morph/sdk/functions/isL2Provider","path":"/docs/build-on-morph/sdk/functions/isL2Provider"},{"id":"build-on-morph/sdk/functions/migratedWithdrawalGasLimit","path":"/docs/build-on-morph/sdk/functions/migratedWithdrawalGasLimit"},{"id":"build-on-morph/sdk/functions/omit","path":"/docs/build-on-morph/sdk/functions/omit"},{"id":"build-on-morph/sdk/functions/toAddress","path":"/docs/build-on-morph/sdk/functions/toAddress"},{"id":"build-on-morph/sdk/functions/toBigNumber","path":"/docs/build-on-morph/sdk/functions/toBigNumber"},{"id":"build-on-morph/sdk/functions/toNumber","path":"/docs/build-on-morph/sdk/functions/toNumber"},{"id":"build-on-morph/sdk/functions/toProvider","path":"/docs/build-on-morph/sdk/functions/toProvider"},{"id":"build-on-morph/sdk/functions/toSignerOrProvider","path":"/docs/build-on-morph/sdk/functions/toSignerOrProvider"},{"id":"build-on-morph/sdk/functions/toTransactionHash","path":"/docs/build-on-morph/sdk/functions/toTransactionHash"},{"id":"build-on-morph/sdk/globals","path":"/docs/build-on-morph/sdk/globals","sidebar":"DeveloperSidebar"},{"id":"build-on-morph/sdk/interfaces/BridgeAdapterData","path":"/docs/build-on-morph/sdk/interfaces/BridgeAdapterData"},{"id":"build-on-morph/sdk/interfaces/BridgeAdapters","path":"/docs/build-on-morph/sdk/interfaces/BridgeAdapters"},{"id":"build-on-morph/sdk/interfaces/CoreCrossChainMessage","path":"/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage"},{"id":"build-on-morph/sdk/interfaces/CrossChainMessage","path":"/docs/build-on-morph/sdk/interfaces/CrossChainMessage"},{"id":"build-on-morph/sdk/interfaces/CrossChainMessageRequest","path":"/docs/build-on-morph/sdk/interfaces/CrossChainMessageRequest"},{"id":"build-on-morph/sdk/interfaces/IActionOptions","path":"/docs/build-on-morph/sdk/interfaces/IActionOptions"},{"id":"build-on-morph/sdk/interfaces/IBridgeAdapter","path":"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter"},{"id":"build-on-morph/sdk/interfaces/L2Block","path":"/docs/build-on-morph/sdk/interfaces/L2Block"},{"id":"build-on-morph/sdk/interfaces/L2BlockWithTransactions","path":"/docs/build-on-morph/sdk/interfaces/L2BlockWithTransactions"},{"id":"build-on-morph/sdk/interfaces/L2Transaction","path":"/docs/build-on-morph/sdk/interfaces/L2Transaction"},{"id":"build-on-morph/sdk/interfaces/MessageReceipt","path":"/docs/build-on-morph/sdk/interfaces/MessageReceipt"},{"id":"build-on-morph/sdk/interfaces/OEContracts","path":"/docs/build-on-morph/sdk/interfaces/OEContracts"},{"id":"build-on-morph/sdk/interfaces/OEContractsLike","path":"/docs/build-on-morph/sdk/interfaces/OEContractsLike"},{"id":"build-on-morph/sdk/interfaces/OEL1Contracts","path":"/docs/build-on-morph/sdk/interfaces/OEL1Contracts"},{"id":"build-on-morph/sdk/interfaces/OEL2Contracts","path":"/docs/build-on-morph/sdk/interfaces/OEL2Contracts"},{"id":"build-on-morph/sdk/interfaces/ProvenWithdrawal","path":"/docs/build-on-morph/sdk/interfaces/ProvenWithdrawal"},{"id":"build-on-morph/sdk/interfaces/StateRoot","path":"/docs/build-on-morph/sdk/interfaces/StateRoot"},{"id":"build-on-morph/sdk/interfaces/StateRootBatch","path":"/docs/build-on-morph/sdk/interfaces/StateRootBatch"},{"id":"build-on-morph/sdk/interfaces/StateRootBatchHeader","path":"/docs/build-on-morph/sdk/interfaces/StateRootBatchHeader"},{"id":"build-on-morph/sdk/interfaces/TokenBridgeMessage","path":"/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage"},{"id":"build-on-morph/sdk/interfaces/WithdrawalEntry","path":"/docs/build-on-morph/sdk/interfaces/WithdrawalEntry"},{"id":"build-on-morph/sdk/interfaces/WithdrawMessageProof","path":"/docs/build-on-morph/sdk/interfaces/WithdrawMessageProof"},{"id":"build-on-morph/sdk/intro","path":"/docs/build-on-morph/sdk/intro"},{"id":"build-on-morph/sdk/type-aliases/AddressLike","path":"/docs/build-on-morph/sdk/type-aliases/AddressLike"},{"id":"build-on-morph/sdk/type-aliases/DeepPartial","path":"/docs/build-on-morph/sdk/type-aliases/DeepPartial"},{"id":"build-on-morph/sdk/type-aliases/L1Provider","path":"/docs/build-on-morph/sdk/type-aliases/L1Provider"},{"id":"build-on-morph/sdk/type-aliases/L2Provider","path":"/docs/build-on-morph/sdk/type-aliases/L2Provider"},{"id":"build-on-morph/sdk/type-aliases/LowLevelMessage","path":"/docs/build-on-morph/sdk/type-aliases/LowLevelMessage"},{"id":"build-on-morph/sdk/type-aliases/MessageLike","path":"/docs/build-on-morph/sdk/type-aliases/MessageLike"},{"id":"build-on-morph/sdk/type-aliases/MessageRequestLike","path":"/docs/build-on-morph/sdk/type-aliases/MessageRequestLike"},{"id":"build-on-morph/sdk/type-aliases/NumberLike","path":"/docs/build-on-morph/sdk/type-aliases/NumberLike"},{"id":"build-on-morph/sdk/type-aliases/OEL1ContractsLike","path":"/docs/build-on-morph/sdk/type-aliases/OEL1ContractsLike"},{"id":"build-on-morph/sdk/type-aliases/OEL2ContractsLike","path":"/docs/build-on-morph/sdk/type-aliases/OEL2ContractsLike"},{"id":"build-on-morph/sdk/type-aliases/ProviderLike","path":"/docs/build-on-morph/sdk/type-aliases/ProviderLike"},{"id":"build-on-morph/sdk/type-aliases/SignerLike","path":"/docs/build-on-morph/sdk/type-aliases/SignerLike"},{"id":"build-on-morph/sdk/type-aliases/SignerOrProviderLike","path":"/docs/build-on-morph/sdk/type-aliases/SignerOrProviderLike"},{"id":"build-on-morph/sdk/type-aliases/TransactionLike","path":"/docs/build-on-morph/sdk/type-aliases/TransactionLike"},{"id":"build-on-morph/sdk/variables/BRIDGE_ADAPTER_DATA","path":"/docs/build-on-morph/sdk/variables/BRIDGE_ADAPTER_DATA"},{"id":"build-on-morph/sdk/variables/CHAIN_BLOCK_TIMES","path":"/docs/build-on-morph/sdk/variables/CHAIN_BLOCK_TIMES"},{"id":"build-on-morph/sdk/variables/CONTRACT_ADDRESSES","path":"/docs/build-on-morph/sdk/variables/CONTRACT_ADDRESSES"},{"id":"build-on-morph/sdk/variables/DEFAULT_L1_CONTRACT_ADDRESSES","path":"/docs/build-on-morph/sdk/variables/DEFAULT_L1_CONTRACT_ADDRESSES"},{"id":"build-on-morph/sdk/variables/DEFAULT_L2_CONTRACT_ADDRESSES","path":"/docs/build-on-morph/sdk/variables/DEFAULT_L2_CONTRACT_ADDRESSES"},{"id":"build-on-morph/sdk/variables/DEPOSIT_CONFIRMATION_BLOCKS","path":"/docs/build-on-morph/sdk/variables/DEPOSIT_CONFIRMATION_BLOCKS"},{"id":"build-on-morph/sdk/variables/l1BridgeName","path":"/docs/build-on-morph/sdk/variables/l1BridgeName"},{"id":"build-on-morph/sdk/variables/l1CrossDomainMessengerName","path":"/docs/build-on-morph/sdk/variables/l1CrossDomainMessengerName"},{"id":"build-on-morph/sdk/variables/l2BridgeName","path":"/docs/build-on-morph/sdk/variables/l2BridgeName"},{"id":"build-on-morph/sdk/variables/l2CrossDomainMessengerName","path":"/docs/build-on-morph/sdk/variables/l2CrossDomainMessengerName"},{"id":"how-morph-works/decentralized-sequencers/morph-decentralized-sequencer-network","path":"/docs/how-morph-works/decentralized-sequencers/morph-decentralized-sequencer-network","sidebar":"DeveloperSidebar"},{"id":"how-morph-works/general-protocol-design/communicate-between-morph-and-ethereum","path":"/docs/how-morph-works/general-protocol-design/communicate-between-morph-and-ethereum","sidebar":"DeveloperSidebar"},{"id":"how-morph-works/general-protocol-design/difference-between-ethereum-and-morph","path":"/docs/how-morph-works/general-protocol-design/difference-between-ethereum-and-morph","sidebar":"DeveloperSidebar"},{"id":"how-morph-works/general-protocol-design/rollup","path":"/docs/how-morph-works/general-protocol-design/rollup","sidebar":"DeveloperSidebar"},{"id":"how-morph-works/general-protocol-design/transactions-life-cycle","path":"/docs/how-morph-works/general-protocol-design/transactions-life-cycle","sidebar":"DeveloperSidebar"},{"id":"how-morph-works/intro","path":"/docs/how-morph-works/intro"},{"id":"how-morph-works/morph-modular-design","path":"/docs/how-morph-works/morph-modular-design","sidebar":"DeveloperSidebar"},{"id":"how-morph-works/optimistic-zkevm","path":"/docs/how-morph-works/optimistic-zkevm","sidebar":"DeveloperSidebar"},{"id":"quick-start/bridge","path":"/docs/quick-start/bridge","sidebar":"DeveloperSidebar"},{"id":"quick-start/faucet","path":"/docs/quick-start/faucet","sidebar":"DeveloperSidebar"},{"id":"quick-start/wallet-setup","path":"/docs/quick-start/wallet-setup","sidebar":"DeveloperSidebar"},{"id":"quick-start/welcome-to-morph","path":"/docs/quick-start/welcome-to-morph"}],"draftIds":[],"sidebars":{"UserSidebar":{"link":{"path":"/docs/about-morph/user-navigation-page","label":"about-morph/user-navigation-page"}},"DeveloperSidebar":{"link":{"path":"/docs/about-morph/user-navigation-page","label":"about-morph/user-navigation-page"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var s=n(2654);const l=JSON.parse('{"docusaurusVersion":"3.1.1","siteVersion":"4.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.1.1"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"3.1.1"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.1.1"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.1.1"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.1.1"},"docusaurus-theme-search-algolia":{"type":"package","name":"@docusaurus/theme-search-algolia","version":"3.1.1"},"docusaurus-plugin-sass":{"type":"package","name":"docusaurus-plugin-sass","version":"0.2.5"},"docusaurus-tailwindcss":{"type":"local"},"docusaurus-plugin-client-redirects":{"type":"package","name":"@docusaurus/plugin-client-redirects","version":"3.1.1"}}}');var c=n(6070);const u={siteConfig:o.default,siteMetadata:l,globalData:a,i18n:i,codeTranslations:s},d=r.createContext(u);function p(e){let{children:t}=e;return(0,c.jsx)(d.Provider,{value:u,children:t})}},3308:(e,t,n)=>{"use strict";n.d(t,{A:()=>f});var r=n(758),o=n(3782),a=n(7471),i=n(4932),s=n(8437),l=n(6070);function c(e){let{error:t,tryAgain:n}=e;return(0,l.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"},children:[(0,l.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,l.jsx)("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,l.jsx)(u,{error:t})]})}function u(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,l.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:n})}function d(e){let{error:t,tryAgain:n}=e;return(0,l.jsxs)(f,{fallback:()=>(0,l.jsx)(c,{error:t,tryAgain:n}),children:[(0,l.jsx)(a.A,{children:(0,l.jsx)("title",{children:"Page Error"})}),(0,l.jsx)(s.A,{children:(0,l.jsx)(c,{error:t,tryAgain:n})})]})}const p=e=>(0,l.jsx)(d,{...e});class f extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){o.A.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??p)(e)}return e??null}}},3782:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,o={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},7471:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});n(758);var r=n(932),o=n(6070);function a(e){return(0,o.jsx)(r.mg,{...e})}},6601:(e,t,n)=>{"use strict";n.d(t,{A:()=>f});var r=n(758),o=n(1742),a=n(4932),i=n(6869),s=n(5407),l=n(3782),c=n(2146),u=n(7838),d=n(6070);function p(e,t){let{isNavLink:n,to:p,href:f,activeClassName:m,isActive:h,"data-noBrokenLinkCheck":g,autoAddBaseUrl:b=!0,...v}=e;const{siteConfig:{trailingSlash:y,baseUrl:w}}=(0,i.A)(),{withBaseUrl:k}=(0,u.h)(),S=(0,c.A)(),x=(0,r.useRef)(null);(0,r.useImperativeHandle)(t,(()=>x.current));const E=p||f;const C=(0,s.A)(E),_=E?.replace("pathname://","");let O=void 0!==_?(A=_,b&&(e=>e.startsWith("/"))(A)?k(A):A):void 0;var A;O&&C&&(O=(0,a.applyTrailingSlash)(O,{trailingSlash:y,baseUrl:w}));const T=(0,r.useRef)(!1),j=n?o.k2:o.N_,L=l.A.canUseIntersectionObserver,P=(0,r.useRef)(),D=()=>{T.current||null==O||(window.docusaurus.preload(O),T.current=!0)};(0,r.useEffect)((()=>(!L&&C&&null!=O&&window.docusaurus.prefetch(O),()=>{L&&P.current&&P.current.disconnect()})),[P,O,L,C]);const R=O?.startsWith("#")??!1,N=!v.target||"_self"===v.target,I=!O||!C||!N||R;return g||!R&&I||S.collectLink(O),v.id&&S.collectAnchor(v.id),I?(0,d.jsx)("a",{ref:x,href:O,...E&&!C&&{target:"_blank",rel:"noopener noreferrer"},...v}):(0,d.jsx)(j,{...v,onMouseEnter:D,onTouchStart:D,innerRef:e=>{x.current=e,L&&e&&C&&(P.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(P.current.unobserve(e),P.current.disconnect(),null!=O&&window.docusaurus.prefetch(O))}))})),P.current.observe(e))},to:O,...n&&{isActive:h,activeClassName:m}})}const f=r.forwardRef(p)},7260:(e,t,n)=>{"use strict";n.d(t,{A:()=>c,T:()=>l});var r=n(758),o=n(6070);function a(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var i=n(2654);function s(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[t??n]??n??t}function l(e,t){let{message:n,id:r}=e;return a(s({message:n,id:r}),t)}function c(e){let{children:t,id:n,values:r}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal <Translate> children",t),new Error("The Docusaurus <Translate> component only accept simple string values");const i=s({message:t,id:n});return(0,o.jsx)(o.Fragment,{children:a(i,r)})}},8372:(e,t,n)=>{"use strict";n.d(t,{W:()=>r});const r="default"},5407:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function o(e){return void 0!==e&&!r(e)}n.d(t,{A:()=>o,z:()=>r})},7838:(e,t,n)=>{"use strict";n.d(t,{A:()=>s,h:()=>i});var r=n(758),o=n(6869),a=n(5407);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,o.A)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:o=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,a.z)(n))return n;if(o)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const s=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+s:s}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function s(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},2146:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(758);n(6070);const o=r.createContext({collectAnchor:()=>{},collectLink:()=>{}}),a=()=>(0,r.useContext)(o);function i(){return a()}},6869:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(758),o=n(4299);function a(){return(0,r.useContext)(o.o)}},600:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(758),o=n(5286);function a(){return(0,r.useContext)(o.o)}},7132:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(758);const o=n(3782).A.canUseDOM?r.useLayoutEffect:r.useEffect},4290:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function o(e){const t={};return function e(n,o){Object.entries(n).forEach((n=>{let[a,i]=n;const s=o?`${o}.${a}`:a;r(i)?e(i,s):t[s]=i}))}(e),t}},5353:(e,t,n)=>{"use strict";n.d(t,{W:()=>i,o:()=>a});var r=n(758),o=n(6070);const a=r.createContext(null);function i(e){let{children:t,value:n}=e;const i=r.useContext(a),s=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:i,value:n})),[i,n]);return(0,o.jsx)(a.Provider,{value:s,children:t})}},9612:(e,t,n)=>{"use strict";n.d(t,{zK:()=>b,vT:()=>f,gk:()=>m,Gy:()=>d,HW:()=>v,ht:()=>p,r7:()=>g,jh:()=>h});var r=n(5557),o=n(6869),a=n(8372);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,o.A)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const s=e=>e.versions.find((e=>e.isLast));function l(e,t){const n=s(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.B6)(t,{path:e.path,exact:!1,strict:!1})))}function c(e,t){const n=l(e,t),o=n?.docs.find((e=>!!(0,r.B6)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:o,alternateDocVersions:o?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(o.id):{}}}const u={},d=()=>i("docusaurus-plugin-content-docs")??u,p=e=>function(e,t,n){void 0===t&&(t=a.W),void 0===n&&(n={});const r=i(e),o=r?.[t];if(!o&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return o}("docusaurus-plugin-content-docs",e,{failfast:!0});function f(e){void 0===e&&(e={});const t=d(),{pathname:n}=(0,r.zy)();return function(e,t,n){void 0===n&&(n={});const o=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.B6)(t,{path:n.path,exact:!1,strict:!1})})),a=o?{pluginId:o[0],pluginData:o[1]}:void 0;if(!a&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return a}(t,n,e)}function m(e){void 0===e&&(e={});const t=f(e),{pathname:n}=(0,r.zy)();if(!t)return;return{activePlugin:t,activeVersion:l(t.pluginData,n)}}function h(e){return p(e).versions}function g(e){const t=p(e);return s(t)}function b(e){const t=p(e),{pathname:n}=(0,r.zy)();return c(t,n)}function v(e){const t=p(e),{pathname:n}=(0,r.zy)();return function(e,t){const n=s(e);return{latestDocSuggestion:c(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},5534:(e,t,n)=>{"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function o(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(){return i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}var s=n(758),l=n(2736),c=[],u=[];function d(e){var t=e(),n={loading:!0,loaded:null,error:null};return n.promise=t.then((function(e){return n.loading=!1,n.loaded=e,e})).catch((function(e){throw n.loading=!1,n.error=e,e})),n}function p(e){var t={loading:!1,loaded:{},error:null},n=[];try{Object.keys(e).forEach((function(r){var o=d(e[r]);o.loading?t.loading=!0:(t.loaded[r]=o.loaded,t.error=o.error),n.push(o.promise),o.promise.then((function(e){t.loaded[r]=e})).catch((function(e){t.error=e}))}))}catch(r){t.error=r}return t.promise=Promise.all(n).then((function(e){return t.loading=!1,e})).catch((function(e){throw t.loading=!1,e})),t}function f(e,t){return s.createElement((n=e)&&n.__esModule?n.default:n,t);var n}function m(e,t){var d,p;if(!t.loading)throw new Error("react-loadable requires a `loading` component");var m=i({loader:null,loading:null,delay:200,timeout:null,render:f,webpack:null,modules:null},t),h=null;function g(){return h||(h=e(m.loader)),h.promise}return c.push(g),"function"==typeof m.webpack&&u.push((function(){if((0,m.webpack)().every((function(e){return void 0!==e&&void 0!==n.m[e]})))return g()})),p=d=function(t){function n(n){var r;return a(o(o(r=t.call(this,n)||this)),"retry",(function(){r.setState({error:null,loading:!0,timedOut:!1}),h=e(m.loader),r._loadModule()})),g(),r.state={error:h.error,pastDelay:!1,timedOut:!1,loading:h.loading,loaded:h.loaded},r}r(n,t),n.preload=function(){return g()};var i=n.prototype;return i.UNSAFE_componentWillMount=function(){this._loadModule()},i.componentDidMount=function(){this._mounted=!0},i._loadModule=function(){var e=this;if(this.context.loadable&&Array.isArray(m.modules)&&m.modules.forEach((function(t){e.context.loadable.report(t)})),h.loading){var t=function(t){e._mounted&&e.setState(t)};"number"==typeof m.delay&&(0===m.delay?this.setState({pastDelay:!0}):this._delay=setTimeout((function(){t({pastDelay:!0})}),m.delay)),"number"==typeof m.timeout&&(this._timeout=setTimeout((function(){t({timedOut:!0})}),m.timeout));var n=function(){t({error:h.error,loaded:h.loaded,loading:h.loading}),e._clearTimeouts()};h.promise.then((function(){return n(),null})).catch((function(e){return n(),null}))}},i.componentWillUnmount=function(){this._mounted=!1,this._clearTimeouts()},i._clearTimeouts=function(){clearTimeout(this._delay),clearTimeout(this._timeout)},i.render=function(){return this.state.loading||this.state.error?s.createElement(m.loading,{isLoading:this.state.loading,pastDelay:this.state.pastDelay,timedOut:this.state.timedOut,error:this.state.error,retry:this.retry}):this.state.loaded?m.render(this.state.loaded,this.props):null},n}(s.Component),a(d,"contextTypes",{loadable:l.shape({report:l.func.isRequired})}),p}function h(e){return m(d,e)}h.Map=function(e){if("function"!=typeof e.render)throw new Error("LoadableMap requires a `render(loaded, props)` function");return m(p,e)};var g=function(e){function t(){return e.apply(this,arguments)||this}r(t,e);var n=t.prototype;return n.getChildContext=function(){return{loadable:{report:this.props.report}}},n.render=function(){return s.Children.only(this.props.children)},t}(s.Component);function b(e){for(var t=[];e.length;){var n=e.pop();t.push(n())}return Promise.all(t).then((function(){if(e.length)return b(e)}))}a(g,"propTypes",{report:l.func.isRequired}),a(g,"childContextTypes",{loadable:l.shape({report:l.func.isRequired}).isRequired}),h.Capture=g,h.preloadAll=function(){return new Promise((function(e,t){b(c).then(e,t)}))},h.preloadReady=function(){return new Promise((function(e,t){b(u).then(e,e)}))},e.exports=h},4523:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(8744),o=n.n(r);o().configure({showSpinner:!1});const a={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{o().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){o().done()}}},4644:(e,t,n)=>{"use strict";var r=n(5371),o=n(4784);!function(e){const{themeConfig:{prism:t}}=o.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{"php"===e&&n(1274),n(9225)(`./prism-${e}`)})),delete globalThis.Prism}(r.My)},2406:(e,t,n)=>{"use strict";n.d(t,{A:()=>u});n(758);var r=n(3526),o=n(7260),a=n(5349),i=n(6601),s=n(2146);const l={anchorWithStickyNavbar:"anchorWithStickyNavbar_AZ4C",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_FXx6"};var c=n(6070);function u(e){let{as:t,id:n,...u}=e;const d=(0,s.A)(),{navbar:{hideOnScroll:p}}=(0,a.p)();if("h1"===t||!n)return(0,c.jsx)(t,{...u,id:void 0});d.collectAnchor(n);const f=(0,o.T)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof u.children?u.children:n});return(0,c.jsxs)(t,{...u,className:(0,r.A)("anchor",p?l.anchorWithHideOnScrollNavbar:l.anchorWithStickyNavbar,u.className),id:n,children:[u.children,(0,c.jsx)(i.A,{className:"hash-link",to:`#${n}`,"aria-label":f,title:f,children:"\u200b"})]})}},7550:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});n(758);const r={iconExternalLink:"iconExternalLink_uMR8"};var o=n(6070);function a(e){let{width:t=13.5,height:n=13.5}=e;return(0,o.jsx)("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:r.iconExternalLink,children:(0,o.jsx)("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"})})}},8437:(e,t,n)=>{"use strict";n.d(t,{A:()=>Mt});var r=n(758),o=n(3526),a=n(3308),i=n(926),s=n(5557),l=n(7260),c=n(9691),u=n(6070);const d="__docusaurus_skipToContent_fallback";function p(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function f(){const e=(0,r.useRef)(null),{action:t}=(0,s.W6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&p(t)}),[]);return(0,c.$)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&p(e.current)})),{containerRef:e,onClick:n}}const m=(0,l.T)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function h(e){const t=e.children??m,{containerRef:n,onClick:r}=f();return(0,u.jsx)("div",{ref:n,role:"region","aria-label":m,children:(0,u.jsx)("a",{...e,href:`#${d}`,onClick:r,children:t})})}var g=n(7998),b=n(6906);const v={skipToContent:"skipToContent_E3EM"};function y(){return(0,u.jsx)(h,{className:v.skipToContent})}var w=n(5349),k=n(746);function S(e){let{width:t=21,height:n=21,color:r="currentColor",strokeWidth:o=1.2,className:a,...i}=e;return(0,u.jsx)("svg",{viewBox:"0 0 15 15",width:t,height:n,...i,children:(0,u.jsx)("g",{stroke:r,strokeWidth:o,children:(0,u.jsx)("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})})})}const x={closeButton:"closeButton_SYkQ"};function E(e){return(0,u.jsx)("button",{type:"button","aria-label":(0,l.T)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"}),...e,className:(0,o.A)("clean-btn close",x.closeButton,e.className),children:(0,u.jsx)(S,{width:14,height:14,strokeWidth:3.1})})}const C={content:"content_ILws"};function _(e){const{announcementBar:t}=(0,w.p)(),{content:n}=t;return(0,u.jsx)("div",{...e,className:(0,o.A)(C.content,e.className),dangerouslySetInnerHTML:{__html:n}})}const O={announcementBar:"announcementBar_yOjN",announcementBarPlaceholder:"announcementBarPlaceholder_ZPOO",announcementBarClose:"announcementBarClose_laiP",announcementBarContent:"announcementBarContent_jjlM"};function A(){const{announcementBar:e}=(0,w.p)(),{isActive:t,close:n}=(0,k.Mj)();if(!t)return null;const{backgroundColor:r,textColor:o,isCloseable:a}=e;return(0,u.jsxs)("div",{className:O.announcementBar,style:{backgroundColor:r,color:o},role:"banner",children:[a&&(0,u.jsx)("div",{className:O.announcementBarPlaceholder}),(0,u.jsx)(_,{className:O.announcementBarContent}),a&&(0,u.jsx)(E,{onClick:n,className:O.announcementBarClose})]})}var T=n(8058),j=n(1773);var L=n(3991),P=n(5955);const D=r.createContext(null);function R(e){let{children:t}=e;const n=function(){const e=(0,T.M)(),t=(0,P.YL)(),[n,o]=(0,r.useState)(!1),a=null!==t.component,i=(0,L.ZC)(a);return(0,r.useEffect)((()=>{a&&!i&&o(!0)}),[a,i]),(0,r.useEffect)((()=>{a?e.shown||o(!0):o(!1)}),[e.shown,a]),(0,r.useMemo)((()=>[n,o]),[n])}();return(0,u.jsx)(D.Provider,{value:n,children:t})}function N(e){if(e.component){const t=e.component;return(0,u.jsx)(t,{...e.props})}}function I(){const e=(0,r.useContext)(D);if(!e)throw new L.dV("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,o=(0,r.useCallback)((()=>n(!1)),[n]),a=(0,P.YL)();return(0,r.useMemo)((()=>({shown:t,hide:o,content:N(a)})),[o,a,t])}function M(e){let{header:t,primaryMenu:n,secondaryMenu:r}=e;const{shown:a}=I();return(0,u.jsxs)("div",{className:"navbar-sidebar",children:[t,(0,u.jsxs)("div",{className:(0,o.A)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":a}),children:[(0,u.jsx)("div",{className:"navbar-sidebar__item menu",children:n}),(0,u.jsx)("div",{className:"navbar-sidebar__item menu",children:r})]})]})}var F=n(1478),B=n(600);function z(e){return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,u.jsx)("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"})})}function U(e){return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,u.jsx)("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"})})}const q={toggle:"toggle_Lphv",toggleButton:"toggleButton_C4u_",darkToggleIcon:"darkToggleIcon_a49f",lightToggleIcon:"lightToggleIcon_YVKM",toggleButtonDisabled:"toggleButtonDisabled_K1qw"};function $(e){let{className:t,buttonClassName:n,value:r,onChange:a}=e;const i=(0,B.A)(),s=(0,l.T)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===r?(0,l.T)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,l.T)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return(0,u.jsx)("div",{className:(0,o.A)(q.toggle,t),children:(0,u.jsxs)("button",{className:(0,o.A)("clean-btn",q.toggleButton,!i&&q.toggleButtonDisabled,n),type:"button",onClick:()=>a("dark"===r?"light":"dark"),disabled:!i,title:s,"aria-label":s,"aria-live":"polite",children:[(0,u.jsx)(z,{className:(0,o.A)(q.toggleIcon,q.lightToggleIcon)}),(0,u.jsx)(U,{className:(0,o.A)(q.toggleIcon,q.darkToggleIcon)})]})})}const H=r.memo($),G={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_pSsd"};function V(e){let{className:t}=e;const n=(0,w.p)().navbar.style,r=(0,w.p)().colorMode.disableSwitch,{colorMode:o,setColorMode:a}=(0,F.G)();return r?null:(0,u.jsx)(H,{className:t,buttonClassName:"dark"===n?G.darkNavbarColorModeToggle:void 0,value:o,onChange:a})}var W=n(7350);function K(){return(0,u.jsx)(W.A,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function Q(){const e=(0,T.M)();return(0,u.jsx)("button",{type:"button","aria-label":(0,l.T)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle(),children:(0,u.jsx)(S,{color:"var(--ifm-color-emphasis-600)"})})}function Z(){return(0,u.jsxs)("div",{className:"navbar-sidebar__brand",children:[(0,u.jsx)(K,{}),(0,u.jsx)(V,{className:"margin-right--md"}),(0,u.jsx)(Q,{})]})}var Y=n(6601),J=n(7838),X=n(5407),ee=n(7473),te=n(7550);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:r,href:o,label:a,html:i,isDropdownLink:s,prependBaseUrlToHref:l,...c}=e;const d=(0,J.A)(r),p=(0,J.A)(t),f=(0,J.A)(o,{forcePrependBaseUrl:!0}),m=a&&o&&!(0,X.A)(o),h=i?{dangerouslySetInnerHTML:{__html:i}}:{children:(0,u.jsxs)(u.Fragment,{children:[a,m&&(0,u.jsx)(te.A,{...s&&{width:12,height:12}})]})};return o?(0,u.jsx)(Y.A,{href:l?f:o,...c,...h}):(0,u.jsx)(Y.A,{to:d,isNavLink:!0,...(t||n)&&{isActive:(e,t)=>n?(0,ee.G)(n,t.pathname):t.pathname.startsWith(p)},...c,...h})}function re(e){let{className:t,isDropdownItem:n=!1,...r}=e;const a=(0,u.jsx)(ne,{className:(0,o.A)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n,...r});return n?(0,u.jsx)("li",{children:a}):a}function oe(e){let{className:t,isDropdownItem:n,...r}=e;return(0,u.jsx)("li",{className:"menu__list-item",children:(0,u.jsx)(ne,{className:(0,o.A)("menu__link",t),...r})})}function ae(e){let{mobile:t=!1,position:n,...r}=e;const o=t?oe:re;return(0,u.jsx)(o,{...r,activeClassName:r.activeClassName??(t?"menu__link--active":"navbar__link--active")})}var ie=n(1069),se=n(8492),le=n(6869);const ce="dropdownNavbarItemMobile_I3x3";function ue(e,t){return e.some((e=>function(e,t){return!!(0,se.ys)(e.to,t)||!!(0,ee.G)(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function de(e){let{items:t,position:n,className:a,onClick:i,...s}=e;const l=(0,r.useRef)(null),[c,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{l.current&&!l.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[l]),(0,u.jsxs)("div",{ref:l,className:(0,o.A)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":c}),children:[(0,u.jsx)(ne,{"aria-haspopup":"true","aria-expanded":c,role:"button",href:s.to?void 0:"#",className:(0,o.A)("navbar__link",a),...s,onClick:s.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!c))},children:s.children??s.label}),(0,u.jsx)("ul",{className:"dropdown__menu",children:t.map(((e,t)=>(0,r.createElement)(Fe,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t})))})]})}function pe(e){let{items:t,className:n,position:a,onClick:i,...l}=e;const c=function(){const{siteConfig:{baseUrl:e}}=(0,le.A)(),{pathname:t}=(0,s.zy)();return t.replace(e,"/")}(),d=ue(t,c),{collapsed:p,toggleCollapsed:f,setCollapsed:m}=(0,ie.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&m(!d)}),[c,d,m]),(0,u.jsxs)("li",{className:(0,o.A)("menu__list-item",{"menu__list-item--collapsed":p}),children:[(0,u.jsx)(ne,{role:"button",className:(0,o.A)(ce,"menu__link menu__link--sublist menu__link--sublist-caret",n),...l,onClick:e=>{e.preventDefault(),f()},children:l.children??l.label}),(0,u.jsx)(ie.N,{lazy:!0,as:"ul",className:"menu__list",collapsed:p,children:t.map(((e,t)=>(0,r.createElement)(Fe,{mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active",...e,key:t})))})]})}function fe(e){let{mobile:t=!1,...n}=e;const r=t?pe:de;return(0,u.jsx)(r,{...n})}var me=n(282);function he(e){let{width:t=20,height:n=20,...r}=e;return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0,...r,children:(0,u.jsx)("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"})})}const ge="iconLanguage_ZSsF";var be=n(2525),ve=n(7038),ye=n(1886),we=n(3330);var ke=n(7471),Se=n(8143);const xe={button:{buttonText:(0,l.T)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"}),buttonAriaLabel:(0,l.T)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"})},modal:{searchBox:{resetButtonTitle:(0,l.T)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),resetButtonAriaLabel:(0,l.T)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),cancelButtonText:(0,l.T)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"}),cancelButtonAriaLabel:(0,l.T)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"})},startScreen:{recentSearchesTitle:(0,l.T)({id:"theme.SearchModal.startScreen.recentSearchesTitle",message:"Recent",description:"The title for recent searches"}),noRecentSearchesText:(0,l.T)({id:"theme.SearchModal.startScreen.noRecentSearchesText",message:"No recent searches",description:"The text when no recent searches"}),saveRecentSearchButtonTitle:(0,l.T)({id:"theme.SearchModal.startScreen.saveRecentSearchButtonTitle",message:"Save this search",description:"The label for save recent search button"}),removeRecentSearchButtonTitle:(0,l.T)({id:"theme.SearchModal.startScreen.removeRecentSearchButtonTitle",message:"Remove this search from history",description:"The label for remove recent search button"}),favoriteSearchesTitle:(0,l.T)({id:"theme.SearchModal.startScreen.favoriteSearchesTitle",message:"Favorite",description:"The title for favorite searches"}),removeFavoriteSearchButtonTitle:(0,l.T)({id:"theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle",message:"Remove this search from favorites",description:"The label for remove favorite search button"})},errorScreen:{titleText:(0,l.T)({id:"theme.SearchModal.errorScreen.titleText",message:"Unable to fetch results",description:"The title for error screen of search modal"}),helpText:(0,l.T)({id:"theme.SearchModal.errorScreen.helpText",message:"You might want to check your network connection.",description:"The help text for error screen of search modal"})},footer:{selectText:(0,l.T)({id:"theme.SearchModal.footer.selectText",message:"to select",description:"The explanatory text of the action for the enter key"}),selectKeyAriaLabel:(0,l.T)({id:"theme.SearchModal.footer.selectKeyAriaLabel",message:"Enter key",description:"The ARIA label for the Enter key button that makes the selection"}),navigateText:(0,l.T)({id:"theme.SearchModal.footer.navigateText",message:"to navigate",description:"The explanatory text of the action for the Arrow up and Arrow down key"}),navigateUpKeyAriaLabel:(0,l.T)({id:"theme.SearchModal.footer.navigateUpKeyAriaLabel",message:"Arrow up",description:"The ARIA label for the Arrow up key button that makes the navigation"}),navigateDownKeyAriaLabel:(0,l.T)({id:"theme.SearchModal.footer.navigateDownKeyAriaLabel",message:"Arrow down",description:"The ARIA label for the Arrow down key button that makes the navigation"}),closeText:(0,l.T)({id:"theme.SearchModal.footer.closeText",message:"to close",description:"The explanatory text of the action for Escape key"}),closeKeyAriaLabel:(0,l.T)({id:"theme.SearchModal.footer.closeKeyAriaLabel",message:"Escape key",description:"The ARIA label for the Escape key button that close the modal"}),searchByText:(0,l.T)({id:"theme.SearchModal.footer.searchByText",message:"Search by",description:"The text explain that the search is making by Algolia"})},noResultsScreen:{noResultsText:(0,l.T)({id:"theme.SearchModal.noResultsScreen.noResultsText",message:"No results for",description:"The text explains that there are no results for the following search"}),suggestedQueryText:(0,l.T)({id:"theme.SearchModal.noResultsScreen.suggestedQueryText",message:"Try searching for",description:"The text for the suggested query when no results are found for the following search"}),reportMissingResultsText:(0,l.T)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsText",message:"Believe this query should return results?",description:"The text for the question where the user thinks there are missing results"}),reportMissingResultsLinkText:(0,l.T)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsLinkText",message:"Let us know.",description:"The text for the link to report missing results"})}},placeholder:(0,l.T)({id:"theme.SearchModal.placeholder",message:"Search docs",description:"The placeholder of the input of the DocSearch pop-up modal"})};function Ee(e){let{apiKey:t,alwaysOpen:n,noFastMode:o}=e;return(0,r.useLayoutEffect)((()=>{if(!window?.document)return;let e=document.getElementById("__cookbook");e||(e=document.createElement("div"),e.id="__cookbook",e.dataset.apiKey=t,n&&(e.dataset.alwaysOpen=""),o&&(e.dataset.noFast=""),document.body.appendChild(e));let r=document.getElementById("__cookbook-script");r||(r=document.createElement("script"),r.src="/js/cookbookdev.index.cjs.js",r.id="__cookbook-script",r.async=!0,document.body.appendChild(r))}),[]),null}const Ce="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI2NjY5ZDFiNmExMTk3NjM3NDIzOWFmODgiLCJpYXQiOjE3MTgyMTA5OTgsImV4cCI6MjAzMzc4Njk5OH0.m302WLKYHPOARN08cYT7gMb6TvRwhOijtsD39PRaj1A";let _e=null;function Oe(e){let{hit:t,children:n}=e;return(0,u.jsx)(Y.A,{to:t.url,children:n})}function Ae(e){let{state:t,onClose:n}=e;const r=(0,ve.w)();return(0,u.jsx)(Y.A,{to:r(t.query),onClick:n,children:(0,u.jsx)(l.A,{id:"theme.SearchBar.seeAll",values:{count:t.context.nbHits},children:"See all {count} results"})})}function Te(e){let{contextualSearch:t,externalUrlRegex:o,...a}=e;const{siteMetadata:i}=(0,le.A)(),l=(0,ye.C)(),c=function(){const{locale:e,tags:t}=(0,we.af)();return[`language:${e}`,t.map((e=>`docusaurus_tag:${e}`))]}(),d=a.searchParameters?.facetFilters??[],p=t?function(e,t){const n=e=>"string"==typeof e?[e]:e;return[...n(e),...n(t)]}(c,d):d,f={...a.searchParameters,facetFilters:p},m=(0,s.W6)(),h=(0,r.useRef)(null),g=(0,r.useRef)(null),[b,v]=(0,r.useState)(!1),[y,w]=(0,r.useState)(void 0),k=(0,r.useCallback)((()=>_e?Promise.resolve():Promise.all([n.e(5081).then(n.bind(n,5081)),Promise.all([n.e(1869),n.e(7426)]).then(n.bind(n,7426)),Promise.all([n.e(1869),n.e(9505)]).then(n.bind(n,9505))]).then((e=>{let[{DocSearchModal:t}]=e;_e=t}))),[]),S=(0,r.useCallback)((()=>{k().then((()=>{h.current=document.createElement("div"),document.body.insertBefore(h.current,document.body.firstChild),v(!0)}))}),[k,v]),x=(0,r.useCallback)((()=>{v(!1),h.current?.remove()}),[v]),E=(0,r.useCallback)((e=>{k().then((()=>{v(!0),w(e.key)}))}),[k,v,w]),C=(0,r.useRef)({navigate(e){let{itemUrl:t}=e;(0,ee.G)(o,t)?window.location.href=t:m.push(t)}}).current,_=(0,r.useRef)((e=>a.transformItems?a.transformItems(e):e.map((e=>({...e,url:l(e.url)}))))).current,O=(0,r.useMemo)((()=>e=>(0,u.jsx)(Ae,{...e,onClose:x})),[x]),A=(0,r.useCallback)((e=>(e.addAlgoliaAgent("docusaurus",i.docusaurusVersion),e)),[i.docusaurusVersion]);return(0,be.E8)({isOpen:b,onOpen:S,onClose:x,onInput:E,searchButtonRef:g}),(0,u.jsxs)(u.Fragment,{children:[(0,u.jsxs)(ke.A,{children:[(0,u.jsx)("link",{rel:"preconnect",href:`https://${a.appId}-dsn.algolia.net`,crossOrigin:"anonymous"}),(0,u.jsx)("link",{rel:"icon",type:"image/png",href:"/share/logo.png"}),(0,u.jsx)("meta",{property:"og:image",content:"/share/share2.png"}),(0,u.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,u.jsx)("meta",{property:"twitter:image",content:"/share/share2.png"})]}),(0,u.jsx)(be.Bc,{onTouchStart:k,onFocus:k,onMouseOver:k,onClick:S,ref:g,translations:xe.button}),b&&_e&&h.current&&(0,Se.createPortal)((0,u.jsx)(_e,{onClose:x,initialScrollY:window.scrollY,initialQuery:y,navigator:C,transformItems:_,hitComponent:Oe,transformSearchClient:A,...a.searchPagePath&&{resultsFooterComponent:O},...a,searchParameters:f,placeholder:xe.placeholder,translations:xe.modal}),h.current),(0,u.jsx)(Ee,{apiKey:Ce})]})}function je(){const{siteConfig:e}=(0,le.A)();return(0,u.jsx)(Te,{theme:"light",...e.themeConfig.algolia})}const Le={navbarSearchContainer:"navbarSearchContainer_Aukl"};function Pe(e){let{children:t,className:n}=e;return(0,u.jsx)("div",{className:(0,o.A)(n,Le.navbarSearchContainer),children:t})}var De=n(9612),Re=n(3745);var Ne=n(3636);const Ie=e=>e.docs.find((t=>t.id===e.mainDocId));const Me={default:ae,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:r,queryString:o="",...a}=e;const{i18n:{currentLocale:i,locales:c,localeConfigs:d}}=(0,le.A)(),p=(0,me.o)(),{search:f,hash:m}=(0,s.zy)(),h=[...n,...c.map((e=>{const n=`${`pathname://${p.createUrl({locale:e,fullyQualified:!1})}`}${f}${m}${o}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...r],g=t?(0,l.T)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return(0,u.jsx)(fe,{...a,mobile:t,label:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(he,{className:ge}),g]}),items:h})},search:function(e){let{mobile:t,className:n}=e;return t?null:(0,u.jsx)(Pe,{className:n,children:(0,u.jsx)(je,{})})},dropdown:fe,html:function(e){let{value:t,className:n,mobile:r=!1,isDropdownItem:a=!1}=e;const i=a?"li":"div";return(0,u.jsx)(i,{className:(0,o.A)({navbar__item:!r&&!a,"menu__list-item":r},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:r,...o}=e;const{activeDoc:a}=(0,De.zK)(r),i=(0,Re.QB)(t,r),s=a?.path===i?.path;return null===i||i.unlisted&&!s?null:(0,u.jsx)(ae,{exact:!0,...o,isActive:()=>s||!!a?.sidebar&&a.sidebar===i.sidebar,label:n??i.id,to:i.path})},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:r,...o}=e;const{activeDoc:a}=(0,De.zK)(r),i=(0,Re.fW)(t,r).link;if(!i)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return(0,u.jsx)(ae,{exact:!0,...o,isActive:()=>a?.sidebar===t,label:n??i.label,to:i.path})},docsVersion:function(e){let{label:t,to:n,docsPluginId:r,...o}=e;const a=(0,Re.Vd)(r)[0],i=t??a.label,s=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(a).path;return(0,u.jsx)(ae,{...o,label:i,to:s})},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:r,dropdownItemsBefore:o,dropdownItemsAfter:a,...i}=e;const{search:c,hash:d}=(0,s.zy)(),p=(0,De.zK)(n),f=(0,De.jh)(n),{savePreferredVersionName:m}=(0,Ne.g1)(n),h=[...o,...f.map((e=>{const t=p.alternateDocVersions[e.name]??Ie(e);return{label:e.label,to:`${t.path}${c}${d}`,isActive:()=>e===p.activeVersion,onClick:()=>m(e.name)}})),...a],g=(0,Re.Vd)(n)[0],b=t&&h.length>1?(0,l.T)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):g.label,v=t&&h.length>1?void 0:Ie(g).path;return h.length<=1?(0,u.jsx)(ae,{...i,mobile:t,label:b,to:v,isActive:r?()=>!1:void 0}):(0,u.jsx)(fe,{...i,mobile:t,label:b,to:v,items:h,isActive:r?()=>!1:void 0})}};function Fe(e){let{type:t,...n}=e;const r=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),o=Me[r];if(!o)throw new Error(`No NavbarItem component found for type "${t}".`);return(0,u.jsx)(o,{...n})}function Be(){const e=(0,T.M)(),t=(0,w.p)().navbar.items;return(0,u.jsx)("ul",{className:"menu__list",children:t.map(((t,n)=>(0,r.createElement)(Fe,{mobile:!0,...t,onClick:()=>e.toggle(),key:n})))})}function ze(e){return(0,u.jsx)("button",{...e,type:"button",className:"clean-btn navbar-sidebar__back",children:(0,u.jsx)(l.A,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)",children:"\u2190 Back to main menu"})})}function Ue(){const e=0===(0,w.p)().navbar.items.length,t=I();return(0,u.jsxs)(u.Fragment,{children:[!e&&(0,u.jsx)(ze,{onClick:()=>t.hide()}),t.content]})}function qe(){const e=(0,T.M)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?(0,u.jsx)(M,{header:(0,u.jsx)(Z,{}),primaryMenu:(0,u.jsx)(Be,{}),secondaryMenu:(0,u.jsx)(Ue,{})}):null}const $e={navbarHideable:"navbarHideable_gQho",navbarHidden:"navbarHidden_zxOU"};function He(e){return(0,u.jsx)("div",{role:"presentation",...e,className:(0,o.A)("navbar-sidebar__backdrop",e.className)})}function Ge(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:a}}=(0,w.p)(),i=(0,T.M)(),{navbarRef:s,isNavbarVisible:d}=function(e){const[t,n]=(0,r.useState)(e),o=(0,r.useRef)(!1),a=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(a.current=e.getBoundingClientRect().height)}),[]);return(0,j.Mq)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i<a.current)return void n(!0);if(o.current)return void(o.current=!1);const s=r?.scrollY,l=document.documentElement.scrollHeight-a.current,c=window.innerHeight;s&&i>=s?n(!1):i+c<l&&n(!0)})),(0,c.$)((t=>{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return o.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return(0,u.jsxs)("nav",{ref:s,"aria-label":(0,l.T)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,o.A)("navbar","navbar--fixed-top",n&&[$e.navbarHideable,!d&&$e.navbarHidden],{"navbar--dark":"dark"===a,"navbar--primary":"primary"===a,"navbar-sidebar--show":i.shown}),children:[t,(0,u.jsx)(He,{onClick:i.toggle}),(0,u.jsx)(qe,{})]})}var Ve=n(4932);const We={errorBoundaryError:"errorBoundaryError_QHYE",errorBoundaryFallback:"errorBoundaryFallback_uBmD"};function Ke(e){return(0,u.jsx)("button",{type:"button",...e,children:(0,u.jsx)(l.A,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error",children:"Try again"})})}function Qe(e){let{error:t}=e;const n=(0,Ve.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,u.jsx)("p",{className:We.errorBoundaryError,children:n})}class Ze extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const Ye="right";function Je(e){let{width:t=30,height:n=30,className:r,...o}=e;return(0,u.jsx)("svg",{className:r,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true",...o,children:(0,u.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"})})}function Xe(){const{toggle:e,shown:t}=(0,T.M)();return(0,u.jsx)("button",{onClick:e,"aria-label":(0,l.T)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button",children:(0,u.jsx)(Je,{})})}const et={colorModeToggle:"colorModeToggle_rXT6"};function tt(e){let{items:t}=e;return(0,u.jsx)(u.Fragment,{children:t.map(((e,t)=>(0,u.jsx)(Ze,{onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t}),children:(0,u.jsx)(Fe,{...e})},t)))})}function nt(e){let{left:t,right:n}=e;return(0,u.jsxs)("div",{className:"navbar__inner",children:[(0,u.jsx)("div",{className:"navbar__items",children:t}),(0,u.jsx)("div",{className:"navbar__items navbar__items--right",children:n})]})}function rt(){const e=(0,T.M)(),t=(0,w.p)().navbar.items,[n,r]=function(e){function t(e){return"left"===(e.position??Ye)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),o=t.find((e=>"search"===e.type));return(0,u.jsx)(nt,{left:(0,u.jsxs)(u.Fragment,{children:[!e.disabled&&(0,u.jsx)(Xe,{}),(0,u.jsx)(K,{}),(0,u.jsx)(tt,{items:n})]}),right:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(tt,{items:r}),(0,u.jsx)(V,{className:et.colorModeToggle}),!o&&(0,u.jsx)(Pe,{children:(0,u.jsx)(je,{})})]})})}function ot(){return(0,u.jsx)(Ge,{children:(0,u.jsx)(rt,{})})}function at(e){let{item:t}=e;const{to:n,href:r,label:o,prependBaseUrlToHref:a,...i}=t,s=(0,J.A)(n),l=(0,J.A)(r,{forcePrependBaseUrl:!0});return(0,u.jsx)(Y.A,{className:"footer__link-item",...r?{href:a?l:r}:{to:s},...i,children:o})}function it(e){let{item:t}=e;return t.html?(0,u.jsx)("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):(0,u.jsx)("li",{className:"footer__item",children:(0,u.jsx)(at,{item:t})},t.href??t.to)}function st(e){let{column:t}=e;return(0,u.jsxs)("div",{className:"flex-1",children:[(0,u.jsx)("div",{className:"footer__title text-[#FFFFFF66]",children:t.title}),(0,u.jsx)("ul",{className:"flex flex-col footer__items clean-list text-[#fff]",children:t.items.map(((e,t)=>(0,u.jsx)(it,{item:e},t)))})]})}function lt(e){let{columns:t}=e;return(0,u.jsx)("div",{className:"grid grid-cols-2 md:grid-cols-4 xl:flex xl:flex-row",children:t.map(((e,t)=>(0,u.jsx)(st,{column:e},t)))})}function ct(){return(0,u.jsx)("span",{className:"footer__link-separator",children:"\xb7"})}function ut(e){let{item:t}=e;return t.html?(0,u.jsx)("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):(0,u.jsx)(at,{item:t})}function dt(e){let{links:t}=e;return(0,u.jsx)("div",{className:"footer__links text--center",children:(0,u.jsx)("div",{className:"footer__links",children:t.map(((e,n)=>(0,u.jsxs)(r.Fragment,{children:[(0,u.jsx)(ut,{item:e}),t.length!==n+1&&(0,u.jsx)(ct,{})]},n)))})})}function pt(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?(0,u.jsx)(lt,{columns:t}):(0,u.jsx)(dt,{links:t})}var ft=n(7500),mt=n.n(ft),ht=n(3958);const gt="footerLogoLink_DDai";function bt(e){let{logo:t}=e;const{withBaseUrl:n}=(0,J.h)(),r={light:n(t.src),dark:n(t.srcDark??t.src)};return(0,u.jsx)(ht.A,{className:mt()("footer__logo",t.className),alt:t.alt,sources:r,width:t.width,height:t.height,style:t.style})}function vt(e){let{logo:t}=e;return t.href?(0,u.jsx)(Y.A,{href:t.href,className:gt,target:t.target,children:(0,u.jsx)(bt,{logo:t})}):(0,u.jsx)(bt,{logo:t})}function yt(e){let{copyright:t}=e;return(0,u.jsx)("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}const wt=e=>{let{fill:t,size:n}=e;return(0,u.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:n||"24",height:n||"24",viewBox:"0 0 10 9",fill:"none",children:(0,u.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M1 2C1.55228 2 2 1.55228 2 1C2 0.447715 1.55228 0 1 0C0.447715 0 0 0.447715 0 1C0 1.55228 0.447715 2 1 2ZM2 9V3H0V9H2ZM3.5 2H5.5V3.49639C5.61312 2.97694 6.21481 2 7.49922 2C8.78661 2 10 2.22698 10 5V9H8.4V5.03955C8.4 4.65066 8.09658 3.53955 6.99922 3.53955C5.83419 3.53955 5.51747 4.70903 5.5 5.01444V9H3.5V2Z",fill:t||"#CCCCCC"})})},kt=e=>{let{fill:t,size:n,className:r}=e;return(0,u.jsx)("svg",{className:r,fill:"none",height:n||"25",viewBox:"0 0 24 25",width:n||"24",xmlns:"http://www.w3.org/2000/svg",children:(0,u.jsx)("path",{d:"M14.4027 10.4686L21.8482 2H20.0838L13.619 9.3532L8.45547 2H2.5L10.3082 13.1193L2.5 22H4.26443L11.0915 14.2348L16.5445 22H22.5L14.4023 10.4686H14.4027ZM11.9861 13.2173L11.195 12.1101L4.90018 3.29968H7.61025L12.6902 10.4099L13.4813 11.5172L20.0847 20.7594H17.3746L11.9861 13.2177V13.2173Z",fill:t||"#CCCCCC"})})},St=e=>{let{fill:t,size:n,className:r}=e;return(0,u.jsx)("svg",{className:r,fill:"none",height:n||"24",viewBox:"0 0 24 24",width:n||"24",xmlns:"http://www.w3.org/2000/svg",children:(0,u.jsx)("path",{d:"M19.6695 5.02043C19.6634 5.00856 19.6532 4.99925 19.6409 4.99418C18.2112 4.33826 16.7026 3.87053 15.1526 3.60271C15.1386 3.60009 15.124 3.60198 15.1111 3.60811C15.0981 3.61423 15.0874 3.62429 15.0805 3.63683C14.8751 4.00969 14.6886 4.39268 14.5218 4.78433C12.851 4.53072 11.1516 4.53072 9.4808 4.78433C9.31287 4.39169 9.12339 4.0086 8.91324 3.63683C8.90603 3.62456 8.8953 3.61474 8.88243 3.60865C8.86956 3.60256 8.85515 3.60049 8.84109 3.60271C7.29098 3.86997 5.78223 4.33773 4.35279 4.99422C4.34056 4.99941 4.33023 5.00827 4.32324 5.01957C1.46465 9.2885 0.681579 13.4525 1.06573 17.5649C1.06681 17.5749 1.06991 17.5847 1.07483 17.5936C1.07976 17.6024 1.08642 17.6102 1.09442 17.6164C2.75895 18.8489 4.62074 19.7896 6.60035 20.3985C6.6143 20.4027 6.62918 20.4025 6.64301 20.398C6.65684 20.3934 6.66895 20.3848 6.67772 20.3732C7.10289 19.7946 7.47963 19.182 7.8041 18.5416C7.80856 18.5328 7.81111 18.5232 7.81157 18.5133C7.81204 18.5035 7.81041 18.4936 7.8068 18.4845C7.80319 18.4753 7.79768 18.467 7.79063 18.4601C7.78358 18.4532 7.77515 18.4479 7.76589 18.4445C7.1718 18.2172 6.59665 17.9432 6.04584 17.625C6.03584 17.6192 6.02743 17.6109 6.02137 17.601C6.01532 17.5911 6.01179 17.5799 6.0111 17.5683C6.01042 17.5567 6.01259 17.5451 6.01744 17.5346C6.02229 17.524 6.02966 17.5148 6.0389 17.5078C6.15481 17.4212 6.2687 17.332 6.38049 17.2402C6.3903 17.2321 6.40216 17.2269 6.41475 17.2252C6.42734 17.2235 6.44015 17.2254 6.45174 17.2306C10.0603 18.8775 13.9671 18.8775 17.533 17.2306C17.5446 17.2251 17.5576 17.2229 17.5703 17.2245C17.5831 17.226 17.5952 17.2312 17.6051 17.2393C17.7171 17.3316 17.8312 17.4212 17.9476 17.5078C17.9569 17.5148 17.9643 17.5239 17.9692 17.5344C17.9742 17.5449 17.9764 17.5565 17.9758 17.5681C17.9752 17.5796 17.9718 17.5909 17.9658 17.6008C17.9598 17.6108 17.9515 17.6191 17.9415 17.625C17.392 17.9459 16.8163 18.2197 16.2206 18.4437C16.2114 18.4472 16.203 18.4526 16.196 18.4596C16.189 18.4666 16.1835 18.475 16.18 18.4842C16.1764 18.4935 16.1749 18.5034 16.1754 18.5132C16.176 18.5231 16.1786 18.5328 16.1831 18.5416C16.513 19.1785 16.8892 19.7903 17.3087 20.3721C17.3172 20.3841 17.3292 20.393 17.3431 20.3977C17.357 20.4025 17.372 20.4027 17.386 20.3984C19.3692 19.7916 21.2342 18.8507 22.9009 17.6164C22.909 17.6105 22.9157 17.6029 22.9207 17.5942C22.9256 17.5854 22.9286 17.5757 22.9295 17.5657C23.3894 12.8114 22.1596 8.68152 19.6695 5.02043ZM8.34302 15.0608C7.25657 15.0608 6.36137 14.0638 6.36137 12.8394C6.36137 11.6149 7.2392 10.6178 8.34302 10.6178C9.45545 10.6178 10.342 11.6236 10.3246 12.8393C10.3246 14.0638 9.44675 15.0608 8.34302 15.0608ZM15.6698 15.0608C14.5834 15.0608 13.6882 14.0638 13.6882 12.8394C13.6882 11.6149 14.566 10.6178 15.6698 10.6178C16.7823 10.6178 17.6688 11.6236 17.6514 12.8393C17.6514 14.0638 16.7823 15.0608 15.6698 15.0608Z",fill:t||"#CCCCCC"})})},xt=e=>{let{fill:t,size:n,className:r}=e;return(0,u.jsx)("svg",{className:r,fill:"none",height:n||"24",viewBox:"0 0 24 24",width:n||"24",xmlns:"http://www.w3.org/2000/svg",children:(0,u.jsx)("path",{d:"M11.9996 1.96875C6.3193 1.96875 1.71387 6.57354 1.71387 12.2545C1.71387 16.7988 4.66137 20.6547 8.74801 22.0143C9.2623 22.1095 9.4513 21.7913 9.4513 21.5193C9.4513 21.2744 9.44165 20.4637 9.43715 19.6042C6.57515 20.2265 5.97151 18.3905 5.97151 18.3905C5.50351 17.2019 4.8298 16.8856 4.8298 16.8856C3.89637 16.2473 4.90051 16.2601 4.90051 16.2601C5.93294 16.3327 6.4768 17.3202 6.4768 17.3202C7.39415 18.8926 8.88301 18.4381 9.46994 18.1752C9.56187 17.5105 9.82865 17.0566 10.1231 16.7995C7.83837 16.5397 5.43665 15.6571 5.43665 11.7164C5.43665 10.5933 5.83844 9.67596 6.49672 8.95532C6.39001 8.69625 6.03772 7.65032 6.59637 6.23346C6.59637 6.23346 7.46037 5.95704 9.42558 7.28775C10.2459 7.05954 11.1259 6.94575 12.0002 6.94125C12.8739 6.94511 13.7546 7.05954 14.5768 7.28775C16.5401 5.95704 17.4022 6.23346 17.4022 6.23346C17.9621 7.65032 17.6098 8.69625 17.5031 8.95532C18.1627 9.67532 18.5619 10.5933 18.5619 11.7164C18.5619 15.6667 16.1557 16.5365 13.8652 16.7917C14.2342 17.1112 14.5627 17.7368 14.5627 18.6965C14.5627 20.0729 14.5504 21.1805 14.5504 21.5193C14.5504 21.7932 14.7356 22.114 15.2569 22.013C19.3417 20.6515 22.2853 16.7975 22.2853 12.2545C22.2853 6.57354 17.6799 1.96875 11.9996 1.96875Z",fill:t||"#CCCCCC"})})},Et=e=>{let{fill:t,size:n,className:r}=e;return(0,u.jsxs)("svg",{className:r,fill:"none",height:n||"24",viewBox:"0 0 24 24",width:n||"24",xmlns:"http://www.w3.org/2000/svg",children:[(0,u.jsx)("path",{d:"M13.4188 11.8306C13.4188 15.3057 10.6209 18.1227 7.17131 18.1227C3.72172 18.1227 0.923828 15.3036 0.923828 11.8306C0.923828 8.35769 3.72172 5.53857 7.17131 5.53857C10.6209 5.53857 13.4188 8.35557 13.4188 11.8306Z",fill:t||"#CCCCCC"}),(0,u.jsx)("path",{d:"M20.273 11.8307C20.273 15.1019 18.8741 17.7533 17.1482 17.7533C15.4224 17.7533 14.0234 15.1019 14.0234 11.8307C14.0234 8.55937 15.4224 5.90796 17.1482 5.90796C18.8741 5.90796 20.273 8.55937 20.273 11.8307Z",fill:t||"#CCCCCC"}),(0,u.jsx)("path",{d:"M23.0782 11.8306C23.0782 14.7601 22.5857 17.1355 21.9785 17.1355C21.3714 17.1355 20.8789 14.7601 20.8789 11.8306C20.8789 8.90108 21.3714 6.52563 21.9785 6.52563C22.5857 6.52563 23.0782 8.89896 23.0782 11.8306Z",fill:t||"#CCCCCC"})]})},Ct=e=>{let{fill:t,size:n,className:r}=e;return(0,u.jsx)("svg",{className:r,height:n||"24",version:"1.1",viewBox:"0 0 25 24",width:n||"25",xmlns:"http://www.w3.org/2000/svg",children:(0,u.jsx)("path",{d:"M21.1304 18.7457C21.5068 17.5907 23.2704 6.07998 23.4884 3.81182C23.5542 3.12488 23.3371 2.6684 22.9118 2.46463C22.3975 2.21726 21.6358 2.34095 20.7522 2.6595C19.5402 3.09641 4.04667 9.67486 3.15151 10.0557C2.30262 10.4161 1.5 10.8094 1.5 11.3789C1.5 11.7793 1.73758 12.0044 2.39249 12.2384C3.0741 12.4814 4.79056 13.0019 5.80407 13.2813C6.7802 13.5509 7.89159 13.3169 8.51447 12.9298C9.17471 12.5196 16.7943 7.42094 17.3415 6.97425C17.8878 6.52756 18.3239 7.09972 17.8772 7.5473C17.4305 7.99399 12.2001 13.0704 11.5105 13.7734C10.6732 14.6267 11.2676 15.5112 11.8291 15.8653C12.4706 16.2693 17.0843 19.3641 17.7793 19.8606C18.4742 20.3572 19.179 20.5823 19.8241 20.5823C20.4692 20.5823 20.8091 19.7325 21.1304 18.7457Z",fill:t||"#CCCCCC"})})};function _t(e){let{children:t,href:n,...r}=e;return(0,u.jsx)("a",{href:n||"",target:n?.startsWith("http")?"_blank":"_self",...r,children:t})}"undefined"==typeof window||window.location.origin;const Ot=[{label:"Twitter",link:"https://x.com/MorphLayer",img:(e,t)=>(0,u.jsx)(kt,{fill:e,size:t}),log_name:"twitter:_click"},{label:"Discord",link:"https://discord.com/invite/MorphLayer",img:(e,t)=>(0,u.jsx)(St,{fill:e,size:t})},{label:"Medium",link:"https://blog.morphl2.io/",img:(e,t)=>(0,u.jsx)(Et,{fill:e,size:t}),log_name:"medium:_click"},{label:"Telegram",link:"https://t.me/MorphL2official",img:(e,t)=>(0,u.jsx)(Ct,{fill:e,size:t})},{label:"Github",link:"",img:(e,t)=>(0,u.jsx)(xt,{fill:e,size:t})},{label:"LinkedIn",link:"http://www.linkedin.com/company/morphl2",img:(e,t)=>(0,u.jsx)(wt,{fill:e,size:t})}];function At(e){const t=Ot.filter((e=>e.link)).slice(0,e.slice||Ot.length);return(0,u.jsx)("div",{className:mt()("hidden text-b-white",e.className,{[`grid-cols-${t.length}`]:!0}),children:t?.map(((t,n)=>(0,u.jsxs)(_t,{href:t.link||"",className:e.bgClass+" social-link flex justify-center items-center",target:t.link.startsWith("http")?"_blank":"_self",children:[(0,u.jsx)("span",{className:"inline-block w-6 h-6 flex items-center justify-center",children:t.img(e.fill||"",e.size||"24")}),(0,u.jsx)("span",{className:"sr-only ml-3 -mt-1 social-label",children:t.label})]},n)))})}function Tt(e){let{style:t,links:n,logo:r,copyright:o}=e;return(0,u.jsxs)("footer",{className:mt()("footer-bg relative min-h-screen !bg-[#21231C]",{"footer--dark":"dark"===t}),children:[(0,u.jsx)("img",{src:"/lottie/logo-cover.svg",className:"-z-0 absolute bottom-8 xl:bottom-14 right-[5%] w-[97px] h-[97px] text-[#FFFFFF0a]"}),(0,u.jsxs)("div",{className:"flex z-30 flex-col md:flex-row max-w-7xl mx-auto px-4 md:px-0 py-6 md:py-10 md:pt-[100px]",children:[(0,u.jsxs)("div",{className:"order-3 md:order-1 mt-0 md:w-[284px]",children:[(0,u.jsx)("div",{className:"hidden morph-logo w-[160px] h-[25px]"}),(0,u.jsx)(At,{bgClass:"hidden bg-[#ffffff1a] rounded-full",size:"12",className:"mt-6 flex flex-row gap-4"}),(0,u.jsxs)("div",{className:"copy-right mt-3 text-xs text-desc-1",children:["\xa9 ",(new Date).getFullYear()," ",(0,u.jsx)(_t,{href:n.brand,className:"text-desc-1",children:"Morph"}),". All rights reserved"]})]}),(0,u.jsx)("div",{className:"order-1 w-[284px]"}),(0,u.jsx)("div",{className:"order-2 flex-1 justify-end",children:n}),(0,u.jsxs)("p",{className:"order-3 mt-[133px] xl:mt-0 text-left pb-8 xl:pb-0 xl:absolute screen-huge xl:bottom-8 text-[#AEDFE0] leading-[59px] text-[59px] md:leading-[84px] md:text-[84px] xl:leading-[100px] xl:text-[140px] font-bold uppercase font-denim",children:[(0,u.jsx)("p",{className:"animate-up",children:"It\u2019s"}),(0,u.jsx)("p",{className:"animate-up",children:"morphing"}),(0,u.jsx)("p",{className:"animate-up",children:"time!"})]})]})]})}function jt(){const{footer:e}=(0,w.p)();if(!e)return null;const{copyright:t,links:n,logo:r,style:o}=e;return(0,u.jsx)(Tt,{style:o,links:n&&n.length>0&&(0,u.jsx)(pt,{links:n}),logo:r&&(0,u.jsx)(vt,{logo:r}),copyright:t&&(0,u.jsx)(yt,{copyright:t})})}const Lt=r.memo(jt),Pt=(0,L.fM)([F.a,k.oq,j.Tv,Ne.VQ,i.Jx,function(e){let{children:t}=e;return(0,u.jsx)(P.y_,{children:(0,u.jsx)(T.e,{children:(0,u.jsx)(R,{children:t})})})}]);function Dt(e){let{children:t}=e;return(0,u.jsx)(Pt,{children:t})}var Rt=n(2406);function Nt(e){let{error:t,tryAgain:n}=e;return(0,u.jsx)("main",{className:"container margin-vert--xl",children:(0,u.jsx)("div",{className:"row",children:(0,u.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,u.jsx)(Rt.A,{as:"h1",className:"hero__title",children:(0,u.jsx)(l.A,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed",children:"This page crashed."})}),(0,u.jsx)("div",{className:"margin-vert--lg",children:(0,u.jsx)(Ke,{onClick:n,className:"button button--primary shadow--lw"})}),(0,u.jsx)("hr",{}),(0,u.jsx)("div",{className:"margin-vert--md",children:(0,u.jsx)(Qe,{error:t})})]})})})}const It={mainWrapper:"mainWrapper_avmg"};function Mt(e){const{children:t,noFooter:n,wrapperClassName:r,title:s,description:l}=e;return(0,b.J)(),(0,u.jsxs)(Dt,{children:[(0,u.jsx)(i.be,{title:s,description:l}),(0,u.jsx)(y,{}),(0,u.jsx)(A,{}),(0,u.jsx)(ot,{}),(0,u.jsx)("div",{id:d,className:(0,o.A)(g.G.wrapper.main,It.mainWrapper,r),children:(0,u.jsx)(a.A,{fallback:e=>(0,u.jsx)(Nt,{...e}),children:t})}),!n&&(0,u.jsx)(Lt,{})]})}},7350:(e,t,n)=>{"use strict";n.d(t,{A:()=>u});n(758);var r=n(6601),o=n(7838),a=n(6869),i=n(5349),s=n(3958),l=n(6070);function c(e){let{logo:t,alt:n,imageClassName:r}=e;const a={light:(0,o.A)(t.src),dark:(0,o.A)(t.srcDark||t.src)},i=(0,l.jsx)(s.A,{className:t.className,sources:a,height:t.height,width:t.width,alt:n,style:t.style});return r?(0,l.jsx)("div",{className:r,children:i}):i}function u(e){const{siteConfig:{title:t}}=(0,a.A)(),{navbar:{title:n,logo:s}}=(0,i.p)(),{imageClassName:u,titleClassName:d,...p}=e,f=(0,o.A)(s?.href||"/"),m=n?"":t,h=s?.alt??m;return(0,l.jsxs)(r.A,{to:f,...p,...s?.target&&{target:s.target},children:[s&&(0,l.jsx)(c,{logo:s,alt:h,imageClassName:u}),null!=n&&(0,l.jsx)("b",{className:d,children:n})]})}},7740:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});n(758);var r=n(7471),o=n(6070);function a(e){let{locale:t,version:n,tag:a}=e;const i=t;return(0,o.jsxs)(r.A,{children:[t&&(0,o.jsx)("meta",{name:"docusaurus_locale",content:t}),n&&(0,o.jsx)("meta",{name:"docusaurus_version",content:n}),a&&(0,o.jsx)("meta",{name:"docusaurus_tag",content:a}),i&&(0,o.jsx)("meta",{name:"docsearch:language",content:i}),n&&(0,o.jsx)("meta",{name:"docsearch:version",content:n}),a&&(0,o.jsx)("meta",{name:"docsearch:docusaurus_tag",content:a})]})}},3958:(e,t,n)=>{"use strict";n.d(t,{A:()=>u});var r=n(758),o=n(3526),a=n(600),i=n(1478);const s={themedComponent:"themedComponent_WQJe","themedComponent--light":"themedComponent--light_vC8m","themedComponent--dark":"themedComponent--dark_tNlc"};var l=n(6070);function c(e){let{className:t,children:n}=e;const c=(0,a.A)(),{colorMode:u}=(0,i.G)();return(0,l.jsx)(l.Fragment,{children:(c?"dark"===u?["dark"]:["light"]:["light","dark"]).map((e=>{const a=n({theme:e,className:(0,o.A)(t,s.themedComponent,s[`themedComponent--${e}`])});return(0,l.jsx)(r.Fragment,{children:a},e)}))})}function u(e){const{sources:t,className:n,alt:r,...o}=e;return(0,l.jsx)(c,{className:n,children:e=>{let{theme:n,className:a}=e;return(0,l.jsx)("img",{src:t[n],alt:r,className:a,...o})}})}},1069:(e,t,n)=>{"use strict";n.d(t,{N:()=>b,u:()=>c});var r=n(758),o=n(3782),a=n(7132),i=n(3542),s=n(6070);const l="ease-in-out";function c(e){let{initialState:t}=e;const[n,o]=(0,r.useState)(t??!1),a=(0,r.useCallback)((()=>{o((e=>!e))}),[]);return{collapsed:n,setCollapsed:o,toggleCollapsed:a}}const u={display:"none",overflow:"hidden",height:"0px"},d={display:"block",overflow:"visible",height:"auto"};function p(e,t){const n=t?u:d;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function f(e){let{collapsibleRef:t,collapsed:n,animation:o}=e;const a=(0,r.useRef)(!1);(0,r.useEffect)((()=>{const e=t.current;function r(){const t=e.scrollHeight,n=o?.duration??function(e){if((0,i.O)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${o?.easing??l}`,height:`${t}px`}}function s(){const t=r();e.style.transition=t.transition,e.style.height=t.height}if(!a.current)return p(e,n),void(a.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(s(),requestAnimationFrame((()=>{e.style.height=u.height,e.style.overflow=u.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{s()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,o])}function m(e){if(!o.A.canUseDOM)return e?u:d}function h(e){let{as:t="div",collapsed:n,children:o,animation:a,onCollapseTransitionEnd:i,className:l,disableSSRStyle:c}=e;const u=(0,r.useRef)(null);return f({collapsibleRef:u,collapsed:n,animation:a}),(0,s.jsx)(t,{ref:u,style:c?void 0:m(n),onTransitionEnd:e=>{"height"===e.propertyName&&(p(u.current,n),i?.(n))},className:l,children:o})}function g(e){let{collapsed:t,...n}=e;const[o,i]=(0,r.useState)(!t),[l,c]=(0,r.useState)(t);return(0,a.A)((()=>{t||i(!0)}),[t]),(0,a.A)((()=>{o&&c(t)}),[o,t]),o?(0,s.jsx)(h,{...n,collapsed:l}):null}function b(e){let{lazy:t,...n}=e;const r=t?g:h;return(0,s.jsx)(r,{...n})}},746:(e,t,n)=>{"use strict";n.d(t,{Mj:()=>h,oq:()=>m});var r=n(758),o=n(600),a=n(9837),i=n(3991),s=n(5349),l=n(6070);const c=(0,a.Wf)("docusaurus.announcement.dismiss"),u=(0,a.Wf)("docusaurus.announcement.id"),d=()=>"true"===c.get(),p=e=>c.set(String(e)),f=r.createContext(null);function m(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,s.p)(),t=(0,o.A)(),[n,a]=(0,r.useState)((()=>!!t&&d()));(0,r.useEffect)((()=>{a(d())}),[]);const i=(0,r.useCallback)((()=>{p(!0),a(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=u.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;u.set(t),r&&p(!1),!r&&d()||a(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return(0,l.jsx)(f.Provider,{value:n,children:t})}function h(){const e=(0,r.useContext)(f);if(!e)throw new i.dV("AnnouncementBarProvider");return e}},1478:(e,t,n)=>{"use strict";n.d(t,{G:()=>b,a:()=>g});var r=n(758),o=n(3782),a=n(3991),i=n(9837),s=n(5349),l=n(6070);const c=r.createContext(void 0),u="theme",d=(0,i.Wf)(u),p={light:"light",dark:"dark"},f=e=>e===p.dark?p.dark:p.light,m=e=>o.A.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e),h=e=>{d.set(f(e))};function g(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,s.p)(),[o,a]=(0,r.useState)(m(e));(0,r.useEffect)((()=>{t&&d.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:o=!0}=r;t?(a(t),o&&h(t)):(a(n?window.matchMedia("(prefers-color-scheme: dark)").matches?p.dark:p.light:e),d.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",f(o))}),[o]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==u)return;const t=d.get();null!==t&&i(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const l=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||l.current?l.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:o,setColorMode:i,get isDarkTheme(){return o===p.dark},setLightTheme(){i(p.light)},setDarkTheme(){i(p.dark)}})),[o,i])}();return(0,l.jsx)(c.Provider,{value:n,children:t})}function b(){const e=(0,r.useContext)(c);if(null==e)throw new a.dV("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},3636:(e,t,n)=>{"use strict";n.d(t,{VQ:()=>b,XK:()=>w,g1:()=>y});var r=n(758),o=n(9612),a=n(8372),i=n(5349),s=n(3745),l=n(3991),c=n(9837),u=n(6070);const d=e=>`docs-preferred-version-${e}`,p={save:(e,t,n)=>{(0,c.Wf)(d(e),{persistence:t}).set(n)},read:(e,t)=>(0,c.Wf)(d(e),{persistence:t}).get(),clear:(e,t)=>{(0,c.Wf)(d(e),{persistence:t}).del()}},f=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const m=r.createContext(null);function h(){const e=(0,o.Gy)(),t=(0,i.p)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[a,s]=(0,r.useState)((()=>f(n)));(0,r.useEffect)((()=>{s(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function o(e){const t=p.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(p.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,o(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[a,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){p.save(e,t,n),s((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function g(e){let{children:t}=e;const n=h();return(0,u.jsx)(m.Provider,{value:n,children:t})}function b(e){let{children:t}=e;return s.C5?(0,u.jsx)(g,{children:t}):(0,u.jsx)(u.Fragment,{children:t})}function v(){const e=(0,r.useContext)(m);if(!e)throw new l.dV("DocsPreferredVersionContextProvider");return e}function y(e){void 0===e&&(e=a.W);const t=(0,o.ht)(e),[n,i]=v(),{preferredVersionName:s}=n[e];return{preferredVersion:t.versions.find((e=>e.name===s))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}function w(){const e=(0,o.Gy)(),[t]=v();function n(n){const r=e[n],{preferredVersionName:o}=t[n];return r.versions.find((e=>e.name===o))??null}const r=Object.keys(e);return Object.fromEntries(r.map((e=>[e,n(e)])))}},9387:(e,t,n)=>{"use strict";n.d(t,{V:()=>l,t:()=>c});var r=n(758),o=n(3991),a=n(6070);const i=Symbol("EmptyContext"),s=r.createContext(i);function l(e){let{children:t,name:n,items:o}=e;const i=(0,r.useMemo)((()=>n&&o?{name:n,items:o}:null),[n,o]);return(0,a.jsx)(s.Provider,{value:i,children:t})}function c(){const e=(0,r.useContext)(s);if(e===i)throw new o.dV("DocsSidebarProvider");return e}},4451:(e,t,n)=>{"use strict";n.d(t,{n:()=>s,r:()=>l});var r=n(758),o=n(3991),a=n(6070);const i=r.createContext(null);function s(e){let{children:t,version:n}=e;return(0,a.jsx)(i.Provider,{value:n,children:t})}function l(){const e=(0,r.useContext)(i);if(null===e)throw new o.dV("DocsVersionProvider");return e}},8058:(e,t,n)=>{"use strict";n.d(t,{M:()=>f,e:()=>p});var r=n(758),o=n(5955),a=n(8080),i=n(9878),s=n(5349),l=n(3991),c=n(6070);const u=r.createContext(void 0);function d(){const e=function(){const e=(0,o.YL)(),{items:t}=(0,s.p)().navbar;return 0===t.length&&!e.component}(),t=(0,a.l)(),n=!e&&"mobile"===t,[l,c]=(0,r.useState)(!1);(0,i.$Z)((()=>{if(l)return c(!1),!1}));const u=(0,r.useCallback)((()=>{c((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&c(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:u,shown:l})),[e,n,u,l])}function p(e){let{children:t}=e;const n=d();return(0,c.jsx)(u.Provider,{value:n,children:t})}function f(){const e=r.useContext(u);if(void 0===e)throw new l.dV("NavbarMobileSidebarProvider");return e}},5955:(e,t,n)=>{"use strict";n.d(t,{GX:()=>c,YL:()=>l,y_:()=>s});var r=n(758),o=n(3991),a=n(6070);const i=r.createContext(null);function s(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return(0,a.jsx)(i.Provider,{value:n,children:t})}function l(){const e=(0,r.useContext)(i);if(!e)throw new o.dV("NavbarSecondaryMenuContentProvider");return e[0]}function c(e){let{component:t,props:n}=e;const a=(0,r.useContext)(i);if(!a)throw new o.dV("NavbarSecondaryMenuContentProvider");const[,s]=a,l=(0,o.Be)(n);return(0,r.useEffect)((()=>{s({component:t,props:l})}),[s,t,l]),(0,r.useEffect)((()=>()=>s({component:null,props:null})),[s]),null}},6906:(e,t,n)=>{"use strict";n.d(t,{w:()=>o,J:()=>a});var r=n(758);const o="navigation-with-keyboard";function a(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(o),"mousedown"===e.type&&document.body.classList.remove(o)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(o),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},7038:(e,t,n)=>{"use strict";n.d(t,{b:()=>s,w:()=>l});var r=n(758),o=n(6869),a=n(9878);const i="q";function s(){return(0,a.l)(i)}function l(){const{siteConfig:{baseUrl:e,themeConfig:t}}=(0,o.A)(),{algolia:{searchPagePath:n}}=t;return(0,r.useCallback)((t=>`${e}${n}?${i}=${encodeURIComponent(t)}`),[e,n])}},8080:(e,t,n)=>{"use strict";n.d(t,{l:()=>s});var r=n(758),o=n(3782);const a={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function s(e){let{desktopBreakpoint:t=i}=void 0===e?{}:e;const[n,s]=(0,r.useState)((()=>"ssr"));return(0,r.useEffect)((()=>{function e(){s(function(e){if(!o.A.canUseDOM)throw new Error("getWindowSize() should only be called after React hydration");return window.innerWidth>e?a.desktop:a.mobile}(t))}return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}),[t]),n}},7998:(e,t,n)=>{"use strict";n.d(t,{G:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",unlistedBanner:"theme-unlisted-banner",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}}},3542:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{O:()=>r})},3745:(e,t,n)=>{"use strict";n.d(t,{Nr:()=>f,w8:()=>g,C5:()=>p,B5:()=>E,Vd:()=>k,QB:()=>x,fW:()=>S,OF:()=>w,Y:()=>v});var r=n(758),o=n(5557),a=n(1977),i=n(9612),s=n(3636),l=n(4451),c=n(9387);function u(e){return Array.from(new Set(e))}var d=n(8492);const p=!!i.Gy;function f(e){return"link"!==e.type||e.unlisted?"category"===e.type?function(e){if(e.href&&!e.linkUnlisted)return e.href;for(const t of e.items){const e=f(t);if(e)return e}}(e):void 0:e.href}const m=(e,t)=>void 0!==e&&(0,d.ys)(e,t),h=(e,t)=>e.some((e=>g(e,t)));function g(e,t){return"link"===e.type?m(e.href,t):"category"===e.type&&(m(e.href,t)||h(e.items,t))}function b(e,t){switch(e.type){case"category":return g(e,t)||e.items.some((e=>b(e,t)));case"link":return!e.unlisted||g(e,t);default:return!0}}function v(e,t){return(0,r.useMemo)((()=>e.filter((e=>b(e,t)))),[e,t])}function y(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const o=[];return function e(t){for(const a of t)if("category"===a.type&&((0,d.ys)(a.href,n)||e(a.items))||"link"===a.type&&(0,d.ys)(a.href,n)){return r&&"category"!==a.type||o.unshift(a),!0}return!1}(t),o}function w(){const e=(0,c.t)(),{pathname:t}=(0,o.zy)(),n=(0,i.vT)()?.pluginData.breadcrumbs;return!1!==n&&e?y({sidebarItems:e.items,pathname:t}):null}function k(e){const{activeVersion:t}=(0,i.zK)(e),{preferredVersion:n}=(0,s.g1)(e),o=(0,i.r7)(e);return(0,r.useMemo)((()=>u([t,n,o].filter(Boolean))),[t,n,o])}function S(e,t){const n=k(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${t.map((e=>e[0])).join("\n- ")}`);return r[1]}),[e,n])}function x(e,t){const n=k(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${u(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function E(e){let{route:t}=e;const n=(0,o.zy)(),r=(0,l.r)(),i=t.routes,s=i.find((e=>(0,o.B6)(n.pathname,e)));if(!s)return null;const c=s.sidebar,u=c?r.docsSidebars[c]:void 0;return{docElement:(0,a.v)(i),sidebarName:c,sidebarItems:u}}},8318:(e,t,n)=>{"use strict";n.d(t,{s:()=>o});var r=n(6869);function o(e){const{siteConfig:t}=(0,r.A)(),{title:n,titleDelimiter:o}=t;return e?.trim().length?`${e.trim()} ${o} ${n}`:n}},9878:(e,t,n)=>{"use strict";n.d(t,{$Z:()=>i,l:()=>l});var r=n(758),o=n(5557),a=n(3991);function i(e){!function(e){const t=(0,o.W6)(),n=(0,a._q)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}function s(e){return function(e){const t=(0,o.W6)();return(0,r.useSyncExternalStore)(t.listen,(()=>e(t)),(()=>e(t)))}((t=>null===e?null:new URLSearchParams(t.location.search).get(e)))}function l(e){const t=s(e)??"",n=function(){const e=(0,o.W6)();return(0,r.useCallback)(((t,n,r)=>{const o=new URLSearchParams(e.location.search);n?o.set(t,n):o.delete(t),(r?.push?e.push:e.replace)({search:o.toString()})}),[e])}();return[t,(0,r.useCallback)(((t,r)=>{n(e,t,r)}),[n,e])]}},926:(e,t,n)=>{"use strict";n.d(t,{e3:()=>f,be:()=>d,Jx:()=>m});var r=n(758),o=n(3526),a=n(7471),i=n(5353);function s(){const e=r.useContext(i.o);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var l=n(7838),c=n(8318),u=n(6070);function d(e){let{title:t,description:n,keywords:r,image:o,children:i}=e;const s=(0,c.s)(t),{withBaseUrl:d}=(0,l.h)(),p=o?d(o,{absolute:!0}):void 0;return(0,u.jsxs)(a.A,{children:[t&&(0,u.jsx)("title",{children:s}),t&&(0,u.jsx)("meta",{property:"og:title",content:s}),n&&(0,u.jsx)("meta",{name:"description",content:n}),n&&(0,u.jsx)("meta",{property:"og:description",content:n}),r&&(0,u.jsx)("meta",{name:"keywords",content:Array.isArray(r)?r.join(","):r}),p&&(0,u.jsx)("meta",{property:"og:image",content:p}),p&&(0,u.jsx)("meta",{name:"twitter:image",content:p}),i]})}const p=r.createContext(void 0);function f(e){let{className:t,children:n}=e;const i=r.useContext(p),s=(0,o.A)(i,t);return(0,u.jsxs)(p.Provider,{value:s,children:[(0,u.jsx)(a.A,{children:(0,u.jsx)("html",{className:s})}),n]})}function m(e){let{children:t}=e;const n=s(),r=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const a=`plugin-id-${n.plugin.id}`;return(0,u.jsx)(f,{className:(0,o.A)(r,a),children:t})}},3991:(e,t,n)=>{"use strict";n.d(t,{Be:()=>c,ZC:()=>s,_q:()=>i,dV:()=>l,fM:()=>u});var r=n(758),o=n(7132),a=n(6070);function i(e){const t=(0,r.useRef)(e);return(0,o.A)((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function s(e){const t=(0,r.useRef)();return(0,o.A)((()=>{t.current=e})),t.current}class l extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?<name>\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function c(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function u(e){return t=>{let{children:n}=t;return(0,a.jsx)(a.Fragment,{children:e.reduceRight(((e,t)=>(0,a.jsx)(t,{children:e})),n)})}}},7473:(e,t,n)=>{"use strict";function r(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}n.d(t,{G:()=>r})},8492:(e,t,n)=>{"use strict";n.d(t,{Dt:()=>s,ys:()=>i});var r=n(758),o=n(9625),a=n(6869);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function s(){const{baseUrl:e}=(0,a.A)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function o(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(o).flatMap((e=>e.routes??[])))}(n)}({routes:o.A,baseUrl:e})),[e])}},1773:(e,t,n)=>{"use strict";n.d(t,{Mq:()=>p,Tv:()=>c,gk:()=>f});var r=n(758),o=n(3782),a=n(600),i=(n(7132),n(3991)),s=n(6070);const l=r.createContext(void 0);function c(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return(0,s.jsx)(l.Provider,{value:n,children:t})}function u(){const e=(0,r.useContext)(l);if(null==e)throw new i.dV("ScrollControllerProvider");return e}const d=()=>o.A.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function p(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=u(),o=(0,r.useRef)(d()),a=(0,i._q)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=d();a(e,o.current),o.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[a,n,...t])}function f(){const e=(0,r.useRef)(null),t=(0,a.A)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const o=document.documentElement.scrollTop;(n&&o>e||!n&&o<e)&&(t=requestAnimationFrame(r),window.scrollTo(0,Math.floor(.85*(o-e))+e))}(),()=>t&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},3330:(e,t,n)=>{"use strict";n.d(t,{Cy:()=>i,af:()=>l,tU:()=>s});var r=n(9612),o=n(6869),a=n(3636);const i="default";function s(e,t){return`docs-${e}-${t}`}function l(){const{i18n:e}=(0,o.A)(),t=(0,r.Gy)(),n=(0,r.gk)(),l=(0,a.XK)();const c=[i,...Object.keys(t).map((function(e){const r=n?.activePlugin.pluginId===e?n.activeVersion:void 0,o=l[e],a=t[e].versions.find((e=>e.isLast));return s(e,(r??o??a).name)}))];return{locale:e.currentLocale,tags:c}}},9837:(e,t,n)=>{"use strict";n.d(t,{Wf:()=>l});n(758);const r="localStorage";function o(e){let{key:t,oldValue:n,newValue:r,storage:o}=e;if(n===r)return;const a=document.createEvent("StorageEvent");a.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,o),window.dispatchEvent(a)}function a(e){if(void 0===e&&(e=r),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,i||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),i=!0),null}var t}let i=!1;const s={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function l(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(e);const n=a(t?.persistence);return null===n?s:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{const r=n.getItem(e);n.setItem(e,t),o({key:e,oldValue:r,newValue:t,storage:n})}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{const t=n.getItem(e);n.removeItem(e),o({key:e,oldValue:t,newValue:null,storage:n})}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}},listen:t=>{try{const r=r=>{r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),()=>window.removeEventListener("storage",r)}catch(r){return console.error(`Docusaurus storage error, can't listen for changes of key=${e}`,r),()=>{}}}}}},282:(e,t,n)=>{"use strict";n.d(t,{o:()=>i});var r=n(6869),o=n(5557),a=n(4932);function i(){const{siteConfig:{baseUrl:e,url:t,trailingSlash:n},i18n:{defaultLocale:i,currentLocale:s}}=(0,r.A)(),{pathname:l}=(0,o.zy)(),c=(0,a.applyTrailingSlash)(l,{trailingSlash:n,baseUrl:e}),u=s===i?e:e.replace(`/${s}/`,"/"),d=c.replace(e,"");return{createUrl:function(e){let{locale:n,fullyQualified:r}=e;return`${r?t:""}${function(e){return e===i?`${u}`:`${u}${e}/`}(n)}${d}`}}}},9691:(e,t,n)=>{"use strict";n.d(t,{$:()=>i});var r=n(758),o=n(5557),a=n(3991);function i(e){const t=(0,o.zy)(),n=(0,a.ZC)(t),i=(0,a._q)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},5349:(e,t,n)=>{"use strict";n.d(t,{p:()=>o});var r=n(6869);function o(){return(0,r.A)().siteConfig.themeConfig}},2022:(e,t,n)=>{"use strict";n.d(t,{c:()=>o});var r=n(6869);function o(){const{siteConfig:{themeConfig:e}}=(0,r.A)();return e}},1886:(e,t,n)=>{"use strict";n.d(t,{C:()=>s});var r=n(758),o=n(7473),a=n(7838),i=n(2022);function s(){const{withBaseUrl:e}=(0,a.h)(),{algolia:{externalUrlRegex:t,replaceSearchResultPathname:n}}=(0,i.c)();return(0,r.useCallback)((r=>{const a=new URL(r);if((0,o.G)(t,a.href))return r;const i=`${a.pathname+a.hash}`;return e(function(e,t){return t?e.replaceAll(new RegExp(t.from,"g"),t.to):e}(i,n))}),[e,t,n])}},7379:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[o]=e.split(/[#?]/),a="/"===o||o===r?o:(i=o,n?function(e){return e.endsWith("/")?e:`${e}/`}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(o,a)}},5873:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},4932:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var o=n(7379);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(o).default}});var a=n(5873);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return a.getErrorCausalChain}})},8602:(e,t,n)=>{"use strict";n.d(t,{zR:()=>x,TM:()=>T,yJ:()=>h,sC:()=>L,AO:()=>m,Fu:()=>g});var r=n(5890);function o(e){return"/"===e.charAt(0)}function a(e,t){for(var n=t,r=n+1,o=e.length;r<o;n+=1,r+=1)e[n]=e[r];e.pop()}const i=function(e,t){void 0===t&&(t="");var n,r=e&&e.split("/")||[],i=t&&t.split("/")||[],s=e&&o(e),l=t&&o(t),c=s||l;if(e&&o(e)?i=r:r.length&&(i.pop(),i=i.concat(r)),!i.length)return"/";if(i.length){var u=i[i.length-1];n="."===u||".."===u||""===u}else n=!1;for(var d=0,p=i.length;p>=0;p--){var f=i[p];"."===f?a(i,p):".."===f?(a(i,p),d++):d&&(a(i,p),d--)}if(!c)for(;d--;d)i.unshift("..");!c||""===i[0]||i[0]&&o(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};function s(e){return e.valueOf?e.valueOf():Object.prototype.valueOf.call(e)}const l=function e(t,n){if(t===n)return!0;if(null==t||null==n)return!1;if(Array.isArray(t))return Array.isArray(n)&&t.length===n.length&&t.every((function(t,r){return e(t,n[r])}));if("object"==typeof t||"object"==typeof n){var r=s(t),o=s(n);return r!==t||o!==n?e(r,o):Object.keys(Object.assign({},t,n)).every((function(r){return e(t[r],n[r])}))}return!1};var c=n(5385);function u(e){return"/"===e.charAt(0)?e:"/"+e}function d(e){return"/"===e.charAt(0)?e.substr(1):e}function p(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function f(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function m(e){var t=e.pathname,n=e.search,r=e.hash,o=t||"/";return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o}function h(e,t,n,o){var a;"string"==typeof e?(a=function(e){var t=e||"/",n="",r="",o=t.indexOf("#");-1!==o&&(r=t.substr(o),t=t.substr(0,o));var a=t.indexOf("?");return-1!==a&&(n=t.substr(a),t=t.substr(0,a)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),a.state=t):(void 0===(a=(0,r.A)({},e)).pathname&&(a.pathname=""),a.search?"?"!==a.search.charAt(0)&&(a.search="?"+a.search):a.search="",a.hash?"#"!==a.hash.charAt(0)&&(a.hash="#"+a.hash):a.hash="",void 0!==t&&void 0===a.state&&(a.state=t));try{a.pathname=decodeURI(a.pathname)}catch(s){throw s instanceof URIError?new URIError('Pathname "'+a.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):s}return n&&(a.key=n),o?a.pathname?"/"!==a.pathname.charAt(0)&&(a.pathname=i(a.pathname,o.pathname)):a.pathname=o.pathname:a.pathname||(a.pathname="/"),a}function g(e,t){return e.pathname===t.pathname&&e.search===t.search&&e.hash===t.hash&&e.key===t.key&&l(e.state,t.state)}function b(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,o){if(null!=e){var a="function"==typeof e?e(t,n):e;"string"==typeof a?"function"==typeof r?r(a,o):o(!0):o(!1!==a)}else o(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];t.forEach((function(e){return e.apply(void 0,n)}))}}}var v=!("undefined"==typeof window||!window.document||!window.document.createElement);function y(e,t){t(window.confirm(e))}var w="popstate",k="hashchange";function S(){try{return window.history.state||{}}catch(e){return{}}}function x(e){void 0===e&&(e={}),v||(0,c.A)(!1);var t,n=window.history,o=(-1===(t=window.navigator.userAgent).indexOf("Android 2.")&&-1===t.indexOf("Android 4.0")||-1===t.indexOf("Mobile Safari")||-1!==t.indexOf("Chrome")||-1!==t.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history,a=!(-1===window.navigator.userAgent.indexOf("Trident")),i=e,s=i.forceRefresh,l=void 0!==s&&s,d=i.getUserConfirmation,g=void 0===d?y:d,x=i.keyLength,E=void 0===x?6:x,C=e.basename?f(u(e.basename)):"";function _(e){var t=e||{},n=t.key,r=t.state,o=window.location,a=o.pathname+o.search+o.hash;return C&&(a=p(a,C)),h(a,r,n)}function O(){return Math.random().toString(36).substr(2,E)}var A=b();function T(e){(0,r.A)(U,e),U.length=n.length,A.notifyListeners(U.location,U.action)}function j(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||D(_(e.state))}function L(){D(_(S()))}var P=!1;function D(e){if(P)P=!1,T();else{A.confirmTransitionTo(e,"POP",g,(function(t){t?T({action:"POP",location:e}):function(e){var t=U.location,n=N.indexOf(t.key);-1===n&&(n=0);var r=N.indexOf(e.key);-1===r&&(r=0);var o=n-r;o&&(P=!0,M(o))}(e)}))}}var R=_(S()),N=[R.key];function I(e){return C+m(e)}function M(e){n.go(e)}var F=0;function B(e){1===(F+=e)&&1===e?(window.addEventListener(w,j),a&&window.addEventListener(k,L)):0===F&&(window.removeEventListener(w,j),a&&window.removeEventListener(k,L))}var z=!1;var U={length:n.length,action:"POP",location:R,createHref:I,push:function(e,t){var r="PUSH",a=h(e,t,O(),U.location);A.confirmTransitionTo(a,r,g,(function(e){if(e){var t=I(a),i=a.key,s=a.state;if(o)if(n.pushState({key:i,state:s},null,t),l)window.location.href=t;else{var c=N.indexOf(U.location.key),u=N.slice(0,c+1);u.push(a.key),N=u,T({action:r,location:a})}else window.location.href=t}}))},replace:function(e,t){var r="REPLACE",a=h(e,t,O(),U.location);A.confirmTransitionTo(a,r,g,(function(e){if(e){var t=I(a),i=a.key,s=a.state;if(o)if(n.replaceState({key:i,state:s},null,t),l)window.location.replace(t);else{var c=N.indexOf(U.location.key);-1!==c&&(N[c]=a.key),T({action:r,location:a})}else window.location.replace(t)}}))},go:M,goBack:function(){M(-1)},goForward:function(){M(1)},block:function(e){void 0===e&&(e=!1);var t=A.setPrompt(e);return z||(B(1),z=!0),function(){return z&&(z=!1,B(-1)),t()}},listen:function(e){var t=A.appendListener(e);return B(1),function(){B(-1),t()}}};return U}var E="hashchange",C={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+d(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:d,decodePath:u},slash:{encodePath:u,decodePath:u}};function _(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function O(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function A(e){window.location.replace(_(window.location.href)+"#"+e)}function T(e){void 0===e&&(e={}),v||(0,c.A)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),o=n.getUserConfirmation,a=void 0===o?y:o,i=n.hashType,s=void 0===i?"slash":i,l=e.basename?f(u(e.basename)):"",d=C[s],g=d.encodePath,w=d.decodePath;function k(){var e=w(O());return l&&(e=p(e,l)),h(e)}var S=b();function x(e){(0,r.A)(z,e),z.length=t.length,S.notifyListeners(z.location,z.action)}var T=!1,j=null;function L(){var e,t,n=O(),r=g(n);if(n!==r)A(r);else{var o=k(),i=z.location;if(!T&&(t=o,(e=i).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(j===m(o))return;j=null,function(e){if(T)T=!1,x();else{var t="POP";S.confirmTransitionTo(e,t,a,(function(n){n?x({action:t,location:e}):function(e){var t=z.location,n=N.lastIndexOf(m(t));-1===n&&(n=0);var r=N.lastIndexOf(m(e));-1===r&&(r=0);var o=n-r;o&&(T=!0,I(o))}(e)}))}}(o)}}var P=O(),D=g(P);P!==D&&A(D);var R=k(),N=[m(R)];function I(e){t.go(e)}var M=0;function F(e){1===(M+=e)&&1===e?window.addEventListener(E,L):0===M&&window.removeEventListener(E,L)}var B=!1;var z={length:t.length,action:"POP",location:R,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=_(window.location.href)),n+"#"+g(l+m(e))},push:function(e,t){var n="PUSH",r=h(e,void 0,void 0,z.location);S.confirmTransitionTo(r,n,a,(function(e){if(e){var t=m(r),o=g(l+t);if(O()!==o){j=t,function(e){window.location.hash=e}(o);var a=N.lastIndexOf(m(z.location)),i=N.slice(0,a+1);i.push(t),N=i,x({action:n,location:r})}else x()}}))},replace:function(e,t){var n="REPLACE",r=h(e,void 0,void 0,z.location);S.confirmTransitionTo(r,n,a,(function(e){if(e){var t=m(r),o=g(l+t);O()!==o&&(j=t,A(o));var a=N.indexOf(m(z.location));-1!==a&&(N[a]=t),x({action:n,location:r})}}))},go:I,goBack:function(){I(-1)},goForward:function(){I(1)},block:function(e){void 0===e&&(e=!1);var t=S.setPrompt(e);return B||(F(1),B=!0),function(){return B&&(B=!1,F(-1)),t()}},listen:function(e){var t=S.appendListener(e);return F(1),function(){F(-1),t()}}};return z}function j(e,t,n){return Math.min(Math.max(e,t),n)}function L(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,o=t.initialEntries,a=void 0===o?["/"]:o,i=t.initialIndex,s=void 0===i?0:i,l=t.keyLength,c=void 0===l?6:l,u=b();function d(e){(0,r.A)(w,e),w.length=w.entries.length,u.notifyListeners(w.location,w.action)}function p(){return Math.random().toString(36).substr(2,c)}var f=j(s,0,a.length-1),g=a.map((function(e){return h(e,void 0,"string"==typeof e?p():e.key||p())})),v=m;function y(e){var t=j(w.index+e,0,w.entries.length-1),r=w.entries[t];u.confirmTransitionTo(r,"POP",n,(function(e){e?d({action:"POP",location:r,index:t}):d()}))}var w={length:g.length,action:"POP",location:g[f],index:f,entries:g,createHref:v,push:function(e,t){var r="PUSH",o=h(e,t,p(),w.location);u.confirmTransitionTo(o,r,n,(function(e){if(e){var t=w.index+1,n=w.entries.slice(0);n.length>t?n.splice(t,n.length-t,o):n.push(o),d({action:r,location:o,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",o=h(e,t,p(),w.location);u.confirmTransitionTo(o,r,n,(function(e){e&&(w.entries[w.index]=o,d({action:r,location:o}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=w.index+e;return t>=0&&t<w.entries.length},block:function(e){return void 0===e&&(e=!1),u.setPrompt(e)},listen:function(e){return u.appendListener(e)}};return w}},1035:(e,t,n)=>{"use strict";var r=n(5959),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function l(e){return r.isMemo(e)?i:s[e.$$typeof]||o}s[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[r.Memo]=i;var c=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var o=f(n);o&&o!==m&&e(t,o,r)}var i=u(n);d&&(i=i.concat(d(n)));for(var s=l(t),h=l(n),g=0;g<i.length;++g){var b=i[g];if(!(a[b]||r&&r[b]||h&&h[b]||s&&s[b])){var v=p(n,b);try{c(t,b,v)}catch(y){}}}}return t}},9597:e=>{"use strict";e.exports=function(e,t,n,r,o,a,i,s){if(!e){var l;if(void 0===t)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,o,a,i,s],u=0;(l=new Error(t.replace(/%s/g,(function(){return c[u++]})))).name="Invariant Violation"}throw l.framesToPop=1,l}}},5526:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},700:(e,t,n)=>{"use strict";n.r(t)},3331:(e,t,n)=>{"use strict";n.r(t)},3396:(e,t,n)=>{"use strict";n.r(t)},8744:function(e,t,n){var r,o;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function o(e,t,n){return e<t?t:e>n?n:e}function a(e){return 100*(-1+e)}function i(e,t,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+a(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+a(e)+"%,0)"}:{"margin-left":a(e)+"%"}).transition="all "+t+"ms "+n,o}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=o(e,r.minimum,1),n.status=1===e?null:e;var a=n.render(!t),c=a.querySelector(r.barSelector),u=r.speed,d=r.easing;return a.offsetWidth,s((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),l(c,i(e,u,d)),1===e?(l(a,{transition:"none",opacity:1}),a.offsetWidth,setTimeout((function(){l(a,{transition:"all "+u+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),u)}),u)):setTimeout(t,u)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*o(Math.random()*t,.1,.95)),t=o(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var o,i=t.querySelector(r.barSelector),s=e?"-100":a(n.status||0),c=document.querySelector(r.parent);return l(i,{transition:"all 0 linear",transform:"translate3d("+s+"%,0,0)"}),r.showSpinner||(o=t.querySelector(r.spinnerSelector))&&f(o),c!=document.body&&u(c,"nprogress-custom-parent"),c.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var s=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),l=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,o=e.length,a=t.charAt(0).toUpperCase()+t.slice(1);o--;)if((r=e[o]+a)in n)return r;return t}function o(e){return e=n(e),t[e]||(t[e]=r(e))}function a(e,t,n){t=o(t),e.style[t]=n}return function(e,t){var n,r,o=arguments;if(2==o.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&a(e,n,r);else a(e,o[1],o[2])}}();function c(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=p(e),r=n+t;c(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);c(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(o="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=o)},4785:(e,t,n)=>{var r=n(5526);e.exports=m,e.exports.parse=a,e.exports.compile=function(e,t){return l(a(e,t),t)},e.exports.tokensToFunction=l,e.exports.tokensToRegExp=f;var o=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function a(e,t){for(var n,r=[],a=0,s=0,l="",c=t&&t.delimiter||"/";null!=(n=o.exec(e));){var d=n[0],p=n[1],f=n.index;if(l+=e.slice(s,f),s=f+d.length,p)l+=p[1];else{var m=e[s],h=n[2],g=n[3],b=n[4],v=n[5],y=n[6],w=n[7];l&&(r.push(l),l="");var k=null!=h&&null!=m&&m!==h,S="+"===y||"*"===y,x="?"===y||"*"===y,E=h||c,C=b||v,_=h||("string"==typeof r[r.length-1]?r[r.length-1]:"");r.push({name:g||a++,prefix:h||"",delimiter:E,optional:x,repeat:S,partial:k,asterisk:!!w,pattern:C?u(C):w?".*":i(E,_)})}}return s<e.length&&(l+=e.substr(s)),l&&r.push(l),r}function i(e,t){return!t||t.indexOf(e)>-1?"[^"+c(e)+"]+?":c(t)+"|(?:(?!"+c(t)+")[^"+c(e)+"])+?"}function s(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function l(e,t){for(var n=new Array(e.length),o=0;o<e.length;o++)"object"==typeof e[o]&&(n[o]=new RegExp("^(?:"+e[o].pattern+")$",p(t)));return function(t,o){for(var a="",i=t||{},l=(o||{}).pretty?s:encodeURIComponent,c=0;c<e.length;c++){var u=e[c];if("string"!=typeof u){var d,p=i[u.name];if(null==p){if(u.optional){u.partial&&(a+=u.prefix);continue}throw new TypeError('Expected "'+u.name+'" to be defined')}if(r(p)){if(!u.repeat)throw new TypeError('Expected "'+u.name+'" to not repeat, but received `'+JSON.stringify(p)+"`");if(0===p.length){if(u.optional)continue;throw new TypeError('Expected "'+u.name+'" to not be empty')}for(var f=0;f<p.length;f++){if(d=l(p[f]),!n[c].test(d))throw new TypeError('Expected all "'+u.name+'" to match "'+u.pattern+'", but received `'+JSON.stringify(d)+"`");a+=(0===f?u.prefix:u.delimiter)+d}}else{if(d=u.asterisk?encodeURI(p).replace(/[?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})):l(p),!n[c].test(d))throw new TypeError('Expected "'+u.name+'" to match "'+u.pattern+'", but received "'+d+'"');a+=u.prefix+d}}else a+=u}return a}}function c(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function u(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function d(e,t){return e.keys=t,e}function p(e){return e&&e.sensitive?"":"i"}function f(e,t,n){r(t)||(n=t||n,t=[]);for(var o=(n=n||{}).strict,a=!1!==n.end,i="",s=0;s<e.length;s++){var l=e[s];if("string"==typeof l)i+=c(l);else{var u=c(l.prefix),f="(?:"+l.pattern+")";t.push(l),l.repeat&&(f+="(?:"+u+f+")*"),i+=f=l.optional?l.partial?u+"("+f+")?":"(?:"+u+"("+f+"))?":u+"("+f+")"}}var m=c(n.delimiter||"/"),h=i.slice(-m.length)===m;return o||(i=(h?i.slice(0,-m.length):i)+"(?:"+m+"(?=$))?"),i+=a?"$":o&&h?"":"(?="+m+"|$)",d(new RegExp("^"+i,p(n)),t)}function m(e,t,n){return r(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return d(e,t)}(e,t):r(e)?function(e,t,n){for(var r=[],o=0;o<e.length;o++)r.push(m(e[o],t,n).source);return d(new RegExp("(?:"+r.join("|")+")",p(n)),t)}(e,t,n):function(e,t,n){return f(a(e,n),t,n)}(e,t,n)}},9227:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to <a href="https://webplatform.github.io/docs/">WebPlatform.org documentation</a>. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (<code>.comment</code> can become <code>.namespace--comment</code>) or replace them with your defined ones (like <code>.editor__comment</code>). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the <code>highlightAll</code> and <code>highlightAllUnder</code> methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},6532:(e,t,n)=>{const r=n(9227),o=n(9670),a=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...a,...Object.keys(Prism.languages)];o(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(7507).resolve(t)],delete Prism.languages[e],n(7507)(t),a.add(e)}))}i.silent=!1,e.exports=i},1274:()=>{!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,o,a){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(o,(function(e){if("function"==typeof a&&!a(e))return e;for(var o,s=i.length;-1!==n.code.indexOf(o=t(r,s));)++s;return i[s]=e,o})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var o=0,a=Object.keys(n.tokenStack);!function i(s){for(var l=0;l<s.length&&!(o>=a.length);l++){var c=s[l];if("string"==typeof c||c.content&&"string"==typeof c.content){var u=a[o],d=n.tokenStack[u],p="string"==typeof c?c:c.content,f=t(r,u),m=p.indexOf(f);if(m>-1){++o;var h=p.substring(0,m),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=p.substring(m+f.length),v=[];h&&v.push.apply(v,i([h])),v.push(g),b&&v.push.apply(v,i([b])),"string"==typeof c?s.splice.apply(s,[l,1].concat(v)):c.content=v}}else c.content&&i(c.content)}return s}(n.tokens)}}}})}(Prism)},7507:(e,t,n)=>{var r={"./":6532};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=7507},9670:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n<r;n++)t[e[n]]=!0;return t}function r(e){var n={},r=[];function o(r,a){if(!(r in n)){a.push(r);var i=a.indexOf(r);if(i<a.length-1)throw new Error("Circular dependency: "+a.slice(i).join(" -> "));var s={},l=e[r];if(l){function c(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in s))for(var i in o(t,a),s[t]=!0,n[t])s[i]=!0}t(l.require,c),t(l.optional,c),t(l.modify,c)}n[r]=s,a.pop()}}return function(e){var t=n[e];return t||(o(e,r),t=n[e]),t}}function o(e){for(var t in e)return!0;return!1}return function(a,i,s){var l=function(e){var t={};for(var n in e){var r=e[n];for(var o in r)if("meta"!=o){var a=r[o];t[o]="string"==typeof a?{title:a}:a}}return t}(a),c=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var o in n={},e){var a=e[o];t(a&&a.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+o+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+o+" because it is a component.");n[t]=o}))}return n[r]||r}}(l);i=i.map(c),s=(s||[]).map(c);var u=n(i),d=n(s);i.forEach((function e(n){var r=l[n];t(r&&r.require,(function(t){t in d||(u[t]=!0,e(t))}))}));for(var p,f=r(l),m=u;o(m);){for(var h in p={},m){var g=l[h];t(g&&g.modify,(function(e){e in d&&(p[e]=!0)}))}for(var b in d)if(!(b in u))for(var v in f(b))if(v in u){p[b]=!0;break}for(var y in m=p)u[y]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,o){var a=o?o.series:void 0,i=o?o.parallel:e,s={},l={};function c(e){if(e in s)return s[e];l[e]=!0;var o,u=[];for(var d in t(e))d in n&&u.push(d);if(0===u.length)o=r(e);else{var p=i(u.map((function(e){var t=c(e);return delete l[e],t})));a?o=a(p,(function(){return r(e)})):r(e)}return s[e]=o}for(var u in n)c(u);var d=[];for(var p in l)d.push(s[p]);return i(d)}(f,u,t,n)}};return w}}();e.exports=t},6186:(e,t,n)=>{"use strict";var r=n(2985);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,a,i){if(i!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:o};return n.PropTypes=n,n}},2736:(e,t,n)=>{e.exports=n(6186)()},2985:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},9481:(e,t,n)=>{"use strict";var r=n(758),o=n(1896);function a(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var i=new Set,s={};function l(e,t){c(e,t),c(e+"Capture",t)}function c(e,t){for(s[e]=t,e=0;e<t.length;e++)i.add(t[e])}var u=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),d=Object.prototype.hasOwnProperty,p=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,f={},m={};function h(e,t,n,r,o,a,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=a,this.removeEmptyString=i}var g={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){g[e]=new h(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];g[t]=new h(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){g[e]=new h(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){g[e]=new h(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){g[e]=new h(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){g[e]=new h(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){g[e]=new h(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){g[e]=new h(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){g[e]=new h(e,5,!1,e.toLowerCase(),null,!1,!1)}));var b=/[\-:]([a-z])/g;function v(e){return e[1].toUpperCase()}function y(e,t,n,r){var o=g.hasOwnProperty(t)?g[t]:null;(null!==o?0!==o.type:r||!(2<t.length)||"o"!==t[0]&&"O"!==t[0]||"n"!==t[1]&&"N"!==t[1])&&(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,o,r)&&(n=null),r||null===o?function(e){return!!d.call(m,e)||!d.call(f,e)&&(p.test(e)?m[e]=!0:(f[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):o.mustUseProperty?e[o.propertyName]=null===n?3!==o.type&&"":n:(t=o.attributeName,r=o.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(o=o.type)||4===o&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(b,v);g[t]=new h(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(b,v);g[t]=new h(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(b,v);g[t]=new h(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){g[e]=new h(e,1,!1,e.toLowerCase(),null,!1,!1)})),g.xlinkHref=new h("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){g[e]=new h(e,1,!1,e.toLowerCase(),null,!0,!0)}));var w=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,k=Symbol.for("react.element"),S=Symbol.for("react.portal"),x=Symbol.for("react.fragment"),E=Symbol.for("react.strict_mode"),C=Symbol.for("react.profiler"),_=Symbol.for("react.provider"),O=Symbol.for("react.context"),A=Symbol.for("react.forward_ref"),T=Symbol.for("react.suspense"),j=Symbol.for("react.suspense_list"),L=Symbol.for("react.memo"),P=Symbol.for("react.lazy");Symbol.for("react.scope"),Symbol.for("react.debug_trace_mode");var D=Symbol.for("react.offscreen");Symbol.for("react.legacy_hidden"),Symbol.for("react.cache"),Symbol.for("react.tracing_marker");var R=Symbol.iterator;function N(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=R&&e[R]||e["@@iterator"])?e:null}var I,M=Object.assign;function F(e){if(void 0===I)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);I=t&&t[1]||""}return"\n"+I+e}var B=!1;function z(e,t){if(!e||B)return"";B=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(c){var r=c}Reflect.construct(e,[],t)}else{try{t.call()}catch(c){r=c}e.call(t.prototype)}else{try{throw Error()}catch(c){r=c}e()}}catch(c){if(c&&r&&"string"==typeof c.stack){for(var o=c.stack.split("\n"),a=r.stack.split("\n"),i=o.length-1,s=a.length-1;1<=i&&0<=s&&o[i]!==a[s];)s--;for(;1<=i&&0<=s;i--,s--)if(o[i]!==a[s]){if(1!==i||1!==s)do{if(i--,0>--s||o[i]!==a[s]){var l="\n"+o[i].replace(" at new "," at ");return e.displayName&&l.includes("<anonymous>")&&(l=l.replace("<anonymous>",e.displayName)),l}}while(1<=i&&0<=s);break}}}finally{B=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?F(e):""}function U(e){switch(e.tag){case 5:return F(e.type);case 16:return F("Lazy");case 13:return F("Suspense");case 19:return F("SuspenseList");case 0:case 2:case 15:return e=z(e.type,!1);case 11:return e=z(e.type.render,!1);case 1:return e=z(e.type,!0);default:return""}}function q(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case x:return"Fragment";case S:return"Portal";case C:return"Profiler";case E:return"StrictMode";case T:return"Suspense";case j:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case O:return(e.displayName||"Context")+".Consumer";case _:return(e._context.displayName||"Context")+".Provider";case A:var t=e.render;return(e=e.displayName)||(e=""!==(e=t.displayName||t.name||"")?"ForwardRef("+e+")":"ForwardRef"),e;case L:return null!==(t=e.displayName||null)?t:q(e.type)||"Memo";case P:t=e._payload,e=e._init;try{return q(e(t))}catch(n){}}return null}function $(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=(e=t.render).displayName||e.name||"",t.displayName||(""!==e?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return q(t);case 8:return t===E?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if("function"==typeof t)return t.displayName||t.name||null;if("string"==typeof t)return t}return null}function H(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":case"object":return e;default:return""}}function G(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function V(e){e._valueTracker||(e._valueTracker=function(e){var t=G(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var o=n.get,a=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(e){r=""+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function W(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=G(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function K(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function Q(e,t){var n=t.checked;return M({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function Z(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=H(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function Y(e,t){null!=(t=t.checked)&&y(e,"checked",t,!1)}function J(e,t){Y(e,t);var n=H(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?ee(e,t.type,n):t.hasOwnProperty("defaultValue")&&ee(e,t.type,H(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function X(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function ee(e,t,n){"number"===t&&K(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var te=Array.isArray;function ne(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o<n.length;o++)t["$"+n[o]]=!0;for(n=0;n<e.length;n++)o=t.hasOwnProperty("$"+e[n].value),e[n].selected!==o&&(e[n].selected=o),o&&r&&(e[n].defaultSelected=!0)}else{for(n=""+H(n),t=null,o=0;o<e.length;o++){if(e[o].value===n)return e[o].selected=!0,void(r&&(e[o].defaultSelected=!0));null!==t||e[o].disabled||(t=e[o])}null!==t&&(t.selected=!0)}}function re(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(a(91));return M({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function oe(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(a(92));if(te(n)){if(1<n.length)throw Error(a(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:H(n)}}function ae(e,t){var n=H(t.value),r=H(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ie(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}function se(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function le(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?se(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var ce,ue,de=(ue=function(e,t){if("http://www.w3.org/2000/svg"!==e.namespaceURI||"innerHTML"in e)e.innerHTML=t;else{for((ce=ce||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=ce.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return ue(e,t)}))}:ue);function pe(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var fe={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},me=["Webkit","ms","Moz","O"];function he(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||fe.hasOwnProperty(e)&&fe[e]?(""+t).trim():t+"px"}function ge(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),o=he(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}Object.keys(fe).forEach((function(e){me.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),fe[t]=fe[e]}))}));var be=M({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function ve(e,t){if(t){if(be[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(a(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(a(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(a(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(a(62))}}function ye(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var we=null;function ke(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var Se=null,xe=null,Ee=null;function Ce(e){if(e=wo(e)){if("function"!=typeof Se)throw Error(a(280));var t=e.stateNode;t&&(t=So(t),Se(e.stateNode,e.type,t))}}function _e(e){xe?Ee?Ee.push(e):Ee=[e]:xe=e}function Oe(){if(xe){var e=xe,t=Ee;if(Ee=xe=null,Ce(e),t)for(e=0;e<t.length;e++)Ce(t[e])}}function Ae(e,t){return e(t)}function Te(){}var je=!1;function Le(e,t,n){if(je)return e(t,n);je=!0;try{return Ae(e,t,n)}finally{je=!1,(null!==xe||null!==Ee)&&(Te(),Oe())}}function Pe(e,t){var n=e.stateNode;if(null===n)return null;var r=So(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(a(231,t,typeof n));return n}var De=!1;if(u)try{var Re={};Object.defineProperty(Re,"passive",{get:function(){De=!0}}),window.addEventListener("test",Re,Re),window.removeEventListener("test",Re,Re)}catch(ue){De=!1}function Ne(e,t,n,r,o,a,i,s,l){var c=Array.prototype.slice.call(arguments,3);try{t.apply(n,c)}catch(u){this.onError(u)}}var Ie=!1,Me=null,Fe=!1,Be=null,ze={onError:function(e){Ie=!0,Me=e}};function Ue(e,t,n,r,o,a,i,s,l){Ie=!1,Me=null,Ne.apply(ze,arguments)}function qe(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{!!(4098&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function $e(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function He(e){if(qe(e)!==e)throw Error(a(188))}function Ge(e){return null!==(e=function(e){var t=e.alternate;if(!t){if(null===(t=qe(e)))throw Error(a(188));return t!==e?null:e}for(var n=e,r=t;;){var o=n.return;if(null===o)break;var i=o.alternate;if(null===i){if(null!==(r=o.return)){n=r;continue}break}if(o.child===i.child){for(i=o.child;i;){if(i===n)return He(o),e;if(i===r)return He(o),t;i=i.sibling}throw Error(a(188))}if(n.return!==r.return)n=o,r=i;else{for(var s=!1,l=o.child;l;){if(l===n){s=!0,n=o,r=i;break}if(l===r){s=!0,r=o,n=i;break}l=l.sibling}if(!s){for(l=i.child;l;){if(l===n){s=!0,n=i,r=o;break}if(l===r){s=!0,r=i,n=o;break}l=l.sibling}if(!s)throw Error(a(189))}}if(n.alternate!==r)throw Error(a(190))}if(3!==n.tag)throw Error(a(188));return n.stateNode.current===n?e:t}(e))?Ve(e):null}function Ve(e){if(5===e.tag||6===e.tag)return e;for(e=e.child;null!==e;){var t=Ve(e);if(null!==t)return t;e=e.sibling}return null}var We=o.unstable_scheduleCallback,Ke=o.unstable_cancelCallback,Qe=o.unstable_shouldYield,Ze=o.unstable_requestPaint,Ye=o.unstable_now,Je=o.unstable_getCurrentPriorityLevel,Xe=o.unstable_ImmediatePriority,et=o.unstable_UserBlockingPriority,tt=o.unstable_NormalPriority,nt=o.unstable_LowPriority,rt=o.unstable_IdlePriority,ot=null,at=null;var it=Math.clz32?Math.clz32:function(e){return e>>>=0,0===e?32:31-(st(e)/lt|0)|0},st=Math.log,lt=Math.LN2;var ct=64,ut=4194304;function dt(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return 4194240&e;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return 130023424&e;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function pt(e,t){var n=e.pendingLanes;if(0===n)return 0;var r=0,o=e.suspendedLanes,a=e.pingedLanes,i=268435455&n;if(0!==i){var s=i&~o;0!==s?r=dt(s):0!==(a&=i)&&(r=dt(a))}else 0!==(i=n&~o)?r=dt(i):0!==a&&(r=dt(a));if(0===r)return 0;if(0!==t&&t!==r&&!(t&o)&&((o=r&-r)>=(a=t&-t)||16===o&&4194240&a))return t;if(4&r&&(r|=16&n),0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)o=1<<(n=31-it(t)),r|=e[n],t&=~o;return r}function ft(e,t){switch(e){case 1:case 2:case 4:return t+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;default:return-1}}function mt(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function ht(){var e=ct;return!(4194240&(ct<<=1))&&(ct=64),e}function gt(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function bt(e,t,n){e.pendingLanes|=t,536870912!==t&&(e.suspendedLanes=0,e.pingedLanes=0),(e=e.eventTimes)[t=31-it(t)]=n}function vt(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-it(n),o=1<<r;o&t|e[r]&t&&(e[r]|=t),n&=~o}}var yt=0;function wt(e){return 1<(e&=-e)?4<e?268435455&e?16:536870912:4:1}var kt,St,xt,Et,Ct,_t=!1,Ot=[],At=null,Tt=null,jt=null,Lt=new Map,Pt=new Map,Dt=[],Rt="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function Nt(e,t){switch(e){case"focusin":case"focusout":At=null;break;case"dragenter":case"dragleave":Tt=null;break;case"mouseover":case"mouseout":jt=null;break;case"pointerover":case"pointerout":Lt.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Pt.delete(t.pointerId)}}function It(e,t,n,r,o,a){return null===e||e.nativeEvent!==a?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:a,targetContainers:[o]},null!==t&&(null!==(t=wo(t))&&St(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==o&&-1===t.indexOf(o)&&t.push(o),e)}function Mt(e){var t=yo(e.target);if(null!==t){var n=qe(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=$e(n)))return e.blockedOn=t,void Ct(e.priority,(function(){xt(n)}))}else if(3===t&&n.stateNode.current.memoizedState.isDehydrated)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function Ft(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Qt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=wo(n))&&St(t),e.blockedOn=n,!1;var r=new(n=e.nativeEvent).constructor(n.type,n);we=r,n.target.dispatchEvent(r),we=null,t.shift()}return!0}function Bt(e,t,n){Ft(e)&&n.delete(t)}function zt(){_t=!1,null!==At&&Ft(At)&&(At=null),null!==Tt&&Ft(Tt)&&(Tt=null),null!==jt&&Ft(jt)&&(jt=null),Lt.forEach(Bt),Pt.forEach(Bt)}function Ut(e,t){e.blockedOn===t&&(e.blockedOn=null,_t||(_t=!0,o.unstable_scheduleCallback(o.unstable_NormalPriority,zt)))}function qt(e){function t(t){return Ut(t,e)}if(0<Ot.length){Ut(Ot[0],e);for(var n=1;n<Ot.length;n++){var r=Ot[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==At&&Ut(At,e),null!==Tt&&Ut(Tt,e),null!==jt&&Ut(jt,e),Lt.forEach(t),Pt.forEach(t),n=0;n<Dt.length;n++)(r=Dt[n]).blockedOn===e&&(r.blockedOn=null);for(;0<Dt.length&&null===(n=Dt[0]).blockedOn;)Mt(n),null===n.blockedOn&&Dt.shift()}var $t=w.ReactCurrentBatchConfig,Ht=!0;function Gt(e,t,n,r){var o=yt,a=$t.transition;$t.transition=null;try{yt=1,Wt(e,t,n,r)}finally{yt=o,$t.transition=a}}function Vt(e,t,n,r){var o=yt,a=$t.transition;$t.transition=null;try{yt=4,Wt(e,t,n,r)}finally{yt=o,$t.transition=a}}function Wt(e,t,n,r){if(Ht){var o=Qt(e,t,n,r);if(null===o)Hr(e,t,r,Kt,n),Nt(e,r);else if(function(e,t,n,r,o){switch(t){case"focusin":return At=It(At,e,t,n,r,o),!0;case"dragenter":return Tt=It(Tt,e,t,n,r,o),!0;case"mouseover":return jt=It(jt,e,t,n,r,o),!0;case"pointerover":var a=o.pointerId;return Lt.set(a,It(Lt.get(a)||null,e,t,n,r,o)),!0;case"gotpointercapture":return a=o.pointerId,Pt.set(a,It(Pt.get(a)||null,e,t,n,r,o)),!0}return!1}(o,e,t,n,r))r.stopPropagation();else if(Nt(e,r),4&t&&-1<Rt.indexOf(e)){for(;null!==o;){var a=wo(o);if(null!==a&&kt(a),null===(a=Qt(e,t,n,r))&&Hr(e,t,r,Kt,n),a===o)break;o=a}null!==o&&r.stopPropagation()}else Hr(e,t,r,null,n)}}var Kt=null;function Qt(e,t,n,r){if(Kt=null,null!==(e=yo(e=ke(r))))if(null===(t=qe(e)))e=null;else if(13===(n=t.tag)){if(null!==(e=$e(t)))return e;e=null}else if(3===n){if(t.stateNode.current.memoizedState.isDehydrated)return 3===t.tag?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return Kt=e,null}function Zt(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(Je()){case Xe:return 1;case et:return 4;case tt:case nt:return 16;case rt:return 536870912;default:return 16}default:return 16}}var Yt=null,Jt=null,Xt=null;function en(){if(Xt)return Xt;var e,t,n=Jt,r=n.length,o="value"in Yt?Yt.value:Yt.textContent,a=o.length;for(e=0;e<r&&n[e]===o[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===o[a-t];t++);return Xt=o.slice(e,1<t?1-t:void 0)}function tn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function nn(){return!0}function rn(){return!1}function on(e){function t(t,n,r,o,a){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=o,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(o):o[i]);return this.isDefaultPrevented=(null!=o.defaultPrevented?o.defaultPrevented:!1===o.returnValue)?nn:rn,this.isPropagationStopped=rn,this}return M(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=nn)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=nn)},persist:function(){},isPersistent:nn}),t}var an,sn,ln,cn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},un=on(cn),dn=M({},cn,{view:0,detail:0}),pn=on(dn),fn=M({},dn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Cn,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==ln&&(ln&&"mousemove"===e.type?(an=e.screenX-ln.screenX,sn=e.screenY-ln.screenY):sn=an=0,ln=e),an)},movementY:function(e){return"movementY"in e?e.movementY:sn}}),mn=on(fn),hn=on(M({},fn,{dataTransfer:0})),gn=on(M({},dn,{relatedTarget:0})),bn=on(M({},cn,{animationName:0,elapsedTime:0,pseudoElement:0})),vn=M({},cn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),yn=on(vn),wn=on(M({},cn,{data:0})),kn={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Sn={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},xn={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function En(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=xn[e])&&!!t[e]}function Cn(){return En}var _n=M({},dn,{key:function(e){if(e.key){var t=kn[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=tn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?Sn[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Cn,charCode:function(e){return"keypress"===e.type?tn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?tn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),On=on(_n),An=on(M({},fn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Tn=on(M({},dn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Cn})),jn=on(M({},cn,{propertyName:0,elapsedTime:0,pseudoElement:0})),Ln=M({},fn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Pn=on(Ln),Dn=[9,13,27,32],Rn=u&&"CompositionEvent"in window,Nn=null;u&&"documentMode"in document&&(Nn=document.documentMode);var In=u&&"TextEvent"in window&&!Nn,Mn=u&&(!Rn||Nn&&8<Nn&&11>=Nn),Fn=String.fromCharCode(32),Bn=!1;function zn(e,t){switch(e){case"keyup":return-1!==Dn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Un(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var qn=!1;var $n={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Hn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!$n[e.type]:"textarea"===t}function Gn(e,t,n,r){_e(r),0<(t=Vr(t,"onChange")).length&&(n=new un("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Vn=null,Wn=null;function Kn(e){Fr(e,0)}function Qn(e){if(W(ko(e)))return e}function Zn(e,t){if("change"===e)return t}var Yn=!1;if(u){var Jn;if(u){var Xn="oninput"in document;if(!Xn){var er=document.createElement("div");er.setAttribute("oninput","return;"),Xn="function"==typeof er.oninput}Jn=Xn}else Jn=!1;Yn=Jn&&(!document.documentMode||9<document.documentMode)}function tr(){Vn&&(Vn.detachEvent("onpropertychange",nr),Wn=Vn=null)}function nr(e){if("value"===e.propertyName&&Qn(Wn)){var t=[];Gn(t,Wn,e,ke(e)),Le(Kn,t)}}function rr(e,t,n){"focusin"===e?(tr(),Wn=n,(Vn=t).attachEvent("onpropertychange",nr)):"focusout"===e&&tr()}function or(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Qn(Wn)}function ar(e,t){if("click"===e)return Qn(t)}function ir(e,t){if("input"===e||"change"===e)return Qn(t)}var sr="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t};function lr(e,t){if(sr(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var o=n[r];if(!d.call(t,o)||!sr(e[o],t[o]))return!1}return!0}function cr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function ur(e,t){var n,r=cr(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=cr(r)}}function dr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?dr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function pr(){for(var e=window,t=K();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=K((e=t.contentWindow).document)}return t}function fr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}function mr(e){var t=pr(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&dr(n.ownerDocument.documentElement,n)){if(null!==r&&fr(n))if(t=r.start,void 0===(e=r.end)&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if((e=(t=n.ownerDocument||document)&&t.defaultView||window).getSelection){e=e.getSelection();var o=n.textContent.length,a=Math.min(r.start,o);r=void 0===r.end?a:Math.min(r.end,o),!e.extend&&a>r&&(o=r,r=a,a=o),o=ur(n,a);var i=ur(n,r);o&&i&&(1!==e.rangeCount||e.anchorNode!==o.node||e.anchorOffset!==o.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&((t=t.createRange()).setStart(o.node,o.offset),e.removeAllRanges(),a>r?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),e.addRange(t)))}for(t=[],e=n;e=e.parentNode;)1===e.nodeType&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for("function"==typeof n.focus&&n.focus(),n=0;n<t.length;n++)(e=t[n]).element.scrollLeft=e.left,e.element.scrollTop=e.top}}var hr=u&&"documentMode"in document&&11>=document.documentMode,gr=null,br=null,vr=null,yr=!1;function wr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;yr||null==gr||gr!==K(r)||("selectionStart"in(r=gr)&&fr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},vr&&lr(vr,r)||(vr=r,0<(r=Vr(br,"onSelect")).length&&(t=new un("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=gr)))}function kr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var Sr={animationend:kr("Animation","AnimationEnd"),animationiteration:kr("Animation","AnimationIteration"),animationstart:kr("Animation","AnimationStart"),transitionend:kr("Transition","TransitionEnd")},xr={},Er={};function Cr(e){if(xr[e])return xr[e];if(!Sr[e])return e;var t,n=Sr[e];for(t in n)if(n.hasOwnProperty(t)&&t in Er)return xr[e]=n[t];return e}u&&(Er=document.createElement("div").style,"AnimationEvent"in window||(delete Sr.animationend.animation,delete Sr.animationiteration.animation,delete Sr.animationstart.animation),"TransitionEvent"in window||delete Sr.transitionend.transition);var _r=Cr("animationend"),Or=Cr("animationiteration"),Ar=Cr("animationstart"),Tr=Cr("transitionend"),jr=new Map,Lr="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Pr(e,t){jr.set(e,t),l(t,[e])}for(var Dr=0;Dr<Lr.length;Dr++){var Rr=Lr[Dr];Pr(Rr.toLowerCase(),"on"+(Rr[0].toUpperCase()+Rr.slice(1)))}Pr(_r,"onAnimationEnd"),Pr(Or,"onAnimationIteration"),Pr(Ar,"onAnimationStart"),Pr("dblclick","onDoubleClick"),Pr("focusin","onFocus"),Pr("focusout","onBlur"),Pr(Tr,"onTransitionEnd"),c("onMouseEnter",["mouseout","mouseover"]),c("onMouseLeave",["mouseout","mouseover"]),c("onPointerEnter",["pointerout","pointerover"]),c("onPointerLeave",["pointerout","pointerover"]),l("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),l("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),l("onBeforeInput",["compositionend","keypress","textInput","paste"]),l("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),l("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),l("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Nr="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Ir=new Set("cancel close invalid load scroll toggle".split(" ").concat(Nr));function Mr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,o,i,s,l,c){if(Ue.apply(this,arguments),Ie){if(!Ie)throw Error(a(198));var u=Me;Ie=!1,Me=null,Fe||(Fe=!0,Be=u)}}(r,t,void 0,e),e.currentTarget=null}function Fr(e,t){t=!!(4&t);for(var n=0;n<e.length;n++){var r=e[n],o=r.event;r=r.listeners;e:{var a=void 0;if(t)for(var i=r.length-1;0<=i;i--){var s=r[i],l=s.instance,c=s.currentTarget;if(s=s.listener,l!==a&&o.isPropagationStopped())break e;Mr(o,s,c),a=l}else for(i=0;i<r.length;i++){if(l=(s=r[i]).instance,c=s.currentTarget,s=s.listener,l!==a&&o.isPropagationStopped())break e;Mr(o,s,c),a=l}}}if(Fe)throw e=Be,Fe=!1,Be=null,e}function Br(e,t){var n=t[go];void 0===n&&(n=t[go]=new Set);var r=e+"__bubble";n.has(r)||($r(t,e,2,!1),n.add(r))}function zr(e,t,n){var r=0;t&&(r|=4),$r(n,e,r,t)}var Ur="_reactListening"+Math.random().toString(36).slice(2);function qr(e){if(!e[Ur]){e[Ur]=!0,i.forEach((function(t){"selectionchange"!==t&&(Ir.has(t)||zr(t,!1,e),zr(t,!0,e))}));var t=9===e.nodeType?e:e.ownerDocument;null===t||t[Ur]||(t[Ur]=!0,zr("selectionchange",!1,t))}}function $r(e,t,n,r){switch(Zt(t)){case 1:var o=Gt;break;case 4:o=Vt;break;default:o=Wt}n=o.bind(null,t,n,e),o=void 0,!De||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(o=!0),r?void 0!==o?e.addEventListener(t,n,{capture:!0,passive:o}):e.addEventListener(t,n,!0):void 0!==o?e.addEventListener(t,n,{passive:o}):e.addEventListener(t,n,!1)}function Hr(e,t,n,r,o){var a=r;if(!(1&t||2&t||null===r))e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var s=r.stateNode.containerInfo;if(s===o||8===s.nodeType&&s.parentNode===o)break;if(4===i)for(i=r.return;null!==i;){var l=i.tag;if((3===l||4===l)&&((l=i.stateNode.containerInfo)===o||8===l.nodeType&&l.parentNode===o))return;i=i.return}for(;null!==s;){if(null===(i=yo(s)))return;if(5===(l=i.tag)||6===l){r=a=i;continue e}s=s.parentNode}}r=r.return}Le((function(){var r=a,o=ke(n),i=[];e:{var s=jr.get(e);if(void 0!==s){var l=un,c=e;switch(e){case"keypress":if(0===tn(n))break e;case"keydown":case"keyup":l=On;break;case"focusin":c="focus",l=gn;break;case"focusout":c="blur",l=gn;break;case"beforeblur":case"afterblur":l=gn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":l=mn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":l=hn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":l=Tn;break;case _r:case Or:case Ar:l=bn;break;case Tr:l=jn;break;case"scroll":l=pn;break;case"wheel":l=Pn;break;case"copy":case"cut":case"paste":l=yn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":l=An}var u=!!(4&t),d=!u&&"scroll"===e,p=u?null!==s?s+"Capture":null:s;u=[];for(var f,m=r;null!==m;){var h=(f=m).stateNode;if(5===f.tag&&null!==h&&(f=h,null!==p&&(null!=(h=Pe(m,p))&&u.push(Gr(m,h,f)))),d)break;m=m.return}0<u.length&&(s=new l(s,c,null,n,o),i.push({event:s,listeners:u}))}}if(!(7&t)){if(l="mouseout"===e||"pointerout"===e,(!(s="mouseover"===e||"pointerover"===e)||n===we||!(c=n.relatedTarget||n.fromElement)||!yo(c)&&!c[ho])&&(l||s)&&(s=o.window===o?o:(s=o.ownerDocument)?s.defaultView||s.parentWindow:window,l?(l=r,null!==(c=(c=n.relatedTarget||n.toElement)?yo(c):null)&&(c!==(d=qe(c))||5!==c.tag&&6!==c.tag)&&(c=null)):(l=null,c=r),l!==c)){if(u=mn,h="onMouseLeave",p="onMouseEnter",m="mouse","pointerout"!==e&&"pointerover"!==e||(u=An,h="onPointerLeave",p="onPointerEnter",m="pointer"),d=null==l?s:ko(l),f=null==c?s:ko(c),(s=new u(h,m+"leave",l,n,o)).target=d,s.relatedTarget=f,h=null,yo(o)===r&&((u=new u(p,m+"enter",c,n,o)).target=f,u.relatedTarget=d,h=u),d=h,l&&c)e:{for(p=c,m=0,f=u=l;f;f=Wr(f))m++;for(f=0,h=p;h;h=Wr(h))f++;for(;0<m-f;)u=Wr(u),m--;for(;0<f-m;)p=Wr(p),f--;for(;m--;){if(u===p||null!==p&&u===p.alternate)break e;u=Wr(u),p=Wr(p)}u=null}else u=null;null!==l&&Kr(i,s,l,u,!1),null!==c&&null!==d&&Kr(i,d,c,u,!0)}if("select"===(l=(s=r?ko(r):window).nodeName&&s.nodeName.toLowerCase())||"input"===l&&"file"===s.type)var g=Zn;else if(Hn(s))if(Yn)g=ir;else{g=or;var b=rr}else(l=s.nodeName)&&"input"===l.toLowerCase()&&("checkbox"===s.type||"radio"===s.type)&&(g=ar);switch(g&&(g=g(e,r))?Gn(i,g,n,o):(b&&b(e,s,r),"focusout"===e&&(b=s._wrapperState)&&b.controlled&&"number"===s.type&&ee(s,"number",s.value)),b=r?ko(r):window,e){case"focusin":(Hn(b)||"true"===b.contentEditable)&&(gr=b,br=r,vr=null);break;case"focusout":vr=br=gr=null;break;case"mousedown":yr=!0;break;case"contextmenu":case"mouseup":case"dragend":yr=!1,wr(i,n,o);break;case"selectionchange":if(hr)break;case"keydown":case"keyup":wr(i,n,o)}var v;if(Rn)e:{switch(e){case"compositionstart":var y="onCompositionStart";break e;case"compositionend":y="onCompositionEnd";break e;case"compositionupdate":y="onCompositionUpdate";break e}y=void 0}else qn?zn(e,n)&&(y="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(y="onCompositionStart");y&&(Mn&&"ko"!==n.locale&&(qn||"onCompositionStart"!==y?"onCompositionEnd"===y&&qn&&(v=en()):(Jt="value"in(Yt=o)?Yt.value:Yt.textContent,qn=!0)),0<(b=Vr(r,y)).length&&(y=new wn(y,e,null,n,o),i.push({event:y,listeners:b}),v?y.data=v:null!==(v=Un(n))&&(y.data=v))),(v=In?function(e,t){switch(e){case"compositionend":return Un(t);case"keypress":return 32!==t.which?null:(Bn=!0,Fn);case"textInput":return(e=t.data)===Fn&&Bn?null:e;default:return null}}(e,n):function(e,t){if(qn)return"compositionend"===e||!Rn&&zn(e,t)?(e=en(),Xt=Jt=Yt=null,qn=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Mn&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(r=Vr(r,"onBeforeInput")).length&&(o=new wn("onBeforeInput","beforeinput",null,n,o),i.push({event:o,listeners:r}),o.data=v))}Fr(i,t)}))}function Gr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Vr(e,t){for(var n=t+"Capture",r=[];null!==e;){var o=e,a=o.stateNode;5===o.tag&&null!==a&&(o=a,null!=(a=Pe(e,n))&&r.unshift(Gr(e,a,o)),null!=(a=Pe(e,t))&&r.push(Gr(e,a,o))),e=e.return}return r}function Wr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Kr(e,t,n,r,o){for(var a=t._reactName,i=[];null!==n&&n!==r;){var s=n,l=s.alternate,c=s.stateNode;if(null!==l&&l===r)break;5===s.tag&&null!==c&&(s=c,o?null!=(l=Pe(n,a))&&i.unshift(Gr(n,l,s)):o||null!=(l=Pe(n,a))&&i.push(Gr(n,l,s))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}var Qr=/\r\n?/g,Zr=/\u0000|\uFFFD/g;function Yr(e){return("string"==typeof e?e:""+e).replace(Qr,"\n").replace(Zr,"")}function Jr(e,t,n){if(t=Yr(t),Yr(e)!==t&&n)throw Error(a(425))}function Xr(){}var eo=null,to=null;function no(e,t){return"textarea"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var ro="function"==typeof setTimeout?setTimeout:void 0,oo="function"==typeof clearTimeout?clearTimeout:void 0,ao="function"==typeof Promise?Promise:void 0,io="function"==typeof queueMicrotask?queueMicrotask:void 0!==ao?function(e){return ao.resolve(null).then(e).catch(so)}:ro;function so(e){setTimeout((function(){throw e}))}function lo(e,t){var n=t,r=0;do{var o=n.nextSibling;if(e.removeChild(n),o&&8===o.nodeType)if("/$"===(n=o.data)){if(0===r)return e.removeChild(o),void qt(t);r--}else"$"!==n&&"$?"!==n&&"$!"!==n||r++;n=o}while(n);qt(t)}function co(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break;if(8===t){if("$"===(t=e.data)||"$!"===t||"$?"===t)break;if("/$"===t)return null}}return e}function uo(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var po=Math.random().toString(36).slice(2),fo="__reactFiber$"+po,mo="__reactProps$"+po,ho="__reactContainer$"+po,go="__reactEvents$"+po,bo="__reactListeners$"+po,vo="__reactHandles$"+po;function yo(e){var t=e[fo];if(t)return t;for(var n=e.parentNode;n;){if(t=n[ho]||n[fo]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=uo(e);null!==e;){if(n=e[fo])return n;e=uo(e)}return t}n=(e=n).parentNode}return null}function wo(e){return!(e=e[fo]||e[ho])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function ko(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(a(33))}function So(e){return e[mo]||null}var xo=[],Eo=-1;function Co(e){return{current:e}}function _o(e){0>Eo||(e.current=xo[Eo],xo[Eo]=null,Eo--)}function Oo(e,t){Eo++,xo[Eo]=e.current,e.current=t}var Ao={},To=Co(Ao),jo=Co(!1),Lo=Ao;function Po(e,t){var n=e.type.contextTypes;if(!n)return Ao;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o,a={};for(o in n)a[o]=t[o];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=a),a}function Do(e){return null!=(e=e.childContextTypes)}function Ro(){_o(jo),_o(To)}function No(e,t,n){if(To.current!==Ao)throw Error(a(168));Oo(To,t),Oo(jo,n)}function Io(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var o in r=r.getChildContext())if(!(o in t))throw Error(a(108,$(e)||"Unknown",o));return M({},n,r)}function Mo(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Ao,Lo=To.current,Oo(To,e),Oo(jo,jo.current),!0}function Fo(e,t,n){var r=e.stateNode;if(!r)throw Error(a(169));n?(e=Io(e,t,Lo),r.__reactInternalMemoizedMergedChildContext=e,_o(jo),_o(To),Oo(To,e)):_o(jo),Oo(jo,n)}var Bo=null,zo=!1,Uo=!1;function qo(e){null===Bo?Bo=[e]:Bo.push(e)}function $o(){if(!Uo&&null!==Bo){Uo=!0;var e=0,t=yt;try{var n=Bo;for(yt=1;e<n.length;e++){var r=n[e];do{r=r(!0)}while(null!==r)}Bo=null,zo=!1}catch(o){throw null!==Bo&&(Bo=Bo.slice(e+1)),We(Xe,$o),o}finally{yt=t,Uo=!1}}return null}var Ho=[],Go=0,Vo=null,Wo=0,Ko=[],Qo=0,Zo=null,Yo=1,Jo="";function Xo(e,t){Ho[Go++]=Wo,Ho[Go++]=Vo,Vo=e,Wo=t}function ea(e,t,n){Ko[Qo++]=Yo,Ko[Qo++]=Jo,Ko[Qo++]=Zo,Zo=e;var r=Yo;e=Jo;var o=32-it(r)-1;r&=~(1<<o),n+=1;var a=32-it(t)+o;if(30<a){var i=o-o%5;a=(r&(1<<i)-1).toString(32),r>>=i,o-=i,Yo=1<<32-it(t)+o|n<<o|r,Jo=a+e}else Yo=1<<a|n<<o|r,Jo=e}function ta(e){null!==e.return&&(Xo(e,1),ea(e,1,0))}function na(e){for(;e===Vo;)Vo=Ho[--Go],Ho[Go]=null,Wo=Ho[--Go],Ho[Go]=null;for(;e===Zo;)Zo=Ko[--Qo],Ko[Qo]=null,Jo=Ko[--Qo],Ko[Qo]=null,Yo=Ko[--Qo],Ko[Qo]=null}var ra=null,oa=null,aa=!1,ia=null;function sa(e,t){var n=Lc(5,null,null,0);n.elementType="DELETED",n.stateNode=t,n.return=e,null===(t=e.deletions)?(e.deletions=[n],e.flags|=16):t.push(n)}function la(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,ra=e,oa=co(t.firstChild),!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,ra=e,oa=null,!0);case 13:return null!==(t=8!==t.nodeType?null:t)&&(n=null!==Zo?{id:Yo,overflow:Jo}:null,e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},(n=Lc(18,null,null,0)).stateNode=t,n.return=e,e.child=n,ra=e,oa=null,!0);default:return!1}}function ca(e){return!(!(1&e.mode)||128&e.flags)}function ua(e){if(aa){var t=oa;if(t){var n=t;if(!la(e,t)){if(ca(e))throw Error(a(418));t=co(n.nextSibling);var r=ra;t&&la(e,t)?sa(r,n):(e.flags=-4097&e.flags|2,aa=!1,ra=e)}}else{if(ca(e))throw Error(a(418));e.flags=-4097&e.flags|2,aa=!1,ra=e}}}function da(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;ra=e}function pa(e){if(e!==ra)return!1;if(!aa)return da(e),aa=!0,!1;var t;if((t=3!==e.tag)&&!(t=5!==e.tag)&&(t="head"!==(t=e.type)&&"body"!==t&&!no(e.type,e.memoizedProps)),t&&(t=oa)){if(ca(e))throw fa(),Error(a(418));for(;t;)sa(e,t),t=co(t.nextSibling)}if(da(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(a(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){oa=co(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}oa=null}}else oa=ra?co(e.stateNode.nextSibling):null;return!0}function fa(){for(var e=oa;e;)e=co(e.nextSibling)}function ma(){oa=ra=null,aa=!1}function ha(e){null===ia?ia=[e]:ia.push(e)}var ga=w.ReactCurrentBatchConfig;function ba(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(a(309));var r=n.stateNode}if(!r)throw Error(a(147,e));var o=r,i=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===i?t.ref:(t=function(e){var t=o.refs;null===e?delete t[i]:t[i]=e},t._stringRef=i,t)}if("string"!=typeof e)throw Error(a(284));if(!n._owner)throw Error(a(290,e))}return e}function va(e,t){throw e=Object.prototype.toString.call(t),Error(a(31,"[object Object]"===e?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function ya(e){return(0,e._init)(e._payload)}function wa(e){function t(t,n){if(e){var r=t.deletions;null===r?(t.deletions=[n],t.flags|=16):r.push(n)}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function o(e,t){return(e=Dc(e,t)).index=0,e.sibling=null,e}function i(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags|=2,n):r:(t.flags|=2,n):(t.flags|=1048576,n)}function s(t){return e&&null===t.alternate&&(t.flags|=2),t}function l(e,t,n,r){return null===t||6!==t.tag?((t=Mc(n,e.mode,r)).return=e,t):((t=o(t,n)).return=e,t)}function c(e,t,n,r){var a=n.type;return a===x?d(e,t,n.props.children,r,n.key):null!==t&&(t.elementType===a||"object"==typeof a&&null!==a&&a.$$typeof===P&&ya(a)===t.type)?((r=o(t,n.props)).ref=ba(e,t,n),r.return=e,r):((r=Rc(n.type,n.key,n.props,null,e.mode,r)).ref=ba(e,t,n),r.return=e,r)}function u(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Fc(n,e.mode,r)).return=e,t):((t=o(t,n.children||[])).return=e,t)}function d(e,t,n,r,a){return null===t||7!==t.tag?((t=Nc(n,e.mode,r,a)).return=e,t):((t=o(t,n)).return=e,t)}function p(e,t,n){if("string"==typeof t&&""!==t||"number"==typeof t)return(t=Mc(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case k:return(n=Rc(t.type,t.key,t.props,null,e.mode,n)).ref=ba(e,null,t),n.return=e,n;case S:return(t=Fc(t,e.mode,n)).return=e,t;case P:return p(e,(0,t._init)(t._payload),n)}if(te(t)||N(t))return(t=Nc(t,e.mode,n,null)).return=e,t;va(e,t)}return null}function f(e,t,n,r){var o=null!==t?t.key:null;if("string"==typeof n&&""!==n||"number"==typeof n)return null!==o?null:l(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case k:return n.key===o?c(e,t,n,r):null;case S:return n.key===o?u(e,t,n,r):null;case P:return f(e,t,(o=n._init)(n._payload),r)}if(te(n)||N(n))return null!==o?null:d(e,t,n,r,null);va(e,n)}return null}function m(e,t,n,r,o){if("string"==typeof r&&""!==r||"number"==typeof r)return l(t,e=e.get(n)||null,""+r,o);if("object"==typeof r&&null!==r){switch(r.$$typeof){case k:return c(t,e=e.get(null===r.key?n:r.key)||null,r,o);case S:return u(t,e=e.get(null===r.key?n:r.key)||null,r,o);case P:return m(e,t,n,(0,r._init)(r._payload),o)}if(te(r)||N(r))return d(t,e=e.get(n)||null,r,o,null);va(t,r)}return null}function h(o,a,s,l){for(var c=null,u=null,d=a,h=a=0,g=null;null!==d&&h<s.length;h++){d.index>h?(g=d,d=null):g=d.sibling;var b=f(o,d,s[h],l);if(null===b){null===d&&(d=g);break}e&&d&&null===b.alternate&&t(o,d),a=i(b,a,h),null===u?c=b:u.sibling=b,u=b,d=g}if(h===s.length)return n(o,d),aa&&Xo(o,h),c;if(null===d){for(;h<s.length;h++)null!==(d=p(o,s[h],l))&&(a=i(d,a,h),null===u?c=d:u.sibling=d,u=d);return aa&&Xo(o,h),c}for(d=r(o,d);h<s.length;h++)null!==(g=m(d,o,h,s[h],l))&&(e&&null!==g.alternate&&d.delete(null===g.key?h:g.key),a=i(g,a,h),null===u?c=g:u.sibling=g,u=g);return e&&d.forEach((function(e){return t(o,e)})),aa&&Xo(o,h),c}function g(o,s,l,c){var u=N(l);if("function"!=typeof u)throw Error(a(150));if(null==(l=u.call(l)))throw Error(a(151));for(var d=u=null,h=s,g=s=0,b=null,v=l.next();null!==h&&!v.done;g++,v=l.next()){h.index>g?(b=h,h=null):b=h.sibling;var y=f(o,h,v.value,c);if(null===y){null===h&&(h=b);break}e&&h&&null===y.alternate&&t(o,h),s=i(y,s,g),null===d?u=y:d.sibling=y,d=y,h=b}if(v.done)return n(o,h),aa&&Xo(o,g),u;if(null===h){for(;!v.done;g++,v=l.next())null!==(v=p(o,v.value,c))&&(s=i(v,s,g),null===d?u=v:d.sibling=v,d=v);return aa&&Xo(o,g),u}for(h=r(o,h);!v.done;g++,v=l.next())null!==(v=m(h,o,g,v.value,c))&&(e&&null!==v.alternate&&h.delete(null===v.key?g:v.key),s=i(v,s,g),null===d?u=v:d.sibling=v,d=v);return e&&h.forEach((function(e){return t(o,e)})),aa&&Xo(o,g),u}return function e(r,a,i,l){if("object"==typeof i&&null!==i&&i.type===x&&null===i.key&&(i=i.props.children),"object"==typeof i&&null!==i){switch(i.$$typeof){case k:e:{for(var c=i.key,u=a;null!==u;){if(u.key===c){if((c=i.type)===x){if(7===u.tag){n(r,u.sibling),(a=o(u,i.props.children)).return=r,r=a;break e}}else if(u.elementType===c||"object"==typeof c&&null!==c&&c.$$typeof===P&&ya(c)===u.type){n(r,u.sibling),(a=o(u,i.props)).ref=ba(r,u,i),a.return=r,r=a;break e}n(r,u);break}t(r,u),u=u.sibling}i.type===x?((a=Nc(i.props.children,r.mode,l,i.key)).return=r,r=a):((l=Rc(i.type,i.key,i.props,null,r.mode,l)).ref=ba(r,a,i),l.return=r,r=l)}return s(r);case S:e:{for(u=i.key;null!==a;){if(a.key===u){if(4===a.tag&&a.stateNode.containerInfo===i.containerInfo&&a.stateNode.implementation===i.implementation){n(r,a.sibling),(a=o(a,i.children||[])).return=r,r=a;break e}n(r,a);break}t(r,a),a=a.sibling}(a=Fc(i,r.mode,l)).return=r,r=a}return s(r);case P:return e(r,a,(u=i._init)(i._payload),l)}if(te(i))return h(r,a,i,l);if(N(i))return g(r,a,i,l);va(r,i)}return"string"==typeof i&&""!==i||"number"==typeof i?(i=""+i,null!==a&&6===a.tag?(n(r,a.sibling),(a=o(a,i)).return=r,r=a):(n(r,a),(a=Mc(i,r.mode,l)).return=r,r=a),s(r)):n(r,a)}}var ka=wa(!0),Sa=wa(!1),xa=Co(null),Ea=null,Ca=null,_a=null;function Oa(){_a=Ca=Ea=null}function Aa(e){var t=xa.current;_o(xa),e._currentValue=t}function Ta(e,t,n){for(;null!==e;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,null!==r&&(r.childLanes|=t)):null!==r&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function ja(e,t){Ea=e,_a=Ca=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(!!(e.lanes&t)&&(ys=!0),e.firstContext=null)}function La(e){var t=e._currentValue;if(_a!==e)if(e={context:e,memoizedValue:t,next:null},null===Ca){if(null===Ea)throw Error(a(308));Ca=e,Ea.dependencies={lanes:0,firstContext:e}}else Ca=Ca.next=e;return t}var Pa=null;function Da(e){null===Pa?Pa=[e]:Pa.push(e)}function Ra(e,t,n,r){var o=t.interleaved;return null===o?(n.next=n,Da(t)):(n.next=o.next,o.next=n),t.interleaved=n,Na(e,r)}function Na(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}var Ia=!1;function Ma(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Fa(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Ba(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function za(e,t,n){var r=e.updateQueue;if(null===r)return null;if(r=r.shared,2&Al){var o=r.pending;return null===o?t.next=t:(t.next=o.next,o.next=t),r.pending=t,Na(e,n)}return null===(o=r.interleaved)?(t.next=t,Da(r)):(t.next=o.next,o.next=t),r.interleaved=t,Na(e,n)}function Ua(e,t,n){if(null!==(t=t.updateQueue)&&(t=t.shared,4194240&n)){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,vt(e,n)}}function qa(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var o=null,a=null;if(null!==(n=n.firstBaseUpdate)){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===a?o=a=i:a=a.next=i,n=n.next}while(null!==n);null===a?o=a=t:a=a.next=t}else o=a=t;return n={baseState:r.baseState,firstBaseUpdate:o,lastBaseUpdate:a,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function $a(e,t,n,r){var o=e.updateQueue;Ia=!1;var a=o.firstBaseUpdate,i=o.lastBaseUpdate,s=o.shared.pending;if(null!==s){o.shared.pending=null;var l=s,c=l.next;l.next=null,null===i?a=c:i.next=c,i=l;var u=e.alternate;null!==u&&((s=(u=u.updateQueue).lastBaseUpdate)!==i&&(null===s?u.firstBaseUpdate=c:s.next=c,u.lastBaseUpdate=l))}if(null!==a){var d=o.baseState;for(i=0,u=c=l=null,s=a;;){var p=s.lane,f=s.eventTime;if((r&p)===p){null!==u&&(u=u.next={eventTime:f,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var m=e,h=s;switch(p=t,f=n,h.tag){case 1:if("function"==typeof(m=h.payload)){d=m.call(f,d,p);break e}d=m;break e;case 3:m.flags=-65537&m.flags|128;case 0:if(null==(p="function"==typeof(m=h.payload)?m.call(f,d,p):m))break e;d=M({},d,p);break e;case 2:Ia=!0}}null!==s.callback&&0!==s.lane&&(e.flags|=64,null===(p=o.effects)?o.effects=[s]:p.push(s))}else f={eventTime:f,lane:p,tag:s.tag,payload:s.payload,callback:s.callback,next:null},null===u?(c=u=f,l=d):u=u.next=f,i|=p;if(null===(s=s.next)){if(null===(s=o.shared.pending))break;s=(p=s).next,p.next=null,o.lastBaseUpdate=p,o.shared.pending=null}}if(null===u&&(l=d),o.baseState=l,o.firstBaseUpdate=c,o.lastBaseUpdate=u,null!==(t=o.shared.interleaved)){o=t;do{i|=o.lane,o=o.next}while(o!==t)}else null===a&&(o.shared.lanes=0);Il|=i,e.lanes=i,e.memoizedState=d}}function Ha(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],o=r.callback;if(null!==o){if(r.callback=null,r=n,"function"!=typeof o)throw Error(a(191,o));o.call(r)}}}var Ga={},Va=Co(Ga),Wa=Co(Ga),Ka=Co(Ga);function Qa(e){if(e===Ga)throw Error(a(174));return e}function Za(e,t){switch(Oo(Ka,t),Oo(Wa,e),Oo(Va,Ga),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:le(null,"");break;default:t=le(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}_o(Va),Oo(Va,t)}function Ya(){_o(Va),_o(Wa),_o(Ka)}function Ja(e){Qa(Ka.current);var t=Qa(Va.current),n=le(t,e.type);t!==n&&(Oo(Wa,e),Oo(Va,n))}function Xa(e){Wa.current===e&&(_o(Va),_o(Wa))}var ei=Co(0);function ti(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(128&t.flags)return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var ni=[];function ri(){for(var e=0;e<ni.length;e++)ni[e]._workInProgressVersionPrimary=null;ni.length=0}var oi=w.ReactCurrentDispatcher,ai=w.ReactCurrentBatchConfig,ii=0,si=null,li=null,ci=null,ui=!1,di=!1,pi=0,fi=0;function mi(){throw Error(a(321))}function hi(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!sr(e[n],t[n]))return!1;return!0}function gi(e,t,n,r,o,i){if(ii=i,si=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,oi.current=null===e||null===e.memoizedState?Xi:es,e=n(r,o),di){i=0;do{if(di=!1,pi=0,25<=i)throw Error(a(301));i+=1,ci=li=null,t.updateQueue=null,oi.current=ts,e=n(r,o)}while(di)}if(oi.current=Ji,t=null!==li&&null!==li.next,ii=0,ci=li=si=null,ui=!1,t)throw Error(a(300));return e}function bi(){var e=0!==pi;return pi=0,e}function vi(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===ci?si.memoizedState=ci=e:ci=ci.next=e,ci}function yi(){if(null===li){var e=si.alternate;e=null!==e?e.memoizedState:null}else e=li.next;var t=null===ci?si.memoizedState:ci.next;if(null!==t)ci=t,li=e;else{if(null===e)throw Error(a(310));e={memoizedState:(li=e).memoizedState,baseState:li.baseState,baseQueue:li.baseQueue,queue:li.queue,next:null},null===ci?si.memoizedState=ci=e:ci=ci.next=e}return ci}function wi(e,t){return"function"==typeof t?t(e):t}function ki(e){var t=yi(),n=t.queue;if(null===n)throw Error(a(311));n.lastRenderedReducer=e;var r=li,o=r.baseQueue,i=n.pending;if(null!==i){if(null!==o){var s=o.next;o.next=i.next,i.next=s}r.baseQueue=o=i,n.pending=null}if(null!==o){i=o.next,r=r.baseState;var l=s=null,c=null,u=i;do{var d=u.lane;if((ii&d)===d)null!==c&&(c=c.next={lane:0,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),r=u.hasEagerState?u.eagerState:e(r,u.action);else{var p={lane:d,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null};null===c?(l=c=p,s=r):c=c.next=p,si.lanes|=d,Il|=d}u=u.next}while(null!==u&&u!==i);null===c?s=r:c.next=l,sr(r,t.memoizedState)||(ys=!0),t.memoizedState=r,t.baseState=s,t.baseQueue=c,n.lastRenderedState=r}if(null!==(e=n.interleaved)){o=e;do{i=o.lane,si.lanes|=i,Il|=i,o=o.next}while(o!==e)}else null===o&&(n.lanes=0);return[t.memoizedState,n.dispatch]}function Si(e){var t=yi(),n=t.queue;if(null===n)throw Error(a(311));n.lastRenderedReducer=e;var r=n.dispatch,o=n.pending,i=t.memoizedState;if(null!==o){n.pending=null;var s=o=o.next;do{i=e(i,s.action),s=s.next}while(s!==o);sr(i,t.memoizedState)||(ys=!0),t.memoizedState=i,null===t.baseQueue&&(t.baseState=i),n.lastRenderedState=i}return[i,r]}function xi(){}function Ei(e,t){var n=si,r=yi(),o=t(),i=!sr(r.memoizedState,o);if(i&&(r.memoizedState=o,ys=!0),r=r.queue,Ii(Oi.bind(null,n,r,e),[e]),r.getSnapshot!==t||i||null!==ci&&1&ci.memoizedState.tag){if(n.flags|=2048,Li(9,_i.bind(null,n,r,o,t),void 0,null),null===Tl)throw Error(a(349));30&ii||Ci(n,t,o)}return o}function Ci(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},null===(t=si.updateQueue)?(t={lastEffect:null,stores:null},si.updateQueue=t,t.stores=[e]):null===(n=t.stores)?t.stores=[e]:n.push(e)}function _i(e,t,n,r){t.value=n,t.getSnapshot=r,Ai(t)&&Ti(e)}function Oi(e,t,n){return n((function(){Ai(t)&&Ti(e)}))}function Ai(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!sr(e,n)}catch(r){return!0}}function Ti(e){var t=Na(e,1);null!==t&&nc(t,e,1,-1)}function ji(e){var t=vi();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:wi,lastRenderedState:e},t.queue=e,e=e.dispatch=Ki.bind(null,si,e),[t.memoizedState,e]}function Li(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=si.updateQueue)?(t={lastEffect:null,stores:null},si.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function Pi(){return yi().memoizedState}function Di(e,t,n,r){var o=vi();si.flags|=e,o.memoizedState=Li(1|t,n,void 0,void 0===r?null:r)}function Ri(e,t,n,r){var o=yi();r=void 0===r?null:r;var a=void 0;if(null!==li){var i=li.memoizedState;if(a=i.destroy,null!==r&&hi(r,i.deps))return void(o.memoizedState=Li(t,n,a,r))}si.flags|=e,o.memoizedState=Li(1|t,n,a,r)}function Ni(e,t){return Di(8390656,8,e,t)}function Ii(e,t){return Ri(2048,8,e,t)}function Mi(e,t){return Ri(4,2,e,t)}function Fi(e,t){return Ri(4,4,e,t)}function Bi(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function zi(e,t,n){return n=null!=n?n.concat([e]):null,Ri(4,4,Bi.bind(null,t,e),n)}function Ui(){}function qi(e,t){var n=yi();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&hi(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function $i(e,t){var n=yi();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&hi(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Hi(e,t,n){return 21&ii?(sr(n,t)||(n=ht(),si.lanes|=n,Il|=n,e.baseState=!0),t):(e.baseState&&(e.baseState=!1,ys=!0),e.memoizedState=n)}function Gi(e,t){var n=yt;yt=0!==n&&4>n?n:4,e(!0);var r=ai.transition;ai.transition={};try{e(!1),t()}finally{yt=n,ai.transition=r}}function Vi(){return yi().memoizedState}function Wi(e,t,n){var r=tc(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Qi(e))Zi(t,n);else if(null!==(n=Ra(e,t,n,r))){nc(n,e,r,ec()),Yi(n,t,r)}}function Ki(e,t,n){var r=tc(e),o={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Qi(e))Zi(t,o);else{var a=e.alternate;if(0===e.lanes&&(null===a||0===a.lanes)&&null!==(a=t.lastRenderedReducer))try{var i=t.lastRenderedState,s=a(i,n);if(o.hasEagerState=!0,o.eagerState=s,sr(s,i)){var l=t.interleaved;return null===l?(o.next=o,Da(t)):(o.next=l.next,l.next=o),void(t.interleaved=o)}}catch(c){}null!==(n=Ra(e,t,o,r))&&(nc(n,e,r,o=ec()),Yi(n,t,r))}}function Qi(e){var t=e.alternate;return e===si||null!==t&&t===si}function Zi(e,t){di=ui=!0;var n=e.pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Yi(e,t,n){if(4194240&n){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,vt(e,n)}}var Ji={readContext:La,useCallback:mi,useContext:mi,useEffect:mi,useImperativeHandle:mi,useInsertionEffect:mi,useLayoutEffect:mi,useMemo:mi,useReducer:mi,useRef:mi,useState:mi,useDebugValue:mi,useDeferredValue:mi,useTransition:mi,useMutableSource:mi,useSyncExternalStore:mi,useId:mi,unstable_isNewReconciler:!1},Xi={readContext:La,useCallback:function(e,t){return vi().memoizedState=[e,void 0===t?null:t],e},useContext:La,useEffect:Ni,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,Di(4194308,4,Bi.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Di(4194308,4,e,t)},useInsertionEffect:function(e,t){return Di(4,2,e,t)},useMemo:function(e,t){var n=vi();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=vi();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=Wi.bind(null,si,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},vi().memoizedState=e},useState:ji,useDebugValue:Ui,useDeferredValue:function(e){return vi().memoizedState=e},useTransition:function(){var e=ji(!1),t=e[0];return e=Gi.bind(null,e[1]),vi().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=si,o=vi();if(aa){if(void 0===n)throw Error(a(407));n=n()}else{if(n=t(),null===Tl)throw Error(a(349));30&ii||Ci(r,t,n)}o.memoizedState=n;var i={value:n,getSnapshot:t};return o.queue=i,Ni(Oi.bind(null,r,i,e),[e]),r.flags|=2048,Li(9,_i.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=vi(),t=Tl.identifierPrefix;if(aa){var n=Jo;t=":"+t+"R"+(n=(Yo&~(1<<32-it(Yo)-1)).toString(32)+n),0<(n=pi++)&&(t+="H"+n.toString(32)),t+=":"}else t=":"+t+"r"+(n=fi++).toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},es={readContext:La,useCallback:qi,useContext:La,useEffect:Ii,useImperativeHandle:zi,useInsertionEffect:Mi,useLayoutEffect:Fi,useMemo:$i,useReducer:ki,useRef:Pi,useState:function(){return ki(wi)},useDebugValue:Ui,useDeferredValue:function(e){return Hi(yi(),li.memoizedState,e)},useTransition:function(){return[ki(wi)[0],yi().memoizedState]},useMutableSource:xi,useSyncExternalStore:Ei,useId:Vi,unstable_isNewReconciler:!1},ts={readContext:La,useCallback:qi,useContext:La,useEffect:Ii,useImperativeHandle:zi,useInsertionEffect:Mi,useLayoutEffect:Fi,useMemo:$i,useReducer:Si,useRef:Pi,useState:function(){return Si(wi)},useDebugValue:Ui,useDeferredValue:function(e){var t=yi();return null===li?t.memoizedState=e:Hi(t,li.memoizedState,e)},useTransition:function(){return[Si(wi)[0],yi().memoizedState]},useMutableSource:xi,useSyncExternalStore:Ei,useId:Vi,unstable_isNewReconciler:!1};function ns(e,t){if(e&&e.defaultProps){for(var n in t=M({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}function rs(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:M({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var os={isMounted:function(e){return!!(e=e._reactInternals)&&qe(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=ec(),o=tc(e),a=Ba(r,o);a.payload=t,null!=n&&(a.callback=n),null!==(t=za(e,a,o))&&(nc(t,e,o,r),Ua(t,e,o))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=ec(),o=tc(e),a=Ba(r,o);a.tag=1,a.payload=t,null!=n&&(a.callback=n),null!==(t=za(e,a,o))&&(nc(t,e,o,r),Ua(t,e,o))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=ec(),r=tc(e),o=Ba(n,r);o.tag=2,null!=t&&(o.callback=t),null!==(t=za(e,o,r))&&(nc(t,e,r,n),Ua(t,e,r))}};function as(e,t,n,r,o,a,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,a,i):!t.prototype||!t.prototype.isPureReactComponent||(!lr(n,r)||!lr(o,a))}function is(e,t,n){var r=!1,o=Ao,a=t.contextType;return"object"==typeof a&&null!==a?a=La(a):(o=Do(t)?Lo:To.current,a=(r=null!=(r=t.contextTypes))?Po(e,o):Ao),t=new t(n,a),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=os,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=o,e.__reactInternalMemoizedMaskedChildContext=a),t}function ss(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&os.enqueueReplaceState(t,t.state,null)}function ls(e,t,n,r){var o=e.stateNode;o.props=n,o.state=e.memoizedState,o.refs={},Ma(e);var a=t.contextType;"object"==typeof a&&null!==a?o.context=La(a):(a=Do(t)?Lo:To.current,o.context=Po(e,a)),o.state=e.memoizedState,"function"==typeof(a=t.getDerivedStateFromProps)&&(rs(e,t,a,n),o.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof o.getSnapshotBeforeUpdate||"function"!=typeof o.UNSAFE_componentWillMount&&"function"!=typeof o.componentWillMount||(t=o.state,"function"==typeof o.componentWillMount&&o.componentWillMount(),"function"==typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount(),t!==o.state&&os.enqueueReplaceState(o,o.state,null),$a(e,n,o,r),o.state=e.memoizedState),"function"==typeof o.componentDidMount&&(e.flags|=4194308)}function cs(e,t){try{var n="",r=t;do{n+=U(r),r=r.return}while(r);var o=n}catch(a){o="\nError generating stack: "+a.message+"\n"+a.stack}return{value:e,source:t,stack:o,digest:null}}function us(e,t,n){return{value:e,source:null,stack:null!=n?n:null,digest:null!=t?t:null}}function ds(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}var ps="function"==typeof WeakMap?WeakMap:Map;function fs(e,t,n){(n=Ba(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Hl||(Hl=!0,Gl=r),ds(0,t)},n}function ms(e,t,n){(n=Ba(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var o=t.value;n.payload=function(){return r(o)},n.callback=function(){ds(0,t)}}var a=e.stateNode;return null!==a&&"function"==typeof a.componentDidCatch&&(n.callback=function(){ds(0,t),"function"!=typeof r&&(null===Vl?Vl=new Set([this]):Vl.add(this));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}function hs(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new ps;var o=new Set;r.set(t,o)}else void 0===(o=r.get(t))&&(o=new Set,r.set(t,o));o.has(n)||(o.add(n),e=Cc.bind(null,e,t,n),t.then(e,e))}function gs(e){do{var t;if((t=13===e.tag)&&(t=null===(t=e.memoizedState)||null!==t.dehydrated),t)return e;e=e.return}while(null!==e);return null}function bs(e,t,n,r,o){return 1&e.mode?(e.flags|=65536,e.lanes=o,e):(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,1===n.tag&&(null===n.alternate?n.tag=17:((t=Ba(-1,1)).tag=2,za(n,t,1))),n.lanes|=1),e)}var vs=w.ReactCurrentOwner,ys=!1;function ws(e,t,n,r){t.child=null===e?Sa(t,null,n,r):ka(t,e.child,n,r)}function ks(e,t,n,r,o){n=n.render;var a=t.ref;return ja(t,o),r=gi(e,t,n,r,a,o),n=bi(),null===e||ys?(aa&&n&&ta(t),t.flags|=1,ws(e,t,r,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,Hs(e,t,o))}function Ss(e,t,n,r,o){if(null===e){var a=n.type;return"function"!=typeof a||Pc(a)||void 0!==a.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Rc(n.type,null,r,t,t.mode,o)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=a,xs(e,t,a,r,o))}if(a=e.child,!(e.lanes&o)){var i=a.memoizedProps;if((n=null!==(n=n.compare)?n:lr)(i,r)&&e.ref===t.ref)return Hs(e,t,o)}return t.flags|=1,(e=Dc(a,r)).ref=t.ref,e.return=t,t.child=e}function xs(e,t,n,r,o){if(null!==e){var a=e.memoizedProps;if(lr(a,r)&&e.ref===t.ref){if(ys=!1,t.pendingProps=r=a,!(e.lanes&o))return t.lanes=e.lanes,Hs(e,t,o);131072&e.flags&&(ys=!0)}}return _s(e,t,n,r,o)}function Es(e,t,n){var r=t.pendingProps,o=r.children,a=null!==e?e.memoizedState:null;if("hidden"===r.mode)if(1&t.mode){if(!(1073741824&n))return e=null!==a?a.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,Oo(Dl,Pl),Pl|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=null!==a?a.baseLanes:n,Oo(Dl,Pl),Pl|=r}else t.memoizedState={baseLanes:0,cachePool:null,transitions:null},Oo(Dl,Pl),Pl|=n;else null!==a?(r=a.baseLanes|n,t.memoizedState=null):r=n,Oo(Dl,Pl),Pl|=r;return ws(e,t,o,n),t.child}function Cs(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function _s(e,t,n,r,o){var a=Do(n)?Lo:To.current;return a=Po(t,a),ja(t,o),n=gi(e,t,n,r,a,o),r=bi(),null===e||ys?(aa&&r&&ta(t),t.flags|=1,ws(e,t,n,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,Hs(e,t,o))}function Os(e,t,n,r,o){if(Do(n)){var a=!0;Mo(t)}else a=!1;if(ja(t,o),null===t.stateNode)$s(e,t),is(t,n,r),ls(t,n,r,o),r=!0;else if(null===e){var i=t.stateNode,s=t.memoizedProps;i.props=s;var l=i.context,c=n.contextType;"object"==typeof c&&null!==c?c=La(c):c=Po(t,c=Do(n)?Lo:To.current);var u=n.getDerivedStateFromProps,d="function"==typeof u||"function"==typeof i.getSnapshotBeforeUpdate;d||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(s!==r||l!==c)&&ss(t,i,r,c),Ia=!1;var p=t.memoizedState;i.state=p,$a(t,r,i,o),l=t.memoizedState,s!==r||p!==l||jo.current||Ia?("function"==typeof u&&(rs(t,n,u,r),l=t.memoizedState),(s=Ia||as(t,n,s,r,p,l,c))?(d||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||("function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"==typeof i.componentDidMount&&(t.flags|=4194308)):("function"==typeof i.componentDidMount&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=l),i.props=r,i.state=l,i.context=c,r=s):("function"==typeof i.componentDidMount&&(t.flags|=4194308),r=!1)}else{i=t.stateNode,Fa(e,t),s=t.memoizedProps,c=t.type===t.elementType?s:ns(t.type,s),i.props=c,d=t.pendingProps,p=i.context,"object"==typeof(l=n.contextType)&&null!==l?l=La(l):l=Po(t,l=Do(n)?Lo:To.current);var f=n.getDerivedStateFromProps;(u="function"==typeof f||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(s!==d||p!==l)&&ss(t,i,r,l),Ia=!1,p=t.memoizedState,i.state=p,$a(t,r,i,o);var m=t.memoizedState;s!==d||p!==m||jo.current||Ia?("function"==typeof f&&(rs(t,n,f,r),m=t.memoizedState),(c=Ia||as(t,n,c,r,p,m,l)||!1)?(u||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,m,l),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,m,l)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=1024)):("function"!=typeof i.componentDidUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=m),i.props=r,i.state=m,i.context=l,r=c):("function"!=typeof i.componentDidUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),r=!1)}return As(e,t,n,r,a,o)}function As(e,t,n,r,o,a){Cs(e,t);var i=!!(128&t.flags);if(!r&&!i)return o&&Fo(t,n,!1),Hs(e,t,a);r=t.stateNode,vs.current=t;var s=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=ka(t,e.child,null,a),t.child=ka(t,null,s,a)):ws(e,t,s,a),t.memoizedState=r.state,o&&Fo(t,n,!0),t.child}function Ts(e){var t=e.stateNode;t.pendingContext?No(0,t.pendingContext,t.pendingContext!==t.context):t.context&&No(0,t.context,!1),Za(e,t.containerInfo)}function js(e,t,n,r,o){return ma(),ha(o),t.flags|=256,ws(e,t,n,r),t.child}var Ls,Ps,Ds,Rs,Ns={dehydrated:null,treeContext:null,retryLane:0};function Is(e){return{baseLanes:e,cachePool:null,transitions:null}}function Ms(e,t,n){var r,o=t.pendingProps,i=ei.current,s=!1,l=!!(128&t.flags);if((r=l)||(r=(null===e||null!==e.memoizedState)&&!!(2&i)),r?(s=!0,t.flags&=-129):null!==e&&null===e.memoizedState||(i|=1),Oo(ei,1&i),null===e)return ua(t),null!==(e=t.memoizedState)&&null!==(e=e.dehydrated)?(1&t.mode?"$!"===e.data?t.lanes=8:t.lanes=1073741824:t.lanes=1,null):(l=o.children,e=o.fallback,s?(o=t.mode,s=t.child,l={mode:"hidden",children:l},1&o||null===s?s=Ic(l,o,0,null):(s.childLanes=0,s.pendingProps=l),e=Nc(e,o,n,null),s.return=t,e.return=t,s.sibling=e,t.child=s,t.child.memoizedState=Is(n),t.memoizedState=Ns,e):Fs(t,l));if(null!==(i=e.memoizedState)&&null!==(r=i.dehydrated))return function(e,t,n,r,o,i,s){if(n)return 256&t.flags?(t.flags&=-257,Bs(e,t,s,r=us(Error(a(422))))):null!==t.memoizedState?(t.child=e.child,t.flags|=128,null):(i=r.fallback,o=t.mode,r=Ic({mode:"visible",children:r.children},o,0,null),(i=Nc(i,o,s,null)).flags|=2,r.return=t,i.return=t,r.sibling=i,t.child=r,1&t.mode&&ka(t,e.child,null,s),t.child.memoizedState=Is(s),t.memoizedState=Ns,i);if(!(1&t.mode))return Bs(e,t,s,null);if("$!"===o.data){if(r=o.nextSibling&&o.nextSibling.dataset)var l=r.dgst;return r=l,Bs(e,t,s,r=us(i=Error(a(419)),r,void 0))}if(l=!!(s&e.childLanes),ys||l){if(null!==(r=Tl)){switch(s&-s){case 4:o=2;break;case 16:o=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:o=32;break;case 536870912:o=268435456;break;default:o=0}0!==(o=o&(r.suspendedLanes|s)?0:o)&&o!==i.retryLane&&(i.retryLane=o,Na(e,o),nc(r,e,o,-1))}return hc(),Bs(e,t,s,r=us(Error(a(421))))}return"$?"===o.data?(t.flags|=128,t.child=e.child,t=Oc.bind(null,e),o._reactRetry=t,null):(e=i.treeContext,oa=co(o.nextSibling),ra=t,aa=!0,ia=null,null!==e&&(Ko[Qo++]=Yo,Ko[Qo++]=Jo,Ko[Qo++]=Zo,Yo=e.id,Jo=e.overflow,Zo=t),t=Fs(t,r.children),t.flags|=4096,t)}(e,t,l,o,r,i,n);if(s){s=o.fallback,l=t.mode,r=(i=e.child).sibling;var c={mode:"hidden",children:o.children};return 1&l||t.child===i?(o=Dc(i,c)).subtreeFlags=14680064&i.subtreeFlags:((o=t.child).childLanes=0,o.pendingProps=c,t.deletions=null),null!==r?s=Dc(r,s):(s=Nc(s,l,n,null)).flags|=2,s.return=t,o.return=t,o.sibling=s,t.child=o,o=s,s=t.child,l=null===(l=e.child.memoizedState)?Is(n):{baseLanes:l.baseLanes|n,cachePool:null,transitions:l.transitions},s.memoizedState=l,s.childLanes=e.childLanes&~n,t.memoizedState=Ns,o}return e=(s=e.child).sibling,o=Dc(s,{mode:"visible",children:o.children}),!(1&t.mode)&&(o.lanes=n),o.return=t,o.sibling=null,null!==e&&(null===(n=t.deletions)?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=o,t.memoizedState=null,o}function Fs(e,t){return(t=Ic({mode:"visible",children:t},e.mode,0,null)).return=e,e.child=t}function Bs(e,t,n,r){return null!==r&&ha(r),ka(t,e.child,null,n),(e=Fs(t,t.pendingProps.children)).flags|=2,t.memoizedState=null,e}function zs(e,t,n){e.lanes|=t;var r=e.alternate;null!==r&&(r.lanes|=t),Ta(e.return,t,n)}function Us(e,t,n,r,o){var a=e.memoizedState;null===a?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:o}:(a.isBackwards=t,a.rendering=null,a.renderingStartTime=0,a.last=r,a.tail=n,a.tailMode=o)}function qs(e,t,n){var r=t.pendingProps,o=r.revealOrder,a=r.tail;if(ws(e,t,r.children,n),2&(r=ei.current))r=1&r|2,t.flags|=128;else{if(null!==e&&128&e.flags)e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&zs(e,n,t);else if(19===e.tag)zs(e,n,t);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(Oo(ei,r),1&t.mode)switch(o){case"forwards":for(n=t.child,o=null;null!==n;)null!==(e=n.alternate)&&null===ti(e)&&(o=n),n=n.sibling;null===(n=o)?(o=t.child,t.child=null):(o=n.sibling,n.sibling=null),Us(t,!1,o,n,a);break;case"backwards":for(n=null,o=t.child,t.child=null;null!==o;){if(null!==(e=o.alternate)&&null===ti(e)){t.child=o;break}e=o.sibling,o.sibling=n,n=o,o=e}Us(t,!0,n,null,a);break;case"together":Us(t,!1,null,null,void 0);break;default:t.memoizedState=null}else t.memoizedState=null;return t.child}function $s(e,t){!(1&t.mode)&&null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Hs(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Il|=t.lanes,!(n&t.childLanes))return null;if(null!==e&&t.child!==e.child)throw Error(a(153));if(null!==t.child){for(n=Dc(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Dc(e,e.pendingProps)).return=t;n.sibling=null}return t.child}function Gs(e,t){if(!aa)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Vs(e){var t=null!==e.alternate&&e.alternate.child===e.child,n=0,r=0;if(t)for(var o=e.child;null!==o;)n|=o.lanes|o.childLanes,r|=14680064&o.subtreeFlags,r|=14680064&o.flags,o.return=e,o=o.sibling;else for(o=e.child;null!==o;)n|=o.lanes|o.childLanes,r|=o.subtreeFlags,r|=o.flags,o.return=e,o=o.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function Ws(e,t,n){var r=t.pendingProps;switch(na(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Vs(t),null;case 1:case 17:return Do(t.type)&&Ro(),Vs(t),null;case 3:return r=t.stateNode,Ya(),_o(jo),_o(To),ri(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(pa(t)?t.flags|=4:null===e||e.memoizedState.isDehydrated&&!(256&t.flags)||(t.flags|=1024,null!==ia&&(ic(ia),ia=null))),Ps(e,t),Vs(t),null;case 5:Xa(t);var o=Qa(Ka.current);if(n=t.type,null!==e&&null!=t.stateNode)Ds(e,t,n,r,o),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(null===t.stateNode)throw Error(a(166));return Vs(t),null}if(e=Qa(Va.current),pa(t)){r=t.stateNode,n=t.type;var i=t.memoizedProps;switch(r[fo]=t,r[mo]=i,e=!!(1&t.mode),n){case"dialog":Br("cancel",r),Br("close",r);break;case"iframe":case"object":case"embed":Br("load",r);break;case"video":case"audio":for(o=0;o<Nr.length;o++)Br(Nr[o],r);break;case"source":Br("error",r);break;case"img":case"image":case"link":Br("error",r),Br("load",r);break;case"details":Br("toggle",r);break;case"input":Z(r,i),Br("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!i.multiple},Br("invalid",r);break;case"textarea":oe(r,i),Br("invalid",r)}for(var l in ve(n,i),o=null,i)if(i.hasOwnProperty(l)){var c=i[l];"children"===l?"string"==typeof c?r.textContent!==c&&(!0!==i.suppressHydrationWarning&&Jr(r.textContent,c,e),o=["children",c]):"number"==typeof c&&r.textContent!==""+c&&(!0!==i.suppressHydrationWarning&&Jr(r.textContent,c,e),o=["children",""+c]):s.hasOwnProperty(l)&&null!=c&&"onScroll"===l&&Br("scroll",r)}switch(n){case"input":V(r),X(r,i,!0);break;case"textarea":V(r),ie(r);break;case"select":case"option":break;default:"function"==typeof i.onClick&&(r.onclick=Xr)}r=o,t.updateQueue=r,null!==r&&(t.flags|=4)}else{l=9===o.nodeType?o:o.ownerDocument,"http://www.w3.org/1999/xhtml"===e&&(e=se(n)),"http://www.w3.org/1999/xhtml"===e?"script"===n?((e=l.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=l.createElement(n,{is:r.is}):(e=l.createElement(n),"select"===n&&(l=e,r.multiple?l.multiple=!0:r.size&&(l.size=r.size))):e=l.createElementNS(e,n),e[fo]=t,e[mo]=r,Ls(e,t,!1,!1),t.stateNode=e;e:{switch(l=ye(n,r),n){case"dialog":Br("cancel",e),Br("close",e),o=r;break;case"iframe":case"object":case"embed":Br("load",e),o=r;break;case"video":case"audio":for(o=0;o<Nr.length;o++)Br(Nr[o],e);o=r;break;case"source":Br("error",e),o=r;break;case"img":case"image":case"link":Br("error",e),Br("load",e),o=r;break;case"details":Br("toggle",e),o=r;break;case"input":Z(e,r),o=Q(e,r),Br("invalid",e);break;case"option":default:o=r;break;case"select":e._wrapperState={wasMultiple:!!r.multiple},o=M({},r,{value:void 0}),Br("invalid",e);break;case"textarea":oe(e,r),o=re(e,r),Br("invalid",e)}for(i in ve(n,o),c=o)if(c.hasOwnProperty(i)){var u=c[i];"style"===i?ge(e,u):"dangerouslySetInnerHTML"===i?null!=(u=u?u.__html:void 0)&&de(e,u):"children"===i?"string"==typeof u?("textarea"!==n||""!==u)&&pe(e,u):"number"==typeof u&&pe(e,""+u):"suppressContentEditableWarning"!==i&&"suppressHydrationWarning"!==i&&"autoFocus"!==i&&(s.hasOwnProperty(i)?null!=u&&"onScroll"===i&&Br("scroll",e):null!=u&&y(e,i,u,l))}switch(n){case"input":V(e),X(e,r,!1);break;case"textarea":V(e),ie(e);break;case"option":null!=r.value&&e.setAttribute("value",""+H(r.value));break;case"select":e.multiple=!!r.multiple,null!=(i=r.value)?ne(e,!!r.multiple,i,!1):null!=r.defaultValue&&ne(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof o.onClick&&(e.onclick=Xr)}switch(n){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}}r&&(t.flags|=4)}null!==t.ref&&(t.flags|=512,t.flags|=2097152)}return Vs(t),null;case 6:if(e&&null!=t.stateNode)Rs(e,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(a(166));if(n=Qa(Ka.current),Qa(Va.current),pa(t)){if(r=t.stateNode,n=t.memoizedProps,r[fo]=t,(i=r.nodeValue!==n)&&null!==(e=ra))switch(e.tag){case 3:Jr(r.nodeValue,n,!!(1&e.mode));break;case 5:!0!==e.memoizedProps.suppressHydrationWarning&&Jr(r.nodeValue,n,!!(1&e.mode))}i&&(t.flags|=4)}else(r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[fo]=t,t.stateNode=r}return Vs(t),null;case 13:if(_o(ei),r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(aa&&null!==oa&&1&t.mode&&!(128&t.flags))fa(),ma(),t.flags|=98560,i=!1;else if(i=pa(t),null!==r&&null!==r.dehydrated){if(null===e){if(!i)throw Error(a(318));if(!(i=null!==(i=t.memoizedState)?i.dehydrated:null))throw Error(a(317));i[fo]=t}else ma(),!(128&t.flags)&&(t.memoizedState=null),t.flags|=4;Vs(t),i=!1}else null!==ia&&(ic(ia),ia=null),i=!0;if(!i)return 65536&t.flags?t:null}return 128&t.flags?(t.lanes=n,t):((r=null!==r)!==(null!==e&&null!==e.memoizedState)&&r&&(t.child.flags|=8192,1&t.mode&&(null===e||1&ei.current?0===Rl&&(Rl=3):hc())),null!==t.updateQueue&&(t.flags|=4),Vs(t),null);case 4:return Ya(),Ps(e,t),null===e&&qr(t.stateNode.containerInfo),Vs(t),null;case 10:return Aa(t.type._context),Vs(t),null;case 19:if(_o(ei),null===(i=t.memoizedState))return Vs(t),null;if(r=!!(128&t.flags),null===(l=i.rendering))if(r)Gs(i,!1);else{if(0!==Rl||null!==e&&128&e.flags)for(e=t.child;null!==e;){if(null!==(l=ti(e))){for(t.flags|=128,Gs(i,!1),null!==(r=l.updateQueue)&&(t.updateQueue=r,t.flags|=4),t.subtreeFlags=0,r=n,n=t.child;null!==n;)e=r,(i=n).flags&=14680066,null===(l=i.alternate)?(i.childLanes=0,i.lanes=e,i.child=null,i.subtreeFlags=0,i.memoizedProps=null,i.memoizedState=null,i.updateQueue=null,i.dependencies=null,i.stateNode=null):(i.childLanes=l.childLanes,i.lanes=l.lanes,i.child=l.child,i.subtreeFlags=0,i.deletions=null,i.memoizedProps=l.memoizedProps,i.memoizedState=l.memoizedState,i.updateQueue=l.updateQueue,i.type=l.type,e=l.dependencies,i.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return Oo(ei,1&ei.current|2),t.child}e=e.sibling}null!==i.tail&&Ye()>ql&&(t.flags|=128,r=!0,Gs(i,!1),t.lanes=4194304)}else{if(!r)if(null!==(e=ti(l))){if(t.flags|=128,r=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),Gs(i,!0),null===i.tail&&"hidden"===i.tailMode&&!l.alternate&&!aa)return Vs(t),null}else 2*Ye()-i.renderingStartTime>ql&&1073741824!==n&&(t.flags|=128,r=!0,Gs(i,!1),t.lanes=4194304);i.isBackwards?(l.sibling=t.child,t.child=l):(null!==(n=i.last)?n.sibling=l:t.child=l,i.last=l)}return null!==i.tail?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Ye(),t.sibling=null,n=ei.current,Oo(ei,r?1&n|2:1&n),t):(Vs(t),null);case 22:case 23:return dc(),r=null!==t.memoizedState,null!==e&&null!==e.memoizedState!==r&&(t.flags|=8192),r&&1&t.mode?!!(1073741824&Pl)&&(Vs(t),6&t.subtreeFlags&&(t.flags|=8192)):Vs(t),null;case 24:case 25:return null}throw Error(a(156,t.tag))}function Ks(e,t){switch(na(t),t.tag){case 1:return Do(t.type)&&Ro(),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return Ya(),_o(jo),_o(To),ri(),65536&(e=t.flags)&&!(128&e)?(t.flags=-65537&e|128,t):null;case 5:return Xa(t),null;case 13:if(_o(ei),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(a(340));ma()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return _o(ei),null;case 4:return Ya(),null;case 10:return Aa(t.type._context),null;case 22:case 23:return dc(),null;default:return null}}Ls=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Ps=function(){},Ds=function(e,t,n,r){var o=e.memoizedProps;if(o!==r){e=t.stateNode,Qa(Va.current);var a,i=null;switch(n){case"input":o=Q(e,o),r=Q(e,r),i=[];break;case"select":o=M({},o,{value:void 0}),r=M({},r,{value:void 0}),i=[];break;case"textarea":o=re(e,o),r=re(e,r),i=[];break;default:"function"!=typeof o.onClick&&"function"==typeof r.onClick&&(e.onclick=Xr)}for(u in ve(n,r),n=null,o)if(!r.hasOwnProperty(u)&&o.hasOwnProperty(u)&&null!=o[u])if("style"===u){var l=o[u];for(a in l)l.hasOwnProperty(a)&&(n||(n={}),n[a]="")}else"dangerouslySetInnerHTML"!==u&&"children"!==u&&"suppressContentEditableWarning"!==u&&"suppressHydrationWarning"!==u&&"autoFocus"!==u&&(s.hasOwnProperty(u)?i||(i=[]):(i=i||[]).push(u,null));for(u in r){var c=r[u];if(l=null!=o?o[u]:void 0,r.hasOwnProperty(u)&&c!==l&&(null!=c||null!=l))if("style"===u)if(l){for(a in l)!l.hasOwnProperty(a)||c&&c.hasOwnProperty(a)||(n||(n={}),n[a]="");for(a in c)c.hasOwnProperty(a)&&l[a]!==c[a]&&(n||(n={}),n[a]=c[a])}else n||(i||(i=[]),i.push(u,n)),n=c;else"dangerouslySetInnerHTML"===u?(c=c?c.__html:void 0,l=l?l.__html:void 0,null!=c&&l!==c&&(i=i||[]).push(u,c)):"children"===u?"string"!=typeof c&&"number"!=typeof c||(i=i||[]).push(u,""+c):"suppressContentEditableWarning"!==u&&"suppressHydrationWarning"!==u&&(s.hasOwnProperty(u)?(null!=c&&"onScroll"===u&&Br("scroll",e),i||l===c||(i=[])):(i=i||[]).push(u,c))}n&&(i=i||[]).push("style",n);var u=i;(t.updateQueue=u)&&(t.flags|=4)}},Rs=function(e,t,n,r){n!==r&&(t.flags|=4)};var Qs=!1,Zs=!1,Ys="function"==typeof WeakSet?WeakSet:Set,Js=null;function Xs(e,t){var n=e.ref;if(null!==n)if("function"==typeof n)try{n(null)}catch(r){Ec(e,t,r)}else n.current=null}function el(e,t,n){try{n()}catch(r){Ec(e,t,r)}}var tl=!1;function nl(e,t,n){var r=t.updateQueue;if(null!==(r=null!==r?r.lastEffect:null)){var o=r=r.next;do{if((o.tag&e)===e){var a=o.destroy;o.destroy=void 0,void 0!==a&&el(t,n,a)}o=o.next}while(o!==r)}}function rl(e,t){if(null!==(t=null!==(t=t.updateQueue)?t.lastEffect:null)){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function ol(e){var t=e.ref;if(null!==t){var n=e.stateNode;e.tag,e=n,"function"==typeof t?t(e):t.current=e}}function al(e){var t=e.alternate;null!==t&&(e.alternate=null,al(t)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&(null!==(t=e.stateNode)&&(delete t[fo],delete t[mo],delete t[go],delete t[bo],delete t[vo])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function il(e){return 5===e.tag||3===e.tag||4===e.tag}function sl(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||il(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(2&e.flags)continue e;if(null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function ll(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=Xr));else if(4!==r&&null!==(e=e.child))for(ll(e,t,n),e=e.sibling;null!==e;)ll(e,t,n),e=e.sibling}function cl(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(cl(e,t,n),e=e.sibling;null!==e;)cl(e,t,n),e=e.sibling}var ul=null,dl=!1;function pl(e,t,n){for(n=n.child;null!==n;)fl(e,t,n),n=n.sibling}function fl(e,t,n){if(at&&"function"==typeof at.onCommitFiberUnmount)try{at.onCommitFiberUnmount(ot,n)}catch(s){}switch(n.tag){case 5:Zs||Xs(n,t);case 6:var r=ul,o=dl;ul=null,pl(e,t,n),dl=o,null!==(ul=r)&&(dl?(e=ul,n=n.stateNode,8===e.nodeType?e.parentNode.removeChild(n):e.removeChild(n)):ul.removeChild(n.stateNode));break;case 18:null!==ul&&(dl?(e=ul,n=n.stateNode,8===e.nodeType?lo(e.parentNode,n):1===e.nodeType&&lo(e,n),qt(e)):lo(ul,n.stateNode));break;case 4:r=ul,o=dl,ul=n.stateNode.containerInfo,dl=!0,pl(e,t,n),ul=r,dl=o;break;case 0:case 11:case 14:case 15:if(!Zs&&(null!==(r=n.updateQueue)&&null!==(r=r.lastEffect))){o=r=r.next;do{var a=o,i=a.destroy;a=a.tag,void 0!==i&&(2&a||4&a)&&el(n,t,i),o=o.next}while(o!==r)}pl(e,t,n);break;case 1:if(!Zs&&(Xs(n,t),"function"==typeof(r=n.stateNode).componentWillUnmount))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(s){Ec(n,t,s)}pl(e,t,n);break;case 21:pl(e,t,n);break;case 22:1&n.mode?(Zs=(r=Zs)||null!==n.memoizedState,pl(e,t,n),Zs=r):pl(e,t,n);break;default:pl(e,t,n)}}function ml(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new Ys),t.forEach((function(t){var r=Ac.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function hl(e,t){var n=t.deletions;if(null!==n)for(var r=0;r<n.length;r++){var o=n[r];try{var i=e,s=t,l=s;e:for(;null!==l;){switch(l.tag){case 5:ul=l.stateNode,dl=!1;break e;case 3:case 4:ul=l.stateNode.containerInfo,dl=!0;break e}l=l.return}if(null===ul)throw Error(a(160));fl(i,s,o),ul=null,dl=!1;var c=o.alternate;null!==c&&(c.return=null),o.return=null}catch(u){Ec(o,t,u)}}if(12854&t.subtreeFlags)for(t=t.child;null!==t;)gl(t,e),t=t.sibling}function gl(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(hl(t,e),bl(e),4&r){try{nl(3,e,e.return),rl(3,e)}catch(g){Ec(e,e.return,g)}try{nl(5,e,e.return)}catch(g){Ec(e,e.return,g)}}break;case 1:hl(t,e),bl(e),512&r&&null!==n&&Xs(n,n.return);break;case 5:if(hl(t,e),bl(e),512&r&&null!==n&&Xs(n,n.return),32&e.flags){var o=e.stateNode;try{pe(o,"")}catch(g){Ec(e,e.return,g)}}if(4&r&&null!=(o=e.stateNode)){var i=e.memoizedProps,s=null!==n?n.memoizedProps:i,l=e.type,c=e.updateQueue;if(e.updateQueue=null,null!==c)try{"input"===l&&"radio"===i.type&&null!=i.name&&Y(o,i),ye(l,s);var u=ye(l,i);for(s=0;s<c.length;s+=2){var d=c[s],p=c[s+1];"style"===d?ge(o,p):"dangerouslySetInnerHTML"===d?de(o,p):"children"===d?pe(o,p):y(o,d,p,u)}switch(l){case"input":J(o,i);break;case"textarea":ae(o,i);break;case"select":var f=o._wrapperState.wasMultiple;o._wrapperState.wasMultiple=!!i.multiple;var m=i.value;null!=m?ne(o,!!i.multiple,m,!1):f!==!!i.multiple&&(null!=i.defaultValue?ne(o,!!i.multiple,i.defaultValue,!0):ne(o,!!i.multiple,i.multiple?[]:"",!1))}o[mo]=i}catch(g){Ec(e,e.return,g)}}break;case 6:if(hl(t,e),bl(e),4&r){if(null===e.stateNode)throw Error(a(162));o=e.stateNode,i=e.memoizedProps;try{o.nodeValue=i}catch(g){Ec(e,e.return,g)}}break;case 3:if(hl(t,e),bl(e),4&r&&null!==n&&n.memoizedState.isDehydrated)try{qt(t.containerInfo)}catch(g){Ec(e,e.return,g)}break;case 4:default:hl(t,e),bl(e);break;case 13:hl(t,e),bl(e),8192&(o=e.child).flags&&(i=null!==o.memoizedState,o.stateNode.isHidden=i,!i||null!==o.alternate&&null!==o.alternate.memoizedState||(Ul=Ye())),4&r&&ml(e);break;case 22:if(d=null!==n&&null!==n.memoizedState,1&e.mode?(Zs=(u=Zs)||d,hl(t,e),Zs=u):hl(t,e),bl(e),8192&r){if(u=null!==e.memoizedState,(e.stateNode.isHidden=u)&&!d&&1&e.mode)for(Js=e,d=e.child;null!==d;){for(p=Js=d;null!==Js;){switch(m=(f=Js).child,f.tag){case 0:case 11:case 14:case 15:nl(4,f,f.return);break;case 1:Xs(f,f.return);var h=f.stateNode;if("function"==typeof h.componentWillUnmount){r=f,n=f.return;try{t=r,h.props=t.memoizedProps,h.state=t.memoizedState,h.componentWillUnmount()}catch(g){Ec(r,n,g)}}break;case 5:Xs(f,f.return);break;case 22:if(null!==f.memoizedState){kl(p);continue}}null!==m?(m.return=f,Js=m):kl(p)}d=d.sibling}e:for(d=null,p=e;;){if(5===p.tag){if(null===d){d=p;try{o=p.stateNode,u?"function"==typeof(i=o.style).setProperty?i.setProperty("display","none","important"):i.display="none":(l=p.stateNode,s=null!=(c=p.memoizedProps.style)&&c.hasOwnProperty("display")?c.display:null,l.style.display=he("display",s))}catch(g){Ec(e,e.return,g)}}}else if(6===p.tag){if(null===d)try{p.stateNode.nodeValue=u?"":p.memoizedProps}catch(g){Ec(e,e.return,g)}}else if((22!==p.tag&&23!==p.tag||null===p.memoizedState||p===e)&&null!==p.child){p.child.return=p,p=p.child;continue}if(p===e)break e;for(;null===p.sibling;){if(null===p.return||p.return===e)break e;d===p&&(d=null),p=p.return}d===p&&(d=null),p.sibling.return=p.return,p=p.sibling}}break;case 19:hl(t,e),bl(e),4&r&&ml(e);case 21:}}function bl(e){var t=e.flags;if(2&t){try{e:{for(var n=e.return;null!==n;){if(il(n)){var r=n;break e}n=n.return}throw Error(a(160))}switch(r.tag){case 5:var o=r.stateNode;32&r.flags&&(pe(o,""),r.flags&=-33),cl(e,sl(e),o);break;case 3:case 4:var i=r.stateNode.containerInfo;ll(e,sl(e),i);break;default:throw Error(a(161))}}catch(s){Ec(e,e.return,s)}e.flags&=-3}4096&t&&(e.flags&=-4097)}function vl(e,t,n){Js=e,yl(e,t,n)}function yl(e,t,n){for(var r=!!(1&e.mode);null!==Js;){var o=Js,a=o.child;if(22===o.tag&&r){var i=null!==o.memoizedState||Qs;if(!i){var s=o.alternate,l=null!==s&&null!==s.memoizedState||Zs;s=Qs;var c=Zs;if(Qs=i,(Zs=l)&&!c)for(Js=o;null!==Js;)l=(i=Js).child,22===i.tag&&null!==i.memoizedState?Sl(o):null!==l?(l.return=i,Js=l):Sl(o);for(;null!==a;)Js=a,yl(a,t,n),a=a.sibling;Js=o,Qs=s,Zs=c}wl(e)}else 8772&o.subtreeFlags&&null!==a?(a.return=o,Js=a):wl(e)}}function wl(e){for(;null!==Js;){var t=Js;if(8772&t.flags){var n=t.alternate;try{if(8772&t.flags)switch(t.tag){case 0:case 11:case 15:Zs||rl(5,t);break;case 1:var r=t.stateNode;if(4&t.flags&&!Zs)if(null===n)r.componentDidMount();else{var o=t.elementType===t.type?n.memoizedProps:ns(t.type,n.memoizedProps);r.componentDidUpdate(o,n.memoizedState,r.__reactInternalSnapshotBeforeUpdate)}var i=t.updateQueue;null!==i&&Ha(t,i,r);break;case 3:var s=t.updateQueue;if(null!==s){if(n=null,null!==t.child)switch(t.child.tag){case 5:case 1:n=t.child.stateNode}Ha(t,s,n)}break;case 5:var l=t.stateNode;if(null===n&&4&t.flags){n=l;var c=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":c.autoFocus&&n.focus();break;case"img":c.src&&(n.src=c.src)}}break;case 6:case 4:case 12:case 19:case 17:case 21:case 22:case 23:case 25:break;case 13:if(null===t.memoizedState){var u=t.alternate;if(null!==u){var d=u.memoizedState;if(null!==d){var p=d.dehydrated;null!==p&&qt(p)}}}break;default:throw Error(a(163))}Zs||512&t.flags&&ol(t)}catch(f){Ec(t,t.return,f)}}if(t===e){Js=null;break}if(null!==(n=t.sibling)){n.return=t.return,Js=n;break}Js=t.return}}function kl(e){for(;null!==Js;){var t=Js;if(t===e){Js=null;break}var n=t.sibling;if(null!==n){n.return=t.return,Js=n;break}Js=t.return}}function Sl(e){for(;null!==Js;){var t=Js;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{rl(4,t)}catch(l){Ec(t,n,l)}break;case 1:var r=t.stateNode;if("function"==typeof r.componentDidMount){var o=t.return;try{r.componentDidMount()}catch(l){Ec(t,o,l)}}var a=t.return;try{ol(t)}catch(l){Ec(t,a,l)}break;case 5:var i=t.return;try{ol(t)}catch(l){Ec(t,i,l)}}}catch(l){Ec(t,t.return,l)}if(t===e){Js=null;break}var s=t.sibling;if(null!==s){s.return=t.return,Js=s;break}Js=t.return}}var xl,El=Math.ceil,Cl=w.ReactCurrentDispatcher,_l=w.ReactCurrentOwner,Ol=w.ReactCurrentBatchConfig,Al=0,Tl=null,jl=null,Ll=0,Pl=0,Dl=Co(0),Rl=0,Nl=null,Il=0,Ml=0,Fl=0,Bl=null,zl=null,Ul=0,ql=1/0,$l=null,Hl=!1,Gl=null,Vl=null,Wl=!1,Kl=null,Ql=0,Zl=0,Yl=null,Jl=-1,Xl=0;function ec(){return 6&Al?Ye():-1!==Jl?Jl:Jl=Ye()}function tc(e){return 1&e.mode?2&Al&&0!==Ll?Ll&-Ll:null!==ga.transition?(0===Xl&&(Xl=ht()),Xl):0!==(e=yt)?e:e=void 0===(e=window.event)?16:Zt(e.type):1}function nc(e,t,n,r){if(50<Zl)throw Zl=0,Yl=null,Error(a(185));bt(e,n,r),2&Al&&e===Tl||(e===Tl&&(!(2&Al)&&(Ml|=n),4===Rl&&sc(e,Ll)),rc(e,r),1===n&&0===Al&&!(1&t.mode)&&(ql=Ye()+500,zo&&$o()))}function rc(e,t){var n=e.callbackNode;!function(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,o=e.expirationTimes,a=e.pendingLanes;0<a;){var i=31-it(a),s=1<<i,l=o[i];-1===l?s&n&&!(s&r)||(o[i]=ft(s,t)):l<=t&&(e.expiredLanes|=s),a&=~s}}(e,t);var r=pt(e,e===Tl?Ll:0);if(0===r)null!==n&&Ke(n),e.callbackNode=null,e.callbackPriority=0;else if(t=r&-r,e.callbackPriority!==t){if(null!=n&&Ke(n),1===t)0===e.tag?function(e){zo=!0,qo(e)}(lc.bind(null,e)):qo(lc.bind(null,e)),io((function(){!(6&Al)&&$o()})),n=null;else{switch(wt(r)){case 1:n=Xe;break;case 4:n=et;break;case 16:default:n=tt;break;case 536870912:n=rt}n=Tc(n,oc.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function oc(e,t){if(Jl=-1,Xl=0,6&Al)throw Error(a(327));var n=e.callbackNode;if(Sc()&&e.callbackNode!==n)return null;var r=pt(e,e===Tl?Ll:0);if(0===r)return null;if(30&r||r&e.expiredLanes||t)t=gc(e,r);else{t=r;var o=Al;Al|=2;var i=mc();for(Tl===e&&Ll===t||($l=null,ql=Ye()+500,pc(e,t));;)try{vc();break}catch(l){fc(e,l)}Oa(),Cl.current=i,Al=o,null!==jl?t=0:(Tl=null,Ll=0,t=Rl)}if(0!==t){if(2===t&&(0!==(o=mt(e))&&(r=o,t=ac(e,o))),1===t)throw n=Nl,pc(e,0),sc(e,r),rc(e,Ye()),n;if(6===t)sc(e,r);else{if(o=e.current.alternate,!(30&r||function(e){for(var t=e;;){if(16384&t.flags){var n=t.updateQueue;if(null!==n&&null!==(n=n.stores))for(var r=0;r<n.length;r++){var o=n[r],a=o.getSnapshot;o=o.value;try{if(!sr(a(),o))return!1}catch(s){return!1}}}if(n=t.child,16384&t.subtreeFlags&&null!==n)n.return=t,t=n;else{if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}(o)||(t=gc(e,r),2===t&&(i=mt(e),0!==i&&(r=i,t=ac(e,i))),1!==t)))throw n=Nl,pc(e,0),sc(e,r),rc(e,Ye()),n;switch(e.finishedWork=o,e.finishedLanes=r,t){case 0:case 1:throw Error(a(345));case 2:case 5:kc(e,zl,$l);break;case 3:if(sc(e,r),(130023424&r)===r&&10<(t=Ul+500-Ye())){if(0!==pt(e,0))break;if(((o=e.suspendedLanes)&r)!==r){ec(),e.pingedLanes|=e.suspendedLanes&o;break}e.timeoutHandle=ro(kc.bind(null,e,zl,$l),t);break}kc(e,zl,$l);break;case 4:if(sc(e,r),(4194240&r)===r)break;for(t=e.eventTimes,o=-1;0<r;){var s=31-it(r);i=1<<s,(s=t[s])>o&&(o=s),r&=~i}if(r=o,10<(r=(120>(r=Ye()-r)?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*El(r/1960))-r)){e.timeoutHandle=ro(kc.bind(null,e,zl,$l),r);break}kc(e,zl,$l);break;default:throw Error(a(329))}}}return rc(e,Ye()),e.callbackNode===n?oc.bind(null,e):null}function ac(e,t){var n=Bl;return e.current.memoizedState.isDehydrated&&(pc(e,t).flags|=256),2!==(e=gc(e,t))&&(t=zl,zl=n,null!==t&&ic(t)),e}function ic(e){null===zl?zl=e:zl.push.apply(zl,e)}function sc(e,t){for(t&=~Fl,t&=~Ml,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-it(t),r=1<<n;e[n]=-1,t&=~r}}function lc(e){if(6&Al)throw Error(a(327));Sc();var t=pt(e,0);if(!(1&t))return rc(e,Ye()),null;var n=gc(e,t);if(0!==e.tag&&2===n){var r=mt(e);0!==r&&(t=r,n=ac(e,r))}if(1===n)throw n=Nl,pc(e,0),sc(e,t),rc(e,Ye()),n;if(6===n)throw Error(a(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,kc(e,zl,$l),rc(e,Ye()),null}function cc(e,t){var n=Al;Al|=1;try{return e(t)}finally{0===(Al=n)&&(ql=Ye()+500,zo&&$o())}}function uc(e){null!==Kl&&0===Kl.tag&&!(6&Al)&&Sc();var t=Al;Al|=1;var n=Ol.transition,r=yt;try{if(Ol.transition=null,yt=1,e)return e()}finally{yt=r,Ol.transition=n,!(6&(Al=t))&&$o()}}function dc(){Pl=Dl.current,_o(Dl)}function pc(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,oo(n)),null!==jl)for(n=jl.return;null!==n;){var r=n;switch(na(r),r.tag){case 1:null!=(r=r.type.childContextTypes)&&Ro();break;case 3:Ya(),_o(jo),_o(To),ri();break;case 5:Xa(r);break;case 4:Ya();break;case 13:case 19:_o(ei);break;case 10:Aa(r.type._context);break;case 22:case 23:dc()}n=n.return}if(Tl=e,jl=e=Dc(e.current,null),Ll=Pl=t,Rl=0,Nl=null,Fl=Ml=Il=0,zl=Bl=null,null!==Pa){for(t=0;t<Pa.length;t++)if(null!==(r=(n=Pa[t]).interleaved)){n.interleaved=null;var o=r.next,a=n.pending;if(null!==a){var i=a.next;a.next=o,r.next=i}n.pending=r}Pa=null}return e}function fc(e,t){for(;;){var n=jl;try{if(Oa(),oi.current=Ji,ui){for(var r=si.memoizedState;null!==r;){var o=r.queue;null!==o&&(o.pending=null),r=r.next}ui=!1}if(ii=0,ci=li=si=null,di=!1,pi=0,_l.current=null,null===n||null===n.return){Rl=1,Nl=t,jl=null;break}e:{var i=e,s=n.return,l=n,c=t;if(t=Ll,l.flags|=32768,null!==c&&"object"==typeof c&&"function"==typeof c.then){var u=c,d=l,p=d.tag;if(!(1&d.mode||0!==p&&11!==p&&15!==p)){var f=d.alternate;f?(d.updateQueue=f.updateQueue,d.memoizedState=f.memoizedState,d.lanes=f.lanes):(d.updateQueue=null,d.memoizedState=null)}var m=gs(s);if(null!==m){m.flags&=-257,bs(m,s,l,0,t),1&m.mode&&hs(i,u,t),c=u;var h=(t=m).updateQueue;if(null===h){var g=new Set;g.add(c),t.updateQueue=g}else h.add(c);break e}if(!(1&t)){hs(i,u,t),hc();break e}c=Error(a(426))}else if(aa&&1&l.mode){var b=gs(s);if(null!==b){!(65536&b.flags)&&(b.flags|=256),bs(b,s,l,0,t),ha(cs(c,l));break e}}i=c=cs(c,l),4!==Rl&&(Rl=2),null===Bl?Bl=[i]:Bl.push(i),i=s;do{switch(i.tag){case 3:i.flags|=65536,t&=-t,i.lanes|=t,qa(i,fs(0,c,t));break e;case 1:l=c;var v=i.type,y=i.stateNode;if(!(128&i.flags||"function"!=typeof v.getDerivedStateFromError&&(null===y||"function"!=typeof y.componentDidCatch||null!==Vl&&Vl.has(y)))){i.flags|=65536,t&=-t,i.lanes|=t,qa(i,ms(i,l,t));break e}}i=i.return}while(null!==i)}wc(n)}catch(w){t=w,jl===n&&null!==n&&(jl=n=n.return);continue}break}}function mc(){var e=Cl.current;return Cl.current=Ji,null===e?Ji:e}function hc(){0!==Rl&&3!==Rl&&2!==Rl||(Rl=4),null===Tl||!(268435455&Il)&&!(268435455&Ml)||sc(Tl,Ll)}function gc(e,t){var n=Al;Al|=2;var r=mc();for(Tl===e&&Ll===t||($l=null,pc(e,t));;)try{bc();break}catch(o){fc(e,o)}if(Oa(),Al=n,Cl.current=r,null!==jl)throw Error(a(261));return Tl=null,Ll=0,Rl}function bc(){for(;null!==jl;)yc(jl)}function vc(){for(;null!==jl&&!Qe();)yc(jl)}function yc(e){var t=xl(e.alternate,e,Pl);e.memoizedProps=e.pendingProps,null===t?wc(e):jl=t,_l.current=null}function wc(e){var t=e;do{var n=t.alternate;if(e=t.return,32768&t.flags){if(null!==(n=Ks(n,t)))return n.flags&=32767,void(jl=n);if(null===e)return Rl=6,void(jl=null);e.flags|=32768,e.subtreeFlags=0,e.deletions=null}else if(null!==(n=Ws(n,t,Pl)))return void(jl=n);if(null!==(t=t.sibling))return void(jl=t);jl=t=e}while(null!==t);0===Rl&&(Rl=5)}function kc(e,t,n){var r=yt,o=Ol.transition;try{Ol.transition=null,yt=1,function(e,t,n,r){do{Sc()}while(null!==Kl);if(6&Al)throw Error(a(327));n=e.finishedWork;var o=e.finishedLanes;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(a(177));e.callbackNode=null,e.callbackPriority=0;var i=n.lanes|n.childLanes;if(function(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0<n;){var o=31-it(n),a=1<<o;t[o]=0,r[o]=-1,e[o]=-1,n&=~a}}(e,i),e===Tl&&(jl=Tl=null,Ll=0),!(2064&n.subtreeFlags)&&!(2064&n.flags)||Wl||(Wl=!0,Tc(tt,(function(){return Sc(),null}))),i=!!(15990&n.flags),!!(15990&n.subtreeFlags)||i){i=Ol.transition,Ol.transition=null;var s=yt;yt=1;var l=Al;Al|=4,_l.current=null,function(e,t){if(eo=Ht,fr(e=pr())){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{var r=(n=(n=e.ownerDocument)&&n.defaultView||window).getSelection&&n.getSelection();if(r&&0!==r.rangeCount){n=r.anchorNode;var o=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch(k){n=null;break e}var s=0,l=-1,c=-1,u=0,d=0,p=e,f=null;t:for(;;){for(var m;p!==n||0!==o&&3!==p.nodeType||(l=s+o),p!==i||0!==r&&3!==p.nodeType||(c=s+r),3===p.nodeType&&(s+=p.nodeValue.length),null!==(m=p.firstChild);)f=p,p=m;for(;;){if(p===e)break t;if(f===n&&++u===o&&(l=s),f===i&&++d===r&&(c=s),null!==(m=p.nextSibling))break;f=(p=f).parentNode}p=m}n=-1===l||-1===c?null:{start:l,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(to={focusedElem:e,selectionRange:n},Ht=!1,Js=t;null!==Js;)if(e=(t=Js).child,1028&t.subtreeFlags&&null!==e)e.return=t,Js=e;else for(;null!==Js;){t=Js;try{var h=t.alternate;if(1024&t.flags)switch(t.tag){case 0:case 11:case 15:case 5:case 6:case 4:case 17:break;case 1:if(null!==h){var g=h.memoizedProps,b=h.memoizedState,v=t.stateNode,y=v.getSnapshotBeforeUpdate(t.elementType===t.type?g:ns(t.type,g),b);v.__reactInternalSnapshotBeforeUpdate=y}break;case 3:var w=t.stateNode.containerInfo;1===w.nodeType?w.textContent="":9===w.nodeType&&w.documentElement&&w.removeChild(w.documentElement);break;default:throw Error(a(163))}}catch(k){Ec(t,t.return,k)}if(null!==(e=t.sibling)){e.return=t.return,Js=e;break}Js=t.return}h=tl,tl=!1}(e,n),gl(n,e),mr(to),Ht=!!eo,to=eo=null,e.current=n,vl(n,e,o),Ze(),Al=l,yt=s,Ol.transition=i}else e.current=n;if(Wl&&(Wl=!1,Kl=e,Ql=o),i=e.pendingLanes,0===i&&(Vl=null),function(e){if(at&&"function"==typeof at.onCommitFiberRoot)try{at.onCommitFiberRoot(ot,e,void 0,!(128&~e.current.flags))}catch(t){}}(n.stateNode),rc(e,Ye()),null!==t)for(r=e.onRecoverableError,n=0;n<t.length;n++)o=t[n],r(o.value,{componentStack:o.stack,digest:o.digest});if(Hl)throw Hl=!1,e=Gl,Gl=null,e;!!(1&Ql)&&0!==e.tag&&Sc(),i=e.pendingLanes,1&i?e===Yl?Zl++:(Zl=0,Yl=e):Zl=0,$o()}(e,t,n,r)}finally{Ol.transition=o,yt=r}return null}function Sc(){if(null!==Kl){var e=wt(Ql),t=Ol.transition,n=yt;try{if(Ol.transition=null,yt=16>e?16:e,null===Kl)var r=!1;else{if(e=Kl,Kl=null,Ql=0,6&Al)throw Error(a(331));var o=Al;for(Al|=4,Js=e.current;null!==Js;){var i=Js,s=i.child;if(16&Js.flags){var l=i.deletions;if(null!==l){for(var c=0;c<l.length;c++){var u=l[c];for(Js=u;null!==Js;){var d=Js;switch(d.tag){case 0:case 11:case 15:nl(8,d,i)}var p=d.child;if(null!==p)p.return=d,Js=p;else for(;null!==Js;){var f=(d=Js).sibling,m=d.return;if(al(d),d===u){Js=null;break}if(null!==f){f.return=m,Js=f;break}Js=m}}}var h=i.alternate;if(null!==h){var g=h.child;if(null!==g){h.child=null;do{var b=g.sibling;g.sibling=null,g=b}while(null!==g)}}Js=i}}if(2064&i.subtreeFlags&&null!==s)s.return=i,Js=s;else e:for(;null!==Js;){if(2048&(i=Js).flags)switch(i.tag){case 0:case 11:case 15:nl(9,i,i.return)}var v=i.sibling;if(null!==v){v.return=i.return,Js=v;break e}Js=i.return}}var y=e.current;for(Js=y;null!==Js;){var w=(s=Js).child;if(2064&s.subtreeFlags&&null!==w)w.return=s,Js=w;else e:for(s=y;null!==Js;){if(2048&(l=Js).flags)try{switch(l.tag){case 0:case 11:case 15:rl(9,l)}}catch(S){Ec(l,l.return,S)}if(l===s){Js=null;break e}var k=l.sibling;if(null!==k){k.return=l.return,Js=k;break e}Js=l.return}}if(Al=o,$o(),at&&"function"==typeof at.onPostCommitFiberRoot)try{at.onPostCommitFiberRoot(ot,e)}catch(S){}r=!0}return r}finally{yt=n,Ol.transition=t}}return!1}function xc(e,t,n){e=za(e,t=fs(0,t=cs(n,t),1),1),t=ec(),null!==e&&(bt(e,1,t),rc(e,t))}function Ec(e,t,n){if(3===e.tag)xc(e,e,n);else for(;null!==t;){if(3===t.tag){xc(t,e,n);break}if(1===t.tag){var r=t.stateNode;if("function"==typeof t.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Vl||!Vl.has(r))){t=za(t,e=ms(t,e=cs(n,e),1),1),e=ec(),null!==t&&(bt(t,1,e),rc(t,e));break}}t=t.return}}function Cc(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=ec(),e.pingedLanes|=e.suspendedLanes&n,Tl===e&&(Ll&n)===n&&(4===Rl||3===Rl&&(130023424&Ll)===Ll&&500>Ye()-Ul?pc(e,0):Fl|=n),rc(e,t)}function _c(e,t){0===t&&(1&e.mode?(t=ut,!(130023424&(ut<<=1))&&(ut=4194304)):t=1);var n=ec();null!==(e=Na(e,t))&&(bt(e,t,n),rc(e,n))}function Oc(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),_c(e,n)}function Ac(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,o=e.memoizedState;null!==o&&(n=o.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(a(314))}null!==r&&r.delete(t),_c(e,n)}function Tc(e,t){return We(e,t)}function jc(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Lc(e,t,n,r){return new jc(e,t,n,r)}function Pc(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Dc(e,t){var n=e.alternate;return null===n?((n=Lc(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=14680064&e.flags,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Rc(e,t,n,r,o,i){var s=2;if(r=e,"function"==typeof e)Pc(e)&&(s=1);else if("string"==typeof e)s=5;else e:switch(e){case x:return Nc(n.children,o,i,t);case E:s=8,o|=8;break;case C:return(e=Lc(12,n,t,2|o)).elementType=C,e.lanes=i,e;case T:return(e=Lc(13,n,t,o)).elementType=T,e.lanes=i,e;case j:return(e=Lc(19,n,t,o)).elementType=j,e.lanes=i,e;case D:return Ic(n,o,i,t);default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case _:s=10;break e;case O:s=9;break e;case A:s=11;break e;case L:s=14;break e;case P:s=16,r=null;break e}throw Error(a(130,null==e?e:typeof e,""))}return(t=Lc(s,n,t,o)).elementType=e,t.type=r,t.lanes=i,t}function Nc(e,t,n,r){return(e=Lc(7,e,r,t)).lanes=n,e}function Ic(e,t,n,r){return(e=Lc(22,e,r,t)).elementType=D,e.lanes=n,e.stateNode={isHidden:!1},e}function Mc(e,t,n){return(e=Lc(6,e,null,t)).lanes=n,e}function Fc(e,t,n){return(t=Lc(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Bc(e,t,n,r,o){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=gt(0),this.expirationTimes=gt(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=gt(0),this.identifierPrefix=r,this.onRecoverableError=o,this.mutableSourceEagerHydrationData=null}function zc(e,t,n,r,o,a,i,s,l){return e=new Bc(e,t,n,s,l),1===t?(t=1,!0===a&&(t|=8)):t=0,a=Lc(3,null,null,t),e.current=a,a.stateNode=e,a.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Ma(a),e}function Uc(e){if(!e)return Ao;e:{if(qe(e=e._reactInternals)!==e||1!==e.tag)throw Error(a(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(Do(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(null!==t);throw Error(a(171))}if(1===e.tag){var n=e.type;if(Do(n))return Io(e,n,t)}return t}function qc(e,t,n,r,o,a,i,s,l){return(e=zc(n,r,!0,e,0,a,0,s,l)).context=Uc(null),n=e.current,(a=Ba(r=ec(),o=tc(n))).callback=null!=t?t:null,za(n,a,o),e.current.lanes=o,bt(e,o,r),rc(e,r),e}function $c(e,t,n,r){var o=t.current,a=ec(),i=tc(o);return n=Uc(n),null===t.context?t.context=n:t.pendingContext=n,(t=Ba(a,i)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),null!==(e=za(o,t,i))&&(nc(e,o,i,a),Ua(e,o,i)),i}function Hc(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function Gc(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function Vc(e,t){Gc(e,t),(e=e.alternate)&&Gc(e,t)}xl=function(e,t,n){if(null!==e)if(e.memoizedProps!==t.pendingProps||jo.current)ys=!0;else{if(!(e.lanes&n||128&t.flags))return ys=!1,function(e,t,n){switch(t.tag){case 3:Ts(t),ma();break;case 5:Ja(t);break;case 1:Do(t.type)&&Mo(t);break;case 4:Za(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,o=t.memoizedProps.value;Oo(xa,r._currentValue),r._currentValue=o;break;case 13:if(null!==(r=t.memoizedState))return null!==r.dehydrated?(Oo(ei,1&ei.current),t.flags|=128,null):n&t.child.childLanes?Ms(e,t,n):(Oo(ei,1&ei.current),null!==(e=Hs(e,t,n))?e.sibling:null);Oo(ei,1&ei.current);break;case 19:if(r=!!(n&t.childLanes),128&e.flags){if(r)return qs(e,t,n);t.flags|=128}if(null!==(o=t.memoizedState)&&(o.rendering=null,o.tail=null,o.lastEffect=null),Oo(ei,ei.current),r)break;return null;case 22:case 23:return t.lanes=0,Es(e,t,n)}return Hs(e,t,n)}(e,t,n);ys=!!(131072&e.flags)}else ys=!1,aa&&1048576&t.flags&&ea(t,Wo,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;$s(e,t),e=t.pendingProps;var o=Po(t,To.current);ja(t,n),o=gi(null,t,r,e,o,n);var i=bi();return t.flags|=1,"object"==typeof o&&null!==o&&"function"==typeof o.render&&void 0===o.$$typeof?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Do(r)?(i=!0,Mo(t)):i=!1,t.memoizedState=null!==o.state&&void 0!==o.state?o.state:null,Ma(t),o.updater=os,t.stateNode=o,o._reactInternals=t,ls(t,r,e,n),t=As(null,t,r,!0,i,n)):(t.tag=0,aa&&i&&ta(t),ws(null,t,o,n),t=t.child),t;case 16:r=t.elementType;e:{switch($s(e,t),e=t.pendingProps,r=(o=r._init)(r._payload),t.type=r,o=t.tag=function(e){if("function"==typeof e)return Pc(e)?1:0;if(null!=e){if((e=e.$$typeof)===A)return 11;if(e===L)return 14}return 2}(r),e=ns(r,e),o){case 0:t=_s(null,t,r,e,n);break e;case 1:t=Os(null,t,r,e,n);break e;case 11:t=ks(null,t,r,e,n);break e;case 14:t=Ss(null,t,r,ns(r.type,e),n);break e}throw Error(a(306,r,""))}return t;case 0:return r=t.type,o=t.pendingProps,_s(e,t,r,o=t.elementType===r?o:ns(r,o),n);case 1:return r=t.type,o=t.pendingProps,Os(e,t,r,o=t.elementType===r?o:ns(r,o),n);case 3:e:{if(Ts(t),null===e)throw Error(a(387));r=t.pendingProps,o=(i=t.memoizedState).element,Fa(e,t),$a(t,r,null,n);var s=t.memoizedState;if(r=s.element,i.isDehydrated){if(i={element:r,isDehydrated:!1,cache:s.cache,pendingSuspenseBoundaries:s.pendingSuspenseBoundaries,transitions:s.transitions},t.updateQueue.baseState=i,t.memoizedState=i,256&t.flags){t=js(e,t,r,n,o=cs(Error(a(423)),t));break e}if(r!==o){t=js(e,t,r,n,o=cs(Error(a(424)),t));break e}for(oa=co(t.stateNode.containerInfo.firstChild),ra=t,aa=!0,ia=null,n=Sa(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|4096,n=n.sibling}else{if(ma(),r===o){t=Hs(e,t,n);break e}ws(e,t,r,n)}t=t.child}return t;case 5:return Ja(t),null===e&&ua(t),r=t.type,o=t.pendingProps,i=null!==e?e.memoizedProps:null,s=o.children,no(r,o)?s=null:null!==i&&no(r,i)&&(t.flags|=32),Cs(e,t),ws(e,t,s,n),t.child;case 6:return null===e&&ua(t),null;case 13:return Ms(e,t,n);case 4:return Za(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=ka(t,null,r,n):ws(e,t,r,n),t.child;case 11:return r=t.type,o=t.pendingProps,ks(e,t,r,o=t.elementType===r?o:ns(r,o),n);case 7:return ws(e,t,t.pendingProps,n),t.child;case 8:case 12:return ws(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,o=t.pendingProps,i=t.memoizedProps,s=o.value,Oo(xa,r._currentValue),r._currentValue=s,null!==i)if(sr(i.value,s)){if(i.children===o.children&&!jo.current){t=Hs(e,t,n);break e}}else for(null!==(i=t.child)&&(i.return=t);null!==i;){var l=i.dependencies;if(null!==l){s=i.child;for(var c=l.firstContext;null!==c;){if(c.context===r){if(1===i.tag){(c=Ba(-1,n&-n)).tag=2;var u=i.updateQueue;if(null!==u){var d=(u=u.shared).pending;null===d?c.next=c:(c.next=d.next,d.next=c),u.pending=c}}i.lanes|=n,null!==(c=i.alternate)&&(c.lanes|=n),Ta(i.return,n,t),l.lanes|=n;break}c=c.next}}else if(10===i.tag)s=i.type===t.type?null:i.child;else if(18===i.tag){if(null===(s=i.return))throw Error(a(341));s.lanes|=n,null!==(l=s.alternate)&&(l.lanes|=n),Ta(s,n,t),s=i.sibling}else s=i.child;if(null!==s)s.return=i;else for(s=i;null!==s;){if(s===t){s=null;break}if(null!==(i=s.sibling)){i.return=s.return,s=i;break}s=s.return}i=s}ws(e,t,o.children,n),t=t.child}return t;case 9:return o=t.type,r=t.pendingProps.children,ja(t,n),r=r(o=La(o)),t.flags|=1,ws(e,t,r,n),t.child;case 14:return o=ns(r=t.type,t.pendingProps),Ss(e,t,r,o=ns(r.type,o),n);case 15:return xs(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:ns(r,o),$s(e,t),t.tag=1,Do(r)?(e=!0,Mo(t)):e=!1,ja(t,n),is(t,r,o),ls(t,r,o,n),As(null,t,r,!0,e,n);case 19:return qs(e,t,n);case 22:return Es(e,t,n)}throw Error(a(156,t.tag))};var Wc="function"==typeof reportError?reportError:function(e){console.error(e)};function Kc(e){this._internalRoot=e}function Qc(e){this._internalRoot=e}function Zc(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType)}function Yc(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function Jc(){}function Xc(e,t,n,r,o){var a=n._reactRootContainer;if(a){var i=a;if("function"==typeof o){var s=o;o=function(){var e=Hc(i);s.call(e)}}$c(t,i,e,o)}else i=function(e,t,n,r,o){if(o){if("function"==typeof r){var a=r;r=function(){var e=Hc(i);a.call(e)}}var i=qc(t,r,e,0,null,!1,0,"",Jc);return e._reactRootContainer=i,e[ho]=i.current,qr(8===e.nodeType?e.parentNode:e),uc(),i}for(;o=e.lastChild;)e.removeChild(o);if("function"==typeof r){var s=r;r=function(){var e=Hc(l);s.call(e)}}var l=zc(e,0,!1,null,0,!1,0,"",Jc);return e._reactRootContainer=l,e[ho]=l.current,qr(8===e.nodeType?e.parentNode:e),uc((function(){$c(t,l,n,r)})),l}(n,t,e,o,r);return Hc(i)}Qc.prototype.render=Kc.prototype.render=function(e){var t=this._internalRoot;if(null===t)throw Error(a(409));$c(e,t,null,null)},Qc.prototype.unmount=Kc.prototype.unmount=function(){var e=this._internalRoot;if(null!==e){this._internalRoot=null;var t=e.containerInfo;uc((function(){$c(null,e,null,null)})),t[ho]=null}},Qc.prototype.unstable_scheduleHydration=function(e){if(e){var t=Et();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Dt.length&&0!==t&&t<Dt[n].priority;n++);Dt.splice(n,0,e),0===n&&Mt(e)}},kt=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=dt(t.pendingLanes);0!==n&&(vt(t,1|n),rc(t,Ye()),!(6&Al)&&(ql=Ye()+500,$o()))}break;case 13:uc((function(){var t=Na(e,1);if(null!==t){var n=ec();nc(t,e,1,n)}})),Vc(e,1)}},St=function(e){if(13===e.tag){var t=Na(e,134217728);if(null!==t)nc(t,e,134217728,ec());Vc(e,134217728)}},xt=function(e){if(13===e.tag){var t=tc(e),n=Na(e,t);if(null!==n)nc(n,e,t,ec());Vc(e,t)}},Et=function(){return yt},Ct=function(e,t){var n=yt;try{return yt=e,t()}finally{yt=n}},Se=function(e,t,n){switch(t){case"input":if(J(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var o=So(r);if(!o)throw Error(a(90));W(r),J(r,o)}}}break;case"textarea":ae(e,n);break;case"select":null!=(t=n.value)&&ne(e,!!n.multiple,t,!1)}},Ae=cc,Te=uc;var eu={usingClientEntryPoint:!1,Events:[wo,ko,So,_e,Oe,cc]},tu={findFiberByHostInstance:yo,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},nu={bundleType:tu.bundleType,version:tu.version,rendererPackageName:tu.rendererPackageName,rendererConfig:tu.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:w.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Ge(e))?null:e.stateNode},findFiberByHostInstance:tu.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var ru=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!ru.isDisabled&&ru.supportsFiber)try{ot=ru.inject(nu),at=ru}catch(ue){}}t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=eu,t.createPortal=function(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!Zc(t))throw Error(a(200));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:S,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)},t.createRoot=function(e,t){if(!Zc(e))throw Error(a(299));var n=!1,r="",o=Wc;return null!=t&&(!0===t.unstable_strictMode&&(n=!0),void 0!==t.identifierPrefix&&(r=t.identifierPrefix),void 0!==t.onRecoverableError&&(o=t.onRecoverableError)),t=zc(e,1,!1,null,0,n,0,r,o),e[ho]=t.current,qr(8===e.nodeType?e.parentNode:e),new Kc(t)},t.findDOMNode=function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=e._reactInternals;if(void 0===t){if("function"==typeof e.render)throw Error(a(188));throw e=Object.keys(e).join(","),Error(a(268,e))}return e=null===(e=Ge(t))?null:e.stateNode},t.flushSync=function(e){return uc(e)},t.hydrate=function(e,t,n){if(!Yc(t))throw Error(a(200));return Xc(null,e,t,!0,n)},t.hydrateRoot=function(e,t,n){if(!Zc(e))throw Error(a(405));var r=null!=n&&n.hydratedSources||null,o=!1,i="",s=Wc;if(null!=n&&(!0===n.unstable_strictMode&&(o=!0),void 0!==n.identifierPrefix&&(i=n.identifierPrefix),void 0!==n.onRecoverableError&&(s=n.onRecoverableError)),t=qc(t,null,e,1,null!=n?n:null,o,0,i,s),e[ho]=t.current,qr(e),r)for(e=0;e<r.length;e++)o=(o=(n=r[e])._getVersion)(n._source),null==t.mutableSourceEagerHydrationData?t.mutableSourceEagerHydrationData=[n,o]:t.mutableSourceEagerHydrationData.push(n,o);return new Qc(t)},t.render=function(e,t,n){if(!Yc(t))throw Error(a(200));return Xc(null,e,t,!1,n)},t.unmountComponentAtNode=function(e){if(!Yc(e))throw Error(a(40));return!!e._reactRootContainer&&(uc((function(){Xc(null,null,e,!1,(function(){e._reactRootContainer=null,e[ho]=null}))})),!0)},t.unstable_batchedUpdates=cc,t.unstable_renderSubtreeIntoContainer=function(e,t,n,r){if(!Yc(n))throw Error(a(200));if(null==e||void 0===e._reactInternals)throw Error(a(38));return Xc(e,t,n,!1,r)},t.version="18.3.1-next-f1338f8080-20240426"},9576:(e,t,n)=>{"use strict";var r=n(8143);t.createRoot=r.createRoot,t.hydrateRoot=r.hydrateRoot},8143:(e,t,n)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(9481)},4072:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,r="function"==typeof Set,o="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function a(e,i){if(e===i)return!0;if(e&&i&&"object"==typeof e&&"object"==typeof i){if(e.constructor!==i.constructor)return!1;var s,l,c,u;if(Array.isArray(e)){if((s=e.length)!=i.length)return!1;for(l=s;0!=l--;)if(!a(e[l],i[l]))return!1;return!0}if(n&&e instanceof Map&&i instanceof Map){if(e.size!==i.size)return!1;for(u=e.entries();!(l=u.next()).done;)if(!i.has(l.value[0]))return!1;for(u=e.entries();!(l=u.next()).done;)if(!a(l.value[1],i.get(l.value[0])))return!1;return!0}if(r&&e instanceof Set&&i instanceof Set){if(e.size!==i.size)return!1;for(u=e.entries();!(l=u.next()).done;)if(!i.has(l.value[0]))return!1;return!0}if(o&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(i)){if((s=e.length)!=i.length)return!1;for(l=s;0!=l--;)if(e[l]!==i[l])return!1;return!0}if(e.constructor===RegExp)return e.source===i.source&&e.flags===i.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"==typeof e.valueOf&&"function"==typeof i.valueOf)return e.valueOf()===i.valueOf();if(e.toString!==Object.prototype.toString&&"function"==typeof e.toString&&"function"==typeof i.toString)return e.toString()===i.toString();if((s=(c=Object.keys(e)).length)!==Object.keys(i).length)return!1;for(l=s;0!=l--;)if(!Object.prototype.hasOwnProperty.call(i,c[l]))return!1;if(t&&e instanceof Element)return!1;for(l=s;0!=l--;)if(("_owner"!==c[l]&&"__v"!==c[l]&&"__o"!==c[l]||!e.$$typeof)&&!a(e[c[l]],i[c[l]]))return!1;return!0}return e!=e&&i!=i}e.exports=function(e,t){try{return a(e,t)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}}},932:(e,t,n)=>{"use strict";n.d(t,{mg:()=>X,vd:()=>G});var r=n(758),o=n(2736),a=n.n(o),i=n(4072),s=n.n(i),l=n(9597),c=n.n(l),u=n(2945),d=n.n(u);function p(){return p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},p.apply(this,arguments)}function f(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,m(e,t)}function m(e,t){return m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},m(e,t)}function h(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t.indexOf(n=a[r])>=0||(o[n]=e[n]);return o}var g={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},b={rel:["amphtml","canonical","alternate"]},v={type:["application/ld+json"]},y={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},w=Object.keys(g).map((function(e){return g[e]})),k={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},S=Object.keys(k).reduce((function(e,t){return e[k[t]]=t,e}),{}),x=function(e,t){for(var n=e.length-1;n>=0;n-=1){var r=e[n];if(Object.prototype.hasOwnProperty.call(r,t))return r[t]}return null},E=function(e){var t=x(e,g.TITLE),n=x(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,(function(){return t}));var r=x(e,"defaultTitle");return t||r||void 0},C=function(e){return x(e,"onChangeClientState")||function(){}},_=function(e,t){return t.filter((function(t){return void 0!==t[e]})).map((function(t){return t[e]})).reduce((function(e,t){return p({},e,t)}),{})},O=function(e,t){return t.filter((function(e){return void 0!==e[g.BASE]})).map((function(e){return e[g.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var r=Object.keys(n),o=0;o<r.length;o+=1){var a=r[o].toLowerCase();if(-1!==e.indexOf(a)&&n[a])return t.concat(n)}return t}),[])},A=function(e,t,n){var r={};return n.filter((function(t){return!!Array.isArray(t[e])||(void 0!==t[e]&&console&&"function"==typeof console.warn&&console.warn("Helmet: "+e+' should be of type "Array". Instead found type "'+typeof t[e]+'"'),!1)})).map((function(t){return t[e]})).reverse().reduce((function(e,n){var o={};n.filter((function(e){for(var n,a=Object.keys(e),i=0;i<a.length;i+=1){var s=a[i],l=s.toLowerCase();-1===t.indexOf(l)||"rel"===n&&"canonical"===e[n].toLowerCase()||"rel"===l&&"stylesheet"===e[l].toLowerCase()||(n=l),-1===t.indexOf(s)||"innerHTML"!==s&&"cssText"!==s&&"itemprop"!==s||(n=s)}if(!n||!e[n])return!1;var c=e[n].toLowerCase();return r[n]||(r[n]={}),o[n]||(o[n]={}),!r[n][c]&&(o[n][c]=!0,!0)})).reverse().forEach((function(t){return e.push(t)}));for(var a=Object.keys(o),i=0;i<a.length;i+=1){var s=a[i],l=p({},r[s],o[s]);r[s]=l}return e}),[]).reverse()},T=function(e,t){if(Array.isArray(e)&&e.length)for(var n=0;n<e.length;n+=1)if(e[n][t])return!0;return!1},j=function(e){return Array.isArray(e)?e.join(""):e},L=function(e,t){return Array.isArray(e)?e.reduce((function(e,n){return function(e,t){for(var n=Object.keys(e),r=0;r<n.length;r+=1)if(t[n[r]]&&t[n[r]].includes(e[n[r]]))return!0;return!1}(n,t)?e.priority.push(n):e.default.push(n),e}),{priority:[],default:[]}):{default:e}},P=function(e,t){var n;return p({},e,((n={})[t]=void 0,n))},D=[g.NOSCRIPT,g.SCRIPT,g.STYLE],R=function(e,t){return void 0===t&&(t=!0),!1===t?String(e):String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},N=function(e){return Object.keys(e).reduce((function(t,n){var r=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r}),"")},I=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce((function(t,n){return t[k[n]||n]=e[n],t}),t)},M=function(e,t){return t.map((function(t,n){var o,a=((o={key:n})["data-rh"]=!0,o);return Object.keys(t).forEach((function(e){var n=k[e]||e;"innerHTML"===n||"cssText"===n?a.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:a[n]=t[e]})),r.createElement(e,a)}))},F=function(e,t,n){switch(e){case g.TITLE:return{toComponent:function(){return n=t.titleAttributes,(o={key:e=t.title})["data-rh"]=!0,a=I(n,o),[r.createElement(g.TITLE,a,e)];var e,n,o,a},toString:function(){return function(e,t,n,r){var o=N(n),a=j(t);return o?"<"+e+' data-rh="true" '+o+">"+R(a,r)+"</"+e+">":"<"+e+' data-rh="true">'+R(a,r)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return I(t)},toString:function(){return N(t)}};default:return{toComponent:function(){return M(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,r){var o=Object.keys(r).filter((function(e){return!("innerHTML"===e||"cssText"===e)})).reduce((function(e,t){var o=void 0===r[t]?t:t+'="'+R(r[t],n)+'"';return e?e+" "+o:o}),""),a=r.innerHTML||r.cssText||"",i=-1===D.indexOf(e);return t+"<"+e+' data-rh="true" '+o+(i?"/>":">"+a+"</"+e+">")}),"")}(e,t,n)}}}},B=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,o=e.htmlAttributes,a=e.noscriptTags,i=e.styleTags,s=e.title,l=void 0===s?"":s,c=e.titleAttributes,u=e.linkTags,d=e.metaTags,p=e.scriptTags,f={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var m=function(e){var t=e.linkTags,n=e.scriptTags,r=e.encode,o=L(e.metaTags,y),a=L(t,b),i=L(n,v);return{priorityMethods:{toComponent:function(){return[].concat(M(g.META,o.priority),M(g.LINK,a.priority),M(g.SCRIPT,i.priority))},toString:function(){return F(g.META,o.priority,r)+" "+F(g.LINK,a.priority,r)+" "+F(g.SCRIPT,i.priority,r)}},metaTags:o.default,linkTags:a.default,scriptTags:i.default}}(e);f=m.priorityMethods,u=m.linkTags,d=m.metaTags,p=m.scriptTags}return{priority:f,base:F(g.BASE,t,r),bodyAttributes:F("bodyAttributes",n,r),htmlAttributes:F("htmlAttributes",o,r),link:F(g.LINK,u,r),meta:F(g.META,d,r),noscript:F(g.NOSCRIPT,a,r),script:F(g.SCRIPT,p,r),style:F(g.STYLE,i,r),title:F(g.TITLE,{title:l,titleAttributes:c},r)}},z=[],U=function(e,t){var n=this;void 0===t&&(t="undefined"!=typeof document),this.instances=[],this.value={setHelmet:function(e){n.context.helmet=e},helmetInstances:{get:function(){return n.canUseDOM?z:n.instances},add:function(e){(n.canUseDOM?z:n.instances).push(e)},remove:function(e){var t=(n.canUseDOM?z:n.instances).indexOf(e);(n.canUseDOM?z:n.instances).splice(t,1)}}},this.context=e,this.canUseDOM=t,t||(e.helmet=B({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},q=r.createContext({}),$=a().shape({setHelmet:a().func,helmetInstances:a().shape({get:a().func,add:a().func,remove:a().func})}),H="undefined"!=typeof document,G=function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new U(r.props.context,t.canUseDOM),r}return f(t,e),t.prototype.render=function(){return r.createElement(q.Provider,{value:this.helmetData.value},this.props.children)},t}(r.Component);G.canUseDOM=H,G.propTypes={context:a().shape({helmet:a().shape()}),children:a().node.isRequired},G.defaultProps={context:{}},G.displayName="HelmetProvider";var V=function(e,t){var n,r=document.head||document.querySelector(g.HEAD),o=r.querySelectorAll(e+"[data-rh]"),a=[].slice.call(o),i=[];return t&&t.length&&t.forEach((function(t){var r=document.createElement(e);for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&("innerHTML"===o?r.innerHTML=t.innerHTML:"cssText"===o?r.styleSheet?r.styleSheet.cssText=t.cssText:r.appendChild(document.createTextNode(t.cssText)):r.setAttribute(o,void 0===t[o]?"":t[o]));r.setAttribute("data-rh","true"),a.some((function(e,t){return n=t,r.isEqualNode(e)}))?a.splice(n,1):i.push(r)})),a.forEach((function(e){return e.parentNode.removeChild(e)})),i.forEach((function(e){return r.appendChild(e)})),{oldTags:a,newTags:i}},W=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute("data-rh"),o=r?r.split(","):[],a=[].concat(o),i=Object.keys(t),s=0;s<i.length;s+=1){var l=i[s],c=t[l]||"";n.getAttribute(l)!==c&&n.setAttribute(l,c),-1===o.indexOf(l)&&o.push(l);var u=a.indexOf(l);-1!==u&&a.splice(u,1)}for(var d=a.length-1;d>=0;d-=1)n.removeAttribute(a[d]);o.length===a.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==i.join(",")&&n.setAttribute("data-rh",i.join(","))}},K=function(e,t){var n=e.baseTag,r=e.htmlAttributes,o=e.linkTags,a=e.metaTags,i=e.noscriptTags,s=e.onChangeClientState,l=e.scriptTags,c=e.styleTags,u=e.title,d=e.titleAttributes;W(g.BODY,e.bodyAttributes),W(g.HTML,r),function(e,t){void 0!==e&&document.title!==e&&(document.title=j(e)),W(g.TITLE,t)}(u,d);var p={baseTag:V(g.BASE,n),linkTags:V(g.LINK,o),metaTags:V(g.META,a),noscriptTags:V(g.NOSCRIPT,i),scriptTags:V(g.SCRIPT,l),styleTags:V(g.STYLE,c)},f={},m={};Object.keys(p).forEach((function(e){var t=p[e],n=t.newTags,r=t.oldTags;n.length&&(f[e]=n),r.length&&(m[e]=p[e].oldTags)})),t&&t(),s(e,f,m)},Q=null,Z=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=e.call.apply(e,[this].concat(r))||this).rendered=!1,t}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!d()(e,this.props)},n.componentDidUpdate=function(){this.emitChange()},n.componentWillUnmount=function(){this.props.context.helmetInstances.remove(this),this.emitChange()},n.emitChange=function(){var e,t,n=this.props.context,r=n.setHelmet,o=null,a=(e=n.helmetInstances.get().map((function(e){var t=p({},e.props);return delete t.context,t})),{baseTag:O(["href"],e),bodyAttributes:_("bodyAttributes",e),defer:x(e,"defer"),encode:x(e,"encodeSpecialCharacters"),htmlAttributes:_("htmlAttributes",e),linkTags:A(g.LINK,["rel","href"],e),metaTags:A(g.META,["name","charset","http-equiv","property","itemprop"],e),noscriptTags:A(g.NOSCRIPT,["innerHTML"],e),onChangeClientState:C(e),scriptTags:A(g.SCRIPT,["src","innerHTML"],e),styleTags:A(g.STYLE,["cssText"],e),title:E(e),titleAttributes:_("titleAttributes",e),prioritizeSeoTags:T(e,"prioritizeSeoTags")});G.canUseDOM?(t=a,Q&&cancelAnimationFrame(Q),t.defer?Q=requestAnimationFrame((function(){K(t,(function(){Q=null}))})):(K(t),Q=null)):B&&(o=B(a)),r(o)},n.init=function(){this.rendered||(this.rendered=!0,this.props.context.helmetInstances.add(this),this.emitChange())},n.render=function(){return this.init(),null},t}(r.Component);Z.propTypes={context:$.isRequired},Z.displayName="HelmetDispatcher";var Y=["children"],J=["children"],X=function(e){function t(){return e.apply(this,arguments)||this}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!s()(P(this.props,"helmetData"),P(e,"helmetData"))},n.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case g.SCRIPT:case g.NOSCRIPT:return{innerHTML:t};case g.STYLE:return{cssText:t};default:throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")}},n.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren;return p({},r,((t={})[n.type]=[].concat(r[n.type]||[],[p({},e.newChildProps,this.mapNestedChildrenToProps(n,e.nestedChildren))]),t))},n.mapObjectTypeChildren=function(e){var t,n,r=e.child,o=e.newProps,a=e.newChildProps,i=e.nestedChildren;switch(r.type){case g.TITLE:return p({},o,((t={})[r.type]=i,t.titleAttributes=p({},a),t));case g.BODY:return p({},o,{bodyAttributes:p({},a)});case g.HTML:return p({},o,{htmlAttributes:p({},a)});default:return p({},o,((n={})[r.type]=p({},a),n))}},n.mapArrayTypeChildrenToProps=function(e,t){var n=p({},t);return Object.keys(e).forEach((function(t){var r;n=p({},n,((r={})[t]=e[t],r))})),n},n.warnOnInvalidChildren=function(e,t){return c()(w.some((function(t){return e.type===t})),"function"==typeof e.type?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":"Only elements types "+w.join(", ")+" are allowed. Helmet does not support rendering <"+e.type+"> elements. Refer to our API for more information."),c()(!t||"string"==typeof t||Array.isArray(t)&&!t.some((function(e){return"string"!=typeof e})),"Helmet expects a string as a child of <"+e.type+">. Did you forget to wrap your children in braces? ( <"+e.type+">{``}</"+e.type+"> ) Refer to our API for more information."),!0},n.mapChildrenToProps=function(e,t){var n=this,o={};return r.Children.forEach(e,(function(e){if(e&&e.props){var r=e.props,a=r.children,i=h(r,Y),s=Object.keys(i).reduce((function(e,t){return e[S[t]||t]=i[t],e}),{}),l=e.type;switch("symbol"==typeof l?l=l.toString():n.warnOnInvalidChildren(e,a),l){case g.FRAGMENT:t=n.mapChildrenToProps(a,t);break;case g.LINK:case g.META:case g.NOSCRIPT:case g.SCRIPT:case g.STYLE:o=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:o,newChildProps:s,nestedChildren:a});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:s,nestedChildren:a})}}})),this.mapArrayTypeChildrenToProps(o,t)},n.render=function(){var e=this.props,t=e.children,n=h(e,J),o=p({},n),a=n.helmetData;return t&&(o=this.mapChildrenToProps(t,o)),!a||a instanceof U||(a=new U(a.context,a.instances)),a?r.createElement(Z,p({},o,{context:a.value,helmetData:void 0})):r.createElement(q.Consumer,null,(function(e){return r.createElement(Z,p({},o,{context:e}))}))},t}(r.Component);X.propTypes={base:a().object,bodyAttributes:a().object,children:a().oneOfType([a().arrayOf(a().node),a().node]),defaultTitle:a().string,defer:a().bool,encodeSpecialCharacters:a().bool,htmlAttributes:a().object,link:a().arrayOf(a().object),meta:a().arrayOf(a().object),noscript:a().arrayOf(a().object),onChangeClientState:a().func,script:a().arrayOf(a().object),style:a().arrayOf(a().object),title:a().string,titleAttributes:a().object,titleTemplate:a().string,prioritizeSeoTags:a().bool,helmetData:a().object},X.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},X.displayName="Helmet"},5843:(e,t)=>{"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,o=n?Symbol.for("react.portal"):60106,a=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,s=n?Symbol.for("react.profiler"):60114,l=n?Symbol.for("react.provider"):60109,c=n?Symbol.for("react.context"):60110,u=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,p=n?Symbol.for("react.forward_ref"):60112,f=n?Symbol.for("react.suspense"):60113,m=n?Symbol.for("react.suspense_list"):60120,h=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,b=n?Symbol.for("react.block"):60121,v=n?Symbol.for("react.fundamental"):60117,y=n?Symbol.for("react.responder"):60118,w=n?Symbol.for("react.scope"):60119;function k(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case u:case d:case a:case s:case i:case f:return e;default:switch(e=e&&e.$$typeof){case c:case p:case g:case h:case l:return e;default:return t}}case o:return t}}}function S(e){return k(e)===d}t.AsyncMode=u,t.ConcurrentMode=d,t.ContextConsumer=c,t.ContextProvider=l,t.Element=r,t.ForwardRef=p,t.Fragment=a,t.Lazy=g,t.Memo=h,t.Portal=o,t.Profiler=s,t.StrictMode=i,t.Suspense=f,t.isAsyncMode=function(e){return S(e)||k(e)===u},t.isConcurrentMode=S,t.isContextConsumer=function(e){return k(e)===c},t.isContextProvider=function(e){return k(e)===l},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return k(e)===p},t.isFragment=function(e){return k(e)===a},t.isLazy=function(e){return k(e)===g},t.isMemo=function(e){return k(e)===h},t.isPortal=function(e){return k(e)===o},t.isProfiler=function(e){return k(e)===s},t.isStrictMode=function(e){return k(e)===i},t.isSuspense=function(e){return k(e)===f},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===a||e===d||e===s||e===i||e===f||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===h||e.$$typeof===l||e.$$typeof===c||e.$$typeof===p||e.$$typeof===v||e.$$typeof===y||e.$$typeof===w||e.$$typeof===b)},t.typeOf=k},5959:(e,t,n)=>{"use strict";e.exports=n(5843)},1977:(e,t,n)=>{"use strict";n.d(t,{u:()=>i,v:()=>s});var r=n(5557),o=n(5890),a=n(758);function i(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var o=e.path?(0,r.B6)(t,e):n.length?n[n.length-1].match:r.Ix.computeRootMatch(t);return o&&(n.push({route:e,match:o}),e.routes&&i(e.routes,t,n)),o})),n}function s(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?a.createElement(r.dO,n,e.map((function(e,n){return a.createElement(r.qh,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,o.A)({},n,{},t,{route:e})):a.createElement(e.component,(0,o.A)({},n,t,{route:e}))}})}))):null}},1742:(e,t,n)=>{"use strict";n.d(t,{Kd:()=>u,N_:()=>g,k2:()=>y});var r=n(5557),o=n(7870),a=n(758),i=n(8602),s=n(5890),l=n(5045),c=n(5385),u=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.zR)(t.props),t}return(0,o.A)(t,e),t.prototype.render=function(){return a.createElement(r.Ix,{history:this.history,children:this.props.children})},t}(a.Component);a.Component;var d=function(e,t){return"function"==typeof e?e(t):e},p=function(e,t){return"string"==typeof e?(0,i.yJ)(e,null,null,t):e},f=function(e){return e},m=a.forwardRef;void 0===m&&(m=f);var h=m((function(e,t){var n=e.innerRef,r=e.navigate,o=e.onClick,i=(0,l.A)(e,["innerRef","navigate","onClick"]),c=i.target,u=(0,s.A)({},i,{onClick:function(e){try{o&&o(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||c&&"_self"!==c||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),r())}});return u.ref=f!==m&&t||n,a.createElement("a",u)}));var g=m((function(e,t){var n=e.component,o=void 0===n?h:n,u=e.replace,g=e.to,b=e.innerRef,v=(0,l.A)(e,["component","replace","to","innerRef"]);return a.createElement(r.XZ.Consumer,null,(function(e){e||(0,c.A)(!1);var n=e.history,r=p(d(g,e.location),e.location),l=r?n.createHref(r):"",h=(0,s.A)({},v,{href:l,navigate:function(){var t=d(g,e.location),r=(0,i.AO)(e.location)===(0,i.AO)(p(t));(u||r?n.replace:n.push)(t)}});return f!==m?h.ref=t||b:h.innerRef=b,a.createElement(o,h)}))})),b=function(e){return e},v=a.forwardRef;void 0===v&&(v=b);var y=v((function(e,t){var n=e["aria-current"],o=void 0===n?"page":n,i=e.activeClassName,u=void 0===i?"active":i,f=e.activeStyle,m=e.className,h=e.exact,y=e.isActive,w=e.location,k=e.sensitive,S=e.strict,x=e.style,E=e.to,C=e.innerRef,_=(0,l.A)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return a.createElement(r.XZ.Consumer,null,(function(e){e||(0,c.A)(!1);var n=w||e.location,i=p(d(E,n),n),l=i.pathname,O=l&&l.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),A=O?(0,r.B6)(n.pathname,{path:O,exact:h,sensitive:k,strict:S}):null,T=!!(y?y(A,n):A),j="function"==typeof m?m(T):m,L="function"==typeof x?x(T):x;T&&(j=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter((function(e){return e})).join(" ")}(j,u),L=(0,s.A)({},L,f));var P=(0,s.A)({"aria-current":T&&o||null,className:j,style:L,to:i},_);return b!==v?P.ref=t||C:P.innerRef=C,a.createElement(g,P)}))}))},5557:(e,t,n)=>{"use strict";n.d(t,{B6:()=>T,Ix:()=>y,W6:()=>F,XZ:()=>v,dO:()=>I,qh:()=>j,rd:()=>C,zy:()=>B});var r=n(7870),o=n(758),a=n(2736),i=n.n(a),s=n(8602),l=n(5385),c=n(5890),u=n(4785),d=n.n(u),p=(n(5959),n(5045)),f=(n(1035),1073741823),m="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};var h=o.createContext||function(e,t){var n,a,s="__create-react-context-"+function(){var e="__global_unique_id__";return m[e]=(m[e]||0)+1}()+"__",l=function(e){function n(){for(var t,n,r,o=arguments.length,a=new Array(o),i=0;i<o;i++)a[i]=arguments[i];return(t=e.call.apply(e,[this].concat(a))||this).emitter=(n=t.props.value,r=[],{on:function(e){r.push(e)},off:function(e){r=r.filter((function(t){return t!==e}))},get:function(){return n},set:function(e,t){n=e,r.forEach((function(e){return e(n,t)}))}}),t}(0,r.A)(n,e);var o=n.prototype;return o.getChildContext=function(){var e;return(e={})[s]=this.emitter,e},o.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,o=e.value;((a=r)===(i=o)?0!==a||1/a==1/i:a!=a&&i!=i)?n=0:(n="function"==typeof t?t(r,o):f,0!==(n|=0)&&this.emitter.set(e.value,n))}var a,i},o.render=function(){return this.props.children},n}(o.Component);l.childContextTypes=((n={})[s]=i().object.isRequired,n);var c=function(t){function n(){for(var e,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(e=t.call.apply(t,[this].concat(r))||this).observedBits=void 0,e.state={value:e.getValue()},e.onUpdate=function(t,n){(0|e.observedBits)&n&&e.setState({value:e.getValue()})},e}(0,r.A)(n,t);var o=n.prototype;return o.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?f:t},o.componentDidMount=function(){this.context[s]&&this.context[s].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?f:e},o.componentWillUnmount=function(){this.context[s]&&this.context[s].off(this.onUpdate)},o.getValue=function(){return this.context[s]?this.context[s].get():e},o.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(o.Component);return c.contextTypes=((a={})[s]=i().object,a),{Provider:l,Consumer:c}},g=function(e){var t=h();return t.displayName=e,t},b=g("Router-History"),v=g("Router"),y=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen((function(e){n._pendingLocation=e}))),n}(0,r.A)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){var e=this;this._isMounted=!0,this.unlisten&&this.unlisten(),this.props.staticContext||(this.unlisten=this.props.history.listen((function(t){e._isMounted&&e.setState({location:t})}))),this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},n.render=function(){return o.createElement(v.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},o.createElement(b.Provider,{children:this.props.children||null,value:this.props.history}))},t}(o.Component);o.Component;var w=function(e){function t(){return e.apply(this,arguments)||this}(0,r.A)(t,e);var n=t.prototype;return n.componentDidMount=function(){this.props.onMount&&this.props.onMount.call(this,this)},n.componentDidUpdate=function(e){this.props.onUpdate&&this.props.onUpdate.call(this,this,e)},n.componentWillUnmount=function(){this.props.onUnmount&&this.props.onUnmount.call(this,this)},n.render=function(){return null},t}(o.Component);var k={},S=1e4,x=0;function E(e,t){return void 0===e&&(e="/"),void 0===t&&(t={}),"/"===e?e:function(e){if(k[e])return k[e];var t=d().compile(e);return x<S&&(k[e]=t,x++),t}(e)(t,{pretty:!0})}function C(e){var t=e.computedMatch,n=e.to,r=e.push,a=void 0!==r&&r;return o.createElement(v.Consumer,null,(function(e){e||(0,l.A)(!1);var r=e.history,i=e.staticContext,u=a?r.push:r.replace,d=(0,s.yJ)(t?"string"==typeof n?E(n,t.params):(0,c.A)({},n,{pathname:E(n.pathname,t.params)}):n);return i?(u(d),null):o.createElement(w,{onMount:function(){u(d)},onUpdate:function(e,t){var n=(0,s.yJ)(t.to);(0,s.Fu)(n,(0,c.A)({},d,{key:n.key}))||u(d)},to:n})}))}var _={},O=1e4,A=0;function T(e,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var n=t,r=n.path,o=n.exact,a=void 0!==o&&o,i=n.strict,s=void 0!==i&&i,l=n.sensitive,c=void 0!==l&&l;return[].concat(r).reduce((function(t,n){if(!n&&""!==n)return null;if(t)return t;var r=function(e,t){var n=""+t.end+t.strict+t.sensitive,r=_[n]||(_[n]={});if(r[e])return r[e];var o=[],a={regexp:d()(e,o,t),keys:o};return A<O&&(r[e]=a,A++),a}(n,{end:a,strict:s,sensitive:c}),o=r.regexp,i=r.keys,l=o.exec(e);if(!l)return null;var u=l[0],p=l.slice(1),f=e===u;return a&&!f?null:{path:n,url:"/"===n&&""===u?"/":u,isExact:f,params:i.reduce((function(e,t,n){return e[t.name]=p[n],e}),{})}}),null)}var j=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.A)(t,e),t.prototype.render=function(){var e=this;return o.createElement(v.Consumer,null,(function(t){t||(0,l.A)(!1);var n=e.props.location||t.location,r=e.props.computedMatch?e.props.computedMatch:e.props.path?T(n.pathname,e.props):t.match,a=(0,c.A)({},t,{location:n,match:r}),i=e.props,s=i.children,u=i.component,d=i.render;return Array.isArray(s)&&function(e){return 0===o.Children.count(e)}(s)&&(s=null),o.createElement(v.Provider,{value:a},a.match?s?"function"==typeof s?s(a):s:u?o.createElement(u,a):d?d(a):null:"function"==typeof s?s(a):null)}))},t}(o.Component);function L(e){return"/"===e.charAt(0)?e:"/"+e}function P(e,t){if(!e)return t;var n=L(e);return 0!==t.pathname.indexOf(n)?t:(0,c.A)({},t,{pathname:t.pathname.substr(n.length)})}function D(e){return"string"==typeof e?e:(0,s.AO)(e)}function R(e){return function(){(0,l.A)(!1)}}function N(){}o.Component;var I=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.A)(t,e),t.prototype.render=function(){var e=this;return o.createElement(v.Consumer,null,(function(t){t||(0,l.A)(!1);var n,r,a=e.props.location||t.location;return o.Children.forEach(e.props.children,(function(e){if(null==r&&o.isValidElement(e)){n=e;var i=e.props.path||e.props.from;r=i?T(a.pathname,(0,c.A)({},e.props,{path:i})):t.match}})),r?o.cloneElement(n,{location:a,computedMatch:r}):null}))},t}(o.Component);var M=o.useContext;function F(){return M(b)}function B(){return M(v).location}},7462:(e,t,n)=>{"use strict";var r=n(758),o=Symbol.for("react.element"),a=Symbol.for("react.fragment"),i=Object.prototype.hasOwnProperty,s=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,l={key:!0,ref:!0,__self:!0,__source:!0};function c(e,t,n){var r,a={},c=null,u=null;for(r in void 0!==n&&(c=""+n),void 0!==t.key&&(c=""+t.key),void 0!==t.ref&&(u=t.ref),t)i.call(t,r)&&!l.hasOwnProperty(r)&&(a[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===a[r]&&(a[r]=t[r]);return{$$typeof:o,type:e,key:c,ref:u,props:a,_owner:s.current}}t.Fragment=a,t.jsx=c,t.jsxs=c},2713:(e,t)=>{"use strict";var n=Symbol.for("react.element"),r=Symbol.for("react.portal"),o=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),s=Symbol.for("react.provider"),l=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),u=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),p=Symbol.for("react.lazy"),f=Symbol.iterator;var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h=Object.assign,g={};function b(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||m}function v(){}function y(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||m}b.prototype.isReactComponent={},b.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},b.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},v.prototype=b.prototype;var w=y.prototype=new v;w.constructor=y,h(w,b.prototype),w.isPureReactComponent=!0;var k=Array.isArray,S=Object.prototype.hasOwnProperty,x={current:null},E={key:!0,ref:!0,__self:!0,__source:!0};function C(e,t,r){var o,a={},i=null,s=null;if(null!=t)for(o in void 0!==t.ref&&(s=t.ref),void 0!==t.key&&(i=""+t.key),t)S.call(t,o)&&!E.hasOwnProperty(o)&&(a[o]=t[o]);var l=arguments.length-2;if(1===l)a.children=r;else if(1<l){for(var c=Array(l),u=0;u<l;u++)c[u]=arguments[u+2];a.children=c}if(e&&e.defaultProps)for(o in l=e.defaultProps)void 0===a[o]&&(a[o]=l[o]);return{$$typeof:n,type:e,key:i,ref:s,props:a,_owner:x.current}}function _(e){return"object"==typeof e&&null!==e&&e.$$typeof===n}var O=/\/+/g;function A(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function T(e,t,o,a,i){var s=typeof e;"undefined"!==s&&"boolean"!==s||(e=null);var l=!1;if(null===e)l=!0;else switch(s){case"string":case"number":l=!0;break;case"object":switch(e.$$typeof){case n:case r:l=!0}}if(l)return i=i(l=e),e=""===a?"."+A(l,0):a,k(i)?(o="",null!=e&&(o=e.replace(O,"$&/")+"/"),T(i,t,o,"",(function(e){return e}))):null!=i&&(_(i)&&(i=function(e,t){return{$$typeof:n,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(i,o+(!i.key||l&&l.key===i.key?"":(""+i.key).replace(O,"$&/")+"/")+e)),t.push(i)),1;if(l=0,a=""===a?".":a+":",k(e))for(var c=0;c<e.length;c++){var u=a+A(s=e[c],c);l+=T(s,t,o,u,i)}else if(u=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=f&&e[f]||e["@@iterator"])?e:null}(e),"function"==typeof u)for(e=u.call(e),c=0;!(s=e.next()).done;)l+=T(s=s.value,t,o,u=a+A(s,c++),i);else if("object"===s)throw t=String(e),Error("Objects are not valid as a React child (found: "+("[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return l}function j(e,t,n){if(null==e)return e;var r=[],o=0;return T(e,r,"","",(function(e){return t.call(n,e,o++)})),r}function L(e){if(-1===e._status){var t=e._result;(t=t()).then((function(t){0!==e._status&&-1!==e._status||(e._status=1,e._result=t)}),(function(t){0!==e._status&&-1!==e._status||(e._status=2,e._result=t)})),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var P={current:null},D={transition:null},R={ReactCurrentDispatcher:P,ReactCurrentBatchConfig:D,ReactCurrentOwner:x};function N(){throw Error("act(...) is not supported in production builds of React.")}t.Children={map:j,forEach:function(e,t,n){j(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return j(e,(function(){t++})),t},toArray:function(e){return j(e,(function(e){return e}))||[]},only:function(e){if(!_(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},t.Component=b,t.Fragment=o,t.Profiler=i,t.PureComponent=y,t.StrictMode=a,t.Suspense=u,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=R,t.act=N,t.cloneElement=function(e,t,r){if(null==e)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var o=h({},e.props),a=e.key,i=e.ref,s=e._owner;if(null!=t){if(void 0!==t.ref&&(i=t.ref,s=x.current),void 0!==t.key&&(a=""+t.key),e.type&&e.type.defaultProps)var l=e.type.defaultProps;for(c in t)S.call(t,c)&&!E.hasOwnProperty(c)&&(o[c]=void 0===t[c]&&void 0!==l?l[c]:t[c])}var c=arguments.length-2;if(1===c)o.children=r;else if(1<c){l=Array(c);for(var u=0;u<c;u++)l[u]=arguments[u+2];o.children=l}return{$$typeof:n,type:e.type,key:a,ref:i,props:o,_owner:s}},t.createContext=function(e){return(e={$$typeof:l,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null}).Provider={$$typeof:s,_context:e},e.Consumer=e},t.createElement=C,t.createFactory=function(e){var t=C.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:c,render:e}},t.isValidElement=_,t.lazy=function(e){return{$$typeof:p,_payload:{_status:-1,_result:e},_init:L}},t.memo=function(e,t){return{$$typeof:d,type:e,compare:void 0===t?null:t}},t.startTransition=function(e){var t=D.transition;D.transition={};try{e()}finally{D.transition=t}},t.unstable_act=N,t.useCallback=function(e,t){return P.current.useCallback(e,t)},t.useContext=function(e){return P.current.useContext(e)},t.useDebugValue=function(){},t.useDeferredValue=function(e){return P.current.useDeferredValue(e)},t.useEffect=function(e,t){return P.current.useEffect(e,t)},t.useId=function(){return P.current.useId()},t.useImperativeHandle=function(e,t,n){return P.current.useImperativeHandle(e,t,n)},t.useInsertionEffect=function(e,t){return P.current.useInsertionEffect(e,t)},t.useLayoutEffect=function(e,t){return P.current.useLayoutEffect(e,t)},t.useMemo=function(e,t){return P.current.useMemo(e,t)},t.useReducer=function(e,t,n){return P.current.useReducer(e,t,n)},t.useRef=function(e){return P.current.useRef(e)},t.useState=function(e){return P.current.useState(e)},t.useSyncExternalStore=function(e,t,n){return P.current.useSyncExternalStore(e,t,n)},t.useTransition=function(){return P.current.useTransition()},t.version="18.3.1"},758:(e,t,n)=>{"use strict";e.exports=n(2713)},6070:(e,t,n)=>{"use strict";e.exports=n(7462)},4733:(e,t)=>{"use strict";function n(e,t){var n=e.length;e.push(t);e:for(;0<n;){var r=n-1>>>1,o=e[r];if(!(0<a(o,t)))break e;e[r]=t,e[n]=o,n=r}}function r(e){return 0===e.length?null:e[0]}function o(e){if(0===e.length)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,o=e.length,i=o>>>1;r<i;){var s=2*(r+1)-1,l=e[s],c=s+1,u=e[c];if(0>a(l,n))c<o&&0>a(u,l)?(e[r]=u,e[c]=n,r=c):(e[r]=l,e[s]=n,r=s);else{if(!(c<o&&0>a(u,n)))break e;e[r]=u,e[c]=n,r=c}}}return t}function a(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if("object"==typeof performance&&"function"==typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var s=Date,l=s.now();t.unstable_now=function(){return s.now()-l}}var c=[],u=[],d=1,p=null,f=3,m=!1,h=!1,g=!1,b="function"==typeof setTimeout?setTimeout:null,v="function"==typeof clearTimeout?clearTimeout:null,y="undefined"!=typeof setImmediate?setImmediate:null;function w(e){for(var t=r(u);null!==t;){if(null===t.callback)o(u);else{if(!(t.startTime<=e))break;o(u),t.sortIndex=t.expirationTime,n(c,t)}t=r(u)}}function k(e){if(g=!1,w(e),!h)if(null!==r(c))h=!0,D(S);else{var t=r(u);null!==t&&R(k,t.startTime-e)}}function S(e,n){h=!1,g&&(g=!1,v(_),_=-1),m=!0;var a=f;try{for(w(n),p=r(c);null!==p&&(!(p.expirationTime>n)||e&&!T());){var i=p.callback;if("function"==typeof i){p.callback=null,f=p.priorityLevel;var s=i(p.expirationTime<=n);n=t.unstable_now(),"function"==typeof s?p.callback=s:p===r(c)&&o(c),w(n)}else o(c);p=r(c)}if(null!==p)var l=!0;else{var d=r(u);null!==d&&R(k,d.startTime-n),l=!1}return l}finally{p=null,f=a,m=!1}}"undefined"!=typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);var x,E=!1,C=null,_=-1,O=5,A=-1;function T(){return!(t.unstable_now()-A<O)}function j(){if(null!==C){var e=t.unstable_now();A=e;var n=!0;try{n=C(!0,e)}finally{n?x():(E=!1,C=null)}}else E=!1}if("function"==typeof y)x=function(){y(j)};else if("undefined"!=typeof MessageChannel){var L=new MessageChannel,P=L.port2;L.port1.onmessage=j,x=function(){P.postMessage(null)}}else x=function(){b(j,0)};function D(e){C=e,E||(E=!0,x())}function R(e,n){_=b((function(){e(t.unstable_now())}),n)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){h||m||(h=!0,D(S))},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):O=0<e?Math.floor(1e3/e):5},t.unstable_getCurrentPriorityLevel=function(){return f},t.unstable_getFirstCallbackNode=function(){return r(c)},t.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=function(){},t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},t.unstable_scheduleCallback=function(e,o,a){var i=t.unstable_now();switch("object"==typeof a&&null!==a?a="number"==typeof(a=a.delay)&&0<a?i+a:i:a=i,e){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return e={id:d++,callback:o,priorityLevel:e,startTime:a,expirationTime:s=a+s,sortIndex:-1},a>i?(e.sortIndex=a,n(u,e),null===r(c)&&e===r(u)&&(g?(v(_),_=-1):g=!0,R(k,a-i))):(e.sortIndex=s,n(c,e),h||m||(h=!0,D(S))),e},t.unstable_shouldYield=T,t.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}},1896:(e,t,n)=>{"use strict";e.exports=n(4733)},2945:e=>{e.exports=function(e,t,n,r){var o=n?n.call(r,e,t):void 0;if(void 0!==o)return!!o;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var a=Object.keys(e),i=Object.keys(t);if(a.length!==i.length)return!1;for(var s=Object.prototype.hasOwnProperty.bind(t),l=0;l<a.length;l++){var c=a[l];if(!s(c))return!1;var u=e[c],d=t[c];if(!1===(o=n?n.call(r,u,d,c):void 0)||void 0===o&&u!==d)return!1}return!0}},7500:(e,t)=>{var n;!function(){"use strict";var r={}.hasOwnProperty;function o(){for(var e="",t=0;t<arguments.length;t++){var n=arguments[t];n&&(e=i(e,a(n)))}return e}function a(e){if("string"==typeof e||"number"==typeof e)return e;if("object"!=typeof e)return"";if(Array.isArray(e))return o.apply(null,e);if(e.toString!==Object.prototype.toString&&!e.toString.toString().includes("[native code]"))return e.toString();var t="";for(var n in e)r.call(e,n)&&e[n]&&(t=i(t,n));return t}function i(e,t){return t?e?e+" "+t:e+t:e}e.exports?(o.default=o,e.exports=o):void 0===(n=function(){return o}.apply(t,[]))||(e.exports=n)}()},4784:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={title:"Morph docs \u2013 The Optimistic zkEVM Scaling Solution docs",tagline:"",favicon:"https://www.morphl2.io/favicon.ico",staticDirectories:["public","static"],url:"https://docs.morphl2.io",baseUrl:"/",organizationName:"morph labs",projectName:"morph docs",onBrokenLinks:"throw",onBrokenMarkdownLinks:"warn",i18n:{defaultLocale:"en",locales:["en"],path:"i18n",localeConfigs:{}},plugins:["docusaurus-plugin-sass",null,["@docusaurus/plugin-client-redirects",{fromExtensions:["html","htm"],toExtensions:["exe","zip"],redirects:[{to:"/docs/about-morph/user-navigation-page",from:["/","/docs"]}]}]],presets:[["classic",{docs:{sidebarPath:"/Users/danny.fu/morphl2/morph-frontend/apps/morph-doc/sidebars.js",editUrl:"https://github.com/morph-l2/morph-doc/tree/main",remarkPlugins:[null],rehypePlugins:[null]},blog:{showReadingTime:!0,editUrl:"https://github.com/morph-l2/morph-doc/tree/main",remarkPlugins:[null],rehypePlugins:[null]},theme:{customCss:["/Users/danny.fu/morphl2/morph-frontend/apps/morph-doc/src/css/fonts.scss","/Users/danny.fu/morphl2/morph-frontend/apps/morph-doc/src/css/custom.scss"]}}]],stylesheets:[{href:"/katex/katex.min.css",type:"text/css"}],themeConfig:{prism:{theme:{plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},darkTheme:{plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},additionalLanguages:[],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},metadata:[{name:"keywords",content:"Morph,EVM-equivalent,Optimistic,zkEVM"},{name:"google-site-verification",content:"-GPotcMH5Ecuj8EnU-Tasmm8TOZXEHWEPD5qP5d0FEU"}],algolia:{appId:"8HKAWLQMLZ",apiKey:"021dba71d50406f34ded5e71c22283e5",indexName:"morph_doc",contextualSearch:!0,replaceSearchResultPathname:{from:"/docs/",to:"/docs/"},searchParameters:{},searchPagePath:"search"},image:"img/docusaurus-social-card.jpg",colorMode:{defaultMode:"light",disableSwitch:!1,respectPrefersColorScheme:!1},sidebar:{autoCollapseCategories:!0},navbar:{title:"",logo:{alt:"Morph Doc Logo",src:"logo/LogoMorphGreen-summary.svg",srcDark:"logo/LogoMorphGreen-summary.svg"},items:[{type:"doc",position:"right",docId:"about-morph/user-navigation-page",label:"For Users"},{type:"doc",position:"right",docId:"build-on-morph/developer-navigation-page",label:"For Developers"}],hideOnScroll:!1},footer:{links:[{title:"Learn",items:[{label:"Docs",href:"https://docs.morphl2.io/docs/how-morph-works/intro/"},{label:"Blog",href:"https://blog.morphl2.io/"}]},{title:"Developers",items:[{label:"APIs",href:"https://explorer.morphl2.io/api-docs"},{label:"Tools",href:"https://morphl2.io/build"}]},{title:"Community",items:[{label:"Forum",href:"https://forum.morphl2.io"},{label:"Telegram",href:"https://t.me/MorphL2official"},{label:"Twitter",href:"https://x.com/MorphLayer"},{label:"Discord",href:"https://discord.com/invite/MorphLayer"}]},{title:"Company",items:[{label:"About",href:"https://morphl2.io/about"},{label:"Contact us",href:"https://morphl2.io/about"},{label:"Careers",href:"https://morphl2.io/careers"},{label:"Brand Kit",href:"https://morphl2brand.notion.site/Morph-brand-guideline-56eca01ef6d14212be0e9562ad1e2fc1"}]}],copyright:"\xa9 2025 Morph. All rights reserved.",style:"light"},docs:{versionPersistence:"localStorage",sidebar:{hideable:!1,autoCollapseCategories:!1}},tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3}},baseUrlIssueBanner:!0,onBrokenAnchors:"warn",onDuplicateRoutes:"warn",customFields:{},themes:[],scripts:[],headTags:[],clientModules:[],titleDelimiter:"|",noIndex:!1,markdown:{format:"mdx",mermaid:!1,mdx1Compat:{comments:!0,admonitions:!0,headingIds:!0}}}},5890:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(null,arguments)}n.d(t,{A:()=>r})},7870:(e,t,n)=>{"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}function o(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,{A:()=>o})},5045:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.includes(r))continue;n[r]=e[r]}return n}n.d(t,{A:()=>r})},3526:(e,t,n)=>{"use strict";function r(e){var t,n,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e)){var a=e.length;for(t=0;t<a;t++)e[t]&&(n=r(e[t]))&&(o&&(o+=" "),o+=n)}else for(n in e)e[n]&&(o&&(o+=" "),o+=n);return o}n.d(t,{A:()=>o});const o=function(){for(var e,t,n=0,o="",a=arguments.length;n<a;n++)(e=arguments[n])&&(t=r(e))&&(o&&(o+=" "),o+=t);return o}},5371:(e,t,n)=>{"use strict";n.d(t,{My:()=>k,f4:()=>Z});var r,o,a=n(758),i=n(3526),s=Object.create,l=Object.defineProperty,c=Object.defineProperties,u=Object.getOwnPropertyDescriptor,d=Object.getOwnPropertyDescriptors,p=Object.getOwnPropertyNames,f=Object.getOwnPropertySymbols,m=Object.getPrototypeOf,h=Object.prototype.hasOwnProperty,g=Object.prototype.propertyIsEnumerable,b=(e,t,n)=>t in e?l(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,v=(e,t)=>{for(var n in t||(t={}))h.call(t,n)&&b(e,n,t[n]);if(f)for(var n of f(t))g.call(t,n)&&b(e,n,t[n]);return e},y=(e,t)=>c(e,d(t)),w=(e,t)=>{var n={};for(var r in e)h.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&f)for(var r of f(e))t.indexOf(r)<0&&g.call(e,r)&&(n[r]=e[r]);return n},k=((e,t,n)=>(n=null!=e?s(m(e)):{},((e,t,n,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let o of p(t))h.call(e,o)||o===n||l(e,o,{get:()=>t[o],enumerable:!(r=u(t,o))||r.enumerable});return e})(!t&&e&&e.__esModule?n:l(n,"default",{value:e,enumerable:!0}),e)))((r={"../../node_modules/.pnpm/prismjs@1.29.0_patch_hash=vrxx3pzkik6jpmgpayxfjunetu/node_modules/prismjs/prism.js"(e,t){var n=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof o?new o(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function e(t,n){var o,a;switch(n=n||{},r.util.type(t)){case"Object":if(a=r.util.objId(t),n[a])return n[a];for(var i in o={},n[a]=o,t)t.hasOwnProperty(i)&&(o[i]=e(t[i],n));return o;case"Array":return a=r.util.objId(t),n[a]?n[a]:(o=[],n[a]=o,t.forEach((function(t,r){o[r]=e(t,n)})),o);default:return t}},getLanguage:function(t){for(;t;){var n=e.exec(t.className);if(n)return n[1].toLowerCase();t=t.parentElement}return"none"},setLanguage:function(t,n){t.className=t.className.replace(RegExp(e,"gi"),""),t.classList.add("language-"+n)},isActive:function(e,t,n){for(var r="no-"+t;e;){var o=e.classList;if(o.contains(t))return!0;if(o.contains(r))return!1;e=e.parentElement}return!!n}},languages:{plain:n,plaintext:n,text:n,txt:n,extend:function(e,t){var n=r.util.clone(r.languages[e]);for(var o in t)n[o]=t[o];return n},insertBefore:function(e,t,n,o){var a=(o=o||r.languages)[e],i={};for(var s in a)if(a.hasOwnProperty(s)){if(s==t)for(var l in n)n.hasOwnProperty(l)&&(i[l]=n[l]);n.hasOwnProperty(s)||(i[s]=a[s])}var c=o[e];return o[e]=i,r.languages.DFS(r.languages,(function(t,n){n===c&&t!=e&&(this[t]=i)})),i},DFS:function e(t,n,o,a){a=a||{};var i=r.util.objId;for(var s in t)if(t.hasOwnProperty(s)){n.call(t,s,t[s],o||s);var l=t[s],c=r.util.type(l);"Object"!==c||a[i(l)]?"Array"!==c||a[i(l)]||(a[i(l)]=!0,e(l,n,s,a)):(a[i(l)]=!0,e(l,n,null,a))}}},plugins:{},highlight:function(e,t,n){var a={code:e,grammar:t,language:n};if(r.hooks.run("before-tokenize",a),!a.grammar)throw new Error('The language "'+a.language+'" has no grammar.');return a.tokens=r.tokenize(a.code,a.grammar),r.hooks.run("after-tokenize",a),o.stringify(r.util.encode(a.tokens),a.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var o=new s;return l(o,o.head,e),i(e,o,t,o.head,0),function(e){for(var t=[],n=e.head.next;n!==e.tail;)t.push(n.value),n=n.next;return t}(o)},hooks:{all:{},add:function(e,t){var n=r.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=r.hooks.all[e];if(n&&n.length)for(var o,a=0;o=n[a++];)o(t)}},Token:o};function o(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function a(e,t,n,r){e.lastIndex=t;var o=e.exec(n);if(o&&r&&o[1]){var a=o[1].length;o.index+=a,o[0]=o[0].slice(a)}return o}function i(e,t,n,s,u,d){for(var p in n)if(n.hasOwnProperty(p)&&n[p]){var f=n[p];f=Array.isArray(f)?f:[f];for(var m=0;m<f.length;++m){if(d&&d.cause==p+","+m)return;var h=f[m],g=h.inside,b=!!h.lookbehind,v=!!h.greedy,y=h.alias;if(v&&!h.pattern.global){var w=h.pattern.toString().match(/[imsuy]*$/)[0];h.pattern=RegExp(h.pattern.source,w+"g")}for(var k=h.pattern||h,S=s.next,x=u;S!==t.tail&&!(d&&x>=d.reach);x+=S.value.length,S=S.next){var E=S.value;if(t.length>e.length)return;if(!(E instanceof o)){var C,_=1;if(v){if(!(C=a(k,x,e,b))||C.index>=e.length)break;var O=C.index,A=C.index+C[0].length,T=x;for(T+=S.value.length;O>=T;)T+=(S=S.next).value.length;if(x=T-=S.value.length,S.value instanceof o)continue;for(var j=S;j!==t.tail&&(T<A||"string"==typeof j.value);j=j.next)_++,T+=j.value.length;_--,E=e.slice(x,T),C.index-=x}else if(!(C=a(k,0,E,b)))continue;O=C.index;var L=C[0],P=E.slice(0,O),D=E.slice(O+L.length),R=x+E.length;d&&R>d.reach&&(d.reach=R);var N=S.prev;if(P&&(N=l(t,N,P),x+=P.length),c(t,N,_),S=l(t,N,new o(p,g?r.tokenize(L,g):L,y,L)),D&&l(t,S,D),_>1){var I={cause:p+","+m,reach:R};i(e,t,n,S.prev,x,I),d&&I.reach>d.reach&&(d.reach=I.reach)}}}}}}function s(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function l(e,t,n){var r=t.next,o={value:n,prev:t,next:r};return t.next=o,r.prev=o,e.length++,o}function c(e,t,n){for(var r=t.next,o=0;o<n&&r!==e.tail;o++)r=r.next;t.next=r,r.prev=t,e.length-=o}return o.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var o="";return t.forEach((function(t){o+=e(t,n)})),o}var a={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},i=t.alias;i&&(Array.isArray(i)?Array.prototype.push.apply(a.classes,i):a.classes.push(i)),r.hooks.run("wrap",a);var s="";for(var l in a.attributes)s+=" "+l+'="'+(a.attributes[l]||"").replace(/"/g,""")+'"';return"<"+a.tag+' class="'+a.classes.join(" ")+'"'+s+">"+a.content+"</"+a.tag+">"},r}();t.exports=n,n.default=n}},function(){return o||(0,r[p(r)[0]])((o={exports:{}}).exports,o),o.exports})());k.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},k.languages.markup.tag.inside["attr-value"].inside.entity=k.languages.markup.entity,k.languages.markup.doctype.inside["internal-subset"].inside=k.languages.markup,k.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(k.languages.markup.tag,"addInlined",{value:function(e,t){var n;(t=((n=((n={})["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:k.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i,{"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}}))["language-"+t]={pattern:/[\s\S]+/,inside:k.languages[t]},{}))[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:n},k.languages.insertBefore("markup","cdata",t)}}),Object.defineProperty(k.languages.markup.tag,"addAttribute",{value:function(e,t){k.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:k.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),k.languages.html=k.languages.markup,k.languages.mathml=k.languages.markup,k.languages.svg=k.languages.markup,k.languages.xml=k.languages.extend("markup",{}),k.languages.ssml=k.languages.xml,k.languages.atom=k.languages.xml,k.languages.rss=k.languages.xml,function(e){var t={pattern:/\\[\\(){}[\]^$+*?|.]/,alias:"escape"},n=/\\(?:x[\da-fA-F]{2}|u[\da-fA-F]{4}|u\{[\da-fA-F]+\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/,r="(?:[^\\\\-]|"+n.source+")",o=(r=RegExp(r+"-"+r),{pattern:/(<|')[^<>']+(?=[>']$)/,lookbehind:!0,alias:"variable"});e.languages.regex={"char-class":{pattern:/((?:^|[^\\])(?:\\\\)*)\[(?:[^\\\]]|\\[\s\S])*\]/,lookbehind:!0,inside:{"char-class-negation":{pattern:/(^\[)\^/,lookbehind:!0,alias:"operator"},"char-class-punctuation":{pattern:/^\[|\]$/,alias:"punctuation"},range:{pattern:r,inside:{escape:n,"range-punctuation":{pattern:/-/,alias:"operator"}}},"special-escape":t,"char-set":{pattern:/\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},escape:n}},"special-escape":t,"char-set":{pattern:/\.|\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},backreference:[{pattern:/\\(?![123][0-7]{2})[1-9]/,alias:"keyword"},{pattern:/\\k<[^<>']+>/,alias:"keyword",inside:{"group-name":o}}],anchor:{pattern:/[$^]|\\[ABbGZz]/,alias:"function"},escape:n,group:[{pattern:/\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|<?[=!]|[idmnsuxU]+(?:-[idmnsuxU]+)?:?))?/,alias:"punctuation",inside:{"group-name":o}},{pattern:/\)/,alias:"punctuation"}],quantifier:{pattern:/(?:[+*?]|\{\d+(?:,\d*)?\})[?+]?/,alias:"number"},alternation:{pattern:/\|/,alias:"keyword"}}}(k),k.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},k.languages.javascript=k.languages.extend("clike",{"class-name":[k.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),k.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,k.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:k.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:k.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:k.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:k.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:k.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),k.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:k.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),k.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),k.languages.markup&&(k.languages.markup.tag.addInlined("script","javascript"),k.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),k.languages.js=k.languages.javascript,k.languages.actionscript=k.languages.extend("javascript",{keyword:/\b(?:as|break|case|catch|class|const|default|delete|do|dynamic|each|else|extends|final|finally|for|function|get|if|implements|import|in|include|instanceof|interface|internal|is|namespace|native|new|null|override|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|use|var|void|while|with)\b/,operator:/\+\+|--|(?:[+\-*\/%^]|&&?|\|\|?|<<?|>>?>?|[!=]=?)=?|[~?@]/}),k.languages.actionscript["class-name"].alias="function",delete k.languages.actionscript.parameter,delete k.languages.actionscript["literal-property"],k.languages.markup&&k.languages.insertBefore("actionscript","string",{xml:{pattern:/(^|[^.])<\/?\w+(?:\s+[^\s>\/=]+=("|')(?:\\[\s\S]|(?!\2)[^\\])*\2)*\s*\/?>/,lookbehind:!0,inside:k.languages.markup}}),function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(k),function(e){var t=e.languages.javadoclike={parameter:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*@(?:arg|arguments|param)\s+)\w+/m,lookbehind:!0},keyword:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*|\{)@[a-z][a-zA-Z-]+\b/m,lookbehind:!0},punctuation:/[{}]/};Object.defineProperty(t,"addSupport",{value:function(t,n){(t="string"==typeof t?[t]:t).forEach((function(t){var r=function(e){e.inside||(e.inside={}),e.inside.rest=n},o="doc-comment";if(a=e.languages[t]){var a,i=a[o];if((i=i||(a=e.languages.insertBefore(t,"comment",{"doc-comment":{pattern:/(^|[^\\])\/\*\*[^/][\s\S]*?(?:\*\/|$)/,lookbehind:!0,alias:"comment"}}))[o])instanceof RegExp&&(i=a[o]={pattern:i}),Array.isArray(i))for(var s=0,l=i.length;s<l;s++)i[s]instanceof RegExp&&(i[s]={pattern:i[s]}),r(i[s]);else r(i)}}))}}),t.addSupport(["java","javascript","php"],t)}(k),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;(t=(e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+t.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css,e.languages.markup))&&(t.tag.addInlined("style","css"),t.tag.addAttribute("style","css"))}(k),function(e){var t=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,n=(t=(e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+t.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[t,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}}),{pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0}),{pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0});e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|RebeccaPurple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,number:n})}(k),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",o=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-]<PLAIN>)(?:[ \t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),a=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<value>>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<<prop>>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<<prop>>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<<prop>>[ \t]+)?)<<key>>(?=\s*:\s)/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<key>>/g,(function(){return"(?:"+o+"|"+a+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(a),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(k),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(/<inner>/g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,o=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),a=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source,i=(e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+o+a+"(?:"+o+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+o+a+")(?:"+o+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+o+")"+a+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+o+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\b|\*\*(?:(?!\*)<inner>|\*(?:(?!\*)<inner>)+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\b|\*(?:(?!\*)<inner>|\*\*(?:(?!\*)<inner>)+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~)<inner>)+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\])<inner>)+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\])<inner>)+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n<r;n++){var o,a=t[n];"code"!==a.type?e(a.content):(o=a.content[1],a=a.content[3],o&&a&&"code-language"===o.type&&"code-block"===a.type&&"string"==typeof o.content&&(o=o.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),o="language-"+(o=(/[a-z][\w-]*/i.exec(o)||[""])[0].toLowerCase()),a.alias?"string"==typeof a.alias?a.alias=[a.alias,o]:a.alias.push(o):a.alias=[o]))}}(e.tokens)})),e.hooks.add("wrap",(function(t){if("code-block"===t.type){for(var n="",r=0,o=t.classes.length;r<o;r++){var a=t.classes[r];if(a=/language-(.+)/.exec(a)){n=a[1];break}}var c,u=e.languages[n];u?t.content=e.highlight(t.content.replace(i,"").replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,(function(e,t){var n;return"#"===(t=t.toLowerCase())[0]?(n="x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1)),l(n)):s[t]||e})),u,n):n&&"none"!==n&&e.plugins.autoloader&&(c="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random()),t.attributes.id=c,e.plugins.autoloader.loadLanguages(n,(function(){var t=document.getElementById(c);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))})))}})),RegExp(e.languages.markup.tag.pattern.source,"gi")),s={amp:"&",lt:"<",gt:">",quot:'"'},l=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(k),k.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:k.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},k.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n<t.length;){var r=t[n++];if("keyword"===r.type&&"mutation"===r.content){var o=[];if(d(["definition-mutation","punctuation"])&&"("===u(1).content){n+=2;var a=p(/^\($/,/^\)$/);if(-1===a)continue;for(;n<a;n++){var i=u(0);"variable"===i.type&&(f(i,"variable-input"),o.push(i.content))}n=a+1}if(d(["punctuation","property-query"])&&"{"===u(0).content&&(n++,f(u(0),"property-mutation"),0<o.length)){var s=p(/^\{$/,/^\}$/);if(-1!==s)for(var l=n;l<s;l++){var c=t[l];"variable"===c.type&&0<=o.indexOf(c.content)&&f(c,"variable-input")}}}}function u(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n<e.length;n++){var r=u(n+t);if(!r||r.type!==e[n])return}return 1}function p(e,r){for(var o=1,a=n;a<t.length;a++){var i=t[a],s=i.content;if("punctuation"===i.type&&"string"==typeof s)if(e.test(s))o++;else if(r.test(s)&&0==--o)return a}return-1}function f(e,t){var n=e.alias;n?Array.isArray(n)||(e.alias=n=[n]):e.alias=n=[],n.push(t)}})),k.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,o=r.inside["interpolation-punctuation"],a=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function s(t,n,r){return t={code:t,grammar:n,language:r},e.hooks.run("before-tokenize",t),t.tokens=e.tokenize(t.code,t.grammar),e.hooks.run("after-tokenize",t),t.tokens}function l(t,n,i){var l=e.tokenize(t,{interpolation:{pattern:RegExp(a),lookbehind:!0}}),c=0,u={},d=(l=s(l.map((function(e){if("string"==typeof e)return e;var n,r;for(e=e.content;-1!==t.indexOf((r=c++,n="___"+i.toUpperCase()+"_"+r+"___")););return u[n]=e,n})).join(""),n,i),Object.keys(u));return c=0,function t(n){for(var a=0;a<n.length;a++){if(c>=d.length)return;var i,l,p,f,m,h,g,b=n[a];"string"==typeof b||"string"==typeof b.content?(i=d[c],-1!==(g=(h="string"==typeof b?b:b.content).indexOf(i))&&(++c,l=h.substring(0,g),m=u[i],p=void 0,(f={})["interpolation-punctuation"]=o,3===(f=e.tokenize(m,f)).length&&((p=[1,1]).push.apply(p,s(f[1],e.languages.javascript,"javascript")),f.splice.apply(f,p)),p=new e.Token("interpolation",f,r.alias,m),f=h.substring(g+i.length),m=[],l&&m.push(l),m.push(p),f&&(t(h=[f]),m.push.apply(m,h)),"string"==typeof b?(n.splice.apply(n,[a,1].concat(m)),a+=m.length-1):b.content=m)):(g=b.content,Array.isArray(g)?t(g):t([g]))}}(l),new e.Token(i,l,"language-"+i,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var c={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function u(e){return"string"==typeof e?e:Array.isArray(e)?e.map(u).join(""):u(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in c&&function t(n){for(var r=0,o=n.length;r<o;r++){var a,i,s,c=n[r];"string"!=typeof c&&(a=c.content,Array.isArray(a)?"template-string"===c.type?(c=a[1],3===a.length&&"string"!=typeof c&&"embedded-code"===c.type&&(i=u(c),c=c.alias,c=Array.isArray(c)?c[0]:c,s=e.languages[c])&&(a[1]=l(i,s,c))):t(a):"string"!=typeof a&&t([a]))}}(t.tokens)}))}(k),function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(k),function(e){var t=e.languages.javascript,n=/\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})+\}/.source,r="(@(?:arg|argument|param|property)\\s+(?:"+n+"\\s+)?)";e.languages.jsdoc=e.languages.extend("javadoclike",{parameter:{pattern:RegExp(r+/(?:(?!\s)[$\w\xA0-\uFFFF.])+(?=\s|$)/.source),lookbehind:!0,inside:{punctuation:/\./}}}),e.languages.insertBefore("jsdoc","keyword",{"optional-parameter":{pattern:RegExp(r+/\[(?:(?!\s)[$\w\xA0-\uFFFF.])+(?:=[^[\]]+)?\](?=\s|$)/.source),lookbehind:!0,inside:{parameter:{pattern:/(^\[)[$\w\xA0-\uFFFF\.]+/,lookbehind:!0,inside:{punctuation:/\./}},code:{pattern:/(=)[\s\S]*(?=\]$)/,lookbehind:!0,inside:t,alias:"language-javascript"},punctuation:/[=[\]]/}},"class-name":[{pattern:RegExp(/(@(?:augments|class|extends|interface|memberof!?|template|this|typedef)\s+(?:<TYPE>\s+)?)[A-Z]\w*(?:\.[A-Z]\w*)*/.source.replace(/<TYPE>/g,(function(){return n}))),lookbehind:!0,inside:{punctuation:/\./}},{pattern:RegExp("(@[a-z]+\\s+)"+n),lookbehind:!0,inside:{string:t.string,number:t.number,boolean:t.boolean,keyword:e.languages.typescript.keyword,operator:/=>|\.\.\.|[&|?:*]/,punctuation:/[.,;=<>{}()[\]]/}}],example:{pattern:/(@example\s+(?!\s))(?:[^@\s]|\s+(?!\s))+?(?=\s*(?:\*\s*)?(?:@\w|\*\/))/,lookbehind:!0,inside:{code:{pattern:/^([\t ]*(?:\*\s*)?)\S.*$/m,lookbehind:!0,inside:t,alias:"language-javascript"}}}}),e.languages.javadoclike.addSupport("javascript",e.languages.jsdoc)}(k),function(e){e.languages.flow=e.languages.extend("javascript",{}),e.languages.insertBefore("flow","keyword",{type:[{pattern:/\b(?:[Bb]oolean|Function|[Nn]umber|[Ss]tring|[Ss]ymbol|any|mixed|null|void)\b/,alias:"class-name"}]}),e.languages.flow["function-variable"].pattern=/(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=\s*(?:function\b|(?:\([^()]*\)(?:\s*:\s*\w+)?|(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/i,delete e.languages.flow.parameter,e.languages.insertBefore("flow","operator",{"flow-punctuation":{pattern:/\{\||\|\}/,alias:"punctuation"}}),Array.isArray(e.languages.flow.keyword)||(e.languages.flow.keyword=[e.languages.flow.keyword]),e.languages.flow.keyword.unshift({pattern:/(^|[^$]\b)(?:Class|declare|opaque|type)\b(?!\$)/,lookbehind:!0},{pattern:/(^|[^$]\B)\$(?:Diff|Enum|Exact|Keys|ObjMap|PropertyType|Record|Shape|Subtype|Supertype|await)\b(?!\$)/,lookbehind:!0})}(k),k.languages.n4js=k.languages.extend("javascript",{keyword:/\b(?:Array|any|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/}),k.languages.insertBefore("n4js","constant",{annotation:{pattern:/@+\w+/,alias:"operator"}}),k.languages.n4jsd=k.languages.n4js,function(e){function t(e,t){return RegExp(e.replace(/<ID>/g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:<ID>(?:\s*,\s*(?:\*\s*as\s+<ID>|\{[^{}]*\}))?|\*\s*as\s+<ID>|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+<ID>)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?<ID>/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r<n.length;r++){var o=n[r],a=e.languages.javascript[o];o=(a="RegExp"===e.util.type(a)?e.languages.javascript[o]={pattern:a}:a).inside||{};(a.inside=o)["maybe-class-name"]=/^[A-Z][\s\S]*/}}(k),function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,r=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,o=/(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;function a(e,t){return e=e.replace(/<S>/g,(function(){return n})).replace(/<BRACES>/g,(function(){return r})).replace(/<SPREAD>/g,(function(){return o})),RegExp(e,t)}function i(t){for(var n=[],r=0;r<t.length;r++){var o=t[r],a=!1;"string"!=typeof o&&("tag"===o.type&&o.content[0]&&"tag"===o.content[0].type?"</"===o.content[0].content[0].content?0<n.length&&n[n.length-1].tagName===s(o.content[0].content[1])&&n.pop():"/>"!==o.content[o.content.length-1].content&&n.push({tagName:s(o.content[0].content[1]),openedBraces:0}):0<n.length&&"punctuation"===o.type&&"{"===o.content?n[n.length-1].openedBraces++:0<n.length&&0<n[n.length-1].openedBraces&&"punctuation"===o.type&&"}"===o.content?n[n.length-1].openedBraces--:a=!0),(a||"string"==typeof o)&&0<n.length&&0===n[n.length-1].openedBraces&&(a=s(o),r<t.length-1&&("string"==typeof t[r+1]||"plain-text"===t[r+1].type)&&(a+=s(t[r+1]),t.splice(r+1,1)),0<r&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(a=s(t[r-1])+a,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",a,null,a)),o.content&&"string"!=typeof o.content&&i(o.content)}}o=a(o).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=a(/<\/?(?:[\w.:-]+(?:<S>+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:a(/<SPREAD>/.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:a(/=<BRACES>/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var s=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(s).join(""):""};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||i(e.tokens)}))}(k),function(e){var t=e.util.clone(e.languages.typescript);(t=(e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"],e.languages.tsx.tag)).pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+t.pattern.source+")",t.pattern.flags),t.lookbehind=!0}(k),k.languages.swift={comment:{pattern:/(^|[^\\:])(?:\/\/.*|\/\*(?:[^/*]|\/(?!\*)|\*(?!\/)|\/\*(?:[^*]|\*(?!\/))*\*\/)*\*\/)/,lookbehind:!0,greedy:!0},"string-literal":[{pattern:RegExp(/(^|[^"#])/.source+"(?:"+/"(?:\\(?:\((?:[^()]|\([^()]*\))*\)|\r\n|[^(])|[^\\\r\n"])*"/.source+"|"+/"""(?:\\(?:\((?:[^()]|\([^()]*\))*\)|[^(])|[^\\"]|"(?!""))*"""/.source+")"+/(?!["#])/.source),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\\($/,alias:"punctuation"},punctuation:/\\(?=[\r\n])/,string:/[\s\S]+/}},{pattern:RegExp(/(^|[^"#])(#+)/.source+"(?:"+/"(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|\r\n|[^#])|[^\\\r\n])*?"/.source+"|"+/"""(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|[^#])|[^\\])*?"""/.source+")\\2"),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\#+\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\#+\($/,alias:"punctuation"},string:/[\s\S]+/}}],directive:{pattern:RegExp(/#/.source+"(?:"+/(?:elseif|if)\b/.source+"(?:[ \t]*"+/(?:![ \t]*)?(?:\b\w+\b(?:[ \t]*\((?:[^()]|\([^()]*\))*\))?|\((?:[^()]|\([^()]*\))*\))(?:[ \t]*(?:&&|\|\|))?/.source+")+|"+/(?:else|endif)\b/.source+")"),alias:"property",inside:{"directive-name":/^#\w+/,boolean:/\b(?:false|true)\b/,number:/\b\d+(?:\.\d+)*\b/,operator:/!|&&|\|\||[<>]=?/,punctuation:/[(),]/}},literal:{pattern:/#(?:colorLiteral|column|dsohandle|file(?:ID|Literal|Path)?|function|imageLiteral|line)\b/,alias:"constant"},"other-directive":{pattern:/#\w+\b/,alias:"property"},attribute:{pattern:/@\w+/,alias:"atrule"},"function-definition":{pattern:/(\bfunc\s+)\w+/,lookbehind:!0,alias:"function"},label:{pattern:/\b(break|continue)\s+\w+|\b[a-zA-Z_]\w*(?=\s*:\s*(?:for|repeat|while)\b)/,lookbehind:!0,alias:"important"},keyword:/\b(?:Any|Protocol|Self|Type|actor|as|assignment|associatedtype|associativity|async|await|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic|else|enum|extension|fallthrough|fileprivate|final|for|func|get|guard|higherThan|if|import|in|indirect|infix|init|inout|internal|is|isolated|lazy|left|let|lowerThan|mutating|none|nonisolated|nonmutating|open|operator|optional|override|postfix|precedencegroup|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|set|some|static|struct|subscript|super|switch|throw|throws|try|typealias|unowned|unsafe|var|weak|where|while|willSet)\b/,boolean:/\b(?:false|true)\b/,nil:{pattern:/\bnil\b/,alias:"constant"},"short-argument":/\$\d+\b/,omit:{pattern:/\b_\b/,alias:"keyword"},number:/\b(?:[\d_]+(?:\.[\de_]+)?|0x[a-f0-9_]+(?:\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i,"class-name":/\b[A-Z](?:[A-Z_\d]*[a-z]\w*)?\b/,function:/\b[a-z_]\w*(?=\s*\()/i,constant:/\b(?:[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/,operator:/[-+*/%=!<>&|^~?]+|\.[.\-+*/%=!<>&|^~?]+/,punctuation:/[{}[\]();,.:\\]/},k.languages.swift["string-literal"].forEach((function(e){e.inside.interpolation.inside=k.languages.swift})),function(e){e.languages.kotlin=e.languages.extend("clike",{keyword:{pattern:/(^|[^.])\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\b/,lookbehind:!0},function:[{pattern:/(?:`[^\r\n`]+`|\b\w+)(?=\s*\()/,greedy:!0},{pattern:/(\.)(?:`[^\r\n`]+`|\w+)(?=\s*\{)/,lookbehind:!0,greedy:!0}],number:/\b(?:0[xX][\da-fA-F]+(?:_[\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?[fFL]?)\b/,operator:/\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/}),delete e.languages.kotlin["class-name"];var t={"interpolation-punctuation":{pattern:/^\$\{?|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:e.languages.kotlin}};e.languages.insertBefore("kotlin","string",{"string-literal":[{pattern:/"""(?:[^$]|\$(?:(?!\{)|\{[^{}]*\}))*?"""/,alias:"multiline",inside:{interpolation:{pattern:/\$(?:[a-z_]\w*|\{[^{}]*\})/i,inside:t},string:/[\s\S]+/}},{pattern:/"(?:[^"\\\r\n$]|\\.|\$(?:(?!\{)|\{[^{}]*\}))*"/,alias:"singleline",inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:[a-z_]\w*|\{[^{}]*\})/i,lookbehind:!0,inside:t},string:/[\s\S]+/}}],char:{pattern:/'(?:[^'\\\r\n]|\\(?:.|u[a-fA-F0-9]{0,4}))'/,greedy:!0}}),delete e.languages.kotlin.string,e.languages.insertBefore("kotlin","keyword",{annotation:{pattern:/\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/,alias:"builtin"}}),e.languages.insertBefore("kotlin","function",{label:{pattern:/\b\w+@|@\w+\b/,alias:"symbol"}}),e.languages.kt=e.languages.kotlin,e.languages.kts=e.languages.kotlin}(k),k.languages.c=k.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),k.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),k.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},k.languages.c.string],char:k.languages.c.char,comment:k.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:k.languages.c}}}}),k.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete k.languages.c.boolean,k.languages.objectivec=k.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete k.languages.objectivec["class-name"],k.languages.objc=k.languages.objectivec,k.languages.reason=k.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),k.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete k.languages.reason.function,function(e){for(var t=/\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|<self>)*\*\//.source,n=0;n<2;n++)t=t.replace(/<self>/g,(function(){return t}));t=t.replace(/<self>/g,(function(){return/[^\s\S]/.source})),e.languages.rust={comment:[{pattern:RegExp(/(^|[^\\])/.source+t),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,greedy:!0},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:"attr-name",inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:"punctuation"},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:"symbol"},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:"punctuation"},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:"function"},"type-definition":{pattern:/(\b(?:enum|struct|trait|type|union)\s+)\w+/,lookbehind:!0,alias:"class-name"},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:"namespace"},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:"namespace",inside:{punctuation:/::/}}],keyword:[/\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\b\w+!/,alias:"property"},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<<?=?|>>?=?|[@?]/},e.languages.rust["closure-params"].inside.rest=e.languages.rust,e.languages.rust.attribute.inside.string=e.languages.rust.string}(k),k.languages.go=k.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),k.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete k.languages.go["class-name"],function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!<keyword>)\w+(?:\s*\.\s*\w+)*\b/.source.replace(/<keyword>/g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!<keyword>)\w+/.source.replace(/<keyword>/g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/<mod-name>(?:\s*:\s*<mod-name>)?|:\s*<mod-name>/.source.replace(/<mod-name>/g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(k),k.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},k.languages.python["string-interpolation"].inside.interpolation.inside.rest=k.languages.python,k.languages.py=k.languages.python,k.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},k.languages.webmanifest=k.languages.json;((e,t)=>{for(var n in t)l(e,n,{get:t[n],enumerable:!0})})({},{dracula:()=>S,duotoneDark:()=>x,duotoneLight:()=>E,github:()=>C,gruvboxMaterialDark:()=>q,gruvboxMaterialLight:()=>$,jettwaveDark:()=>F,jettwaveLight:()=>B,nightOwl:()=>_,nightOwlLight:()=>O,oceanicNext:()=>j,okaidia:()=>L,oneDark:()=>z,oneLight:()=>U,palenight:()=>P,shadesOfPurple:()=>D,synthwave84:()=>R,ultramin:()=>N,vsDark:()=>I,vsLight:()=>M});var S={plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},x={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule-id"],style:{color:"#eeebff"}},{types:["attr-name"],style:{color:"#c4b9fe"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule","placeholder","variable"],style:{color:"#ffcc99"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#c4b9fe"}}]},E={plain:{backgroundColor:"#faf8f5",color:"#728fcb"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#b6ad9a"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#063289"}},{types:["property","function"],style:{color:"#b29762"}},{types:["tag-id","selector","atrule-id"],style:{color:"#2d2006"}},{types:["attr-name"],style:{color:"#896724"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule"],style:{color:"#728fcb"}},{types:["placeholder","variable"],style:{color:"#93abdc"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#896724"}}]},C={plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},_={plain:{color:"#d6deeb",backgroundColor:"#011627"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(99, 119, 119)",fontStyle:"italic"}},{types:["string","url"],style:{color:"rgb(173, 219, 103)"}},{types:["variable"],style:{color:"rgb(214, 222, 235)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation"],style:{color:"rgb(199, 146, 234)"}},{types:["selector","doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(255, 203, 139)"}},{types:["tag","operator","keyword"],style:{color:"rgb(127, 219, 202)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["property"],style:{color:"rgb(128, 203, 196)"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}}]},O={plain:{color:"#403f53",backgroundColor:"#FBFBFB"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(72, 118, 214)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(152, 159, 177)",fontStyle:"italic"}},{types:["string","builtin","char","constant","url"],style:{color:"rgb(72, 118, 214)"}},{types:["variable"],style:{color:"rgb(201, 103, 101)"}},{types:["number"],style:{color:"rgb(170, 9, 130)"}},{types:["punctuation"],style:{color:"rgb(153, 76, 195)"}},{types:["function","selector","doctype"],style:{color:"rgb(153, 76, 195)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(17, 17, 17)"}},{types:["tag"],style:{color:"rgb(153, 76, 195)"}},{types:["operator","property","keyword","namespace"],style:{color:"rgb(12, 150, 155)"}},{types:["boolean"],style:{color:"rgb(188, 84, 84)"}}]},A="#c5a5c5",T="#8dc891",j={plain:{backgroundColor:"#282c34",color:"#ffffff"},styles:[{types:["attr-name"],style:{color:A}},{types:["attr-value"],style:{color:T}},{types:["comment","block-comment","prolog","doctype","cdata","shebang"],style:{color:"#999999"}},{types:["property","number","function-name","constant","symbol","deleted"],style:{color:"#5a9bcf"}},{types:["boolean"],style:{color:"#ff8b50"}},{types:["tag"],style:{color:"#fc929e"}},{types:["string"],style:{color:T}},{types:["punctuation"],style:{color:T}},{types:["selector","char","builtin","inserted"],style:{color:"#D8DEE9"}},{types:["function"],style:{color:"#79b6f2"}},{types:["operator","entity","url","variable"],style:{color:"#d7deea"}},{types:["keyword"],style:{color:A}},{types:["atrule","class-name"],style:{color:"#FAC863"}},{types:["important"],style:{fontWeight:"400"}},{types:["bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}}]},L={plain:{color:"#f8f8f2",backgroundColor:"#272822"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"#f92672",fontStyle:"italic"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"#8292a2",fontStyle:"italic"}},{types:["string","url"],style:{color:"#a6e22e"}},{types:["variable"],style:{color:"#f8f8f2"}},{types:["number"],style:{color:"#ae81ff"}},{types:["builtin","char","constant","function","class-name"],style:{color:"#e6db74"}},{types:["punctuation"],style:{color:"#f8f8f2"}},{types:["selector","doctype"],style:{color:"#a6e22e",fontStyle:"italic"}},{types:["tag","operator","keyword"],style:{color:"#66d9ef"}},{types:["boolean"],style:{color:"#ae81ff"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)",opacity:.7}},{types:["tag","property"],style:{color:"#f92672"}},{types:["attr-name"],style:{color:"#a6e22e !important"}},{types:["doctype"],style:{color:"#8292a2"}},{types:["rule"],style:{color:"#e6db74"}}]},P={plain:{color:"#bfc7d5",backgroundColor:"#292d3e"},styles:[{types:["comment"],style:{color:"rgb(105, 112, 152)",fontStyle:"italic"}},{types:["string","inserted"],style:{color:"rgb(195, 232, 141)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation","selector"],style:{color:"rgb(199, 146, 234)"}},{types:["variable"],style:{color:"rgb(191, 199, 213)"}},{types:["class-name","attr-name"],style:{color:"rgb(255, 203, 107)"}},{types:["tag","deleted"],style:{color:"rgb(255, 85, 114)"}},{types:["operator"],style:{color:"rgb(137, 221, 255)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["keyword"],style:{fontStyle:"italic"}},{types:["doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}},{types:["url"],style:{color:"rgb(221, 221, 221)"}}]},D={plain:{color:"#9EFEFF",backgroundColor:"#2D2A55"},styles:[{types:["changed"],style:{color:"rgb(255, 238, 128)"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)"}},{types:["comment"],style:{color:"rgb(179, 98, 255)",fontStyle:"italic"}},{types:["punctuation"],style:{color:"rgb(255, 255, 255)"}},{types:["constant"],style:{color:"rgb(255, 98, 140)"}},{types:["string","url"],style:{color:"rgb(165, 255, 144)"}},{types:["variable"],style:{color:"rgb(255, 238, 128)"}},{types:["number","boolean"],style:{color:"rgb(255, 98, 140)"}},{types:["attr-name"],style:{color:"rgb(255, 180, 84)"}},{types:["keyword","operator","property","namespace","tag","selector","doctype"],style:{color:"rgb(255, 157, 0)"}},{types:["builtin","char","constant","function","class-name"],style:{color:"rgb(250, 208, 0)"}}]},R={plain:{backgroundColor:"linear-gradient(to bottom, #2a2139 75%, #34294f)",backgroundImage:"#34294f",color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"},styles:[{types:["comment","block-comment","prolog","doctype","cdata"],style:{color:"#495495",fontStyle:"italic"}},{types:["punctuation"],style:{color:"#ccc"}},{types:["tag","attr-name","namespace","number","unit","hexcode","deleted"],style:{color:"#e2777a"}},{types:["property","selector"],style:{color:"#72f1b8",textShadow:"0 0 2px #100c0f, 0 0 10px #257c5575, 0 0 35px #21272475"}},{types:["function-name"],style:{color:"#6196cc"}},{types:["boolean","selector-id","function"],style:{color:"#fdfdfd",textShadow:"0 0 2px #001716, 0 0 3px #03edf975, 0 0 5px #03edf975, 0 0 8px #03edf975"}},{types:["class-name","maybe-class-name","builtin"],style:{color:"#fff5f6",textShadow:"0 0 2px #000, 0 0 10px #fc1f2c75, 0 0 5px #fc1f2c75, 0 0 25px #fc1f2c75"}},{types:["constant","symbol"],style:{color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"}},{types:["important","atrule","keyword","selector-class"],style:{color:"#f4eee4",textShadow:"0 0 2px #393a33, 0 0 8px #f39f0575, 0 0 2px #f39f0575"}},{types:["string","char","attr-value","regex","variable"],style:{color:"#f87c32"}},{types:["parameter"],style:{fontStyle:"italic"}},{types:["entity","url"],style:{color:"#67cdcc"}},{types:["operator"],style:{color:"ffffffee"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["entity"],style:{cursor:"help"}},{types:["inserted"],style:{color:"green"}}]},N={plain:{color:"#282a2e",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(197, 200, 198)"}},{types:["string","number","builtin","variable"],style:{color:"rgb(150, 152, 150)"}},{types:["class-name","function","tag","attr-name"],style:{color:"rgb(40, 42, 46)"}}]},I={plain:{color:"#9CDCFE",backgroundColor:"#1E1E1E"},styles:[{types:["prolog"],style:{color:"rgb(0, 0, 128)"}},{types:["comment"],style:{color:"rgb(106, 153, 85)"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"rgb(86, 156, 214)"}},{types:["number","inserted"],style:{color:"rgb(181, 206, 168)"}},{types:["constant"],style:{color:"rgb(100, 102, 149)"}},{types:["attr-name","variable"],style:{color:"rgb(156, 220, 254)"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"rgb(206, 145, 120)"}},{types:["selector"],style:{color:"rgb(215, 186, 125)"}},{types:["tag"],style:{color:"rgb(78, 201, 176)"}},{types:["tag"],languages:["markup"],style:{color:"rgb(86, 156, 214)"}},{types:["punctuation","operator"],style:{color:"rgb(212, 212, 212)"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"rgb(220, 220, 170)"}},{types:["class-name"],style:{color:"rgb(78, 201, 176)"}},{types:["char"],style:{color:"rgb(209, 105, 105)"}}]},M={plain:{color:"#000000",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(0, 128, 0)"}},{types:["builtin"],style:{color:"rgb(0, 112, 193)"}},{types:["number","variable","inserted"],style:{color:"rgb(9, 134, 88)"}},{types:["operator"],style:{color:"rgb(0, 0, 0)"}},{types:["constant","char"],style:{color:"rgb(129, 31, 63)"}},{types:["tag"],style:{color:"rgb(128, 0, 0)"}},{types:["attr-name"],style:{color:"rgb(255, 0, 0)"}},{types:["deleted","string"],style:{color:"rgb(163, 21, 21)"}},{types:["changed","punctuation"],style:{color:"rgb(4, 81, 165)"}},{types:["function","keyword"],style:{color:"rgb(0, 0, 255)"}},{types:["class-name"],style:{color:"rgb(38, 127, 153)"}}]},F={plain:{color:"#f8fafc",backgroundColor:"#011627"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#569CD6"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#f8fafc"}},{types:["attr-name","variable"],style:{color:"#9CDCFE"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#cbd5e1"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#D4D4D4"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#7dd3fc"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},B={plain:{color:"#0f172a",backgroundColor:"#f1f5f9"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#0c4a6e"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#0f172a"}},{types:["attr-name","variable"],style:{color:"#0c4a6e"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#64748b"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#475569"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#0e7490"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},z={plain:{backgroundColor:"hsl(220, 13%, 18%)",color:"hsl(220, 14%, 71%)",textShadow:"0 1px rgba(0, 0, 0, 0.3)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(220, 10%, 40%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(220, 14%, 71%)"}},{types:["attr-name","class-name","maybe-class-name","boolean","constant","number","atrule"],style:{color:"hsl(29, 54%, 61%)"}},{types:["keyword"],style:{color:"hsl(286, 60%, 67%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(355, 65%, 65%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value"],style:{color:"hsl(95, 38%, 62%)"}},{types:["variable","operator","function"],style:{color:"hsl(207, 82%, 66%)"}},{types:["url"],style:{color:"hsl(187, 47%, 55%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(220, 14%, 71%)"}}]},U={plain:{backgroundColor:"hsl(230, 1%, 98%)",color:"hsl(230, 8%, 24%)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(230, 4%, 64%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(230, 8%, 24%)"}},{types:["attr-name","class-name","boolean","constant","number","atrule"],style:{color:"hsl(35, 99%, 36%)"}},{types:["keyword"],style:{color:"hsl(301, 63%, 40%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(5, 74%, 59%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value","punctuation"],style:{color:"hsl(119, 34%, 47%)"}},{types:["variable","operator","function"],style:{color:"hsl(221, 87%, 60%)"}},{types:["url"],style:{color:"hsl(198, 99%, 37%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(230, 8%, 24%)"}}]},q={plain:{color:"#ebdbb2",backgroundColor:"#292828"},styles:[{types:["imports","class-name","maybe-class-name","constant","doctype","builtin","function"],style:{color:"#d8a657"}},{types:["property-access"],style:{color:"#7daea3"}},{types:["tag"],style:{color:"#e78a4e"}},{types:["attr-name","char","url","regex"],style:{color:"#a9b665"}},{types:["attr-value","string"],style:{color:"#89b482"}},{types:["comment","prolog","cdata","operator","inserted"],style:{color:"#a89984"}},{types:["delimiter","boolean","keyword","selector","important","atrule","property","variable","deleted"],style:{color:"#ea6962"}},{types:["entity","number","symbol"],style:{color:"#d3869b"}}]},$={plain:{color:"#654735",backgroundColor:"#f9f5d7"},styles:[{types:["delimiter","boolean","keyword","selector","important","atrule","property","variable","deleted"],style:{color:"#af2528"}},{types:["imports","class-name","maybe-class-name","constant","doctype","builtin"],style:{color:"#b4730e"}},{types:["string","attr-value"],style:{color:"#477a5b"}},{types:["property-access"],style:{color:"#266b79"}},{types:["function","attr-name","char","url"],style:{color:"#72761e"}},{types:["tag"],style:{color:"#b94c07"}},{types:["comment","prolog","cdata","operator","inserted"],style:{color:"#a89984"}},{types:["entity","number","symbol"],style:{color:"#924f79"}}]},H=(e,t)=>{const{plain:n}=e,r=e.styles.reduce(((e,n)=>{const{languages:r,style:o}=n;return r&&!r.includes(t)||n.types.forEach((t=>{const n=v(v({},e[t]),o);e[t]=n})),e}),{});return r.root=n,r.plain=y(v({},n),{backgroundColor:void 0}),r},G=/\r\n|\r|\n/,V=e=>{0===e.length?e.push({types:["plain"],content:"\n",empty:!0}):1===e.length&&""===e[0].content&&(e[0].content="\n",e[0].empty=!0)},W=(e,t)=>{const n=e.length;return n>0&&e[n-1]===t?e:e.concat(t)},K=e=>{const t=[[]],n=[e],r=[0],o=[e.length];let a=0,i=0,s=[];const l=[s];for(;i>-1;){for(;(a=r[i]++)<o[i];){let e,c=t[i];const u=n[i][a];if("string"==typeof u?(c=i>0?c:["plain"],e=u):(c=W(c,u.type),u.alias&&(c=W(c,u.alias)),e=u.content),"string"!=typeof e){i++,t.push(c),n.push(e),r.push(0),o.push(e.length);continue}const d=e.split(G),p=d.length;s.push({types:c,content:d[0]});for(let t=1;t<p;t++)V(s),l.push(s=[]),s.push({types:c,content:d[t]})}i--,t.pop(),n.pop(),r.pop(),o.pop()}return V(s),l},Q=({children:e,language:t,code:n,theme:r,prism:o})=>{const s=t.toLowerCase(),l=((e,t)=>{const[n,r]=(0,a.useState)(H(t,e)),o=(0,a.useRef)(),i=(0,a.useRef)();return(0,a.useEffect)((()=>{t===o.current&&e===i.current||(o.current=t,i.current=e,r(H(t,e)))}),[e,t]),n})(s,r),c=(e=>(0,a.useCallback)((t=>{var n=t,{className:r,style:o,line:a}=n,s=w(n,["className","style","line"]);const l=y(v({},s),{className:(0,i.A)("token-line",r)});return"object"==typeof e&&"plain"in e&&(l.style=e.plain),"object"==typeof o&&(l.style=v(v({},l.style||{}),o)),l}),[e]))(l),u=(e=>{const t=(0,a.useCallback)((({types:t,empty:n})=>{if(null!=e)return 1===t.length&&"plain"===t[0]?null!=n?{display:"inline-block"}:void 0:1===t.length&&null!=n?e[t[0]]:Object.assign(null!=n?{display:"inline-block"}:{},...t.map((t=>e[t])))}),[e]);return(0,a.useCallback)((e=>{var n=e,{token:r,className:o,style:a}=n,s=w(n,["token","className","style"]);const l=y(v({},s),{className:(0,i.A)("token",...r.types,o),children:r.content,style:t(r)});return null!=a&&(l.style=v(v({},l.style||{}),a)),l}),[t])})(l),d=(({prism:e,code:t,grammar:n,language:r})=>{const o=(0,a.useRef)(e);return(0,a.useMemo)((()=>{if(null==n)return K([t]);const e={code:t,grammar:n,language:r,tokens:[]};return o.current.hooks.run("before-tokenize",e),e.tokens=o.current.tokenize(t,n),o.current.hooks.run("after-tokenize",e),K(e.tokens)}),[t,n,r])})({prism:o,language:s,code:n,grammar:o.languages[s]});return e({tokens:d,className:`prism-code language-${s}`,style:null!=l?l.root:{},getLineProps:c,getTokenProps:u})},Z=e=>(0,a.createElement)(Q,y(v({},e),{prism:e.prism||k,theme:e.theme||I,code:e.code,language:e.language}))},5385:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=!0,o="Invariant failed";function a(e,t){if(!e){if(r)throw new Error(o);var n="function"==typeof t?t():t,a=n?"".concat(o,": ").concat(n):o;throw new Error(a)}}},2654:e=>{"use strict";e.exports={}},4054:e=>{"use strict";e.exports=JSON.parse('{"/search-6c5":{"__comp":"1a4e3797","__context":{"plugin":"38a5c357"}},"/docs-a1a":{"__comp":"5e95c892","__context":{"plugin":"68efb262"}},"/docs-9c7":{"__comp":"a7bd4aaa","version":"935f2afb"},"/docs-af1":{"__comp":"a94703ab"},"/docs/about-morph/faqs-db6":{"__comp":"17896441","content":"39f485e7"},"/docs/about-morph/key-concepts-b1a":{"__comp":"17896441","content":"9fc9b620"},"/docs/about-morph/key-concepts/optimistic-rollup-ec2":{"__comp":"17896441","content":"dfd8dfaf"},"/docs/about-morph/morphs-architecture-1e7":{"__comp":"17896441","content":"ad8d1448"},"/docs/about-morph/morphs-vision-and-mission-cd4":{"__comp":"17896441","content":"99b8a708"},"/docs/about-morph/overview-of-morph-d84":{"__comp":"17896441","content":"08b9f613"},"/docs/about-morph/roadmap-460":{"__comp":"17896441","content":"1a1587e1"},"/docs/about-morph/the-technology-behind-morph-b44":{"__comp":"17896441","content":"33e57971"},"/docs/about-morph/user-navigation-page-19e":{"__comp":"17896441","content":"82419dfd"},"/docs/about-morph/where-should-i-start-e58":{"__comp":"17896441","content":"52171187"},"/docs/build-on-morph/build-on-morph/bridge-between-morph-and-ethereum-59b":{"__comp":"17896441","content":"5bc5b9ce"},"/docs/build-on-morph/build-on-morph/development-setup-d4d":{"__comp":"17896441","content":"9d4e1be7"},"/docs/build-on-morph/build-on-morph/integration-one-page-48a":{"__comp":"17896441","content":"73af12fb"},"/docs/build-on-morph/build-on-morph/integration-one-page-cn-e8d":{"__comp":"17896441","content":"a04af9a2"},"/docs/build-on-morph/build-on-morph/understand-transaction-cost-on-morph-fc4":{"__comp":"17896441","content":"fac53bf8"},"/docs/build-on-morph/build-on-morph/verify-your-smart-contracts-120":{"__comp":"17896441","content":"af91f293"},"/docs/build-on-morph/code-examples/bridge-between-morph-and-ethereum-ed4":{"__comp":"17896441","content":"8347fa88"},"/docs/build-on-morph/code-examples/deploy-contract-on-morph-5af":{"__comp":"17896441","content":"2f19d5d4"},"/docs/build-on-morph/developer-navigation-page-6f3":{"__comp":"17896441","content":"e6f27cd2"},"/docs/build-on-morph/developer-resources/contracts-51b":{"__comp":"17896441","content":"e7a84acc"},"/docs/build-on-morph/developer-resources/dapp-examples-on-morph-899":{"__comp":"17896441","content":"8d0b932e"},"/docs/build-on-morph/developer-resources/how-to-run-a-morph-node-a6b":{"__comp":"17896441","content":"fb26d209"},"/docs/build-on-morph/developer-resources/morph-json-rpc-api-methods-c1b":{"__comp":"17896441","content":"22a82985"},"/docs/build-on-morph/developer-resources/node-operation/full-node/run-in-docker-e0e":{"__comp":"17896441","content":"ff3f68fa"},"/docs/build-on-morph/developer-resources/node-operation/full-node/run-on-host-c23":{"__comp":"17896441","content":"b137769e"},"/docs/build-on-morph/developer-resources/node-operation/prune-state-63a":{"__comp":"17896441","content":"5d313dc3"},"/docs/build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-docker-fb2":{"__comp":"17896441","content":"3250a443"},"/docs/build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-host-d69":{"__comp":"17896441","content":"a0d75a43"},"/docs/build-on-morph/developer-resources/node-operation/validator-node/run-in-docker-4df":{"__comp":"17896441","content":"4f7a49ab"},"/docs/build-on-morph/developer-resources/node-operation/validator-node/run-on-host-653":{"__comp":"17896441","content":"f3316ef7"},"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/account-abstraction-924":{"__comp":"17896441","content":"5c242b2e"},"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/artificial-intelligence-ad8":{"__comp":"17896441","content":"1f2dc99a"},"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/block-explorer-cce":{"__comp":"17896441","content":"405a8a84"},"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-indexing-services-b59":{"__comp":"17896441","content":"7a5975a7"},"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-oracles-b1d":{"__comp":"17896441","content":"bce3eedd"},"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/cross-chain-interoperability-efa":{"__comp":"17896441","content":"b202810b"},"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/decentralized-naming-services-2a2":{"__comp":"17896441","content":"e6305dab"},"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/rpc-services-072":{"__comp":"17896441","content":"829cd294"},"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/safe-multi-signature-wallet-d7e":{"__comp":"17896441","content":"c7ccd35b"},"/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/user-onboarding-fe8":{"__comp":"17896441","content":"cfe67a99"},"/docs/build-on-morph/intro-235":{"__comp":"17896441","content":"3f6197d4"},"/docs/build-on-morph/sdk/classes/CrossChainMessenger-71f":{"__comp":"17896441","content":"e7f02677"},"/docs/build-on-morph/sdk/classes/ETHBridgeAdapter-e0f":{"__comp":"17896441","content":"59db22f4"},"/docs/build-on-morph/sdk/classes/StandardBridgeAdapter-be7":{"__comp":"17896441","content":"fb24aa13"},"/docs/build-on-morph/sdk/enumerations/L1ChainID-bfe":{"__comp":"17896441","content":"7824cff9"},"/docs/build-on-morph/sdk/enumerations/L1RpcUrls-212":{"__comp":"17896441","content":"69301e8b"},"/docs/build-on-morph/sdk/enumerations/L2ChainID-e8e":{"__comp":"17896441","content":"e8fcecf9"},"/docs/build-on-morph/sdk/enumerations/L2RpcUrls-7f9":{"__comp":"17896441","content":"7c45cc48"},"/docs/build-on-morph/sdk/enumerations/MessageDirection-681":{"__comp":"17896441","content":"720f9cb5"},"/docs/build-on-morph/sdk/enumerations/MessageReceiptStatus-1f3":{"__comp":"17896441","content":"95a7ae32"},"/docs/build-on-morph/sdk/enumerations/MessageStatus-a5a":{"__comp":"17896441","content":"a2db6fd6"},"/docs/build-on-morph/sdk/functions/asL2Provider-4b1":{"__comp":"17896441","content":"72171cd8"},"/docs/build-on-morph/sdk/functions/estimateL1Gas-a2f":{"__comp":"17896441","content":"e3875bab"},"/docs/build-on-morph/sdk/functions/estimateL1GasCost-06e":{"__comp":"17896441","content":"e8c42455"},"/docs/build-on-morph/sdk/functions/estimateL2GasCost-20f":{"__comp":"17896441","content":"a1f831b5"},"/docs/build-on-morph/sdk/functions/estimateTotalGasCost-bc5":{"__comp":"17896441","content":"38e6cd8b"},"/docs/build-on-morph/sdk/functions/getAllOEContracts-91e":{"__comp":"17896441","content":"b4c00acc"},"/docs/build-on-morph/sdk/functions/getBridgeAdapters-5d3":{"__comp":"17896441","content":"d8273606"},"/docs/build-on-morph/sdk/functions/getL1GasPrice-68c":{"__comp":"17896441","content":"46618904"},"/docs/build-on-morph/sdk/functions/getOEContract-ea0":{"__comp":"17896441","content":"e912b961"},"/docs/build-on-morph/sdk/functions/hashLowLevelMessageV2-301":{"__comp":"17896441","content":"9235c071"},"/docs/build-on-morph/sdk/functions/hashMessageHash-f9c":{"__comp":"17896441","content":"beb6ddce"},"/docs/build-on-morph/sdk/functions/isL2Provider-0a3":{"__comp":"17896441","content":"f93d7a3b"},"/docs/build-on-morph/sdk/functions/migratedWithdrawalGasLimit-a8f":{"__comp":"17896441","content":"6ba36391"},"/docs/build-on-morph/sdk/functions/omit-31d":{"__comp":"17896441","content":"8613d4b8"},"/docs/build-on-morph/sdk/functions/toAddress-52d":{"__comp":"17896441","content":"028d32dc"},"/docs/build-on-morph/sdk/functions/toBigNumber-1cd":{"__comp":"17896441","content":"4784893f"},"/docs/build-on-morph/sdk/functions/toNumber-47f":{"__comp":"17896441","content":"a399e926"},"/docs/build-on-morph/sdk/functions/toProvider-b81":{"__comp":"17896441","content":"fe9c53f2"},"/docs/build-on-morph/sdk/functions/toSignerOrProvider-474":{"__comp":"17896441","content":"f435c040"},"/docs/build-on-morph/sdk/functions/toTransactionHash-b90":{"__comp":"17896441","content":"4cbe5783"},"/docs/build-on-morph/sdk/globals-a28":{"__comp":"17896441","content":"d475c619"},"/docs/build-on-morph/sdk/interfaces/BridgeAdapterData-658":{"__comp":"17896441","content":"5acb1cf6"},"/docs/build-on-morph/sdk/interfaces/BridgeAdapters-6e5":{"__comp":"17896441","content":"b0d24208"},"/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage-e90":{"__comp":"17896441","content":"ff883f18"},"/docs/build-on-morph/sdk/interfaces/CrossChainMessage-6a8":{"__comp":"17896441","content":"833a0690"},"/docs/build-on-morph/sdk/interfaces/CrossChainMessageRequest-c6e":{"__comp":"17896441","content":"7c1e7b23"},"/docs/build-on-morph/sdk/interfaces/IActionOptions-32e":{"__comp":"17896441","content":"e3bda051"},"/docs/build-on-morph/sdk/interfaces/IBridgeAdapter-d75":{"__comp":"17896441","content":"9e1db927"},"/docs/build-on-morph/sdk/interfaces/L2Block-526":{"__comp":"17896441","content":"9a9366b1"},"/docs/build-on-morph/sdk/interfaces/L2BlockWithTransactions-fd3":{"__comp":"17896441","content":"6f037fd7"},"/docs/build-on-morph/sdk/interfaces/L2Transaction-107":{"__comp":"17896441","content":"2b4bd9da"},"/docs/build-on-morph/sdk/interfaces/MessageReceipt-c6d":{"__comp":"17896441","content":"4a269d4a"},"/docs/build-on-morph/sdk/interfaces/OEContracts-174":{"__comp":"17896441","content":"c30bab43"},"/docs/build-on-morph/sdk/interfaces/OEContractsLike-86e":{"__comp":"17896441","content":"70e8639a"},"/docs/build-on-morph/sdk/interfaces/OEL1Contracts-8b8":{"__comp":"17896441","content":"9e78961b"},"/docs/build-on-morph/sdk/interfaces/OEL2Contracts-9ec":{"__comp":"17896441","content":"fda70fd8"},"/docs/build-on-morph/sdk/interfaces/ProvenWithdrawal-8b3":{"__comp":"17896441","content":"1483841d"},"/docs/build-on-morph/sdk/interfaces/StateRoot-5a3":{"__comp":"17896441","content":"24734b3e"},"/docs/build-on-morph/sdk/interfaces/StateRootBatch-65f":{"__comp":"17896441","content":"25bec567"},"/docs/build-on-morph/sdk/interfaces/StateRootBatchHeader-8f3":{"__comp":"17896441","content":"d4781eda"},"/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage-f09":{"__comp":"17896441","content":"98d1a41e"},"/docs/build-on-morph/sdk/interfaces/WithdrawalEntry-faa":{"__comp":"17896441","content":"ca4c51aa"},"/docs/build-on-morph/sdk/interfaces/WithdrawMessageProof-545":{"__comp":"17896441","content":"979f48c0"},"/docs/build-on-morph/sdk/intro-542":{"__comp":"17896441","content":"61b1ff91"},"/docs/build-on-morph/sdk/type-aliases/AddressLike-bac":{"__comp":"17896441","content":"a0d49790"},"/docs/build-on-morph/sdk/type-aliases/DeepPartial-7e6":{"__comp":"17896441","content":"2a31694d"},"/docs/build-on-morph/sdk/type-aliases/L1Provider-8de":{"__comp":"17896441","content":"9b96db99"},"/docs/build-on-morph/sdk/type-aliases/L2Provider-181":{"__comp":"17896441","content":"a4da47e1"},"/docs/build-on-morph/sdk/type-aliases/LowLevelMessage-968":{"__comp":"17896441","content":"eac819ad"},"/docs/build-on-morph/sdk/type-aliases/MessageLike-5c1":{"__comp":"17896441","content":"76db7a6d"},"/docs/build-on-morph/sdk/type-aliases/MessageRequestLike-eb0":{"__comp":"17896441","content":"6a8ddb26"},"/docs/build-on-morph/sdk/type-aliases/NumberLike-214":{"__comp":"17896441","content":"5a91095f"},"/docs/build-on-morph/sdk/type-aliases/OEL1ContractsLike-6f6":{"__comp":"17896441","content":"c5f7ff1a"},"/docs/build-on-morph/sdk/type-aliases/OEL2ContractsLike-84a":{"__comp":"17896441","content":"c33d6554"},"/docs/build-on-morph/sdk/type-aliases/ProviderLike-2fe":{"__comp":"17896441","content":"81f29526"},"/docs/build-on-morph/sdk/type-aliases/SignerLike-e63":{"__comp":"17896441","content":"79dc0904"},"/docs/build-on-morph/sdk/type-aliases/SignerOrProviderLike-681":{"__comp":"17896441","content":"40b4f046"},"/docs/build-on-morph/sdk/type-aliases/TransactionLike-5b2":{"__comp":"17896441","content":"a5f26d61"},"/docs/build-on-morph/sdk/variables/BRIDGE_ADAPTER_DATA-e80":{"__comp":"17896441","content":"8b6091b0"},"/docs/build-on-morph/sdk/variables/CHAIN_BLOCK_TIMES-c46":{"__comp":"17896441","content":"a00dd934"},"/docs/build-on-morph/sdk/variables/CONTRACT_ADDRESSES-c94":{"__comp":"17896441","content":"08313b4f"},"/docs/build-on-morph/sdk/variables/DEFAULT_L1_CONTRACT_ADDRESSES-302":{"__comp":"17896441","content":"02a35c22"},"/docs/build-on-morph/sdk/variables/DEFAULT_L2_CONTRACT_ADDRESSES-f2f":{"__comp":"17896441","content":"829b4b9b"},"/docs/build-on-morph/sdk/variables/DEPOSIT_CONFIRMATION_BLOCKS-e9d":{"__comp":"17896441","content":"4a10ae38"},"/docs/build-on-morph/sdk/variables/l1BridgeName-58e":{"__comp":"17896441","content":"066c1628"},"/docs/build-on-morph/sdk/variables/l1CrossDomainMessengerName-55b":{"__comp":"17896441","content":"465c0bc5"},"/docs/build-on-morph/sdk/variables/l2BridgeName-8bb":{"__comp":"17896441","content":"44bbd017"},"/docs/build-on-morph/sdk/variables/l2CrossDomainMessengerName-ce4":{"__comp":"17896441","content":"9ff57eaa"},"/docs/how-morph-works/decentralized-sequencers/morph-decentralized-sequencer-network-76b":{"__comp":"17896441","content":"dcf2e50b"},"/docs/how-morph-works/general-protocol-design/communicate-between-morph-and-ethereum-2f6":{"__comp":"17896441","content":"5aa3c257"},"/docs/how-morph-works/general-protocol-design/difference-between-ethereum-and-morph-1d1":{"__comp":"17896441","content":"fdc91eb1"},"/docs/how-morph-works/general-protocol-design/rollup-ec8":{"__comp":"17896441","content":"57c15217"},"/docs/how-morph-works/general-protocol-design/transactions-life-cycle-313":{"__comp":"17896441","content":"59f4fb6c"},"/docs/how-morph-works/intro-b70":{"__comp":"17896441","content":"60479fa4"},"/docs/how-morph-works/morph-modular-design-700":{"__comp":"17896441","content":"f6623e93"},"/docs/how-morph-works/optimistic-zkevm-e3e":{"__comp":"17896441","content":"578ca001"},"/docs/quick-start/bridge-199":{"__comp":"17896441","content":"6f5ac92b"},"/docs/quick-start/faucet-b32":{"__comp":"17896441","content":"325638e1"},"/docs/quick-start/wallet-setup-8e9":{"__comp":"17896441","content":"d26d133a"},"/docs/quick-start/welcome-to-morph-570":{"__comp":"17896441","content":"618914bf"},"/-509":{"__comp":"c4f5d8e4","__context":{"plugin":"868b6fb8"},"config":"5e9f5e1a"}}')}},e=>{e.O(0,[1869],(()=>{return t=7170,e(e.s=t);var t}));e.O()}]); \ No newline at end of file diff --git a/build/assets/js/main.100dd08b.js.LICENSE.txt b/build/assets/js/main.16291c43.js.LICENSE.txt similarity index 91% rename from build/assets/js/main.100dd08b.js.LICENSE.txt rename to build/assets/js/main.16291c43.js.LICENSE.txt index d58ad59d3..8033bea3f 100644 --- a/build/assets/js/main.100dd08b.js.LICENSE.txt +++ b/build/assets/js/main.16291c43.js.LICENSE.txt @@ -20,8 +20,6 @@ prismjs/prism.js: *) */ -/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ - /** * @license React * react-dom.production.min.js diff --git a/build/assets/js/runtime~main.467872be.js b/build/assets/js/runtime~main.467872be.js new file mode 100644 index 000000000..de514317b --- /dev/null +++ b/build/assets/js/runtime~main.467872be.js @@ -0,0 +1 @@ +(()=>{"use strict";var e,a,f,d,b,c={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var f=t[e]={id:e,loaded:!1,exports:{}};return c[e].call(f.exports,f,f.exports,r),f.loaded=!0,f.exports}r.m=c,r.c=t,e=[],r.O=(a,f,d,b)=>{if(!f){var c=1/0;for(i=0;i<e.length;i++){f=e[i][0],d=e[i][1],b=e[i][2];for(var t=!0,o=0;o<f.length;o++)(!1&b||c>=b)&&Object.keys(r.O).every((e=>r.O[e](f[o])))?f.splice(o--,1):(t=!1,b<c&&(c=b));if(t){e.splice(i--,1);var n=d();void 0!==n&&(a=n)}}return a}b=b||0;for(var i=e.length;i>0&&e[i-1][2]>b;i--)e[i]=e[i-1];e[i]=[f,d,b]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},f=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,d){if(1&d&&(e=this(e)),8&d)return e;if("object"==typeof e&&e){if(4&d&&e.__esModule)return e;if(16&d&&"function"==typeof e.then)return e}var b=Object.create(null);r.r(b);var c={};a=a||[null,f({}),f([]),f(f)];for(var t=2&d&&e;"object"==typeof t&&!~a.indexOf(t);t=f(t))Object.getOwnPropertyNames(t).forEach((a=>c[a]=()=>e[a]));return c.default=()=>e,r.d(b,c),b},r.d=(e,a)=>{for(var f in a)r.o(a,f)&&!r.o(e,f)&&Object.defineProperty(e,f,{enumerable:!0,get:a[f]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,f)=>(r.f[f](e,a),a)),[])),r.u=e=>"assets/js/"+({44:"60479fa4",361:"e8c42455",408:"76db7a6d",569:"eac819ad",655:"465c0bc5",690:"25bec567",720:"98d1a41e",749:"4f7a49ab",819:"a04af9a2",835:"3f6197d4",841:"7c1e7b23",866:"4a10ae38",933:"24734b3e",999:"ff883f18",1141:"720f9cb5",1201:"d4781eda",1243:"a0d49790",1282:"7c45cc48",1311:"fda70fd8",1394:"5c242b2e",1508:"81f29526",1544:"1483841d",1557:"c7ccd35b",1688:"fe9c53f2",1971:"9235c071",1995:"b4c00acc",2061:"82419dfd",2106:"9a9366b1",2138:"1a4e3797",2286:"4784893f",2322:"8d0b932e",2397:"b0d24208",2428:"9e78961b",2487:"d26d133a",2500:"f435c040",2634:"c4f5d8e4",2708:"af91f293",2736:"08b9f613",2960:"9e1db927",2985:"868b6fb8",3046:"a0d75a43",3147:"5d313dc3",3186:"59f4fb6c",3197:"59db22f4",3210:"5acb1cf6",3427:"829b4b9b",3457:"5bc5b9ce",3654:"a2db6fd6",3667:"e7a84acc",3679:"979f48c0",3732:"beb6ddce",3764:"c5f7ff1a",3797:"028d32dc",3894:"08313b4f",3918:"e8fcecf9",3961:"7a5975a7",4116:"e912b961",4145:"40b4f046",4286:"38a5c357",4300:"ca4c51aa",4305:"fac53bf8",4352:"e3bda051",4405:"79dc0904",4734:"b202810b",4766:"57c15217",4788:"a4da47e1",4908:"fdc91eb1",4991:"e7f02677",5027:"52171187",5042:"d475c619",5107:"fb24aa13",5116:"95a7ae32",5130:"70e8639a",5223:"44bbd017",5577:"73af12fb",5678:"1a1587e1",5784:"a00dd934",5980:"39f485e7",5991:"ad8d1448",6039:"2a31694d",6107:"9ff57eaa",6142:"578ca001",6184:"bce3eedd",6232:"dcf2e50b",6371:"a1f831b5",6632:"405a8a84",6736:"4cbe5783",6819:"5a91095f",6913:"69301e8b",6935:"3250a443",6941:"c30bab43",6951:"b137769e",6956:"e3875bab",7e3:"fb26d209",7049:"6f5ac92b",7098:"a7bd4aaa",7131:"a399e926",7220:"9d4e1be7",7275:"d8273606",7362:"5aa3c257",7396:"4a269d4a",7430:"dfd8dfaf",7450:"e6f27cd2",7481:"2b4bd9da",7762:"6a8ddb26",7855:"9b96db99",7975:"8613d4b8",7990:"22a82985",8170:"1f2dc99a",8221:"ff3f68fa",8224:"f3316ef7",8237:"833a0690",8308:"6f037fd7",8318:"325638e1",8324:"72171cd8",8343:"33e57971",8371:"99b8a708",8401:"17896441",8451:"8b6091b0",8476:"38e6cd8b",8520:"c33d6554",8525:"61b1ff91",8581:"935f2afb",8656:"9fc9b620",8676:"7824cff9",8744:"68efb262",8752:"8347fa88",8898:"f93d7a3b",8991:"46618904",9048:"a94703ab",9075:"066c1628",9200:"f6623e93",9248:"829cd294",9266:"618914bf",9344:"a5f26d61",9567:"cfe67a99",9640:"2f19d5d4",9647:"5e95c892",9720:"6ba36391",9817:"e6305dab",9849:"02a35c22"}[e]||e)+"."+{44:"69d66973",361:"5bdb4e2d",408:"2bcc76ed",569:"f5609d88",655:"e3b956eb",690:"8e13158b",720:"a0a45743",749:"68e103c7",819:"a4172b2f",835:"3649865e",841:"0cceff70",866:"accc9646",933:"528e753c",999:"ab8b891b",1141:"1be73404",1201:"7819b49e",1243:"f6da78e9",1282:"7deaf08e",1311:"0b05c46c",1394:"a21dcfac",1508:"ef9fe313",1544:"c7695c94",1557:"88ca3abd",1688:"35732f59",1971:"f936f4f6",1995:"70d9fd4d",2061:"11312935",2106:"ab1a0d5d",2138:"dc00afb6",2286:"0785ce05",2322:"3e2c9c72",2397:"88806065",2428:"e32bc84b",2487:"fac89a01",2500:"edf90f1e",2634:"466ad3d3",2708:"42de5a7a",2736:"2292ec97",2960:"a0cdd623",2985:"ccb36e11",3046:"1b07a391",3147:"562fab67",3186:"b63e39f4",3197:"9c92db8f",3210:"9f129d6c",3427:"d5f25fd7",3457:"f3bc9251",3654:"323f6535",3667:"42a29373",3679:"2b0cba0c",3732:"9994c5f0",3764:"1a3bb12f",3797:"b0c0048b",3894:"d3eefb9b",3918:"4652c672",3961:"6a0313ab",4116:"d4c84c07",4145:"d2ffc80e",4286:"da46ef32",4300:"fd464d9a",4305:"c12dd61e",4352:"aa9f2698",4405:"3b3a5e18",4734:"3d55662b",4766:"beeb4523",4788:"11689d10",4908:"d0f3ea4e",4991:"feb86e37",5027:"077ab897",5042:"99c439c5",5081:"08af33ec",5107:"b798cdeb",5116:"3ed4f3ad",5130:"a7b63da5",5223:"f25bc314",5577:"015067f7",5678:"d312ff53",5784:"091ad5c4",5980:"e4d15ea7",5991:"e3e0b916",6039:"6b99dbda",6107:"986eb965",6142:"54e90cd3",6184:"ef73d91e",6232:"f1ec2836",6371:"99aa2e6e",6632:"afa08ab0",6736:"3425072e",6819:"bc5d777d",6913:"f3c5089c",6935:"4576d738",6941:"3af275f1",6951:"2be8350d",6956:"72a3ed86",7e3:"f7a1412e",7049:"3d93dd47",7098:"cf41b24b",7131:"6c89943b",7220:"a9ee7661",7242:"6da46571",7275:"8055d03c",7362:"869d8531",7396:"a94aba76",7426:"0fe1a9ef",7430:"60141c7c",7450:"ede20334",7481:"fed01c3d",7762:"a8d54b20",7855:"65caf0fb",7975:"a112ff98",7990:"bcaadd20",8170:"676c8cca",8221:"5479690d",8224:"030164ad",8237:"57155aee",8308:"be4f334b",8318:"54567db5",8324:"74acb7db",8343:"f01254b2",8371:"398eb8a9",8401:"26f2d090",8451:"2cc43598",8476:"aaca03cd",8520:"08872042",8525:"01109030",8581:"0bdf028c",8656:"4be64ddf",8676:"dde82ce4",8744:"36868b50",8752:"ca8e39f6",8898:"8270a95b",8991:"0e02e9d8",9048:"03e3ac63",9075:"ef013ffd",9200:"fbb75f09",9248:"d14b23ab",9266:"ad5ace09",9344:"614e3be4",9505:"7523b444",9567:"1a4c4cf9",9640:"fa2f851a",9647:"9856b0c7",9720:"bdee8d58",9817:"3df2285d",9849:"cf697fb9"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),d={},b="morph-doc:",r.l=(e,a,f,c)=>{if(d[e])d[e].push(a);else{var t,o;if(void 0!==f)for(var n=document.getElementsByTagName("script"),i=0;i<n.length;i++){var u=n[i];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==b+f){t=u;break}}t||(o=!0,(t=document.createElement("script")).charset="utf-8",t.timeout=120,r.nc&&t.setAttribute("nonce",r.nc),t.setAttribute("data-webpack",b+f),t.src=e),d[e]=[a];var l=(a,f)=>{t.onerror=t.onload=null,clearTimeout(s);var b=d[e];if(delete d[e],t.parentNode&&t.parentNode.removeChild(t),b&&b.forEach((e=>e(f))),a)return a(f)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={17896441:"8401",46618904:"8991",52171187:"5027","60479fa4":"44",e8c42455:"361","76db7a6d":"408",eac819ad:"569","465c0bc5":"655","25bec567":"690","98d1a41e":"720","4f7a49ab":"749",a04af9a2:"819","3f6197d4":"835","7c1e7b23":"841","4a10ae38":"866","24734b3e":"933",ff883f18:"999","720f9cb5":"1141",d4781eda:"1201",a0d49790:"1243","7c45cc48":"1282",fda70fd8:"1311","5c242b2e":"1394","81f29526":"1508","1483841d":"1544",c7ccd35b:"1557",fe9c53f2:"1688","9235c071":"1971",b4c00acc:"1995","82419dfd":"2061","9a9366b1":"2106","1a4e3797":"2138","4784893f":"2286","8d0b932e":"2322",b0d24208:"2397","9e78961b":"2428",d26d133a:"2487",f435c040:"2500",c4f5d8e4:"2634",af91f293:"2708","08b9f613":"2736","9e1db927":"2960","868b6fb8":"2985",a0d75a43:"3046","5d313dc3":"3147","59f4fb6c":"3186","59db22f4":"3197","5acb1cf6":"3210","829b4b9b":"3427","5bc5b9ce":"3457",a2db6fd6:"3654",e7a84acc:"3667","979f48c0":"3679",beb6ddce:"3732",c5f7ff1a:"3764","028d32dc":"3797","08313b4f":"3894",e8fcecf9:"3918","7a5975a7":"3961",e912b961:"4116","40b4f046":"4145","38a5c357":"4286",ca4c51aa:"4300",fac53bf8:"4305",e3bda051:"4352","79dc0904":"4405",b202810b:"4734","57c15217":"4766",a4da47e1:"4788",fdc91eb1:"4908",e7f02677:"4991",d475c619:"5042",fb24aa13:"5107","95a7ae32":"5116","70e8639a":"5130","44bbd017":"5223","73af12fb":"5577","1a1587e1":"5678",a00dd934:"5784","39f485e7":"5980",ad8d1448:"5991","2a31694d":"6039","9ff57eaa":"6107","578ca001":"6142",bce3eedd:"6184",dcf2e50b:"6232",a1f831b5:"6371","405a8a84":"6632","4cbe5783":"6736","5a91095f":"6819","69301e8b":"6913","3250a443":"6935",c30bab43:"6941",b137769e:"6951",e3875bab:"6956",fb26d209:"7000","6f5ac92b":"7049",a7bd4aaa:"7098",a399e926:"7131","9d4e1be7":"7220",d8273606:"7275","5aa3c257":"7362","4a269d4a":"7396",dfd8dfaf:"7430",e6f27cd2:"7450","2b4bd9da":"7481","6a8ddb26":"7762","9b96db99":"7855","8613d4b8":"7975","22a82985":"7990","1f2dc99a":"8170",ff3f68fa:"8221",f3316ef7:"8224","833a0690":"8237","6f037fd7":"8308","325638e1":"8318","72171cd8":"8324","33e57971":"8343","99b8a708":"8371","8b6091b0":"8451","38e6cd8b":"8476",c33d6554:"8520","61b1ff91":"8525","935f2afb":"8581","9fc9b620":"8656","7824cff9":"8676","68efb262":"8744","8347fa88":"8752",f93d7a3b:"8898",a94703ab:"9048","066c1628":"9075",f6623e93:"9200","829cd294":"9248","618914bf":"9266",a5f26d61:"9344",cfe67a99:"9567","2f19d5d4":"9640","5e95c892":"9647","6ba36391":"9720",e6305dab:"9817","02a35c22":"9849"}[e]||e,r.p+r.u(e)},(()=>{var e={5354:0,1869:0};r.f.j=(a,f)=>{var d=r.o(e,a)?e[a]:void 0;if(0!==d)if(d)f.push(d[2]);else if(/^(1869|5354)$/.test(a))e[a]=0;else{var b=new Promise(((f,b)=>d=e[a]=[f,b]));f.push(d[2]=b);var c=r.p+r.u(a),t=new Error;r.l(c,(f=>{if(r.o(e,a)&&(0!==(d=e[a])&&(e[a]=void 0),d)){var b=f&&("load"===f.type?"missing":f.type),c=f&&f.target&&f.target.src;t.message="Loading chunk "+a+" failed.\n("+b+": "+c+")",t.name="ChunkLoadError",t.type=b,t.request=c,d[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,f)=>{var d,b,c=f[0],t=f[1],o=f[2],n=0;if(c.some((a=>0!==e[a]))){for(d in t)r.o(t,d)&&(r.m[d]=t[d]);if(o)var i=o(r)}for(a&&a(f);n<c.length;n++)b=c[n],r.o(e,b)&&e[b]&&e[b][0](),e[b]=0;return r.O(i)},f=self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[];f.forEach(a.bind(null,0)),f.push=a.bind(null,f.push.bind(f))})()})(); \ No newline at end of file diff --git a/build/assets/js/runtime~main.98dd0d42.js b/build/assets/js/runtime~main.98dd0d42.js deleted file mode 100644 index 3d5ac0b4c..000000000 --- a/build/assets/js/runtime~main.98dd0d42.js +++ /dev/null @@ -1 +0,0 @@ -(()=>{"use strict";var e,a,d,c,b,f={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var d=t[e]={id:e,loaded:!1,exports:{}};return f[e].call(d.exports,d,d.exports,r),d.loaded=!0,d.exports}r.m=f,r.c=t,e=[],r.O=(a,d,c,b)=>{if(!d){var f=1/0;for(i=0;i<e.length;i++){d=e[i][0],c=e[i][1],b=e[i][2];for(var t=!0,o=0;o<d.length;o++)(!1&b||f>=b)&&Object.keys(r.O).every((e=>r.O[e](d[o])))?d.splice(o--,1):(t=!1,b<f&&(f=b));if(t){e.splice(i--,1);var n=c();void 0!==n&&(a=n)}}return a}b=b||0;for(var i=e.length;i>0&&e[i-1][2]>b;i--)e[i]=e[i-1];e[i]=[d,c,b]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},d=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,c){if(1&c&&(e=this(e)),8&c)return e;if("object"==typeof e&&e){if(4&c&&e.__esModule)return e;if(16&c&&"function"==typeof e.then)return e}var b=Object.create(null);r.r(b);var f={};a=a||[null,d({}),d([]),d(d)];for(var t=2&c&&e;"object"==typeof t&&!~a.indexOf(t);t=d(t))Object.getOwnPropertyNames(t).forEach((a=>f[a]=()=>e[a]));return f.default=()=>e,r.d(b,f),b},r.d=(e,a)=>{for(var d in a)r.o(a,d)&&!r.o(e,d)&&Object.defineProperty(e,d,{enumerable:!0,get:a[d]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,d)=>(r.f[d](e,a),a)),[])),r.u=e=>"assets/js/"+({44:"60479fa4",177:"3d947c8b",334:"31699625",361:"e8c42455",408:"76db7a6d",569:"eac819ad",586:"71cc7c85",655:"465c0bc5",690:"25bec567",720:"98d1a41e",835:"3f6197d4",841:"7c1e7b23",866:"4a10ae38",933:"24734b3e",999:"ff883f18",1141:"720f9cb5",1201:"d4781eda",1243:"a0d49790",1282:"7c45cc48",1311:"fda70fd8",1394:"5c242b2e",1508:"81f29526",1544:"1483841d",1557:"c7ccd35b",1688:"fe9c53f2",1971:"9235c071",1995:"b4c00acc",2061:"82419dfd",2106:"9a9366b1",2138:"1a4e3797",2188:"ed22c7e9",2286:"4784893f",2322:"8d0b932e",2397:"b0d24208",2428:"9e78961b",2487:"d26d133a",2500:"f435c040",2634:"c4f5d8e4",2708:"af91f293",2736:"08b9f613",2792:"2ef0e7db",2960:"9e1db927",3046:"a0d75a43",3051:"74fdc727",3186:"59f4fb6c",3197:"59db22f4",3210:"5acb1cf6",3398:"acba9d96",3427:"829b4b9b",3457:"5bc5b9ce",3654:"a2db6fd6",3667:"e7a84acc",3679:"979f48c0",3732:"beb6ddce",3764:"c5f7ff1a",3797:"028d32dc",3838:"ec29823a",3894:"08313b4f",3918:"e8fcecf9",3961:"7a5975a7",4116:"e912b961",4145:"40b4f046",4300:"ca4c51aa",4305:"fac53bf8",4352:"e3bda051",4405:"79dc0904",4766:"57c15217",4788:"a4da47e1",4908:"fdc91eb1",4991:"e7f02677",5027:"52171187",5042:"d475c619",5107:"fb24aa13",5116:"95a7ae32",5130:"70e8639a",5223:"44bbd017",5678:"1a1587e1",5784:"a00dd934",5980:"39f485e7",5991:"ad8d1448",6039:"2a31694d",6107:"9ff57eaa",6142:"578ca001",6184:"bce3eedd",6232:"dcf2e50b",6290:"f619ad04",6371:"a1f831b5",6632:"405a8a84",6736:"4cbe5783",6819:"5a91095f",6913:"69301e8b",6935:"3250a443",6941:"c30bab43",6956:"e3875bab",7e3:"fb26d209",7049:"6f5ac92b",7098:"a7bd4aaa",7131:"a399e926",7220:"9d4e1be7",7275:"d8273606",7335:"c07bca7c",7362:"5aa3c257",7396:"4a269d4a",7430:"dfd8dfaf",7450:"e6f27cd2",7481:"2b4bd9da",7762:"6a8ddb26",7855:"9b96db99",7975:"8613d4b8",7990:"22a82985",8237:"833a0690",8308:"6f037fd7",8318:"325638e1",8324:"72171cd8",8343:"33e57971",8371:"99b8a708",8401:"17896441",8451:"8b6091b0",8476:"38e6cd8b",8520:"c33d6554",8525:"61b1ff91",8581:"935f2afb",8656:"9fc9b620",8676:"7824cff9",8752:"8347fa88",8898:"f93d7a3b",8991:"46618904",9048:"a94703ab",9075:"066c1628",9200:"f6623e93",9248:"829cd294",9266:"618914bf",9344:"a5f26d61",9640:"2f19d5d4",9647:"5e95c892",9720:"6ba36391",9849:"02a35c22"}[e]||e)+"."+{44:"b4988a59",177:"f16157a9",334:"8d77373b",361:"c205f87f",408:"0afe694c",569:"8f20034b",586:"13becfa5",655:"6bfdb2fc",690:"812fc80e",720:"fdb37ceb",835:"238ab34e",841:"aea15d1f",866:"1df24a9e",933:"3ad301c1",999:"96f67b10",1022:"47537bec",1141:"3ce027f4",1201:"3e83ba38",1243:"93ae43f6",1282:"04c9c3e7",1311:"0787519d",1394:"9bf0dbba",1508:"947baab7",1544:"49c855e2",1557:"c53dbbdf",1688:"6e252e5d",1965:"a43f3b33",1971:"e334b5d6",1995:"381aa0af",2061:"f69d5af3",2106:"870698a9",2138:"20b16744",2188:"05a060d1",2286:"379a37aa",2322:"0bc61134",2397:"f2adae3f",2428:"62dbfa4b",2487:"254b86a7",2500:"9a696798",2634:"74e60bf5",2708:"2d77427b",2736:"068f6187",2792:"f26526ea",2960:"f6457615",3046:"dc859722",3051:"cc9416e7",3186:"43a18475",3197:"da3f45e1",3210:"380e90a3",3398:"e6a02dbe",3427:"52726404",3457:"db1d3170",3654:"ceb19896",3667:"3ffc6b6e",3679:"6c7e8b57",3732:"e4ab7eec",3764:"d115e6eb",3797:"1b698f04",3838:"0534a53a",3894:"e70c1b97",3918:"ca3788e5",3961:"4c71ff63",4116:"ecb1b798",4145:"c692e7f7",4300:"4afb0a16",4305:"323a0f38",4352:"39c2cc0c",4405:"36cbb9fb",4766:"a3848b2e",4788:"9e7d5274",4908:"05fb4897",4991:"3a3ab274",5027:"db8af086",5042:"8cd567b5",5107:"9f926910",5116:"b384d86d",5130:"f501f0e6",5223:"0b5ff9e6",5678:"a03807dd",5784:"37307af4",5980:"b6b5a1c7",5991:"de8beca8",6039:"1579b616",6107:"8741717e",6142:"4379dd90",6184:"a39946bf",6232:"ffa083f1",6290:"5984a3c3",6371:"ffb4bd23",6632:"e1de3e69",6736:"9ebc7cfc",6819:"da8a5e5b",6913:"f649c8f2",6935:"c7e60e11",6941:"a9e78c88",6956:"3a4abd9c",7e3:"c8fccdcf",7049:"7c64324c",7098:"f5612402",7131:"479fbb82",7220:"181c7972",7275:"a2846103",7335:"f81f8d3b",7362:"a2b68266",7396:"cb3dd122",7430:"e8e601fd",7450:"8445c63f",7481:"7dcb8475",7762:"bb20b217",7855:"3262745a",7975:"57109ea3",7990:"7edbc764",8237:"c32e479c",8308:"de0d89b6",8318:"8beee3a7",8324:"54c5ee4c",8343:"6f4b72c2",8371:"3f8bf2d3",8401:"59246166",8451:"07d8a007",8476:"a8cc1a56",8520:"f1b6c17f",8525:"a74aaf75",8581:"315226ae",8589:"ab857865",8656:"63fe2917",8676:"3096b8d9",8752:"e4b09989",8852:"4ffac5c4",8898:"84f16635",8991:"aa956f14",9048:"bc697f24",9075:"0ff362a7",9200:"cc72725d",9248:"ef34853e",9266:"8575a75c",9344:"4bf1ba1b",9640:"440e58b9",9647:"f83fa08e",9720:"47baf76a",9849:"028a360c"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),c={},b="morph-doc:",r.l=(e,a,d,f)=>{if(c[e])c[e].push(a);else{var t,o;if(void 0!==d)for(var n=document.getElementsByTagName("script"),i=0;i<n.length;i++){var u=n[i];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==b+d){t=u;break}}t||(o=!0,(t=document.createElement("script")).charset="utf-8",t.timeout=120,r.nc&&t.setAttribute("nonce",r.nc),t.setAttribute("data-webpack",b+d),t.src=e),c[e]=[a];var l=(a,d)=>{t.onerror=t.onload=null,clearTimeout(s);var b=c[e];if(delete c[e],t.parentNode&&t.parentNode.removeChild(t),b&&b.forEach((e=>e(d))),a)return a(d)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={17896441:"8401",31699625:"334",46618904:"8991",52171187:"5027","60479fa4":"44","3d947c8b":"177",e8c42455:"361","76db7a6d":"408",eac819ad:"569","71cc7c85":"586","465c0bc5":"655","25bec567":"690","98d1a41e":"720","3f6197d4":"835","7c1e7b23":"841","4a10ae38":"866","24734b3e":"933",ff883f18:"999","720f9cb5":"1141",d4781eda:"1201",a0d49790:"1243","7c45cc48":"1282",fda70fd8:"1311","5c242b2e":"1394","81f29526":"1508","1483841d":"1544",c7ccd35b:"1557",fe9c53f2:"1688","9235c071":"1971",b4c00acc:"1995","82419dfd":"2061","9a9366b1":"2106","1a4e3797":"2138",ed22c7e9:"2188","4784893f":"2286","8d0b932e":"2322",b0d24208:"2397","9e78961b":"2428",d26d133a:"2487",f435c040:"2500",c4f5d8e4:"2634",af91f293:"2708","08b9f613":"2736","2ef0e7db":"2792","9e1db927":"2960",a0d75a43:"3046","74fdc727":"3051","59f4fb6c":"3186","59db22f4":"3197","5acb1cf6":"3210",acba9d96:"3398","829b4b9b":"3427","5bc5b9ce":"3457",a2db6fd6:"3654",e7a84acc:"3667","979f48c0":"3679",beb6ddce:"3732",c5f7ff1a:"3764","028d32dc":"3797",ec29823a:"3838","08313b4f":"3894",e8fcecf9:"3918","7a5975a7":"3961",e912b961:"4116","40b4f046":"4145",ca4c51aa:"4300",fac53bf8:"4305",e3bda051:"4352","79dc0904":"4405","57c15217":"4766",a4da47e1:"4788",fdc91eb1:"4908",e7f02677:"4991",d475c619:"5042",fb24aa13:"5107","95a7ae32":"5116","70e8639a":"5130","44bbd017":"5223","1a1587e1":"5678",a00dd934:"5784","39f485e7":"5980",ad8d1448:"5991","2a31694d":"6039","9ff57eaa":"6107","578ca001":"6142",bce3eedd:"6184",dcf2e50b:"6232",f619ad04:"6290",a1f831b5:"6371","405a8a84":"6632","4cbe5783":"6736","5a91095f":"6819","69301e8b":"6913","3250a443":"6935",c30bab43:"6941",e3875bab:"6956",fb26d209:"7000","6f5ac92b":"7049",a7bd4aaa:"7098",a399e926:"7131","9d4e1be7":"7220",d8273606:"7275",c07bca7c:"7335","5aa3c257":"7362","4a269d4a":"7396",dfd8dfaf:"7430",e6f27cd2:"7450","2b4bd9da":"7481","6a8ddb26":"7762","9b96db99":"7855","8613d4b8":"7975","22a82985":"7990","833a0690":"8237","6f037fd7":"8308","325638e1":"8318","72171cd8":"8324","33e57971":"8343","99b8a708":"8371","8b6091b0":"8451","38e6cd8b":"8476",c33d6554:"8520","61b1ff91":"8525","935f2afb":"8581","9fc9b620":"8656","7824cff9":"8676","8347fa88":"8752",f93d7a3b:"8898",a94703ab:"9048","066c1628":"9075",f6623e93:"9200","829cd294":"9248","618914bf":"9266",a5f26d61:"9344","2f19d5d4":"9640","5e95c892":"9647","6ba36391":"9720","02a35c22":"9849"}[e]||e,r.p+r.u(e)},(()=>{var e={5354:0,1869:0};r.f.j=(a,d)=>{var c=r.o(e,a)?e[a]:void 0;if(0!==c)if(c)d.push(c[2]);else if(/^(1869|5354)$/.test(a))e[a]=0;else{var b=new Promise(((d,b)=>c=e[a]=[d,b]));d.push(c[2]=b);var f=r.p+r.u(a),t=new Error;r.l(f,(d=>{if(r.o(e,a)&&(0!==(c=e[a])&&(e[a]=void 0),c)){var b=d&&("load"===d.type?"missing":d.type),f=d&&d.target&&d.target.src;t.message="Loading chunk "+a+" failed.\n("+b+": "+f+")",t.name="ChunkLoadError",t.type=b,t.request=f,c[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,d)=>{var c,b,f=d[0],t=d[1],o=d[2],n=0;if(f.some((a=>0!==e[a]))){for(c in t)r.o(t,c)&&(r.m[c]=t[c]);if(o)var i=o(r)}for(a&&a(d);n<f.length;n++)b=f[n],r.o(e,b)&&e[b]&&e[b][0](),e[b]=0;return r.O(i)},d=self.webpackChunkmorph_doc=self.webpackChunkmorph_doc||[];d.forEach(a.bind(null,0)),d.push=a.bind(null,d.push.bind(d))})()})(); \ No newline at end of file diff --git a/build/docs/about-morph/faqs/index.html b/build/docs/about-morph/faqs/index.html index 6313a2434..0f568b4c4 100644 --- a/build/docs/about-morph/faqs/index.html +++ b/build/docs/about-morph/faqs/index.html @@ -3,20 +3,39 @@ <head> <meta charset="UTF-8"> <meta name="generator" content="Docusaurus v3.1.1"> -<title data-rh="true">FAQs | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +FAQs | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
Skip to main content

FAQs

What Kind of Rollup is Morph?

+

FAQs

What Kind of Rollup is Morph?

Morph uses a hybrid rollup model called "Optimistic zkEVM & RVP". This combines the strengths of both zkRollups and Optimistic Rollups, optimizing for efficiency, cost, and speed. This unique approach places Morph at the cutting edge of rollup technology.

-

What Sets Morph Apart from Other Rollups?

+

What Sets Morph Apart from Other Rollups?

Morph stands out with its innovative features:

State Verification: The Optimistic zkEVM & RVP method enhances efficiency by combining zkRollups and Optimistic Rollups.

Efficiency and Cost Reduction: Morph ensures fast transaction execution and cost-effectiveness while maintaining decentralization.

Decentralized Sequencer Network: This pioneering network setup addresses security concerns and ensures robustness at a Layer 1 level.

Modular Architecture: Morph’s adaptable and composable architecture fosters a flexible and interactive ecosystem.

-

As a Solidity Developer, Will I Notice Differences Deploying on Morph Compared to Ethereum?

-

Deploying on Morph is very similar to deploying on Ethereum, thanks to its EVM compatibility. Ethereum applications can be migrated to Morph with minimal adjustments. For more detailed guidance, check out the Development Guides section.

+

As a Solidity Developer, Will I Notice Differences Deploying on Morph Compared to Ethereum?

+

Deploying on Morph is very similar to deploying on Ethereum, thanks to its EVM compatibility. Ethereum applications can be migrated to Morph with minimal adjustments. For more detailed guidance, check out the Development Guides section.

+

The L2 gas price is too high to execute transactions or deploy contracts, what should i do?

+

The L2 Gas Price you obtained from external resources (eg. RPC) is typically derived from the average or median of confirmed transactions over a certain period. This figure reflects the recommended settings to ensure your transaction gets confirmed, rather than representing the most cost-effective value.

+

In some cases, certain users may intentionally raise the priority fee (hence the total gas fee) to earn more campaign points, resulting in abnormally high Gas Prices. We recommend that you can reduce your transaction costs by manually setting the L2 Gas Price.

+

Currently, Morph's L2 Base Fee is 0.001 gwei, and as long as the number of transactions per block does not reach the limit, you only need to pay the Base Fee to ensure your transaction confirmation, without needing to pay an excess Priority Fee.

+

Here is a transaction example that only pays the L2 Base Fee and got confirmed:

+

https://explorer.morphl2.io/tx/0x5968aa54ca3072f56ee3d26602f4e8104d1239a7b1cef6847e0306f81881bf50

+

How long should I wait for my funds to withdraw from Morph?

+

Currently, the Morph mainnet has a 48-hour (2 days) challenge window. This means that if you are using our canonical bridge, you need to wait 48 hours (2 days) to receive your funds. There are several third-party bridges that offer a faster withdrawal experience by using a liquidity pool mechanism.

+

How do i speed the transaction on Morph?

+

Same like Ethereum mainnet and any other EIP 1559 chains. If your transaction is pending and not confirmed, you can replace it with a new one that has a higher gas price. This involves sending the same transaction again but with an incrementally higher gas price, using the same nonce as the original.

+

A lot of the wallet have built in features to help you do this.

+

My Transaction is Pending, What Should I Do?

+

For the testnet, if the priority fee you paid is too low, less than 0.01 gwei, your transaction will not be processed. This is to prevent spam transactions from impacting the whole network. If you encounter this situation, please accelerate your transaction by providing a higher priority fee that meets the requirements.

+

For the mainnet, this is usually because each block is currently full, so you need to provide a more competitive priority fee to ensure your transaction is confirmed.

+

Additionally, if your previous transaction has not yet been confirmed, your newly submitted transaction will wait for the previous transaction to be fully confirmed.

\ No newline at end of file diff --git a/build/docs/about-morph/key-concepts/index.html b/build/docs/about-morph/key-concepts/index.html index 47ae56ab0..c4b3c364e 100644 --- a/build/docs/about-morph/key-concepts/index.html +++ b/build/docs/about-morph/key-concepts/index.html @@ -3,31 +3,35 @@ -Key Concepts | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +Key Concepts | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
Skip to main content

Key Concepts

Optimistic Rollups

+

Key Concepts

Optimistic Rollups

Optimistic rollups are a Layer 2 scaling solution for blockchains that enhance transaction throughput and reduce costs by assuming transactions are valid and only verifying them if a challenge is raised. This method relies on a challenge period during which validators can dispute transactions they believe to be incorrect. If no disputes are raised, the transactions are considered final. Optimistic rollups significantly improve scalability while maintaining security, making them an efficient solution for handling a higher volume of transactions on blockchain networks.

Learn more about Optimistic Rollups

-

ZK Rollups

+

ZK Rollups

ZK rollups, or zero-knowledge rollups, are a Layer 2 scaling solution that uses cryptographic proofs to verify the validity of transactions off-chain before bundling them and submitting a proof to the main blockchain. Each batch of transactions is accompanied by a zero-knowledge proof, which ensures that all transactions within the batch are valid without revealing the underlying data. This method provides immediate finality and high security, as the main chain only needs to verify the proof rather than each individual transaction, significantly reducing the computational load and enhancing scalability.

Learn more about ZK Rollups

-

Sequencers

+

Sequencers

Sequencers are specialized nodes responsible for ordering and bundling transactions in Layer 2 scaling solutions like rollups. They play a crucial role in determining the sequence of transactions, creating blocks, and periodically committing these blocks to the main blockchain. In decentralized systems, multiple sequencers work together to enhance security and prevent single points of failure. By ensuring transactions are processed efficiently and securely, sequencers help maintain the integrity and performance of Layer 2 networks.

-

Fraud Proof

+

Fraud Proof

Fraud proof is a mechanism used in blockchain scaling solutions like optimistic rollups to ensure transaction validity. When a sequencer submits a batch of transactions, they are assumed to be valid unless contested. During a designated challenge period, any validator or network participant can submit a fraud proof if they detect an incorrect transaction. This proof involves verifying the transaction data and demonstrating the error to the main blockchain. If the fraud proof is validated, the incorrect transaction is rejected, ensuring the integrity and security of the network while minimizing computational costs.

-

Validity Proof

+

Validity Proof

Validity proof is a cryptographic method used to ensure that transactions within a rollup are correct before they are finalized on the main blockchain. In systems like ZK rollups, each batch of transactions is accompanied by a validity proof that verifies the correctness of all transactions within the batch. This approach enhances security and efficiency by eliminating the need for individual transaction verification on the main chain, providing immediate finality and reducing computational overhead.

-

zkEVM

+

zkEVM

zkEVM, or Zero-Knowledge Ethereum Virtual Machine, is an advanced implementation of the Ethereum Virtual Machine that integrates zero-knowledge proofs to enhance scalability and security. By using zk proofs, zkEVM allows for the validation of transactions off-chain, ensuring that only valid state transitions are submitted to the main chain. This method provides high throughput and lower transaction costs while maintaining the security and trustlessness of Ethereum.

-

BLS Signatures

+

BLS Signatures

BLS (Boneh-Lynn-Shacham) signatures are a cryptographic technique used to aggregate multiple signatures into a single compact signature. This is particularly useful in blockchain networks for reducing the data size and improving the efficiency of transaction verification. BLS signatures enable multiple validators to sign a message collectively, resulting in a single signature that can be verified quickly and cost-effectively, enhancing the overall scalability of the network.

-

Data availability

+

Data availability

Data availability refers to the assurance that all necessary data for verifying blockchain transactions is accessible and retrievable. In the context of rollups, ensuring data availability is crucial for maintaining the integrity and security of off-chain transactions. It guarantees that anyone can download and verify the data used in rollup proofs, preventing scenarios where transactions are finalized without the possibility of verification.

-

EIP - 4844

+

EIP - 4844

EIP-4844, also known as Proto-Danksharding, is an Ethereum Improvement Proposal aimed at introducing a new type of transaction that reduces data costs and improves scalability. It involves adding a new transaction format that can efficiently handle large amounts of data, laying the groundwork for future sharding implementations. This proposal enhances the network's ability to manage data more effectively, contributing to overall improvements in throughput and cost-efficiency.

-

Discover how EIP-4844 impacts Morph and other rollups.

+

Discover how EIP-4844 impacts Morph and other rollups.

\ No newline at end of file diff --git a/build/docs/about-morph/key-concepts/optimistic-rollup/index.html b/build/docs/about-morph/key-concepts/optimistic-rollup/index.html index 6c73ac07e..91639cadd 100644 --- a/build/docs/about-morph/key-concepts/optimistic-rollup/index.html +++ b/build/docs/about-morph/key-concepts/optimistic-rollup/index.html @@ -3,11 +3,15 @@ -optimistic-rollup | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +optimistic-rollup | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + - + \ No newline at end of file diff --git a/build/docs/about-morph/morphs-architecture/index.html b/build/docs/about-morph/morphs-architecture/index.html index b7f325c4b..44ae0203b 100644 --- a/build/docs/about-morph/morphs-architecture/index.html +++ b/build/docs/about-morph/morphs-architecture/index.html @@ -3,14 +3,18 @@ -Morph's Architecture | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +Morph's Architecture | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
Skip to main content

Morph's Architecture

tip

This overview offers a concise introduction to Morph’s rollup technology stack. For an in-depth understanding, please refer to the "How Morph Works" section of our documentation.

-

Archi

-

The Modular Approach in Layer 2

+

Morph's Architecture

tip

This overview offers a concise introduction to Morph’s rollup technology stack. For an in-depth understanding, please refer to the "How Morph Works" section of our documentation.

+

Archi

+

The Modular Approach in Layer 2

Traditionally, the concept of modularity has been applied to Layer 1 blockchains, segmenting them into distinct layers. At Morph, we've extended this modular philosophy to Layer 2, building our platform around this principle.

In a typical Layer 1 blockchain, the architecture consists of four major layers:

    @@ -23,16 +27,16 @@

    +

    Archi

    • Settlement with Optimistic zkEVM: Settlement in Morph refers to the finalization of Layer 2 transactions at the Ethereum level. It involves the crucial step of validating Layer 2 states. Morph employs the optimistic zkEVM for this purpose, a hybrid approach blending the best of optimistic rollups and zk-rollups. Layer 2 states will be eventually finalized by a significantly shorter challenge period or if gets challenged, a corresponding zk-proof.
    -

    Archi

    +

    Archi

    • Data Availability through 'Rollup' Process: This entails transferring essential Layer 2 data to Ethereum. In Morph, this is achieved through the 'Rollup' process, where a batch submitter compiles blocks into batches and submits them as Layer 1 transactions on Ethereum.
    -

    Archi

    -

    Independent yet Collaborative Functions

    +

    Archi

    +

    Independent yet Collaborative Functions

    Each of these major functions operates independently, facilitating asynchronous tasks and switchable implementations:

    1. Sequencer Network: Executes Layer 2 transactions and updates local state.
    2. @@ -40,8 +44,21 @@

      Diverse Roles

      +

      Diverse Roles

      Morph’s architecture is further defined by five pivotal roles: Sequencers, Validators, Nodes, Provers, and Layer 1 (Ethereum). Each role carries specific responsibilities and utilizes distinct components to fulfill its function, contributing to the seamless operation of the network.

      -

      For a deeper understanding of Morph’s architecture, please visit our comprehensive Developer Docs.

+

For a deeper understanding of Morph’s architecture, please visit our comprehensive Developer Docs.

+

Safety and Security

+

We place the highest priority on security and are committed to providing users with a safe and trustworthy environment. To achieve this, we’ve implemented multiple measures, including making our codebase open-source, engaging leading third-party firms for audits, and continuously improving our systems to uphold the highest standards of transparency and security. Below are some specific efforts we’ve undertaken:

+

Open-Source Codebase:

+

We’re proud to make our codebase publicly available, inviting scrutiny and contributions from the community. You can review it at the following links:

+

Morph Contracts

+

Sherlock Open-Source Audit Report:

+

We commissioned a comprehensive security audit from Sherlock, and the results are publicly available. You can view the detailed report here:

+

Sherlock Open-Source Audit Report

+

Trail of Bits Audit Report:

+

Additionally, we enlisted the renowned Trail of Bits team to conduct an in-depth audit of our codebase, including a review of implemented fixes. The full report is accessible.

+

Audit Scope:

+

The above audit reports cover the entirety of our codebase, including the bridge contract, ensuring that all critical components have undergone rigorous security assessments.

+

We firmly believe that transparency and security are the cornerstones of trust. We will continue to collaborate with the community and professional organizations to elevate our security standards and provide users with peace of mind. If you have any questions or suggestions, feel free to reach out to us at any time!

\ No newline at end of file diff --git a/build/docs/about-morph/morphs-vision-and-mission/index.html b/build/docs/about-morph/morphs-vision-and-mission/index.html index 8af56396c..4520e7fa2 100644 --- a/build/docs/about-morph/morphs-vision-and-mission/index.html +++ b/build/docs/about-morph/morphs-vision-and-mission/index.html @@ -3,22 +3,26 @@ -Morph's Vision and Mission | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +Morph's Vision and Mission | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
Skip to main content

Morph's Vision and Mission

Morph is redefining the blockchain landscape with a clear focus on the consumer. Our vision is rooted in the belief that blockchain technology should be an accessible, practical tool for daily life, rather than a complex concept reserved for experts. We aim to transform how individuals interact with blockchain technology, making it as integral and user-friendly as any essential service in the digital age.

-

We Seek to Bridge the Gap​

+

Morph's Vision and Mission

Morph is redefining the blockchain landscape with a clear focus on the consumer. Our vision is rooted in the belief that blockchain technology should be an accessible, practical tool for daily life, rather than a complex concept reserved for experts. We aim to transform how individuals interact with blockchain technology, making it as integral and user-friendly as any essential service in the digital age.

+

We Seek to Bridge the Gap​

Our mission is to build an ecosystem of on-chain consumer applications on a completely decentralized infrastructure. Morph was created as a more approachable and practical blockchain solution in response to the gap in existing Layer 2 offerings – a lack of focus on the end-user experience and practicality.

-

Why Morph?​

+

Why Morph?​

The inspiration behind Morph is a fusion of dreams and precision. Our platform is named after Morpheus, the Greek god of dreams, symbolizing our ability to influence both the commonplace and the extraordinary. Morph also draws on the mathematical principle of morphology, representing transformations that maintain structure and integrity. The combination of these concepts represents our ability to bring revolutionary blockchain applications that focus on improving everyday life with precision and reliability.

-

Commitment to Our Community​

+

Commitment to Our Community​

At Morph, our commitment extends beyond technology. We prioritize:

  • Consumer-Centric Innovation: Focusing on the needs and experiences of users, ensuring that our platform is intuitive, efficient, and beneficial for everyday use.
  • Transparency and Trust: Building a community grounded in openness and mutual trust, where every step we take is communicated clearly and honestly.
  • Collaborative Ecosystem: Encouraging active participation and feedback from our community, ensuring that Morph evolves in alignment with the needs and demands of its users.
  • -
+
\ No newline at end of file diff --git a/build/docs/about-morph/overview-of-morph/index.html b/build/docs/about-morph/overview-of-morph/index.html index 4f6c2d6f4..be4b4d432 100644 --- a/build/docs/about-morph/overview-of-morph/index.html +++ b/build/docs/about-morph/overview-of-morph/index.html @@ -3,21 +3,25 @@ -Overview | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +Overview | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
Skip to main content

Overview

Welcome to Morph, a blockchain for consumers. At the core of Morph is a revolutionary approach to Ethereum Layer 2 scalability, harnessing the power of rollup technology.

+

Overview

Welcome to Morph, a blockchain for consumers. At the core of Morph is a revolutionary approach to Ethereum Layer 2 scalability, harnessing the power of rollup technology.

Our platform is uniquely designed to enhance the blockchain experience, making it more accessible, efficient, and user-friendly for both developers and consumers. We achieve these innovations through a unique combination of cutting-edge technologies.

-

What Makes Morph Special

+

What Makes Morph Special

Given that our platform is built on the philosophy of consumer-centric innovation, we believe blockchain technology has the transformative power to enhance users’ daily lives. To accomplish this vision, our infrastructure has three core technological components that function as the foundation of a consumer blockchain.

-

Decentralized Sequencer Network

+

Decentralized Sequencer Network

Morph’s distribution of the sequencing role eliminates single points of failure, reduces transaction censorship, and prevents monopolies over Miner Extractable Value (MEV). Building on Morph means guaranteed high availability, resilience, and fairness in transaction processing.

-

Optimistic zkEVM Integration

+

Optimistic zkEVM Integration

Morph’s Optimistic zkEVM Integration combines the efficiency of optimistic rollups with the security of zero-knowledge proofs, using a novel method called Responsive Validity Proof (RVP). RVP reduces costs and shortens withdrawal periods while maintaining high security, enabling robust applications that don’t compromise on performance or security.

-

Modular Design

+

Modular Design

Morph's architecture is divided into three modules: Sequencer Network for consensus and execution, Optimistic zkEVM for state verification, and Rollup for data availability. Developers can build and maintain applications more efficiently, ensuring each component can be upgraded independently without disrupting the entire system.

-

Before you dive into a deeper exploration of our technology, understanding our Vision and Mission will offer a better idea of why Morph stands out in the industry.

+

Before you dive into a deeper exploration of our technology, understanding our Vision and Mission will offer a better idea of why Morph stands out in the industry.

\ No newline at end of file diff --git a/build/docs/about-morph/roadmap/index.html b/build/docs/about-morph/roadmap/index.html index 19d12b3cf..e4c0ca5fb 100644 --- a/build/docs/about-morph/roadmap/index.html +++ b/build/docs/about-morph/roadmap/index.html @@ -3,35 +3,36 @@ -Roadmap | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +Roadmap | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
Skip to main content

Roadmap

tip

The roadmap is subject to changes based on technological developments, community feedback, and external factors.

-

1

-

Phase 1: Testnet (2024 H1)

-

Testnet Sepolia (2024 Q1)

+

Roadmap

tip

The roadmap is subject to changes based on technological developments, community feedback, and external factors.

+

1

+

2024 Q1

  • Optimistic zkEVM
  • Decentralized Sequencers
-

Testnet Holesky (2024 Q2)

+

2024 Q2

  • EIP-4844 Integration
  • zkEVM Upgrade
-

Testnet Holesky

-

Phase 2: Mainnet Launch (2024 H2)

-

Mainnet Beta 2024 Q3

+

2024 Q4

    -
  • Morph Staking
  • -
  • Morph Zoo Season 1
  • +
  • 1st Rollup with SP1 zkVM
  • +
  • 1st Rollup with Decentralized Sequencers
-

Mainnet Update Q4

+

2025 Q1

    -
  • Consumer Layer Launch
  • -
  • zkVM Upgrade
  • -
+
  • Morph Pay
  • +
  • Gasless Transaction
  • +
    \ No newline at end of file diff --git a/build/docs/about-morph/the-technology-behind-morph/index.html b/build/docs/about-morph/the-technology-behind-morph/index.html index 63f17dd32..25a763755 100644 --- a/build/docs/about-morph/the-technology-behind-morph/index.html +++ b/build/docs/about-morph/the-technology-behind-morph/index.html @@ -3,17 +3,21 @@ -The Technology Behind Morph | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +The Technology Behind Morph | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    The Technology Behind Morph

    Decentralized Sequencer Network

    +

    The Technology Behind Morph

    Decentralized Sequencer Network

    Morph's Decentralized Sequencer Network is designed to enhance the security and reliability of the blockchain. Unlike traditional Layer 2 solutions that rely on a centralized sequencer, Morph employs a network of decentralized sequencers. This setup ensures that no single entity has control over the transaction sequencing process, thereby eliminating the risk of a single point of failure. If one sequencer fails or acts maliciously, the others can continue processing transactions, maintaining the system's integrity and uptime. This decentralization also prevents transaction censorship and ensures that no single entity can monopolize Miner Extractable Value (MEV), creating a fairer environment for all users.

    This collaborative approach not only increases security but also improves the overall efficiency and reliability of the transaction processing system, making Morph a robust and resilient Layer 2 solution.

    -

    Sequqencer Network

    +

    Sequqencer Network

    Visit Morph’s Decentralized Sequencer Network for a more comprehensive article.

    -

    Optimistic zkEVM Integration

    +

    Optimistic zkEVM Integration

    Optimistic and Zero-Knowledge (ZK) rollups are two distinct approaches to scaling blockchain transactions on layer 2. Optimistic rollups simply assume all transactions are valid when submitting a batch for settlement on Ethereum. However, the validity of any transaction can be contested by entities known as challengers, by submitting proof of fraudulent activity. If the fraud-proof is successful, the incorrect transaction is rejected, ensuring security but at the cost of some potential delays and high gas fees associated with the challenge process.

    ZK rollups, on the other hand, use cryptographic proofs to verify the validity of transactions before these are submitted for settlement. All batches have their own ZK proof, allowing quick verification on the main chain without needing to review all the data associated with each transaction (hence “zero-knowledge”). This offers immediate finality with higher security, but generating these proofs is computationally intensive and costly.

    Morph’s hybrid rollup combines the best of these two approaches. Initially, the system operates optimistically, assuming transactions are valid to allow for quick processing and low costs. When a transaction is contested within Morph’s challenge window, it’s the sequencer that is required to produce a ZK proof to validate the transaction. We call this approach Responsive Validity Proof (RVP). It comes with the following improvements:

    @@ -21,11 +25,11 @@

    Efficiency and Speed: A typical 7-day challenge window can be shortened to 1-3 days (a challenger no longer needs the extra time to identify malicious submissions, create a proof, and engage in multiple rounds of challenge procedures).
  • Reduced Costs: Employing ZK-proofs means that only minimal transaction information is retained, thereby significantly reducing the cost of L2 submissions. When no challenges arise, the cost of ZK-proof submission and verification can be ignored. RVP is therefore more cost-effective than both optimistic and ZK rollups.
  • -

    Sequqencer Network

    +

    Sequqencer Network

    Visit Responsive Validity Proof for a more comprehensive article.

    -

    Modular Design

    +

    Modular Design

    At its core, Morph is constructed using a sophisticated modular design architecture. The platform is organized into three functional modules (Sequencer Network, Rollup, Optimistic zk-EVM), each defined by distinct roles that collaborate in various configurations to meet diverse requirements. Each role within these modules operates its specific components, maintaining functional independence. This modular structure not only fosters flexibility and adaptability but also bolsters the composability of the system. It enables an efficient and interactive ecosystem, supporting the varied operational needs of our platform.

    -

    Sequqencer Network

    -

    Visit Morph’s Modular Design for a more comprehensive article.

    +

    Sequqencer Network

    +

    Visit Morph’s Modular Design for a more comprehensive article.

    \ No newline at end of file diff --git a/build/docs/about-morph/user-navigation-page/index.html b/build/docs/about-morph/user-navigation-page/index.html index d6a284d05..3f18f861c 100644 --- a/build/docs/about-morph/user-navigation-page/index.html +++ b/build/docs/about-morph/user-navigation-page/index.html @@ -3,21 +3,28 @@ -Welcome to Morph | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +Welcome to Morph | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    Welcome to Morph

    We’re thrilled to have you here, exploring the world of Morph. If you’re a developer looking for technical documentation, head over to our For Developers section. But if you’re here to understand what Morph is all about, you’re in the right place!

    -

    userpage

    -

    What is Morph?

    +

    Welcome to Morph

    We’re thrilled to have you here, exploring the world of Morph. If you’re a developer looking for technical documentation, head over to our For Developers section. But if you’re here to understand what Morph is all about, you’re in the right place!

    +

    userpage

    +

    What is Morph?

    Morph is a cutting-edge Layer 2 solution built on Ethereum, combining the best of optimistic rollups and zk technology. This makes us scalable, secure, and perfect for everyday applications. Our mission is to build the first blockchain for consumers, where user-friendly applications integrate seamlessly into everyday life, becoming indispensable utilities. We prioritize enabling blockchain applications that enhance daily experiences over chasing trivial technical milestones. Our focus is on creating meaningful, practical solutions that transform blockchain technology into core aspects of daily life

    -

    Getting Started

    +

    Getting Started

    To help you navigate through our resources, here’s a quick guide:

    Introductory Concepts: Get a general understanding of Morph, including what makes it unique, our vision and mission, key concepts, and a look at our roadmap. This section will help you grasp the basics and understand the foundation of Morph.

    +

    Step-by-Step Guides: Follow these practical tutorials for setting up your wallet, using the faucet, bridging assets, and exploring the Morph ecosystem. These guides are perfect for hands-on learning and getting started with Morph.

    +

    Links and Tools: Access useful tools such as the Morph Holesky Explorer and the official bridge. This section provides all the necessary links and resources to interact with and explore the Morph network effectively.

    -

    Engage in Our Ecosystem

    + +

    Engage in Our Ecosystem

    Want to skip most of the reading and get started with exploring more right away? These are the guides that will get you right into the action:

    • Wallet Setup: Learn how to set up your wallet to interact with Morph.
    • @@ -26,7 +33,7 @@

      Enga
    • Exploring Morph Zoo: Dive into the diverse range of dApps and projects in the Morph ecosystem.
    • Morph Holesky Explorer: Use our explorer to track transactions and explore the blockchain.
    -

    Explore and Connect

    -

    We believe in building a vibrant community around Morph. Join us on Discord to engage with other users and follow us on Twitter to stay updated with our latest news and developments.

    +

    Explore and Connect

    +

    We believe in building a vibrant community around Morph. Join us on Discord to engage with other users and follow us on Twitter to stay updated with our latest news and developments.

    \ No newline at end of file diff --git a/build/docs/about-morph/where-should-i-start/index.html b/build/docs/about-morph/where-should-i-start/index.html index aa722c456..7306f28da 100644 --- a/build/docs/about-morph/where-should-i-start/index.html +++ b/build/docs/about-morph/where-should-i-start/index.html @@ -3,17 +3,21 @@ -Where Should I Start? | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +Where Should I Start? | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    Where Should I Start?

    For Developers: Dive Into Building On Morph

    +

    Where Should I Start?

    For Developers: Dive Into Building On Morph

    As a developer keen on harnessing the innovative capabilities of the Morph network, your journey begins in the "Build on Morph" section of our documentation. Here, you'll find all the resources you need – from comprehensive guides and tutorials to practical examples. These materials are designed to elucidate the core concepts and features of Morph, enabling you to integrate with our APIs, deploy sophisticated smart contracts, and utilize an array of tools and libraries. The "Build on Morph" guide is your gateway to crafting powerful, decentralized applications that leverage the full potential of our network.

    -

    For Users: Embark On Your Morph Journey

    +

    For Users: Embark On Your Morph Journey

    If you're eager to explore the possibilities within the Morph network, the "Quick Start" section in our documentation is your ideal starting point. Tailored for ease of understanding, this guide walks you through the essentials – from setting up your wallet to engaging in transactions on the network. It's designed to introduce you to the world of asset transfers, decentralized finance, and the diverse range of dApps available on Morph. Follow the "Quick Start" guide for a smooth, user-friendly introduction to leveraging Morph's functionalities in your everyday activities.

    -

    For Researchers: Unraveling The Technical Depth Of Morph

    +

    For Researchers: Unraveling The Technical Depth Of Morph

    For those intrigued by the technical intricacies of the Morph network, the "How Morph Works" section offers an in-depth exploration of its underlying architecture and mechanisms. This comprehensive resource is rich in technical details, providing an extensive understanding of Morph's innovative features and foundational principles. Whether you're delving into research or seeking a thorough grasp of blockchain technology, this section unveils the nuances and sophisticated engineering that define the Morph network.

    -

    No matter your background – developer, user, or researcher – our documentation is structured to offer you a customized pathway into the Morph ecosystem. Each guide is designed to help you leverage and understand our state-of-the-art technology and features, ensuring a rewarding experience on the Morph network.

    +

    No matter your background – developer, user, or researcher – our documentation is structured to offer you a customized pathway into the Morph ecosystem. Each guide is designed to help you leverage and understand our state-of-the-art technology and features, ensuring a rewarding experience on the Morph network.

    \ No newline at end of file diff --git a/build/docs/build-on-morph/build-on-morph/bridge-between-morph-and-ethereum/index.html b/build/docs/build-on-morph/build-on-morph/bridge-between-morph-and-ethereum/index.html index dd400ca6f..06c059e0e 100644 --- a/build/docs/build-on-morph/build-on-morph/bridge-between-morph-and-ethereum/index.html +++ b/build/docs/build-on-morph/build-on-morph/bridge-between-morph-and-ethereum/index.html @@ -3,15 +3,19 @@ -Bridge between Morph and Ethereum | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +Bridge between Morph and Ethereum | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    Bridge between Morph and Ethereum

    Please first review our documentation on Communication Between Morph and Ethereum for some required fundamental knowledge.

    -

    Deposit ETH and ERC20 Tokens from L1​

    +

    Bridge between Morph and Ethereum

    Please first review our documentation on Communication Between Morph and Ethereum for some required fundamental knowledge.

    +

    Deposit ETH and ERC20 Tokens from L1​

    The Gateway Router allows ETH and ERC20 token bridging from L1 to L2 using the depositETH and depositERC20 functions respectively. It is a permissionless bridge deployed on L1. Notice that ERC20 tokens will have a different address on L2, you can use the getL2ERC20Address function to query the new address.

    -
    tip

    depositETH and depositERC20 are payable functions, the amount of ETH sent to these functions will be used +

    tip

    depositETH and depositERC20 are payable functions, the amount of ETH sent to these functions will be used to pay for L2 fees. If the amount is not enough, the transaction will not be sent. All excess ETH will be sent back to the sender. 0.00001 ETH should be more than enough to process a token deposit.

    When bridging ERC20 tokens, you don’t have to worry about selecting the right Gateway. This is because the L1GatewayRouter will choose the correct underlying entry point to send the message:

    @@ -21,11 +25,11 @@

    Withdraw ETH and ERC20 tokens from L2

    +

    Withdraw ETH and ERC20 tokens from L2

    The L2 Gateway is very similar to the L1 Gateway. We can withdraw ETH and ERC20 tokens back to L1 using the withdrawETH and withdrawERC20 functions. The contract address is deployed on L2. We use the getL1ERC20Address to retrieve the token address on L1.

    -
    tip

    withdrawETH and withdrawERC20 are payable functions, and the amount of ETH sent to these functions will be used to pay for L1 fees. If the amount is not enough, the transaction will not be sent. All excess ETH will be sent back to the sender. Fees will depend on L1 activity but 0.005 ETH should be enough to process a token withdrawal.

    -
    tip

    Ensure transactions won’t revert on L1 while sending from L2 There is no way to recover bridged ETH, tokens, or NFTs if your transaction reverts on L1. All assets are burned on Morph when the transaction is sent, and it's impossible to mint them again.

    -

    Finalize your Withdrawal

    +
    tip

    withdrawETH and withdrawERC20 are payable functions, and the amount of ETH sent to these functions will be used to pay for L1 fees. If the amount is not enough, the transaction will not be sent. All excess ETH will be sent back to the sender. Fees will depend on L1 activity but 0.005 ETH should be enough to process a token withdrawal.

    +
    tip

    Ensure transactions won’t revert on L1 while sending from L2 There is no way to recover bridged ETH, tokens, or NFTs if your transaction reverts on L1. All assets are burned on Morph when the transaction is sent, and it's impossible to mint them again.

    +

    Finalize your Withdrawal

    Besides starting a withdrawal request on Morph, there is one additional step to do. You need to finalize your withdrawal on Ethereum.

    This is because of Morph's optimistic zkEVM design, you can read the details here:

    To do this, first you need to make sure:

    @@ -44,31 +48,31 @@

    Fin

    you need to use the proveAndRelayMessage function of the L1CrossDomainMessenger contract.

    After obtaining the above information, the finalization of the withdraw operation can be carried out by calling L1CrossDomainMessenger.proveAndRelayMessage().

    The required parameters are

    -
      address _from, 
    address _to,
    uint256 _value,
    uint256 _nonce,
    bytes memory _message,
    bytes32[32] calldata _withdrawalProof,
    bytes32 _withdrawalRoot
    +
      address _from, 
    address _to,
    uint256 _value,
    uint256 _nonce,
    bytes memory _message,
    bytes32[32] calldata _withdrawalProof,
    bytes32 _withdrawalRoot

    _from, _to, _value, _nonce, and _message are the original content of the withdraw transaction, which can be obtained from the Event SentMessage included in the transaction initiated by the L2 layer withdraw.

    _withdrawalProof and _withdrawalRoot can be obtained from the aforementioned backend API interface.

    -
    Use the SDK

    You can also try our SDK to interact with the bridge system by referring to our SDK Doc.

    -

    Add your Token to the Official Bridge

    -

    Currently, our official bridge only supports certain pre-defined tokens to be bridged. If you want to bridge your own tokens, you need to manually add the token, and here is how to do it.

    -

    Add Tokens to the gateway through Morph Bridge Frontend

    -

    The easiest way to support your token is to manually add it on our official bridge frontend, you can simply do it with the following steps:

    +
    Use the SDK

    You can also try our SDK to interact with the bridge system by referring to our SDK Doc.

    +

    Add your Token to the Official Bridge

    +

    Currently, our canonical bridge only supports certain pre-defined tokens to be bridged. If you want to bridge your own tokens, you need to manually add the token, and here is how to do it.

    +

    Add Tokens to the gateway through Morph Bridge Frontend

    +

    The easiest way to support your token is to manually add it on our canonical bridge frontend, you can simply do it with the following steps:

    1. Click the token selection button on Morph Holesky Bridge
    -

    tokenlist1

    +

    tokenlist1

    1. Input & Confirm your desire Ethereum token contract address under the custom token section
    -

    tokenlist2

    +

    tokenlist2

    1. Get the Layer 2 token contract address and confirm it.
    -

    tokenlist3

    +

    tokenlist3

    1. Now it is supported and you and other users can start to bridge it!
    -

    tokenlist4

    -

    Add token support to the bridge frontend

    +

    tokenlist4

    +

    Add token support to the bridge frontend

    By adding your token to the gateway, you and other users can bridge the token by inputting the token address.You need to raise a PR to our bridge repo if you want your token shown on the bridge frontend token list.

    You can find how to do it in the morph list repo.

    Keep in mind that:

    @@ -76,6 +80,6 @@

    example PR commit for your reference.

    +

    Here is an example PR commit for your reference.

    \ No newline at end of file diff --git a/build/docs/build-on-morph/build-on-morph/development-setup/index.html b/build/docs/build-on-morph/build-on-morph/development-setup/index.html index 9673d46c9..73278d8c7 100644 --- a/build/docs/build-on-morph/build-on-morph/development-setup/index.html +++ b/build/docs/build-on-morph/build-on-morph/development-setup/index.html @@ -3,12 +3,16 @@ -Development Setup | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +Development Setup | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    Start Developing on Morph

    +

    Start Developing on Morph

    Developing on Morph is as straightforward as developing on Ethereum.

    To deploy contracts onto a MorphL2 chain, simply set the RPC endpoint of your target MorphL2 chain and deploy using your preferred Ethereum development framework:

      @@ -20,42 +24,36 @@

    ...it all just works!

    Mainnet:

    -

    Step 1: Network Configuration

    +

    Step 1: Network Configuration

    Before you start, ensure you are connected to the following networks:

    Network NameMorph MainnetEthereum Mainnet
    RPC URLhttps://rpc-quicknode.morphl2.iohttps://ethereum-rpc.publicnode.com/
    Chain ID28181
    Currency SymbolETHETH
    Block Explorer URLhttps://explorer.morphl2.io/https://etherscan.io/
    -
    Websocket Connection

    wss://rpc-quicknode.morphl2.io

    -

    Tendermint Consensus Information

    -

    Tendermint RPC: https://rpc-consensus.morphl2.io

    -

    Tendermint RPC Documentation: https://docs.tendermint.com/v0.34/rpc/#/

    -

    Step 2: Set up your developing framework

    -

    Hardhat

    +
    Websocket Connection

    wss://rpc-quicknode.morphl2.io

    +

    Step 2: Set up your developing framework

    +

    Hardhat

    Modify your Hardhat config file hardhat.config.ts to point at the Morph public RPC.

    -
    const config: HardhatUserConfig = {
    ...
    networks: {
    morphl2: {
    url: 'https://rpc-quicknode.morphl2.io',
    accounts:
    process.env.PRIVATE_KEY !== undefined ? [process.env.PRIVATE_KEY] : [],
    gasprice = 1000000000
    },
    },
    };

    -

    Foundry

    +
    const config: HardhatUserConfig = {
    ...
    networks: {
    morphl2: {
    url: 'https://rpc-quicknode.morphl2.io',
    accounts:
    process.env.PRIVATE_KEY !== undefined ? [process.env.PRIVATE_KEY] : [],
    gasprice = 1000000000
    },
    },
    };

    +

    Foundry

    To deploy using Morph Public RPC, run:

    -
    forge create ... --rpc-url= --legacy
    -

    ethers.js

    +
    forge create ... --rpc-url= --legacy
    +

    ethers.js

    Setting up a Morph provider in an ethers script:

    -
    import { ethers } from 'ethers';

    const provider = new ethers.providers.JsonRpcProvider(
    'https://rpc-quicknode.morphl2.io'
    );
    +
    import { ethers } from 'ethers';

    const provider = new ethers.providers.JsonRpcProvider(
    'https://rpc-quicknode.morphl2.io'
    );

    Holesky Testnet:

    -

    Step 1: Network Configuration

    +

    Step 1: Network Configuration

    Before you start, ensure you are connected to the following networks:

    Network NameMorph Holesky TestnetHolesky Testnet
    RPC URLhttps://rpc-quicknode-holesky.morphl2.iohttps://ethereum-holesky-rpc.publicnode.com/
    Chain ID281017000
    Currency SymbolETHETH
    Block Explorer URLhttps://explorer-holesky.morphl2.io/https://holesky.etherscan.io/
    -
    Websocket Connection

    wss://rpc-quicknode-holesky.morphl2.io

    -

    Tendermint Consensus Information

    -

    Tendermint RPC: https://rpc-consensus-holesky.morphl2.io

    -

    Tendermint RPC Documentation: https://docs.tendermint.com/v0.34/rpc/#/

    -

    Step 2: Set up your developing framework

    -

    Hardhat

    +
    Websocket Connection

    wss://rpc-quicknode-holesky.morphl2.io

    +

    Step 2: Set up your developing framework

    +

    Hardhat

    Modify your Hardhat config file hardhat.config.ts to point at the Morph public RPC.

    -
    const config: HardhatUserConfig = {
    ...
    networks: {
    morphl2: {
    url: 'https://rpc-quicknode-holesky.morphl2.io',
    accounts:
    process.env.PRIVATE_KEY !== undefined ? [process.env.PRIVATE_KEY] : [],
    gasprice = 2000000000
    },
    },
    };

    -

    Foundry

    +
    const config: HardhatUserConfig = {
    ...
    networks: {
    morphl2: {
    url: 'https://rpc-quicknode-holesky.morphl2.io',
    accounts:
    process.env.PRIVATE_KEY !== undefined ? [process.env.PRIVATE_KEY] : [],
    gasprice = 2000000000
    },
    },
    };

    +

    Foundry

    To deploy using Morph Public RPC, run:

    -
    forge create ... --rpc-url= --legacy
    -

    ethers.js

    +
    forge create ... --rpc-url= --legacy
    +

    ethers.js

    Setting up a Morph provider in an ethers script:

    -
    import { ethers } from 'ethers';

    const provider = new ethers.providers.JsonRpcProvider(
    'https://rpc-quicknode-holesky.morphl2.io'
    );
    -

    Step 3: Acquire Ether

    +
    import { ethers } from 'ethers';

    const provider = new ethers.providers.JsonRpcProvider(
    'https://rpc-quicknode-holesky.morphl2.io'
    );
    +

    Step 3: Acquire Ether

    To start building on Morph, you may need some testnet ETH. Use a faucet to acquire holesky Ether, then bridge the test Ethereum Ether to the Morph testnet.

    Each faucet has its own rules and requirements, so you may need to try a few before finding one that works for you.

    Holesky ETH faucet websites:

    @@ -65,6 +63,6 @@

    Step 3:

    https://cloud.google.com/application/web3/faucet/ethereum (needs a Google account)

    We have our own website faucet that can claim ETH & USDT for you initial usage.

    Morph also offers a Discord faucet to obtain Morph Holesky USDT & Morph Holesky ETH.

    -

    Once you receive ETH on Holesky, you should see it in your wallet on the Holesky Network. It may take a few seconds for them to appear, but you can check the status by looking for a transaction to your address on a Holesky Block Explorer.

    +

    Once you receive ETH on Holesky, you should see it in your wallet on the Holesky Network. It may take a few seconds for them to appear, but you can check the status by looking for a transaction to your address on a Holesky Block Explorer.

    \ No newline at end of file diff --git a/build/docs/build-on-morph/build-on-morph/difference-between-morph-and-ethereum/index.html b/build/docs/build-on-morph/build-on-morph/difference-between-morph-and-ethereum/index.html deleted file mode 100644 index bf8539b8c..000000000 --- a/build/docs/build-on-morph/build-on-morph/difference-between-morph-and-ethereum/index.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - - -Difference between Morph and Ethereum | Morph docs – The Optimistic zkEVM Scaling Solution docs - - - - -
    Skip to main content

    Difference between Morph and Ethereum

    There are several technical differences between Ethereum’s EVM and Morph's optimistic zkEVM.

    -

    We’ve compiled a list to help you understand these distinctions better.

    -
    tip

    For most Solidity developers, these technical details won't significantly impact your development experience.

    -

    EVM Opcodes

    -
    OpcodeSolidity equivalentMorph Behavior
    BLOCKHASHblock.blockhashReturns keccak(chain_id || block_number) for the last 256 blocks.
    COINBASEblock.coinbaseReturns the pre-deployed fee vault contract address. See Contracts
    DIFFICULTY / PREVRANDAOblock.difficultyReturns 0.
    SELFDESTRUCTselfdestructDisabled. If the opcode is encountered, the transaction will be reverted.
    BLOBHASHtx.blob_versioned_hashes[index]Not supported
    BLOBBASEFEEblob_base_fee = BLOBBASEFEE()Not supported
    -

    EVM Precompiles

    -

    The RIPEMD-160 (address 0x3) blake2f (address 0x9), and point evaluation (address 0x0a) precompiles are currently not supported. Calls to unsupported precompiled contracts will revert. We plan to enable these precompiles in future hard forks.

    -

    The modexp precompile is supported but only supports inputs of size less than or equal to 32 bytes (i.e. u256).

    -

    The ecPairing precompile is supported, but the number of points(sets, pairs) is limited to 4, instead of 6.

    -

    The other EVM precompiles are all supported: ecRecover, identity, ecAdd, ecMul.

    -

    Precompile Limits

    -

    Because of a bounded size of the zkEVM circuits, there is an upper limit on the number of calls that can be made for some precompiles. These transactions will not revert, but simply be skipped by the sequencer if they cannot fit into the space of the circuit.

    -
    Precompile / OpcodeLimit
    keccak2563157
    ecRecover119
    modexp23
    ecAdd50
    ecMul50
    ecPairing2
    -
    Several opcode not available

    BLOBHASH and BLOBBASEFEE are not supported on Morph yet. Additionally, EIP-4788 for accessing the Beacon Chain block root is not supported.

    -

    State Account

    -

    Additional Fields

    -

    We added two fields in the current StateAccount object: PoseidonCodehash and CodeSize.

    -
    type StateAccount struct {
    Nonce uint64
    Balance *big.Int
    Root common.Hash // merkle root of the storage trie
    KeccakCodeHash []byte // still the Keccak codehash
    // added fields
    PoseidonCodeHash []byte // the Poseidon codehash
    CodeSize uint64
    }
    -

    CodeHash

    -

    Related to this, we maintain two types of codehash for each contract bytecode: Keccak hash and Poseidon hash.

    -

    KeccakCodeHash is kept to maintain compatibility for EXTCODEHASH. PoseidonCodeHash is used for verifying the correctness of bytecodes loaded in the zkEVM, where Poseidon hashing is far more efficient.

    -

    CodeSize

    -

    When verifying EXTCODESIZE, it is expensive to load the whole contract data into the zkEVM. Instead, we store the contract size in storage during contract creation. This way, we do not need to load the code — a storage proof is sufficient to verify this opcode.

    -

    Block Time

    -
    Block Time Subject to Change

    Blocks are produced every second, with an empty block generated if there are no transactions for 5 seconds. However, this frequency may change in the future.

    -

    To compare, Ethereum has a block time of ~12 seconds.

    -

    Reasons for Faster Block Time in Morph -User Experience:

    -
      -
    • -

      A faster, consistent block time provides quicker feedback, enhancing the user experience.

      -
    • -
    • -

      Optimization: As we refine the zkEVM circuits in our testnets, we can achieve higher throughput than Ethereum, even with a smaller gas limit per block or batch.

      -
    • -
    -

    Notice:

    -
      -
    • TIMESTAMP will return the timestamp of the block. It will update every second.
    • -
    • BLOCKNUMBER will return an actual block number. It will update every second. The one-to-one mapping between blocks and transactions will no longer apply.
    • -
    -

    Future EIPs

    -

    Morph closely monitors emerging Ethereum Improvement Proposals (EIPs) and adopts them when suitable. For more specifics, join our community forum or Discord for discussions.

    -

    Transaction Fees

    - - \ No newline at end of file diff --git a/build/docs/build-on-morph/build-on-morph/difference-between-morph-and-ethereum.htm/index.html b/build/docs/build-on-morph/build-on-morph/integration-one-page-cn.htm/index.html similarity index 60% rename from build/docs/build-on-morph/build-on-morph/difference-between-morph-and-ethereum.htm/index.html rename to build/docs/build-on-morph/build-on-morph/integration-one-page-cn.htm/index.html index ccf1d7529..6e6dd0601 100644 --- a/build/docs/build-on-morph/build-on-morph/difference-between-morph-and-ethereum.htm/index.html +++ b/build/docs/build-on-morph/build-on-morph/integration-one-page-cn.htm/index.html @@ -2,10 +2,10 @@ - - + + \ No newline at end of file diff --git a/build/docs/build-on-morph/build-on-morph/difference-between-morph-and-ethereum.html/index.html b/build/docs/build-on-morph/build-on-morph/integration-one-page-cn.html/index.html similarity index 60% rename from build/docs/build-on-morph/build-on-morph/difference-between-morph-and-ethereum.html/index.html rename to build/docs/build-on-morph/build-on-morph/integration-one-page-cn.html/index.html index ccf1d7529..6e6dd0601 100644 --- a/build/docs/build-on-morph/build-on-morph/difference-between-morph-and-ethereum.html/index.html +++ b/build/docs/build-on-morph/build-on-morph/integration-one-page-cn.html/index.html @@ -2,10 +2,10 @@ - - + + \ No newline at end of file diff --git a/build/docs/build-on-morph/build-on-morph/integration-one-page-cn/index.html b/build/docs/build-on-morph/build-on-morph/integration-one-page-cn/index.html new file mode 100644 index 000000000..ade1d51e8 --- /dev/null +++ b/build/docs/build-on-morph/build-on-morph/integration-one-page-cn/index.html @@ -0,0 +1,47 @@ + + + + + +中文开发者集成文档 | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + + + +
    Skip to main content

    中文开发者集成文档

    网络参数

    +
    网络链 IDRPC URL区块浏览器
    Morph 主网2818https://rpc-quicknode.morphl2.iohttps://explorer.morphl2.io/
    Ethereum 主网1https://ethereum-rpc.publicnode.com/https://etherscan.io/
    Morph Holesky 测试网2810https://rpc-quicknode-holesky.morphl2.iohttps://explorer-holesky.morphl2.io/
    Holesky 测试网17000https://ethereum-holesky-rpc.publicnode.com/https://holesky.etherscan.io/
    +

    请注意,我们已为公共 RPC 访问设置了速率限制,目前为每个 IP 每分钟 600 次请求。

    +

    如果您需要更高的额度,请联系Morph团队为您开放更高限额。您还可以使用我们的合作伙伴产品 quicknodetenderly 创建自己的私人 RPC。

    +
    Websocket 连接

    wss://rpc-quicknode.morphl2.io

    +

    浏览器信息

    +

    官方主网浏览器

    +

    官方测试网浏览器

    +

    浏览器 API 文档

    +

    浏览器 API: https://explorer-api.morphl2.io/api

    +

    测试网浏览器 API: https://explorer-holesky-api.morphl2.io/api

    +

    有关如何在 Morph 浏览器上验证您的合约的详细指南,点击这里

    +

    桥信息

    +

    官方桥

    +

    官方测试网桥

    +
    提现和存款时间

    由于 Morph opzkEVM 设计,每个提现请求需要经过 48 小时的提现期(挑战窗口)才能完成。

    存款需要等待 2 个以太坊Epoch(大约 13~20 分钟)。

    +

    新桥接资产支持:

    +

    将您的代币添加到官方桥

    +

    您还可以使用 LayerZero 来包装您的代币:

    +

    LayerZero 在 Morph 上

    +

    交易费用与区块

    +

    对于以太坊 Layer2,费用分为两部分:L1 费用和 L2 费用。

    +

    对于 L2 费用,Morph 目前使用与以太坊主网相同的 EIP-1559 机制来计算交易费用。每笔交易将有一个基础费用和一个优先费用。基础费用设定为 0.001 Gwei。如果区块交易限制(每个区块 100 笔)未达到,用户只需要仅支付基础费即可。

    +
    tip

    请注意,我们在测试网上设置了最低的 L2 优先费(0.01 gwei),这是为了防止垃圾交易影响其他正常交易。对于主网,我们可以在不收取优先级费用的情况下处理交易。

    +

    Morph 目前每秒生成 1 个非空区块,如果没有新交易,我们将每 5 秒生成 1 个空区块。

    +

    每个区块最多可以容纳 100 笔交易,我们将继续提高限制来达成更高的TPS。

    +

    重要合约

    +

    我们已记录所有重要的 Morph 合约,您可以在 这里 找到它们。

    +

    节点部署

    +

    目前我们支持您在 Docker 中运行 Morph 节点(全节点和验证节点)或在Host上运行。

    +

    您可以查看 节点部署指南 以获取更多详细信息。

    + + \ No newline at end of file diff --git a/build/docs/build-on-morph/build-on-morph/integration-one-page.htm/index.html b/build/docs/build-on-morph/build-on-morph/integration-one-page.htm/index.html new file mode 100644 index 000000000..02ff257b6 --- /dev/null +++ b/build/docs/build-on-morph/build-on-morph/integration-one-page.htm/index.html @@ -0,0 +1,11 @@ + + + + + + + + + \ No newline at end of file diff --git a/build/docs/build-on-morph/build-on-morph/integration-one-page.html/index.html b/build/docs/build-on-morph/build-on-morph/integration-one-page.html/index.html new file mode 100644 index 000000000..02ff257b6 --- /dev/null +++ b/build/docs/build-on-morph/build-on-morph/integration-one-page.html/index.html @@ -0,0 +1,11 @@ + + + + + + + + + \ No newline at end of file diff --git a/build/docs/build-on-morph/build-on-morph/integration-one-page/index.html b/build/docs/build-on-morph/build-on-morph/integration-one-page/index.html new file mode 100644 index 000000000..efa2ad59b --- /dev/null +++ b/build/docs/build-on-morph/build-on-morph/integration-one-page/index.html @@ -0,0 +1,47 @@ + + + + + +Morph Integration One Page | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + + + +
    Skip to main content

    Morph Integration One Page

    Network Parameters

    +
    NetworkChain IDRPC URLBlock Explorer URL
    Morph Mainnet2818https://rpc-quicknode.morphl2.iohttps://explorer.morphl2.io/
    Ethereum Mainnet1https://ethereum-rpc.publicnode.com/https://etherscan.io/
    Morph Holesky Testnet2810https://rpc-quicknode-holesky.morphl2.iohttps://explorer-holesky.morphl2.io/
    Holesky Testnet17000https://ethereum-holesky-rpc.publicnode.com/https://holesky.etherscan.io/
    +

    To notice, we have set a rate limit for the public RPC access, currently 600 requests per minute per IP.

    +

    If you need higher tps, please contact our team for private RPC access. You can also use our partner quicknode or tenderly to create your own private RPC.

    +
    Websocket Connection

    wss://rpc-quicknode.morphl2.io

    +

    Explorer Information

    +

    Official Mainnet Explorer

    +

    Official Testnet Explorer

    +

    Explorer API Documentation

    +

    Explorer API: https://explorer-api.morphl2.io/api

    +

    Testnet Explorer API: https://explorer-holesky-api.morphl2.io/api

    +

    For detail guide on how to verify your contract on Morph explorer, click here

    +

    Bridge Information

    +

    Official Bridge

    +

    Official Testnet Bridge

    +
    Withdrawal and Deposit Time

    Due to Morph opzkEVM design, each withdrawal request will need to go through a 48 hours withdrawal period (challenge window) to be finalized.

    Deposit needs to wait for 2 Ethereum epoch (about 13~20 min).

    +

    New Bridge Asset Support:

    +

    Add your Token to the Official Bridge

    +

    You can also use LayerZero to wrap your token:

    +

    LayerZero on Morph

    +

    Transaction Fees & Blocks

    +

    For Ethereum Layer2, there are 2 part of fees: L1 fee and L2 fee.

    +

    For L2 fee, Morph currently using the EIP-1559 mechanism for transaction fees same as Ethereum mainnet. Each transaction will have a base fee and a priority fee. The base fee is set to 0.001 Gwei. If the block transaction limit (100 per block) is not reached, only pay base fee is enough.

    +
    tip

    Please note we have a lowest L2 priority fee setting (0.01 gwei) for testnet, this is in order to prevent spams. For mainnet, we are able process transaction without priority fee.

    +

    Morph currently produce 1 block per second for non-empty block, if there is no new transaction, we will produce 1 empty block every 5 seconds.

    +

    Each block can have 100 transactions maximum and we will keep raising the limit.

    +

    Important Contracts

    +

    We have documented all the important contracts on Morph, you can find them here

    +

    Node Deployment

    +

    Right now we support you to run the Morph node (full node and validator node) in docker and run on host.

    +

    You can check the node deployment guide for more details.

    + + \ No newline at end of file diff --git a/build/docs/build-on-morph/build-on-morph/understand-transaction-cost-on-morph/index.html b/build/docs/build-on-morph/build-on-morph/understand-transaction-cost-on-morph/index.html index 9d02f5c12..3fc74a5ec 100644 --- a/build/docs/build-on-morph/build-on-morph/understand-transaction-cost-on-morph/index.html +++ b/build/docs/build-on-morph/build-on-morph/understand-transaction-cost-on-morph/index.html @@ -3,27 +3,31 @@ -Understand Transaction Cost on Morph | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +Understand Transaction Cost on Morph | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    Understand Transaction Cost on Morph

    Transaction fees on Morph work similarly to fees on Ethereum. However, Layer 2 introduces some unique aspects. Morph's optimistic zkEVM makes these differences easy to understand and even easier to handle.

    +

    Understand Transaction Cost on Morph

    Transaction fees on Morph work similarly to fees on Ethereum. However, Layer 2 introduces some unique aspects. Morph's optimistic zkEVM makes these differences easy to understand and even easier to handle.

    This page includes the formula for calculating the gas cost of transactions on Morph. There are two kinds of costs for transactions on Morph: the L2 execution fee and the L1 data/security fee.

    -

    The L2 execution fee

    +

    The L2 execution fee

    Like Ethereum, transactions on Morph incur gas costs for computation and storage usage.

    Every L2 transaction will pay some execution fee, equal to the amount of gas used multiplied by the gas price of the transaction.

    Morph supports EIP-1559 transaction type. The EIP-1559 pricing model, which comprises a base fee and a priority fee, contributes to a more predictable and stable transaction fee.

    The formula is straightforward:

    -
    l2_execution_fee = l2_gas_price * l2_gas_used
    l2_gas_price = l2_base_fee + l2_priority_fee
    +
    l2_execution_fee = l2_gas_price * l2_gas_used
    l2_gas_price = l2_base_fee + l2_priority_fee

    The amount of L2 gas used depends on the specific transaction. Due to EVM compatibility, gas usage on Morph is typically similar to Ethereum.

    -

    The L1 data fee

    +

    The L1 data fee

    Morph transactions are also published to Ethereum, crucial to Morph’s security as it ensures all data needed to verify Morph's state is always publicly available on Ethereum.

    Users must pay for the cost of submitting their transactions to Ethereum, known as the L1 data fee. This fee typically represents most of the total cost of a transaction on Morph.

    Formula:

    -
    l1DataFee = (l1BaseFee * commitScalar + l1BlobBaseFee * len(tx_data) * blobScalar) / rcfg.Precision
    -
    len(tx_data) = count_zero_bytes(tx_data) * 4 + count_non_zero_bytes(tx_data) * 16
    +
    l1DataFee = (l1BaseFee * commitScalar + l1BlobBaseFee * len(tx_data) * blobScalar) / rcfg.Precision
    +
    len(tx_data) = count_zero_bytes(tx_data) * 4 + count_non_zero_bytes(tx_data) * 16

    And other parameters:

    1. l1BaseFee:Layer1 base fee
    2. @@ -31,54 +35,54 @@

      The L1 data
    3. l1BlobBaseFee: the blobBaseFee on L1
    4. blobScalar: a factor used to measure the gas cost for one transaction to be stored in EIP-4844 blob
    -
    tip

    You can read the parameter values from the GasPrice oracle contract. Morph has pre-deployed GasPriceOracle, accessible on Morph mainnet at GasPriceOracle.

    -

    Transaction fees' effect on software development

    -

    Sending transactions

    +
    tip

    You can read the parameter values from the GasPrice oracle contract. Morph has pre-deployed GasPriceOracle, accessible on Morph mainnet at GasPriceOracle.

    +

    Transaction fees' effect on software development

    +

    Sending transactions

    The process of sending a transaction on Morph is identical to sending a transaction on Ethereum.

    When sending a transaction, you should provide a gas price that is greater than or equal to the current L2 gas price.

    Like on Ethereum, you can query this gas price with the eth_gasPrice RPC method.

    Similarly, you should set your transaction gas limit in the same way that you would set it on Ethereum (e.g. via eth_estimateGas).

    -

    Displaying fees to users

    +

    Displaying fees to users

    Many Ethereum applications display estimated fees to users by multiplying the gas price by the gas limit.

    However, as discussed earlier, users on Morph are charged both an L2 execution fee and an L1 data fee.

    As a result, you should display the sum of both of these fees to give users the most accurate estimate of the total cost of a transaction.

    -

    Estimating the L2 execution fee

    +

    Estimating the L2 execution fee

    You can estimate the L2 execution fee by multiplying the gas price by the gas used, just like on Ethereum.

    The formula is straightforward:

    -
    l2_execution_fee = l2_gas_price * l2_gas_used
    l2_gas_price = l2_base_fee + l2_priority_fee
    +
    l2_execution_fee = l2_gas_price * l2_gas_used
    l2_gas_price = l2_base_fee + l2_priority_fee

    The amount of L2 gas used depends on the specific transaction. Due to EVM compatibility, gas usage on Morph is typically similar to Ethereum.

    -

    Estimating the L1 data fee

    -

    You can utilize the pre-deployed L1GasPriceOracle at 0x530000000000000000000000000000000000000F. It offers a getL1Fee method to estimate the L1 data fee for the raw data of a given transaction.

    -
    function getL1Fee(bytes memory _data) external view override returns (uint256);
    -
    tip

    Once the sequencer has processed a transaction, a user's L1 fee is secured, and any fluctuations will not impact what a user pays.

    Due to Morph's ~1s block time, any changes in L1 gas between a transaction's submission and its inclusion in a block should be minimal. The sequencer will account for any variations in L1 gas costs between a transaction's inclusion in a block and when the sequencer commits the data to L1.

    -

    Estimating the total fee

    +

    Estimating the L1 data fee

    +

    You can utilize the pre-deployed L1GasPriceOracle at 0x530000000000000000000000000000000000000f. It offers a getL1Fee method to estimate the L1 data fee for the raw data of a given transaction.

    +
    function getL1Fee(bytes memory _data) external view override returns (uint256);
    +
    tip

    Once the sequencer has processed a transaction, a user's L1 fee is secured, and any fluctuations will not impact what a user pays.

    Due to Morph's ~1s block time, any changes in L1 gas between a transaction's submission and its inclusion in a block should be minimal. The sequencer will account for any variations in L1 gas costs between a transaction's inclusion in a block and when the sequencer commits the data to L1.

    +

    Estimating the total fee

    You can estimate the total fee by combining your estimates for the L2 execution fee and L1 data fee.

    -

    Sending max ETH

    +

    Sending max ETH

    Sending the maximum amount of ETH that a user has in their wallet is a relatively common use case.

    When doing this, you will need to subtract the estimated L2 execution fee and the estimated L1 data fee from the amount of ETH you want the user to send.

    Use the logic described above for estimating the total fee.

    -

    Common RPC Errors

    -

    Insufficient funds

    +

    Common RPC Errors

    +

    Insufficient funds

    • Error code: -32000
    • Error message: invalid transaction: insufficient funds for l1Fee + l2Fee + value

    You'll get this error when attempting to send a transaction and you don't have enough ETH to pay for the value of the transaction, the L2 execution fee, and the L1 data fee. You might get this error when attempting to send max ETH if you aren't properly accounting for both the L2 execution fee and the L1 data fee.

    -

    Gas price too low

    +

    Gas price too low

    • Error code: -32000
    • Error message: gas price too low: X wei, use at least tx.gasPrice = Y wei

    This is a custom RPC error that Morph returns when a transaction is rejected because the gas price is too low. See the section on Responding to gas price updates for more information.

    -

    Gas price too high

    +

    Gas price too high

    • Error code: -32000
    • Error message: gas price too high: X wei, use at most tx.gasPrice = Y wei

    This is a custom RPC error that Morph returns when a transaction is rejected because the gas price is too high. -We include this as a safety measure to prevent users from accidentally sending a transaction with an extremely high L2 gas price. -See the section on Responding to gas price updates for more information.

    +We include this as a safety measure to prevent users from accidentally sending a transaction with an extremely high L2 gas price.

    +

    See the section on Responding to gas price updates for more information.

    \ No newline at end of file diff --git a/build/docs/build-on-morph/build-on-morph/verify-your-smart-contracts/index.html b/build/docs/build-on-morph/build-on-morph/verify-your-smart-contracts/index.html index 7059c1c6c..684585b4f 100644 --- a/build/docs/build-on-morph/build-on-morph/verify-your-smart-contracts/index.html +++ b/build/docs/build-on-morph/build-on-morph/verify-your-smart-contracts/index.html @@ -3,21 +3,25 @@ -Verify Your Smart Contracts | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +Verify Your Smart Contracts | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    Verify Your Smart Contracts

    After deploying your smart contracts, it's crucial to verify your code on our block explorer. This can be automated using your development framework, such as Hardhat.

    -

    Verify with development framework

    +

    Verify Your Smart Contracts

    After deploying your smart contracts, it's crucial to verify your code on our block explorer. This can be automated using your development framework, such as Hardhat.

    +

    Verify with development framework

    Most smart contract tools have plugins for verifying contracts on Etherscan. Blockscout supports Etherscan's contract verification APIs, making it straightforward to use these tools with the Morph Mainnet & Testnet.

    -

    Verify with Hardhat

    +

    Verify with Hardhat

    To verify your contract through hardhat, you need to add the following Etherscan and Sourcify configs to your hardhat.config.js file:

    -
    module.exports = {
    networks: {
    morph: { ... }
    },
    etherscan: {
    apiKey: {
    morph: 'anything',
    },
    customChains: [
    {
    network: 'morph',
    chainId: 2818,
    urls: {
    apiURL: 'https://explorer-api.morphl2.io/api? ',
    browserURL: 'https://explorer.morphl2.io/',
    },
    },
    ],
    },
    };
    -

    Verify with Foundry

    +
    module.exports = {
    networks: {
    morph: { ... }
    },
    etherscan: {
    apiKey: {
    morph: 'anything',
    },
    customChains: [
    {
    network: 'morph',
    chainId: 2818,
    urls: {
    apiURL: 'https://explorer-api.morphl2.io/api? ',
    browserURL: 'https://explorer.morphl2.io/',
    },
    },
    ],
    },
    };
    +

    Verify with Foundry

    Verification with foundry requires some flags passed to the normal verification script. You can verify using the command below:

    -
     forge verify-contract YourContractAddress Counter\
    --chain 2818 \
    --verifier-url https://explorer-api.morphl2.io/api? \
    --verifier blockscout --watch
    -

    Verify with Morph explorer frontend

    +
     forge verify-contract YourContractAddress Counter\
    --chain 2818 \
    --verifier-url https://explorer-api.morphl2.io/api? \
    --verifier blockscout --watch
    +

    Verify with Morph explorer frontend

    @@ -27,42 +31,42 @@

    Method: Solidity (Flattened Sources Code)

    -

    Frontend:

    -

    fscs

    -

    Flatten

    +

    Method: Solidity (Flattened Sources Code)

    +

    Frontend:

    +

    fscs

    +

    Flatten

    Flatten through forge command, for example:

    -
    forge flatten --output FlattenedL2StandardBridge.sol ./contracts/L2/L2StandardBridge.sol
    -

    Method: Solidity (Standard JSON Input)

    -

    sjis1

    -

    Obtain JSON File

    +
    forge flatten --output FlattenedL2StandardBridge.sol ./contracts/L2/L2StandardBridge.sol
    +

    Method: Solidity (Standard JSON Input)

    +

    sjis1

    +

    Obtain JSON File

    • Can be obtained through solc
    • Can be obatined through remix compiler
    -

    sjis2

    -

    sjis3

    -

    Method: Solidity (Multi-part files)

    -

    Frontend:

    +

    sjis2

    +

    sjis3

    +

    Method: Solidity (Multi-part files)

    +

    Frontend:

    • You can submit multiple contract file by your own needs -mpfs1
    • +mpfs1
    -

    SOL File Process

    +

    SOL File Process

    • If there is any imported file, it needs to be modified to be referenced by the same level path, and these files must be submitted together. -mpfs2
    • +mpfs2
    -

    Method: Vyper (Contracts)

    -

    Frontend:

    -

    cv

    -

    Method: Vyper (Standard Json Input)

    -

    Frontend:

    -

    sjiv

    -

    Method: Vyper (Multi-part files)

    -

    Frontend:

    -

    mpfv

    -

    After Verification

    -

    avp

    +

    Method: Vyper (Contracts)

    +

    Frontend:

    +

    cv

    +

    Method: Vyper (Standard Json Input)

    +

    Frontend:

    +

    sjiv

    +

    Method: Vyper (Multi-part files)

    +

    Frontend:

    +

    mpfv

    +

    After Verification

    +

    avp

    \ No newline at end of file diff --git a/build/docs/build-on-morph/code-examples/bridge-between-morph-and-ethereum/index.html b/build/docs/build-on-morph/code-examples/bridge-between-morph-and-ethereum/index.html index 4836eb576..6cf521c32 100644 --- a/build/docs/build-on-morph/code-examples/bridge-between-morph-and-ethereum/index.html +++ b/build/docs/build-on-morph/code-examples/bridge-between-morph-and-ethereum/index.html @@ -3,16 +3,20 @@ -Bridge between Morph and Ethereum | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +Bridge between Morph and Ethereum | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    Bridge between Morph and Ethereum

    Bridge an ERC20 through custom gateway

    -

    Step 1: Launch a token on Holesky

    +

    Bridge between Morph and Ethereum

    Bridge an ERC20 through custom gateway

    +

    Step 1: Launch a token on Holesky

    First, we need a token to bridge. There is no need for a particular ERC20 implementation in order for a token to be compatible with L2. If you already have a token, feel free to skip this step. If you want to deploy a new token, use the following contract of a simple ERC20 token that mints 1 million tokens to the deployer when launched.

    -
    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.16;

    import "@openzeppelin/contracts/token/ERC20/ERC20.sol";

    contract L1Token is ERC20 {
    constructor() ERC20("My Token L1", "MTL1") {
    _mint(msg.sender, 1_000_000 ether);
    }
    }
    -

    Step 2: Launch the counterpart token on Morph Holesky testnet

    +
    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.16;

    import "@openzeppelin/contracts/token/ERC20/ERC20.sol";

    contract L1Token is ERC20 {
    constructor() ERC20("My Token L1", "MTL1") {
    _mint(msg.sender, 1_000_000 ether);
    }
    }
    +

    Step 2: Launch the counterpart token on Morph Holesky testnet

    Next, you'll launch a counterpart to this token on Morph, which will represent the original token on Holesky. This token can implement custom logic to match that of the L1 token or even add additional features beyond those of the L1 token.

    For this to work:

      @@ -20,25 +24,25 @@

      // SPDX-License-Identifier: MIT
      pragma solidity ^0.8.16;

      import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
      import "@Morph-tech/contracts@0.1.0/libraries/token/IMorphERC20Extension.sol";

      contract L2Token is ERC20, IMorphERC20Extension {
      // We store the gateway and the L1 token address to provide the gateway() and counterpart() functions which are needed from the Morph Standard ERC20 interface
      address _gateway;
      address _counterpart;

      // In the constructor we pass as parameter the Custom L2 Gateway and the L1 token address as parameters
      constructor(address gateway_, address counterpart_) ERC20("My Token L2", "MTL2") {
      _gateway = gateway_;
      _counterpart = counterpart_;
      }

      function gateway() public view returns (address) {
      return _gateway;
      }

      function counterpart() external view returns (address) {
      return _counterpart;
      }

      // We allow minting only to the Gateway so it can mint new tokens when bridged from L1
      function transferAndCall(address receiver, uint256 amount, bytes calldata data) external returns (bool success) {
      transfer(receiver, amount);
      data;
      return true;
      }

      // We allow minting only to the Gateway so it can mint new tokens when bridged from L1
      function mint(address _to, uint256 _amount) external onlyGateway {
      _mint(_to, _amount);
      }

      // Similarly to minting, the Gateway is able to burn tokens when bridged from L2 to L1
      function burn(address _from, uint256 _amount) external onlyGateway {
      _burn(_from, _amount);
      }

      modifier onlyGateway() {
      require(gateway() == _msgSender(), "Ownable: caller is not the gateway");
      _;
      }
      }

    -

    Step 3: Add the token to the Morph Bridge

    -

    You need to contact the Morph team to add the token to L2CustomERC20Gateway contract in Morph and L1CustomERC20Gateway contract in L1. In addition, follow the instructions on the token lists repository to add your token to the Morph official bridge frontend.

    -

    Step 4: Deposit tokens

    +
    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.16;

    import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
    import "@Morph-tech/contracts@0.1.0/libraries/token/IMorphERC20Extension.sol";

    contract L2Token is ERC20, IMorphERC20Extension {
    // We store the gateway and the L1 token address to provide the gateway() and counterpart() functions which are needed from the Morph Standard ERC20 interface
    address _gateway;
    address _counterpart;

    // In the constructor we pass as parameter the Custom L2 Gateway and the L1 token address as parameters
    constructor(address gateway_, address counterpart_) ERC20("My Token L2", "MTL2") {
    _gateway = gateway_;
    _counterpart = counterpart_;
    }

    function gateway() public view returns (address) {
    return _gateway;
    }

    function counterpart() external view returns (address) {
    return _counterpart;
    }

    // We allow minting only to the Gateway so it can mint new tokens when bridged from L1
    function transferAndCall(address receiver, uint256 amount, bytes calldata data) external returns (bool success) {
    transfer(receiver, amount);
    data;
    return true;
    }

    // We allow minting only to the Gateway so it can mint new tokens when bridged from L1
    function mint(address _to, uint256 _amount) external onlyGateway {
    _mint(_to, _amount);
    }

    // Similarly to minting, the Gateway is able to burn tokens when bridged from L2 to L1
    function burn(address _from, uint256 _amount) external onlyGateway {
    _burn(_from, _amount);
    }

    modifier onlyGateway() {
    require(gateway() == _msgSender(), "Ownable: caller is not the gateway");
    _;
    }
    }
    +

    Step 3: Add the token to the Morph Bridge

    +

    You need to contact the Morph team to add the token to L2CustomERC20Gateway contract in Morph and L1CustomERC20Gateway contract in L1. In addition, follow the instructions on the token lists repository to add your token to the Morph canonical bridge frontend.

    +

    Step 4: Deposit tokens

    Once your token has been approved by the Morph team, you should be able to deposit tokens from L1. To do so, you must first approve the L1CustomGateway contract address on Holesky (0x31C994F2017E71b82fd4D8118F140c81215bbb37). Then, deposit tokens by calling the depositERC20 function from the L1CustomGateway contract. This can be done using our bridge UI, Etherscan Holesky, or a smart contract.

    -

    Step 5: Withdraw tokens

    +

    Step 5: Withdraw tokens

    You will follow similar steps to send tokens back from L2 to L1. First, approve the L2CustomGateway address (0x058dec71E53079F9ED053F3a0bBca877F6f3eAcf) and then withdraw the tokens calling the withdrawERC20 from the L2CustomGateway contract.

    -

    Send messages between Morph and Ethereum

    -

    Deploying the Contracts

    -

    Target Smart Contract

    +

    Send messages between Morph and Ethereum

    +

    Deploying the Contracts

    +

    Target Smart Contract

    Let’s start by deploying the target smart contract. We will use the Greeter contract for this example, but you can use any other contract. Deploy it to either Holesky or Morph. On Morph, L1 and L2 use the same API, so it’s up to you.

    -
    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.16;

    // This Greeter contract will be interacted with through the MorphMessenger across the bridge
    contract Greeter {
    string public greeting = "Hello World!";

    // This function will be called by executeFunctionCrosschain on the Operator Smart Contract
    function setGreeting(string memory greeting_) public {
    greeting = greeting_;
    }
    }
    +
    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.16;

    // This Greeter contract will be interacted with through the MorphMessenger across the bridge
    contract Greeter {
    string public greeting = "Hello World!";

    // This function will be called by executeFunctionCrosschain on the Operator Smart Contract
    function setGreeting(string memory greeting_) public {
    greeting = greeting_;
    }
    }

    We will now execute setGreeting in a cross-chain way.

    -

    Operator Smart Contract

    +

    Operator Smart Contract

    Switch to the other chain and deploy the GreeterOperator. So, if you deployed the Greeter contract on L1, deploy the GreeterOperator on L2 or vice versa.

    -
    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.16;

    // The Morph Messenger interface is the same on both L1 and L2, it allows sending cross-chain transactions
    // Let's import it directly from the Morph Contracts library
    import "@Morph-tech/contracts@0.1.0/libraries/IMorphMessenger.sol";

    // The GreeterOperator is capable of executing the Greeter function through the bridge
    contract GreeterOperator {
    // This function will execute setGreeting on the Greeter contract
    function executeFunctionCrosschain(
    address MorphMessengerAddress,
    address targetAddress,
    uint256 value,
    string memory greeting,
    uint32 gasLimit
    ) public payable {
    IMorphMessenger MorphMessenger = IMorphMessenger(MorphMessengerAddress);
    // sendMessage is able to execute any function by encoding the abi using the encodeWithSignature function
    MorphMessenger.sendMessage{ value: msg.value }(
    targetAddress,
    value,
    abi.encodeWithSignature("setGreeting(string)", greeting),
    gasLimit,
    msg.sender
    );
    }
    }
    -

    Calling a Cross-chain Function

    +
    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.16;

    // The Morph Messenger interface is the same on both L1 and L2, it allows sending cross-chain transactions
    // Let's import it directly from the Morph Contracts library
    import "@Morph-tech/contracts@0.1.0/libraries/IMorphMessenger.sol";

    // The GreeterOperator is capable of executing the Greeter function through the bridge
    contract GreeterOperator {
    // This function will execute setGreeting on the Greeter contract
    function executeFunctionCrosschain(
    address MorphMessengerAddress,
    address targetAddress,
    uint256 value,
    string memory greeting,
    uint32 gasLimit
    ) public payable {
    IMorphMessenger MorphMessenger = IMorphMessenger(MorphMessengerAddress);
    // sendMessage is able to execute any function by encoding the abi using the encodeWithSignature function
    MorphMessenger.sendMessage{ value: msg.value }(
    targetAddress,
    value,
    abi.encodeWithSignature("setGreeting(string)", greeting),
    gasLimit,
    msg.sender
    );
    }
    }
    +

    Calling a Cross-chain Function

    We pass the message by executing executeFunctionCrosschain and passing the following parameters:

    • MorphMessengerAddress: This will depend on where you deployed the GreeterOperator contract. @@ -56,20 +60,20 @@

      Relay the Message when sending from L2 to L1

      +

      Relay the Message when sending from L2 to L1

      When a transaction is passed from L2 to L1, an additional "execute withdrawal transaction" must be sent on L1. To do this, you must call relayMessageWithProof on the L1 Morph Messenger contract from an EOA wallet.

      You can do this directly on Etherscan Holesky. To do so, you will need to pass a Merkle inclusion proof for the bridged transaction and other parameters. You'll query these using the Morph Bridge API.

      We're finalizing the API specifics, but for now, fetch or curl the following endpoint:

      -
      curl "https://Holesky-api-bridge.Morph.io/api/claimable?page_size=10&page=1&address=GREETER_OPERATOR_ADDRESS_ON_L2"
      -
      tip

      This API was made for our Bridge UI. It is not yet finalized and may change in the future. We will update this guide +

      curl "https://Holesky-api-bridge.Morph.io/api/claimable?page_size=10&page=1&address=GREETER_OPERATOR_ADDRESS_ON_L2"
      +
      tip

      This API was made for our Bridge UI. It is not yet finalized and may change in the future. We will update this guide when the API is finalized.

      -
      Anyone can execute your message

      relayMessageWithProof is fully permissionless, so anyone can call it on your behalf if they're willing to pay the L1 +

      Anyone can execute your message

      relayMessageWithProof is fully permissionless, so anyone can call it on your behalf if they're willing to pay the L1 gas fees. This feature allows for additional support infrastructure, including tooling to automate this process for applications and users.

      After executing and confirming the transaction on both L1 and L2, the new state of greeting on the Greeter contract should be “This message was cross-chain!”. Sending a message from one chain to the other should take around 20 minutes after the transactions are confirmed on the origin chain.

      -

      Congratulations, you now executed a transaction from one chain to the other using our native bridge!

    +

    Congratulations, you now executed a transaction from one chain to the other using our native bridge!

    \ No newline at end of file diff --git a/build/docs/build-on-morph/code-examples/deploy-contract-on-morph/index.html b/build/docs/build-on-morph/code-examples/deploy-contract-on-morph/index.html index 8c14241cc..f9058e8aa 100644 --- a/build/docs/build-on-morph/code-examples/deploy-contract-on-morph/index.html +++ b/build/docs/build-on-morph/code-examples/deploy-contract-on-morph/index.html @@ -3,64 +3,68 @@ -Deploy Contracts on Morph | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +Deploy Contracts on Morph | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    Deploy Contracts on Morph

    The Morph Holesky Testnet allows anyone to deploy a smart contract on Morph. This tutorial will guide you through deploying a contract on Morph Holesky using common Ethereum development tools.

    +

    Deploy Contracts on Morph

    The Morph Holesky Testnet allows anyone to deploy a smart contract on Morph. This tutorial will guide you through deploying a contract on Morph Holesky using common Ethereum development tools.

    This demo repo illustrates contract deployment with Hardhat and Foundry.

    -
    tip

    Before you start deploying the contract, you need to request test tokens from a Holesky faucet and use the +

    tip

    Before you start deploying the contract, you need to request test tokens from a Holesky faucet and use the bridge to transfer some test ETH from Holesky to Morph Holesky.

    See our Faucet for details.

    -

    Deploy with Hardhat

    -

    Clone the repo

    -
    git clone https://github.com/morph-l2/morph-examples.git
    -

    Install Dependencies

    +

    Deploy with Hardhat

    +

    Clone the repo

    +
    git clone https://github.com/morph-l2/morph-examples.git
    +

    Install Dependencies

    If you haven't already, install nodejs and yarn.

    -
    cd contract-deployment-demos/hardhat-demo
    yarn install
    +
    cd contract-deployment-demos/hardhat-demo
    yarn install

    This will install everything you need include hardhat for you.

    -

    Compile

    +

    Compile

    Compile your contract

    -
    yarn compile
    -

    Test

    +
    yarn compile
    +

    Test

    This will run the test script in test/Lock.ts

    -
    yarn test
    -

    Deploy

    +
    yarn test
    +

    Deploy

    Create a .env file following the example .env.example in the root directory. Change PRIVATE_KEY to your own account private key in the .env.

    And Change the network settings in the hardhat.config.ts file with the following information:

    -
     morphTestnet: {
    url: process.env.MORPH_TESTNET_URL || "",
    accounts:
    process.env.PRIVATE_KEY !== undefined ? [process.env.PRIVATE_KEY] : [],
    }
    +
     morphTestnet: {
    url: process.env.MORPH_TESTNET_URL || "",
    accounts:
    process.env.PRIVATE_KEY !== undefined ? [process.env.PRIVATE_KEY] : [],
    }

    Then run the following command to deploy the contract on the Morph Holesky Testnet. This will run the deployment script that set the initialing parameters, you can edit the script in scripts/deploy.ts

    -
    yarn deploy:morphTestnet
    -

    Verify your contracts on Morph Explorer

    +
    yarn deploy:morphTestnet
    +

    Verify your contracts on Morph Explorer

    To verify your contract through hardhat, you need to add the following Etherscan and Sourcify configs to your hardhat.config.js file:

    -
    module.exports = {
    networks: {
    morphTestnet: { ... }
    },
    etherscan: {
    apiKey: {
    morphTestnet: 'anything',
    },
    customChains: [
    {
    network: 'morphTestnet',
    chainId: 2810,
    urls: {
    apiURL: 'https://explorer-api-holesky.morphl2.io/api? ',
    browserURL: 'https://explorer-holesky.morphl2.io/',
    },
    },
    ],
    },
    };
    +
    module.exports = {
    networks: {
    morphTestnet: { ... }
    },
    etherscan: {
    apiKey: {
    morphTestnet: 'anything',
    },
    customChains: [
    {
    network: 'morphTestnet',
    chainId: 2810,
    urls: {
    apiURL: 'https://explorer-api-holesky.morphl2.io/api? ',
    browserURL: 'https://explorer-holesky.morphl2.io/',
    },
    },
    ],
    },
    };

    Then run the hardhat verify command to finish the verification

    -
    npx hardhat verify --network morphTestnet DEPLOYED_CONTRACT_ADDRESS <ConstructorParameter>
    +
    npx hardhat verify --network morphTestnet DEPLOYED_CONTRACT_ADDRESS <ConstructorParameter>

    For example

    -
    npx hardhat verify --network morphTestnet 0x8025985e35f1bAFfd661717f66fC5a434417448E '0.00001'
    +
    npx hardhat verify --network morphTestnet 0x8025985e35f1bAFfd661717f66fC5a434417448E '0.00001'

    Once succeed, you can check your contract and the deployment transaction on Morph Holesky Explorer

    -

    Deploy contracts with Foundry

    -

    Clone the repo

    -
    git clone https://github.com/morph-l2/morph-examples.git
    -

    Install Foundry

    -
    curl -L https://foundry.paradigm.xyz | bash
    foundryup
    +

    Deploy contracts with Foundry

    +

    Clone the repo

    +
    git clone https://github.com/morph-l2/morph-examples.git
    +

    Install Foundry

    +
    curl -L https://foundry.paradigm.xyz | bash
    foundryup

    Then go the right folder of our example:

    -
    cd contract-deployment-demos/foundry-demo
    -

    Compile

    -
    forge build
    -

    Deploy

    +
    cd contract-deployment-demos/foundry-demo
    +

    Compile

    +
    forge build
    +

    Deploy

    A Deployment script and use of environment variables has already been set up for you. You can view the script at script/Counter.s.sol

    Rename your .env.example file to .env and fill in your private key. The RPC URL has already been filled in along with the verifier URL.

    To use the variables in your .env file run the following command:

    -
    source .env
    +
    source .env

    You can now deploy to Morph with the following command:

    -
    forge script script/Counter.s.sol --rpc-url $RPC_URL --broadcast --private-key $DEPLOYER_PRIVATE_KEY --legacy
    +
    forge script script/Counter.s.sol --rpc-url $RPC_URL --broadcast --private-key $DEPLOYER_PRIVATE_KEY --legacy

    Adjust as needed for your own script names.

    -

    Verify

    +

    Verify

    Verification requires some flags passed to the normal verification script. You can verify using the command below:

    -
     forge verify-contract YourContractAddress Counter\
    --chain 2810 \
    --verifier-url $VERIFIER_URL \
    --verifier blockscout --watch
    +
     forge verify-contract YourContractAddress Counter\
    --chain 2810 \
    --verifier-url $VERIFIER_URL \
    --verifier blockscout --watch

    Once succeeded, you can check your contract and the deployment transaction on Morph Holesky Explorer.

    -

    Questions and Feedback

    -

    Thank you for participating in and developing on the Morph Holesky Testnet! If you encounter any issues, join our Discord and find us at #dev-support channel.

    +

    Questions and Feedback

    +

    Thank you for participating in and developing on the Morph Holesky Testnet! If you encounter any issues, join our Discord and find us at #dev-support channel.

    \ No newline at end of file diff --git a/build/docs/build-on-morph/developer-navigation-page/index.html b/build/docs/build-on-morph/developer-navigation-page/index.html index 7493de187..5815f9f63 100644 --- a/build/docs/build-on-morph/developer-navigation-page/index.html +++ b/build/docs/build-on-morph/developer-navigation-page/index.html @@ -3,23 +3,31 @@ -Developer Docs | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +Build on Morph | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    Developer Docs

    If you’re ready to build applications on Morph, you're in the right place.

    +

    Build on Morph

    If you’re ready to build applications on Morph, you're in the right place.

    For those who are regular users or visiting for the first time, we recommend starting with our For Users section to explore introductory content such as definitions, our vision, key concepts, and more.

    -

    devintro

    -

    What is Morph?

    +

    What is Morph?

    Morph is the first optimistic zkEVM Ethereum Layer 2 solution that is 100% EVM compatible. Building on Morph is just like building on Ethereum. If you’re experienced in Ethereum development, you'll find your existing code, tooling, and dependencies are fully compatible with Morph.

    -

    Getting Started

    +

    We provide a one-page for Morph integration resources if you want to get started quickly.

    + +

    Getting Started

    To help you get started, here’s a recommended navigation through our documentation:

    Fundamental Concepts: Start here to learn the core components of Morph, including Morph’s Modular Design, the Decentralized Sequencer Network, and the Responsive Validity Proof system.

    -

    Advanced Concepts: Dive deeper into topics such as understanding transaction costs on Morph and differences between Morph and Ethereum.

    +

    Developer Guides: Access comprehensive guides on verifying smart contracts, running a Morph node, deploying contracts, and more.

    +

    Developer Resources: Find detailed API methods, contract addresses and other useful developer resources.

    -

    Engage in Our Developer Community​

    -

    We're actively enhancing our network with more integrations and support infrastructure, progressing towards our Mainnet release. Join our growing developer community. You can find us on Discord or follow our progress on Twitter.

    + +

    Engage in Our Developer Community​

    +

    We're actively enhancing our network with more integrations and support infrastructure, progressing towards our Mainnet release. Join our growing developer community. You can find us on Discord or follow our progress on Twitter.

    +

    devintro

    \ No newline at end of file diff --git a/build/docs/build-on-morph/developer-resources/contracts/index.html b/build/docs/build-on-morph/developer-resources/contracts/index.html index 5a699fa6e..c7bef10b6 100644 --- a/build/docs/build-on-morph/developer-resources/contracts/index.html +++ b/build/docs/build-on-morph/developer-resources/contracts/index.html @@ -3,30 +3,34 @@ -Contract Addresses | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +Contract Addresses | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    Contract Addresses

    Morph Network Info

    -

    Morph Mainnet

    +

    Contract Addresses

    Morph Network Info

    +

    Morph Mainnet

    Network NameMorph MainnetEthereum Mainnet
    RPC URLhttps://rpc-quicknode.morphl2.iohttps://ethereum-rpc.publicnode.com/
    Chain ID28181
    Currency SymbolETHETH
    Block Explorer URLhttps://explorer.morphl2.io/https://etherscan.io/
    -

    Morph Holesky Testnet

    +

    Morph Holesky Testnet

    Network NameMorph Holesky TestnetEthereum Holesky Testnet
    RPC URLhttps://rpc-quicknode-holesky.morphl2.iohttps://ethereum-holesky-rpc.publicnode.com/
    Chain ID281017000
    Currency SymbolETHETH
    Block Explorer URLhttps://explorer-holesky.morphl2.io/https://holesky.etherscan.io/
    -

    Morph Mainnet Contracts

    -

    Main Contract

    -

    L1 Contract

    +

    Morph Mainnet Contracts

    +

    Main Contract

    +

    L1 Contract

    Staking: 0x0dc417f8af88388737c5053ff73f345f080543f7

    Rollup: 0x759894ced0e6af42c26668076ffa84d02e3cef60

    L1MessageQueueWithGasPriceOracle: 0x3931ade842f5bb8763164bdd81e5361dce6cc1ef

    L1CrossDomainMessenger: 0xdc71366effa760804dcfc3edf87fa2a6f1623304

    -

    L2 Contract

    +

    L2 Contract

    L2ToL1MessagePasser: 0x5300000000000000000000000000000000000001

    Sequencer: 0x5300000000000000000000000000000000000017

    Gov: 0x5300000000000000000000000000000000000004

    L2CrossDomainMessenger: 0x5300000000000000000000000000000000000007

    -

    Gateway

    -

    L1 Gateway

    +

    Gateway

    +

    L1 Gateway

    L1GatewayRouter: 0x7497756ada7e656ae9f00781af49fc0fd08f8a8a

    L1ETHGateway: 0x1c1ffb5828c3a48b54e8910f1c75256a498ade68

    L1WETHGateway: 0x788890ba6f105cca373c4ff01055cd34de01877f

    @@ -34,70 +38,77 @@

    L1 GatewayL1CustomERC20Gateway: 0xa534badd09b4c62b7b1c32c41df310aa17b52ef1

    L1ERC721Gateway: 0x5ae782c23a303c0d70ae697a0aee9eae9a5d77c4

    L1ERC1155Gateway: 0x7c9a3d9531692d057d496d04938bdb7d367e9765

    -

    L1USDCGateway: 0xc9045350712a1dcc3a74eca18bc985424bbe7535

    +

    L1USDCGateway: 0x2C8314f5AADa5D7a9D32eeFebFc43aCCAbe1b289

    EnforcedTxGateway: 0xc5fa3b8968c7fabeea2b530a20b88d0c2ed8abb7

    -

    L2 Gateway

    +

    L2 Gateway

    L2GatewayRouter: 0x5300000000000000000000000000000000000002

    L2StandardERC20Gateway: 0x5300000000000000000000000000000000000008

    L2ERC721Gateway: 0x5300000000000000000000000000000000000009

    -

    L2ERC1155Gateway: 0x530000000000000000000000000000000000000C

    +

    L2ERC1155Gateway: 0x530000000000000000000000000000000000000c

    +

    L2USDCGateway:0xc5e44E2fFe9523809146eD17D62bb382ECCf426B

    L2WETHGateway: 0x5300000000000000000000000000000000000010

    L2ETHGateway: 0x5300000000000000000000000000000000000006

    -

    Other Layer 2 Predeploys

    +

    Other Layer 2 Predeploys

    L2Staking: 0x5300000000000000000000000000000000000015

    -

    L2TxFeeVault: 0x530000000000000000000000000000000000000A

    +

    L2TxFeeVault: 0x530000000000000000000000000000000000000a

    L2CustomERC20Gateway: 0x5300000000000000000000000000000000000016

    -

    ProxyAdmin: 0x530000000000000000000000000000000000000B

    -

    MorphStandardERC20: 0x530000000000000000000000000000000000000D

    -

    MorphStandardERC20Factory: 0x530000000000000000000000000000000000000E

    -

    GasPriceOracle: 0x530000000000000000000000000000000000000F

    +

    ProxyAdmin: 0x530000000000000000000000000000000000000b

    +

    MorphStandardERC20: 0x530000000000000000000000000000000000000d

    +

    MorphStandardERC20Factory: 0x530000000000000000000000000000000000000e

    +

    GasPriceOracle: 0x530000000000000000000000000000000000000f

    L2WETH: 0x5300000000000000000000000000000000000011

    -

    Tokens

    -

    L1 Tokens

    +

    Tokens

    +

    L1 Tokens

    WETH: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2

    USDT: 0xdAC17F958D2ee523a2206206994597C13D831ec7

    USDC: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48

    DAI: 0x6B175474E89094C44Da98b954EedeAC495271d0F

    WBTC: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599

    -

    L2 Tokens

    +

    L2 Tokens

    WETH: 0x5300000000000000000000000000000000000011

    USDT: 0xc7D67A9cBB121b3b0b9c053DD9f469523243379A

    WBTC: 0x803DcE4D3f4Ae2e17AF6C51343040dEe320C149D

    -

    UDSC: 0x1199E23C0baE9710cCd9F645FA57794e5D469D06

    +

    USDC: 0xe34c91815d7fc18A9e2148bcD4241d0a5848b693

    DAI: 0xef8A24599229D002B28bA2F5C0eBdD3c0EFFbed4

    -

    Morph Holesky Contracts

    -
    tip

    Please not the following is the contract address of the Morph Holesky Testnet.

    -

    Main Contract

    -

    L1 Contract

    +

    weETH: 0x7DCC39B4d1C53CB31e1aBc0e358b43987FEF80f7

    +

    BGB: 0x55d1f1879969bdbB9960d269974564C58DBc3238

    +

    Morph Holesky Contracts

    +
    tip

    Please not the following is the contract address of the Morph Holesky Testnet.

    +

    Main Contract

    +

    L1 Contract

    Staking: 0x868dd5d1c268277e331b726bb438edde8221d389

    Rollup: 0xd8c5c541d56f59d65cf775de928ccf4a47d4985c

    L1MessageQueueWithGasPriceOracle: 0x778d1d9a4d8b6b9ade36d967a9ac19455ec3fd0b

    L1CrossDomainMessenger: 0xecc966ab425f3f5bd58085ce4ebdbf81d829126f

    -

    L2 Contract

    +

    L2 Contract

    L2ToL1MessagePasser: 0x5300000000000000000000000000000000000001

    L2Sequencer: 0x5300000000000000000000000000000000000003

    L2Gov: 0x5300000000000000000000000000000000000004

    L2Submitter: 0x5300000000000000000000000000000000000005

    L2CrossDomainMessenger: 0x5300000000000000000000000000000000000007

    -

    Gateway

    -

    L1 Gateway

    +

    L2 Tokens

    +

    L2USDT:0x9E12AD42c4E4d2acFBADE01a96446e48e6764B98

    +

    L2USDC:0xeA2610c28B4c5857689EAFa8b2116a617206d283

    +

    L2DAI:0xAa19d46626947C6E1E5F281aE835971579827DDC

    +

    Gateway

    +

    L1 Gateway

    L1GatewayRouter: 0xea593b730d745fb5fe01b6d20e6603915252c6bf

    L1ETHGateway: 0xcc3d455481967dc97346ef1771a112d7a14c8f12

    L1WETHGateway: 0xbbdb317b50313d96823eba0fc2c1d9e469dc1906

    L1StandardERC20Gateway: 0xb26dafdb434ae93e3b8efde4f0193934955d86cd

    -

    L2 Gateway

    +

    L2 Gateway

    L2GatewayRouter: 0x5300000000000000000000000000000000000002

    L2StandardERC20Gateway: 0x5300000000000000000000000000000000000008

    L2ERC721Gateway: 0x5300000000000000000000000000000000000009

    -

    L2ERC1155Gateway: 0x530000000000000000000000000000000000000C

    +

    L2ERC1155Gateway: 0x530000000000000000000000000000000000000c

    L2WETHGateway: 0x5300000000000000000000000000000000000010

    L2ETHGateway: 0x5300000000000000000000000000000000000006

    -

    Other Layer 2 Predeploys

    -

    L2TxFeeVault: 0x530000000000000000000000000000000000000A

    -

    ProxyAdmin: 0x530000000000000000000000000000000000000B

    -

    MorphStandardERC20: 0x530000000000000000000000000000000000000D

    -

    MorphStandardERC20Factory: 0x530000000000000000000000000000000000000E

    -

    GasPriceOracle: 0x530000000000000000000000000000000000000F

    -

    L2WETH: 0x5300000000000000000000000000000000000011

    +

    Other Layer 2 Predeploys

    +

    L2TxFeeVault: 0x530000000000000000000000000000000000000a

    +

    ProxyAdmin: 0x530000000000000000000000000000000000000b

    +

    MorphStandardERC20: 0x530000000000000000000000000000000000000d

    +

    MorphStandardERC20Factory: 0x530000000000000000000000000000000000000e

    +

    GasPriceOracle: 0x530000000000000000000000000000000000000f

    +

    L2WETH: 0x5300000000000000000000000000000000000011

    \ No newline at end of file diff --git a/build/docs/build-on-morph/developer-resources/dapp-examples-on-morph/index.html b/build/docs/build-on-morph/developer-resources/dapp-examples-on-morph/index.html index 87ec15ee9..a06ae8cc8 100644 --- a/build/docs/build-on-morph/developer-resources/dapp-examples-on-morph/index.html +++ b/build/docs/build-on-morph/developer-resources/dapp-examples-on-morph/index.html @@ -3,29 +3,33 @@ -Dapp Examples on Morph | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +Dapp Examples on Morph | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    Dapp Examples on Morph

    We provide multiple example Dapps for developers, built on our Morph starter template, deployed on the Morph Testnet, and accompanied by corresponding frontends.

    +

    Dapp Examples on Morph

    We provide multiple example Dapps for developers, built on our Morph starter template, deployed on the Morph Testnet, and accompanied by corresponding frontends.

    These examples are very helpful for developers to go through the entire development process on Morph. Below is a brief introduction of the example Dapps and tutorial links.

    -
    Morph Starter Template

    The Morph starter kit helps developers quickly and efficiently, build dApps on the Morph blockchain. It is a comprehensive template for building fullstack dApps.

    -

    Example Dapp: Building a Decentralized Hotel Booking System on Morph

    -

    Okido Finance

    +
    Morph Starter Template

    The Morph starter kit helps developers quickly and efficiently, build dApps on the Morph blockchain. It is a comprehensive template for building fullstack dApps.

    +

    Example Dapp: Building a Decentralized Hotel Booking System on Morph

    +

    Okido Finance

    Check the tutorial

    This guide walks you through the process of building a decentralized hotel booking system on the MorphL2 blockchain using Solidity smart contracts and a React & Wagmi front-end. This system allows hotel owners to add rooms, manage room availability, accept bookings, and receive reviews from guests.

    -

    Example Dapp: Building a fractionalized real-estate dApp

    -

    Okido Finance

    +

    Example Dapp: Building a fractionalized real-estate dApp

    +

    Okido Finance

    Check the tutorial

    Imagine being able to invest in a high-value real estate property without needing to shell out a huge amount of money upfront. Sounds pretty appealing, right? This is the magic of fractionalization. By dividing a property into smaller, more affordable shares, fractionalization makes it possible for just about anyone to get in on the real estate action. It’s like turning a luxury mansion into a bunch of reasonably priced slices that you can buy and sell easily, just like stocks.

    Our project today, Okido Finance, takes this idea and builds a decentralized application (DApp) around it. With Okido Finance, property owners can create shares of their real estate assets and investors can buy these shares using a custom ERC20 token. This not only democratizes real estate investment but also adds a layer of liquidity, making it easier to trade shares and get in or out of investments.

    In this tutorial, I’ll walk you through building the Okido Finance DApp step by step. We’ll start with setting up the development environment, move on to deploying smart contracts, and finish with designing a user-friendly UI.

    By the end, you’ll have a solid grasp of how to build a decentralized real estate fractionalization platform. Whether you’re looking to create something similar or just want to learn more about these technologies, you’ll be well-equipped to dive deeper into fractionalization. Let’s get started!

    -

    Query and Index Smart Contracts on Morph using Goldsky

    -

    Okido Finance

    +

    Query and Index Smart Contracts on Morph using Goldsky

    +

    Okido Finance

    Check the tutorial

    Picture this: you're a developer with a brand-new smart contract deployed on the Morph. Your next challenge is to efficiently query and retrieve on-chain data for your decentralized application (dApp). That's where subgraphs come in. Subgraphs offer a powerful and flexible way to index and query blockchain data, making it easy to build responsive and data-rich dApps.

    -

    In this tutorial, we'll walk through deploying a smart contract on the Morph chain and setting up a subgraph to query this contract. We’ll also introduce Goldsky, a tool that makes creating and managing subgraphs a breeze. Let’s get started and see what we can build together!

    +

    In this tutorial, we'll walk through deploying a smart contract on the Morph chain and setting up a subgraph to query this contract. We’ll also introduce Goldsky, a tool that makes creating and managing subgraphs a breeze. Let’s get started and see what we can build together!

    \ No newline at end of file diff --git a/build/docs/build-on-morph/developer-resources/how-to-run-a-morph-node/index.html b/build/docs/build-on-morph/developer-resources/how-to-run-a-morph-node/index.html index 395224888..09bdbb281 100644 --- a/build/docs/build-on-morph/developer-resources/how-to-run-a-morph-node/index.html +++ b/build/docs/build-on-morph/developer-resources/how-to-run-a-morph-node/index.html @@ -3,14 +3,18 @@ -How to Run a Morph Node | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +How to Run a Morph Node | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    How to Run a Morph Node

    Run a Morph Full Node

    +

    How to Run a Morph Node

    Run a Morph Full Node

    This guide outlines the steps to start a Morph node. The example assumes the home directory is ~/.morph

    -

    Hardware requirements

    +

    Hardware requirements

    Running the morph node requires 2 processes:geth and node.

    -
    tip

    Due to limitations in the current geth implementation, only archive mode is supported, meaning the storage size will continually increase with produced blocks.

    -

    Build executable binary

    -

    Clone morph

    -
    mkdir -p ~/.morph 
    cd ~/.morph
    git clone https://github.com/morph-l2/morph.git
    +
    tip

    Due to limitations in the current geth implementation, only archive mode is supported, meaning the storage size will continually increase with produced blocks.

    +

    Build executable binary

    +

    Clone morph

    +
    mkdir -p ~/.morph 
    cd ~/.morph
    git clone https://github.com/morph-l2/morph.git

    Currently, we use tag v0.2.0-beta as our beta version.

    -
    cd morph
    git checkout v0.2.0-beta
    -

    Build Geth

    +
    cd morph
    git checkout v0.2.0-beta
    +

    Build Geth

    Notice: You need C compiler to build geth

    -
    make nccc_geth
    -

    Build Node

    -
    cd ~/.morph/morph/node 
    make build
    -

    Sync from genesis block

    -

    Config Preparation

    +
    make nccc_geth
    +

    Build Node

    +
    cd ~/.morph/morph/node 
    make build
    +

    Sync from genesis block

    +

    Config Preparation

    Download the config files and make data dir

    -
    cd ~/.morph
    wget https://raw.githubusercontent.com/morph-l2/config-template/main/holesky/data.zip
    unzip data.zip
    +
    cd ~/.morph
    wget https://raw.githubusercontent.com/morph-l2/run-morph-node/main/holesky/data.zip
    unzip data.zip

    Create a shared secret with node

    -
    cd ~/.morph
    openssl rand -hex 32 > jwt-secret.txt
    -

    Script to start the process

    +
    cd ~/.morph
    openssl rand -hex 32 > jwt-secret.txt
    +

    Script to start the process

    Geth

    -
    ./morph/go-ethereum/build/bin/geth --morph-holesky \
    --datadir "./geth-data" \
    --http --http.api=web3,debug,eth,txpool,net,engine \
    --authrpc.addr localhost \
    --authrpc.vhosts="localhost" \
    --authrpc.port 8551 \
    --authrpc.jwtsecret=./jwt-secret.txt \
    --miner.gasprice="100000000" \
    --log.filename=./geth.log
    +
    ./morph/go-ethereum/build/bin/geth --morph-holesky \
    --datadir "./geth-data" \
    --http --http.api=web3,debug,eth,txpool,net,engine \
    --authrpc.addr localhost \
    --authrpc.vhosts="localhost" \
    --authrpc.port 8551 \
    --authrpc.jwtsecret=./jwt-secret.txt \
    --miner.gasprice="100000000" \
    --log.filename=./geth.log

    tail -f geth.log to check if the Geth is running properly, or you can also exeucte the below curl command to check if you are connected to the peer.

    -
    curl -X POST -H 'Content-Type: application/json' --data 
    '{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":74}'
    localhost:8545

    {"jsonrpc":"2.0","id":74,"result":"0x3"}
    +
    curl -X POST -H 'Content-Type: application/json' --data 
    '{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":74}'
    localhost:8545

    {"jsonrpc":"2.0","id":74,"result":"0x3"}

    Node

    -
    ./morph/node/build/bin/morphnode --home ./node-data \
    --l2.jwt-secret ./jwt-secret.txt \
    --l2.eth http://localhost:8545 \
    --l2.engine http://localhost:8551 \
    --log.filename ./node.log
    +
    ./morph/node/build/bin/morphnode --home ./node-data \
    --l2.jwt-secret ./jwt-secret.txt \
    --l2.eth http://localhost:8545 \
    --l2.engine http://localhost:8551 \
    --log.filename ./node.log

    tail -f node.log to check if the node is running properly, and you can also execute the command curl to check your node connection status.

    -
    curl http://localhost:26657/net_info

    {
    "jsonrpc": "2.0",
    "id": -1,
    "result": {
    "listening": true,
    "listeners": [
    "Listener(@)"
    ],
    "n_peers": "3",
    "peers": [
    {
    "node_info": {
    "protocol_version": {
    "p2p": "8",
    "block": "11",
    "app": "0"
    },
    "id": "0fb5ce425197a462a66de015ee5fbbf103835b8a",
    "listen_addr": "tcp://0.0.0.0:26656",
    "network": "chain-morph-holesky",
    "version": "0.37.0-alpha.1",
    "channels": "4020212223386061",
    "moniker": "morph-dataseed-node-1",
    "other": {
    "tx_index": "on",
    "rpc_address": "tcp://0.0.0.0:26657"
    }
    },
    "is_outbound": true,
    -

    Check sync status

    +
    curl http://localhost:26657/net_info

    {
    "jsonrpc": "2.0",
    "id": -1,
    "result": {
    "listening": true,
    "listeners": [
    "Listener(@)"
    ],
    "n_peers": "3",
    "peers": [
    {
    "node_info": {
    "protocol_version": {
    "p2p": "8",
    "block": "11",
    "app": "0"
    },
    "id": "0fb5ce425197a462a66de015ee5fbbf103835b8a",
    "listen_addr": "tcp://0.0.0.0:26656",
    "network": "chain-morph-holesky",
    "version": "0.37.0-alpha.1",
    "channels": "4020212223386061",
    "moniker": "morph-dataseed-node-1",
    "other": {
    "tx_index": "on",
    "rpc_address": "tcp://0.0.0.0:26657"
    }
    },
    "is_outbound": true,
    +

    Check sync status

    curl http://localhost:26657/status to check the sync status of the node

    -
    {
    "jsonrpc": "2.0",
    "id": -1,
    "result": {
    "node_info": {
    "protocol_version": {
    "p2p": "8",
    "block": "11",
    "app": "0"
    },
    "id": "b3f34dc2ce9c4fee5449426992941aee1e09670f",
    "listen_addr": "tcp://0.0.0.0:26656",
    "network": "chain-morph-holesky",
    "version": "0.37.0-alpha.1",
    "channels": "4020212223386061",
    "moniker": "my-morph-node",
    "other": {
    "tx_index": "on",
    "rpc_address": "tcp://0.0.0.0:26657"
    }
    },
    "sync_info": {
    "latest_block_hash": "71024385DDBEB7B554DB11FD2AE097ECBD99B2AF826C11B2A74F7172F2DEE5D2",
    "latest_app_hash": "",
    "latest_block_height": "2992",
    "latest_block_time": "2024-04-25T13:48:27.647889852Z",
    "earliest_block_hash": "C7A73D3907C6CA34B9DFA043FC6D4529A8EAEC8F059E100055653E46E63F6F8E",
    "earliest_app_hash": "",
    "earliest_block_height": "1",
    "earliest_block_time": "2024-04-25T09:06:30Z",
    "catching_up": false
    },
    "validator_info": {
    "address": "5FB3D3734640792F14B70E7A53FBBD39DB9787A8",
    "pub_key": {
    "type": "tendermint/PubKeyEd25519",
    "value": "rzN67ZJWsaLSGGpNj7HOWs8nrL5kr1n+w0OckWUCetw="
    },
    "voting_power": "0"
    }
    }
    }
    -

    The returned "catching_up" indicates whether the node is in sync or not. True means it is in sync. Meanwhile, the returned latest_block_height indicates the latest block height this node synced.

    +
    {
    "jsonrpc": "2.0",
    "id": -1,
    "result": {
    "node_info": {
    "protocol_version": {
    "p2p": "8",
    "block": "11",
    "app": "0"
    },
    "id": "b3f34dc2ce9c4fee5449426992941aee1e09670f",
    "listen_addr": "tcp://0.0.0.0:26656",
    "network": "chain-morph-holesky",
    "version": "0.37.0-alpha.1",
    "channels": "4020212223386061",
    "moniker": "my-morph-node",
    "other": {
    "tx_index": "on",
    "rpc_address": "tcp://0.0.0.0:26657"
    }
    },
    "sync_info": {
    "latest_block_hash": "71024385DDBEB7B554DB11FD2AE097ECBD99B2AF826C11B2A74F7172F2DEE5D2",
    "latest_app_hash": "",
    "latest_block_height": "2992",
    "latest_block_time": "2024-04-25T13:48:27.647889852Z",
    "earliest_block_hash": "C7A73D3907C6CA34B9DFA043FC6D4529A8EAEC8F059E100055653E46E63F6F8E",
    "earliest_app_hash": "",
    "earliest_block_height": "1",
    "earliest_block_time": "2024-04-25T09:06:30Z",
    "catching_up": false
    },
    "validator_info": {
    "address": "5FB3D3734640792F14B70E7A53FBBD39DB9787A8",
    "pub_key": {
    "type": "tendermint/PubKeyEd25519",
    "value": "rzN67ZJWsaLSGGpNj7HOWs8nrL5kr1n+w0OckWUCetw="
    },
    "voting_power": "0"
    }
    }
    }
    +

    The returned "catching_up" indicates whether the node is in sync or not. True means it is in sync. Meanwhile, the returned latest_block_height indicates the latest block height this node synced.

    \ No newline at end of file diff --git a/build/docs/build-on-morph/developer-resources/morph-json-rpc-api-methods/index.html b/build/docs/build-on-morph/developer-resources/morph-json-rpc-api-methods/index.html index dc76fdf01..e2c3ca9b5 100644 --- a/build/docs/build-on-morph/developer-resources/morph-json-rpc-api-methods/index.html +++ b/build/docs/build-on-morph/developer-resources/morph-json-rpc-api-methods/index.html @@ -3,21 +3,25 @@ -Morph JSON-RPC API Methods | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +Morph JSON-RPC API Methods | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    Morph JSON-RPC API Methods

    Most methods are similar to Ethereum's. For those methods, we recommend you visit Ethereum JSON-RPC API.

    +

    Morph JSON-RPC API Methods

    Most methods are similar to Ethereum's. For those methods, we recommend you visit Ethereum JSON-RPC API.

    This page lists some unique methods exclusive to Morph.

    -

    morph_getBlockByNumber

    +

    morph_getBlockByNumber

    Returns information about a block by block number. In addition, it returns more fields than the standard eth_getBlockByNumber, such as withdrawTrieRoot, batchHash, nextL1MsgIndex and rowConsumption.

    -

    Parameters

    +

    Parameters

    1. QUANTITY|TAG - integer of a block number, or the string "earliest", "latest", "pending", "safe" or "finalized", as in the default block parameter.
    2. Boolean - If true it returns the full transaction objects, if false only the hashes of the transactions.
    -

    Returns

    +

    Returns

    See JSON-RPC API | ethereum.org, and more fields showing as the blew

    • withdrawTrieRoot: DATA, 32 Bytes - the root of the withdraw trie, used to prove the users’ withdrawals.
    • @@ -25,20 +29,20 @@

      ReturnsExample

      -
      // request
      curl -X POST --data '{"jsonrpc":"2.0","method":"morph_getBlockByNumber","params":["0x1b4", true],"id":1}'

      // Result
      {
      "jsonrpc": "2.0",
      "id": 1,
      "result": {
      "batchHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
      "difficulty": "0x0",
      "extraData": "0x",
      "gasLimit": "0x989680",
      "gasUsed": "0x0",
      "hash": "0xbc979055d001fe70ed637edd20e918bc583c84c35372f4cdf04253ec34b99178",
      "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
      "miner": "0x0000000000000000000000000000000000000000",
      "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
      "nextL1MsgIndex": "0x0",
      "nonce": "0x0000000000000000",
      "number": "0x1b4",
      "parentHash": "0xff26c60bca2d08d9b0d17431a4c9d80d007dace61fb551bdf7c376d16bc77441",
      "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
      "rowConsumption": [
      {
      "name": "evm",
      "row_number": 2
      },
      {
      "name": "state",
      "row_number": 4
      },
      {
      "name": "bytecode",
      "row_number": 0
      },
      {
      "name": "copy",
      "row_number": 4
      },
      {
      "name": "keccak",
      "row_number": 1591
      },
      {
      "name": "tx",
      "row_number": 0
      },
      {
      "name": "rlp",
      "row_number": 0
      },
      {
      "name": "exp",
      "row_number": 150
      },
      {
      "name": "mod_exp",
      "row_number": 0
      },
      {
      "name": "pi",
      "row_number": 0
      },
      {
      "name": "poseidon",
      "row_number": 1222
      },
      {
      "name": "sig",
      "row_number": 0
      },
      {
      "name": "ecc",
      "row_number": 0
      },
      {
      "name": "mpt",
      "row_number": 101
      }
      ],
      "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
      "size": "0x1fe",
      "stateRoot": "0x1492cc1cebd586279388370e1184960e289d180eb867aa076fbad54aeb0a855b",
      "timestamp": "0x6619043f",
      "totalDifficulty": "0x0",
      "transactions": [],
      "transactionsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
      "uncles": [],
      "withdrawTrieRoot": "0x27ae5ba08d7291c96c8cbddcc148bf48a6d68c7974b94356f53754ef6171d757"
      }
      }
      -

      morph_getBlockByHash

      +

      Example

      +
      // request
      curl -X POST --data '{"jsonrpc":"2.0","method":"morph_getBlockByNumber","params":["0x1b4", true],"id":1}'

      // Result
      {
      "jsonrpc": "2.0",
      "id": 1,
      "result": {
      "batchHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
      "difficulty": "0x0",
      "extraData": "0x",
      "gasLimit": "0x989680",
      "gasUsed": "0x0",
      "hash": "0xbc979055d001fe70ed637edd20e918bc583c84c35372f4cdf04253ec34b99178",
      "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
      "miner": "0x0000000000000000000000000000000000000000",
      "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
      "nextL1MsgIndex": "0x0",
      "nonce": "0x0000000000000000",
      "number": "0x1b4",
      "parentHash": "0xff26c60bca2d08d9b0d17431a4c9d80d007dace61fb551bdf7c376d16bc77441",
      "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
      "rowConsumption": [
      {
      "name": "evm",
      "row_number": 2
      },
      {
      "name": "state",
      "row_number": 4
      },
      {
      "name": "bytecode",
      "row_number": 0
      },
      {
      "name": "copy",
      "row_number": 4
      },
      {
      "name": "keccak",
      "row_number": 1591
      },
      {
      "name": "tx",
      "row_number": 0
      },
      {
      "name": "rlp",
      "row_number": 0
      },
      {
      "name": "exp",
      "row_number": 150
      },
      {
      "name": "mod_exp",
      "row_number": 0
      },
      {
      "name": "pi",
      "row_number": 0
      },
      {
      "name": "poseidon",
      "row_number": 1222
      },
      {
      "name": "sig",
      "row_number": 0
      },
      {
      "name": "ecc",
      "row_number": 0
      },
      {
      "name": "mpt",
      "row_number": 101
      }
      ],
      "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
      "size": "0x1fe",
      "stateRoot": "0x1492cc1cebd586279388370e1184960e289d180eb867aa076fbad54aeb0a855b",
      "timestamp": "0x6619043f",
      "totalDifficulty": "0x0",
      "transactions": [],
      "transactionsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
      "uncles": [],
      "withdrawTrieRoot": "0x27ae5ba08d7291c96c8cbddcc148bf48a6d68c7974b94356f53754ef6171d757"
      }
      }
      +

      morph_getBlockByHash

      Returns information about a block by hash.

      -

      Parameters

      +

      Parameters

      • DATA, 32 Bytes - Hash of a block.
      • Boolean - If true it returns the full transaction objects, if false only the hashes of the transactions.
      -

      Returns

      +

      Returns

      See morph_getBlockByNumber returns

      -

      morph_estimateL1DataFee

      +

      morph_estimateL1DataFee

      Generates and returns an estimate of how much L1DataFee the transaction will cost.

      -

      Parameters

      +

      Parameters

      1. Object - TransactionArgs
      -

      Returns

      +

      Returns

      QUANTITY - integer of the current l1 data fee in wei.

      -

      Example

      -
      // Request
      curl -X POST --data '{"jsonrpc":"2.0","method":"morph_estimateL1DataFee","params":[{see above}],"id":1}'

      // Result
      {
      "id":1,
      "jsonrpc": "2.0",
      "result": "0x3f4e2160f00"
      }
      -

      morph_getNumSkippedTransactions

      +

      Example

      +
      // Request
      curl -X POST --data '{"jsonrpc":"2.0","method":"morph_estimateL1DataFee","params":[{see above}],"id":1}'

      // Result
      {
      "id":1,
      "jsonrpc": "2.0",
      "result": "0x3f4e2160f00"
      }
      +

      morph_getNumSkippedTransactions

      Get the number of the skipped transactions

      -

      Parameters

      +

      Parameters

      None

      -

      Returns

      +

      Returns

      Quantity - integer of the number of the skipped transactions

      -

      Example

      -
      // Request
      curl -X POST --data '{"jsonrpc":"2.0","method":"morph_getNumSkippedTransactions","params":[],"id":1}'

      // Result
      {
      "id":1,
      "jsonrpc": "2.0",
      "result": "0"
      }
      -

      morph_getSkippedTransactionHashes

      +

      Example

      +
      // Request
      curl -X POST --data '{"jsonrpc":"2.0","method":"morph_getNumSkippedTransactions","params":[],"id":1}'

      // Result
      {
      "id":1,
      "jsonrpc": "2.0",
      "result": "0"
      }
      +

      morph_getSkippedTransactionHashes

      Get a list of skipped transaction hashes between the two indices provided (inclusive)

      -

      Parameters

      +

      Parameters

      1. from index
      2. to index
      -

      Returns

      +

      Returns

      Arrays of transaction hashes

      -

      Example

      -
      // Request
      curl -X POST --data '{"jsonrpc":"2.0","method":"morph_getSkippedTransactionHashes","params":[0, 1],"id":1}'

      // Result
      {
      "id":1,
      "jsonrpc": "2.0",
      "result": [“0x….,”0x….]
      }

      -

      morph_getSkippedTransaction

      +

      Example

      +
      // Request
      curl -X POST --data '{"jsonrpc":"2.0","method":"morph_getSkippedTransactionHashes","params":[0, 1],"id":1}'

      // Result
      {
      "id":1,
      "jsonrpc": "2.0",
      "result": [“0x….,”0x….]
      }

      +

      morph_getSkippedTransaction

      Get a skipped transaction by its hash.

      -

      Parameters

      +

      Parameters

      DATA, 32 Bytes - Hash of a transaction.

      -

      Returns

      +

      Returns

      Object - a transaction object(see JSON-RPC API | ethereum.org), an some extended fields:

      • sender: DATA, 20 Bytes - address of the sender.
      • @@ -92,13 +96,13 @@

        ReturnsExample

        -
        // Request
        curl -X POST --data '{"jsonrpc":"2.0","method":"morph_getSkippedTransaction","params":[“0x…”],"id":1}'

        // Result
        {
        "id":1,
        "jsonrpc": "2.0",
        "result": {
        "from": "0x59b79a4fc3e0e1646b254fb6804d8f5fa8fae7e0",
        "gas": "0x33450",
        "gasPrice": "0x0",
        "hash": "0x74e13cc35fbeffc9747dd3a5a191b2d62939ee1d1c24651adb89b470f9cf0a36",
        "input": "0x8ef1332e00000000000000000000000082c74cd310438d4938799af4c2a29587284a2ca700000000000000000000000053000000000000000000000000000000000000060000000000000000000000000000000000000000000000000de0b6b3a7640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a4232e8748000000000000000000000000f1d598fd5f8367be41b0761696e643ac092b313e000000000000000000000000f1d598fd5f8367be41b0761696e643ac092b313e0000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
        "nonce": "0x0",
        "to": "0x5300000000000000000000000000000000000007",
        "transactionIndex": "0x0",
        "value": "0x0",
        "type": "0x7e",
        "v": "0x0",
        "r": "0x0",
        "s": "0x0",
        "sender": "0x59b79a4fc3e0e1646b254fb6804d8f5fa8fae7e0",
        "queueIndex": "0x0",
        “skipReason”: “row consumption overflow”, "skippedBlockHash":"0x61411498b0c241895d44c1bf9a9448ae8584bf434246d680980e8a5edf9ce27c",
        "skippedBlockNumber": "0x382e",
        “”
        }
        }
        -

        morph_getSkippedTransactionHashes

        +

        Example

        +
        // Request
        curl -X POST --data '{"jsonrpc":"2.0","method":"morph_getSkippedTransaction","params":[“0x…”],"id":1}'

        // Result
        {
        "id":1,
        "jsonrpc": "2.0",
        "result": {
        "from": "0x59b79a4fc3e0e1646b254fb6804d8f5fa8fae7e0",
        "gas": "0x33450",
        "gasPrice": "0x0",
        "hash": "0x74e13cc35fbeffc9747dd3a5a191b2d62939ee1d1c24651adb89b470f9cf0a36",
        "input": "0x8ef1332e00000000000000000000000082c74cd310438d4938799af4c2a29587284a2ca700000000000000000000000053000000000000000000000000000000000000060000000000000000000000000000000000000000000000000de0b6b3a7640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a4232e8748000000000000000000000000f1d598fd5f8367be41b0761696e643ac092b313e000000000000000000000000f1d598fd5f8367be41b0761696e643ac092b313e0000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
        "nonce": "0x0",
        "to": "0x5300000000000000000000000000000000000007",
        "transactionIndex": "0x0",
        "value": "0x0",
        "type": "0x7e",
        "v": "0x0",
        "r": "0x0",
        "s": "0x0",
        "sender": "0x59b79a4fc3e0e1646b254fb6804d8f5fa8fae7e0",
        "queueIndex": "0x0",
        “skipReason”: “row consumption overflow”, "skippedBlockHash":"0x61411498b0c241895d44c1bf9a9448ae8584bf434246d680980e8a5edf9ce27c",
        "skippedBlockNumber": "0x382e",
        “”
        }
        }
        +

        morph_getSkippedTransactionHashes

        Get the batches by index

        -

        Parameters

        +

        Parameters

        Quantity - integer of the index of batch

        -

        Returns

        +

        Returns

        Object - RollupBatch

        1. version: quantity - the version of the batch
        2. @@ -118,16 +122,16 @@

          ReturnsExample

          -
          // Request
          curl -X POST --data '{"jsonrpc":"2.0","method":"morph_getRollupBatchByIndex","params":[1],"id":1}'

          //Result
          {
          "jsonrpc": "2.0",
          "id": 1,
          "result": {
          "version": 0,
          "hash": "0x559c75fb09451ef19968b6c17c2ed3b3f431ab496d29d0a611970bf3e377ed4f",
          "parentBatchHeader": "0x000000000000000000000000000000000000000000000000008b1cfd86e7ac16004ef7aae3e693402764e10471efc9a67c3051a44b2d5a5ad2010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440140000000000000000000000000000000000000000000000000000000000000000",
          "chunks": [
          "0x010000000000000001000000006623829f0000000000000000000000000000000000000000000000000000000000000000000000000098968000000000"
          ],
          "skippedL1MessageBitmap": "0x",
          "prevStateRoot": "0x232ce5fc696e7033ec630174d4c78aa157cc13ffba01aba5154bb900ae2b61b3",
          "postStateRoot": "0x232ce5fc696e7033ec630174d4c78aa157cc13ffba01aba5154bb900ae2b61b3",
          "withdrawRoot": "0x27ae5ba08d7291c96c8cbddcc148bf48a6d68c7974b94356f53754ef6171d757",
          "sidecar": {
          "Blobs": [
          [...]
          ],
          "Commitments": [
          [...]
          ],
          "Proofs": [
          [...]
          ]
          },
          "signatures": [
          {
          "version": 0,
          "signer": 0,
          "signerPubKey": "0x00000000000000000000000000000000095ad465c2895ee825c7d4f1b60a18734db57d4108369e47c6e3a94ee15846f825c06dad5d98f503bd31ece1d9f94b11000000000000000000000000000000000c5d6ba04bc9b9674dd2acbfc5caed3976c1b8be2ec90a03d78dffe924648b4fba82225aff43c744310c6a60185b75ac000000000000000000000000000000000fce6be001c871a11b9db1c6c15f0a6999de5646941a74486206dc784f0b3ffe11799212f3f44ef754b4a0f1ecf85639000000000000000000000000000000000b2f06634e5ea719682c30911c94dfb560f0b7656b5c34a871ea035e3fe7b041885420f8fe1e251f1cce5cdb7514869e",
          "signature": "0x079ff817623be61e3dc48ad755020d3eb37e47697e97394df3707248e5e923d8cb92cc2c788e2e19eb21d878224e3e2a023170f091b979dbdc5ac47e95a1e3e6edf5a91279b3c89e871927370abeefd43430b561b640d91f0f474db8e871f05f"
          },
          {
          "version": 0,
          "signer": 1,
          "signerPubKey": "0x0000000000000000000000000000000010173aeac4ff317e8e60493f962b91dbd27614e1f6594e17d18a02968bd1fd698b6703092ab8622cd22d6948d9421156000000000000000000000000000000000801aea15697ab4d7a808be45377e4f0d2f54857fdc04031e476402ff16c66a6cbcc5f09a84bf85400c8afbabed006600000000000000000000000000000000015fc71b2c4e81148274e6169c9c9aace8c34fa6030547650242b6c32527dd23a996416e32640bce4f495a0afabc7dbb900000000000000000000000000000000088c4a0dffccc96bce47aef0e176b129457a5f3ae1651b132ddb418e9f7b5850a38c6fec1be6d169eb88dc1619648bf4",
          "signature": "0x05784fcf2c9b50b2503282a464106ce6bad4d29798869d2d24dae047eba48662ef66b54f193a4a0aad511cee57b8fc960b44e478cfc0c021a92dba44495ffa9237f4cf4f9865bb8fb95cee9bb32f2b283940bce6d8f4fdfe89bec0c186ecc429"
          },
          {
          "version": 0,
          "signer": 2,
          "signerPubKey": "0x0000000000000000000000000000000003fd9468a8ceffc1b696874517777ef8bfdc9a1bade95c480ee2624903e648c1caf01c65de5b4fda8876a3a0e8d9f0890000000000000000000000000000000004c02f3609a0f61d12fe737dcbb047d5253bd3ff905b55c0e0f932b476fd77d172a58b72ef0f506407870988dd6038220000000000000000000000000000000017fa5765899f60f7a58f8ccdaaa295cde55992231710672692ba6a71a4faa9572f728f438ded65576a570d57e19fd304000000000000000000000000000000001226138813bde98af3464ed03649d8c731bc4e5cb3d26b53bf7483f4105d18bbb3f19e23905119e156e7d003d2fd125c",
          "signature": "0x17d127f711bbfd578f3a9d6c897f6eb4c109f2b12ec16c7976c2146325b718ac06713ecfd168b1abd60d5c4d84b8c75105019a522a96f9d28974dafab640e146abc29322e5550bdb606bcf768c1d7de468fa42e09f2c806bfbedcffd6cfa652c"
          },
          {
          "version": 0,
          "signer": 3,
          "signerPubKey": "0x00000000000000000000000000000000109bf02a2636c0dc1968b0a50db77251eb090c3e9f51e2a2bc60c4ac72213f41f01f0a34e92c2e0625bd62e28e27edb500000000000000000000000000000000139969bd92522113c0615659874d1fae311ad8152d0584c7b57ffc14927067486dcf86413c5684fccc1163ee2d45c1c1000000000000000000000000000000000f172603f70a0730d100ad6d28bde477195987062e8ade83b82d093935d956ff20ca768c26263577b094f1cb756adc400000000000000000000000000000000010dde3acca00b4ff1b4976500a8f97e92246f43f78cadc95c4993dfc4f4c501c33d42a4bf52587f4931287b59623149c",
          "signature": "0x053a7119c0fa920e94c8a1f32441537509f654a673af02179a01ff2c7ac6dee24b22c2f93da4b4a37bb08e2115ef097e00038d0cabdeec2ae1838aa30cb62bff8e528ac200eff0d69fbe8848646972dbb09f4cf3a06c62be0c5e314f25bdbd68"
          }
          ]
          }
          }

          -

          morph_GetBlockTraceByNumberOrHash

          +

          Example

          +
          // Request
          curl -X POST --data '{"jsonrpc":"2.0","method":"morph_getRollupBatchByIndex","params":[1],"id":1}'

          //Result
          {
          "jsonrpc": "2.0",
          "id": 1,
          "result": {
          "version": 0,
          "hash": "0x559c75fb09451ef19968b6c17c2ed3b3f431ab496d29d0a611970bf3e377ed4f",
          "parentBatchHeader": "0x000000000000000000000000000000000000000000000000008b1cfd86e7ac16004ef7aae3e693402764e10471efc9a67c3051a44b2d5a5ad2010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440140000000000000000000000000000000000000000000000000000000000000000",
          "chunks": [
          "0x010000000000000001000000006623829f0000000000000000000000000000000000000000000000000000000000000000000000000098968000000000"
          ],
          "skippedL1MessageBitmap": "0x",
          "prevStateRoot": "0x232ce5fc696e7033ec630174d4c78aa157cc13ffba01aba5154bb900ae2b61b3",
          "postStateRoot": "0x232ce5fc696e7033ec630174d4c78aa157cc13ffba01aba5154bb900ae2b61b3",
          "withdrawRoot": "0x27ae5ba08d7291c96c8cbddcc148bf48a6d68c7974b94356f53754ef6171d757",
          "sidecar": {
          "Blobs": [
          [...]
          ],
          "Commitments": [
          [...]
          ],
          "Proofs": [
          [...]
          ]
          },
          "signatures": [
          {
          "version": 0,
          "signer": 0,
          "signerPubKey": "0x00000000000000000000000000000000095ad465c2895ee825c7d4f1b60a18734db57d4108369e47c6e3a94ee15846f825c06dad5d98f503bd31ece1d9f94b11000000000000000000000000000000000c5d6ba04bc9b9674dd2acbfc5caed3976c1b8be2ec90a03d78dffe924648b4fba82225aff43c744310c6a60185b75ac000000000000000000000000000000000fce6be001c871a11b9db1c6c15f0a6999de5646941a74486206dc784f0b3ffe11799212f3f44ef754b4a0f1ecf85639000000000000000000000000000000000b2f06634e5ea719682c30911c94dfb560f0b7656b5c34a871ea035e3fe7b041885420f8fe1e251f1cce5cdb7514869e",
          "signature": "0x079ff817623be61e3dc48ad755020d3eb37e47697e97394df3707248e5e923d8cb92cc2c788e2e19eb21d878224e3e2a023170f091b979dbdc5ac47e95a1e3e6edf5a91279b3c89e871927370abeefd43430b561b640d91f0f474db8e871f05f"
          },
          {
          "version": 0,
          "signer": 1,
          "signerPubKey": "0x0000000000000000000000000000000010173aeac4ff317e8e60493f962b91dbd27614e1f6594e17d18a02968bd1fd698b6703092ab8622cd22d6948d9421156000000000000000000000000000000000801aea15697ab4d7a808be45377e4f0d2f54857fdc04031e476402ff16c66a6cbcc5f09a84bf85400c8afbabed006600000000000000000000000000000000015fc71b2c4e81148274e6169c9c9aace8c34fa6030547650242b6c32527dd23a996416e32640bce4f495a0afabc7dbb900000000000000000000000000000000088c4a0dffccc96bce47aef0e176b129457a5f3ae1651b132ddb418e9f7b5850a38c6fec1be6d169eb88dc1619648bf4",
          "signature": "0x05784fcf2c9b50b2503282a464106ce6bad4d29798869d2d24dae047eba48662ef66b54f193a4a0aad511cee57b8fc960b44e478cfc0c021a92dba44495ffa9237f4cf4f9865bb8fb95cee9bb32f2b283940bce6d8f4fdfe89bec0c186ecc429"
          },
          {
          "version": 0,
          "signer": 2,
          "signerPubKey": "0x0000000000000000000000000000000003fd9468a8ceffc1b696874517777ef8bfdc9a1bade95c480ee2624903e648c1caf01c65de5b4fda8876a3a0e8d9f0890000000000000000000000000000000004c02f3609a0f61d12fe737dcbb047d5253bd3ff905b55c0e0f932b476fd77d172a58b72ef0f506407870988dd6038220000000000000000000000000000000017fa5765899f60f7a58f8ccdaaa295cde55992231710672692ba6a71a4faa9572f728f438ded65576a570d57e19fd304000000000000000000000000000000001226138813bde98af3464ed03649d8c731bc4e5cb3d26b53bf7483f4105d18bbb3f19e23905119e156e7d003d2fd125c",
          "signature": "0x17d127f711bbfd578f3a9d6c897f6eb4c109f2b12ec16c7976c2146325b718ac06713ecfd168b1abd60d5c4d84b8c75105019a522a96f9d28974dafab640e146abc29322e5550bdb606bcf768c1d7de468fa42e09f2c806bfbedcffd6cfa652c"
          },
          {
          "version": 0,
          "signer": 3,
          "signerPubKey": "0x00000000000000000000000000000000109bf02a2636c0dc1968b0a50db77251eb090c3e9f51e2a2bc60c4ac72213f41f01f0a34e92c2e0625bd62e28e27edb500000000000000000000000000000000139969bd92522113c0615659874d1fae311ad8152d0584c7b57ffc14927067486dcf86413c5684fccc1163ee2d45c1c1000000000000000000000000000000000f172603f70a0730d100ad6d28bde477195987062e8ade83b82d093935d956ff20ca768c26263577b094f1cb756adc400000000000000000000000000000000010dde3acca00b4ff1b4976500a8f97e92246f43f78cadc95c4993dfc4f4c501c33d42a4bf52587f4931287b59623149c",
          "signature": "0x053a7119c0fa920e94c8a1f32441537509f654a673af02179a01ff2c7ac6dee24b22c2f93da4b4a37bb08e2115ef097e00038d0cabdeec2ae1838aa30cb62bff8e528ac200eff0d69fbe8848646972dbb09f4cf3a06c62be0c5e314f25bdbd68"
          }
          ]
          }
          }

          +

          morph_GetBlockTraceByNumberOrHash

          It replays the block and returns the structured blockTrace for rollers.

          -

          Parameters

          +

          Parameters

          1. QUANTITY|TAG - integer of a block number, or the string "earliest", "latest", "pending", "safe" or "finalized", as in the default block parameter. Or DATA, 32 Bytes - Hash of a block.
          2. tracerConfig(optional), see debug Namespace | go-ethereum
          -

          Example

          -
          // Request
          {"jsonrpc":"2.0","method":"morph_getBlockTraceByNumberOrHash","params":["latest"],"id":67}

          // Result
          {
          "jsonrpc": "2.0",
          "id": 67,
          "result": {
          "chainID": 53077,
          "version": "5.2.0-mainnet",
          "coinbase": {
          "address": "0xfabb0ac9d68b0b445fb7357272ff202c5651694a",
          "nonce": 0,
          "balance": "0x2000000000000000000000000000000000000000000000000006b49161ba10",
          "keccakCodeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
          "poseidonCodeHash": "0x2098f5fb9e239eab3ceac3f27b81e481dc3124d55ffed523a839ee8446b64864",
          "codeSize": 0
          },
          "header": {
          "parentHash": "0xa2b3ee7a3718baeb1b460bc9a479838532c184129d0238b342e1bc9430e15961",
          "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
          "miner": "0x0000000000000000000000000000000000000000",
          "stateRoot": "0x1492cc1cebd586279388370e1184960e289d180eb867aa076fbad54aeb0a855b",
          "transactionsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
          "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
          "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
          "difficulty": "0x0",
          "number": "0x31",
          "gasLimit": "0x989680",
          "gasUsed": "0x0",
          "timestamp": "0x6618fa6a",
          "extraData": "0x",
          "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
          "nonce": "0x0000000000000000",
          "nextL1MsgIndex": "0x0",
          "batchHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
          "baseFeePerGas": null,
          "withdrawalsRoot": null,
          "blobGasUsed": null,
          "excessBlobGas": null,
          "parentBeaconBlockRoot": null,
          "hash": "0x65645773fa2056771753878cdf5a1280dff36756096e8f9c1cf51fe66690a448"
          },
          "transactions": [],
          "storageTrace": {
          "rootBefore": "0x1492cc1cebd586279388370e1184960e289d180eb867aa076fbad54aeb0a855b",
          "rootAfter": "0x1492cc1cebd586279388370e1184960e289d180eb867aa076fbad54aeb0a855b",
          "proofs": {
          "0x5300000000000000000000000000000000000001": [
          "0x09261068d5568cdf6020d6b6703b831fbc4c5928019dcc23606eceaa4cb4befd3a22bd9a05e5f4619cebb743688e2bb2510352fa7b64cee7d6c947e1c8655b3e88",
          "0x0912cea39ac19eee30407d6760f267dcaa3456c6ab30a2d7285e1ae726debdc3a228bc075d0a3a84f79e301293ac8c4188d5e58e3a30a49ca058d77784ec477d6c",
          "0x092a1073697a898cbfc740c3c327cc3bcc1517b23dd5a44ea7f7e5975a55a615790e69dfcd0c8346b28ff2dffa8db5d0c5b7ed8291eab83be0292051c2dd9a55bc",
          "0x0927f8c131313ff2ce0d551273c407fd6e94e5d9f644eab09c4c20b13e00fb5a4b1e00b9701c7f2ac25be7e3fe8ad00ce18f642d07188ff1aacc6d7a1fc44987b5",
          "0x090296736b61c7a9c43b7260c2f652d1bc941b882c0a1e71a9b8d86657cc0b9d8e1b6b72e48fe7cfc89ae526ae345245d7f6871db82148a8a0c1c9cf992e177ba2",
          "0x090a6feef711af23824583c2bcd54147c2991287ca1fbad2cbb0e9ac2f42dc0c2d1b510d4e26002d7f33e82092a7c28f26ac6cf3f2349eb23e4374ad31f3e289d0",
          "0x091a8fc20731feea420de908b0d66e7c53398f53ce5d76054cf3d0e4747ba1896222d288ea2a9d771a19771658abf5a64fd503f4ed277aa8d6f779137a88ea1c8d",
          "0x091628b91a861616a64807781ae6aaa549dae9555ef1454a85df052398404f44690f386bb59d106d7a27ff2df1de738c3fae5cf8307f84e07ac6957e3c42fa3f5e",
          "0x09220b163279be211a426832f5ff47e0ecadb5bd5eaaf0d62189998fde4e14e62913696e7ffd560b4bf7df760cbfdc330a8c5e7cf15b4e2f60fb9146fd28fe2db7",
          "0x08150feb81fe1639286c75adb93e5467d36ad52d9ff00e0c706bc5345f6dcd49500000000000000000000000000000000000000000000000000000000000000000",
          "0x081cb430cbc5dd11f62a713fb3656184085386104dc53fc135fb3c56dba49670500000000000000000000000000000000000000000000000000000000000000000",
          "0x060c320ff8f6c3907ae6df62a7fe70e2be093390bd246197d5f56b6bce56f513f812fac8f51e3812914c097147217411381b9b2dad76963ef63c261885d3a49223",
          "0x0427cfcbd2fe87474008e199ef5bff09273803bbf38032c75a36a7726b3c88f8a205080000000000000000000000000000000000000000000000000aec000000000000000000000000000000000000000000000000000000000000000000000000000000002198e2c16011cd18ef5be82557ea4552a16cc88ed8026d68fc38a18776550fa944107d7c70e67e04d35d77455d5755c94d4897196e4ea9a341c1a6d864a6d4d518d32c9790b7656cb1991e831f76e6d65151cbd1c05aef8cfa7d369ad2076f8400",
          "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449"
          ],
          "0x530000000000000000000000000000000000000f": [
          "0x09261068d5568cdf6020d6b6703b831fbc4c5928019dcc23606eceaa4cb4befd3a22bd9a05e5f4619cebb743688e2bb2510352fa7b64cee7d6c947e1c8655b3e88",
          "0x0912cea39ac19eee30407d6760f267dcaa3456c6ab30a2d7285e1ae726debdc3a228bc075d0a3a84f79e301293ac8c4188d5e58e3a30a49ca058d77784ec477d6c",
          "0x0910b680ab891bca41519a50437acf0fd6001d3843132362201baeecfefe64861d004b217e8efd3e9ff7f15214f53868836cd5341e524a6862cf599a2c91e066e4",
          "0x092bc917a3803350b7b4b99e33f5612886fe67ae2346b7b8a80c4f33ea2b2143c5157889ebd8bd189e158f8e315bf0e81eeaade2de06d9514962a676c2b5c43fe6",
          "0x0923373510953f88897d7fcfd22182f41afbc558d2f862f437a31d1919ce2e34c925c888335ad923fc91289b73b7cb65de69d93146389a6af856490d8578203517",
          "0x092ea32b06c112526e73d5c4828866500f096d35e79c13d7c1f7aa42afce901bd618bb82398f0bc28770139185439bf42dea1f543e8a0a266399ba43a3dd60f463",
          "0x09199e7116f18fc4121b627c11b0ca83bbb70b204098c01db84cd2c27ec3416bd4002ea098b20a57201744454a787c20550c1ffa4145ab218c28906ba3df5ea6cb",
          "0x0923bfab6f7b9cc20bae8ca8989ad45df9625cf0c14ee54257ffd31b2593b8385f0861f83d52b30f3b4ea0dbf9aa1b95e8864f2b2032249d6fa43ba22be66e5e82",
          "0x0609fd578e322ce608e81c29d820eca5e2d610bf211aa40fbfdfc7bd1327c9c6432a868ae99ff40d43cff3f28ff0655bf467eaa89e3d3a1493203e4abb26099b3b",
          "0x0418a86f98026d1a55f6fee616f04d51be16c033651ffaafb0514287ec067d04e805080000000000000000000000000000000000000000000000000aec00000000000000000000000000000000000000000000000000000000000000000000000000000000025f5484cf6758b2d9e10b66230e7ed93fd790931c579d1583b40a25c29b3cc944107d7c70e67e04d35d77455d5755c94d4897196e4ea9a341c1a6d864a6d4d518d32c9790b7656cb1991e831f76e6d65151cbd1c05aef8cfa7d369ad2076f8420530000000000000000000000000000000000000f000000000000000000000000",
          "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449"
          ],
          "0xFABB0ac9d68B0B445fB7357272Ff202C5651694a": [
          "0x09261068d5568cdf6020d6b6703b831fbc4c5928019dcc23606eceaa4cb4befd3a22bd9a05e5f4619cebb743688e2bb2510352fa7b64cee7d6c947e1c8655b3e88",
          "0x09132e097dde889d85b8b3309a827f0496c58979f869fe9827851d59f3af8d3bad1db74244979778c4e7c6b56496b5a3f1ee84cd42acacbc6ae3842deb5332b101",
          "0x0919474ec6b34f96f735c336cc161ed84fdd3a683fa201b518af5c2c1626f02f4612a08d77db2b9b67c38d89ed19f9ca59dadbd1699d27829f985020f6f3432959",
          "0x090dc9f8dd06d98c5a78af9836fc75823e4e2b0c95085c36dc33b8c35f5fc224d319e43044e7ac03d516f20d38f68682109407871d5f07f080c59857789fad1e46",
          "0x0907bc083c80445c99e7239f960beabcf360f7a6999ade44323b8401e0ec6842b80c789c2f71e21b35f96a71c66a774edac37ba18b809b8122d9000fbf0f8ac74b",
          "0x091e9ddabce6463c4843a7f43ce562b40bd7cc778a539486f6739bf7daf6f14bdf2da1168d26e898c81e03ba275f3474d4172c1f936d272114b87a486ae25a0c7e",
          "0x092ebed3e1476b235ef7ee7d5c160d7738aee3a9ecf02754975430203dbe05b7ce1f81e74d1f8a355b7dda2b293a8833c0926df34b6ab6516de484a7c682123e3b",
          "0x0700000000000000000000000000000000000000000000000000000000000000000bca6f26c452ec72dc90f8ac79855df88d3b88ce77a5c4ac472eea9ef7b619ae",
          "0x0824eb7acc6f05bd88d0aecfb7e170edc0f99384a54657916103d91fad99bf01030000000000000000000000000000000000000000000000000000000000000000",
          "0x072449731363c43de43d2516f39791c43a3be1e83edc3432352d81d2d1384a946e159ad10b4c89ff16157cc364c81f6039eeea9a8eb87e4b4700249219e71cc3ef",
          "0x0403d2c88868dc8b5f7994604147a8246c48cc905235de980c42c3e78f351f00c5050800000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000006b49161ba100000000000000000000000000000000000000000000000000000000000000000c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4702098f5fb9e239eab3ceac3f27b81e481dc3124d55ffed523a839ee8446b6486420fabb0ac9d68b0b445fb7357272ff202c5651694a000000000000000000000000",
          "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449"
          ]
          },
          "storageProofs": {
          "0x5300000000000000000000000000000000000001": {
          "0x0000000000000000000000000000000000000000000000000000000000000021": [
          "0x0825bcd8ed4a7e39c0f0e835761cda36131dd34f16de95765d2216d997923a52f60e38bf5d7d592ab89df92d87f260b8529d9c466b936b42ad8fbfe576bf97b200",
          "0x06216372aa3165a29ee67494a5a9680358be92c254cc5724949e4d52742ba8d57f02a40b5614637fca2783d673559f035f5f5a0588ee27d164bb5375568493200a",
          "0x042f683d080c393f5fb2ade2190fd56e8a5e8fa26533acdea8cce25caa236027cc0101000027ae5ba08d7291c96c8cbddcc148bf48a6d68c7974b94356f53754ef6171d75700",
          "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449"
          ]
          },
          "0x530000000000000000000000000000000000000f": {
          "0x0000000000000000000000000000000000000000000000000000000000000001": [
          "0x09224baa919e1495600105d8a4446f80cabd9a915d7556e0b5d2956a3ad01e96862b531affe57e7f49ddcfef93ff839a215de0865c985188f99c61838f366e2bbe",
          "0x091eb325ae1568060f3957cc990d35e5ef48b7b2bc7979151083abe2d68aabc812162b4d479ff13f2af3f0cfaadc6bccc8622dd980f83c7014e947f50577eedaba",
          "0x08015c4fc60a3c6160762783cfc0da7e9d0518e56f0f4f236b7666e1afde43c8f60e867960e703abfccf265c16aceb5c2a092c39248e00fa04f717cf3ca38dfe9e",
          "0x080782addd8b48a93860ab4cb45e80c6cc869c1288f09d52cb7dec1f6aab62deb70000000000000000000000000000000000000000000000000000000000000000",
          "0x0700000000000000000000000000000000000000000000000000000000000000000f35c10e1893b6065c8ce8ba23fcd841bb168eb35643ca124118a4e44668fab2",
          "0x080487bd50c628c019d7858418000d1393427df64c9c103a4229f7b6cb3cdf5ae60000000000000000000000000000000000000000000000000000000000000000",
          "0x0700000000000000000000000000000000000000000000000000000000000000001046b31bcd31548fa80d0a9fb9fae45e61112d689f6b9c82958033c0787f1f94",
          "0x0805b5be5c8d36bd01ef9c3d10f3d994da611bc1484e9e48f69d2224efeb811b320000000000000000000000000000000000000000000000000000000000000000",
          "0x081ebc02f6986209f10fc7d04ba0c4ef196d75ad0a22e786fc7cf789f591e9b26f0000000000000000000000000000000000000000000000000000000000000000",
          "0x0700000000000000000000000000000000000000000000000000000000000000002680dd0a6ed49fc1faf7d4ef23a8328de46b8a4c1d86e6553f4940e394673978",
          "0x0628658ea3cbfa933d0e4041f9000bcc3393a3536913008ef6e1837ba7053bdec1156a0960a84fa4287f66d18b9c39ab9d403fa6b6dddd126f47758aadcb82e122",
          "0x0426049ba6de63003492eb078a01a8aa4f4a0e67f28f0955c2eba9101d5d2eea5001010000000000000000000000000000000000000000000000000000000000000000000700",
          "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449"
          ],
          "0x0000000000000000000000000000000000000000000000000000000000000002": [
          "0x09224baa919e1495600105d8a4446f80cabd9a915d7556e0b5d2956a3ad01e96862b531affe57e7f49ddcfef93ff839a215de0865c985188f99c61838f366e2bbe",
          "0x091eb325ae1568060f3957cc990d35e5ef48b7b2bc7979151083abe2d68aabc812162b4d479ff13f2af3f0cfaadc6bccc8622dd980f83c7014e947f50577eedaba",
          "0x08015c4fc60a3c6160762783cfc0da7e9d0518e56f0f4f236b7666e1afde43c8f60e867960e703abfccf265c16aceb5c2a092c39248e00fa04f717cf3ca38dfe9e",
          "0x04020953ad52de135367a1ba2629636216ed5174cce5629d11b5d97fe733f07dcc0101000000000000000000000000000000000000000000000000000000000000000029d7200000000000000000000000000000000000000000000000000000000000000002",
          "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449"
          ],
          "0x0000000000000000000000000000000000000000000000000000000000000003": [
          "0x09224baa919e1495600105d8a4446f80cabd9a915d7556e0b5d2956a3ad01e96862b531affe57e7f49ddcfef93ff839a215de0865c985188f99c61838f366e2bbe",
          "0x07000000000000000000000000000000000000000000000000000000000000000014a36870c64d2edad5a210b41e5bdfd73e7f4201161a755c434a621ffe103cc8",
          "0x061c3181dc54d9c120fdc034e9c12d47d19f07bdeb049e492e0e7c5c9d7fe19a4d0e38bf5d7d592ab89df92d87f260b8529d9c466b936b42ad8fbfe576bf97b200",
          "0x0406c50541f08911ad149aa545dd3d606f86ee63c751a795c7d57f0d3f85e6bdeb01010000000000000000000000000000000000000000000000000000000000174876e800200000000000000000000000000000000000000000000000000000000000000003",
          "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449"
          ]
          }
          }
          },
          "executionResults": [],
          "withdraw_trie_root": "0x27ae5ba08d7291c96c8cbddcc148bf48a6d68c7974b94356f53754ef6171d757",
          "startL1QueueIndex": 0
          }
          }
    +

    Example

    +
    // Request
    {"jsonrpc":"2.0","method":"morph_getBlockTraceByNumberOrHash","params":["latest"],"id":67}

    // Result
    {
    "jsonrpc": "2.0",
    "id": 67,
    "result": {
    "chainID": 53077,
    "version": "5.2.0-mainnet",
    "coinbase": {
    "address": "0xfabb0ac9d68b0b445fb7357272ff202c5651694a",
    "nonce": 0,
    "balance": "0x2000000000000000000000000000000000000000000000000006b49161ba10",
    "keccakCodeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
    "poseidonCodeHash": "0x2098f5fb9e239eab3ceac3f27b81e481dc3124d55ffed523a839ee8446b64864",
    "codeSize": 0
    },
    "header": {
    "parentHash": "0xa2b3ee7a3718baeb1b460bc9a479838532c184129d0238b342e1bc9430e15961",
    "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
    "miner": "0x0000000000000000000000000000000000000000",
    "stateRoot": "0x1492cc1cebd586279388370e1184960e289d180eb867aa076fbad54aeb0a855b",
    "transactionsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
    "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
    "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
    "difficulty": "0x0",
    "number": "0x31",
    "gasLimit": "0x989680",
    "gasUsed": "0x0",
    "timestamp": "0x6618fa6a",
    "extraData": "0x",
    "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
    "nonce": "0x0000000000000000",
    "nextL1MsgIndex": "0x0",
    "batchHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
    "baseFeePerGas": null,
    "withdrawalsRoot": null,
    "blobGasUsed": null,
    "excessBlobGas": null,
    "parentBeaconBlockRoot": null,
    "hash": "0x65645773fa2056771753878cdf5a1280dff36756096e8f9c1cf51fe66690a448"
    },
    "transactions": [],
    "storageTrace": {
    "rootBefore": "0x1492cc1cebd586279388370e1184960e289d180eb867aa076fbad54aeb0a855b",
    "rootAfter": "0x1492cc1cebd586279388370e1184960e289d180eb867aa076fbad54aeb0a855b",
    "proofs": {
    "0x5300000000000000000000000000000000000001": [
    "0x09261068d5568cdf6020d6b6703b831fbc4c5928019dcc23606eceaa4cb4befd3a22bd9a05e5f4619cebb743688e2bb2510352fa7b64cee7d6c947e1c8655b3e88",
    "0x0912cea39ac19eee30407d6760f267dcaa3456c6ab30a2d7285e1ae726debdc3a228bc075d0a3a84f79e301293ac8c4188d5e58e3a30a49ca058d77784ec477d6c",
    "0x092a1073697a898cbfc740c3c327cc3bcc1517b23dd5a44ea7f7e5975a55a615790e69dfcd0c8346b28ff2dffa8db5d0c5b7ed8291eab83be0292051c2dd9a55bc",
    "0x0927f8c131313ff2ce0d551273c407fd6e94e5d9f644eab09c4c20b13e00fb5a4b1e00b9701c7f2ac25be7e3fe8ad00ce18f642d07188ff1aacc6d7a1fc44987b5",
    "0x090296736b61c7a9c43b7260c2f652d1bc941b882c0a1e71a9b8d86657cc0b9d8e1b6b72e48fe7cfc89ae526ae345245d7f6871db82148a8a0c1c9cf992e177ba2",
    "0x090a6feef711af23824583c2bcd54147c2991287ca1fbad2cbb0e9ac2f42dc0c2d1b510d4e26002d7f33e82092a7c28f26ac6cf3f2349eb23e4374ad31f3e289d0",
    "0x091a8fc20731feea420de908b0d66e7c53398f53ce5d76054cf3d0e4747ba1896222d288ea2a9d771a19771658abf5a64fd503f4ed277aa8d6f779137a88ea1c8d",
    "0x091628b91a861616a64807781ae6aaa549dae9555ef1454a85df052398404f44690f386bb59d106d7a27ff2df1de738c3fae5cf8307f84e07ac6957e3c42fa3f5e",
    "0x09220b163279be211a426832f5ff47e0ecadb5bd5eaaf0d62189998fde4e14e62913696e7ffd560b4bf7df760cbfdc330a8c5e7cf15b4e2f60fb9146fd28fe2db7",
    "0x08150feb81fe1639286c75adb93e5467d36ad52d9ff00e0c706bc5345f6dcd49500000000000000000000000000000000000000000000000000000000000000000",
    "0x081cb430cbc5dd11f62a713fb3656184085386104dc53fc135fb3c56dba49670500000000000000000000000000000000000000000000000000000000000000000",
    "0x060c320ff8f6c3907ae6df62a7fe70e2be093390bd246197d5f56b6bce56f513f812fac8f51e3812914c097147217411381b9b2dad76963ef63c261885d3a49223",
    "0x0427cfcbd2fe87474008e199ef5bff09273803bbf38032c75a36a7726b3c88f8a205080000000000000000000000000000000000000000000000000aec000000000000000000000000000000000000000000000000000000000000000000000000000000002198e2c16011cd18ef5be82557ea4552a16cc88ed8026d68fc38a18776550fa944107d7c70e67e04d35d77455d5755c94d4897196e4ea9a341c1a6d864a6d4d518d32c9790b7656cb1991e831f76e6d65151cbd1c05aef8cfa7d369ad2076f8400",
    "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449"
    ],
    "0x530000000000000000000000000000000000000f": [
    "0x09261068d5568cdf6020d6b6703b831fbc4c5928019dcc23606eceaa4cb4befd3a22bd9a05e5f4619cebb743688e2bb2510352fa7b64cee7d6c947e1c8655b3e88",
    "0x0912cea39ac19eee30407d6760f267dcaa3456c6ab30a2d7285e1ae726debdc3a228bc075d0a3a84f79e301293ac8c4188d5e58e3a30a49ca058d77784ec477d6c",
    "0x0910b680ab891bca41519a50437acf0fd6001d3843132362201baeecfefe64861d004b217e8efd3e9ff7f15214f53868836cd5341e524a6862cf599a2c91e066e4",
    "0x092bc917a3803350b7b4b99e33f5612886fe67ae2346b7b8a80c4f33ea2b2143c5157889ebd8bd189e158f8e315bf0e81eeaade2de06d9514962a676c2b5c43fe6",
    "0x0923373510953f88897d7fcfd22182f41afbc558d2f862f437a31d1919ce2e34c925c888335ad923fc91289b73b7cb65de69d93146389a6af856490d8578203517",
    "0x092ea32b06c112526e73d5c4828866500f096d35e79c13d7c1f7aa42afce901bd618bb82398f0bc28770139185439bf42dea1f543e8a0a266399ba43a3dd60f463",
    "0x09199e7116f18fc4121b627c11b0ca83bbb70b204098c01db84cd2c27ec3416bd4002ea098b20a57201744454a787c20550c1ffa4145ab218c28906ba3df5ea6cb",
    "0x0923bfab6f7b9cc20bae8ca8989ad45df9625cf0c14ee54257ffd31b2593b8385f0861f83d52b30f3b4ea0dbf9aa1b95e8864f2b2032249d6fa43ba22be66e5e82",
    "0x0609fd578e322ce608e81c29d820eca5e2d610bf211aa40fbfdfc7bd1327c9c6432a868ae99ff40d43cff3f28ff0655bf467eaa89e3d3a1493203e4abb26099b3b",
    "0x0418a86f98026d1a55f6fee616f04d51be16c033651ffaafb0514287ec067d04e805080000000000000000000000000000000000000000000000000aec00000000000000000000000000000000000000000000000000000000000000000000000000000000025f5484cf6758b2d9e10b66230e7ed93fd790931c579d1583b40a25c29b3cc944107d7c70e67e04d35d77455d5755c94d4897196e4ea9a341c1a6d864a6d4d518d32c9790b7656cb1991e831f76e6d65151cbd1c05aef8cfa7d369ad2076f8420530000000000000000000000000000000000000f000000000000000000000000",
    "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449"
    ],
    "0xFABB0ac9d68B0B445fB7357272Ff202C5651694a": [
    "0x09261068d5568cdf6020d6b6703b831fbc4c5928019dcc23606eceaa4cb4befd3a22bd9a05e5f4619cebb743688e2bb2510352fa7b64cee7d6c947e1c8655b3e88",
    "0x09132e097dde889d85b8b3309a827f0496c58979f869fe9827851d59f3af8d3bad1db74244979778c4e7c6b56496b5a3f1ee84cd42acacbc6ae3842deb5332b101",
    "0x0919474ec6b34f96f735c336cc161ed84fdd3a683fa201b518af5c2c1626f02f4612a08d77db2b9b67c38d89ed19f9ca59dadbd1699d27829f985020f6f3432959",
    "0x090dc9f8dd06d98c5a78af9836fc75823e4e2b0c95085c36dc33b8c35f5fc224d319e43044e7ac03d516f20d38f68682109407871d5f07f080c59857789fad1e46",
    "0x0907bc083c80445c99e7239f960beabcf360f7a6999ade44323b8401e0ec6842b80c789c2f71e21b35f96a71c66a774edac37ba18b809b8122d9000fbf0f8ac74b",
    "0x091e9ddabce6463c4843a7f43ce562b40bd7cc778a539486f6739bf7daf6f14bdf2da1168d26e898c81e03ba275f3474d4172c1f936d272114b87a486ae25a0c7e",
    "0x092ebed3e1476b235ef7ee7d5c160d7738aee3a9ecf02754975430203dbe05b7ce1f81e74d1f8a355b7dda2b293a8833c0926df34b6ab6516de484a7c682123e3b",
    "0x0700000000000000000000000000000000000000000000000000000000000000000bca6f26c452ec72dc90f8ac79855df88d3b88ce77a5c4ac472eea9ef7b619ae",
    "0x0824eb7acc6f05bd88d0aecfb7e170edc0f99384a54657916103d91fad99bf01030000000000000000000000000000000000000000000000000000000000000000",
    "0x072449731363c43de43d2516f39791c43a3be1e83edc3432352d81d2d1384a946e159ad10b4c89ff16157cc364c81f6039eeea9a8eb87e4b4700249219e71cc3ef",
    "0x0403d2c88868dc8b5f7994604147a8246c48cc905235de980c42c3e78f351f00c5050800000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000006b49161ba100000000000000000000000000000000000000000000000000000000000000000c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4702098f5fb9e239eab3ceac3f27b81e481dc3124d55ffed523a839ee8446b6486420fabb0ac9d68b0b445fb7357272ff202c5651694a000000000000000000000000",
    "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449"
    ]
    },
    "storageProofs": {
    "0x5300000000000000000000000000000000000001": {
    "0x0000000000000000000000000000000000000000000000000000000000000021": [
    "0x0825bcd8ed4a7e39c0f0e835761cda36131dd34f16de95765d2216d997923a52f60e38bf5d7d592ab89df92d87f260b8529d9c466b936b42ad8fbfe576bf97b200",
    "0x06216372aa3165a29ee67494a5a9680358be92c254cc5724949e4d52742ba8d57f02a40b5614637fca2783d673559f035f5f5a0588ee27d164bb5375568493200a",
    "0x042f683d080c393f5fb2ade2190fd56e8a5e8fa26533acdea8cce25caa236027cc0101000027ae5ba08d7291c96c8cbddcc148bf48a6d68c7974b94356f53754ef6171d75700",
    "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449"
    ]
    },
    "0x530000000000000000000000000000000000000f": {
    "0x0000000000000000000000000000000000000000000000000000000000000001": [
    "0x09224baa919e1495600105d8a4446f80cabd9a915d7556e0b5d2956a3ad01e96862b531affe57e7f49ddcfef93ff839a215de0865c985188f99c61838f366e2bbe",
    "0x091eb325ae1568060f3957cc990d35e5ef48b7b2bc7979151083abe2d68aabc812162b4d479ff13f2af3f0cfaadc6bccc8622dd980f83c7014e947f50577eedaba",
    "0x08015c4fc60a3c6160762783cfc0da7e9d0518e56f0f4f236b7666e1afde43c8f60e867960e703abfccf265c16aceb5c2a092c39248e00fa04f717cf3ca38dfe9e",
    "0x080782addd8b48a93860ab4cb45e80c6cc869c1288f09d52cb7dec1f6aab62deb70000000000000000000000000000000000000000000000000000000000000000",
    "0x0700000000000000000000000000000000000000000000000000000000000000000f35c10e1893b6065c8ce8ba23fcd841bb168eb35643ca124118a4e44668fab2",
    "0x080487bd50c628c019d7858418000d1393427df64c9c103a4229f7b6cb3cdf5ae60000000000000000000000000000000000000000000000000000000000000000",
    "0x0700000000000000000000000000000000000000000000000000000000000000001046b31bcd31548fa80d0a9fb9fae45e61112d689f6b9c82958033c0787f1f94",
    "0x0805b5be5c8d36bd01ef9c3d10f3d994da611bc1484e9e48f69d2224efeb811b320000000000000000000000000000000000000000000000000000000000000000",
    "0x081ebc02f6986209f10fc7d04ba0c4ef196d75ad0a22e786fc7cf789f591e9b26f0000000000000000000000000000000000000000000000000000000000000000",
    "0x0700000000000000000000000000000000000000000000000000000000000000002680dd0a6ed49fc1faf7d4ef23a8328de46b8a4c1d86e6553f4940e394673978",
    "0x0628658ea3cbfa933d0e4041f9000bcc3393a3536913008ef6e1837ba7053bdec1156a0960a84fa4287f66d18b9c39ab9d403fa6b6dddd126f47758aadcb82e122",
    "0x0426049ba6de63003492eb078a01a8aa4f4a0e67f28f0955c2eba9101d5d2eea5001010000000000000000000000000000000000000000000000000000000000000000000700",
    "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449"
    ],
    "0x0000000000000000000000000000000000000000000000000000000000000002": [
    "0x09224baa919e1495600105d8a4446f80cabd9a915d7556e0b5d2956a3ad01e96862b531affe57e7f49ddcfef93ff839a215de0865c985188f99c61838f366e2bbe",
    "0x091eb325ae1568060f3957cc990d35e5ef48b7b2bc7979151083abe2d68aabc812162b4d479ff13f2af3f0cfaadc6bccc8622dd980f83c7014e947f50577eedaba",
    "0x08015c4fc60a3c6160762783cfc0da7e9d0518e56f0f4f236b7666e1afde43c8f60e867960e703abfccf265c16aceb5c2a092c39248e00fa04f717cf3ca38dfe9e",
    "0x04020953ad52de135367a1ba2629636216ed5174cce5629d11b5d97fe733f07dcc0101000000000000000000000000000000000000000000000000000000000000000029d7200000000000000000000000000000000000000000000000000000000000000002",
    "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449"
    ],
    "0x0000000000000000000000000000000000000000000000000000000000000003": [
    "0x09224baa919e1495600105d8a4446f80cabd9a915d7556e0b5d2956a3ad01e96862b531affe57e7f49ddcfef93ff839a215de0865c985188f99c61838f366e2bbe",
    "0x07000000000000000000000000000000000000000000000000000000000000000014a36870c64d2edad5a210b41e5bdfd73e7f4201161a755c434a621ffe103cc8",
    "0x061c3181dc54d9c120fdc034e9c12d47d19f07bdeb049e492e0e7c5c9d7fe19a4d0e38bf5d7d592ab89df92d87f260b8529d9c466b936b42ad8fbfe576bf97b200",
    "0x0406c50541f08911ad149aa545dd3d606f86ee63c751a795c7d57f0d3f85e6bdeb01010000000000000000000000000000000000000000000000000000000000174876e800200000000000000000000000000000000000000000000000000000000000000003",
    "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449"
    ]
    }
    }
    },
    "executionResults": [],
    "withdraw_trie_root": "0x27ae5ba08d7291c96c8cbddcc148bf48a6d68c7974b94356f53754ef6171d757",
    "startL1QueueIndex": 0
    }
    }
    \ No newline at end of file diff --git a/build/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node.htm/index.html b/build/docs/build-on-morph/developer-resources/node-operation/full-node/run-in-docker.htm/index.html similarity index 64% rename from build/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node.htm/index.html rename to build/docs/build-on-morph/developer-resources/node-operation/full-node/run-in-docker.htm/index.html index ed97c8fed..b91d31b13 100644 --- a/build/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node.htm/index.html +++ b/build/docs/build-on-morph/developer-resources/node-operation/full-node/run-in-docker.htm/index.html @@ -2,10 +2,10 @@ - - + + \ No newline at end of file diff --git a/build/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node.html/index.html b/build/docs/build-on-morph/developer-resources/node-operation/full-node/run-in-docker.html/index.html similarity index 64% rename from build/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node.html/index.html rename to build/docs/build-on-morph/developer-resources/node-operation/full-node/run-in-docker.html/index.html index ed97c8fed..b91d31b13 100644 --- a/build/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node.html/index.html +++ b/build/docs/build-on-morph/developer-resources/node-operation/full-node/run-in-docker.html/index.html @@ -2,10 +2,10 @@ - - + + \ No newline at end of file diff --git a/build/docs/build-on-morph/developer-resources/node-operation/full-node/run-in-docker/index.html b/build/docs/build-on-morph/developer-resources/node-operation/full-node/run-in-docker/index.html new file mode 100644 index 000000000..689848b4e --- /dev/null +++ b/build/docs/build-on-morph/developer-resources/node-operation/full-node/run-in-docker/index.html @@ -0,0 +1,79 @@ + + + + + +Run a full node with docker | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + + + +
    Skip to main content

    Run a full node with docker

    This guide will help you start a full node running in the docker container using run-morph-node

    +

    Quick Start

    +
    note

    The instructions outlined below detail the procedure for running a full node on the mainnet. To set up and operate a Holesky node, you need to follow the tutorial on sync node from snapshot.

    +
      +
    1. Clone the dockerfile repository
    2. +
    +
    git clone https://github.com/morph-l2/run-morph-node.git
    +
      +
    1. Run the following command
    2. +
    +
    cd morph-node
    make run-node
    +

    The command make run-node takes the ../mainnet as your node's Home directory by default. There will be two folders in the Home directory named geth-data and node-data, serving as data directories for the execution client and consensus client of the morph ndoe, respectively.

    +

    This command will also generate the secret-jwt.txt file under Home directory for the authentication during RPC calls between the execution client and consensus client.

    +

    Advanced Usage

    +

    With the Quick Start guide above, you can quickly start a node using the default configuration files. However, we also support customizing the node's data directory and parameter settings.

    +

    Customizing Data Directory

    +

    The host directory paths that are mounted by the Docker container are specified in the morph-node/.env file.

    +
    morph-node/.env
    // HOME folder for morph node
    MORPH_HOME=../mainnet
    // Flag indicates the network for execution client.
    MORPH_FLAG=morph
    // Location of the jwt file for the authentication between clients
    JWT_SECRET_FILE=${MORPH_HOME}/jwt-secret.txt
    // The entrypoint shell script for start execution client
    GETH_ENTRYPOINT_FILE=./entrypoint-geth.sh
    // The snapshot name for Morph node
    MAINNET_SNAPSHOT_NAME=snapshot-20241218-1

    ......
    +

    You have the flexibility to customize the directory paths as per your requirements.

    +

    Please note that if you have customized the HOME directory of your node, you need to copy the necessary configuration files to this directory. Specifically, you should copy the node-data and geth-data from ./mainnet to your HOME directory.

    +
    note

    For running a testnet node, the morph-node/.env_holesky file should be used instead of the morph-node/.env file.

    +

    Customizing parameters

    +

    The default configuration required for mainnet node startup is located in the ./mainnet directory, while the files under ./holesky directory is used for testnet node startup.

    +
    └── mainnet
    ├── geth-data
    │   └── static-nodes.json
    └── node-data
    ├── config
    │   ├── config.toml
    │   └── genesis.json
    └── data

    // for testnet nodes
    └── holesky
    ├── geth-data
    │   └── static-nodes.json
    └── node-data
    ├── config
    │   ├── config.toml
    │   └── genesis.json
    └── data
    +

    If you wish to modify the Geth startup command, you can do so by editing the ./morph-node/entrypoint-geth.sh file. For adjustments to the Tendermint-related configuration parameters, you should modify the node-data/config/config.toml file.

    +

    Sync node from snapshot

    +

    We suggest starting your node sync from a snapshot to speed up the process of syncing your node to the latest state.

    +

    Clone the dockerfile repository

    +
    git clone https://github.com/morph-l2/run-morph-node.git
    +

    Acquire the snapshot you need

    +

    The morph-node/.env configuration file in the repository you just cloned is designed for setting up the Morph node on the mainnet. By default, it is pre-configured to use the latest snapshot.

    +

    If you need a historical snapshot, you must manually update the SNAPSHOT_NAME in the morph-node/.env file. (Note: For the testnet, the corresponding file is morph-node/.env_holesky.)

    +
      +
    • +

      Fetch historical snapshot(Optional):

      +

      The historical snapshots are recorded in snapshot-information

      +
      // ...

      MAINNET_SNAPSHOT_NAME={your expected snapshot name}

      // ...
      +
    • +
    • +

      Execute download and decompress the snapshot for your network:

      +

      Run the following command to download and decompress the snapshot for your network:

      +

      For mainnet:

      +
      cd ./morph-node
      make download-and-decompress-mainnet-snapshot
      +

      For testnet:

      +
      cd ./morph-node
      make download-and-decompress-holesky-snapshot
      +

      The command will assist you in downloading and decompressing the snapshot archive.

      +
    • +
    +

    Set up the snapshot data

    +

    After downloading, locate the snapshot by placing the decompressed data files in the correct directory specified by the MORPH_HOME path in your .env file. Ensure the data files align with the node's expected structure to allow seamless synchronization.

    +

    For example, if the snapshot folder is named snapshot-20241218-1,

    +
      +
    • move the directory snapshot-20241218-1/geth to the ${MORPH_HOME}/geth-data directory
    • +
    • move the contents from snapshot-20241218-1/data to the ${NODE_DATA_DIR}/data directory.
    • +
    +
    mv ./morph-node/snapshot-20241218-1/geth ${MORPH_HOME}/geth-data
    mv ./morph-node/snapshot-20241218-1/data/* ${MORPH_HOME}/node-data/data
    +

    The folder structure will be like

    +
    └── ${MORPH_HOME}
    ├── geth-data // data directory for geth
    │   └── static-nodes.json
    │   └── geth // directory from snapshot/geth
    └── node-data // data directory for node
    ├── config
    │   ├── config.toml
    │   └── genesis.json
    └── data // data directory from snapshot/node
    +

    4. Run the Node

    +

    With the snapshot and configuration files ready, navigate to the morph-node folder under your cloned repository, and start the node using the provided command

    +
    make run-node
    +

    For testnet, run

    +
    make run-holesky-node
    + + \ No newline at end of file diff --git a/build/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-validator-node.htm/index.html b/build/docs/build-on-morph/developer-resources/node-operation/full-node/run-on-host.htm/index.html similarity index 56% rename from build/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-validator-node.htm/index.html rename to build/docs/build-on-morph/developer-resources/node-operation/full-node/run-on-host.htm/index.html index 4bb8bcf2a..de725a984 100644 --- a/build/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-validator-node.htm/index.html +++ b/build/docs/build-on-morph/developer-resources/node-operation/full-node/run-on-host.htm/index.html @@ -2,10 +2,10 @@ - - + + \ No newline at end of file diff --git a/build/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-validator-node.html/index.html b/build/docs/build-on-morph/developer-resources/node-operation/full-node/run-on-host.html/index.html similarity index 56% rename from build/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-validator-node.html/index.html rename to build/docs/build-on-morph/developer-resources/node-operation/full-node/run-on-host.html/index.html index 4bb8bcf2a..de725a984 100644 --- a/build/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-validator-node.html/index.html +++ b/build/docs/build-on-morph/developer-resources/node-operation/full-node/run-on-host.html/index.html @@ -2,10 +2,10 @@ - - + + \ No newline at end of file diff --git a/build/docs/build-on-morph/developer-resources/node-operation/full-node/run-on-host/index.html b/build/docs/build-on-morph/developer-resources/node-operation/full-node/run-on-host/index.html new file mode 100644 index 000000000..425dcaf39 --- /dev/null +++ b/build/docs/build-on-morph/developer-resources/node-operation/full-node/run-on-host/index.html @@ -0,0 +1,79 @@ + + + + + +Run a full node from source | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + + + +
    Skip to main content

    Run a full node from source

    This guide outlines the steps to start a Morph node. The example assumes the home directory is ~/.morph

    +

    Hardware requirements

    +

    Running the morph node requires 2 processes: geth and node.

    +
      +
    • +

      Geth:the Morph execution layer which needs to meet the requirements as below

      +
        +
      • Fast CPU with 4+ cores
      • +
      • 32GB+ RAM
      • +
      • High-performance SSD with at least 1TB of free space
      • +
      • 25+ MBit/sec download Internet service
      • +
      +
    • +
    • +

      Node:the Morph consensus layer embedded tendermint which needs to meet the tendermint hardware requirements.

      +
    • +
    +
    tip

    According to limitations of the current geth implementation, we only support archive mode for launching a Geth. So the storage size of Geth will constantly increase along with blocks produced.

    +

    Build executable binary

    +

    Clone morph

    +
    mkdir -p ~/.morph 
    cd ~/.morph
    git clone https://github.com/morph-l2/morph.git
    +

    Next, you need to check out a release version. You can find the available release versions on the Morph Releases page. It is recommended to use the latest release version.

    +
    cd morph
    git checkout ${RELEASE_VERSION}
    +

    Build Geth

    +

    Notice: You need C compiler to build geth

    +
    make geth
    +

    Build Node

    +
    cd ~/.morph/morph/node 
    make build
    +

    Config Preparation

    +
      +
    1. Download the config files and make data dir
    2. +
    +
    cd ~/.morph

    ## mainnet
    wget https://raw.githubusercontent.com/morph-l2/run-morph-node/main/mainnet/data.zip

    ## testnet
    wget https://raw.githubusercontent.com/morph-l2/run-morph-node/main/holesky/data.zip

    unzip data.zip
    +
      +
    1. Create a shared secret with node
    2. +
    +
    cd ~/.morph
    openssl rand -hex 32 > jwt-secret.txt
    +

    Start Node

    +

    Mainnet nodes support synchronization from either the genesis block or a snapshot block, while testnet nodes only support synchronization from snapshots.

    +

    Sync from snapshot(Recommended)

    +

    You should build the binary and prepare the config files in the above steps first, then download the snapshot.

    +

    Download snapshot

    +

    Download the latest snapshot corresponding to either the mainnet or testnet network.

    +

    A complete record of historical snapshots is available here. Below is an example of how to download a snapshot

    +
    ## mainnet
    wget -q --show-progress https://snapshot.morphl2.io/mainnet/${SNAPSHOT_NAME}.tar.gz
    tar -xzvf ${SNAPSHOT_NAME}.tar.gz

    ## holesky
    wget -q --show-progress https://snapshot.morphl2.io/holesky/${SNAPSHOT_NAME}.tar.gz
    tar -xzvf ${SNAPSHOT_NAME}.tar.gz
    +

    Extracting snapshot data to the data directory your node points to

    +
    mv ${SNAPSHOT_NAME}/geth geth-data
    mv ${SNAPSHOT_NAME}/data node-data
    +

    Start execution client

    +
    Script for starting mainnet geth
    ./morph/go-ethereum/build/bin/geth --morph \
    --datadir "./geth-data" \
    --http --http.api=web3,debug,eth,txpool,net,engine \
    --authrpc.addr localhost \
    --authrpc.vhosts="localhost" \
    --authrpc.port 8551 \
    --authrpc.jwtsecret=./jwt-secret.txt \
    --log.filename=./geth.log

    +
    note

    For testnet, using --morph-holesky instead

    +

    tail -f geth.log to check if the Geth is running properly, or you can also execute the curl command below to check if you are connected to the peer.

    +
    curl -X POST -H 'Content-Type: application/json' --data '{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":74}' localhost:8545

    {"jsonrpc":"2.0","id":74,"result":"0x6"}
    +

    Start consensus client

    +
     ./morph/node/build/bin/morphnode --home ./node-data \
    --l2.jwt-secret ./jwt-secret.txt \
    --l2.eth http://localhost:8545 \
    --l2.engine http://localhost:8551 \
    --log.filename ./node.log
    +

    tail -f node.log to check if the node is running properly, and you can also execute the command curl to check your node connection status.

    +
    curl http://localhost:26657/net_info

    {
    "jsonrpc": "2.0",
    "id": -1,
    "result": {
    "listening": true,
    "listeners": [
    "Listener(@)"
    ],
    "n_peers": "7",
    "peers": [
    {
    "node_info": {
    "protocol_version": {
    "p2p": "8",
    "block": "11",
    "app": "0"
    },
    "id": "b4ac59de479b0251d441ca0385429bc21713a208",
    "listen_addr": "tcp://0.0.0.0:26610",
    "network": "chain-morph-mainnet",
    "version": "0.37.0-alpha.1",
    "channels": "402021222338606100",
    "moniker": "morph-dataseed-node-0",
    "other": {
    "tx_index": "on",
    "rpc_address": "tcp://0.0.0.0:26657"
    }
    },
    "is_outbound": true,
    .......
    +

    Check sync status

    +

    curl http://localhost:26657/status to check the sync status of the node

    +
    {
    "jsonrpc": "2.0",
    "id": -1,
    "result": {
    "node_info": {
    "protocol_version": {
    "p2p": "8",
    "block": "11",
    "app": "0"
    },
    "id": "cde0d7cecfe9c82244c1dfa72c951759d02f1024",
    "listen_addr": "tcp://0.0.0.0:26656",
    "network": "chain-morph-mainnet",
    "version": "0.37.0-alpha.1",
    "channels": "402021222338606100",
    "moniker": "my-morph-node",
    "other": {
    "tx_index": "on",
    "rpc_address": "tcp://0.0.0.0:26657"
    }
    },
    "sync_info": {
    "latest_block_hash": "B4C0E514CD984B101FA89D7DB48C1FE18384F64C25E5565F618A5FE2851C42A9",
    "latest_app_hash": "",
    "latest_block_height": "2410",
    "latest_block_time": "2024-10-21T08:49:09.952573291Z",
    "earliest_block_hash": "0D66D908033DA7A3F5A95179B8D64261EDD887B944E59502A1C9EFBC1C9C4EF5",
    "earliest_app_hash": "",
    "earliest_block_height": "1",
    "earliest_block_time": "2024-10-21T06:00:00Z",
    "catching_up": false
    },
    "validator_info": {
    "address": "B7395023EFF719D0EE15AD96FFC7F69B6B9E52EF",
    "pub_key": {
    "type": "tendermint/PubKeyEd25519",
    "value": "tZI+wTExwoKeyUFgdSSYmf4sAYp4BhJu13UgPy1wDOc="
    },
    "voting_power": "0"
    }
    }
    }
    +

    The returned "catching_up" indicates whether the node is in sync or not. True means it is in sync.

    +

    The returned "latest_block_height" indicates the latest block height this node synced.

    +

    Sync from genesis block

    +

    Start the execution client and consensus client directly without downloading snapshot.

    + + \ No newline at end of file diff --git a/build/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node-docker/index.html b/build/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node-docker/index.html deleted file mode 100644 index 9421ed390..000000000 --- a/build/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node-docker/index.html +++ /dev/null @@ -1,50 +0,0 @@ - - - - - -Run a Morph Full Node with Docker | Morph docs – The Optimistic zkEVM Scaling Solution docs - - - - -
    Skip to main content

    Run a Morph Full Node with Docker

    This guide will help you start a full node running in the docker container.

    -
    note

    We currently only support running a node with docker on testnet

    -

    Quick Start

    -

    Currently, users need to build the Docker image themselves using the Docker file and Docker Compose file we provide. However, there's no need to worry, as you only need one command to quickly start a full node. This command will handle everything for you, including downloading snapshots, structure data and config files, building the image, and starting the container.

    -
      -
    1. Clone the dockerfile repository
    2. -
    -
    ## testnet
    git clone --branch release/0.4.x https://github.com/morph-l2/morph.git
    -
      -
    1. Run the following command
    2. -
    -
    cd ops/publicnode

    ## testnet
    make run-holesky-node
    -

    Running this command will create a .morph-holesky directory in your user directory by default, serving as the node's home directory. Before starting the node, this command will perform several preparations:

    -
      -
    • Create the node's home directory and copy the default configuration files into it.
    • -
    • Prepare the secret-jwt.txt file for for authentication during RPC calls between geth and the node.
    • -
    • Download the latest snapshot data to speed up node synchronization.
    • -
    • Place the extracted snapshot data into the corresponding folder within the home directory.
    • -
    -

    After completing these preparations, the command will automatically build the image and start the container, with Docker volumes mounted to the created node home directory.

    -
    info

    If this is your first run, these processes may take some time. Note that if you are starting the node for the first time but already have a .morph-holesky directory, you must delete that directory before running the command. Otherwise, the preparation phase will be skipped, which may prevent the node from running properly.

    If the command fails during execution, you will also need to delete the previously created .morph-holesky directory before restarting.

    -

    Advanced Usage

    -

    With the Quick Start guide above, you can quickly start a node using the default configuration files. However, we also support customizing the node's home directory and parameter settings.

    -

    Customizing Data Directory

    -

    The host directory paths that are mounted by the Docker container are specified in the ops/publicnode/.env file.

    -
    ops/publicnode/.env
    // the home folder of your Morph node
    NODE_HOME=${HOME}/.morph-holesky
    // the data directory for your execution client: geth
    GETH_DATA_DIR=${NODE_HOME}/geth-data
    // the data directory for you consensus client: tendermint
    NODE_DATA_DIR=${NODE_HOME}/node-data
    // the entrypoint shell script for start execution client
    GETH_ENTRYPOINT_FILE=${NODE_HOME}/entrypoint-geth.sh
    // the jwt secret file for communicating between execution client and consensus client via engine API
    JWT_SECRET_FILE=${NODE_HOME}/jwt-secret.txt
    // the snapshot name for holesky Morph node
    SNAPSHOT_NAME=snapshot-20240805-1
    -

    You have the flexibility to customize the directory paths as per your requirements. -Please note that if you want to execute make run-holesky-node to generate the necessary configuration files and snapshots for running the node, you need to ensure that the specified node home directory is new (not previously created) and do NOT alter the paths for GETH_DATA_DIR and NODE_DATA_DIR.

    -

    Customizing parameters

    -

    The default configuration required for node startup is located in the ops/publicnode/holesky directory. If your node home directory is empty, the run command will automatically copy these configuration files to the directory mounted in the node's docker container.

    -
    └── holesky
    ├── entrypoint-geth.sh
    ├── geth-data
    │   └── static-nodes.json
    └── node-data
    ├── config
    │   ├── config.toml
    │   └── genesis.json
    └── data
    -

    If you wish to modify the Geth startup command, you can do so by editing the entrypoint-geth.sh file. For adjustments to the Tendermint-related configuration parameters, you should modify the node-data/config/config.toml file. -Note that if you have customized your GETH_DATA_DIR and NODE_DATA_DIR, you will need to manually place the modified configuration files in the appropriate locations.

    -

    Managing Snapshots Yourself

    -

    You may also manually manage snapshot, particularly if you are using custom paths for the node directories. -The make download-and-decompress-snapshot command in the ops/publicnode directory will assist you in downloading and decompressing the snapshot archive.

    -

    Then, you need to manually place the decompressed data files in the appropriate node data directories. -For example, if the snapshot folder is named snapshot-20240805-1, move the contents from snapshot-20240805-1/geth to the ${GETH_DATA_DIR}/geth directory and the contents from snapshot-20240805-1/data to the ${NODE_DATA_DIR}/data directory.

    - - \ No newline at end of file diff --git a/build/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node/index.html b/build/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node/index.html deleted file mode 100644 index 12e0a6cf4..000000000 --- a/build/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node/index.html +++ /dev/null @@ -1,71 +0,0 @@ - - - - - -Run a Morph Full Node from Source | Morph docs – The Optimistic zkEVM Scaling Solution docs - - - - -
    Skip to main content

    Run a Morph Full Node from Source

    This guide outlines the steps to start a Morph node. The example assumes the home directory is ~/.morph

    -

    Hardware requirements

    -

    Running the morph node requires 2 processes: geth and node.

    -
      -
    • -

      Geth:the Morph execution layer which needs to meet the requirements as below

      -
        -
      • Fast CPU with 4+ cores
      • -
      • 32GB+ RAM
      • -
      • High-performance SSD with at least 1TB of free space
      • -
      • 25+ MBit/sec download Internet service
      • -
      -
    • -
    • -

      Node:the Morph consensus layer embedded tendermint which needs to meet the tendermint hardware requirements.

      -
    • -
    -
    tip

    According to limitations of the current geth implementation, we only support archive mode for launching a Geth. So the storage size of Geth will constantly increase along with blocks produced.

    -

    Build executable binary

    -

    Clone morph

    -
    mkdir -p ~/.morph 
    cd ~/.morph
    git clone https://github.com/morph-l2/morph.git
    -

    Currently, we use tag v0.4.0 as our version.

    -
    cd morph
    git checkout v0.4.0
    -

    Build Geth

    -

    Notice: You need C compiler to build geth

    -
    make geth
    -

    Build Node

    -
    cd ~/.morph/morph/node 
    make build
    -

    Config Preparation

    -
      -
    1. Download the config files and make data dir
    2. -
    -
    cd ~/.morph

    ## mainnet
    wget https://raw.githubusercontent.com/morph-l2/config-template/main/mainnet/data.zip

    ## testnet
    wget https://raw.githubusercontent.com/morph-l2/config-template/main/holesky/data.zip

    unzip data.zip
    -
      -
    1. Create a shared secret with node
    2. -
    -
    cd ~/.morph
    openssl rand -hex 32 > jwt-secret.txt
    -

    Sync from genesis block(For mainnet)

    -

    Start the execution client and consensus client directly without downloading snapshot.

    -

    Start execution client

    -
    Script for starting mainnet geth
    ./morph/go-ethereum/build/bin/geth --morph \
    --datadir "./geth-data" \
    --http --http.api=web3,debug,eth,txpool,net,engine \
    --authrpc.addr localhost \
    --authrpc.vhosts="localhost" \
    --authrpc.port 8551 \
    --authrpc.jwtsecret=./jwt-secret.txt \
    --log.filename=./geth.log

    -
    note

    For testnet, using --morph-holesky instead

    -

    tail -f geth.log to check if the Geth is running properly, or you can also execute the curl command below to check if you are connected to the peer.

    -
    curl -X POST -H 'Content-Type: application/json' --data '{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":74}' localhost:8545

    {"jsonrpc":"2.0","id":74,"result":"0x6"}
    -

    Start consensus client

    -
     ./morph/node/build/bin/morphnode --home ./node-data \
    --l2.jwt-secret ./jwt-secret.txt \
    --l2.eth http://localhost:8545 \
    --l2.engine http://localhost:8551 \
    --log.filename ./node.log
    -

    tail -f node.log to check if the node is running properly, and you can also execute the command curl to check your node connection status.

    -
    curl http://localhost:26657/net_info

    {
    "jsonrpc": "2.0",
    "id": -1,
    "result": {
    "listening": true,
    "listeners": [
    "Listener(@)"
    ],
    "n_peers": "7",
    "peers": [
    {
    "node_info": {
    "protocol_version": {
    "p2p": "8",
    "block": "11",
    "app": "0"
    },
    "id": "b4ac59de479b0251d441ca0385429bc21713a208",
    "listen_addr": "tcp://0.0.0.0:26610",
    "network": "chain-morph-mainnet",
    "version": "0.37.0-alpha.1",
    "channels": "402021222338606100",
    "moniker": "morph-dataseed-node-0",
    "other": {
    "tx_index": "on",
    "rpc_address": "tcp://0.0.0.0:26657"
    }
    },
    "is_outbound": true,
    .......
    -

    Check sync status

    -

    curl http://localhost:26657/status to check the sync status of the node

    -
    {
    "jsonrpc": "2.0",
    "id": -1,
    "result": {
    "node_info": {
    "protocol_version": {
    "p2p": "8",
    "block": "11",
    "app": "0"
    },
    "id": "cde0d7cecfe9c82244c1dfa72c951759d02f1024",
    "listen_addr": "tcp://0.0.0.0:26656",
    "network": "chain-morph-mainnet",
    "version": "0.37.0-alpha.1",
    "channels": "402021222338606100",
    "moniker": "my-morph-node",
    "other": {
    "tx_index": "on",
    "rpc_address": "tcp://0.0.0.0:26657"
    }
    },
    "sync_info": {
    "latest_block_hash": "B4C0E514CD984B101FA89D7DB48C1FE18384F64C25E5565F618A5FE2851C42A9",
    "latest_app_hash": "",
    "latest_block_height": "2410",
    "latest_block_time": "2024-10-21T08:49:09.952573291Z",
    "earliest_block_hash": "0D66D908033DA7A3F5A95179B8D64261EDD887B944E59502A1C9EFBC1C9C4EF5",
    "earliest_app_hash": "",
    "earliest_block_height": "1",
    "earliest_block_time": "2024-10-21T06:00:00Z",
    "catching_up": false
    },
    "validator_info": {
    "address": "B7395023EFF719D0EE15AD96FFC7F69B6B9E52EF",
    "pub_key": {
    "type": "tendermint/PubKeyEd25519",
    "value": "tZI+wTExwoKeyUFgdSSYmf4sAYp4BhJu13UgPy1wDOc="
    },
    "voting_power": "0"
    }
    }
    }
    -

    The returned "catching_up" indicates whether the node is in sync or not. True means it is in sync. Meanwhile, the returned latest_block_height indicates the latest block height this node synced.

    -

    Sync from snapshot(Recommended for testnet)

    -

    You should build the binary and prepare the config files in the above steps first, then download the snapshot.

    -

    Download snapshot

    -

    ## testnet
    wget -q --show-progress https://snapshot.morphl2.io/holesky/snapshot-20240805-1.tar.gz
    tar -xzvf snapshot-20240805-1.tar.gz
    -

    Extracting snapshot data to the data directory your node points to

    -
    mv snapshot-20240805-1/geth geth-data
    mv snapshot-20240805-1/data node-data
    -

    Start the execution client and consensus client.

    - - \ No newline at end of file diff --git a/build/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-validator-node/index.html b/build/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-validator-node/index.html deleted file mode 100644 index 80f009950..000000000 --- a/build/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-validator-node/index.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - -How to Run a Morph Validator Node | Morph docs – The Optimistic zkEVM Scaling Solution docs - - - - -
    Skip to main content

    How to Run a Morph Validator Node

    Run a Morph Node

    -

    This guide describes the approach to running a Morph validator node. If you are unfamiliar with the validator duties, please refer to our optimistic zkEVM design.

    -

    Create the folder ~/.morph as our home directory for this example.

    -

    Build executable binary

    -

    Clone Morph

    -
    mkdir -p ~/.morph 
    cd ~/.morph
    git clone https://github.com/morph-l2/morph.git
    -

    Currently, we use tag v0.4.0 as our beta version geth.

    -
    cd morph
    git checkout v0.4.0
    -

    Build Geth

    -

    Notice: You need C compiler to build geth

    -
    make geth
    -

    Build Node

    -
    cd ~/.morph/morph/node 
    make build
    -

    Sync from the genesis block

    -

    Config Preparation

    -
      -
    1. Download the config files and make data dir
    2. -
    -
    cd ~/.morph

    ## mainnet
    wget https://raw.githubusercontent.com/morph-l2/config-template/main/mainnet/data.zip

    ## testnet
    wget https://raw.githubusercontent.com/morph-l2/config-template/main/holesky/data.zip

    unzip data.zip
    -
      -
    1. Create a shared secret with node
    2. -
    -
    cd ~/.morph
    openssl rand -hex 32 > jwt-secret.txt
    -

    Script to start the process

    -

    Geth

    -
    Script for starting mainnet geth
    ./morph/go-ethereum/build/bin/geth --morph \
    --datadir "./geth-data" \
    --http --http.api=web3,debug,eth,txpool,net,engine \
    --authrpc.addr localhost \
    --authrpc.vhosts="localhost" \
    --authrpc.port 8551 \
    --authrpc.jwtsecret=./jwt-secret.txt \
    --log.filename=./geth.log

    -

    tail -f geth.log to check if the Geth is running properly, or you can also execute the below curl command to check if you are connected to the peer.

    -
    curl --location --request POST 'localhost:8545/' \
    --header 'Content-Type: application/json' \
    --data-raw '{
    "jsonrpc":"2.0",
    "method":"eth_blockNumber",
    "id":1
    }'

    {"jsonrpc":"2.0","id":1,"result":"0x148e39"}
    -

    Node

    -
    cd ~/.morph

    ## mainnet
    export CHAIN_ID=1
    export L1MESSAGEQUEUE_CONTRACT=0x3931ade842f5bb8763164bdd81e5361dce6cc1ef
    export START_HEIGHT=20996776
    export ROLLUP=0x759894ced0e6af42c26668076ffa84d02e3cef60

    ## start node
    ./morph/node/build/bin/morphnode --validator --home ./node-data \
    --l2.jwt-secret ./jwt-secret.txt \
    --l2.eth http://localhost:8545 \
    --l2.engine http://localhost:8551 \
    --l1.rpc $(Ethereum RPC) \
    --l1.beaconrpc $(Ethereum beacon chain RPC) \
    --l1.chain-id ${CHAIN_ID} \
    --validator.privateKey 0x0000000000000000000000000000000000000000000000000000000000000001 \
    --sync.depositContractAddr ${L1MESSAGEQUEUE_CONTRACT} \
    --sync.startHeight ${START_HEIGHT} \
    --derivation.rollupAddress ${ROLLUP} \
    --derivation.startHeight ${START_HEIGHT} \
    --derivation.fetchBlockRange 200 \
    --log.filename ./node.log
    -

    For holesky network, using

    -
    export CHAIN_ID=17000 
    export L1MESSAGEQUEUECONTRACT=0x778d1d9a4d8b6b9ade36d967a9ac19455ec3fd0b
    export START_HEIGHT=1434640
    export ROLLUP=0xd8c5c541d56f59d65cf775de928ccf4a47d4985c
    -
    note

    Note the validator.privateKey is of no use to you. It is used to send challenges when the state root is found to be incorrect. However, we do not currently accept challenges from third party addresses. But it is also a required parameter for the morphnode command, so we give a 0x00... 1.

    -

    Check Status

    -

    If your node is successfully started, you will see the following response:

    -
    I[2024-06-06|15:57:35.216] metrics server enabled                       module=derivation host=0.0.0.0 port=26660
    derivation node starting
    ID> 24-06-06|15:57:35.216] initial sync start module=syncer msg="Running initial sync of L1 messages before starting sequencer, this might take a while..."
    I[2024-06-06|15:57:35.242] initial sync completed module=syncer latestSyncedBlock=1681622
    I[2024-06-06|15:57:35.242] derivation start pull rollupData form l1 module=derivation startBlock=1681599 end=1681622
    I[2024-06-06|15:57:35.244] fetched rollup tx module=derivation txNum=8 latestBatchIndex=59201
    I[2024-06-06|15:57:35.315] fetch rollup transaction success module=derivation txNonce=8764 txHash=0x5fb8a98472d1be73be2bc6be0807b9e0c68b7ba14a648c8a17bdaff7b26eb923 l1BlockNumber=1681599 firstL2BlockNumber=1347115 lastL2BlockNumber=1347129
    I[2024-06-06|15:57:35.669] new l2 block success module=derivation blockNumber=1347115
    -

    You can use the following command to check the newest block height to make sure you are aligned.

    -
    curl --location --request POST 'localhost:8545/' \
    --header 'Content-Type: application/json' \
    --data-raw '{
    "jsonrpc":"2.0",
    "method":"eth_blockNumber",
    "id":1
    }'
    {"jsonrpc":"2.0","id":1,"result":"0x148e39"}
    -

    Make sure you check the validator status constantly, if you find response

    -
    [2024-06-14|16:43:50.904] root hash or withdrawal hash is not equal    originStateRootHash=0x13f91d1c272e48e2d864ce7bfb421506d5b2a04def64d45c75391cdcdd69cd78 deriveStateRootHash=0x27e10420c0e34676a7d75c4189d7ccd1c3407cc8fd0b3eafb01c15e250a1215f batchWithdrawalRoot=0xa3e4a7cf45c7591a6bd9868f1fa7485ae345f10067acaade5f5b07d418b2e172 deriveWithdrawalRoot=0xa3e4a7cf45c7591a6bd9868f1fa7485ae345f10067acaade5f5b07d418b2e172
    -

    This means your validators find inconsistent between sequencer submission and your own observation.

    - - \ No newline at end of file diff --git a/build/docs/build-on-morph/developer-resources/node-operation/prune-state/index.html b/build/docs/build-on-morph/developer-resources/node-operation/prune-state/index.html index 4411f8c52..7f4b92e28 100644 --- a/build/docs/build-on-morph/developer-resources/node-operation/prune-state/index.html +++ b/build/docs/build-on-morph/developer-resources/node-operation/prune-state/index.html @@ -3,19 +3,23 @@ -Prune State | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +Prune State | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    Prune State

    The performance of a full node will degrade when the storage size reaches a high volume. We suggest that the fullnode always keep light storage by pruning the storage.

    -

    How to Prune

    +

    Prune State

    The performance of a full node will degrade when the storage size reaches a high volume. We suggest that the fullnode always keep light storage by pruning the storage.

    +

    How to Prune

    1. Stop the node, including the consensus client(morphnode) and the execution client(geth)
    2. Run nohup geth snapshot prune-zk-state --datadir "$GETH_DB_DIR" > prune.log &. It will take 5~7 hours to finish.
    3. Start the node once it is done.

    The hardware is important, make sure the SSD meets: solid-state drive(SSD), 8k IOPS, 500 MB/S throughput, read latency < 1ms.

    -
    note

    To prune a Geth node at least 200 GB of free disk space is recommended. This means pruning cannot be used to save a hard drive that has been completely filled. A good rule of thumb is to prune before the node fills ~80% of the available disk space.

    +
    note

    To prune a Geth node at least 200 GB of free disk space is recommended. This means pruning cannot be used to save a hard drive that has been completely filled. A good rule of thumb is to prune before the node fills ~80% of the available disk space.

    \ No newline at end of file diff --git a/build/docs/build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-docker/index.html b/build/docs/build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-docker/index.html index a45c52a43..63bdbfbb7 100644 --- a/build/docs/build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-docker/index.html +++ b/build/docs/build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-docker/index.html @@ -3,20 +3,44 @@ -Upgrade node running from docker | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +Upgrade node running from docker | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    Upgrade node running from docker

    If you are running the Docker container for the node using a custom setup, you will need to update the docker image yourself and then restart the container.

    -

    The source code is available at https://github.com/morph-l2/morph.git. You need to switch to the latest version of the code and then update your docker image.

    -

    If you are using Run a Morph node with docker to start the docker container, you can follow the subsequent steps to upgrade the node.

    -

    Step1: Fetch latest code version

    -
    git clone https://github.com/morph-l2/morph.git
    ## checkout the latest version of the source code you need
    git checkout ${latestVersion}
    -

    Step2: Stop the nodes and delete previous images

    -
    ## stop docker container
    cd ops/publicnode
    make stop-holesky-node
    make rm-holesky-node
    ## delete the pervious docker image for node
    docker rmi morph/node:latest
    ## delete the pervious docker image for geth
    docker rmi morph/geth-nccc:latest
    -

    Step3: Build the latest image and restart the container

    -
    note

    Please note that we need to ensure that the Docker container startup parameters are consistent with those used previously. If you used a custom configuration before, make sure that the configuration and directory paths used in this run are the same as before. For details, please refer to Advanced Usage

    -
    ## start the docker container, it will automatically build the new docker images
    make run-holesky-node
    +
    Skip to main content

    Upgrade node running from docker

    Docker Images

    + +

    If You Are Using a Custom Setup

    +

    If you are running the Docker container for the node using a custom setup, you will need to manually update the Docker image version and restart the container.

    + +

    For those using the Run a full node with docker to start the container, follow these steps to upgrade your node.

    +

    Step1: Update docker images version

    +
      +
    • +

      Check the latest docker image version from Docker Images

      +
    • +
    • +

      Update the docker image version on morph-node/docker-compose.yml

      +
      morph-node/docker-compose.yml
      services:  
      geth:
      container_name: morph-geth
      image: ghcr.io/morph-l2/go-ethereum:{update_version} ## Specify the Geth image version
      restart: unless-stopped

      # ...

      node:
      container_name: morph-node
      depends_on:
      geth:
      condition: service_started
      image: ghcr.io/morph-l2/node:{update_version} ## Specify the Node image version

      # ...

      +
      tip

      Optionally update the image version for go-ethereum, node, or both, depending on your requirements.

      +
    • +
    +

    Step2: Restart the container

    +

    Use the following commands to stop and restart the container. The updated Docker images will be pulled automatically.

    +
    // stop the docker containers
    make stop-node

    // start the docker container, it will automatically pull the updated docker images
    make run-node
    +

    If you are running a validator, use these commands instead:

    +
    make stop-validator
    make run-validator
    +
    note

    Ensure that the startup parameters for the Docker container remain consistent with your previous configuration. If you previously used a custom setup, verify that the configuration and directory paths match your earlier setup. For details, please refer to Advanced Usage

    \ No newline at end of file diff --git a/build/docs/build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-host/index.html b/build/docs/build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-host/index.html index a9719a7cc..6d1369b5b 100644 --- a/build/docs/build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-host/index.html +++ b/build/docs/build-on-morph/developer-resources/node-operation/upgrade-node/upgrade-node-host/index.html @@ -3,20 +3,28 @@ -Upgrade node running on the host | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +Upgrade node running on the host | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    Upgrade node running on the host

    Upgrading the node is straightforward. Simply install the new version of the node executable file and replace the previous version. Then, stop the currently running node and restart it with the updated version. Node will automatically use the data of your old node and sync the latest blocks that were mined since you shut down the old software.

    +

    Upgrade node running on the host

    Upgrading the node is straightforward. Simply install the new version of the node executable file and replace the previous version. Then, stop the currently running node and restart it with the updated version. Node will automatically use the data of your old node and sync the latest blocks that were mined since you shut down the old software.

    Running the node requires two binary files: morphnode and geth. Choose to upgrade the binary files according to your specific needs.

    -

    Step1: Compile the new version of the code

    -
    git clone https://github.com/morph-l2/morph.git
    ## checkout the latest version of the source code you need
    git checkout ${latestVersion}
    ## install geth
    make geth
    ## install morphnode
    cd ./morph/node && make build
    -

    Step2: Stop nodes

    -
    ## stop morphnode process
    pid=`ps -ef | grep morphnode | grep -v grep | awk '{print $2}'`
    kill $pid

    ## stop geth process
    pid=`ps -ef | grep geth | grep -v grep | awk '{print $2}'`
    kill $pid
    -

    Step3: Restart

    +

    Step1: Compile the new version of the code

    +

    You can have the released code version from Morph release page.

    +
    git clone https://github.com/morph-l2/morph.git

    // checkout the latest version of the source code you need
    git checkout ${latestVersion}

    // install geth
    make geth

    // install morphnode
    cd ./morph/node && make build
    +

    If you only update the Geth version

    +

    Check the Geth version from go-ethereum

    +
    git clone https://github.com/morph-l2/go-ethereum.git

    git checkout ${latestVersion}

    // install geth
    make geth
    +

    Step2: Stop nodes

    +
    # stop morphnode process
    pid=`ps -ef | grep morphnode | grep -v grep | awk '{print $2}'`
    kill $pid

    # stop geth process
    pid=`ps -ef | grep geth | grep -v grep | awk '{print $2}'`
    kill $pid
    +

    Step3: Restart

    Make sure to use the same start-up command you used before the upgrade

    -
    ## start geth
    ./morph/go-ethereum/build/bin/geth --morph \
    --datadir "./geth-data" \
    --http --http.api=web3,debug,eth,txpool,net,engine \
    --authrpc.addr localhost \
    --authrpc.vhosts="localhost" \
    --authrpc.port 8551 \
    --authrpc.jwtsecret=./jwt-secret.txt \
    --log.filename=./geth.log

    ## start geth
    ./morph/node/build/bin/morphnode --home ./node-data \
    --l2.jwt-secret ./jwt-secret.txt \
    --l2.eth http://localhost:8545 \
    --l2.engine http://localhost:8551 \
    --log.filename ./node.log
    -
    note

    For testnet, use --morph-holesky instead

    +
    ## start geth
    ./morph/go-ethereum/build/bin/geth --morph \
    --datadir "./geth-data" \
    --http --http.api=web3,debug,eth,txpool,net,engine \
    --authrpc.addr localhost \
    --authrpc.vhosts="localhost" \
    --authrpc.port 8551 \
    --authrpc.jwtsecret=./jwt-secret.txt \
    --log.filename=./geth.log

    ## start node
    ./morph/node/build/bin/morphnode --home ./node-data \
    --l2.jwt-secret ./jwt-secret.txt \
    --l2.eth http://localhost:8545 \
    --l2.engine http://localhost:8551 \
    --log.filename ./node.log
    +
    note

    For holesky network, use --morph-holesky instead

    \ No newline at end of file diff --git a/build/docs/build-on-morph/developer-resources/node-operation/validator-node/run-in-docker.htm/index.html b/build/docs/build-on-morph/developer-resources/node-operation/validator-node/run-in-docker.htm/index.html new file mode 100644 index 000000000..bdc24f740 --- /dev/null +++ b/build/docs/build-on-morph/developer-resources/node-operation/validator-node/run-in-docker.htm/index.html @@ -0,0 +1,11 @@ + + + + + + + + + \ No newline at end of file diff --git a/build/docs/build-on-morph/developer-resources/node-operation/validator-node/run-in-docker.html/index.html b/build/docs/build-on-morph/developer-resources/node-operation/validator-node/run-in-docker.html/index.html new file mode 100644 index 000000000..bdc24f740 --- /dev/null +++ b/build/docs/build-on-morph/developer-resources/node-operation/validator-node/run-in-docker.html/index.html @@ -0,0 +1,11 @@ + + + + + + + + + \ No newline at end of file diff --git a/build/docs/build-on-morph/developer-resources/node-operation/validator-node/run-in-docker/index.html b/build/docs/build-on-morph/developer-resources/node-operation/validator-node/run-in-docker/index.html new file mode 100644 index 000000000..a1c3106e2 --- /dev/null +++ b/build/docs/build-on-morph/developer-resources/node-operation/validator-node/run-in-docker/index.html @@ -0,0 +1,62 @@ + + + + + +Run a validator with docker | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + + + +
    Skip to main content

    Run a validator with docker

    This guide will help you start a validator node running in the docker container using run-morph-node

    +

    Quick Start

    +
    info

    The following quick start steps are only applicable for running a validator node on the mainnet. To set up and operate a Holesky validator node, please refer to Sync from Snapshot.

    +
    note

    Starting with the Quick Start initiates synchronization from height 0, which can be extremely time-consuming to reach the latest state. We highly recommend using the Sync from Snapshot approach outlined below for a faster and more efficient startup.

    +

    1. Clone the dockerfile repository

    +
    git clone https://github.com/morph-l2/run-morph-node.git
    +

    2. Configure morph-node/.env

    +

    The morph-node/.env file defines the environment variables required for deploying a validator node. Below is an example configuration:

    +
    morph-node/.env
    // General settings
    MORPH_HOME=../mainnet
    MORPH_FLAG=morph
    JWT_SECRET_FILE=${MORPH_HOME}/jwt-secret.txt
    GETH_ENTRYPOINT_FILE=./entrypoint-geth.sh

    // Environment variables for validator node
    L1_CHAIN_ID=1
    L1_ETH_RPC=${your_layer1_execution_client_rpc_url}
    L1_BEACON_CHAIN_RPC=${your_layer1_beacon_client_rpc_url}
    L1MESSAGEQUEUE_CONTRACT=0x3931ade842f5bb8763164bdd81e5361dce6cc1ef
    ROLLUP_CONTRACY=0x759894ced0e6af42c26668076ffa84d02e3cef60
    DERIVATION_START_HEIGHT=20996776
    L1_MSG_START_HEIGHT=20996776
    +

    Default Directory: +For running a validator on the mainnet, the MORPH_HOME directory defaults to ../mainnet. You can customize this path to suit your setup.

    +

    Layer1 RPC URLs: +Ensure you provide the correct RPC URLs for the Layer 1 execution client (L1_ETH_RPC) and the beacon chain client (L1_BEACON_CHAIN_RPC). These URLs are essential for the validator to fetch rollup batches and maintain synchronization.

    +

    3. Run the following command

    +
    cd morph-node
    make run-validator
    +

    Sync from snapshot

    +

    We recommend synchronizing blocks using snapshot data to reduce the time required for block synchronization. This approach allows you to start the node from a specific block height, significantly reducing the time needed to reach the latest state.

    +

    1. Clone the dockerfile repository

    +
    git clone https://github.com/morph-l2/run-morph-node.git
    +

    2. Download the Snapshot

    +

    The morph-node/.env configuration file in the repository you just cloned is designed for setting up the Morph node on the mainnet. By default, it is pre-configured to use the latest snapshot.

    +

    If you need a historical snapshot, you must manually update the SNAPSHOT_NAME in the morph-node/.env file. (Note: For the testnet, the corresponding file is morph-node/.env_holesky.)

    +

    You can find the historical snapshot names from Snapshot Information.

    +
    // ...

    MAINNET_SNAPSHOT_NAME={your expected snapshot name}

    // ...
    +

    Run the following command to download and decompress the snapshot for your network:

    +

    For the mainnet:

    +
    make download-and-decompress-mainnet-snapshot
    +

    For the testnet:

    +
    make download-and-decompress-holesky-snapshot
    +

    3. Set up the snapshot

    +

    After downloading, locate the snapshot by placing the extracted data files in the correct directory specified by the MORPH_HOME path in your morph-node/.env file. Ensure the data files align with the node's expected structure to allow seamless synchronization.

    +

    For example, if the snapshot folder is named snapshot-20241218-1,

    +
      +
    • move the directory snapshot-20241218-1/geth to the ${MORPH_HOME}/geth-data directory.
    • +
    • move the contents from snapshot-20241218-1/data to the ${NODE_DATA_DIR}/data directory.
    • +
    +
    mv ./morph-node/snapshot-20241218-1/geth ${MORPH_HOME}/geth-data
    mv ./morph-node/snapshot-20241218-1/data/* ${MORPH_HOME}/node-data/data
    +

    The folder structure will be like

    +
    └── ${MORPH_HOME}
    ├── geth-data // data directory for geth
    │   └── static-nodes.json
    │   └── geth // directory from snapshot/geth
    └── node-data // data directory for node
    ├── config
    │   ├── config.toml
    │   └── genesis.json
    └── data // data directory from snapshot/node
    +

    4. Update the Environment Variables

    +

    Before running the node, update the DERIVATION_START_HEIGHT and L1_MSG_START_HEIGHT variables in the morph-node/.env file (or .env_holesky for the testnet).

    +

    Refer to snapshot-information for the specific values of the configuration heights. Ensure that the corresponding height values match the snapshot version you are configuring.

    +
    // ...
    MAINNET_SNAPSHOT_NAME={your expected snapshot name}

    // ...
    DERIVATION_START_HEIGHT={the expected start height match the snapshot}
    L1_MSG_START_HEIGHT={the expected start height match the snapshot}

    +

    5. Run the Validator

    +

    With the snapshot and configuration files ready, navigate to the morph-node folder under your cloned repository, and start the node using the provided command

    +
    cd morph-node
    make run-validator

    // or for testnet
    cd morph-node
    make run-holesky-validator
    + + \ No newline at end of file diff --git a/build/docs/build-on-morph/developer-resources/node-operation/validator-node/run-on-host.htm/index.html b/build/docs/build-on-morph/developer-resources/node-operation/validator-node/run-on-host.htm/index.html new file mode 100644 index 000000000..27ce5fa98 --- /dev/null +++ b/build/docs/build-on-morph/developer-resources/node-operation/validator-node/run-on-host.htm/index.html @@ -0,0 +1,11 @@ + + + + + + + + + \ No newline at end of file diff --git a/build/docs/build-on-morph/developer-resources/node-operation/validator-node/run-on-host.html/index.html b/build/docs/build-on-morph/developer-resources/node-operation/validator-node/run-on-host.html/index.html new file mode 100644 index 000000000..27ce5fa98 --- /dev/null +++ b/build/docs/build-on-morph/developer-resources/node-operation/validator-node/run-on-host.html/index.html @@ -0,0 +1,11 @@ + + + + + + + + + \ No newline at end of file diff --git a/build/docs/build-on-morph/developer-resources/node-operation/validator-node/run-on-host/index.html b/build/docs/build-on-morph/developer-resources/node-operation/validator-node/run-on-host/index.html new file mode 100644 index 000000000..3b7775e20 --- /dev/null +++ b/build/docs/build-on-morph/developer-resources/node-operation/validator-node/run-on-host/index.html @@ -0,0 +1,65 @@ + + + + + +Run a validator from source | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + + + +
    Skip to main content

    Run a validator from source

    Run a Morph Validator

    +

    This guide describes the approach to running a Morph validator node. If you are unfamiliar with the validator duties, please refer to our optimistic zkEVM design.

    +

    Create the folder ~/.morph as our home directory for this example.

    +

    Build executable binary

    +

    Clone Morph

    +
    mkdir -p ~/.morph 
    cd ~/.morph
    git clone https://github.com/morph-l2/morph.git
    +

    Next, you need to check out a release version. You can find the available release versions on the Morph Releases page. It is recommended to use the latest release version.

    +
    cd morph
    git checkout ${RELEASE_VERSION}
    +

    Build Geth

    +

    Notice: You need C compiler to build geth

    +
    make geth
    +

    Build Node

    +
    cd ~/.morph/morph/node 
    make build
    +

    Sync from the snapshot

    +

    Config Preparation

    +
      +
    1. Download the config files and make data dir
    2. +
    +
    cd ~/.morph

    ## mainnet
    wget https://raw.githubusercontent.com/morph-l2/run-morph-node/main/mainnet/data.zip

    ## testnet
    wget https://raw.githubusercontent.com/morph-l2/run-morph-node/main/holesky/data.zip

    unzip data.zip
    +
      +
    1. Create a shared secret with node
    2. +
    +
    cd ~/.morph
    openssl rand -hex 32 > jwt-secret.txt
    +

    Download snapshot

    +

    Download the latest snapshot corresponding to either the mainnet or testnet network.

    +

    A complete record of historical snapshots is available here. Below is an example of how to download a snapshot

    +
    ## mainnet
    wget -q --show-progress https://snapshot.morphl2.io/mainnet/${SNAPSHOT_NAME}.tar.gz
    tar -xzvf ${SNAPSHOT_NAME}.tar.gz

    ## holesky
    wget -q --show-progress https://snapshot.morphl2.io/holesky/${SNAPSHOT_NAME}.tar.gz
    tar -xzvf ${SNAPSHOT_NAME}.tar.gz
    +

    Extracting snapshot data to the data directory your node points to

    +
    mv ${SNAPSHOT_NAME}/geth geth-data
    mv ${SNAPSHOT_NAME}/data node-data
    +

    Script to start the process

    +

    Geth

    +
    Script for starting mainnet geth
    ./morph/go-ethereum/build/bin/geth --morph \
    --datadir "./geth-data" \
    --http --http.api=web3,debug,eth,txpool,net,engine \
    --authrpc.addr localhost \
    --authrpc.vhosts="localhost" \
    --authrpc.port 8551 \
    --authrpc.jwtsecret=./jwt-secret.txt \
    --log.filename=./geth.log

    +
    note

    For testnet, using --morph-holesky instead

    +

    tail -f geth.log to check if the Geth is running properly, or you can also execute the below curl command to check if you are connected to the peer.

    +
    curl --location --request POST 'localhost:8545/' \
    --header 'Content-Type: application/json' \
    --data-raw '{
    "jsonrpc":"2.0",
    "method":"eth_blockNumber",
    "id":1
    }'

    {"jsonrpc":"2.0","id":1,"result":"0x148e39"}
    +

    Node

    +

    You need to set the DERIVATION_START_HEIGHT and L1_MSG_START_HEIGHT variables correctly to match the snapshot version you downloaded. From the snapshot information, you can find the corresponding height values.

    +
    cd ~/.morph

    ## mainnet
    export CHAIN_ID=1
    export L1MESSAGEQUEUE_CONTRACT=0x3931ade842f5bb8763164bdd81e5361dce6cc1ef
    export ROLLUP=0x759894ced0e6af42c26668076ffa84d02e3cef60
    export DERIVATION_START_HEIGHT=${The height matches your snapshot}
    export L1_MSG_START_HEIGHT=${The height matches your snapshot}

    ## start node
    ./morph/node/build/bin/morphnode --validator --home ./node-data \
    --l2.jwt-secret ./jwt-secret.txt \
    --l2.eth http://localhost:8545 \
    --l2.engine http://localhost:8551 \
    --l1.rpc $(Ethereum RPC) \
    --l1.beaconrpc $(Ethereum beacon chain RPC) \
    --l1.chain-id ${CHAIN_ID} \
    --validator.privateKey 0x0000000000000000000000000000000000000000000000000000000000000001 \
    --sync.depositContractAddr ${L1MESSAGEQUEUE_CONTRACT} \
    --sync.startHeight ${L1_MSG_START_HEIGHT} \
    --derivation.rollupAddress ${ROLLUP} \
    --derivation.startHeight ${DERIVATION_START_HEIGHT} \
    --derivation.fetchBlockRange 200 \
    --log.filename ./node.log
    +

    For holesky network, using

    +
    export CHAIN_ID=17000 
    export L1MESSAGEQUEUECONTRACT=0x778d1d9a4d8b6b9ade36d967a9ac19455ec3fd0b
    export ROLLUP=0xd8c5c541d56f59d65cf775de928ccf4a47d4985c
    export DERIVATION_START_HEIGHT=${The height matches your snapshot}
    export L1_MSG_START_HEIGHT=${The height matches your snapshot}
    +
    note

    Note the validator.privateKey is of no use to you. It is used to send challenges when the state root is found to be incorrect. However, we do not currently accept challenges from third party addresses. But it is also a required parameter for the morphnode command, so we give a 0x00... 1.

    +

    Check Status

    +

    If your node is successfully started, you will see the following response:

    +
    I[2024-06-06|15:57:35.216] metrics server enabled                       module=derivation host=0.0.0.0 port=26660
    derivation node starting
    ID> 24-06-06|15:57:35.216] initial sync start module=syncer msg="Running initial sync of L1 messages before starting sequencer, this might take a while..."
    I[2024-06-06|15:57:35.242] initial sync completed module=syncer latestSyncedBlock=1681622
    I[2024-06-06|15:57:35.242] derivation start pull rollupData form l1 module=derivation startBlock=1681599 end=1681622
    I[2024-06-06|15:57:35.244] fetched rollup tx module=derivation txNum=8 latestBatchIndex=59201
    I[2024-06-06|15:57:35.315] fetch rollup transaction success module=derivation txNonce=8764 txHash=0x5fb8a98472d1be73be2bc6be0807b9e0c68b7ba14a648c8a17bdaff7b26eb923 l1BlockNumber=1681599 firstL2BlockNumber=1347115 lastL2BlockNumber=1347129
    I[2024-06-06|15:57:35.669] new l2 block success module=derivation blockNumber=1347115
    +

    You can use the following command to check the newest block height to make sure you are aligned.

    +
    curl --location --request POST 'localhost:8545/' \
    --header 'Content-Type: application/json' \
    --data-raw '{
    "jsonrpc":"2.0",
    "method":"eth_blockNumber",
    "id":1
    }'
    {"jsonrpc":"2.0","id":1,"result":"0x148e39"}
    +

    Make sure you check the validator status constantly, if you find response

    +
    [2024-06-14|16:43:50.904] root hash or withdrawal hash is not equal    originStateRootHash=0x13f91d1c272e48e2d864ce7bfb421506d5b2a04def64d45c75391cdcdd69cd78 deriveStateRootHash=0x27e10420c0e34676a7d75c4189d7ccd1c3407cc8fd0b3eafb01c15e250a1215f batchWithdrawalRoot=0xa3e4a7cf45c7591a6bd9868f1fa7485ae345f10067acaade5f5b07d418b2e172 deriveWithdrawalRoot=0xa3e4a7cf45c7591a6bd9868f1fa7485ae345f10067acaade5f5b07d418b2e172
    +

    This means your validators find inconsistent between sequencer submission and your own observation.

    + + \ No newline at end of file diff --git a/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/account-abstraction/index.html b/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/account-abstraction/index.html index c9ca1766f..a5a5979e0 100644 --- a/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/account-abstraction/index.html +++ b/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/account-abstraction/index.html @@ -3,14 +3,19 @@ -Account Abstraction | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +Account Abstraction | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + - + \ No newline at end of file diff --git a/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/artificial-intelligence.htm/index.html b/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/artificial-intelligence.htm/index.html new file mode 100644 index 000000000..c09b02aac --- /dev/null +++ b/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/artificial-intelligence.htm/index.html @@ -0,0 +1,11 @@ + + + + + + + + + \ No newline at end of file diff --git a/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/artificial-intelligence.html/index.html b/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/artificial-intelligence.html/index.html new file mode 100644 index 000000000..c09b02aac --- /dev/null +++ b/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/artificial-intelligence.html/index.html @@ -0,0 +1,11 @@ + + + + + + + + + \ No newline at end of file diff --git a/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/artificial-intelligence/index.html b/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/artificial-intelligence/index.html new file mode 100644 index 000000000..f222e8f74 --- /dev/null +++ b/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/artificial-intelligence/index.html @@ -0,0 +1,21 @@ + + + + + +Artificial Intelligence | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + + + + + + \ No newline at end of file diff --git a/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/block-explorer/index.html b/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/block-explorer/index.html index 557155a9e..4bee41997 100644 --- a/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/block-explorer/index.html +++ b/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/block-explorer/index.html @@ -3,14 +3,18 @@ -Block Explorer | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +Block Explorer | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + - + \ No newline at end of file diff --git a/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-indexing-services/index.html b/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-indexing-services/index.html index acce9b2af..b76f22e65 100644 --- a/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-indexing-services/index.html +++ b/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-indexing-services/index.html @@ -3,22 +3,26 @@ -Blockchain Indexing Services | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +Blockchain Indexing Services | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    Blockchain Indexing Services

    Goldsky

    -

    goldsky

    +

    Blockchain Indexing Services

    Goldsky

    +

    goldsky

    We have partnered with Goldsky to provide indexing and subgraph services for Morph Holesky and Morph Mainnet.

    Goldsky also allow us to grant selected developers with free subgraph services now. If you want to deploy a subgraph with Goldsky, please raise a ticket in our Discord to let us know how we can help.

    For more information, please refer to their documentation.

    -

    Envio

    -

    envio

    +

    Envio

    +

    envio

    Envio is a modern, multi-chain EVM blockchain indexing framework speed-optimized for querying real-time and historical data on Morph Holesky and Morph Mainnet.

    Designed with a core focus on delivering superior performance and seamless developer experience, Envio empowers the next generation of consumer apps.

    The Quickstart allows you to instantly autogenerate a basic indexer and query your smart contract data on Morph. This is the quickest way to get going and likely the starting point for most developers.

    For more information, please refer to their documentation.

    -

    Click here for live indexer examples to be inspired.

    +

    Click here for live indexer examples to be inspired.

    \ No newline at end of file diff --git a/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-oracles/index.html b/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-oracles/index.html index f7243a95b..933aab954 100644 --- a/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-oracles/index.html +++ b/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/blockchain-oracles/index.html @@ -3,19 +3,23 @@ -Blockchain Oracles | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +Blockchain Oracles | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    Blockchain Oracles

    Pyth Network

    -

    pyth

    + +

    Full price feeds and docs can be found here : https://eoracle.gitbook.io/eoracle/price-feeds/feed-addresses.

    \ No newline at end of file diff --git a/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/cross-chain-interoperability.htm/index.html b/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/cross-chain-interoperability.htm/index.html new file mode 100644 index 000000000..ced85577b --- /dev/null +++ b/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/cross-chain-interoperability.htm/index.html @@ -0,0 +1,11 @@ + + + + + + + + + \ No newline at end of file diff --git a/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/cross-chain-interoperability.html/index.html b/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/cross-chain-interoperability.html/index.html new file mode 100644 index 000000000..ced85577b --- /dev/null +++ b/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/cross-chain-interoperability.html/index.html @@ -0,0 +1,11 @@ + + + + + + + + + \ No newline at end of file diff --git a/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/cross-chain-interoperability/index.html b/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/cross-chain-interoperability/index.html new file mode 100644 index 000000000..a0fbea3fd --- /dev/null +++ b/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/cross-chain-interoperability/index.html @@ -0,0 +1,21 @@ + + + + + +Cross Chain Interoperability | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + + + + + + \ No newline at end of file diff --git a/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/decentralized-naming-services.htm/index.html b/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/decentralized-naming-services.htm/index.html new file mode 100644 index 000000000..f32710516 --- /dev/null +++ b/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/decentralized-naming-services.htm/index.html @@ -0,0 +1,11 @@ + + + + + + + + + \ No newline at end of file diff --git a/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/decentralized-naming-services.html/index.html b/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/decentralized-naming-services.html/index.html new file mode 100644 index 000000000..f32710516 --- /dev/null +++ b/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/decentralized-naming-services.html/index.html @@ -0,0 +1,11 @@ + + + + + + + + + \ No newline at end of file diff --git a/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/decentralized-naming-services/index.html b/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/decentralized-naming-services/index.html new file mode 100644 index 000000000..36d322e4a --- /dev/null +++ b/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/decentralized-naming-services/index.html @@ -0,0 +1,42 @@ + + + + + +Decentralized Naming Services | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + + + +
    Skip to main content

    Decentralized Naming Services

    SpaceID

    +

    Space ID

    +

    Space ID offers a universal namespace for blockchain, enabling users to register and manage domain names across different blockchains. It enhances cross-chain interoperability and simplifies user identification across the Web3 ecosystem. This project supports a broad range of applications, from crypto trading to token lending and NFT minting, showcasing a versatile approach to decentralized digital identities.

    +

    Space ID has launched the .mph domain specific for Morph. If you are looking for integration, please refer to this doc

    +

    The Space ID .mph domain integration

    +

    How SpaceID works

    +

    SPACE ID aims to create a universal name service network that connects decentralized identities with the physical and digital worlds. It is progressing toward becoming a comprehensive digital identity solution for Web3. Read the details here

    +

    Key features of SpaceID

    +

    Multi-Chain Name Service

    +

    Among the top priorities of SPACE ID is supporting more blockchains and top-level domains (TLDs). Unlike SPACE ID 1.0, whose main emphasis was on .bnb Name Service, SPACE ID 2.0 instead focuses on multi-chain name service. SPACE ID has reached out to various blockchains for partnership discussions, and expects its ecosystem to flourish with time.

    +

    Web3 Name SDK & API

    +

    SPACE ID aims to streamline web3 services through the use of a single SDK to assist in the building of DApps. This saves developers time, since they don’t have to work with multiple protocols and be encumbered with issues of blockchain incompatibility. This vision is being realized by adding an all-in-one API over the SDK, allowing current and future partners to seamlessly integrate their web3 services with their unified Web3 Name SDK.

    +

    Benefits of DNS

    +
      +
    • Simplified Address Management: Users can use easy-to-remember names instead of long hexadecimal addresses, reducing the risk of errors in transactions.
    • +
    • Interoperability: SpaceID names can point to various types of addresses and resources, supporting multiple blockchain networks and off-chain data.
    • +
    • Decentralization: SpaceID is built on blockchain, ensuring that no single entity controls the naming system, which enhances security and censorship resistance.
    • +
    • Flexibility: Domain owners have full control over their domains, including the ability to create subdomains, update addresses, and manage metadata.
    • +
    +

    Use Case of SpaceID

    +
      +
    • Cryptocurrency Wallets: Users can receive payments using simple names instead of complex addresses.
    • +
    • Decentralized Websites: SpaceID names can point to Greenfield content, enabling decentralized websites.
    • +
    • Identity Management: SpaceID can be used as part of a decentralized identity system, linking a user’s SpaceID to their decentralized identifiers and attestations.
    • +
    • DApps and Smart Contracts: Developers can use SpaceID to provide human-readable names for their smart contracts and decentralized applications, improving user experience.
    • +
    + + \ No newline at end of file diff --git a/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/rpc-services/index.html b/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/rpc-services/index.html index b3a61da0a..0dbf1d979 100644 --- a/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/rpc-services/index.html +++ b/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/rpc-services/index.html @@ -3,16 +3,24 @@ -RPC Services | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +RPC Services | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    RPC Services

    Quicknode

    + +

    QuickNode

    +

    Tenderly

    +

    Tenderly is a full-stack Web3 infrastructure – node RPC, dev environments & exploration tools.

    +

    Build & scale with ease. Get started here

    +

    tenderly

    \ No newline at end of file diff --git a/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/safe-multi-signature-wallet/index.html b/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/safe-multi-signature-wallet/index.html index d1f5c7515..b6fcc59e7 100644 --- a/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/safe-multi-signature-wallet/index.html +++ b/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/safe-multi-signature-wallet/index.html @@ -3,16 +3,20 @@ -Safe Multi-Signature Wallet | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +Safe Multi-Signature Wallet | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    Safe Multi-Signature Wallet

    What is Morph Safe?

    -

    safemultisig

    +

    Safe Multi-Signature Wallet

    What is Morph Safe?

    +

    safemultisig

    Morph Safe is a fork managed by the Morph team in collaboration with Protofire, an official partner of the Safe team. It is a multi-signature smart contract wallet, which means it requires a minimum number of signatures to approve a transaction before it can occur.

    For example, if your business has three main stakeholders, you can configure the wallet to require approval from either two out of three or all three individuals before a transaction can proceed. This security measure ensures that no single person can compromise the funds.

    In addition to robust security, Morph Safe offers complete self-custody over funds. The smart contract deployed for the wallet has full control over the wallet's contents and does not rely on any trusted external party for execution.

    -

    To create your Morph Mainnet Safe wallet click here.

    +

    To create your Morph Mainnet Safe wallet click here.

    \ No newline at end of file diff --git a/build/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node-docker.html/index.html b/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/user-onboarding.htm/index.html similarity index 62% rename from build/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node-docker.html/index.html rename to build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/user-onboarding.htm/index.html index 1cabced23..6a82f049a 100644 --- a/build/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node-docker.html/index.html +++ b/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/user-onboarding.htm/index.html @@ -2,10 +2,10 @@ - - + + \ No newline at end of file diff --git a/build/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node-docker.htm/index.html b/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/user-onboarding.html/index.html similarity index 62% rename from build/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node-docker.htm/index.html rename to build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/user-onboarding.html/index.html index 1cabced23..6a82f049a 100644 --- a/build/docs/build-on-morph/developer-resources/node-operation/how-to-run-a-morph-node-docker.htm/index.html +++ b/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/user-onboarding.html/index.html @@ -2,10 +2,10 @@ - - + + \ No newline at end of file diff --git a/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/user-onboarding/index.html b/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/user-onboarding/index.html new file mode 100644 index 000000000..d0b229199 --- /dev/null +++ b/build/docs/build-on-morph/developer-resources/use-ecosystem-developer-tools/user-onboarding/index.html @@ -0,0 +1,32 @@ + + + + + +User Onboarding | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + + + +
    Skip to main content

    User Onboarding

    +

    Reown (prev. known as WalletConnect)

    +

    Reown gives developers the tools to build user experiences that make digital ownership effortless, intuitive, and secure.

    +

    Reown has two major product offerings, they are, AppKit and WalletKit.

    +

    AppKit

    +

    AppKit is a powerful, free, and fully open-source SDK for developers looking to integrate wallet connections and other Web3 functionalities into their apps on any EVM and non-EVM chain. In just a few simple steps, you can provide your users with seamless wallet access, one-click authentication, social logins, and notifications—streamlining their experience while enabling advanced features like on-ramp functionality, in-app token swaps and smart accounts.

    +

    WalletKit

    +

    WalletKit is a robust, open-source SDK designed to empower seamless wallet connections and interactions across any blockchain. With WalletKit, you can offer your users a simple and secure way to connect with thousands of apps, enabling features like one-click authentication, secure transaction signing, and streamlined wallet address verification. Its chain-agnostic design ensures effortless multi-chain support, eliminating the need for complex integrations while delivering unmatched connectivity and security.

    +

    To summarize, AppKit is for Web3 applications and WalletKit is for Web3 wallets.

    +

    You will be able to use Reown AppKit to power end-to-end wallet interactions on your Web3 app deployed on Morph.

    +

    Some links to learn more about Reown:

    +
    + + \ No newline at end of file diff --git a/build/docs/build-on-morph/intro/index.html b/build/docs/build-on-morph/intro/index.html index aa3a8f254..4e21dd555 100644 --- a/build/docs/build-on-morph/intro/index.html +++ b/build/docs/build-on-morph/intro/index.html @@ -3,22 +3,26 @@ -Developer Docs | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +Developer Docs | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    Developer Docs

    Welcome to Morph’s Developer Docs!

    +

    Developer Docs

    Welcome to Morph’s Developer Docs!

    Are you eager to build applications on Morph but unsure where to start?

    You're in the right place – we've got you covered!

    -

    devintro

    +

    devintro

    As the first optimistic zkEVM Ethereum Layer 2 solution, Morph is 100% EVM compatible.

    Building on morph is just like building on Ethereum. If you’re experienced in Ethereum development, you'll find your existing code, tooling, and dependencies are fully compatible with Morph.

    -

    What's next

    +

    What's next

    Depending on what do you need

    -

    Engage in Our Developer Community

    +

    Engage in Our Developer Community

    We're actively enhancing our network with more integrations and support infrastructure, progressing towards our Mainnet release.

    -

    Join our growing developer community. You can find us on Discord, join our discussion forum, or follow our progress on Twitter.

    +

    Join our growing developer community. You can find us on Discord, join our discussion forum, or follow our progress on Twitter.

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/classes/CrossChainMessenger/index.html b/build/docs/build-on-morph/sdk/classes/CrossChainMessenger/index.html index a03fc0108..6a24b3f08 100644 --- a/build/docs/build-on-morph/sdk/classes/CrossChainMessenger/index.html +++ b/build/docs/build-on-morph/sdk/classes/CrossChainMessenger/index.html @@ -3,22 +3,26 @@ -CrossChainMessenger | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +CrossChainMessenger | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / CrossChainMessenger

    Class: CrossChainMessenger

    -

    Constructors

    -

    new CrossChainMessenger()

    +

    Constructors

    +

    new CrossChainMessenger()

    new CrossChainMessenger(opts): CrossChainMessenger

    Creates a new CrossChainProvider instance.

    -

    Parameters

    +

    Parameters

    opts

    Options for the provider.

    opts.backendURL?: string

    @@ -35,47 +39,47 @@

    ParametersChain ID for the L2 chain.

    opts.l2SignerOrProvider: SignerOrProviderLike

    Signer or Provider for the L2 chain, or a JSON-RPC url.

    -

    Returns

    +

    Returns

    CrossChainMessenger

    -

    Source

    +

    Source

    src/cross-chain-messenger.ts:130

    -

    Properties

    -

    backendURL

    +

    Properties

    +

    backendURL

    backendURL: string

    Backend url for withdrawal prove server

    -

    Source

    +

    Source

    src/cross-chain-messenger.ts:76


    -

    bridges

    +

    bridges

    bridges: BridgeAdapters

    List of custom bridges for the given network.

    -

    Source

    +

    Source

    src/cross-chain-messenger.ts:116


    -

    contracts

    +

    contracts

    contracts: OEContracts

    Contract objects attached to their respective providers and addresses.

    -

    Source

    +

    Source

    src/cross-chain-messenger.ts:111


    -

    estimateGas

    +

    estimateGas

    estimateGas: object

    Object that holds the functions that estimates the gas required for a given transaction. Follows the pattern used by ethers.js.

    -

    approveERC20()

    +

    approveERC20()

    approveERC20: (l1Token, l2Token, amount, opts?) => Promise<BigNumber>

    Estimates gas required to approve some tokens to deposit into the L2 chain.

    -
    Parameters
    +
    Parameters

    l1Token: AddressLike

    The L1 token address.

    l2Token: AddressLike

    @@ -84,14 +88,14 @@
    ParametersAmount of the token to approve.

    opts?: IActionOptions

    Additional options.

    -
    Returns
    +
    Returns

    Promise<BigNumber>

    -

    depositERC20()

    +

    depositERC20()

    depositERC20: (l1Token, l2Token, amount, opts?) => Promise<BigNumber>

    Estimates gas required to deposit some ERC20 tokens into the L2 chain.

    -
    Parameters
    +
    Parameters

    l1Token: AddressLike

    Address of the L1 token.

    l2Token: AddressLike

    @@ -100,50 +104,50 @@
    ParametersAmount to deposit.

    opts?: IActionOptions

    Additional options.

    -
    Returns
    +
    Returns

    Promise<BigNumber>

    -

    depositETH()

    +

    depositETH()

    depositETH: (amount, opts?) => Promise<BigNumber>

    Estimates gas required to deposit some ETH into the L2 chain.

    -
    Parameters
    +
    Parameters

    amount: NumberLike

    Amount of ETH to deposit.

    opts?: IActionOptions

    Additional options.

    -
    Returns
    +
    Returns

    Promise<BigNumber>

    -

    proveAndRelayMessage()

    +

    proveAndRelayMessage()

    proveAndRelayMessage: (message, opts?) => Promise<BigNumber>

    Estimates gas required to proveAndRelay a cross chain message. Only applies to L2 to L1 messages.

    -
    Parameters
    +
    Parameters

    message: MessageLike

    Message to generate the proving transaction for.

    opts?: IActionOptions

    Additional options.

    -
    Returns
    +
    Returns

    Promise<BigNumber>

    -

    sendMessage()

    +

    sendMessage()

    sendMessage: (message, opts?) => Promise<BigNumber>

    Estimates gas required to send a cross chain message.

    -
    Parameters
    +
    Parameters

    message: CrossChainMessageRequest

    Cross chain message to send.

    opts?: IActionOptions

    Additional options.

    -
    Returns
    +
    Returns

    Promise<BigNumber>

    -

    withdrawERC20()

    +

    withdrawERC20()

    withdrawERC20: (l1Token, l2Token, amount, opts?) => Promise<BigNumber>

    Estimates gas required to withdraw some ERC20 tokens back to the L1 chain.

    -
    Parameters
    +
    Parameters

    l1Token: AddressLike

    Address of the L1 token.

    l2Token: AddressLike

    @@ -152,83 +156,83 @@
    ParametersAmount to withdraw.

    opts?: IActionOptions

    Additional options.

    -
    Returns
    +
    Returns

    Promise<BigNumber>

    -

    withdrawETH()

    +

    withdrawETH()

    withdrawETH: (amount, opts?) => Promise<BigNumber>

    Estimates gas required to withdraw some ETH back to the L1 chain.

    -
    Parameters
    +
    Parameters

    amount: NumberLike

    Amount of ETH to withdraw.

    opts?: IActionOptions

    Additional options.

    -
    Returns
    +
    Returns

    Promise<BigNumber>

    -

    Source

    +

    Source

    src/cross-chain-messenger.ts:1600


    -

    l1ChainId

    +

    l1ChainId

    l1ChainId: number

    Chain ID for the L1 network.

    -

    Source

    +

    Source

    src/cross-chain-messenger.ts:101


    -

    l1CrossDomainMessenger

    +

    l1CrossDomainMessenger

    l1CrossDomainMessenger: Contract

    CrossDomainMessenger connected to the L1 chain.

    -

    Source

    +

    Source

    src/cross-chain-messenger.ts:91


    -

    l1SignerOrProvider

    +

    l1SignerOrProvider

    l1SignerOrProvider: Provider | Signer

    Provider connected to the L1 chain.

    -

    Source

    +

    Source

    src/cross-chain-messenger.ts:81


    -

    l2ChainId

    +

    l2ChainId

    l2ChainId: number

    Chain ID for the L2 network.

    -

    Source

    +

    Source

    src/cross-chain-messenger.ts:106


    -

    l2CrossDomainMessenger

    +

    l2CrossDomainMessenger

    l2CrossDomainMessenger: Contract

    CrossDomainMessenger connected to the L2 chain.

    -

    Source

    +

    Source

    src/cross-chain-messenger.ts:96


    -

    l2SignerOrProvider

    +

    l2SignerOrProvider

    l2SignerOrProvider: Provider | Signer

    Provider connected to the L2 chain.

    -

    Source

    +

    Source

    src/cross-chain-messenger.ts:86


    -

    populateTransaction

    +

    populateTransaction

    populateTransaction: object

    Object that holds the functions that generate transactions to be signed by the user. Follows the pattern used by ethers.js.

    -

    approveERC20()

    +

    approveERC20()

    approveERC20: (l1Token, l2Token, amount, opts?) => Promise<TransactionRequest>

    Generates a transaction for approving some tokens to deposit into the L2 chain.

    -
    Parameters
    +
    Parameters

    l1Token: AddressLike

    The L1 token address.

    l2Token: AddressLike

    @@ -237,14 +241,14 @@
    ParametersAmount of the token to approve.

    opts?: IActionOptions

    Additional options.

    -
    Returns
    +
    Returns

    Promise<TransactionRequest>

    -

    depositERC20()

    +

    depositERC20()

    depositERC20: (l1Token, l2Token, amount, opts?, isEstimatingGas) => Promise<TransactionRequest>

    Generates a transaction for depositing some ERC20 tokens into the L2 chain.

    -
    Parameters
    +
    Parameters

    l1Token: AddressLike

    Address of the L1 token.

    l2Token: AddressLike

    @@ -254,53 +258,53 @@
    Parametersopts?: IActionOptions

    Additional options.

    isEstimatingGas?: boolean= false

    -
    Returns
    +
    Returns

    Promise<TransactionRequest>

    -

    depositETH()

    +

    depositETH()

    depositETH: (amount, opts?, isEstimatingGas) => Promise<TransactionRequest>

    Generates a transaction for depositing some ETH into the L2 chain.

    -
    Parameters
    +
    Parameters

    amount: NumberLike

    Amount of ETH to deposit.

    opts?: IActionOptions

    Additional options.

    isEstimatingGas?: boolean= false

    -
    Returns
    +
    Returns

    Promise<TransactionRequest>

    -

    proveAndRelayMessage()

    +

    proveAndRelayMessage()

    proveAndRelayMessage: (message, opts?) => Promise<TransactionRequest>

    Generates a message proving and relaying transaction that can be signed and executed. Only applicable for L2 to L1 messages.

    -
    Parameters
    +
    Parameters

    message: MessageLike

    Message to generate the proving transaction for.

    opts?: IActionOptions

    Additional options.

    -
    Returns
    +
    Returns

    Promise<TransactionRequest>

    -

    sendMessage()

    +

    sendMessage()

    sendMessage: (message, opts?) => Promise<TransactionRequest>

    Generates a transaction that sends a given cross chain message. This transaction can be signed and executed by a signer.

    -
    Parameters
    +
    Parameters

    message: CrossChainMessageRequest

    Cross chain message to send.

    opts?: IActionOptions

    Additional options.

    -
    Returns
    +
    Returns

    Promise<TransactionRequest>

    -

    withdrawERC20()

    +

    withdrawERC20()

    withdrawERC20: (l1Token, l2Token, amount, opts?, isEstimatingGas?) => Promise<TransactionRequest>

    Generates a transaction for withdrawing some ERC20 tokens back to the L1 chain.

    -
    Parameters
    +
    Parameters

    l1Token: AddressLike

    Address of the L1 token.

    l2Token: AddressLike

    @@ -310,88 +314,88 @@
    Parametersopts?: IActionOptions

    Additional options.

    isEstimatingGas?: boolean

    -
    Returns
    +
    Returns

    Promise<TransactionRequest>

    -

    withdrawETH()

    +

    withdrawETH()

    withdrawETH: (amount, opts?, isEstimatingGas?) => Promise<TransactionRequest>

    Generates a transaction for withdrawing some ETH back to the L1 chain.

    -
    Parameters
    +
    Parameters

    amount: NumberLike

    Amount of ETH to withdraw.

    opts?: IActionOptions

    Additional options.

    isEstimatingGas?: boolean

    -
    Returns
    +
    Returns

    Promise<TransactionRequest>

    -

    Source

    +

    Source

    src/cross-chain-messenger.ts:1304

    -

    Accessors

    -

    l1Provider

    +

    Accessors

    +

    l1Provider

    get l1Provider(): Provider

    Provider connected to the L1 chain.

    -

    Returns

    +

    Returns

    Provider

    -

    Source

    +

    Source

    src/cross-chain-messenger.ts:193


    -

    l1Signer

    +

    l1Signer

    get l1Signer(): Signer

    Signer connected to the L1 chain.

    -

    Returns

    +

    Returns

    Signer

    -

    Source

    +

    Source

    src/cross-chain-messenger.ts:215


    -

    l2Provider

    +

    l2Provider

    get l2Provider(): Provider

    Provider connected to the L2 chain.

    -

    Returns

    +

    Returns

    Provider

    -

    Source

    +

    Source

    src/cross-chain-messenger.ts:204


    -

    l2Signer

    +

    l2Signer

    get l2Signer(): Signer

    Signer connected to the L2 chain.

    -

    Returns

    +

    Returns

    Signer

    -

    Source

    +

    Source

    src/cross-chain-messenger.ts:226

    -

    Methods

    -

    approval()

    +

    Methods

    +

    approval()

    approval(l1Token, l2Token, opts?): Promise<BigNumber>

    Queries the account's approval amount for a given L1 token.

    -

    Parameters

    +

    Parameters

    l1Token: AddressLike

    The L1 token address.

    l2Token: AddressLike

    The L2 token address.

    opts?: IActionOptions

    Additional options.

    -

    Returns

    +

    Returns

    Promise<BigNumber>

    Amount of tokens approved for deposits from the account.

    -

    Source

    +

    Source

    src/cross-chain-messenger.ts:1214


    -

    approveERC20()

    +

    approveERC20()

    approveERC20(l1Token, l2Token, amount, opts?): Promise<TransactionResponse>

    Approves a deposit into the L2 chain.

    -

    Parameters

    +

    Parameters

    l1Token: AddressLike

    The L1 token address.

    l2Token: AddressLike

    @@ -400,18 +404,18 @@

    ParametersAmount of the token to approve.

    opts?: IActionOptions

    Additional options.

    -

    Returns

    +

    Returns

    Promise<TransactionResponse>

    Transaction response for the approval transaction.

    -

    Source

    +

    Source

    src/cross-chain-messenger.ts:1233


    -

    depositERC20()

    +

    depositERC20()

    depositERC20(l1Token, l2Token, amount, opts?): Promise<TransactionResponse>

    Deposits some ERC20 tokens into the L2 chain.

    -

    Parameters

    +

    Parameters

    l1Token: AddressLike

    Address of the L1 token.

    l2Token: AddressLike

    @@ -420,34 +424,34 @@

    ParametersAmount to deposit.

    opts?: IActionOptions

    Additional options.

    -

    Returns

    +

    Returns

    Promise<TransactionResponse>

    Transaction response for the deposit transaction.

    -

    Source

    +

    Source

    src/cross-chain-messenger.ts:1256


    -

    depositETH()

    +

    depositETH()

    depositETH(amount, opts?): Promise<TransactionResponse>

    Deposits some ETH into the L2 chain.

    -

    Parameters

    +

    Parameters

    amount: NumberLike

    Amount of ETH to deposit (in wei).

    opts?: IActionOptions

    Additional options.

    -

    Returns

    +

    Returns

    Promise<TransactionResponse>

    Transaction response for the deposit transaction.

    -

    Source

    +

    Source

    src/cross-chain-messenger.ts:1183


    -

    encodeFunctionMessage()

    +

    encodeFunctionMessage()

    encodeFunctionMessage(options): string

    L2CrossDomainMessenger contract encode message, such as hashCrossDomainMessagev1

    -

    Parameters

    +

    Parameters

    options

    options.message: string

    The message passed along with the cross domain message

    @@ -459,18 +463,18 @@

    ParametersThe target of the cross domain message

    options.value: BigNumber

    The value being sent with the cross domain message

    -

    Returns

    +

    Returns

    string

    -

    Source

    +

    Source

    src/cross-chain-messenger.ts:972


    -

    estimateL2MessageGasLimit()

    +

    estimateL2MessageGasLimit()

    estimateL2MessageGasLimit(message, opts?): Promise<BigNumber>

    Estimates the amount of gas required to fully execute a given message on L2. Only applies to L1 => L2 messages. You would supply this gas limit when sending the message to L2.

    -

    Parameters

    +

    Parameters

    message: MessageRequestLike

    Message get a gas estimate for.

    opts?

    @@ -479,53 +483,53 @@

    ParametersPercentage of gas to add to the estimate. Defaults to 20.

    opts.from?: string

    Address to use as the sender.

    -

    Returns

    +

    Returns

    Promise<BigNumber>

    Estimates L2 gas limit.

    -

    Source

    +

    Source

    src/cross-chain-messenger.ts:918


    -

    getBackendTreeSyncIndex()

    +

    getBackendTreeSyncIndex()

    getBackendTreeSyncIndex(): Promise<number>

    -

    Returns

    +

    Returns

    Promise<number>

    -

    Source

    +

    Source

    src/cross-chain-messenger.ts:1122


    -

    getBridgeForTokenPair()

    +

    getBridgeForTokenPair()

    getBridgeForTokenPair(l1Token, l2Token): Promise<IBridgeAdapter>

    Finds the appropriate bridge adapter for a given L1 - L2 token pair. Will throw if no bridges support the token pair or if more than one bridge supports the token pair.

    -

    Parameters

    +

    Parameters

    l1Token: AddressLike

    L1 token address.

    l2Token: AddressLike

    L2 token address.

    -

    Returns

    +

    Returns

    Promise<IBridgeAdapter>

    The appropriate bridge adapter for the given token pair.

    -

    Source

    +

    Source

    src/cross-chain-messenger.ts:378


    -

    getCommittedL2BlockNumber()

    +

    getCommittedL2BlockNumber()

    getCommittedL2BlockNumber(): Promise<any>

    -

    Returns

    +

    Returns

    Promise<any>

    -

    Source

    +

    Source

    src/cross-chain-messenger.ts:995


    -

    getDepositsByAddress()

    +

    getDepositsByAddress()

    getDepositsByAddress(address, opts): Promise<TokenBridgeMessage[]>

    Gets all deposits for a given address.

    -

    Parameters

    +

    Parameters

    address: AddressLike

    Address to search for messages from.

    opts= {}

    @@ -536,60 +540,60 @@

    Parametersopts.toBlock?: BlockTag

    Block to stop searching for messages at. If not provided, will stop at the latest known block ("latest").

    -

    Returns

    +

    Returns

    Promise<TokenBridgeMessage[]>

    All deposit token bridge messages sent by the given address.

    -

    Source

    +

    Source

    src/cross-chain-messenger.ts:424


    -

    getFinalizedL2BlockNumber()

    +

    getFinalizedL2BlockNumber()

    getFinalizedL2BlockNumber(): Promise<any>

    -

    Returns

    +

    Returns

    Promise<any>

    -

    Source

    +

    Source

    src/cross-chain-messenger.ts:1017


    -

    getMessageReceipt()

    +

    getMessageReceipt()

    getMessageReceipt(message, opts): Promise<MessageReceipt>

    Finds the receipt of the transaction that executed a particular cross chain message.

    -

    Parameters

    +

    Parameters

    message: MessageLike

    Message to find the receipt of.

    opts= {}

    opts.direction?: MessageDirection

    -

    Returns

    +

    Returns

    Promise<MessageReceipt>

    CrossChainMessage receipt including receipt of the transaction that relayed the given message.

    -

    Source

    +

    Source

    src/cross-chain-messenger.ts:757


    -

    getMessageStatus()

    +

    getMessageStatus()

    getMessageStatus(message, opts): Promise<MessageStatus>

    Retrieves the status of a particular message as an enum.

    -

    Parameters

    +

    Parameters

    message: MessageLike

    Cross chain message to check the status of.

    opts= {}

    opts.direction?: MessageDirection

    -

    Returns

    +

    Returns

    Promise<MessageStatus>

    Status of the message.

    -

    Source

    +

    Source

    src/cross-chain-messenger.ts:634


    -

    getMessagesByTransaction()

    +

    getMessagesByTransaction()

    getMessagesByTransaction(transaction, opts): Promise<CrossChainMessage[]>

    Retrieves all cross chain messages sent within a given transaction.

    -

    Parameters

    +

    Parameters

    transaction: TransactionLike

    Transaction hash or receipt to find messages from.

    opts= {}

    @@ -598,46 +602,46 @@

    ParametersDirection to search for messages in. If not provided, will attempt to automatically search both directions under the assumption that a transaction hash will only exist on one chain. If the hash exists on both chains, will throw an error.

    -

    Returns

    +

    Returns

    Promise<CrossChainMessage[]>

    All cross chain messages sent within the transaction.

    -

    Source

    +

    Source

    src/cross-chain-messenger.ts:244


    -

    getProvenWithdrawal()

    +

    getProvenWithdrawal()

    getProvenWithdrawal(withdrawalHash): Promise<ProvenWithdrawal>

    Queries the L1CrossDomainMessenger contract's provenWithdrawals mapping for a ProvenWithdrawal that matches the passed withdrawalHash

    -

    Parameters

    +

    Parameters

    withdrawalHash: string

    -

    Returns

    +

    Returns

    Promise<ProvenWithdrawal>

    A ProvenWithdrawal object

    -

    Source

    +

    Source

    src/cross-chain-messenger.ts:957


    -

    getWithdrawMessageProof()

    +

    getWithdrawMessageProof()

    getWithdrawMessageProof(message): Promise<WithdrawMessageProof>

    Generates the proof required to finalize an L2 to L1 message.

    -

    Parameters

    +

    Parameters

    message: MessageLike

    Message to generate a proof for.

    -

    Returns

    +

    Returns

    Promise<WithdrawMessageProof>

    Proof that can be used to finalize the message.

    -

    Source

    +

    Source

    src/cross-chain-messenger.ts:1042


    -

    getWithdrawalsByAddress()

    +

    getWithdrawalsByAddress()

    getWithdrawalsByAddress(address, opts): Promise<TokenBridgeMessage[]>

    Gets all withdrawals for a given address.

    -

    Parameters

    +

    Parameters

    address: AddressLike

    Address to search for messages from.

    opts= {}

    @@ -648,47 +652,47 @@

    Parametersopts.toBlock?: BlockTag

    Block to stop searching for messages at. If not provided, will stop at the latest known block ("latest").

    -

    Returns

    +

    Returns

    Promise<TokenBridgeMessage[]>

    All withdrawal token bridge messages sent by the given address.

    -

    Source

    +

    Source

    src/cross-chain-messenger.ts:458


    -

    proveAndRelayMessage()

    +

    proveAndRelayMessage()

    proveAndRelayMessage(message, opts?): Promise<TransactionResponse>

    Prove and relay a cross chain message that was sent from L2 to L1. Only applicable for L2 to L1 messages.

    -

    Parameters

    +

    Parameters

    message: MessageLike

    Message to finalize.

    opts?: IActionOptions

    Additional options.

    -

    Returns

    +

    Returns

    Promise<TransactionResponse>

    Transaction response for the finalization transaction.

    -

    Source

    +

    Source

    src/cross-chain-messenger.ts:1163


    -

    sendMessage()

    +

    sendMessage()

    sendMessage(message, opts?): Promise<TransactionResponse>

    Sends a given cross chain message. Where the message is sent depends on the direction attached to the message itself.

    -

    Parameters

    +

    Parameters

    message: CrossChainMessageRequest

    Cross chain message to send.

    opts?: IActionOptions

    Additional options.

    -

    Returns

    +

    Returns

    Promise<TransactionResponse>

    Transaction response for the message sending transaction.

    -

    Source

    +

    Source

    src/cross-chain-messenger.ts:1143


    -

    toCrossChainMessage()

    +

    toCrossChainMessage()

    toCrossChainMessage(message, opts?): Promise<CrossChainMessage>

    @@ -697,52 +701,52 @@

    toCrossC requests. For now I'm going to keep this function here, but we could consider putting a similar function inside of utils/coercion.ts if people want to use this without having to create an entire CrossChainProvider object.

    -

    Parameters

    +

    Parameters

    message: MessageLike

    MessageLike to resolve into a CrossChainMessage.

    opts?

    opts.direction?: MessageDirection

    -

    Returns

    +

    Returns

    Promise<CrossChainMessage>

    Message coerced into a CrossChainMessage.

    -

    Source

    +

    Source

    src/cross-chain-messenger.ts:491


    -

    toLowLevelMessage()

    +

    toLowLevelMessage()

    toLowLevelMessage(message, opts?): Promise<LowLevelMessage>

    Transforms a CrossChainMessenger message into its low-level representation inside the L2ToL1MessagePasser contract on L2.

    -

    Parameters

    +

    Parameters

    message: MessageLike

    Message to transform.

    opts?

    opts.direction?: MessageDirection

    -

    Returns

    +

    Returns

    Promise<LowLevelMessage>

    Transformed message.

    -

    Source

    +

    Source

    src/cross-chain-messenger.ts:326


    -

    waitBatchFinalize()

    +

    waitBatchFinalize()

    waitBatchFinalize(transactionHash): Promise<void>

    -

    Parameters

    +

    Parameters

    transactionHash: string

    -

    Returns

    +

    Returns

    Promise<void>

    -

    Source

    +

    Source

    src/cross-chain-messenger.ts:600


    -

    waitForMessageReceipt()

    +

    waitForMessageReceipt()

    waitForMessageReceipt(message, opts): Promise<MessageReceipt>

    Waits for a message to be executed and returns the receipt of the transaction that executed the given message.

    -

    Parameters

    +

    Parameters

    message: MessageLike

    Message to wait for.

    opts= {}

    @@ -753,14 +757,14 @@

    ParametersNumber of milliseconds to wait between polling for the receipt.

    opts.timeoutMs?: number

    Milliseconds to wait before timing out.

    -

    Returns

    +

    Returns

    Promise<MessageReceipt>

    CrossChainMessage receipt including receipt of the transaction that relayed the given message.

    -

    Source

    +

    Source

    src/cross-chain-messenger.ts:802


    -

    waitForMessageStatus()

    +

    waitForMessageStatus()

    waitForMessageStatus(message, status, opts): Promise<void>

    @@ -768,7 +772,7 @@

    waitFor status of the given message changes to a status that implies the expected status, this will still return. If the status of the message changes to a status that exclues the expected status, this will throw an error.

    -

    Parameters

    +

    Parameters

    message: MessageLike

    Message to wait for.

    status: MessageStatus

    @@ -780,39 +784,39 @@

    ParametersNumber of milliseconds to wait when polling.

    opts.timeoutMs?: number

    Milliseconds to wait before timing out.

    -

    Returns

    +

    Returns

    Promise<void>

    -

    Source

    +

    Source

    src/cross-chain-messenger.ts:840


    -

    waitRollupSuccess()

    +

    waitRollupSuccess()

    waitRollupSuccess(transactionHash): Promise<void>

    -

    Parameters

    +

    Parameters

    transactionHash: string

    -

    Returns

    +

    Returns

    Promise<void>

    -

    Source

    +

    Source

    src/cross-chain-messenger.ts:552


    -

    waitSyncSuccess()

    +

    waitSyncSuccess()

    waitSyncSuccess(transactionHash): Promise<void>

    -

    Parameters

    +

    Parameters

    transactionHash: string

    -

    Returns

    +

    Returns

    Promise<void>

    -

    Source

    +

    Source

    src/cross-chain-messenger.ts:576


    -

    withdrawERC20()

    +

    withdrawERC20()

    withdrawERC20(l1Token, l2Token, amount, opts?): Promise<TransactionResponse>

    Withdraws some ERC20 tokens back to the L1 chain.

    -

    Parameters

    +

    Parameters

    l1Token: AddressLike

    Address of the L1 token.

    l2Token: AddressLike

    @@ -821,26 +825,26 @@

    ParametersAmount to withdraw.

    opts?: IActionOptions

    Additional options.

    -

    Returns

    +

    Returns

    Promise<TransactionResponse>

    Transaction response for the withdraw transaction.

    -

    Source

    +

    Source

    src/cross-chain-messenger.ts:1282


    -

    withdrawETH()

    +

    withdrawETH()

    withdrawETH(amount, opts?): Promise<TransactionResponse>

    Withdraws some ETH back to the L1 chain.

    -

    Parameters

    +

    Parameters

    amount: NumberLike

    Amount of ETH to withdraw.

    opts?: IActionOptions

    Additional options.

    -

    Returns

    +

    Returns

    Promise<TransactionResponse>

    Transaction response for the withdraw transaction.

    -

    Source

    -

    src/cross-chain-messenger.ts:1198

    +

    Source

    +

    src/cross-chain-messenger.ts:1198

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/classes/ETHBridgeAdapter/index.html b/build/docs/build-on-morph/sdk/classes/ETHBridgeAdapter/index.html index 85722b74c..b969994fa 100644 --- a/build/docs/build-on-morph/sdk/classes/ETHBridgeAdapter/index.html +++ b/build/docs/build-on-morph/sdk/classes/ETHBridgeAdapter/index.html @@ -3,27 +3,31 @@ -ETHBridgeAdapter | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +ETHBridgeAdapter | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / ETHBridgeAdapter

    Class: ETHBridgeAdapter

    Bridge adapter for the ETH bridge.

    -

    Extends

    +

    Extends

    -

    Constructors

    -

    new ETHBridgeAdapter()

    +

    Constructors

    +

    new ETHBridgeAdapter()

    new ETHBridgeAdapter(opts): ETHBridgeAdapter

    Creates a StandardBridgeAdapter instance.

    -

    Parameters

    +

    Parameters

    opts

    Options for the adapter.

    opts.l1Bridge: AddressLike

    @@ -32,157 +36,157 @@

    ParametersL2 bridge contract.

    opts.messenger: CrossChainMessenger

    Provider used to make queries related to cross-chain interactions.

    -

    Returns

    +

    Returns

    ETHBridgeAdapter

    -

    Inherited from

    +

    Inherited from

    StandardBridgeAdapter.constructor

    -

    Source

    +

    Source

    src/adapters/standard-bridge.ts:52

    -

    Properties

    -

    estimateGas

    +

    Properties

    +

    estimateGas

    estimateGas: object

    Object that holds the functions that estimates the gas required for a given transaction. Follows the pattern used by ethers.js.

    -

    approve()

    +

    approve()

    approve: (l1Token, l2Token, amount, opts?) => Promise<BigNumber>

    -
    Parameters
    +
    Parameters

    l1Token: AddressLike

    l2Token: AddressLike

    amount: NumberLike

    opts?: IActionOptions

    -
    Returns
    +
    Returns

    Promise<BigNumber>

    -

    deposit()

    +

    deposit()

    deposit: (l1Token, l2Token, amount, opts?) => Promise<BigNumber>

    -
    Parameters
    +
    Parameters

    l1Token: AddressLike

    l2Token: AddressLike

    amount: NumberLike

    opts?: IActionOptions

    -
    Returns
    +
    Returns

    Promise<BigNumber>

    -

    withdraw()

    +

    withdraw()

    withdraw: (l1Token, l2Token, amount, opts?) => Promise<BigNumber>

    -
    Parameters
    +
    Parameters

    l1Token: AddressLike

    l2Token: AddressLike

    amount: NumberLike

    opts?: IActionOptions

    -
    Returns
    +
    Returns

    Promise<BigNumber>

    -

    Inherited from

    +

    Inherited from

    StandardBridgeAdapter.estimateGas

    -

    Source

    +

    Source

    src/adapters/standard-bridge.ts:405


    -

    l1Bridge

    +

    l1Bridge

    l1Bridge: Contract

    L1 bridge contract.

    -

    Inherited from

    +

    Inherited from

    StandardBridgeAdapter.l1Bridge

    -

    Source

    +

    Source

    src/adapters/standard-bridge.ts:41


    -

    l2Bridge

    +

    l2Bridge

    l2Bridge: Contract

    L2 bridge contract.

    -

    Inherited from

    +

    Inherited from

    StandardBridgeAdapter.l2Bridge

    -

    Source

    +

    Source

    src/adapters/standard-bridge.ts:42


    -

    messenger

    +

    messenger

    messenger: CrossChainMessenger

    Provider used to make queries related to cross-chain interactions.

    -

    Inherited from

    +

    Inherited from

    StandardBridgeAdapter.messenger

    -

    Source

    +

    Source

    src/adapters/standard-bridge.ts:40


    -

    populateTransaction

    +

    populateTransaction

    populateTransaction: object

    Object that holds the functions that generate transactions to be signed by the user. Follows the pattern used by ethers.js.

    -

    approve()

    +

    approve()

    approve: (l1Token, l2Token, amount, opts?) => Promise<never>

    -
    Parameters
    +
    Parameters

    l1Token: AddressLike

    l2Token: AddressLike

    amount: NumberLike

    opts?: IActionOptions

    -
    Returns
    +
    Returns

    Promise<never>

    -

    deposit()

    +

    deposit()

    deposit: (l1Token, l2Token, amount, opts) => Promise<TransactionRequest>

    -
    Parameters
    +
    Parameters

    l1Token: AddressLike

    l2Token: AddressLike

    amount: NumberLike

    opts: IActionOptions

    -
    Returns
    +
    Returns

    Promise<TransactionRequest>

    -

    withdraw()

    +

    withdraw()

    withdraw: (l1Token, l2Token, amount, opts) => Promise<TransactionRequest>

    -
    Parameters
    +
    Parameters

    l1Token: AddressLike

    l2Token: AddressLike

    amount: NumberLike

    opts: IActionOptions

    -
    Returns
    +
    Returns

    Promise<TransactionRequest>

    -

    Overrides

    +

    Overrides

    StandardBridgeAdapter.populateTransaction

    -

    Source

    +

    Source

    src/adapters/eth-bridge.ts:116

    -

    Methods

    -

    approval()

    +

    Methods

    +

    approval()

    approval(l1Token, l2Token, opts?): Promise<BigNumber>

    Queries the account's approval amount for a given L1 token.

    -

    Parameters

    +

    Parameters

    l1Token: AddressLike

    The L1 token address.

    l2Token: AddressLike

    The L2 token address.

    opts?: IActionOptions

    Additional options.

    -

    Returns

    +

    Returns

    Promise<BigNumber>

    Amount of tokens approved for deposits from the account.

    -

    Overrides

    +

    Overrides

    StandardBridgeAdapter.approval

    -

    Source

    +

    Source

    src/adapters/eth-bridge.ts:22


    -

    approve()

    +

    approve()

    approve(l1Token, l2Token, amount, signer, opts?): Promise<TransactionResponse>

    Approves a deposit into the L2 chain.

    -

    Parameters

    +

    Parameters

    l1Token: AddressLike

    The L1 token address.

    l2Token: AddressLike

    @@ -193,20 +197,20 @@

    ParametersSigner used to sign and send the transaction.

    opts?: IActionOptions

    Additional options.

    -

    Returns

    +

    Returns

    Promise<TransactionResponse>

    Transaction response for the approval transaction.

    -

    Inherited from

    +

    Inherited from

    StandardBridgeAdapter.approve

    -

    Source

    +

    Source

    src/adapters/standard-bridge.ts:250


    -

    deposit()

    +

    deposit()

    deposit(l1Token, l2Token, amount, signer, opts?): Promise<TransactionResponse>

    Deposits some tokens into the L2 chain.

    -

    Parameters

    +

    Parameters

    l1Token: AddressLike

    The L1 token address.

    l2Token: AddressLike

    @@ -217,78 +221,78 @@

    ParametersSigner used to sign and send the transaction.

    opts?: IActionOptions

    Additional options.

    -

    Returns

    +

    Returns

    Promise<TransactionResponse>

    Transaction response for the deposit transaction.

    -

    Inherited from

    +

    Inherited from

    StandardBridgeAdapter.deposit

    -

    Source

    +

    Source

    src/adapters/standard-bridge.ts:262


    -

    getDepositsByAddress()

    +

    getDepositsByAddress()

    getDepositsByAddress(address, opts?): Promise<TokenBridgeMessage[]>

    Gets all deposits for a given address.

    -

    Parameters

    +

    Parameters

    address: AddressLike

    Address to search for messages from.

    opts?

    Options object.

    opts.fromBlock?: BlockTag

    opts.toBlock?: BlockTag

    -

    Returns

    +

    Returns

    Promise<TokenBridgeMessage[]>

    All deposit token bridge messages sent by the given address.

    -

    Overrides

    +

    Overrides

    StandardBridgeAdapter.getDepositsByAddress

    -

    Source

    +

    Source

    src/adapters/eth-bridge.ts:30


    -

    getWithdrawalsByAddress()

    +

    getWithdrawalsByAddress()

    getWithdrawalsByAddress(address, opts?): Promise<TokenBridgeMessage[]>

    Gets all withdrawals for a given address.

    -

    Parameters

    +

    Parameters

    address: AddressLike

    Address to search for messages from.

    -

    opts?

    +

    opts?

    Options object.

    opts.fromBlock?: BlockTag

    opts.toBlock?: BlockTag

    -

    Returns

    +

    Returns

    Promise<TokenBridgeMessage[]>

    All withdrawal token bridge messages sent by the given address.

    -

    Overrides

    +

    Overrides

    StandardBridgeAdapter.getWithdrawalsByAddress

    -

    Source

    +

    Source

    src/adapters/eth-bridge.ts:64


    -

    supportsTokenPair()

    +

    supportsTokenPair()

    supportsTokenPair(l1Token, l2Token): Promise<boolean>

    Checks whether the given token pair is supported by the bridge.

    -

    Parameters

    +

    Parameters

    l1Token: AddressLike

    The L1 token address.

    l2Token: AddressLike

    The L2 token address.

    -

    Returns

    +

    Returns

    Promise<boolean>

    Whether the given token pair is supported by the bridge.

    -

    Overrides

    +

    Overrides

    StandardBridgeAdapter.supportsTokenPair

    -

    Source

    +

    Source

    src/adapters/eth-bridge.ts:105


    -

    withdraw()

    +

    withdraw()

    withdraw(l1Token, l2Token, amount, signer, opts?): Promise<TransactionResponse>

    Withdraws some tokens back to the L1 chain.

    -

    Parameters

    +

    Parameters

    l1Token: AddressLike

    The L1 token address.

    l2Token: AddressLike

    @@ -299,12 +303,12 @@

    ParametersSigner used to sign and send the transaction.

    opts?: IActionOptions

    Additional options.

    -

    Returns

    +

    Returns

    Promise<TransactionResponse>

    Transaction response for the withdraw transaction.

    -

    Inherited from

    +

    Inherited from

    StandardBridgeAdapter.withdraw

    -

    Source

    -

    src/adapters/standard-bridge.ts:274

    +

    Source

    +

    src/adapters/standard-bridge.ts:274

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/classes/StandardBridgeAdapter/index.html b/build/docs/build-on-morph/sdk/classes/StandardBridgeAdapter/index.html index e68945084..1bc03ef56 100644 --- a/build/docs/build-on-morph/sdk/classes/StandardBridgeAdapter/index.html +++ b/build/docs/build-on-morph/sdk/classes/StandardBridgeAdapter/index.html @@ -3,31 +3,35 @@ -StandardBridgeAdapter | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +StandardBridgeAdapter | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / StandardBridgeAdapter

    Class: StandardBridgeAdapter

    Bridge adapter for any token bridge that uses the standard token bridge interface.

    -

    Extended by

    +

    Extended by

    -

    Implements

    +

    Implements

    -

    Constructors

    -

    new StandardBridgeAdapter()

    +

    Constructors

    +

    new StandardBridgeAdapter()

    new StandardBridgeAdapter(opts): StandardBridgeAdapter

    Creates a StandardBridgeAdapter instance.

    -

    Parameters

    +

    Parameters

    opts

    Options for the adapter.

    opts.l1Bridge: AddressLike

    @@ -36,155 +40,155 @@

    ParametersL2 bridge contract.

    opts.messenger: CrossChainMessenger

    Provider used to make queries related to cross-chain interactions.

    -

    Returns

    +

    Returns

    StandardBridgeAdapter

    -

    Source

    +

    Source

    src/adapters/standard-bridge.ts:52

    -

    Properties

    -

    estimateGas

    +

    Properties

    +

    estimateGas

    estimateGas: object

    Object that holds the functions that estimates the gas required for a given transaction. Follows the pattern used by ethers.js.

    -

    approve()

    +

    approve()

    approve: (l1Token, l2Token, amount, opts?) => Promise<BigNumber>

    -
    Parameters
    +
    Parameters

    l1Token: AddressLike

    l2Token: AddressLike

    amount: NumberLike

    opts?: IActionOptions

    -
    Returns
    +
    Returns

    Promise<BigNumber>

    -

    deposit()

    +

    deposit()

    deposit: (l1Token, l2Token, amount, opts?) => Promise<BigNumber>

    -
    Parameters
    +
    Parameters

    l1Token: AddressLike

    l2Token: AddressLike

    amount: NumberLike

    opts?: IActionOptions

    -
    Returns
    +
    Returns

    Promise<BigNumber>

    -

    withdraw()

    +

    withdraw()

    withdraw: (l1Token, l2Token, amount, opts?) => Promise<BigNumber>

    -
    Parameters
    +
    Parameters

    l1Token: AddressLike

    l2Token: AddressLike

    amount: NumberLike

    opts?: IActionOptions

    -
    Returns
    +
    Returns

    Promise<BigNumber>

    -

    Implementation of

    +

    Implementation of

    IBridgeAdapter.estimateGas

    -

    Source

    +

    Source

    src/adapters/standard-bridge.ts:405


    -

    l1Bridge

    +

    l1Bridge

    l1Bridge: Contract

    L1 bridge contract.

    -

    Implementation of

    +

    Implementation of

    IBridgeAdapter.l1Bridge

    -

    Source

    +

    Source

    src/adapters/standard-bridge.ts:41


    -

    l2Bridge

    +

    l2Bridge

    l2Bridge: Contract

    L2 bridge contract.

    -

    Implementation of

    +

    Implementation of

    IBridgeAdapter.l2Bridge

    -

    Source

    +

    Source

    src/adapters/standard-bridge.ts:42


    -

    messenger

    +

    messenger

    messenger: CrossChainMessenger

    Provider used to make queries related to cross-chain interactions.

    -

    Implementation of

    +

    Implementation of

    IBridgeAdapter.messenger

    -

    Source

    +

    Source

    src/adapters/standard-bridge.ts:40


    -

    populateTransaction

    +

    populateTransaction

    populateTransaction: object

    Object that holds the functions that generate transactions to be signed by the user. Follows the pattern used by ethers.js.

    -

    approve()

    +

    approve()

    approve: (l1Token, l2Token, amount, opts?) => Promise<TransactionRequest>

    -
    Parameters
    +
    Parameters

    l1Token: AddressLike

    l2Token: AddressLike

    amount: NumberLike

    opts?: IActionOptions

    -
    Returns
    +
    Returns

    Promise<TransactionRequest>

    -

    deposit()

    +

    deposit()

    deposit: (l1Token, l2Token, amount, opts?) => Promise<TransactionRequest>

    -
    Parameters
    +
    Parameters

    l1Token: AddressLike

    l2Token: AddressLike

    amount: NumberLike

    opts?: IActionOptions

    -
    Returns
    +
    Returns

    Promise<TransactionRequest>

    -

    withdraw()

    +

    withdraw()

    withdraw: (l1Token, l2Token, amount, opts?) => Promise<TransactionRequest>

    -
    Parameters
    +
    Parameters

    l1Token: AddressLike

    l2Token: AddressLike

    amount: NumberLike

    opts?: IActionOptions

    -
    Returns
    +
    Returns

    Promise<TransactionRequest>

    -

    Implementation of

    +

    Implementation of

    IBridgeAdapter.populateTransaction

    -

    Source

    +

    Source

    src/adapters/standard-bridge.ts:286

    -

    Methods

    -

    approval()

    +

    Methods

    +

    approval()

    approval(l1Token, l2Token, opts): Promise<BigNumber>

    Queries the account's approval amount for a given L1 token.

    -

    Parameters

    +

    Parameters

    l1Token: AddressLike

    The L1 token address.

    l2Token: AddressLike

    The L2 token address.

    opts: IActionOptions

    Additional options.

    -

    Returns

    +

    Returns

    Promise<BigNumber>

    Amount of tokens approved for deposits from the account.

    -

    Implementation of

    +

    Implementation of

    IBridgeAdapter.approval

    -

    Source

    +

    Source

    src/adapters/standard-bridge.ts:209


    -

    approve()

    +

    approve()

    approve(l1Token, l2Token, amount, signer, opts?): Promise<TransactionResponse>

    Approves a deposit into the L2 chain.

    -

    Parameters

    +

    Parameters

    l1Token: AddressLike

    The L1 token address.

    l2Token: AddressLike

    @@ -195,20 +199,20 @@

    ParametersSigner used to sign and send the transaction.

    opts?: IActionOptions

    Additional options.

    -

    Returns

    +

    Returns

    Promise<TransactionResponse>

    Transaction response for the approval transaction.

    -

    Implementation of

    +

    Implementation of

    IBridgeAdapter.approve

    -

    Source

    +

    Source

    src/adapters/standard-bridge.ts:250


    -

    deposit()

    +

    deposit()

    deposit(l1Token, l2Token, amount, signer, opts?): Promise<TransactionResponse>

    Deposits some tokens into the L2 chain.

    -

    Parameters

    +

    Parameters

    l1Token: AddressLike

    The L1 token address.

    l2Token: AddressLike

    @@ -219,78 +223,78 @@

    ParametersSigner used to sign and send the transaction.

    opts?: IActionOptions

    Additional options.

    -

    Returns

    +

    Returns

    Promise<TransactionResponse>

    Transaction response for the deposit transaction.

    -

    Implementation of

    +

    Implementation of

    IBridgeAdapter.deposit

    -

    Source

    +

    Source

    src/adapters/standard-bridge.ts:262


    -

    getDepositsByAddress()

    +

    getDepositsByAddress()

    getDepositsByAddress(address, opts?): Promise<TokenBridgeMessage[]>

    Gets all deposits for a given address.

    -

    Parameters

    +

    Parameters

    address: AddressLike

    Address to search for messages from.

    opts?

    Options object.

    -

    opts.fromBlock?: BlockTag

    +

    opts.fromBlock?: BlockTag

    opts.toBlock?: BlockTag

    -

    Returns

    +

    Returns

    Promise<TokenBridgeMessage[]>

    All deposit token bridge messages sent by the given address.

    -

    Implementation of

    +

    Implementation of

    IBridgeAdapter.getDepositsByAddress

    -

    Source

    +

    Source

    src/adapters/standard-bridge.ts:75


    -

    getWithdrawalsByAddress()

    +

    getWithdrawalsByAddress()

    getWithdrawalsByAddress(address, opts?): Promise<TokenBridgeMessage[]>

    Gets all withdrawals for a given address.

    -

    Parameters

    +

    Parameters

    address: AddressLike

    Address to search for messages from.

    opts?

    Options object.

    opts.fromBlock?: BlockTag

    opts.toBlock?: BlockTag

    -

    Returns

    +

    Returns

    Promise<TokenBridgeMessage[]>

    All withdrawal token bridge messages sent by the given address.

    -

    Implementation of

    +

    Implementation of

    IBridgeAdapter.getWithdrawalsByAddress

    -

    Source

    +

    Source

    src/adapters/standard-bridge.ts:122


    -

    supportsTokenPair()

    +

    supportsTokenPair()

    supportsTokenPair(l1Token, l2Token): Promise<boolean>

    Checks whether the given token pair is supported by the bridge.

    -

    Parameters

    +

    Parameters

    l1Token: AddressLike

    The L1 token address.

    l2Token: AddressLike

    The L2 token address.

    -

    Returns

    +

    Returns

    Promise<boolean>

    Whether the given token pair is supported by the bridge.

    -

    Implementation of

    +

    Implementation of

    IBridgeAdapter.supportsTokenPair

    -

    Source

    +

    Source

    src/adapters/standard-bridge.ts:165


    -

    withdraw()

    +

    withdraw()

    withdraw(l1Token, l2Token, amount, signer, opts?): Promise<TransactionResponse>

    Withdraws some tokens back to the L1 chain.

    -

    Parameters

    +

    Parameters

    l1Token: AddressLike

    The L1 token address.

    l2Token: AddressLike

    @@ -301,12 +305,12 @@

    ParametersSigner used to sign and send the transaction.

    opts?: IActionOptions

    Additional options.

    -

    Returns

    +

    Returns

    Promise<TransactionResponse>

    Transaction response for the withdraw transaction.

    -

    Implementation of

    +

    Implementation of

    IBridgeAdapter.withdraw

    -

    Source

    -

    src/adapters/standard-bridge.ts:274

    +

    Source

    +

    src/adapters/standard-bridge.ts:274

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/enumerations/L1ChainID/index.html b/build/docs/build-on-morph/sdk/enumerations/L1ChainID/index.html index 4e2f8fc04..2241b2c3d 100644 --- a/build/docs/build-on-morph/sdk/enumerations/L1ChainID/index.html +++ b/build/docs/build-on-morph/sdk/enumerations/L1ChainID/index.html @@ -3,50 +3,54 @@ -L1ChainID | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +L1ChainID | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / L1ChainID

    Enumeration: L1ChainID

    L1 network chain IDs

    -

    Enumeration Members

    -

    HOLESKY

    +

    Enumeration Members

    +

    HOLESKY

    HOLESKY: 17000

    -

    Source

    +

    Source

    src/interfaces/types.ts:23


    -

    MAINNET

    +

    MAINNET

    MAINNET: 1

    -

    Source

    +

    Source

    src/interfaces/types.ts:17


    -

    MORPH_LOCAL_DEVNET

    +

    MORPH_LOCAL_DEVNET

    MORPH_LOCAL_DEVNET: 900

    -

    Source

    +

    Source

    src/interfaces/types.ts:20


    -

    MORPH_QANET

    +

    MORPH_QANET

    MORPH_QANET: 900

    -

    Source

    +

    Source

    src/interfaces/types.ts:21


    -

    SEPOLIA

    +

    SEPOLIA

    SEPOLIA: 11155111

    -

    Source

    -

    src/interfaces/types.ts:22

    +

    Source

    +

    src/interfaces/types.ts:22

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/enumerations/L1RpcUrls/index.html b/build/docs/build-on-morph/sdk/enumerations/L1RpcUrls/index.html index e75ecea57..441e09bc6 100644 --- a/build/docs/build-on-morph/sdk/enumerations/L1RpcUrls/index.html +++ b/build/docs/build-on-morph/sdk/enumerations/L1RpcUrls/index.html @@ -3,35 +3,39 @@ -L1RpcUrls | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +L1RpcUrls | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / L1RpcUrls

    Enumeration: L1RpcUrls

    -

    Enumeration Members

    -

    HOLESKY

    +

    Enumeration Members

    +

    HOLESKY

    HOLESKY: "https://1rpc.io/holesky"

    -

    Source

    +

    Source

    src/interfaces/types.ts:41


    -

    MORPH_LOCAL_DEVNET

    +

    MORPH_LOCAL_DEVNET

    MORPH_LOCAL_DEVNET: "http://localhost:9545"

    -

    Source

    +

    Source

    src/interfaces/types.ts:39


    -

    SEPOLIA

    +

    SEPOLIA

    SEPOLIA: "https://1rpc.io/sepolia"

    -

    Source

    -

    src/interfaces/types.ts:40

    +

    Source

    +

    src/interfaces/types.ts:40

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/enumerations/L2ChainID/index.html b/build/docs/build-on-morph/sdk/enumerations/L2ChainID/index.html index f928493f4..22d58c6b3 100644 --- a/build/docs/build-on-morph/sdk/enumerations/L2ChainID/index.html +++ b/build/docs/build-on-morph/sdk/enumerations/L2ChainID/index.html @@ -3,50 +3,54 @@ -L2ChainID | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +L2ChainID | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / L2ChainID

    Enumeration: L2ChainID

    L2 network chain IDs

    -

    Enumeration Members

    -

    MORPH_HOLESKY

    +

    Enumeration Members

    +

    MORPH_HOLESKY

    MORPH_HOLESKY: 2810

    -

    Source

    +

    Source

    src/interfaces/types.ts:35


    -

    MORPH_LOCAL_DEVNET

    +

    MORPH_LOCAL_DEVNET

    MORPH_LOCAL_DEVNET: 53077

    -

    Source

    +

    Source

    src/interfaces/types.ts:32


    -

    MORPH_MAINNET

    +

    MORPH_MAINNET

    MORPH_MAINNET: 0

    -

    Source

    +

    Source

    src/interfaces/types.ts:30


    -

    MORPH_QANET

    +

    MORPH_QANET

    MORPH_QANET: 53077

    -

    Source

    +

    Source

    src/interfaces/types.ts:33


    -

    MORPH_TESTNET

    +

    MORPH_TESTNET

    MORPH_TESTNET: 2710

    -

    Source

    -

    src/interfaces/types.ts:34

    +

    Source

    +

    src/interfaces/types.ts:34

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/enumerations/L2RpcUrls/index.html b/build/docs/build-on-morph/sdk/enumerations/L2RpcUrls/index.html index d041ce3ee..2a4ae6a5d 100644 --- a/build/docs/build-on-morph/sdk/enumerations/L2RpcUrls/index.html +++ b/build/docs/build-on-morph/sdk/enumerations/L2RpcUrls/index.html @@ -3,35 +3,39 @@ -L2RpcUrls | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +L2RpcUrls | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / L2RpcUrls

    Enumeration: L2RpcUrls

    -

    Enumeration Members

    -

    MORPH_HOLESKY

    +

    Enumeration Members

    +

    MORPH_HOLESKY

    MORPH_HOLESKY: "https://rpc-holesky.morphl2.io"

    -

    Source

    +

    Source

    src/interfaces/types.ts:47


    -

    MORPH_LOCAL_DEVNET

    +

    MORPH_LOCAL_DEVNET

    MORPH_LOCAL_DEVNET: "http://localhost:8545"

    -

    Source

    +

    Source

    src/interfaces/types.ts:45


    -

    MORPH_TESTNET

    +

    MORPH_TESTNET

    MORPH_TESTNET: "https://rpc-testnet.morphl2.io"

    -

    Source

    -

    src/interfaces/types.ts:46

    +

    Source

    +

    src/interfaces/types.ts:46

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/enumerations/MessageDirection/index.html b/build/docs/build-on-morph/sdk/enumerations/MessageDirection/index.html index c38d63185..3d75df44f 100644 --- a/build/docs/build-on-morph/sdk/enumerations/MessageDirection/index.html +++ b/build/docs/build-on-morph/sdk/enumerations/MessageDirection/index.html @@ -3,29 +3,33 @@ -MessageDirection | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +MessageDirection | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / MessageDirection

    Enumeration: MessageDirection

    Enum describing the direction of a message.

    -

    Enumeration Members

    -

    L1_TO_L2

    +

    Enumeration Members

    +

    L1_TO_L2

    L1_TO_L2: 0

    -

    Source

    +

    Source

    src/interfaces/types.ts:223


    -

    L2_TO_L1

    +

    L2_TO_L1

    L2_TO_L1: 1

    -

    Source

    -

    src/interfaces/types.ts:224

    +

    Source

    +

    src/interfaces/types.ts:224

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/enumerations/MessageReceiptStatus/index.html b/build/docs/build-on-morph/sdk/enumerations/MessageReceiptStatus/index.html index 7e072dc81..269d965f4 100644 --- a/build/docs/build-on-morph/sdk/enumerations/MessageReceiptStatus/index.html +++ b/build/docs/build-on-morph/sdk/enumerations/MessageReceiptStatus/index.html @@ -3,29 +3,33 @@ -MessageReceiptStatus | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +MessageReceiptStatus | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / MessageReceiptStatus

    Enumeration: MessageReceiptStatus

    Enum describing the status of a CrossDomainMessage message receipt.

    -

    Enumeration Members

    -

    RELAYED_FAILED

    +

    Enumeration Members

    +

    RELAYED_FAILED

    RELAYED_FAILED: 0

    -

    Source

    +

    Source

    src/interfaces/types.ts:299


    -

    RELAYED_SUCCEEDED

    +

    RELAYED_SUCCEEDED

    RELAYED_SUCCEEDED: 1

    -

    Source

    -

    src/interfaces/types.ts:300

    +

    Source

    +

    src/interfaces/types.ts:300

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/enumerations/MessageStatus/index.html b/build/docs/build-on-morph/sdk/enumerations/MessageStatus/index.html index 23a59881e..10b252fdf 100644 --- a/build/docs/build-on-morph/sdk/enumerations/MessageStatus/index.html +++ b/build/docs/build-on-morph/sdk/enumerations/MessageStatus/index.html @@ -3,81 +3,85 @@ -MessageStatus | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +MessageStatus | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / MessageStatus

    Enumeration: MessageStatus

    Enum describing the status of a message.

    -

    Enumeration Members

    -

    FAILED_L1_TO_L2_MESSAGE

    +

    Enumeration Members

    +

    FAILED_L1_TO_L2_MESSAGE

    FAILED_L1_TO_L2_MESSAGE: 1

    Message is an L1 to L2 message and the transaction to execute the message failed. When this status is returned, you will need to resend the L1 to L2 message, probably with a higher gas limit.

    -

    Source

    +

    Source

    src/interfaces/types.ts:186


    -

    IN_CHALLENGE_PERIOD

    +

    IN_CHALLENGE_PERIOD

    IN_CHALLENGE_PERIOD: 5

    Message is a proved L2 to L1 message and is undergoing the challenge period.

    -

    Source

    +

    Source

    src/interfaces/types.ts:206


    -

    READY_FOR_RELAY

    +

    READY_FOR_RELAY

    READY_FOR_RELAY: 6

    Message is ready to be relayed.

    -

    Source

    +

    Source

    src/interfaces/types.ts:211


    -

    READY_TO_PROVE

    +

    READY_TO_PROVE

    READY_TO_PROVE: 4

    Message is ready to be proved on L1 to initiate the challenge period.

    -

    Source

    +

    Source

    src/interfaces/types.ts:201


    -

    RELAYED

    +

    RELAYED

    RELAYED: 7

    Message has been relayed.

    -

    Source

    +

    Source

    src/interfaces/types.ts:216


    -

    UNCONFIRMED_L1_TO_L2_MESSAGE

    +

    UNCONFIRMED_L1_TO_L2_MESSAGE

    UNCONFIRMED_L1_TO_L2_MESSAGE: 0

    Message is an L1 to L2 message and has not been processed by the L2.

    -

    Source

    +

    Source

    src/interfaces/types.ts:179


    -

    WITHDRAWAL_HASH_NOT_SYNC

    +

    WITHDRAWAL_HASH_NOT_SYNC

    WITHDRAWAL_HASH_NOT_SYNC: 3

    Message is an L2 to L1 message and withdrawal hash has not been published to backend yet.

    -

    Source

    +

    Source

    src/interfaces/types.ts:196


    -

    WITHDRAWAL_ROOT_NOT_PUBLISHED

    +

    WITHDRAWAL_ROOT_NOT_PUBLISHED

    WITHDRAWAL_ROOT_NOT_PUBLISHED: 2

    Message is an L2 to L1 message and withdrawal root has not been published yet.

    -

    Source

    -

    src/interfaces/types.ts:191

    +

    Source

    +

    src/interfaces/types.ts:191

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/functions/asL2Provider/index.html b/build/docs/build-on-morph/sdk/functions/asL2Provider/index.html index 4404350f8..7bd565c3e 100644 --- a/build/docs/build-on-morph/sdk/functions/asL2Provider/index.html +++ b/build/docs/build-on-morph/sdk/functions/asL2Provider/index.html @@ -3,12 +3,16 @@ -asL2Provider | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +asL2Provider | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / asL2Provider

    Function: asL2Provider()

    @@ -18,15 +22,15 @@

    Function: asL2Provider()

    Returns an provider wrapped as an Morph L2 provider. Adds a few extra helper functions to simplify the process of estimating the gas usage for a transaction on Morph. Returns a COPY of the original provider.

    -

    Type parameters

    +

    Type parameters

    TProvider extends Provider<TProvider>

    -

    Parameters

    +

    Parameters

    provider: TProvider

    Provider to wrap into an L2 provider.

    -

    Returns

    +

    Returns

    L2Provider<TProvider>

    Provider wrapped as an L2 provider.

    -

    Source

    -

    src/l2-provider.ts:171

    +

    Source

    +

    src/l2-provider.ts:171

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/functions/estimateL1Gas/index.html b/build/docs/build-on-morph/sdk/functions/estimateL1Gas/index.html index 7f64a7eba..b7dc53029 100644 --- a/build/docs/build-on-morph/sdk/functions/estimateL1Gas/index.html +++ b/build/docs/build-on-morph/sdk/functions/estimateL1Gas/index.html @@ -3,12 +3,16 @@ -estimateL1Gas | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +estimateL1Gas | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / estimateL1Gas

    Function: estimateL1Gas()

    @@ -16,15 +20,15 @@

    Function: estimateL1Gas()

    estimateL1Gas(l2Provider, tx): Promise<BigNumber>

    Estimates the amount of L1 gas required for a given L2 transaction.

    -

    Parameters

    +

    Parameters

    l2Provider: ProviderLike

    L2 provider to query the gas usage from.

    tx: TransactionRequest

    Transaction to estimate L1 gas for.

    -

    Returns

    +

    Returns

    Promise<BigNumber>

    Estimated L1 gas.

    -

    Source

    -

    src/l2-provider.ts:71

    +

    Source

    +

    src/l2-provider.ts:71

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/functions/estimateL1GasCost/index.html b/build/docs/build-on-morph/sdk/functions/estimateL1GasCost/index.html index b27e33e14..a3df20ea3 100644 --- a/build/docs/build-on-morph/sdk/functions/estimateL1GasCost/index.html +++ b/build/docs/build-on-morph/sdk/functions/estimateL1GasCost/index.html @@ -3,12 +3,16 @@ -estimateL1GasCost | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +estimateL1GasCost | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / estimateL1GasCost

    Function: estimateL1GasCost()

    @@ -16,15 +20,15 @@

    Function: estimateL1GasCost()

    estimateL1GasCost(l2Provider, tx): Promise<BigNumber>

    Estimates the amount of L1 gas cost for a given L2 transaction in wei.

    -

    Parameters

    +

    Parameters

    l2Provider: ProviderLike

    L2 provider to query the gas usage from.

    tx: TransactionRequest

    Transaction to estimate L1 gas cost for.

    -

    Returns

    +

    Returns

    Promise<BigNumber>

    Estimated L1 gas cost.

    -

    Source

    -

    src/l2-provider.ts:95

    +

    Source

    +

    src/l2-provider.ts:95

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/functions/estimateL2GasCost/index.html b/build/docs/build-on-morph/sdk/functions/estimateL2GasCost/index.html index 4363e53ea..7e9623d97 100644 --- a/build/docs/build-on-morph/sdk/functions/estimateL2GasCost/index.html +++ b/build/docs/build-on-morph/sdk/functions/estimateL2GasCost/index.html @@ -3,12 +3,16 @@ -estimateL2GasCost | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +estimateL2GasCost | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / estimateL2GasCost

    Function: estimateL2GasCost()

    @@ -16,15 +20,15 @@

    Function: estimateL2GasCost()

    estimateL2GasCost(l2Provider, tx): Promise<BigNumber>

    Estimates the L2 gas cost for a given L2 transaction in wei.

    -

    Parameters

    +

    Parameters

    l2Provider: ProviderLike

    L2 provider to query the gas usage from.

    tx: TransactionRequest

    Transaction to estimate L2 gas cost for.

    -

    Returns

    +

    Returns

    Promise<BigNumber>

    Estimated L2 gas cost.

    -

    Source

    -

    src/l2-provider.ts:119

    +

    Source

    +

    src/l2-provider.ts:119

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/functions/estimateTotalGasCost/index.html b/build/docs/build-on-morph/sdk/functions/estimateTotalGasCost/index.html index aa7f06308..c32a8ff63 100644 --- a/build/docs/build-on-morph/sdk/functions/estimateTotalGasCost/index.html +++ b/build/docs/build-on-morph/sdk/functions/estimateTotalGasCost/index.html @@ -3,12 +3,16 @@ -estimateTotalGasCost | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +estimateTotalGasCost | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / estimateTotalGasCost

    Function: estimateTotalGasCost()

    @@ -16,15 +20,15 @@

    Function: estimateTotalGasCost()

    estimateTotalGasCost(l2Provider, tx): Promise<BigNumber>

    Estimates the total gas cost for a given L2 transaction in wei.

    -

    Parameters

    +

    Parameters

    l2Provider: ProviderLike

    L2 provider to query the gas usage from.

    tx: TransactionRequest

    Transaction to estimate total gas cost for.

    -

    Returns

    +

    Returns

    Promise<BigNumber>

    Estimated total gas cost.

    -

    Source

    -

    src/l2-provider.ts:136

    +

    Source

    +

    src/l2-provider.ts:136

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/functions/getAllOEContracts/index.html b/build/docs/build-on-morph/sdk/functions/getAllOEContracts/index.html index c48ba0574..3379f2bac 100644 --- a/build/docs/build-on-morph/sdk/functions/getAllOEContracts/index.html +++ b/build/docs/build-on-morph/sdk/functions/getAllOEContracts/index.html @@ -3,12 +3,16 @@ -getAllOEContracts | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +getAllOEContracts | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / getAllOEContracts

    Function: getAllOEContracts()

    @@ -19,7 +23,7 @@

    Function: getAllOEContracts()

    user can provide custom contract address overrides for L1 or L2 contracts. If the given chain ID is not known then the user MUST provide custom contract addresses for ALL L1 contracts or this function will throw an error.

    -

    Parameters

    +

    Parameters

    l2ChainId: number

    Chain ID for the L2 network.

    opts= {}

    @@ -28,11 +32,11 @@

    Parametersopts.l2SignerOrProvider?: Provider | Signer

    opts.overrides?: DeepPartial<OEContractsLike>

    Custom contract address overrides for L1 or L2 contracts.

    -

    Returns

    +

    Returns

    OEContracts

    An object containing ethers.Contract objects connected to the appropriate addresses on both L1 and L2.

    -

    Source

    -

    src/utils/contracts.ts:88

    +

    Source

    +

    src/utils/contracts.ts:88

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/functions/getBridgeAdapters/index.html b/build/docs/build-on-morph/sdk/functions/getBridgeAdapters/index.html index a1a3323d8..7f11fc3d9 100644 --- a/build/docs/build-on-morph/sdk/functions/getBridgeAdapters/index.html +++ b/build/docs/build-on-morph/sdk/functions/getBridgeAdapters/index.html @@ -3,12 +3,16 @@ -getBridgeAdapters | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +getBridgeAdapters | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / getBridgeAdapters

    Function: getBridgeAdapters()

    @@ -16,7 +20,7 @@

    Function: getBridgeAdapters()

    getBridgeAdapters(l2ChainId, messenger, opts?): BridgeAdapters

    Gets a series of bridge adapters for the given L2 chain ID.

    -

    Parameters

    +

    Parameters

    l2ChainId: number

    Chain ID for the L2 network.

    messenger: CrossChainMessenger

    @@ -26,10 +30,10 @@

    Parametersopts.contracts?: DeepPartial<OEContractsLike>

    opts.overrides?: BridgeAdapterData

    Custom bridge adapters.

    -

    Returns

    +

    Returns

    BridgeAdapters

    An object containing all bridge adapters

    -

    Source

    -

    src/utils/contracts.ts:142

    +

    Source

    +

    src/utils/contracts.ts:142

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/functions/getL1GasPrice/index.html b/build/docs/build-on-morph/sdk/functions/getL1GasPrice/index.html index 4b6f9db62..4efae2295 100644 --- a/build/docs/build-on-morph/sdk/functions/getL1GasPrice/index.html +++ b/build/docs/build-on-morph/sdk/functions/getL1GasPrice/index.html @@ -3,12 +3,16 @@ -getL1GasPrice | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +getL1GasPrice | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / getL1GasPrice

    Function: getL1GasPrice()

    @@ -16,13 +20,13 @@

    Function: getL1GasPrice()

    getL1GasPrice(l2Provider): Promise<BigNumber>

    Gets the current L1 gas price as seen on L2.

    -

    Parameters

    +

    Parameters

    l2Provider: ProviderLike

    L2 provider to query the L1 gas price from.

    -

    Returns

    +

    Returns

    Promise<BigNumber>

    Current L1 gas price as seen on L2.

    -

    Source

    -

    src/l2-provider.ts:57

    +

    Source

    +

    src/l2-provider.ts:57

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/functions/getOEContract/index.html b/build/docs/build-on-morph/sdk/functions/getOEContract/index.html index 984392207..fe5dc5055 100644 --- a/build/docs/build-on-morph/sdk/functions/getOEContract/index.html +++ b/build/docs/build-on-morph/sdk/functions/getOEContract/index.html @@ -3,12 +3,16 @@ -getOEContract | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +getOEContract | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / getOEContract

    Function: getOEContract()

    @@ -19,7 +23,7 @@

    Function: getOEContract()

    the given L2 chain ID. Users can also provide a custom address to connect the contract to instead. If the chain ID is not known then the user MUST provide a custom address or this function will throw an error.

    -

    Parameters

    +

    Parameters

    contractName: "L1MessageQueueWithGasPriceOracle" | "L1GatewayRouter" | "L2GatewayRouter" | "MorphStandardERC20" | "L2WETH" | "L1WETHGateway" | "L2WETHGateway" | "L2ToL1MessagePasser" | "Sequencer" | "Gov" | "L2ETHGateway" | "L2CrossDomainMessenger" | "L2StandardERC20Gateway" | "L2ERC721Gateway" | "L2TxFeeVault" | "L2ERC1155Gateway" | "MorphStandardERC20Factory" | "GasPriceOracle" | "WrappedEther" | "MorphToken" | "L1CrossDomainMessenger" | "Staking" | "Rollup" | "L1ETHGateway" | "L1StandardERC20Gateway" | "L1ERC721Gateway" | "L1ERC1155Gateway" | "EnforcedTxGateway" | "WETH"

    Name of the contract to connect to.

    l2ChainId: number

    @@ -30,10 +34,10 @@

    ParametersCustom address to connect to the contract.

    opts.signerOrProvider?: Provider | Signer

    Signer or provider to connect to the contract.

    -

    Returns

    +

    Returns

    Contract

    An ethers.Contract object connected to the appropriate address and interface.

    -

    Source

    -

    src/utils/contracts.ts:42

    +

    Source

    +

    src/utils/contracts.ts:42

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/functions/hashLowLevelMessageV2/index.html b/build/docs/build-on-morph/sdk/functions/hashLowLevelMessageV2/index.html index 397d56c33..ea3b197e3 100644 --- a/build/docs/build-on-morph/sdk/functions/hashLowLevelMessageV2/index.html +++ b/build/docs/build-on-morph/sdk/functions/hashLowLevelMessageV2/index.html @@ -3,12 +3,16 @@ -hashLowLevelMessageV2 | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +hashLowLevelMessageV2 | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / hashLowLevelMessageV2

    Function: hashLowLevelMessageV2()

    @@ -16,13 +20,13 @@

    Function: hashLowLevelMessageV2()

    hashLowLevelMessageV2(message): string

    Utility for hashing a LowLevelMessage object.

    -

    Parameters

    +

    Parameters

    message: LowLevelMessage

    LowLevelMessage object to hash.

    -

    Returns

    +

    Returns

    string

    Hash of the given LowLevelMessage.

    -

    Source

    -

    src/utils/message-utils.ts:82

    +

    Source

    +

    src/utils/message-utils.ts:82

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/functions/hashMessageHash/index.html b/build/docs/build-on-morph/sdk/functions/hashMessageHash/index.html index 035b7273b..0316f0786 100644 --- a/build/docs/build-on-morph/sdk/functions/hashMessageHash/index.html +++ b/build/docs/build-on-morph/sdk/functions/hashMessageHash/index.html @@ -3,12 +3,16 @@ -hashMessageHash | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +hashMessageHash | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / hashMessageHash

    Function: hashMessageHash()

    @@ -18,13 +22,13 @@

    Function: hashMessageHash()

    Utility for hashing a message hash. This computes the storage slot where the message hash will be stored in state. HashZero is used because the first mapping in the contract is used.

    -

    Parameters

    +

    Parameters

    messageHash: string

    Message hash to hash.

    -

    Returns

    +

    Returns

    string

    Hash of the given message hash.

    -

    Source

    -

    src/utils/message-utils.ts:24

    +

    Source

    +

    src/utils/message-utils.ts:24

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/functions/isL2Provider/index.html b/build/docs/build-on-morph/sdk/functions/isL2Provider/index.html index c227b622d..cc2608717 100644 --- a/build/docs/build-on-morph/sdk/functions/isL2Provider/index.html +++ b/build/docs/build-on-morph/sdk/functions/isL2Provider/index.html @@ -3,12 +3,16 @@ -isL2Provider | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +isL2Provider | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / isL2Provider

    Function: isL2Provider()

    @@ -17,17 +21,17 @@

    Function: isL2Provider()

    Determines if a given Provider is an L2Provider. Will coerce type if true

    -

    Type parameters

    +

    Type parameters

    TProvider extends Provider<TProvider>

    -

    Parameters

    +

    Parameters

    provider: TProvider

    The provider to check

    -

    Returns

    +

    Returns

    provider is L2Provider<TProvider>

    Boolean

    -

    Example

    -
    if (isL2Provider(provider)) {
    // typescript now knows it is of type L2Provider
    const gasPrice = await provider.estimateL2GasPrice(tx)
    }
    -

    Source

    -

    src/l2-provider.ts:157

    +

    Example

    +
    if (isL2Provider(provider)) {
    // typescript now knows it is of type L2Provider
    const gasPrice = await provider.estimateL2GasPrice(tx)
    }
    +

    Source

    +

    src/l2-provider.ts:157

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/functions/migratedWithdrawalGasLimit/index.html b/build/docs/build-on-morph/sdk/functions/migratedWithdrawalGasLimit/index.html index e2edce0bf..64ba31f63 100644 --- a/build/docs/build-on-morph/sdk/functions/migratedWithdrawalGasLimit/index.html +++ b/build/docs/build-on-morph/sdk/functions/migratedWithdrawalGasLimit/index.html @@ -3,12 +3,16 @@ -migratedWithdrawalGasLimit | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +migratedWithdrawalGasLimit | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / migratedWithdrawalGasLimit

    Function: migratedWithdrawalGasLimit()

    @@ -16,12 +20,12 @@

    Function: migratedWithdrawalGasLimit()

    migratedWithdrawalGasLimit(data, chainID): BigNumber

    Compute the min gas limit for a migrated withdrawal.

    -

    Parameters

    +

    Parameters

    data: string

    chainID: number

    -

    Returns

    +

    Returns

    BigNumber

    -

    Source

    -

    src/utils/message-utils.ts:35

    +

    Source

    +

    src/utils/message-utils.ts:35

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/functions/omit/index.html b/build/docs/build-on-morph/sdk/functions/omit/index.html index c24504c73..80f425634 100644 --- a/build/docs/build-on-morph/sdk/functions/omit/index.html +++ b/build/docs/build-on-morph/sdk/functions/omit/index.html @@ -3,12 +3,16 @@ -omit | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +omit | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / omit

    Function: omit()

    @@ -16,18 +20,18 @@

    Function: omit()

    omit<T, K>(obj, ...keys): Omit<T, K>

    Returns a copy of the given object ( ...obj ) with the given keys omitted.

    -

    Type parameters

    +

    Type parameters

    T extends object

    K extends string | number | symbol

    -

    Parameters

    +

    Parameters

    obj: T

    Object to return with the keys omitted.

    • ...keys: K[]

    Keys to omit from the returned object.

    -

    Returns

    +

    Returns

    Omit<T, K>

    A copy of the given object with the given keys omitted.

    -

    Source

    -

    src/utils/misc-utils.ts:11

    +

    Source

    +

    src/utils/misc-utils.ts:11

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/functions/toAddress/index.html b/build/docs/build-on-morph/sdk/functions/toAddress/index.html index 690886a76..1f8763227 100644 --- a/build/docs/build-on-morph/sdk/functions/toAddress/index.html +++ b/build/docs/build-on-morph/sdk/functions/toAddress/index.html @@ -3,12 +3,16 @@ -toAddress | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +toAddress | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / toAddress

    Function: toAddress()

    @@ -16,13 +20,13 @@

    Function: toAddress()

    toAddress(addr): string

    Converts an address-like into a 0x-prefixed address string.

    -

    Parameters

    +

    Parameters

    addr: AddressLike

    Address-like to convert into an address.

    -

    Returns

    +

    Returns

    string

    Address-like as an address.

    -

    Source

    -

    src/utils/coercion.ts:104

    +

    Source

    +

    src/utils/coercion.ts:104

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/functions/toBigNumber/index.html b/build/docs/build-on-morph/sdk/functions/toBigNumber/index.html index 0698c8a8a..0c03c420f 100644 --- a/build/docs/build-on-morph/sdk/functions/toBigNumber/index.html +++ b/build/docs/build-on-morph/sdk/functions/toBigNumber/index.html @@ -3,12 +3,16 @@ -toBigNumber | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +toBigNumber | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / toBigNumber

    Function: toBigNumber()

    @@ -16,13 +20,13 @@

    Function: toBigNumber()

    toBigNumber(num): BigNumber

    Converts a number-like into an ethers BigNumber.

    -

    Parameters

    +

    Parameters

    num: NumberLike

    Number-like to convert into a BigNumber.

    -

    Returns

    +

    Returns

    BigNumber

    Number-like as a BigNumber.

    -

    Source

    -

    src/utils/coercion.ts:84

    +

    Source

    +

    src/utils/coercion.ts:84

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/functions/toNumber/index.html b/build/docs/build-on-morph/sdk/functions/toNumber/index.html index 931fb7fa0..981c87992 100644 --- a/build/docs/build-on-morph/sdk/functions/toNumber/index.html +++ b/build/docs/build-on-morph/sdk/functions/toNumber/index.html @@ -3,12 +3,16 @@ -toNumber | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +toNumber | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / toNumber

    Function: toNumber()

    @@ -16,13 +20,13 @@

    Function: toNumber()

    toNumber(num): number

    Converts a number-like into a number.

    -

    Parameters

    +

    Parameters

    num: NumberLike

    Number-like to convert into a number.

    -

    Returns

    +

    Returns

    number

    Number-like as a number.

    -

    Source

    -

    src/utils/coercion.ts:94

    +

    Source

    +

    src/utils/coercion.ts:94

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/functions/toProvider/index.html b/build/docs/build-on-morph/sdk/functions/toProvider/index.html index 7e10b71c0..2015714dd 100644 --- a/build/docs/build-on-morph/sdk/functions/toProvider/index.html +++ b/build/docs/build-on-morph/sdk/functions/toProvider/index.html @@ -3,12 +3,16 @@ -toProvider | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +toProvider | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / toProvider

    Function: toProvider()

    @@ -17,13 +21,13 @@

    Function: toProvider()

    Converts a ProviderLike into a Provider. Assumes that if the input is a string then it is a JSON-RPC url.

    -

    Parameters

    +

    Parameters

    provider: ProviderLike

    ProviderLike to turn into a Provider.

    -

    Returns

    +

    Returns

    Provider

    Input as a Provider.

    -

    Source

    -

    src/utils/coercion.ts:46

    +

    Source

    +

    src/utils/coercion.ts:46

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/functions/toSignerOrProvider/index.html b/build/docs/build-on-morph/sdk/functions/toSignerOrProvider/index.html index f50153df9..391f0212a 100644 --- a/build/docs/build-on-morph/sdk/functions/toSignerOrProvider/index.html +++ b/build/docs/build-on-morph/sdk/functions/toSignerOrProvider/index.html @@ -3,12 +3,16 @@ -toSignerOrProvider | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +toSignerOrProvider | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / toSignerOrProvider

    Function: toSignerOrProvider()

    @@ -17,13 +21,13 @@

    Function: toSignerOrProvider()

    Converts a SignerOrProviderLike into a Signer or a Provider. Assumes that if the input is a string then it is a JSON-RPC url.

    -

    Parameters

    +

    Parameters

    signerOrProvider: SignerOrProviderLike

    SignerOrProviderLike to turn into a Signer or Provider.

    -

    Returns

    +

    Returns

    Provider | Signer

    Input as a Signer or Provider.

    -

    Source

    -

    src/utils/coercion.ts:25

    +

    Source

    +

    src/utils/coercion.ts:25

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/functions/toTransactionHash/index.html b/build/docs/build-on-morph/sdk/functions/toTransactionHash/index.html index 041acef38..a61ad063a 100644 --- a/build/docs/build-on-morph/sdk/functions/toTransactionHash/index.html +++ b/build/docs/build-on-morph/sdk/functions/toTransactionHash/index.html @@ -3,12 +3,16 @@ -toTransactionHash | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +toTransactionHash | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / toTransactionHash

    Function: toTransactionHash()

    @@ -16,13 +20,13 @@

    Function: toTransactionHash()

    toTransactionHash(transaction): string

    Pulls a transaction hash out of a TransactionLike object.

    -

    Parameters

    +

    Parameters

    transaction: TransactionLike

    TransactionLike to convert into a transaction hash.

    -

    Returns

    +

    Returns

    string

    Transaction hash corresponding to the TransactionLike input.

    -

    Source

    -

    src/utils/coercion.ts:62

    +

    Source

    +

    src/utils/coercion.ts:62

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/globals/index.html b/build/docs/build-on-morph/sdk/globals/index.html index 91b8ddb12..17d164c5b 100644 --- a/build/docs/build-on-morph/sdk/globals/index.html +++ b/build/docs/build-on-morph/sdk/globals/index.html @@ -3,34 +3,38 @@ -Use SDK to interact with Morph | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +Use SDK to interact with Morph | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk

    The @morph-l2/sdk package provides a set of tools for interacting with Morph.

    -

    Installation

    -
    npm install @morph-l2/sdk@latest
    -

    Docs

    +

    Installation

    +
    npm install @morph-l2/sdk@latest
    +

    Docs

    You can find auto-generated API documentation over at docs.morphl2.io.

    -

    Using the SDK

    -

    CrossChainMessenger

    +

    Using the SDK

    +

    CrossChainMessenger

    The CrossChainMessenger class simplifies the process of moving assets and data between Ethereum and Morph. You can use this class to, for example, initiate a withdrawal of ERC20 tokens from Morph back to Ethereum, accurately track when the withdrawal is ready to be finalized on Ethereum, and execute the finalization transaction after the challenge period has elapsed. The CrossChainMessenger can handle deposits and withdrawals of ETH and any ERC20-compatible token. The CrossChainMessenger automatically connects to all relevant contracts so complex configuration is not necessary.

    - +

    The Morph SDK includes various utilities for handling Morph's transaction fee model. For instance, estimateTotalGasCost will estimate the total cost (in wei) to send at transaction on Morph including both the L2 execution cost and the L1 data cost. You can also use the asL2Provider function to wrap an ethers Provider object into an L2Provider which will have all of these helper functions attached.

    -

    Other utilities

    +

    Other utilities

    The SDK contains other useful helper functions and constants. For a complete list, refer to the auto-generated SDK documentation

    -

    Documents

    -

    Enumerations

    +

    Documents

    +

    Enumerations

    -

    Classes

    +

    Classes

    -

    Interfaces

    +

    Interfaces

    -

    Type Aliases

    +

    Type Aliases

    -

    Variables

    +

    Variables

    -

    Functions

    +

    Functions

    +
    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/interfaces/BridgeAdapterData/index.html b/build/docs/build-on-morph/sdk/interfaces/BridgeAdapterData/index.html index b8acb55f6..8db6c5360 100644 --- a/build/docs/build-on-morph/sdk/interfaces/BridgeAdapterData/index.html +++ b/build/docs/build-on-morph/sdk/interfaces/BridgeAdapterData/index.html @@ -3,17 +3,21 @@ -BridgeAdapterData | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +BridgeAdapterData | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +
    +

    Indexable

    +

    [name: string]: object

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/interfaces/BridgeAdapters/index.html b/build/docs/build-on-morph/sdk/interfaces/BridgeAdapters/index.html index 3e797f7e0..9d30a4e6b 100644 --- a/build/docs/build-on-morph/sdk/interfaces/BridgeAdapters/index.html +++ b/build/docs/build-on-morph/sdk/interfaces/BridgeAdapters/index.html @@ -3,17 +3,21 @@ -BridgeAdapters | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +BridgeAdapters | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +
    +

    Indexable

    +

    [name: string]: IBridgeAdapter

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage/index.html b/build/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage/index.html index e6c3b8bf7..62e633277 100644 --- a/build/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage/index.html +++ b/build/docs/build-on-morph/sdk/interfaces/CoreCrossChainMessage/index.html @@ -3,61 +3,65 @@ -CoreCrossChainMessage | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +CoreCrossChainMessage | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / CoreCrossChainMessage

    Interface: CoreCrossChainMessage

    Core components of a cross chain message.

    -

    Extended by

    +

    Extended by

    -

    Properties

    -

    message

    +

    Properties

    +

    message

    message: string

    -

    Source

    +

    Source

    src/interfaces/types.ts:242


    -

    messageNonce

    +

    messageNonce

    messageNonce: BigNumber

    -

    Source

    +

    Source

    src/interfaces/types.ts:243


    -

    minGasLimit

    +

    minGasLimit

    minGasLimit: BigNumber

    -

    Source

    +

    Source

    src/interfaces/types.ts:245


    -

    sender

    +

    sender

    sender: string

    -

    Source

    +

    Source

    src/interfaces/types.ts:240


    -

    target

    +

    target

    target: string

    -

    Source

    +

    Source

    src/interfaces/types.ts:241


    -

    value

    +

    value

    value: BigNumber

    -

    Source

    -

    src/interfaces/types.ts:244

    +

    Source

    +

    src/interfaces/types.ts:244

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/interfaces/CrossChainMessage/index.html b/build/docs/build-on-morph/sdk/interfaces/CrossChainMessage/index.html index 4a9cc7d91..a935bd91b 100644 --- a/build/docs/build-on-morph/sdk/interfaces/CrossChainMessage/index.html +++ b/build/docs/build-on-morph/sdk/interfaces/CrossChainMessage/index.html @@ -3,102 +3,106 @@ -CrossChainMessage | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +CrossChainMessage | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / CrossChainMessage

    Interface: CrossChainMessage

    Describes a message that is sent between L1 and L2. Direction determines where the message was sent from and where it's being sent to.

    -

    Extends

    +

    Extends

    -

    Properties

    -

    blockNumber

    +

    Properties

    +

    blockNumber

    blockNumber: number

    -

    Source

    +

    Source

    src/interfaces/types.ts:255


    -

    direction

    +

    direction

    direction: MessageDirection

    -

    Source

    +

    Source

    src/interfaces/types.ts:253


    -

    logIndex

    +

    logIndex

    logIndex: number

    -

    Source

    +

    Source

    src/interfaces/types.ts:254


    -

    message

    +

    message

    message: string

    -

    Inherited from

    +

    Inherited from

    CoreCrossChainMessage.message

    -

    Source

    +

    Source

    src/interfaces/types.ts:242


    -

    messageNonce

    +

    messageNonce

    messageNonce: BigNumber

    -

    Inherited from

    +

    Inherited from

    CoreCrossChainMessage.messageNonce

    -

    Source

    +

    Source

    src/interfaces/types.ts:243


    -

    minGasLimit

    +

    minGasLimit

    minGasLimit: BigNumber

    -

    Inherited from

    +

    Inherited from

    CoreCrossChainMessage.minGasLimit

    -

    Source

    +

    Source

    src/interfaces/types.ts:245


    -

    sender

    +

    sender

    sender: string

    -

    Inherited from

    +

    Inherited from

    CoreCrossChainMessage.sender

    -

    Source

    +

    Source

    src/interfaces/types.ts:240


    -

    target

    +

    target

    target: string

    -

    Inherited from

    +

    Inherited from

    CoreCrossChainMessage.target

    -

    Source

    +

    Source

    src/interfaces/types.ts:241


    -

    transactionHash

    +

    transactionHash

    transactionHash: string

    -

    Source

    +

    Source

    src/interfaces/types.ts:256


    -

    value

    +

    value

    value: BigNumber

    -

    Inherited from

    +

    Inherited from

    CoreCrossChainMessage.value

    -

    Source

    -

    src/interfaces/types.ts:244

    +

    Source

    +

    src/interfaces/types.ts:244

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/interfaces/CrossChainMessageRequest/index.html b/build/docs/build-on-morph/sdk/interfaces/CrossChainMessageRequest/index.html index ff2f4ad92..0ec3334f6 100644 --- a/build/docs/build-on-morph/sdk/interfaces/CrossChainMessageRequest/index.html +++ b/build/docs/build-on-morph/sdk/interfaces/CrossChainMessageRequest/index.html @@ -3,36 +3,40 @@ -CrossChainMessageRequest | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +CrossChainMessageRequest | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / CrossChainMessageRequest

    Interface: CrossChainMessageRequest

    Partial message that needs to be signed and executed by a specific signer.

    -

    Properties

    -

    direction

    +

    Properties

    +

    direction

    direction: MessageDirection

    -

    Source

    +

    Source

    src/interfaces/types.ts:231


    -

    message

    +

    message

    message: string

    -

    Source

    +

    Source

    src/interfaces/types.ts:233


    -

    target

    +

    target

    target: string

    -

    Source

    -

    src/interfaces/types.ts:232

    +

    Source

    +

    src/interfaces/types.ts:232

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/interfaces/IActionOptions/index.html b/build/docs/build-on-morph/sdk/interfaces/IActionOptions/index.html index ea10dbab3..f3ff33b16 100644 --- a/build/docs/build-on-morph/sdk/interfaces/IActionOptions/index.html +++ b/build/docs/build-on-morph/sdk/interfaces/IActionOptions/index.html @@ -3,70 +3,74 @@ -IActionOptions | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +IActionOptions | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / IActionOptions

    Interface: IActionOptions

    -

    Param

    +

    Param

    Optional signer to use to send the transaction.

    -

    Param

    +

    Param

    Optional address to receive the funds on chain. Defaults to sender.

    -

    Param

    +

    Param

    Direction to search for messages in. If not provided, will attempt to

    • automatically search both directions under the assumption that a transaction hash will only
    • exist on one chain. If the hash exists on both chains, will throw an error.
    -

    Param

    +

    Param

    Optional transaction overrides.

    -

    Properties

    -

    direction?

    +

    Properties

    +

    direction?

    optional direction: MessageDirection

    -

    Source

    +

    Source

    src/interfaces/types.ts:412


    -

    from?

    +

    from?

    optional from: string

    -

    Source

    +

    Source

    src/interfaces/types.ts:410


    -

    overrides?

    +

    overrides?

    optional overrides: object & CallOverrides

    -

    Type declaration

    -
    gatewayAddress?
    +

    Type declaration

    +
    gatewayAddress?

    optional gatewayAddress: string

    -
    gatewayName?
    +
    gatewayName?

    optional gatewayName: string

    -

    Source

    +

    Source

    src/interfaces/types.ts:413


    -

    recipient?

    +

    recipient?

    optional recipient: AddressLike

    -

    Source

    +

    Source

    src/interfaces/types.ts:411


    -

    signer?

    +

    signer?

    optional signer: Signer

    -

    Source

    -

    src/interfaces/types.ts:409

    +

    Source

    +

    src/interfaces/types.ts:409

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/interfaces/IBridgeAdapter/index.html b/build/docs/build-on-morph/sdk/interfaces/IBridgeAdapter/index.html index 88428e8e6..3dcfab8dc 100644 --- a/build/docs/build-on-morph/sdk/interfaces/IBridgeAdapter/index.html +++ b/build/docs/build-on-morph/sdk/interfaces/IBridgeAdapter/index.html @@ -3,27 +3,31 @@ -IBridgeAdapter | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +IBridgeAdapter | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / IBridgeAdapter

    Interface: IBridgeAdapter

    Represents an adapter for an L1 - L2 token bridge. Each custom bridge currently needs its own adapter because the bridge interface is not standardized. This may change in the future.

    -

    Properties

    -

    estimateGas

    +

    Properties

    +

    estimateGas

    estimateGas: object

    Object that holds the functions that estimates the gas required for a given transaction. Follows the pattern used by ethers.js.

    -

    approve()

    +

    approve()

    Estimates gas required to approve some tokens to deposit into the L2 chain.

    -
    Parameters
    +
    Parameters

    l1Token: AddressLike

    The L1 token address.

    l2Token: AddressLike

    @@ -32,12 +36,12 @@
    ParametersAmount of the token to approve.

    opts?: IActionOptions

    Additional options.

    -
    Returns
    +
    Returns

    Promise<BigNumber>

    Gas estimate for the transaction.

    -

    deposit()

    +

    deposit()

    Estimates gas required to deposit some tokens into the L2 chain.

    -
    Parameters
    +
    Parameters

    l1Token: AddressLike

    The L1 token address.

    l2Token: AddressLike

    @@ -46,12 +50,12 @@
    ParametersAmount of the token to deposit.

    opts?: IActionOptions

    Additional options.

    -
    Returns
    +
    Returns

    Promise<BigNumber>

    Gas estimate for the transaction.

    -

    withdraw()

    +

    withdraw()

    Estimates gas required to withdraw some tokens back to the L1 chain.

    -
    Parameters
    +
    Parameters

    l1Token: AddressLike

    The L1 token address.

    l2Token: AddressLike

    @@ -60,45 +64,45 @@
    ParametersAmount of the token to withdraw.

    opts?: IActionOptions

    Additional options.

    -
    Returns
    +
    Returns

    Promise<BigNumber>

    Gas estimate for the transaction.

    -

    Source

    +

    Source

    src/interfaces/bridge-adapter.ts:221


    -

    l1Bridge

    +

    l1Bridge

    l1Bridge: Contract

    L1 bridge contract.

    -

    Source

    +

    Source

    src/interfaces/bridge-adapter.ts:38


    -

    l2Bridge

    +

    l2Bridge

    l2Bridge: Contract

    L2 bridge contract.

    -

    Source

    +

    Source

    src/interfaces/bridge-adapter.ts:43


    -

    messenger

    +

    messenger

    messenger: CrossChainMessenger

    Provider used to make queries related to cross-chain interactions.

    -

    Source

    +

    Source

    src/interfaces/bridge-adapter.ts:33


    -

    populateTransaction

    +

    populateTransaction

    populateTransaction: object

    Object that holds the functions that generate transactions to be signed by the user. Follows the pattern used by ethers.js.

    -

    approve()

    +

    approve()

    Generates a transaction for approving some tokens to deposit into the L2 chain.

    -
    Parameters
    +
    Parameters

    l1Token: AddressLike

    The L1 token address.

    l2Token: AddressLike

    @@ -107,12 +111,12 @@
    ParametersAmount of the token to approve.

    opts?: IActionOptions

    Additional options.

    -
    Returns
    +
    Returns

    Promise<TransactionRequest>

    Transaction that can be signed and executed to deposit the tokens.

    -

    deposit()

    +

    deposit()

    Generates a transaction for depositing some tokens into the L2 chain.

    -
    Parameters
    +
    Parameters

    l1Token: AddressLike

    The L1 token address.

    l2Token: AddressLike

    @@ -121,12 +125,12 @@
    ParametersAmount of the token to deposit.

    opts?: IActionOptions

    Additional options.

    -
    Returns
    +
    Returns

    Promise<TransactionRequest>

    Transaction that can be signed and executed to deposit the tokens.

    -

    withdraw()

    +

    withdraw()

    Generates a transaction for withdrawing some tokens back to the L1 chain.

    -
    Parameters
    +
    Parameters

    l1Token: AddressLike

    The L1 token address.

    l2Token: AddressLike

    @@ -135,36 +139,36 @@
    ParametersAmount of the token to withdraw.

    opts?: IActionOptions

    Additional options.

    -
    Returns
    +
    Returns

    Promise<TransactionRequest>

    Transaction that can be signed and executed to withdraw the tokens.

    -

    Source

    +

    Source

    src/interfaces/bridge-adapter.ts:167

    -

    Methods

    -

    approval()

    +

    Methods

    +

    approval()

    approval(l1Token, l2Token, opts?): Promise<BigNumber>

    Queries the account's approval amount for a given L1 token.

    -

    Parameters

    +

    Parameters

    l1Token: AddressLike

    The L1 token address.

    l2Token: AddressLike

    The L2 token address.

    opts?: IActionOptions

    Additional options.

    -

    Returns

    +

    Returns

    Promise<BigNumber>

    Amount of tokens approved for deposits from the account.

    -

    Source

    +

    Source

    src/interfaces/bridge-adapter.ts:103


    -

    approve()

    +

    approve()

    approve(l1Token, l2Token, amount, signer, opts?): Promise<TransactionResponse>

    Approves a deposit into the L2 chain.

    -

    Parameters

    +

    Parameters

    l1Token: AddressLike

    The L1 token address.

    l2Token: AddressLike

    @@ -175,18 +179,18 @@

    ParametersSigner used to sign and send the transaction.

    opts?: IActionOptions

    Additional options.

    -

    Returns

    +

    Returns

    Promise<TransactionResponse>

    Transaction response for the approval transaction.

    -

    Source

    +

    Source

    src/interfaces/bridge-adapter.ts:119


    -

    deposit()

    +

    deposit()

    deposit(l1Token, l2Token, amount, signer, opts?): Promise<TransactionResponse>

    Deposits some tokens into the L2 chain.

    -

    Parameters

    +

    Parameters

    l1Token: AddressLike

    The L1 token address.

    l2Token: AddressLike

    @@ -197,18 +201,18 @@

    ParametersSigner used to sign and send the transaction.

    opts?: IActionOptions

    Additional options.

    -

    Returns

    +

    Returns

    Promise<TransactionResponse>

    Transaction response for the deposit transaction.

    -

    Source

    +

    Source

    src/interfaces/bridge-adapter.ts:137


    -

    getDepositsByAddress()

    +

    getDepositsByAddress()

    getDepositsByAddress(address, opts?): Promise<TokenBridgeMessage[]>

    Gets all deposits for a given address.

    -

    Parameters

    +

    Parameters

    address: AddressLike

    Address to search for messages from.

    opts?

    @@ -219,18 +223,18 @@

    Parametersopts.toBlock?: BlockTag

    Block to stop searching for messages at. If not provided, will stop at the latest known block ("latest").

    -

    Returns

    +

    Returns

    Promise<TokenBridgeMessage[]>

    All deposit token bridge messages sent by the given address.

    -

    Source

    +

    Source

    src/interfaces/bridge-adapter.ts:56


    -

    getWithdrawalsByAddress()

    +

    getWithdrawalsByAddress()

    getWithdrawalsByAddress(address, opts?): Promise<TokenBridgeMessage[]>

    Gets all withdrawals for a given address.

    -

    Parameters

    +

    Parameters

    address: AddressLike

    Address to search for messages from.

    opts?

    @@ -241,34 +245,34 @@

    Parametersopts.toBlock?: BlockTag

    Block to stop searching for messages at. If not provided, will stop at the latest known block ("latest").

    -

    Returns

    +

    Returns

    Promise<TokenBridgeMessage[]>

    All withdrawal token bridge messages sent by the given address.

    -

    Source

    +

    Source

    src/interfaces/bridge-adapter.ts:75


    -

    supportsTokenPair()

    +

    supportsTokenPair()

    supportsTokenPair(l1Token, l2Token): Promise<boolean>

    Checks whether the given token pair is supported by the bridge.

    -

    Parameters

    +

    Parameters

    l1Token: AddressLike

    The L1 token address.

    l2Token: AddressLike

    The L2 token address.

    -

    Returns

    +

    Returns

    Promise<boolean>

    Whether the given token pair is supported by the bridge.

    -

    Source

    +

    Source

    src/interfaces/bridge-adapter.ts:90


    -

    withdraw()

    +

    withdraw()

    withdraw(l1Token, l2Token, amount, signer, opts?): Promise<TransactionResponse>

    Withdraws some tokens back to the L1 chain.

    -

    Parameters

    +

    Parameters

    l1Token: AddressLike

    The L1 token address.

    l2Token: AddressLike

    @@ -279,10 +283,10 @@

    ParametersSigner used to sign and send the transaction.

    opts?: IActionOptions

    Additional options.

    -

    Returns

    +

    Returns

    Promise<TransactionResponse>

    Transaction response for the withdraw transaction.

    -

    Source

    -

    src/interfaces/bridge-adapter.ts:155

    +

    Source

    +

    src/interfaces/bridge-adapter.ts:155

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/interfaces/L2Block/index.html b/build/docs/build-on-morph/sdk/interfaces/L2Block/index.html index 597b34986..7a3549911 100644 --- a/build/docs/build-on-morph/sdk/interfaces/L2Block/index.html +++ b/build/docs/build-on-morph/sdk/interfaces/L2Block/index.html @@ -3,144 +3,148 @@ -L2Block | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +L2Block | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / L2Block

    Interface: L2Block

    JSON block representation when returned by L2Geth nodes. Just a normal block but with an added stateRoot field.

    -

    Extends

    +

    Extends

    • Block
    -

    Properties

    -

    _difficulty

    +

    Properties

    +

    _difficulty

    _difficulty: BigNumber

    -

    Inherited from

    +

    Inherited from

    Block._difficulty

    -

    Source

    +

    Source

    node_modules/@ethersproject/abstract-provider/lib/index.d.ts:41


    -

    baseFeePerGas?

    +

    baseFeePerGas?

    optional baseFeePerGas: BigNumber

    -

    Inherited from

    +

    Inherited from

    Block.baseFeePerGas

    -

    Source

    +

    Source

    node_modules/@ethersproject/abstract-provider/lib/index.d.ts:46


    -

    difficulty

    +

    difficulty

    difficulty: number

    -

    Inherited from

    +

    Inherited from

    Block.difficulty

    -

    Source

    +

    Source

    node_modules/@ethersproject/abstract-provider/lib/index.d.ts:40


    -

    extraData

    +

    extraData

    extraData: string

    -

    Inherited from

    +

    Inherited from

    Block.extraData

    -

    Source

    +

    Source

    node_modules/@ethersproject/abstract-provider/lib/index.d.ts:45


    -

    gasLimit

    +

    gasLimit

    gasLimit: BigNumber

    -

    Inherited from

    +

    Inherited from

    Block.gasLimit

    -

    Source

    +

    Source

    node_modules/@ethersproject/abstract-provider/lib/index.d.ts:42


    -

    gasUsed

    +

    gasUsed

    gasUsed: BigNumber

    -

    Inherited from

    +

    Inherited from

    Block.gasUsed

    -

    Source

    +

    Source

    node_modules/@ethersproject/abstract-provider/lib/index.d.ts:43


    -

    hash

    +

    hash

    hash: string

    -

    Inherited from

    +

    Inherited from

    Block.hash

    -

    Source

    +

    Source

    node_modules/@ethersproject/abstract-provider/lib/index.d.ts:35


    -

    miner

    +

    miner

    miner: string

    -

    Inherited from

    +

    Inherited from

    Block.miner

    -

    Source

    +

    Source

    node_modules/@ethersproject/abstract-provider/lib/index.d.ts:44


    -

    nonce

    +

    nonce

    nonce: string

    -

    Inherited from

    +

    Inherited from

    Block.nonce

    -

    Source

    +

    Source

    node_modules/@ethersproject/abstract-provider/lib/index.d.ts:39


    -

    number

    +

    number

    number: number

    -

    Inherited from

    +

    Inherited from

    Block.number

    -

    Source

    +

    Source

    node_modules/@ethersproject/abstract-provider/lib/index.d.ts:37


    -

    parentHash

    +

    parentHash

    parentHash: string

    -

    Inherited from

    +

    Inherited from

    Block.parentHash

    -

    Source

    +

    Source

    node_modules/@ethersproject/abstract-provider/lib/index.d.ts:36


    -

    stateRoot

    +

    stateRoot

    stateRoot: string

    -

    Source

    +

    Source

    src/interfaces/l2-provider.ts:27


    -

    timestamp

    +

    timestamp

    timestamp: number

    -

    Inherited from

    +

    Inherited from

    Block.timestamp

    -

    Source

    +

    Source

    node_modules/@ethersproject/abstract-provider/lib/index.d.ts:38


    -

    transactions

    +

    transactions

    transactions: string[]

    -

    Inherited from

    +

    Inherited from

    Block.transactions

    -

    Source

    -

    node_modules/@ethersproject/abstract-provider/lib/index.d.ts:49

    +

    Source

    +

    node_modules/@ethersproject/abstract-provider/lib/index.d.ts:49

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/interfaces/L2BlockWithTransactions/index.html b/build/docs/build-on-morph/sdk/interfaces/L2BlockWithTransactions/index.html index 27cadf4b0..3ef6c7063 100644 --- a/build/docs/build-on-morph/sdk/interfaces/L2BlockWithTransactions/index.html +++ b/build/docs/build-on-morph/sdk/interfaces/L2BlockWithTransactions/index.html @@ -3,144 +3,148 @@ -L2BlockWithTransactions | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +L2BlockWithTransactions | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / L2BlockWithTransactions

    Interface: L2BlockWithTransactions

    JSON block representation when returned by L2Geth nodes. Just a normal block but with L2Transaction objects instead of the standard transaction response object.

    -

    Extends

    +

    Extends

    • BlockWithTransactions
    -

    Properties

    -

    _difficulty

    +

    Properties

    +

    _difficulty

    _difficulty: BigNumber

    -

    Inherited from

    +

    Inherited from

    BlockWithTransactions._difficulty

    -

    Source

    +

    Source

    node_modules/@ethersproject/abstract-provider/lib/index.d.ts:41


    -

    baseFeePerGas?

    +

    baseFeePerGas?

    optional baseFeePerGas: BigNumber

    -

    Inherited from

    +

    Inherited from

    BlockWithTransactions.baseFeePerGas

    -

    Source

    +

    Source

    node_modules/@ethersproject/abstract-provider/lib/index.d.ts:46


    -

    difficulty

    +

    difficulty

    difficulty: number

    -

    Inherited from

    +

    Inherited from

    BlockWithTransactions.difficulty

    -

    Source

    +

    Source

    node_modules/@ethersproject/abstract-provider/lib/index.d.ts:40


    -

    extraData

    +

    extraData

    extraData: string

    -

    Inherited from

    +

    Inherited from

    BlockWithTransactions.extraData

    -

    Source

    +

    Source

    node_modules/@ethersproject/abstract-provider/lib/index.d.ts:45


    -

    gasLimit

    +

    gasLimit

    gasLimit: BigNumber

    -

    Inherited from

    +

    Inherited from

    BlockWithTransactions.gasLimit

    -

    Source

    +

    Source

    node_modules/@ethersproject/abstract-provider/lib/index.d.ts:42


    -

    gasUsed

    +

    gasUsed

    gasUsed: BigNumber

    -

    Inherited from

    +

    Inherited from

    BlockWithTransactions.gasUsed

    -

    Source

    +

    Source

    node_modules/@ethersproject/abstract-provider/lib/index.d.ts:43


    -

    hash

    +

    hash

    hash: string

    -

    Inherited from

    +

    Inherited from

    BlockWithTransactions.hash

    -

    Source

    +

    Source

    node_modules/@ethersproject/abstract-provider/lib/index.d.ts:35


    -

    miner

    +

    miner

    miner: string

    -

    Inherited from

    +

    Inherited from

    BlockWithTransactions.miner

    -

    Source

    +

    Source

    node_modules/@ethersproject/abstract-provider/lib/index.d.ts:44


    -

    nonce

    +

    nonce

    nonce: string

    -

    Inherited from

    +

    Inherited from

    BlockWithTransactions.nonce

    -

    Source

    +

    Source

    node_modules/@ethersproject/abstract-provider/lib/index.d.ts:39


    -

    number

    +

    number

    number: number

    -

    Inherited from

    +

    Inherited from

    BlockWithTransactions.number

    -

    Source

    +

    Source

    node_modules/@ethersproject/abstract-provider/lib/index.d.ts:37


    -

    parentHash

    +

    parentHash

    parentHash: string

    -

    Inherited from

    +

    Inherited from

    BlockWithTransactions.parentHash

    -

    Source

    +

    Source

    node_modules/@ethersproject/abstract-provider/lib/index.d.ts:36


    -

    stateRoot

    +

    stateRoot

    stateRoot: string

    -

    Source

    +

    Source

    src/interfaces/l2-provider.ts:35


    -

    timestamp

    +

    timestamp

    timestamp: number

    -

    Inherited from

    +

    Inherited from

    BlockWithTransactions.timestamp

    -

    Source

    +

    Source

    node_modules/@ethersproject/abstract-provider/lib/index.d.ts:38


    -

    transactions

    +

    transactions

    transactions: [L2Transaction]

    -

    Overrides

    +

    Overrides

    BlockWithTransactions.transactions

    -

    Source

    -

    src/interfaces/l2-provider.ts:36

    +

    Source

    +

    src/interfaces/l2-provider.ts:36

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/interfaces/L2Transaction/index.html b/build/docs/build-on-morph/sdk/interfaces/L2Transaction/index.html index 564bdaaab..4f8563b66 100644 --- a/build/docs/build-on-morph/sdk/interfaces/L2Transaction/index.html +++ b/build/docs/build-on-morph/sdk/interfaces/L2Transaction/index.html @@ -3,251 +3,255 @@ -L2Transaction | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +L2Transaction | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / L2Transaction

    Interface: L2Transaction

    JSON transaction representation when returned by L2Geth nodes. This is simply an extension to the standard transaction response type. You do NOT need to use this type unless you care about having typed access to L2-specific fields.

    -

    Extends

    +

    Extends

    • TransactionResponse
    -

    Properties

    -

    accessList?

    +

    Properties

    +

    accessList?

    optional accessList: AccessList

    -

    Inherited from

    +

    Inherited from

    TransactionResponse.accessList

    -

    Source

    +

    Source

    node_modules/@ethersproject/transactions/lib/index.d.ts:40


    -

    blockHash?

    +

    blockHash?

    optional blockHash: string

    -

    Inherited from

    +

    Inherited from

    TransactionResponse.blockHash

    -

    Source

    +

    Source

    node_modules/@ethersproject/abstract-provider/lib/index.d.ts:26


    -

    blockNumber?

    +

    blockNumber?

    optional blockNumber: number

    -

    Inherited from

    +

    Inherited from

    TransactionResponse.blockNumber

    -

    Source

    +

    Source

    node_modules/@ethersproject/abstract-provider/lib/index.d.ts:25


    -

    chainId

    +

    chainId

    chainId: number

    -

    Inherited from

    +

    Inherited from

    TransactionResponse.chainId

    -

    Source

    +

    Source

    node_modules/@ethersproject/transactions/lib/index.d.ts:35


    -

    confirmations

    +

    confirmations

    confirmations: number

    -

    Inherited from

    +

    Inherited from

    TransactionResponse.confirmations

    -

    Source

    +

    Source

    node_modules/@ethersproject/abstract-provider/lib/index.d.ts:28


    -

    data

    +

    data

    data: string

    -

    Inherited from

    +

    Inherited from

    TransactionResponse.data

    -

    Source

    +

    Source

    node_modules/@ethersproject/transactions/lib/index.d.ts:33


    -

    from

    +

    from

    from: string

    -

    Inherited from

    +

    Inherited from

    TransactionResponse.from

    -

    Source

    +

    Source

    node_modules/@ethersproject/abstract-provider/lib/index.d.ts:29


    -

    gasLimit

    +

    gasLimit

    gasLimit: BigNumber

    -

    Inherited from

    +

    Inherited from

    TransactionResponse.gasLimit

    -

    Source

    +

    Source

    node_modules/@ethersproject/transactions/lib/index.d.ts:31


    -

    gasPrice?

    +

    gasPrice?

    optional gasPrice: BigNumber

    -

    Inherited from

    +

    Inherited from

    TransactionResponse.gasPrice

    -

    Source

    +

    Source

    node_modules/@ethersproject/transactions/lib/index.d.ts:32


    -

    hash

    +

    hash

    hash: string

    -

    Inherited from

    +

    Inherited from

    TransactionResponse.hash

    -

    Source

    +

    Source

    node_modules/@ethersproject/abstract-provider/lib/index.d.ts:24


    -

    l1BlockNumber

    +

    l1BlockNumber

    l1BlockNumber: number

    -

    Source

    +

    Source

    src/interfaces/l2-provider.ts:16


    -

    l1TxOrigin

    +

    l1TxOrigin

    l1TxOrigin: string

    -

    Source

    +

    Source

    src/interfaces/l2-provider.ts:17


    -

    maxFeePerGas?

    +

    maxFeePerGas?

    optional maxFeePerGas: BigNumber

    -

    Inherited from

    +

    Inherited from

    TransactionResponse.maxFeePerGas

    -

    Source

    +

    Source

    node_modules/@ethersproject/transactions/lib/index.d.ts:42


    -

    maxPriorityFeePerGas?

    +

    maxPriorityFeePerGas?

    optional maxPriorityFeePerGas: BigNumber

    -

    Inherited from

    +

    Inherited from

    TransactionResponse.maxPriorityFeePerGas

    -

    Source

    +

    Source

    node_modules/@ethersproject/transactions/lib/index.d.ts:41


    -

    nonce

    +

    nonce

    nonce: number

    -

    Inherited from

    +

    Inherited from

    TransactionResponse.nonce

    -

    Source

    +

    Source

    node_modules/@ethersproject/transactions/lib/index.d.ts:30


    -

    queueOrigin

    +

    queueOrigin

    queueOrigin: string

    -

    Source

    +

    Source

    src/interfaces/l2-provider.ts:18


    -

    r?

    +

    r?

    optional r: string

    -

    Inherited from

    +

    Inherited from

    TransactionResponse.r

    -

    Source

    +

    Source

    node_modules/@ethersproject/transactions/lib/index.d.ts:36


    -

    raw?

    +

    raw?

    optional raw: string

    -

    Inherited from

    +

    Inherited from

    TransactionResponse.raw

    -

    Source

    +

    Source

    node_modules/@ethersproject/abstract-provider/lib/index.d.ts:30


    -

    rawTransaction

    +

    rawTransaction

    rawTransaction: string

    -

    Source

    +

    Source

    src/interfaces/l2-provider.ts:19


    -

    s?

    +

    s?

    optional s: string

    -

    Inherited from

    +

    Inherited from

    TransactionResponse.s

    -

    Source

    +

    Source

    node_modules/@ethersproject/transactions/lib/index.d.ts:37


    -

    timestamp?

    +

    timestamp?

    optional timestamp: number

    -

    Inherited from

    +

    Inherited from

    TransactionResponse.timestamp

    -

    Source

    +

    Source

    node_modules/@ethersproject/abstract-provider/lib/index.d.ts:27


    -

    to?

    +

    to?

    optional to: string

    -

    Inherited from

    +

    Inherited from

    TransactionResponse.to

    -

    Source

    +

    Source

    node_modules/@ethersproject/transactions/lib/index.d.ts:28


    -

    type?

    +

    type?

    optional type: number

    -

    Inherited from

    +

    Inherited from

    TransactionResponse.type

    -

    Source

    +

    Source

    node_modules/@ethersproject/transactions/lib/index.d.ts:39


    -

    v?

    +

    v?

    optional v: number

    -

    Inherited from

    +

    Inherited from

    TransactionResponse.v

    -

    Source

    +

    Source

    node_modules/@ethersproject/transactions/lib/index.d.ts:38


    -

    value

    +

    value

    value: BigNumber

    -

    Inherited from

    +

    Inherited from

    TransactionResponse.value

    -

    Source

    +

    Source

    node_modules/@ethersproject/transactions/lib/index.d.ts:34


    -

    wait()

    +

    wait()

    wait: (confirmations?) => Promise<TransactionReceipt>

    -

    Parameters

    +

    Parameters

    confirmations?: number

    -

    Returns

    +

    Returns

    Promise<TransactionReceipt>

    -

    Inherited from

    +

    Inherited from

    TransactionResponse.wait

    -

    Source

    -

    node_modules/@ethersproject/abstract-provider/lib/index.d.ts:31

    +

    Source

    +

    node_modules/@ethersproject/abstract-provider/lib/index.d.ts:31

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/interfaces/MessageReceipt/index.html b/build/docs/build-on-morph/sdk/interfaces/MessageReceipt/index.html index 34114a61d..3841b4c9b 100644 --- a/build/docs/build-on-morph/sdk/interfaces/MessageReceipt/index.html +++ b/build/docs/build-on-morph/sdk/interfaces/MessageReceipt/index.html @@ -3,29 +3,33 @@ -MessageReceipt | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +MessageReceipt | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +
    +

    Source

    +

    src/interfaces/types.ts:308

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/interfaces/OEContracts/index.html b/build/docs/build-on-morph/sdk/interfaces/OEContracts/index.html index d0df883e2..389b77c77 100644 --- a/build/docs/build-on-morph/sdk/interfaces/OEContracts/index.html +++ b/build/docs/build-on-morph/sdk/interfaces/OEContracts/index.html @@ -3,30 +3,34 @@ -OEContracts | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +OEContracts | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +
    +

    Source

    +

    src/interfaces/types.ts:122

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/interfaces/OEContractsLike/index.html b/build/docs/build-on-morph/sdk/interfaces/OEContractsLike/index.html index 1f183de02..f6470d6a1 100644 --- a/build/docs/build-on-morph/sdk/interfaces/OEContractsLike/index.html +++ b/build/docs/build-on-morph/sdk/interfaces/OEContractsLike/index.html @@ -3,30 +3,34 @@ -OEContractsLike | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +OEContractsLike | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +
    +

    Source

    +

    src/interfaces/types.ts:147

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/interfaces/OEL1Contracts/index.html b/build/docs/build-on-morph/sdk/interfaces/OEL1Contracts/index.html index 71956cd86..122e561a6 100644 --- a/build/docs/build-on-morph/sdk/interfaces/OEL1Contracts/index.html +++ b/build/docs/build-on-morph/sdk/interfaces/OEL1Contracts/index.html @@ -3,106 +3,110 @@ -OEL1Contracts | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +OEL1Contracts | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / OEL1Contracts

    Interface: OEL1Contracts

    L1 contract references.

    -

    Properties

    -

    EnforcedTxGateway

    +

    Properties

    +

    EnforcedTxGateway

    EnforcedTxGateway: Contract

    -

    Source

    +

    Source

    src/interfaces/types.ts:64


    -

    L1CrossDomainMessenger

    +

    L1CrossDomainMessenger

    L1CrossDomainMessenger: Contract

    -

    Source

    +

    Source

    src/interfaces/types.ts:54


    -

    L1ERC1155Gateway

    +

    L1ERC1155Gateway

    L1ERC1155Gateway: Contract

    -

    Source

    +

    Source

    src/interfaces/types.ts:63


    -

    L1ERC721Gateway

    +

    L1ERC721Gateway

    L1ERC721Gateway: Contract

    -

    Source

    +

    Source

    src/interfaces/types.ts:62


    -

    L1ETHGateway

    +

    L1ETHGateway

    L1ETHGateway: Contract

    -

    Source

    +

    Source

    src/interfaces/types.ts:60


    -

    L1GatewayRouter

    +

    L1GatewayRouter

    L1GatewayRouter: Contract

    -

    Source

    +

    Source

    src/interfaces/types.ts:59


    -

    L1MessageQueueWithGasPriceOracle

    +

    L1MessageQueueWithGasPriceOracle

    L1MessageQueueWithGasPriceOracle: Contract

    -

    Source

    +

    Source

    src/interfaces/types.ts:55


    -

    L1StandardERC20Gateway

    +

    L1StandardERC20Gateway

    L1StandardERC20Gateway: Contract

    -

    Source

    +

    Source

    src/interfaces/types.ts:61


    -

    L1WETHGateway

    +

    L1WETHGateway

    L1WETHGateway: Contract

    -

    Source

    +

    Source

    src/interfaces/types.ts:66


    -

    MorphToken?

    +

    MorphToken?

    optional MorphToken: Contract

    -

    Source

    +

    Source

    src/interfaces/types.ts:68


    -

    Rollup

    +

    Rollup

    Rollup: Contract

    -

    Source

    +

    Source

    src/interfaces/types.ts:58


    -

    Staking

    +

    Staking

    Staking: Contract

    -

    Source

    +

    Source

    src/interfaces/types.ts:56


    -

    WETH

    +

    WETH

    WETH: Contract

    -

    Source

    -

    src/interfaces/types.ts:65

    +

    Source

    +

    src/interfaces/types.ts:65

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/interfaces/OEL2Contracts/index.html b/build/docs/build-on-morph/sdk/interfaces/OEL2Contracts/index.html index 8de36ed72..e885b3058 100644 --- a/build/docs/build-on-morph/sdk/interfaces/OEL2Contracts/index.html +++ b/build/docs/build-on-morph/sdk/interfaces/OEL2Contracts/index.html @@ -3,134 +3,138 @@ -OEL2Contracts | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +OEL2Contracts | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / OEL2Contracts

    Interface: OEL2Contracts

    L2 contract references.

    -

    Properties

    -

    GasPriceOracle

    +

    Properties

    +

    GasPriceOracle

    GasPriceOracle: Contract

    -

    Source

    +

    Source

    src/interfaces/types.ts:97


    -

    Gov

    +

    Gov

    Gov: Contract

    -

    Source

    +

    Source

    src/interfaces/types.ts:86


    -

    L2CrossDomainMessenger

    +

    L2CrossDomainMessenger

    L2CrossDomainMessenger: Contract

    -

    Source

    +

    Source

    src/interfaces/types.ts:89


    -

    L2ERC1155Gateway

    +

    L2ERC1155Gateway

    L2ERC1155Gateway: Contract

    -

    Source

    +

    Source

    src/interfaces/types.ts:94


    -

    L2ERC721Gateway

    +

    L2ERC721Gateway

    L2ERC721Gateway: Contract

    -

    Source

    +

    Source

    src/interfaces/types.ts:91


    -

    L2ETHGateway

    +

    L2ETHGateway

    L2ETHGateway: Contract

    -

    Source

    +

    Source

    src/interfaces/types.ts:88


    -

    L2GatewayRouter

    +

    L2GatewayRouter

    L2GatewayRouter: Contract

    -

    Source

    +

    Source

    src/interfaces/types.ts:84


    -

    L2StandardERC20Gateway

    +

    L2StandardERC20Gateway

    L2StandardERC20Gateway: Contract

    -

    Source

    +

    Source

    src/interfaces/types.ts:90


    -

    L2ToL1MessagePasser

    +

    L2ToL1MessagePasser

    L2ToL1MessagePasser: Contract

    -

    Source

    +

    Source

    src/interfaces/types.ts:83


    -

    L2TxFeeVault

    +

    L2TxFeeVault

    L2TxFeeVault: Contract

    -

    Source

    +

    Source

    src/interfaces/types.ts:92


    -

    L2WETH

    +

    L2WETH

    L2WETH: Contract

    -

    Source

    +

    Source

    src/interfaces/types.ts:98


    -

    L2WETHGateway

    +

    L2WETHGateway

    L2WETHGateway: Contract

    -

    Source

    +

    Source

    src/interfaces/types.ts:99


    -

    MorphStandardERC20

    +

    MorphStandardERC20

    MorphStandardERC20: Contract

    -

    Source

    +

    Source

    src/interfaces/types.ts:95


    -

    MorphStandardERC20Factory

    +

    MorphStandardERC20Factory

    MorphStandardERC20Factory: Contract

    -

    Source

    +

    Source

    src/interfaces/types.ts:96


    -

    MorphToken?

    +

    MorphToken?

    optional MorphToken: Contract

    -

    Source

    +

    Source

    src/interfaces/types.ts:102


    -

    Sequencer

    +

    Sequencer

    Sequencer: Contract

    -

    Source

    +

    Source

    src/interfaces/types.ts:85


    -

    WrappedEther

    +

    WrappedEther

    WrappedEther: Contract

    -

    Source

    -

    src/interfaces/types.ts:100

    +

    Source

    +

    src/interfaces/types.ts:100

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/interfaces/ProvenWithdrawal/index.html b/build/docs/build-on-morph/sdk/interfaces/ProvenWithdrawal/index.html index b98fbf509..c18ed1cd2 100644 --- a/build/docs/build-on-morph/sdk/interfaces/ProvenWithdrawal/index.html +++ b/build/docs/build-on-morph/sdk/interfaces/ProvenWithdrawal/index.html @@ -3,36 +3,40 @@ -ProvenWithdrawal | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +ProvenWithdrawal | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / ProvenWithdrawal

    Interface: ProvenWithdrawal

    ProvenWithdrawal in L1CrossDomainMessenger

    -

    Properties

    -

    timestamp

    +

    Properties

    +

    timestamp

    timestamp: BigNumber

    -

    Source

    +

    Source

    src/interfaces/types.ts:316


    -

    withdrawalIndex

    +

    withdrawalIndex

    withdrawalIndex: BigNumber

    -

    Source

    +

    Source

    src/interfaces/types.ts:319


    -

    withdrawalRoot

    +

    withdrawalRoot

    withdrawalRoot: string

    -

    Source

    -

    src/interfaces/types.ts:318

    +

    Source

    +

    src/interfaces/types.ts:318

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/interfaces/StateRoot/index.html b/build/docs/build-on-morph/sdk/interfaces/StateRoot/index.html index 10ca3629b..745ba28a3 100644 --- a/build/docs/build-on-morph/sdk/interfaces/StateRoot/index.html +++ b/build/docs/build-on-morph/sdk/interfaces/StateRoot/index.html @@ -3,36 +3,40 @@ -StateRoot | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +StateRoot | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / StateRoot

    Interface: StateRoot

    Information about a state root, including header, block number, and root iself.

    -

    Properties

    -

    batch

    +

    Properties

    +

    batch

    batch: StateRootBatch

    -

    Source

    +

    Source

    src/interfaces/types.ts:339


    -

    stateRoot

    +

    stateRoot

    stateRoot: string

    -

    Source

    +

    Source

    src/interfaces/types.ts:337


    -

    stateRootIndexInBatch

    +

    stateRootIndexInBatch

    stateRootIndexInBatch: number

    -

    Source

    -

    src/interfaces/types.ts:338

    +

    Source

    +

    src/interfaces/types.ts:338

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/interfaces/StateRootBatch/index.html b/build/docs/build-on-morph/sdk/interfaces/StateRootBatch/index.html index 4e34a2df1..abaa0f82d 100644 --- a/build/docs/build-on-morph/sdk/interfaces/StateRootBatch/index.html +++ b/build/docs/build-on-morph/sdk/interfaces/StateRootBatch/index.html @@ -3,36 +3,40 @@ -StateRootBatch | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +StateRootBatch | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +
    +

    Source

    +

    src/interfaces/types.ts:348

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/interfaces/StateRootBatchHeader/index.html b/build/docs/build-on-morph/sdk/interfaces/StateRootBatchHeader/index.html index facca04ab..2e5eae247 100644 --- a/build/docs/build-on-morph/sdk/interfaces/StateRootBatchHeader/index.html +++ b/build/docs/build-on-morph/sdk/interfaces/StateRootBatchHeader/index.html @@ -3,50 +3,54 @@ -StateRootBatchHeader | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +StateRootBatchHeader | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / StateRootBatchHeader

    Interface: StateRootBatchHeader

    Header for a state root batch.

    -

    Properties

    -

    batchIndex

    +

    Properties

    +

    batchIndex

    batchIndex: BigNumber

    -

    Source

    +

    Source

    src/interfaces/types.ts:326


    -

    batchRoot

    +

    batchRoot

    batchRoot: string

    -

    Source

    +

    Source

    src/interfaces/types.ts:327


    -

    batchSize

    +

    batchSize

    batchSize: BigNumber

    -

    Source

    +

    Source

    src/interfaces/types.ts:328


    -

    extraData

    +

    extraData

    extraData: string

    -

    Source

    +

    Source

    src/interfaces/types.ts:330


    -

    prevTotalElements

    +

    prevTotalElements

    prevTotalElements: BigNumber

    -

    Source

    -

    src/interfaces/types.ts:329

    +

    Source

    +

    src/interfaces/types.ts:329

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage/index.html b/build/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage/index.html index 5b85fbee5..993e4305e 100644 --- a/build/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage/index.html +++ b/build/docs/build-on-morph/sdk/interfaces/TokenBridgeMessage/index.html @@ -3,86 +3,90 @@ -TokenBridgeMessage | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +TokenBridgeMessage | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / TokenBridgeMessage

    Interface: TokenBridgeMessage

    Describes a token withdrawal or deposit, along with the underlying raw cross chain message behind the deposit or withdrawal.

    -

    Properties

    -

    amount

    +

    Properties

    +

    amount

    amount: BigNumber

    -

    Source

    +

    Source

    src/interfaces/types.ts:280


    -

    blockNumber

    +

    blockNumber

    blockNumber: number

    -

    Source

    +

    Source

    src/interfaces/types.ts:283


    -

    data

    +

    data

    data: string

    -

    Source

    +

    Source

    src/interfaces/types.ts:281


    -

    direction

    +

    direction

    direction: MessageDirection

    -

    Source

    +

    Source

    src/interfaces/types.ts:275


    -

    from

    +

    from

    from: string

    -

    Source

    +

    Source

    src/interfaces/types.ts:276


    -

    l1Token

    +

    l1Token

    l1Token: string

    -

    Source

    +

    Source

    src/interfaces/types.ts:278


    -

    l2Token

    +

    l2Token

    l2Token: string

    -

    Source

    +

    Source

    src/interfaces/types.ts:279


    -

    logIndex

    +

    logIndex

    logIndex: number

    -

    Source

    +

    Source

    src/interfaces/types.ts:282


    -

    to

    +

    to

    to: string

    -

    Source

    +

    Source

    src/interfaces/types.ts:277


    -

    transactionHash

    +

    transactionHash

    transactionHash: string

    -

    Source

    -

    src/interfaces/types.ts:284

    +

    Source

    +

    src/interfaces/types.ts:284

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/interfaces/WithdrawMessageProof/index.html b/build/docs/build-on-morph/sdk/interfaces/WithdrawMessageProof/index.html index 6d9babbb2..e1326b99d 100644 --- a/build/docs/build-on-morph/sdk/interfaces/WithdrawMessageProof/index.html +++ b/build/docs/build-on-morph/sdk/interfaces/WithdrawMessageProof/index.html @@ -3,42 +3,46 @@ -WithdrawMessageProof | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +WithdrawMessageProof | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / WithdrawMessageProof

    Interface: WithdrawMessageProof

    -

    Properties

    -

    withdrawalIndex

    +

    Properties

    +

    withdrawalIndex

    withdrawalIndex: BigNumber

    -

    Source

    +

    Source

    src/cross-chain-messenger.ts:61


    -

    withdrawalLeaf

    +

    withdrawalLeaf

    withdrawalLeaf: any

    -

    Source

    +

    Source

    src/cross-chain-messenger.ts:64


    -

    withdrawalProof

    +

    withdrawalProof

    withdrawalProof: string[]

    -

    Source

    +

    Source

    src/cross-chain-messenger.ts:62


    -

    withdrawalRoot

    +

    withdrawalRoot

    withdrawalRoot: string

    -

    Source

    -

    src/cross-chain-messenger.ts:63

    +

    Source

    +

    src/cross-chain-messenger.ts:63

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/interfaces/WithdrawalEntry/index.html b/build/docs/build-on-morph/sdk/interfaces/WithdrawalEntry/index.html index a4e7c4490..5b18cafbb 100644 --- a/build/docs/build-on-morph/sdk/interfaces/WithdrawalEntry/index.html +++ b/build/docs/build-on-morph/sdk/interfaces/WithdrawalEntry/index.html @@ -3,23 +3,27 @@ -WithdrawalEntry | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +WithdrawalEntry | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / WithdrawalEntry

    Interface: WithdrawalEntry

    Represents a withdrawal entry within the logs of a L2 to L1 CrossChainMessage

    -

    Properties

    -

    MessagePassed

    +

    Properties

    +

    MessagePassed

    MessagePassed: any

    -

    Source

    -

    src/interfaces/types.ts:292

    +

    Source

    +

    src/interfaces/types.ts:292

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/intro/index.html b/build/docs/build-on-morph/sdk/intro/index.html index 8c2b12e3f..f7dd762ce 100644 --- a/build/docs/build-on-morph/sdk/intro/index.html +++ b/build/docs/build-on-morph/sdk/intro/index.html @@ -3,15 +3,19 @@ -intro | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +intro | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    + +
    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/type-aliases/AddressLike/index.html b/build/docs/build-on-morph/sdk/type-aliases/AddressLike/index.html index 8b16364e9..ec9e330d9 100644 --- a/build/docs/build-on-morph/sdk/type-aliases/AddressLike/index.html +++ b/build/docs/build-on-morph/sdk/type-aliases/AddressLike/index.html @@ -3,12 +3,16 @@ -AddressLike | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +AddressLike | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / AddressLike

    Type alias: AddressLike

    @@ -16,7 +20,7 @@

    Type alias: AddressLike

    AddressLike: string | Contract

    Stuff that can be coerced into an address.

    -

    Source

    -

    src/interfaces/types.ts:391

    +

    Source

    +

    src/interfaces/types.ts:391

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/type-aliases/DeepPartial/index.html b/build/docs/build-on-morph/sdk/type-aliases/DeepPartial/index.html index 643010633..26d902e56 100644 --- a/build/docs/build-on-morph/sdk/type-aliases/DeepPartial/index.html +++ b/build/docs/build-on-morph/sdk/type-aliases/DeepPartial/index.html @@ -3,12 +3,16 @@ -DeepPartial | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +DeepPartial | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / DeepPartial

    Type alias: DeepPartial<T>

    @@ -16,9 +20,9 @@

    Type alias: DeepPartial<T>

    DeepPartial<T>: { [P in keyof T]?: DeepPartial<T[P]> }

    Utility type for deep partials.

    -

    Type parameters

    +

    Type parameters

    T

    -

    Source

    -

    src/utils/type-utils.ts:4

    +

    Source

    +

    src/utils/type-utils.ts:4

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/type-aliases/L1Provider/index.html b/build/docs/build-on-morph/sdk/type-aliases/L1Provider/index.html index ff276a05c..97d3fe23a 100644 --- a/build/docs/build-on-morph/sdk/type-aliases/L1Provider/index.html +++ b/build/docs/build-on-morph/sdk/type-aliases/L1Provider/index.html @@ -3,12 +3,16 @@ -L1Provider | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +L1Provider | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / L1Provider

    Type alias: L1Provider<TProvider>

    @@ -17,25 +21,25 @@

    Type alias: L1Provider<TProvider>

    Represents an extended version of an normal ethers Provider that returns additional L1 info and has special functions for L1-specific interactions.

    -

    Type declaration

    -

    _isL1Provider

    +

    Type declaration

    +

    _isL1Provider

    _isL1Provider: true

    Internal property to determine if a provider is a L1Provider You are likely looking for the isL2Provider function

    -

    estimateCrossDomainMessageFee()

    +

    estimateCrossDomainMessageFee()

    Gets the current L1 (data) gas price.

    -

    Parameters

    +

    Parameters

    l1Provider: ProviderLike

    sender: string

    gasLimit: number | bigint | BigNumber

    -

    Returns

    +

    Returns

    Promise<BigNumber>

    Current L1 data gas price in wei.

    -

    Type parameters

    +

    Type parameters

    TProvider extends Provider

    -

    Source

    -

    src/interfaces/l1-provider.ts:11

    +

    Source

    +

    src/interfaces/l1-provider.ts:11

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/type-aliases/L2Provider/index.html b/build/docs/build-on-morph/sdk/type-aliases/L2Provider/index.html index 255f5610e..e8d4cafee 100644 --- a/build/docs/build-on-morph/sdk/type-aliases/L2Provider/index.html +++ b/build/docs/build-on-morph/sdk/type-aliases/L2Provider/index.html @@ -3,12 +3,16 @@ -L2Provider | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +L2Provider | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / L2Provider

    Type alias: L2Provider<TProvider>

    @@ -17,57 +21,57 @@

    Type alias: L2Provider<TProvider>

    Represents an extended version of an normal ethers Provider that returns additional L2 info and has special functions for L2-specific interactions.

    -

    Type declaration

    -

    _isL2Provider

    +

    Type declaration

    +

    _isL2Provider

    _isL2Provider: true

    Internal property to determine if a provider is a L2Provider You are likely looking for the isL2Provider function

    -

    estimateL1Gas()

    +

    estimateL1Gas()

    Estimates the L1 (data) gas required for a transaction.

    -

    Parameters

    +

    Parameters

    tx: TransactionRequest

    Transaction to estimate L1 gas for.

    -

    Returns

    +

    Returns

    Promise<BigNumber>

    Estimated L1 gas.

    -

    estimateL1GasCost()

    +

    estimateL1GasCost()

    Estimates the L1 (data) gas cost for a transaction in wei by multiplying the estimated L1 gas cost by the current L1 gas price.

    -

    Parameters

    +

    Parameters

    tx: TransactionRequest

    Transaction to estimate L1 gas cost for.

    -

    Returns

    +

    Returns

    Promise<BigNumber>

    Estimated L1 gas cost.

    -

    estimateL2GasCost()

    +

    estimateL2GasCost()

    Estimates the L2 (execution) gas cost for a transaction in wei by multiplying the estimated L1 gas cost by the current L2 gas price. This is a simple multiplication of the result of getGasPrice and estimateGas for the given transaction request.

    -

    Parameters

    +

    Parameters

    tx: TransactionRequest

    Transaction to estimate L2 gas cost for.

    -

    Returns

    +

    Returns

    Promise<BigNumber>

    Estimated L2 gas cost.

    -

    estimateTotalGasCost()

    +

    estimateTotalGasCost()

    Estimates the total gas cost for a transaction in wei by adding the estimated the L1 gas cost and the estimated L2 gas cost.

    -

    Parameters

    +

    Parameters

    tx: TransactionRequest

    Transaction to estimate total gas cost for.

    -

    Returns

    +

    Returns

    Promise<BigNumber>

    Estimated total gas cost.

    -

    getL1GasPrice()

    +

    getL1GasPrice()

    Gets the current L1 (data) gas price.

    -

    Returns

    +

    Returns

    Promise<BigNumber>

    Current L1 data gas price in wei.

    -

    Type parameters

    +

    Type parameters

    TProvider extends Provider

    -

    Source

    -

    src/interfaces/l2-provider.ts:43

    +

    Source

    +

    src/interfaces/l2-provider.ts:43

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/type-aliases/LowLevelMessage/index.html b/build/docs/build-on-morph/sdk/type-aliases/LowLevelMessage/index.html index b5b9a6fcf..661d43a0b 100644 --- a/build/docs/build-on-morph/sdk/type-aliases/LowLevelMessage/index.html +++ b/build/docs/build-on-morph/sdk/type-aliases/LowLevelMessage/index.html @@ -3,12 +3,16 @@ -LowLevelMessage | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +LowLevelMessage | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / LowLevelMessage

    Type alias: LowLevelMessage

    @@ -17,24 +21,24 @@

    Type alias: LowLevelMessage

    Describes messages sent inside the L2ToL1MessagePasser on L2. Happens to be the same structure as the CoreCrossChainMessage so we'll reuse the type for now.

    -

    Type declaration

    -

    encodedMessage

    +

    Type declaration

    +

    encodedMessage

    encodedMessage: string

    -

    messageHash

    +

    messageHash

    messageHash: string

    -

    messageSender

    +

    messageSender

    messageSender: string

    -

    messageTarget

    +

    messageTarget

    messageTarget: string

    -

    Source

    -

    src/interfaces/types.ts:263

    +

    Source

    +

    src/interfaces/types.ts:263

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/type-aliases/MessageLike/index.html b/build/docs/build-on-morph/sdk/type-aliases/MessageLike/index.html index 428701326..8a104e0b9 100644 --- a/build/docs/build-on-morph/sdk/type-aliases/MessageLike/index.html +++ b/build/docs/build-on-morph/sdk/type-aliases/MessageLike/index.html @@ -3,12 +3,16 @@ -MessageLike | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +MessageLike | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +
    +

    Source

    +

    src/interfaces/types.ts:359

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/type-aliases/MessageRequestLike/index.html b/build/docs/build-on-morph/sdk/type-aliases/MessageRequestLike/index.html index b8a07d00e..69a210b6a 100644 --- a/build/docs/build-on-morph/sdk/type-aliases/MessageRequestLike/index.html +++ b/build/docs/build-on-morph/sdk/type-aliases/MessageRequestLike/index.html @@ -3,12 +3,16 @@ -MessageRequestLike | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +MessageRequestLike | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +
    +

    Source

    +

    src/interfaces/types.ts:367

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/type-aliases/NumberLike/index.html b/build/docs/build-on-morph/sdk/type-aliases/NumberLike/index.html index 784d09e1d..080a892e7 100644 --- a/build/docs/build-on-morph/sdk/type-aliases/NumberLike/index.html +++ b/build/docs/build-on-morph/sdk/type-aliases/NumberLike/index.html @@ -3,12 +3,16 @@ -NumberLike | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +NumberLike | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / NumberLike

    Type alias: NumberLike

    @@ -16,7 +20,7 @@

    Type alias: NumberLike

    NumberLike: string | number | BigNumber | bigint

    Stuff that can be coerced into a number.

    -

    Source

    -

    src/interfaces/types.ts:396

    +

    Source

    +

    src/interfaces/types.ts:396

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/type-aliases/OEL1ContractsLike/index.html b/build/docs/build-on-morph/sdk/type-aliases/OEL1ContractsLike/index.html index e509722cf..e46ea8dfc 100644 --- a/build/docs/build-on-morph/sdk/type-aliases/OEL1ContractsLike/index.html +++ b/build/docs/build-on-morph/sdk/type-aliases/OEL1ContractsLike/index.html @@ -3,12 +3,16 @@ -OEL1ContractsLike | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +OEL1ContractsLike | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / OEL1ContractsLike

    Type alias: OEL1ContractsLike

    @@ -17,7 +21,7 @@

    Type alias: OEL1ContractsLike

    Convenience type for something that looks like the L1 OE contract interface but could be addresses instead of actual contract objects.

    -

    Source

    -

    src/interfaces/types.ts:129

    +

    Source

    +

    src/interfaces/types.ts:129

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/type-aliases/OEL2ContractsLike/index.html b/build/docs/build-on-morph/sdk/type-aliases/OEL2ContractsLike/index.html index 6549c5310..27fa9d567 100644 --- a/build/docs/build-on-morph/sdk/type-aliases/OEL2ContractsLike/index.html +++ b/build/docs/build-on-morph/sdk/type-aliases/OEL2ContractsLike/index.html @@ -3,12 +3,16 @@ -OEL2ContractsLike | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +OEL2ContractsLike | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / OEL2ContractsLike

    Type alias: OEL2ContractsLike

    @@ -17,7 +21,7 @@

    Type alias: OEL2ContractsLike

    Convenience type for something that looks like the L2 OE contract interface but could be addresses instead of actual contract objects.

    -

    Source

    -

    src/interfaces/types.ts:137

    +

    Source

    +

    src/interfaces/types.ts:137

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/type-aliases/ProviderLike/index.html b/build/docs/build-on-morph/sdk/type-aliases/ProviderLike/index.html index 5801a3676..a7cc60648 100644 --- a/build/docs/build-on-morph/sdk/type-aliases/ProviderLike/index.html +++ b/build/docs/build-on-morph/sdk/type-aliases/ProviderLike/index.html @@ -3,12 +3,16 @@ -ProviderLike | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +ProviderLike | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / ProviderLike

    Type alias: ProviderLike

    @@ -16,7 +20,7 @@

    Type alias: ProviderLike

    ProviderLike: string | Provider

    Stuff that can be coerced into a provider.

    -

    Source

    -

    src/interfaces/types.ts:376

    +

    Source

    +

    src/interfaces/types.ts:376

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/type-aliases/SignerLike/index.html b/build/docs/build-on-morph/sdk/type-aliases/SignerLike/index.html index 418906b38..322617009 100644 --- a/build/docs/build-on-morph/sdk/type-aliases/SignerLike/index.html +++ b/build/docs/build-on-morph/sdk/type-aliases/SignerLike/index.html @@ -3,12 +3,16 @@ -SignerLike | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +SignerLike | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / SignerLike

    Type alias: SignerLike

    @@ -16,7 +20,7 @@

    Type alias: SignerLike

    SignerLike: string | Signer

    Stuff that can be coerced into a signer.

    -

    Source

    -

    src/interfaces/types.ts:381

    +

    Source

    +

    src/interfaces/types.ts:381

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/type-aliases/SignerOrProviderLike/index.html b/build/docs/build-on-morph/sdk/type-aliases/SignerOrProviderLike/index.html index 7a2f5e433..8d3c1f423 100644 --- a/build/docs/build-on-morph/sdk/type-aliases/SignerOrProviderLike/index.html +++ b/build/docs/build-on-morph/sdk/type-aliases/SignerOrProviderLike/index.html @@ -3,12 +3,16 @@ -SignerOrProviderLike | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +SignerOrProviderLike | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +
    +

    Source

    +

    src/interfaces/types.ts:386

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/type-aliases/TransactionLike/index.html b/build/docs/build-on-morph/sdk/type-aliases/TransactionLike/index.html index c70f87a81..b7bcacdd4 100644 --- a/build/docs/build-on-morph/sdk/type-aliases/TransactionLike/index.html +++ b/build/docs/build-on-morph/sdk/type-aliases/TransactionLike/index.html @@ -3,12 +3,16 @@ -TransactionLike | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +TransactionLike | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / TransactionLike

    Type alias: TransactionLike

    @@ -16,7 +20,7 @@

    Type alias: TransactionLike

    TransactionLike: string | TransactionReceipt | TransactionResponse

    Stuff that can be coerced into a transaction.

    -

    Source

    -

    src/interfaces/types.ts:354

    +

    Source

    +

    src/interfaces/types.ts:354

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/variables/BRIDGE_ADAPTER_DATA/index.html b/build/docs/build-on-morph/sdk/variables/BRIDGE_ADAPTER_DATA/index.html index 67d96b48a..ac7c564e8 100644 --- a/build/docs/build-on-morph/sdk/variables/BRIDGE_ADAPTER_DATA/index.html +++ b/build/docs/build-on-morph/sdk/variables/BRIDGE_ADAPTER_DATA/index.html @@ -3,12 +3,16 @@ -BRIDGE_ADAPTER_DATA | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +BRIDGE_ADAPTER_DATA | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / BRIDGE_ADAPTER_DATA

    Variable: BRIDGE_ADAPTER_DATA

    @@ -16,7 +20,7 @@

    Variable: BRIDGE_ADAPTER_DATA

    const BRIDGE_ADAPTER_DATA: { [ChainID in L2ChainID]?: BridgeAdapterData }

    Mapping of L1 chain IDs to the list of custom bridge addresses for each chain.

    -

    Source

    -

    src/utils/chain-constants.ts:128

    +

    Source

    +

    src/utils/chain-constants.ts:128

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/variables/CHAIN_BLOCK_TIMES/index.html b/build/docs/build-on-morph/sdk/variables/CHAIN_BLOCK_TIMES/index.html index d6e82b149..dd03ef40c 100644 --- a/build/docs/build-on-morph/sdk/variables/CHAIN_BLOCK_TIMES/index.html +++ b/build/docs/build-on-morph/sdk/variables/CHAIN_BLOCK_TIMES/index.html @@ -3,19 +3,23 @@ -CHAIN_BLOCK_TIMES | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +CHAIN_BLOCK_TIMES | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +
    +

    Source

    +

    src/utils/chain-constants.ts:22

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/variables/CONTRACT_ADDRESSES/index.html b/build/docs/build-on-morph/sdk/variables/CONTRACT_ADDRESSES/index.html index 7505934cc..59eb29feb 100644 --- a/build/docs/build-on-morph/sdk/variables/CONTRACT_ADDRESSES/index.html +++ b/build/docs/build-on-morph/sdk/variables/CONTRACT_ADDRESSES/index.html @@ -3,12 +3,16 @@ -CONTRACT_ADDRESSES | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +CONTRACT_ADDRESSES | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / CONTRACT_ADDRESSES

    Variable: CONTRACT_ADDRESSES

    @@ -18,7 +22,7 @@

    Variable: CONTRACT_ADDRESSES

    Mapping of L1 chain IDs to the appropriate contract addresses for the OE deployments to the given network. Simplifies the process of getting the correct contract addresses for a given contract name.

    -

    Source

    -

    src/utils/chain-constants.ts:100

    +

    Source

    +

    src/utils/chain-constants.ts:100

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/variables/DEFAULT_L1_CONTRACT_ADDRESSES/index.html b/build/docs/build-on-morph/sdk/variables/DEFAULT_L1_CONTRACT_ADDRESSES/index.html index c9efc1999..6c382468e 100644 --- a/build/docs/build-on-morph/sdk/variables/DEFAULT_L1_CONTRACT_ADDRESSES/index.html +++ b/build/docs/build-on-morph/sdk/variables/DEFAULT_L1_CONTRACT_ADDRESSES/index.html @@ -3,12 +3,16 @@ -DEFAULT_L1_CONTRACT_ADDRESSES | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +DEFAULT_L1_CONTRACT_ADDRESSES | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / DEFAULT_L1_CONTRACT_ADDRESSES

    Variable: DEFAULT_L1_CONTRACT_ADDRESSES

    @@ -16,7 +20,7 @@

    Variable: DEFAULT_L1_CONTRACT_ADDRESSES

    const DEFAULT_L1_CONTRACT_ADDRESSES: OEL1ContractsLike

    Full list of default L1 contract addresses.

    -

    Source

    -

    src/utils/chain-constants.ts:61

    +

    Source

    +

    src/utils/chain-constants.ts:61

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/variables/DEFAULT_L2_CONTRACT_ADDRESSES/index.html b/build/docs/build-on-morph/sdk/variables/DEFAULT_L2_CONTRACT_ADDRESSES/index.html index d9972294a..ceff7f196 100644 --- a/build/docs/build-on-morph/sdk/variables/DEFAULT_L2_CONTRACT_ADDRESSES/index.html +++ b/build/docs/build-on-morph/sdk/variables/DEFAULT_L2_CONTRACT_ADDRESSES/index.html @@ -3,12 +3,16 @@ -DEFAULT_L2_CONTRACT_ADDRESSES | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +DEFAULT_L2_CONTRACT_ADDRESSES | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / DEFAULT_L2_CONTRACT_ADDRESSES

    Variable: DEFAULT_L2_CONTRACT_ADDRESSES

    @@ -16,7 +20,7 @@

    Variable: DEFAULT_L2_CONTRACT_ADDRESSES

    const DEFAULT_L2_CONTRACT_ADDRESSES: OEL2ContractsLike

    Full list of default L2 contract addresses.

    -

    Source

    -

    src/utils/chain-constants.ts:37

    +

    Source

    +

    src/utils/chain-constants.ts:37

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/variables/DEPOSIT_CONFIRMATION_BLOCKS/index.html b/build/docs/build-on-morph/sdk/variables/DEPOSIT_CONFIRMATION_BLOCKS/index.html index 0b819a971..6abcddbc9 100644 --- a/build/docs/build-on-morph/sdk/variables/DEPOSIT_CONFIRMATION_BLOCKS/index.html +++ b/build/docs/build-on-morph/sdk/variables/DEPOSIT_CONFIRMATION_BLOCKS/index.html @@ -3,19 +3,23 @@ -DEPOSIT_CONFIRMATION_BLOCKS | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +DEPOSIT_CONFIRMATION_BLOCKS | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / DEPOSIT_CONFIRMATION_BLOCKS

    Variable: DEPOSIT_CONFIRMATION_BLOCKS

    const DEPOSIT_CONFIRMATION_BLOCKS: { [ChainID in L2ChainID]: number }

    -

    Source

    -

    src/utils/chain-constants.ts:12

    +

    Source

    +

    src/utils/chain-constants.ts:12

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/variables/l1BridgeName/index.html b/build/docs/build-on-morph/sdk/variables/l1BridgeName/index.html index 2ced4d152..fd428c11e 100644 --- a/build/docs/build-on-morph/sdk/variables/l1BridgeName/index.html +++ b/build/docs/build-on-morph/sdk/variables/l1BridgeName/index.html @@ -3,19 +3,23 @@ -l1BridgeName | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +l1BridgeName | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +
    +

    Source

    +

    src/cross-chain-messenger.ts:69

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/variables/l1CrossDomainMessengerName/index.html b/build/docs/build-on-morph/sdk/variables/l1CrossDomainMessengerName/index.html index 4d792b332..2bf0e139c 100644 --- a/build/docs/build-on-morph/sdk/variables/l1CrossDomainMessengerName/index.html +++ b/build/docs/build-on-morph/sdk/variables/l1CrossDomainMessengerName/index.html @@ -3,19 +3,23 @@ -l1CrossDomainMessengerName | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +l1CrossDomainMessengerName | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / l1CrossDomainMessengerName

    Variable: l1CrossDomainMessengerName

    const l1CrossDomainMessengerName: "L1CrossDomainMessenger" = 'L1CrossDomainMessenger'

    -

    Source

    -

    src/cross-chain-messenger.ts:67

    +

    Source

    +

    src/cross-chain-messenger.ts:67

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/variables/l2BridgeName/index.html b/build/docs/build-on-morph/sdk/variables/l2BridgeName/index.html index 19d263eea..fadfe1d03 100644 --- a/build/docs/build-on-morph/sdk/variables/l2BridgeName/index.html +++ b/build/docs/build-on-morph/sdk/variables/l2BridgeName/index.html @@ -3,19 +3,23 @@ -l2BridgeName | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +l2BridgeName | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +
    +

    Source

    +

    src/cross-chain-messenger.ts:70

    \ No newline at end of file diff --git a/build/docs/build-on-morph/sdk/variables/l2CrossDomainMessengerName/index.html b/build/docs/build-on-morph/sdk/variables/l2CrossDomainMessengerName/index.html index 6a0bf84cf..6907c392c 100644 --- a/build/docs/build-on-morph/sdk/variables/l2CrossDomainMessengerName/index.html +++ b/build/docs/build-on-morph/sdk/variables/l2CrossDomainMessengerName/index.html @@ -3,19 +3,23 @@ -l2CrossDomainMessengerName | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +l2CrossDomainMessengerName | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    @morph-l2/sdkDocs

    +

    @morph-l2/sdkDocs


    @morph-l2/sdk / l2CrossDomainMessengerName

    Variable: l2CrossDomainMessengerName

    const l2CrossDomainMessengerName: "L2CrossDomainMessenger" = 'L2CrossDomainMessenger'

    -

    Source

    -

    src/cross-chain-messenger.ts:68

    +

    Source

    +

    src/cross-chain-messenger.ts:68

    \ No newline at end of file diff --git a/build/docs/how-morph-works/decentralized-sequencers/morph-decentralized-sequencer-network/index.html b/build/docs/how-morph-works/decentralized-sequencers/morph-decentralized-sequencer-network/index.html index 5cdf6ae3f..fc039dce7 100644 --- a/build/docs/how-morph-works/decentralized-sequencers/morph-decentralized-sequencer-network/index.html +++ b/build/docs/how-morph-works/decentralized-sequencers/morph-decentralized-sequencer-network/index.html @@ -3,60 +3,64 @@ -Morph's Decentralized Sequencer Network | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +Morph's Decentralized Sequencer Network | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    Morph's Decentralized Sequencer Network

    RVP

    -

    The Importance of Decentralized Sequencers

    -

    What is a sequencer and what does it do?

    +

    Morph's Decentralized Sequencer Network

    RVP

    +

    The Importance of Decentralized Sequencers

    +

    What is a sequencer and what does it do?

    In a traditional Layer 1 blockchain, transactions are packaged and processed by miners in proof-of-work systems or validators nodes in proof-of-stake systems. These entities earn the authority to package, sequence, and produce blocks either through the competitive task of computational mining or via staking-based elections.

    However, many current Layer 2 designs employ a single role, unburdened by competition or staking costs, responsible for packaging and sequencing all Layer 2 transactions. This entity is known as the “sequencer”. Its duties extend beyond sequencing; it is also tasked with generating L2 blocks, periodically committing Layer 2 transactions and state changes to Layer 1, and addressing any potential challenges to its submissions.

    Centralized sequencers present a challenge due to their sole dominion over the sequencing and packaging of Layer 2 transactions. This monopoly raises concerns, largely stemming from this centralized control.

    -

    What are the problems with centralized sequencers?

    -

    Vulnerability of a Single Point of Failure

    +

    What are the problems with centralized sequencers?

    +

    Vulnerability of a Single Point of Failure

    The proper functioning of Layer 2 is intrinsically tied to the operation of the sequencer. If the sequencer stops working, transactions from all Layer 2 users will not be processed, effectively bringing down Layer 2 operations. The problem is magnified when a single entity controls the sequencer. Should the entity fail, the entirety of the Layer 2 is paralyzed, rendering the system vulnerable to a single point of failure. Therefore, centralized sequencers pose a significant risk to the stability of Layer 2.

    -

    Excessive Transaction Censorship

    +

    Excessive Transaction Censorship

    Centralized sequencers have the ability to reject user-submitted transactions, rendering them unprocessable — a blatant form of transaction censorship. In a scenario where a centralized Layer 2 deliberately blocks transactions involving its governance tokens, panic and selling among users is likely to follow. Some solutions allow users to submit their intended transactions directly on Layer 1. However, this process is time-consuming, often taking several hours, and burdens users with Layer 1 gas fees. Therefore, this alternative does not fundamentally solve the problem. In a decentralized sequencer framework, should one sequencer decline a transaction, users can still relay it to alternative sequencers. The content of the next block is ultimately determined through consensus, ensuring no single entity can censor transactions based on personal interests.

    -

    Monopoly Over MEV

    +

    Monopoly Over MEV

    Because the sequencer can determine the order (or "sequence") of received transactions, it effectively has a monopoly over all Miner Extractable Value (MEV). In this scenario, users must bear any potential losses incurred by the sequencer’s exclusive control over MEV, necessitating an additional and unwarranted layer of trust in the sequencer. Decentralized sequencers introduce a competitive dynamic among multiple entities aiming for MEV. This competition eliminates the monopoly of any single sequencer, mitigating the adverse effects of unchecked MEV on users.

    -

    What's Morph's Approach to Decentralized Sequencers?

    +

    What's Morph's Approach to Decentralized Sequencers?

    Morph is distinct from other Rollup projects due to the emphasis on establishing a decentralized sequencer network from inception. This design is guided by the following core principles:

    -

    Efficiency:​

    +

    Efficiency:​

    Morph is first and foremost an Ethereum scaling solution, focused on improved efficiency and cost reduction. Our solution must guarantee fast execution and transaction confirmation at Layer 2 while maintaining the highest possible level of decentralization.

    -

    Scalable and Manageable:​

    +

    Scalable and Manageable:​

    The sequencer network’s design prioritizes ease of maintenance, expansion, and updating. If one network functionality requires maintenance, it should not disrupt the operation of other functionalities. In addition, the sequencer network should be adaptable and easily upgradable as new and more efficient solutions emerge.

    -

    Solutions Formulated on These Principles​

    +

    Solutions Formulated on These Principles​

    With these principles, Morph’s sequencer network design includes:

    • Modularity: The structure emphasizes modular components that are loosely connected, allowing for swift upgrades or replacements.
    • Byzantine Fault Tolerant (BFT) Consensus: Sequencers employ a BFT consensus for L2 block generation.
    • BLS Signature for Batch Signing: Sequencers sign a collective of L2 blocks using the BLS signature method. The L1 contract then verifies this L2 consensus through the BLS signature.
    -
    tip

    Why BLS signature?

    A current basic signature algorithm such as ECDSA in Ethereum has an excessive cost. This issue arises because the signature data needs to be submitted to the Layer 1 contract and requires payment of the corresponding cost. As the number of validators increases, this cost will also increase proportionally. By using BLS signatures, the cost of uploading signatures can be maintained at a constant level, unaffected by the gradual growth of the sequencer's quantity.

    -

    Architecture

    +
    tip

    Why BLS signature?

    A current basic signature algorithm such as ECDSA in Ethereum has an excessive cost. This issue arises because the signature data needs to be submitted to the Layer 1 contract and requires payment of the corresponding cost. As the number of validators increases, this cost will also increase proportionally. By using BLS signatures, the cost of uploading signatures can be maintained at a constant level, unaffected by the gradual growth of the sequencer's quantity.

    +

    Architecture

    The following is a simple illustration of Morph’s decentralized sequencing network architecture.

    -

    Sequencer Network Archi

    -

    Sequencer Set Selection

    +

    Sequencer Network Archi

    +

    Sequencer Set Selection

    A complete Morph decentralized sequencer network consists of two parts:

    • Sequencer Set : This forms the core group that provides sequencing services
    • Sequencer Staking Contract: This contract facilitates the selection of the sequencer set via an election process.

    Through the sequencer staking contract, members are elected into the sequencer set, where they collaboratively provide services for the Morph network. Periodically, the election results are synchronized to the Layer 1 Rollup contract. This synchronized data is utilized to obtain the BLS aggregate signatures of sequencer network participants for comparison and verification.

    -

    Layer 2 Blocks Generation

    +

    Layer 2 Blocks Generation

    Given Morph's modular design, each sequencer operates a consensus client that runs BFT to communicate with other sequencers.

    -

    Block Generation

    +

    Block Generation

    Following the BFT consensus protocol, the selected sequencer extracts transactions from the mempool, constructs blocks, and synchronizes these blocks with other sequencers to undergo verification and voting. The end result is the generation of new Layer 2 blocks.

    -

    Batching

    +

    Batching

    Considering the costs of uploading to and validating signatures on Layer 1, sequencers will sign a batch of blocks with BLS signatures at designated checkpoints.

    -

    BlockSign

    +

    BlockSign

    Post-signing, the designated sequencer forwards the collective batch of blocks to Layer 1 through its batch submitter component.

    -

    Consensus Verification

    +

    Consensus Verification

    The selected sequencer must submit to the Layer 1 contract:

    • The aggregated BLS signatures
    • @@ -64,16 +68,16 @@

      Conse
    • The consensus-determined state

    The Layer 1 contract will verify the submitted signature to confirm the transaction's consensus.

    -

    Summary

    +

    Summary

    • Morph operates a native decentralized sequencer network based on BFT consensus.
    • Through protocol and network optimization, Morph maximizes the scalability of Ethereum while ensuring decentralization.
    • Based on BLS signatures, other participants in Layer 1 and Layer 2 can effectively verify the consensus results of Layer 2, ensuring the security provided by the sequencer network is confirmable at the Layer 1 level.
    -

    Roadmap

    +

    Roadmap

    Stage 1: Close test on morph beta testnet

    Stage 2: Decentralized sequencer network live on mainnet

    Stage 3: Open election of sequencer set

    -

    Stage 4: Open Morph's sequencer network to the public l2 space

    +

    Stage 4: Open Morph's sequencer network to the public l2 space

    \ No newline at end of file diff --git a/build/docs/how-morph-works/general-protocol-design/communicate-between-morph-and-ethereum/index.html b/build/docs/how-morph-works/general-protocol-design/communicate-between-morph-and-ethereum/index.html index 8f16e8ac4..8547813c9 100644 --- a/build/docs/how-morph-works/general-protocol-design/communicate-between-morph-and-ethereum/index.html +++ b/build/docs/how-morph-works/general-protocol-design/communicate-between-morph-and-ethereum/index.html @@ -3,13 +3,17 @@ -Communication between Morph and Ethereum | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +Communication between Morph and Ethereum | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    Communication between Morph and Ethereum

    Although Morph is a Layer 2 solution built atop Ethereum, it remains a separate and distinct blockchain. Thus, it’s essential to establish a communication channel between Morph and Ethereum to facilitate the smooth transfer of assets and messages. The communication can occur in two directions: from Ethereum to Morph and from Morph to Ethereum.

    -

    The Basics of Morph - Ethereum Bridge​

    +

    Communication between Morph and Ethereum

    Although Morph is a Layer 2 solution built atop Ethereum, it remains a separate and distinct blockchain. Thus, it’s essential to establish a communication channel between Morph and Ethereum to facilitate the smooth transfer of assets and messages. The communication can occur in two directions: from Ethereum to Morph and from Morph to Ethereum.

    +

    The Basics of Morph - Ethereum Bridge​

    Transferring assets between Ethereum and Morph involves the following process:

    • @@ -23,32 +27,32 @@

      Understanding the Gateway

      +

      Understanding the Gateway

      The Gateway serves as the primary entry point for users to interact with the entire bridge system. While the core process of transferring assets across layers still relies on message transmission, we recommend using the Gateway approach for efficient cross-layer transactions.

      Catering to diverse cross-layer asset transfer needs, we have designed distinct Gateways such as the ETH Gateway, standard ERC20 Gateway, and others.

      Furthermore, we have implemented the Gateway Router to call on different Gateways based on the type of assets you have. This facilitates seamless interaction with the Gateway Router contract.

      L1 Gateway ContractDescription
      L1GatewayRouterThe gateway router supports the deposit of ETH and ERC20 tokens.
      L1ETHGatewayThe gateway to deposit ETH.
      L1StandardERC20GatewayThe gateway for standard ERC20 token deposits.
      L1CustomERC20GatewayThe gateway for custom ERC20 token deposits.
      L1WETHGatewayThe gateway for Wrapped ETH deposits.
      L2 Gateway ContractDescription
      L2GatewayRouterThe gateway router supports the withdraw of ETH and ERC20 tokens.
      L2ETHGatewayThe gateway to withdraw ETH.
      L2StandardERC20GatewayThe gateway for standard ERC20 token withdraw.
      L2CustomERC20GatewayThe gateway for custom ERC20 token withdraw.
      L2WETHGatewayThe gateway for Wrapped ETH withdraw.
      -

      Deposit (L1 to L2 message)

      -

      Deposit Process

      -

      Constructing a Deposit Request Through the Gateway

      +

      Deposit (L1 to L2 message)

      +

      Deposit Process

      +

      Constructing a Deposit Request Through the Gateway

      A bridge request, whether it is for ETH, ERC20, or ERC721, is essentially a cross-layer message, which necessitates the initial construction of a message.

      Generally, the message structure remains consistent, especially for ETH & ERC20 Gateways.

      Employing a token gateway compiles a standard token gateway message and relays it to the CrossDomainMessenger.

      -

      Passing the Message Through the CrossDomainMessenger

      +

      Passing the Message Through the CrossDomainMessenger

      The CrossDomainMessenger serves as the core unit of cross-layer communication, with corresponding messenger contracts on both Layer 1 and Layer 2.

      For a deposit, the L1 messenger sends a message to the L2 messenger, akin to a contract call on Layer 1, which means custom messages (contract interactions) can be constructed to perform various types of cross-layer interactions.

      -

      Executing the Message on Layer 2

      +

      Executing the Message on Layer 2

      The cross-domain message is delivered to the L1MessageQueueWithGasPriceOracle, which then triggers an event called QueueTransaction.

      The Sequencer will monitor this event and include a Layer 2 transaction in its next block.

      -

      How to make sure Sequencer doesn't fake a deposit transaction?

      +

      How to make sure Sequencer doesn't fake a deposit transaction?

      Sequencers may have the motivation to forge a non-existent deposit transaction, such as minting a large amount of Layer 2 tokens and transferring these to an address they own.

      Morph prevents these risks with two measures:

      Due to Morph’s decentralized Sequencer architecture, forging transactions would require control of at least two-thirds of the Sequencers, a challenging feat.

      Morph's optimistic zkEVM framework allows challengers to detect such malicious behavior and initiate challenges to correct the misconduct.

      A Layer 2 executor, holding the cross-layer message, interacts with the L2 messenger to execute the message, which may include transferring L2 ETH or ERC20 tokens to the recipient.

      -

      Finalizing the Deposit Message

      +

      Finalizing the Deposit Message

      The completion of the deposit process involves more than just executing the request on Layer 2. There is a possibility that the Layer 2 execution and its corresponding state update could be reverted due to incorrect batch data being identified through the challenge process.

      Therefore, a deposit request is only considered complete once the corresponding batch of the deposit execution transaction is finalized.

      Typically, this follows a simple workflow:

      @@ -63,9 +67,9 @@

      Withdraw (L2 -> L1 message)

      -

      Withdraw Process

      -

      Finalizing a Withdrawal

      +

      Withdraw (L2 -> L1 message)

      +

      Withdraw Process

      +

      Finalizing a Withdrawal

      Unlike Deposits, a withdrawal request must undergo 2 processes for execution:

      1. @@ -76,14 +80,14 @@

        Fina

      Typically, these 2 processes happen at the same time. Once the withdraw tree root is finalized, users can call the proveAndRelayMessage method within the L1CrossDomainMessenger contract to execute the withdrawal message.

      -
      function proveAndRelayMessage(
      address _from,
      address _to,
      uint256 _value,
      uint256 _nonce,
      bytes memory _message,
      bytes32[32] calldata _withdrawalProof,
      bytes32 _withdrawalRoot
      )

      +
      function proveAndRelayMessage(
      address _from,
      address _to,
      uint256 _value,
      uint256 _nonce,
      bytes memory _message,
      bytes32[32] calldata _withdrawalProof,
      bytes32 _withdrawalRoot
      )

      This function serves two primary purposes:

      1. It checks if the withdraw tree root associated with this message has been finalized through the rollup contract.
      2. It verifies whether the withdraw request actually occurred by validating the provided Merkle proof.

      Upon successful completion of both processes, this method will execute the corresponding action, such as releasing the user's ETH on Layer 1 for a standard ETH withdrawal request.

      -

      Understanding the Withdraw Tree

      +

      Understanding the Withdraw Tree

      Withdrawal actions involve interacting with L1 assets/contracts as a result of a Layer 2 transaction. Consequently, it’s imperative to verify the existence of a Layer 2 transaction that triggers a withdrawal request, in a manner that is verifiable on Layer 1.

      To achieve this, we introduce a structure known as a Withdraw Tree, which records every L2 withdrawal transaction within a Merkle tree. Thus, a Merkle tree's properties can be leveraged to confirm a withdrawal request’s occurrence.

      The term Withdraw Tree refers to an append-only Sparse Merkle Tree (SMT) with leaf nodes that capture information on assets being transferred out of the network. @@ -97,15 +101,15 @@

      Understanding the Challenge Period & Batch Finalization

      +

      Understanding the Challenge Period & Batch Finalization

      The Optimistic zkEVM architecture mandates that each L2 transaction be submitted to Layer 1 and undergo a challenge period before finalization.

      This process is vital to validate the Layer 2 state, eventually validating the authenticity of the withdraw request.

      The withdraw tree root, integral for withdrawal request verification, is also submitted by sequencers once the challenge period, batches, and states have been finalized.

      -

      Cross-layer (Bridge) Errors

      +

      Cross-layer (Bridge) Errors

      With the design of cross-layer bridges, the cross-layer message for deposits needs to be executed and have its Layer 2 states updated. Sending a cross-chain request successfully does not guarantee its successful execution on L2.

      Prior to this, there is a possibility of the cross-layer message failing during execution on Layer 2. This section outlines the potential scenarios and solutions for handling failed cross-layer deposit messages.

      -

      Cross-layer (Bridge) Failure Scenarios:

      +

      Cross-layer (Bridge) Failure Scenarios:

      Two primary types of failures can occur in cross-layer (bridge) communications:

      1. @@ -115,7 +119,7 @@

        Handling Cross-layer (Bridge) Failures:

        +

        Handling Cross-layer (Bridge) Failures:

        For Gas Failures:

    +
    \ No newline at end of file diff --git a/build/docs/how-morph-works/general-protocol-design/difference-between-ethereum-and-morph/index.html b/build/docs/how-morph-works/general-protocol-design/difference-between-ethereum-and-morph/index.html index d07cfea50..31baab1c6 100644 --- a/build/docs/how-morph-works/general-protocol-design/difference-between-ethereum-and-morph/index.html +++ b/build/docs/how-morph-works/general-protocol-design/difference-between-ethereum-and-morph/index.html @@ -3,38 +3,38 @@ -Difference between Morph and Ethereum | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +Difference between Morph and Ethereum | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    Difference between Morph and Ethereum

    There are several technical differences between Ethereum’s EVM and Morph's optimistic zkEVM. We’ve compiled a list to help you understand these distinctions better.

    -
    tip

    For most Solidity developers, these technical details won't significantly impact your development experience.

    -

    EVM Opcodes

    -
    OpcodeSolidity equivalentMorph Behavior
    BLOCKHASHblock.blockhashReturns keccak(chain_id || block_number) for the last 256 blocks.
    COINBASEblock.coinbaseReturns the pre-deployed fee vault contract address. See Contracts
    DIFFICULTY / PREVRANDAOblock.difficultyReturns 0.
    SELFDESTRUCTselfdestructDisabled. If the opcode is encountered, the transaction will be reverted.
    BLOBHASHtx.blob_versioned_hashes[index]Not supported
    BLOBBASEFEEblob_base_fee = BLOBBASEFEE()Not supported
    -

    EVM Precompiles

    -

    The RIPEMD-160 (address 0x3) blake2f (address 0x9), and point evaluation (address 0x0a) precompiles are currently not supported. Calls to unsupported precompiled contracts will revert. We plan to enable these precompiles in future hard forks.

    -

    The modexp precompile is supported but only supports inputs of size less than or equal to 32 bytes (i.e. u256).

    -

    The ecPairing precompile is supported, but the number of points(sets, pairs) is limited to 4, instead of 6.

    -

    The other EVM precompiles are all supported: ecRecover, identity, ecAdd, ecMul.

    -

    Precompile Limits

    -

    Because of a bounded size of the zkEVM circuits, there is an upper limit on the number of calls that can be made for some precompiles. These transactions will not revert, but simply be skipped by the sequencer if they cannot fit into the space of the circuit.

    -
    Precompile / OpcodeLimit
    keccak2563157
    ecRecover119
    modexp23
    ecAdd50
    ecMul50
    ecPairing2
    -
    Several opcode not available

    BLOBHASH and BLOBBASEFEE are not supported on Morph yet. Additionally, EIP-4788 for accessing the Beacon Chain block root is not supported.

    -

    State Account

    -

    Additional Fields

    -

    We added two fields in the current StateAccount object: PoseidonCodehash and CodeSize.

    -
    type StateAccount struct {
    Nonce uint64
    Balance *big.Int
    Root common.Hash // merkle root of the storage trie
    KeccakCodeHash []byte // still the Keccak codehash
    // added fields
    PoseidonCodeHash []byte // the Poseidon codehash
    CodeSize uint64
    }
    -

    CodeHash

    -

    Related to this, we maintain two types of codehash for each contract bytecode: Keccak hash and Poseidon hash.

    -

    KeccakCodeHash is kept to maintain compatibility for EXTCODEHASH. PoseidonCodeHash is used for verifying the correctness of bytecodes loaded in the zkEVM, where Poseidon hashing is far more efficient.

    -

    CodeSize

    -

    When verifying EXTCODESIZE, it is expensive to load the whole contract data into the zkEVM. Instead, we store the contract size in storage during contract creation. This way, we do not need to load the code — a storage proof is sufficient to verify this opcode.

    -

    Block Time

    -
    Block Time Subject to Change

    Blocks are produced every second, with an empty block generated if there are no transactions for 5 seconds. However, this frequency may change in the future.

    +

    Difference between Morph and Ethereum

    There are several technical differences between Ethereum’s EVM and Morph's optimistic zkEVM.

    +

    We’ve compiled a list to help you understand these distinctions better.

    +

    For most Solidity developers, these technical details won't significantly impact your development experience.

    +

    EVM Precompiles Difference

    +

    The RIPEMD-160 (address 0x3), blake2f (address 0x9), and point evaluation (address 0x0a) precompiles are currently unsupported. Calls to these unsupported precompiled contracts will result in a transaction revert.

    +

    The modexp precompile is supported, but it only accepts inputs that are 32 bytes or smaller (i.e., u256).

    +

    The ecPairing precompile is also supported; however, the maximum number of points (sets or pairs) is limited to 4, rather than 6.

    +

    All other EVM precompiles are fully supported: ecRecover, identity, ecAdd, and ecMul.

    +

    EVM Opcodes Difference

    +
    OpcodeSolidity equivalentMorph Behavior
    BLOCKHASHblock.blockhashReturns keccak(chain_id || block_number) for the last 256 blocks.
    COINBASEblock.coinbaseReturns the pre-deployed fee vault contract address. See Contracts
    DIFFICULTY / PREVRANDAOblock.difficultyReturns 0.
    SELFDESTRUCTselfdestructDisabled. If the opcode is triggered, the transaction will be reverted.
    BLOBHASHtx.blob_versioned_hashes[index]Not supported
    BLOBBASEFEEblob_base_fee = BLOBBASEFEE()Not supported
    +
    Several opcode not available

    BLOBHASH and BLOBBASEFEE are not supported on Morph yet.

    EIP-4788 for accessing the Beacon Chain block root is not supported too.

    +

    State Account Structure Difference

    +

    Additional Fields

    +

    There are two additional fields in the existing StateAccount object: PoseidonCodehash and CodeSize.

    +
    type StateAccount struct {
    Nonce uint64
    Balance *big.Int
    Root common.Hash // merkle root of the storage trie
    KeccakCodeHash []byte // still the Keccak codehash
    // added fields
    PoseidonCodeHash []byte // the Poseidon codehash
    CodeSize uint64
    }
    +

    CodeHash

    +

    In this context, we keep two varieties of code hashes for each contract's bytecode: the Keccak hash and the Poseidon hash.

    +

    The KeccakCodeHash is preserved to ensure compatibility with EXTCODEHASH, while the PoseidonCodeHash is utilized for verifying the accuracy of bytecodes loaded in the zkEVM, as Poseidon hashing offers significantly greater efficiency.

    +

    Block Time Difference

    +
    Block Time Subject to Change

    Blocks are produced every second, with an empty block generated if there are no transactions for 5 seconds. However, this frequency may change in the future.

    To compare, Ethereum has a block time of ~12 seconds.

    -

    Reasons for Faster Block Time in Morph -User Experience:

    +

    Reasons for Faster Block Time in Morph

    +

    User Experience:

    -

    Future EIPs

    -

    Morph closely monitors emerging Ethereum Improvement Proposals (EIPs) and adopts them when suitable. For more specifics, join our community forum or Discord for discussions.

    +
    \ No newline at end of file diff --git a/build/docs/how-morph-works/general-protocol-design/rollup/index.html b/build/docs/how-morph-works/general-protocol-design/rollup/index.html index 862034a72..719eabdfb 100644 --- a/build/docs/how-morph-works/general-protocol-design/rollup/index.html +++ b/build/docs/how-morph-works/general-protocol-design/rollup/index.html @@ -3,15 +3,19 @@ -Rollup | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +Rollup | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    Rollup

    info

    As the foundation of a Layer 2 project, the "Rollup" process refers to the method by which Layer 2 assembles L2 transactions and state into batches and subsequently submits them to L1, along with the L2 state.

    Within Morph's architecture, this Rollup process is executed by the Batch Submitter components.

    -

    An overview of Morph Rollup Design:

    -

    rollup

    -

    Constructing the Batch​

    +

    Rollup

    info

    As the foundation of a Layer 2 project, the "Rollup" process refers to the method by which Layer 2 assembles L2 transactions and state into batches and subsequently submits them to L1, along with the L2 state.

    Within Morph's architecture, this Rollup process is executed by the Batch Submitter components.

    +

    An overview of Morph Rollup Design:

    +

    rollup

    +

    Constructing the Batch​

    The L2 Node within the sequencer generates L2 blocks based on consensus results and updates the local state of L2. The batch submitter must query the L2 node to retrieve the latest L2 blocks.

    The batch submitter then reconstructs L2 blocks, compiling:

      @@ -28,39 +32,39 @@

      Const
    • WithdrawalRoot : L2 withdrawal Merkle tree root.
    • Signature : The batch’s BLS signature.
    -
    info

    Blockinfo (BlockWitness) is needed since Morph employs zk technology to prove the accuracy of submitted batch data. It serves as a witness in the Zero-Knowledge Proof.

    -

    Putting Multiple Batches into a Single Rollup Transaction​

    +
    info

    Blockinfo (BlockWitness) is needed since Morph employs zk technology to prove the accuracy of submitted batch data. It serves as a witness in the Zero-Knowledge Proof.

    +

    Putting Multiple Batches into a Single Rollup Transaction​

    While it's standard for roll-up projects to include only one batch per L1 roll-up transaction, Morph optimizes by inserting as many batches as feasible into a single L1 transaction. This efficiency-driven approach significantly reduces overall costs, as the L1 fee is a predominant component of the transaction costs associated with the L2. By optimizing the utilization of available space, Morph achieves cost-effectiveness without compromising transaction integrity.

    -

    Submitting Batch Data to the Rollup Contract​

    +

    Submitting Batch Data to the Rollup Contract​

    The batch submitter will eventually send an Ethereum transaction from its L1 account to Morph's main contract.

    The transaction's calldata contains the batch data.

    -
    info

    Based on the development process of ERC-4337, future batch data will likely be incorporated into a new ‘blob’ structure to further decrease costs.

    +
    info

    Based on the development process of ERC-4337, future batch data will likely be incorporated into a new ‘blob’ structure to further decrease costs.

    Once the transaction is submitted and confirmed on Ethereum, validator nodes can reconstruct and verify the validity of sequencers' submissions using the transactional data within the batch.

    -

    Finalize the batches

    +

    Finalize the batches

    If batches are valid according to Morph's responsive validity proof standards, all transactions within the batches will be finalized, including withdrawal transactions.

    Consequently, withdrawal requests will be fulfilled, and the corresponding locked assets on Layer 1 will be released.

    Decentralize Batch Submitter

    -

    What is Batch Submitter?

    +

    What is Batch Submitter?

    A Batch Submitter plays a crucial role in the "rollup" process, acting as the bridge that connects Layer 2 (L2) data with Ethereum (Layer 1 or L1). Their primary responsibilities include:

    • Collecting L2 transactions and block data, assembling them into a cohesive batch.
    • Embedding this batch data within a Layer 1 transaction.
    • Executing this transaction by calling the Layer 1 contract to complete the rollup process.
    -

    rollup

    -

    What is the relationship between Sequencers & Batch Submitters?

    +

    rollup

    +

    What is the relationship between Sequencers & Batch Submitters?

    The Batch submitter function is often integrated within the broader 'sequencer' role. In a decentralized sequencer network architecture, each sequencer is equipped with or has access to a batch submitter component. This integration is key to achieving and maintaining the highest levels of decentralization.

    This structure ensures that the data uploaded to Layer 1 remains decentralized, preventing a single entity from controlling the rollup process.

    -

    How to decentralize the Batch Submitter?

    +

    How to decentralize the Batch Submitter?

    To uphold the aforementioned principles, it is essential to ensure that multiple sequencers can share rollup tasks evenly within the same time frame. Our approach to achieving this involves a rotation system for sequencers to take turns with the responsibility of calling the batch submitter, as detailed below:

    -

    Submitter Rotation

    +

    Submitter Rotation

    • Epoch Cycle Role Switching: Sequencers alternate roles as batch submitters within an established Epoch cycle.
    • Cross-Epoch Execution Capability: Any Sequencer can perform a Rollup for another Sequencer's Epoch.
    • Timeout Logging: The system records instances when not a single rollup happens during an epoch, the epoch will be marked as “timeout” as well as the responsible sequencer.
    -

    Timeout

    +

    Timeout

    • Timeout Identification: If an epoch passes without a rollup (batch submission), it's identified as a "timeout." The timing of a rollup is pegged to the confirmation time of the Layer 1 rollup transaction.

      @@ -69,17 +73,17 @@

      TimeoutPenalties for Timeout

      +

      Penalties for Timeout

      • Accumulated Penalties: Sequencers that frequently exhibit timeout behaviors may face penalties that related to their Layer 1 ETH staking, if the timeout records reaches to a certain level, sequencer may/will be slashed from the sequencer network.
      -

      Module Design

      +

      Module Design

      Below you can find the contracts that are responsible for each module and their responsibilities:

      -

      Layer1

      +

      Layer1

      • RollupContract: records the rollup executor and sync with L2
      -

      Layer2

      +

      Layer2

      • SequencerContract: Sync Sequencers
      • GovContract: Manage Batch & Epoch Parameters
      • @@ -92,6 +96,6 @@

        Layer2

    +
    \ No newline at end of file diff --git a/build/docs/how-morph-works/general-protocol-design/transactions-life-cycle/index.html b/build/docs/how-morph-works/general-protocol-design/transactions-life-cycle/index.html index 32244d79e..2ee88340a 100644 --- a/build/docs/how-morph-works/general-protocol-design/transactions-life-cycle/index.html +++ b/build/docs/how-morph-works/general-protocol-design/transactions-life-cycle/index.html @@ -3,12 +3,16 @@ -Transactions Life Cycle | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +Transactions Life Cycle | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    Transactions Life Cycle

    How is a L2 transaction processed on Morph

    +

    Transactions Life Cycle

    How is a L2 transaction processed on Morph

    1. Submit Transaction
    @@ -34,14 +38,14 @@
  • Batch Verification
  • A batch (so do the transactions within the batch) will first go through the BLS signature verification by the rollup contract to confirm the L2 consensus results, and then a batch will go through a challenge period to be marked as finalized, solidifying their status within the L1 and L2 state.

    -

    Morph Transaction Status

    -

    Processing​

    +

    Morph Transaction Status

    +

    Processing​

    Once submitted, a transaction enters the consensus phase managed by sequencers and is placed into a block pre-execution.

    -

    Confirmed​

    +

    Confirmed​

    Post-execution by the Sequencer, the transaction’s updated state is local to L2. It is then batched and sent to L1, where it must undergo a challenge period before finalization.

    -

    Safe

    +

    Safe

    The batch that contains the transaction is submitted to Layer 1 but not finalized yet.

    -

    Finalized​

    -

    A transaction is considered finalized after it survives the challenge period or is verified by a Zero-Knowledge Proof (ZK-Proof). Only then is it officially integrated into the final L1 and L2 state.

    +

    Finalized​

    +

    A transaction is considered finalized after it survives the challenge period or is verified by a Zero-Knowledge Proof (ZK-Proof). Only then is it officially integrated into the final L1 and L2 state.

    \ No newline at end of file diff --git a/build/docs/how-morph-works/intro/index.html b/build/docs/how-morph-works/intro/index.html index 1e6dcd7ce..70b0f4e96 100644 --- a/build/docs/how-morph-works/intro/index.html +++ b/build/docs/how-morph-works/intro/index.html @@ -3,17 +3,21 @@ -Introduction | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +Introduction | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    Introduction

    This section provides an overview of Morph’s protocol architecture, including:

    +

    Introduction

    This section provides an overview of Morph’s protocol architecture, including:

    • The Decentralized Sequencer Network
    • Optimistic zkEVM & Responsive Validity Proof (RVP)
    • Morph's Modular Architecture
    • General Protocol Design
    • -
    +
    \ No newline at end of file diff --git a/build/docs/how-morph-works/morph-modular-design/index.html b/build/docs/how-morph-works/morph-modular-design/index.html index a05a6be3f..acdf3f6ec 100644 --- a/build/docs/how-morph-works/morph-modular-design/index.html +++ b/build/docs/how-morph-works/morph-modular-design/index.html @@ -3,14 +3,18 @@ -Morph Modular Design | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +Morph Modular Design | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    Morph Modular Design

    The modular design of blockchain technology, known for its improved composability, has become a prevalent trend. Morph leverages this design principle to enhance its architecture and functionality.

    -

    arichitecture

    -

    Overview

    +

    Morph Modular Design

    The modular design of blockchain technology, known for its improved composability, has become a prevalent trend. Morph leverages this design principle to enhance its architecture and functionality.

    +

    arichitecture

    +

    Overview

    A modular design typically divides a Layer 1 blockchain into four core functions:

    1. Consensus
    2. @@ -19,18 +23,18 @@

      Overview3 Major Morph Modules

      -

      Sequencer Network - Consensus & Execution

      -

      Sequencer Network

      +

      3 Major Morph Modules

      +

      Sequencer Network - Consensus & Execution

      +

      Sequencer Network

      Sequencer network responsible for the execution & consensus of the Layer 2 transactions, for more details please refer to Morph's decentralized sequencers.

      -

      Optimistic zkEVM - Settlement

      -

      Optimistic zkEVM

      +

      Optimistic zkEVM - Settlement

      +

      Optimistic zkEVM

      State verification ensures that state changes on Layer 2 are valid on Layer 1. Morph introduces Optimistic zkEVM, a hybrid solution combining zk-rollups and optimistic rollups for state verification. The process involves a Morph innovation known as Responsive Validity Proof (RVP). This innovative approach finalizes and settles Layer 2 transactions and states efficiently. For more details, refer to the documentation on Responsive Validity Proof.

      -

      Rollup - Data Availability

      -

      Rollup

      +

      Rollup - Data Availability

      +

      Rollup

      The Rollup process involves submitting Layer 2 transactions and states to Layer 1, ensuring data availability. Morph's rollup strategy maximizes efficiency by compressing block content using zk-proofs, which helps manage the cost of Layer 1 data availability.

      -

      5 Morph Roles

      -

      Sequencers

      +

      5 Morph Roles

      +

      Sequencers

      Sequencers play a crucial role in the network by:

      -

      Prover

      +

      Prover

      Provers are essential for generating zk proofs when a sequencer is challenged. They synchronize Layer 2 transaction information and produce the necessary zk proofs to validate state changes.

      -

      Validator

      +

      Validator

      Validators can be any user and play a key role in ensuring the correctness of states submitted by sequencers to Layer 1. They maintain an L2 node to synchronize transactions and state changes, triggering challenges when incorrect states are identified.

      -

      Nodes

      +

      Nodes

      Nodes facilitate easier access to Layer 2 transactions and states without actively participating in network operations. Running an L2 node is open to anyone and does not require permission.

      -

      Layer 1

      +

      Layer 1

      Every Layer 2 solution relies on a Layer 1 blockchain for final settlements and data availability. For Morph, this role is fulfilled by Ethereum. Key contracts on Layer 1 ensure the security and finality of Layer 2 transactions and states.

      -

      6 Morph Components

      -

      L2 Node​

      +

      6 Morph Components

      +

      L2 Node​

      The L2 node is central to Morph's architecture, interacting with various modules and roles. It includes sub-components such as:

      • Transactions Manager (Mempool): Manages all Layer 2 transactions, accepting and storing user-initiated transactions.
      • Executor: Applies state transitions and maintains the real-time status of Layer 2.
      • Synchronizer: Synchronizes data between L2 nodes to restore network status.
      -

      Batch Submitter​

      +

      Batch Submitter​

      The Batch Submitter is part of the sequencer, responsible for continuously obtaining L2 blocks, packaging them into batches, and assembling the batches into Layer 1 transactions, which are then submitted to the Layer 1 contract.

      -

      Consensus Client​

      +

      Consensus Client​

      Each sequencer runs a consensus client to reach consensus with other sequencers. The current design uses the Tendermint client to ensure seamless integration and developer friendliness.

      -

      zkEVM​

      +

      zkEVM​

      zkEVM is part of the Prover and is a zk-friendly virtual machine used to generate zk proofs for Ethereum blocks and state changes. These zk proofs are ultimately used to prove the validity of L2 transactions and states.

      -

      Aggregators​

      +

      Aggregators​

      Aggregators work with zkEVM to reduce the cost of verifying zk proofs by aggregating them for block production.

      -

      Layer 1 Contract​

      +

      Layer 1 Contract​

      These contracts on Ethereum store Layer 2 transactions, execute global state changes, and bridge assets and information between Layer 2 and Layer 1. They also manage the election and governance of the sequencer set, inheriting the security of Ethereum.

      -

      Integration of Components, Roles, and Modules

      -

      modular

      -

      The components form the foundation of the various roles in Morph. For instance, running an L2 node allows one to become a Node, while adding batch submitter and consensus client functionalities enables the role of Sequencer. These roles collaborate to perform the core functions of Morph, creating a complete and efficient rollup solution.

    +

    Integration of Components, Roles, and Modules

    +

    modular

    +

    The components form the foundation of the various roles in Morph. For instance, running an L2 node allows one to become a Node, while adding batch submitter and consensus client functionalities enables the role of Sequencer. These roles collaborate to perform the core functions of Morph, creating a complete and efficient rollup solution.

    \ No newline at end of file diff --git a/build/docs/how-morph-works/optimistic-zkevm/index.html b/build/docs/how-morph-works/optimistic-zkevm/index.html index 6c07e924d..0fe7977f7 100644 --- a/build/docs/how-morph-works/optimistic-zkevm/index.html +++ b/build/docs/how-morph-works/optimistic-zkevm/index.html @@ -3,17 +3,21 @@ -Optimistic zkEVM | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +Optimistic zkEVM | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    Optimistic zkEVM

    RVP

    -

    Introduction to State Verification

    +

    Optimistic zkEVM

    RVP

    +

    Introduction to State Verification

    Layer 2 state verification traditionally falls into two categories: fraud proofs and validity proofs. Morph introduces a new verification method called Responsive Validity Proof (RVP), combining the benefits of both approaches to address their limitations. Fraud proofs, while effective, suffer from capital inefficiency and low security assumptions. Additionally, no Optimistic Rollup (OP-Rollup) has fully implemented a permissionless fraud-proof challenge mechanism. Conversely, validity proofs offer high security but face practical issues with cost and efficiency that hinder Rollup scalability.

    -

    The Problem with Optimistic Rollups

    +

    The Problem with Optimistic Rollups

    In this model, Layer 2 (L2) optimistically assumes that the state changes submitted by the sequencer are valid without actively verifying their authenticity. Instead, a challenge period is introduced before the state changes are confirmed on Layer 1 (L1). During this period, external challengers verify the sequencer's submissions based on their own synchronized network status. If they find discrepancies, challengers can trigger a challenge process on L1 to prevent incorrect states from being confirmed.

    -

    Challenge Mechanism: Although all optimistic rollups claim to implement fraud proofs, only Arbitrum has successfully deployed them on the mainnet. Furthermore, the challengers are often limited to several whitelisted addresses. Fraud proofs in current optimistic rollup projects can be categorized into two types:

    +

    Challenge Mechanism: Although all optimistic rollups claim to implement fraud proofs, only very a few had successfully deployed them on the mainnet. Furthermore, the challengers are often limited to several whitelisted addresses. Fraud proofs in current optimistic rollup projects can be categorized into two types:

    Non-Interactive Fraud Proofs: When a new state submitted by the sequencer is challenged, L1 re-executes all corresponding L2 transactions to generate a valid state for comparison with the state submitted by the sequencer. This process incurs significant gas costs and may lead to discrepancies between L2 and L1, as some transactions might produce different outcomes on L2 compared to L1, or L1 might not be able to execute certain L2 transactions. Optimism (OP) once used this approach but abandoned it due to these issues.

    Interactive Fraud Proofs: To address the issues of non-interactive fraud proofs, multi-round interactive fraud proofs were introduced. This method involves determining the specific instruction execution that caused the incorrectness through multiple rounds of interaction between the sequencer and the challenger, then confirming fraud by executing the corresponding instructions on L1. This approach reduces computational costs and diminishes the issue of incongruent outcomes between L1 and L2. However, it introduces complexities, such as:

      @@ -23,51 +27,51 @@

      What is RVP?​

      -

      RVP

      +

      What is RVP?​

      +

      RVP

      Responsive Validity Proof (RVP) integrates ZK-based validity proofs into the optimistic rollup framework. The process is as follows:

      When challengers detect that the sequencer has submitted incorrect data, they initiate a challenge request to the sequencer on Layer 1 (L1). The sequencer must then generate the corresponding Zero-Knowledge (ZK) proof within a specified time (challenge period) and pass the verification of the L1 contract. If the verification passes, the challenge fails; otherwise, the challenge succeeds. This process combines the benefits of optimistic rollups and ZK-rollups, providing a balanced approach to security and efficiency.

      -

      Advantages of RVP Compared to Interactive Fraud Proofs

      +

      Advantages of RVP Compared to Interactive Fraud Proofs

        -
      1. Shorter Challenge Period: RVP can reduce the challenge period from the typical 7 days to just 1-3 days, improving overall efficiency and user experience.
      2. +
      3. Shorter Challenge Period: RVP can reduce the challenge period from the typical 7 days to just 1-3 days, improving overall efficiency and user experience. Right now the Morph mainnet has 48 hrs (2 days) challenge window.
      4. Reduced L2 Submission Costs: By using validity proofs, Layer 2 (L2) does not need to include most transaction bytes, significantly lowering submission costs.
      5. Improved Challenger Experience: With RVP, challengers only need to initiate the challenge. The sequencer must prove their correctness by generating and verifying the corresponding ZK-proof, simplifying the challenger's responsibilities.
      6. Seamless Transition to ZK-Rollup: The architectural design of RVP allows for an easy transition to a complete ZK-rollup. The primary change required is adjusting the sequencer's ZK-proof submission methods from responsive to active.

      RVP enhances the optimistic rollup model by incorporating ZK-proofs, offering a more efficient, cost-effective, and secure solution. It addresses the limitations of traditional fraud proofs and paves the way for a seamless transition to full ZK-rollup implementations in the future.

      -

      How Can RVP Shorten the Challenge Period of an Optimistic Rollup?

      -

      The Need for a Challenge Period

      +

      How Can RVP Shorten the Challenge Period of an Optimistic Rollup?

      +

      The Need for a Challenge Period

      Optimistic rollups incorporate a challenge period (or withdrawal period) to ensure that any malicious submissions by the sequencer can be identified and contested. This period provides sufficient time for challengers to verify transactions, conduct fraud proofs, and complete the challenge process, thereby ensuring that only valid state changes are confirmed on Layer 1 (L1). Two main factors influence the length of the challenge period:

      1. Completion Time: The time required for both parties to complete the challenge process.
      2. Mitigating Malicious Behavior: Ensuring that there is enough time to address any attempts by sequencers to maliciously block the challenger’s transactions on L1.
      -

      Solutions to Shorten the Challenge Period

      +

      Solutions to Shorten the Challenge Period

      Concise and Direct Challenge Process: For multi-round interactive fraud proofs, the entire challenge process might require several rounds of interaction, each demanding significant time. For example, if the process requires 10 rounds, at least 20 blocks of time are needed to complete the challenge, considering the back-and-forth responses. In contrast, RVP simplifies the challenge process by requiring only one interaction: the sequencer uploads the ZK-proof of the batch, which is then verified on L1. This streamlined process addresses the main problem of whether challengers have enough time to detect and prove incorrectness, thus significantly reducing the challenge period.

      Protection Against Malicious Behavior: In interactive fraud-proof systems, the challenged party might attempt to interfere with the challenge progress, such as launching a DoS attack on L1 to prevent challengers from interacting with L1 and submitting proofs. With RVP, challengers only need to trigger the challenge. Once the challenge is initiated, the sequencer has no opportunity to interfere. The sequencer must then prove the correctness of its submission through the ZK-proof. This ensures that the normal challenge process is not affected by malicious behavior, further shortening the challenge period.

      -

      Key Benefits of RVP in Reducing the Challenge Period

      +

      Key Benefits of RVP in Reducing the Challenge Period

      • Efficiency: The single interaction required for RVP simplifies the challenge process, reducing the time needed for resolution.
      • Security: By relying on ZK-proofs, RVP provides a robust mechanism to validate state changes without lengthy interactions.
      • Cost-Effectiveness: The reduction in the number of interactions lowers the gas costs associated with challenge processes on L1.

      By addressing these factors, RVP effectively shortens the challenge period from the traditional 7 days to just 1-3 days, offering a more efficient and secure solution for optimistic rollups.

      -

      Why is the Operating Cost Lower for L2 Based on RVP?

      -

      Compression of Transactions

      +

      Why is the Operating Cost Lower for L2 Based on RVP?

      +

      Compression of Transactions

      In ZK-rollups, the validity of each transaction is confirmed through a submitted ZK-proof, which eliminates the need to include extensive transaction details. For example, the length of an Ethereum transaction is approximately 110 bytes, with the signature occupying around 68 bytes. In optimistic rollups, because transactions need to be replayed on L1, these signatures must be included to ensure validity. This increases the cost. However, ZK-rollups only need to retain basic transaction information because the validity proof covers the entire batch. This compression capability reduces the amount of data that needs to be submitted to L1, significantly lowering costs.

      -

      Efficient Data Submission

      +

      Efficient Data Submission

      RVP utilizes ZK-proofs to validate transactions, adopting the ZK-rollup advantage of transaction compression during batch data submission. This reduces the overall data volume and associated costs. Additionally, when there are no challenges, the sequencer does not incur the cost of generating and submitting ZK-proofs, further lowering operational expenses.

      -

      Comparison with Existing Solutions

      +

      Comparison with Existing Solutions

      The design of RVP ensures that the cost of rollup operations is lower than that of both existing optimistic rollups and traditional ZK-rollups. This efficiency is achieved by:

      • Reducing the need for detailed transaction replays on L1.
      • Leveraging ZK-proofs only when necessary, minimizing unnecessary proof generation costs.
      -

      RVP is Friendly to Challengers

      +

      RVP is Friendly to Challengers

      The core of RVP is the use of validity proofs to ultimately validate challenged data. This benefits challengers in the following ways:

      1. Simplified Challenge Process:
      2. @@ -91,16 +95,67 @@

        Why do sequencers have to take on the responsibility of submitting ZK-proofs?​

        +

        Why do sequencers have to take on the responsibility of submitting ZK-proofs?​

        Some proposals have suggested that challengers could demonstrate the falsehood of a sequencer's submission by providing their own submission and corresponding ZK-proof. The two submissions could then be compared to identify any fraudulent activity by the sequencer. However, there are significant concerns with this approach:

        Challengers would need to generate ZK-proofs using the transactions provided by the sequencer. If the sequencer submits invalid transactions, challengers cannot create ZK-proofs that can be authenticated on Layer 1 (L1). Therefore, it is more effective for sequencers to prove the correctness of their submissions. This approach ensures that the entity responsible for the transactions verifies their accuracy, maintaining the integrity of the system..

        -

        Why Not Simply Employ ZK-Rollups?

        +

        Why Not Simply Employ ZK-Rollups?

        While verifying the validity of every state submission by the sequencer through numerous cryptographic calculations, as seen in current ZK-rollups, theoretically offers higher security, this approach presents several challenges:

        -

        The Cost of ZK-Rollup

        +

        The Cost of ZK-Rollup

        Currently, projects such as zkSync and Polygon zkEVM have launched on the mainnet, showing that generating and verifying ZK-proofs is no longer the most pressing issue. However, these ZK-proofs still face cost and efficiency constraints. For instance, the average transaction cost on zkSync Era ranges from 0.51toashighas0.51 to as high as 310, depending on L1 gas fees. This is significantly more expensive than the transaction costs of optimistic rollup projects like Arbitrum and Optimism. In contrast, with RVP, the high cost is avoided during normal network operation by only compressing transaction data using ZK-proofs when challenged. Normal operation incurs minimal costs, maintaining efficiency and affordability.

        -

        Block Finalization Time in ZK-Rollups

        +

        Block Finalization Time in ZK-Rollups

        Theoretically, ZK-rollups should have no withdrawal period because the entire L2 state transition verification process through ZK-proof should be completed in minutes or even seconds. However, the practical reality is different. Due to technical limitations, the time required for final verification of ZK-proofs on L1 is much slower than expected. For example, zkSync Era takes about 20-24 hours for L2 blocks to be finalized, which is not significantly different from the optimized withdrawal periods of optimistic rollups.

        -

        Seamless Transition with RVP-Based Rollups

        -

        L2 scaling solutions incorporating RVP technology can be designed using the ZK-rollup framework, allowing for an easy transition from RVP-based L2 to standard ZK-rollup L2 as ZK technology matures. The primary adjustment needed is changing the sequencer's ZK-proof submission methods from responsive to active. Thus, RVP-based systems can seamlessly adopt full ZK-rollup benefits in the future.

    +

    Seamless Transition with RVP-Based Rollups

    +

    L2 scaling solutions incorporating RVP technology can be designed using the ZK-rollup framework, allowing for an easy transition from RVP-based L2 to standard ZK-rollup L2 as ZK technology matures. The primary adjustment needed is changing the sequencer's ZK-proof submission methods from responsive to active. Thus, RVP-based systems can seamlessly adopt full ZK-rollup benefits in the future.

    +

    SP1 on Morph Mainnet

    +

    Morph’s Responsive Validity Proof (RVP) system morphed into the optimal design with our mainnet launch, enhanced by SP1.

    +

    Succinct, uniquely enables Morph’s RVP with their blazing fast zkVM and excellent developer experience. It represents a generational shift in how zkEVMs are built, custom circuits are a relic of that past. This upgrade refines RVP's capabilities, pushing the boundaries of scalability and security in blockchain applications.

    +

    Our RVP system with SP1 is:

    +
      +
    • Uses a generic, more developer-friendly Rust-based implementation
    • +
    • Generates proofs orders of magnitudes faster with SP1’s Prover Network
    • +
    • Handles unlimited transactions per block (previously capped at 100)
    • +
    +

    For users, this means:

    +
      +
    • Improved security and smoother user experience (thoroughly audited codes with faster challenge resolution and 2-day settlement)
    • +
    • Lower costs (more efficient proof generation for off-chain computation)
    • +
    • More scalable (no more transaction caps)
    • +
    +

    Morph Challengers Address List

    +

    As per our commitment to the decentralization of the challenging process, here is the list of all challenger addresses.

    +

    These addresses are responsible for monitoring the L2 state changes and responding to any malicious activities from the sequencers.

    +

    Challenger Address List

    +
    \ No newline at end of file diff --git a/build/docs/quick-start/bridge/index.html b/build/docs/quick-start/bridge/index.html index 06064a3d1..1dc87e5db 100644 --- a/build/docs/quick-start/bridge/index.html +++ b/build/docs/quick-start/bridge/index.html @@ -3,23 +3,29 @@ -Bridge | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +Bridge | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    Deposit from Holesky to Morph Testnet

    -

    Instructions:

    - +

    Bridge

    Deposit from Ethereum to Morph Mainnet

    +

    Please refer to the Morph Season 2 - Bridge Guide.

    +

    Deposit from Ethereum Holesky to Morph Testnet

    +

    Instructions:

    +
    1. Open your MetaMask wallet and switch to the Holesky network.
    -

    image1 -image1

    +

    image1 +image1

    1. Within Morph’s Bridge app, click Connect wallet, select MetaMask, and approve the connection if prompted.
    -

    image2

    +

    image2

    1. Make sure that Holesky is selected under ‘From’ and Morph L2 under ‘To’. If not, click the "↓" button to switch their positions.

      @@ -31,43 +37,43 @@

      Instructions:Click the Send button to initiate the deposit.

    -
    tip

    If this is your first time transferring an ERC20 token, you need to approve the Holesky Bridge contract to access your ERC20 token.

    +
    tip

    If this is your first time transferring an ERC20 token, you need to approve the Holesky Bridge contract to access your ERC20 token.

    1. A window will pop up asking for confirmation of the transfer transaction, click Deposit.
    -

    image3

    +

    image3

    1. Click the Confirm button in MetaMask. Once the transfer transaction is finalized, the token will be deducted from your Holesky wallet address.
    -

    image5

    +

    image5

    1. While you wait, you can check status of your transactions by clicking on the transactions button.
    -

    image6

    -

    How long does it take for a token to arrive to Morph Testnet ?

    +

    image6

    +

    How long does it take for a token to arrive to Morph Testnet ?

    A token transfer from Holesky to Morph Testnet may take 8 to 14 minutes (time for block to become Safe on Holesky) before it appears in your Morph wallet. To check the progress of your deposit transactions, follow these steps:

    1. Click your wallet address at the top-right corner of the Bridge web app.
    -

    image6

    +

    image6

    1. Click on Transactions. A pop-up panel will display your recent transactions.
    -
    tip

    Note: For deposit transactions (L1 -> L2), once your transaction is confirmed as Safe on Holesky (8 to 14 minutes), you will see a Success status. Your funds will then be relayed to L2.

    -

    image8

    +
    tip

    Note: For deposit transactions (L1 -> L2), once your transaction is confirmed as Safe on Holesky (8 to 14 minutes), you will see a Success status. Your funds will then be relayed to L2.

    +

    image8

    1. Click on the most recent Holesky transaction hash.
    -

    image9

    +

    image9

    1. You will be taken to a Transaction Details page in the Explorer. Verify your transaction status (this transaction is confirmed on Holesky).
    -

    image10

    +

    image10

    1. Once your transaction status shows success on L2, return to the Bridge app to see a transaction hash and funds in your Morph L2 wallet.
    -

    image11

    -

    image12

    +

    image11

    +

    image12

    Withdraw from Morph Testnet to Holesky

    To withdraw funds from Morph Testnet, follow these steps:

      @@ -77,7 +83,7 @@

      Withdraw from Morph Testnet to Holesky

    1. Wait for the verification challenge period, which lasts seven days from the time the withdrawal is proven on L1 (Holesky).
    2. Claim your withdrawal.
    -

    Initiate withdrawal

    +

    Initiate withdrawal

    1. Click Connect Wallet and select MetaMask. If prompted, approve the connection in your wallet.

      @@ -86,22 +92,22 @@

      Initiate

      Select Withdraw. Choose the asset and amount you wish to withdraw.

    -

    image13

    +

    image13

    1. Click Send ETH to Holesky.
    -

    image14

    +

    image14

    1. Click Initiate withdrawal, wait for a few minutes to confirm. After it is finished, you need to switch the network in your wallet and then prove the withdrawal on Holesky.
    -

    image15

    -

    image16

    +

    image15

    +

    image16

    1. Waiting for the batch submission to be completed.
    -

    image17

    -

    image18

    -

    Waiting for the verification challenge period

    +

    image17

    +

    image18

    +

    Waiting for the verification challenge period

    1. Click your address in the top right corner.

      @@ -110,20 +116,20 @@

      -

      image20

      -

      image21

      +

      image19

      +

      image20

      +

      image21

      1. You can search for the transaction hash on Morph Explorer.
      -

      image22

      -

      image23

      +

      image22

      +

      image23

      1. Click the L1 State Root Submission Tx to see when the transaction was written to L1 (Holesky).
      -

      image24

      -

      image25

      -

      Claim the Withdrawal

      +

      image24

      +

      image25

      +

      Claim the Withdrawal

      1. Once the challenge period is over, the status will change to Claim.

        @@ -132,14 +138,14 @@

        Claim t

        Click Claim withdrawal.

      -

      image26

      +

      image26

      1. Confirm the withdrawal in the wallet.
      -

      image27

      +

      image27

      1. Wait until the withdrawal is completed.
      -

      image28

    +

    image28

    \ No newline at end of file diff --git a/build/docs/quick-start/faucet/index.html b/build/docs/quick-start/faucet/index.html index 287414b87..1f0bbd66f 100644 --- a/build/docs/quick-start/faucet/index.html +++ b/build/docs/quick-start/faucet/index.html @@ -3,17 +3,21 @@ -Faucet | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +Faucet | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    Faucet

    Faucet

    -

    Morph Holesky Website Faucet

    -

    website faucet

    +

    Faucet

    Faucet

    +

    Morph Holesky Website Faucet

    +

    website faucet

    Our website faucet is live!

    Users can claim Morph ETH & USDT to fund their initial activities.

    -

    3rd Party Ethereum Holesky ETH Faucet

    +

    3rd Party Ethereum Holesky ETH Faucet

    To use Morph's public testnet, obtain testnet ETH on Holesky, then bridge it to the Morph testnet.

    Here are a few Holesky faucet apps:

    https://stakely.io/en/faucet/ethereum-holesky-testnet-eth

    @@ -22,18 +26,18 @@

    https://cloud.google.com/application/web3/faucet/ethereum (needs a Google account)

    Once you receive ETH on Holesky, you should see it in your wallet on the Holesky Network.

    It may take a few seconds for them to appear, but you can check the status by looking for a transaction to your address on the Holesky Block Explorer.

    -

    Discord Morph Holesky Faucet

    -

    Morph Holesky ETH

    +

    Discord Morph Holesky Faucet

    +

    Morph Holesky ETH

    You can obtain the Morph Holesky ETH in our discord too for development purposes.

    Using the /morph_eth command and type your address will grant you 0.01 Morph Holesky ETH.

    Once succeed, you will see the following message:

    -

    success

    -

    ERC20 USDT

    -
    tip

    Currently, we set the limit that for each discord user, you can only request the tokens once every 24 hours.

    +

    success

    +

    ERC20 USDT

    +
    tip

    Currently, we set the limit that for each discord user, you can only request the tokens once every 24 hours.

    You can obtain morph's version of USDT on Holesky through our discord faucet, here's how it works:

    1. -

      Join our discord server through this link.

      +

      Join our discord server through this link.

    2. Find the #| discord-faucet channel.

      @@ -42,7 +46,7 @@

      ERC20 USDTType /faucet in the channel and add your Holesky address behind it.

    -

    command

    +

    command

    1. Wait for a few seconds.

      @@ -51,13 +55,13 @@

      ERC20 USDTOnce succeeded, you will see this in the channel.

    -

    success

    +

    success

    1. Add the Morph Holesky USDT information to your wallet.
    -

    Ethereum Holesky USDT address: "0xD6e9Cd5ef382b0830653d1b2007D5Ca6987FaA26"

    Morph Holesky USDT address: "0x9E12AD42c4E4d2acFBADE01a96446e48e6764B98"

    +

    Ethereum Holesky USDT address: "0xD6e9Cd5ef382b0830653d1b2007D5Ca6987FaA26"

    Morph Holesky USDT address: "0x9E12AD42c4E4d2acFBADE01a96446e48e6764B98"

    1. Check you wallet for USDT balance and start to bridge!
    2. -
    +
    \ No newline at end of file diff --git a/build/docs/quick-start/morph-zoo/morph-points.htm/index.html b/build/docs/quick-start/morph-zoo/morph-points.htm/index.html deleted file mode 100644 index b0173976c..000000000 --- a/build/docs/quick-start/morph-zoo/morph-points.htm/index.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/build/docs/quick-start/morph-zoo/morph-points.html/index.html b/build/docs/quick-start/morph-zoo/morph-points.html/index.html deleted file mode 100644 index b0173976c..000000000 --- a/build/docs/quick-start/morph-zoo/morph-points.html/index.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/build/docs/quick-start/morph-zoo/morph-points/index.html b/build/docs/quick-start/morph-zoo/morph-points/index.html deleted file mode 100644 index c64eecd19..000000000 --- a/build/docs/quick-start/morph-zoo/morph-points/index.html +++ /dev/null @@ -1,32 +0,0 @@ - - - - - -Morph Points | Morph docs – The Optimistic zkEVM Scaling Solution docs - - - - -
    Skip to main content

    Morph Points

    To bring our community even closer to the action, we're excited to announce the Morph Zoo.

    -
      -
    • a multiphase program designed to engage, reward, and celebrate the vibrant ecosystem within our testnet and, eventually, our mainnet. Our aim is to immerse you in our world, one where consumer needs are prioritized and where your input directly impacts our growth trajectory.
    • -
    -

    Morph Points are used to measure your engagement and contributions within the Morph ecosystem with a variety of campaigns which will be listed in Morph Zoo. They represent your active participation and achievements in our world.

    -

    Morph Zoo's Season 1: The Genesis Jungle was officially launched on May 13, 2024.

    -

    How Do I Earn Morph Points?

    -

    To earn Morph points, you can participate in the following activities within Season 1:

    -
      -
    1. Engage with our ecosystem DApps. The more you do, the more you earn!
    2. -
    3. Check in daily to earn voting power, which can then be used to vote for your favorite projects. Voting earns you Morph Points!
    4. -
    5. Lastly, you can earn additional points by participating in events organized by Morph partners.
    6. -
    -

    Where will Morph Points be displayed?

    -

    Morph Points for season 1 will be recorded on the "My Points" page of the official campaign site. However, please note that Morph Points earned through dapp engagement will be calculated and displayed at the conclusion of the event, along with the final tally of all points earned through all activities.

    -

    What can I do with Morph Points?

    -

    Morph points will play an important role when taking into account future airdrops and other exclusive rewards. Stay tuned for more!

    -

    Can I transfer Morph Points?

    -

    No. Morph Points are linked to specific users and wallets with no way to transfer. -It's time to explore Morph's Genesis Jungle, discovering special dapps while earning generous Morph Points as you do!

    - - \ No newline at end of file diff --git a/build/docs/quick-start/morph-zoo/voting-rules.htm/index.html b/build/docs/quick-start/morph-zoo/voting-rules.htm/index.html deleted file mode 100644 index 8623bab5f..000000000 --- a/build/docs/quick-start/morph-zoo/voting-rules.htm/index.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/build/docs/quick-start/morph-zoo/voting-rules.html/index.html b/build/docs/quick-start/morph-zoo/voting-rules.html/index.html deleted file mode 100644 index 8623bab5f..000000000 --- a/build/docs/quick-start/morph-zoo/voting-rules.html/index.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/build/docs/quick-start/morph-zoo/voting-rules/index.html b/build/docs/quick-start/morph-zoo/voting-rules/index.html deleted file mode 100644 index 1d23eb592..000000000 --- a/build/docs/quick-start/morph-zoo/voting-rules/index.html +++ /dev/null @@ -1,44 +0,0 @@ - - - - - -Voting Rules in Voice of the Jungle | Morph docs – The Optimistic zkEVM Scaling Solution docs - - - - -
    Skip to main content

    Voting Rules in Voice of the Jungle

    Make your voice heard in our second Jungle activity: Voice of the Jungle. Use Voting power to vote for your favorite DApps, your votes help shape the ecosystem, make your 'roar' heard and you will be rewarded with Morph Points.

    -

    What is voting power?

    -

    To enhance our ecosystem and community, we’ve introduced a voting program to attract more valuable projects and DApps to the Morph ecosystem. Earn Voting Power through daily check-ins and unlocking bonus Mystery Boxes. Remember, it is the act of spending your Voting Power that earns you Morph Points, not the amount of unused Voting Power. At the end of the event, your Moph Points rewards will be calculated based on how much Voting Power you utilized, so be sure to vote every day!

    -

    How can I use my Voting Power?

    -

    You can utilize your Voting Power on the voting page to support projects that you like. You can vote for different projects and earn Points for the projects you vote for.

    -

    Voting rules:

    -

    1)Acquire Voting Power in two ways: daily check-ins and bonus Mystery Boxes.

    -
      -
    1. -

      To record your Voting Power and voting activities, you must sign in with your Web3 wallet. This verifies your Voting Power, without granting access to your assets.

      -
    2. -
    3. -

      You can allocate up to 100 Voting Power to each individual project per day. If you wish to vote more, you must wait until the next day.

      -
    4. -
    5. -

      Voting Power spent on a project is immediately consumed; it cannot be reused for multiple projects.

      -
    6. -
    7. -

      Only the act of voting will earn you Morph Points; simply accumulating Voting Power without using it will not earn you Morph Points for this activity.

      -
    8. -
    -

    Daily Check-in Rules:

    -

    Earn Voting Power by checking in daily. On the first day that you check-in, you will receive 2 Voting Power. On day two, you will receive 2 more Voting Power plus the same amount of Voting Power you received the previous day. After checking in for 7 days in a row, your Voting Power reward for that 7th day will be doubled to 28. So if you consistently check in for a week, you will receive 70 Voting Power total:

    -

    2(Day 1) + 4(Day 2) + 6(Day 3) + 8(Day 4) + 10(Day 5) + 12(Day 6) + 28(Day 7 you get a 2x multiplier bonus [14*2]) = 70

    -

    Please remember that on the 8th consecutive check-in day, your Voting Power reward will be reset back to 2, as this marks the beginning of a new 7-day cycle. However, to reward your commitment, on the 14th consecutive day, your bonus multiplier will be increased to 3x for that day. This means that on the fourteenth day, you actually receive 56 Voting Power. In fact, every consecutive day that you check in that lands on a multiple of 7, your bonus multiplier will increase by an additional factor compared to the previous week.

    -

    So if you consistently check in every day for a month or four weeks in a row, you will receive a total of 448 Voting Power:

    -

    (2+4+6+8+10+12)x4=168 -The same increasing Voting Power for the first 6 days of each week -+ -(28+56+84+112) = 280 The 7th day reward with an increasing multiplier each week -= 448

    -
    tip

    Please note that forgetting to check in one day will disrupt the 7-day cycle resetting it completely. This means you will start over from day one if that happens. For instance, if you have consistently checked in for 2 days but forgot on the 3rd day, you will only receive 2 Voting Power on the 4th day instead of 8.

    - - \ No newline at end of file diff --git a/build/docs/quick-start/wallet-setup/index.html b/build/docs/quick-start/wallet-setup/index.html index 3fc094496..804e48fba 100644 --- a/build/docs/quick-start/wallet-setup/index.html +++ b/build/docs/quick-start/wallet-setup/index.html @@ -3,15 +3,19 @@ -Wallet Setup | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +Wallet Setup | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    Wallet Setup

    Wallet

    +

    Wallet Setup

    Wallet

    To interact with dApps on Morph, you need a compatible wallet. Below are some example wallets and configuration tips.

    -

    Bitget Wallet

    -

    Bitget Wallet

    +

    Bitget Wallet

    +

    Bitget Wallet

    +

    You can also visit chainlist to add Morph.

    \ No newline at end of file diff --git a/build/docs/quick-start/welcome-to-morph/index.html b/build/docs/quick-start/welcome-to-morph/index.html index eced749f2..cb7ba5212 100644 --- a/build/docs/quick-start/welcome-to-morph/index.html +++ b/build/docs/quick-start/welcome-to-morph/index.html @@ -3,17 +3,21 @@ -Welcome to Morph! | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +Welcome to Morph! | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    Welcome to Morph!

    Thank you for choosing Morph! We're excited to have you onboard with the first optimistic ZK-EVM scaling solution for Ethereum. Morph is designed to meet a variety of needs, and you can easily navigate to the most relevant information for your interests.

    -
    tip

    Mainnet Beta Stage: Morph is currently in the mainnet beta phase, offering a brand-new platform for exploration. We encourage you to delve into its features and capabilities.

    +

    Welcome to Morph!

    Thank you for choosing Morph! We're excited to have you onboard with the first optimistic ZK-EVM scaling solution for Ethereum. Morph is designed to meet a variety of needs, and you can easily navigate to the most relevant information for your interests.

    +
    tip

    Mainnet Beta Stage: Morph is currently in the mainnet beta phase, offering a brand-new platform for exploration. We encourage you to delve into its features and capabilities.

    Web3 Enthusiasts: If you are a web3 enthusiast who wants to try out the Morph, you can start with how to connect to Morph.

    Researchers: For those seeking in-depth understanding of Morph's unique offerings compared to other solutions, the how Morph works section is your go-to resource for comprehensive details.

    Developers: As a skilled developer ready to build on Morph, the developer documentation provides all necessary resources and guides to kickstart your development journey.

    -

    Looking for help

    -

    Having issues while developing or exploring? Join our discord channel and talk to us in the right channel. We would love to hear your thoughts or feedback on how we can improve your experience, too.

    +

    Looking for help

    +

    Having issues while developing or exploring? Join our discord channel and talk to us in the right channel. We would love to hear your thoughts or feedback on how we can improve your experience, too.

    \ No newline at end of file diff --git a/build/img/cards/bridge.svg b/build/img/cards/bridge.svg new file mode 100644 index 000000000..5c99ae831 --- /dev/null +++ b/build/img/cards/bridge.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/img/cards/contract.svg b/build/img/cards/contract.svg new file mode 100644 index 000000000..dc27296be --- /dev/null +++ b/build/img/cards/contract.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/img/cards/dev.svg b/build/img/cards/dev.svg new file mode 100644 index 000000000..1bebd669f --- /dev/null +++ b/build/img/cards/dev.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/img/cards/faucet.svg b/build/img/cards/faucet.svg new file mode 100644 index 000000000..0a48894bc --- /dev/null +++ b/build/img/cards/faucet.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/build/img/cards/guide.svg b/build/img/cards/guide.svg new file mode 100644 index 000000000..f9d282269 --- /dev/null +++ b/build/img/cards/guide.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/img/cards/logo-dark.svg b/build/img/cards/logo-dark.svg new file mode 100644 index 000000000..b231fa745 --- /dev/null +++ b/build/img/cards/logo-dark.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/img/cards/logo.svg b/build/img/cards/logo.svg new file mode 100644 index 000000000..c0d560126 --- /dev/null +++ b/build/img/cards/logo.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/img/cards/node.svg b/build/img/cards/node.svg new file mode 100644 index 000000000..4411e96be --- /dev/null +++ b/build/img/cards/node.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/img/cards/research.svg b/build/img/cards/research.svg new file mode 100644 index 000000000..a2e67aa4f --- /dev/null +++ b/build/img/cards/research.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/img/cards/tools.svg b/build/img/cards/tools.svg new file mode 100644 index 000000000..c880a085d --- /dev/null +++ b/build/img/cards/tools.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/img/cards/users.svg b/build/img/cards/users.svg new file mode 100644 index 000000000..7220f0cbb --- /dev/null +++ b/build/img/cards/users.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/img/cards/wallet.svg b/build/img/cards/wallet.svg new file mode 100644 index 000000000..41466bfe4 --- /dev/null +++ b/build/img/cards/wallet.svg @@ -0,0 +1,4 @@ + + + + diff --git a/build/index.html b/build/index.html index 845ef621f..159a7dab3 100644 --- a/build/index.html +++ b/build/index.html @@ -3,11 +3,15 @@ -Morph docs – The Optimistic zkEVM Scaling Solution docs | Morph docs – The Optimistic zkEVM Scaling Solution docs - - +Morph docs – The Optimistic zkEVM Scaling Solution docs | Morph docs – The Optimistic zkEVM Scaling Solution docs + + + + + + -
    Skip to main content

    Your gateway to the morph ecosystem

    MORPH-DOCS

    +
    Skip to main content

    Your gateway to the morph ecosystem

    MORPH-DOCS

    \ No newline at end of file diff --git a/build/js/cookbookdev.index.cjs.js b/build/js/cookbookdev.index.cjs.js new file mode 100644 index 000000000..38ce61f90 --- /dev/null +++ b/build/js/cookbookdev.index.cjs.js @@ -0,0 +1,1210 @@ +!function(){"use strict";"undefined"!=typeof window&&(window.__cookbook_styles=':host{--ifm-color-scheme: light;--ifm-dark-value: 10%;--ifm-darker-value: 15%;--ifm-darkest-value: 30%;--ifm-light-value: 15%;--ifm-lighter-value: 30%;--ifm-lightest-value: 50%;--ifm-contrast-background-value: 90%;--ifm-contrast-foreground-value: 70%;--ifm-contrast-background-dark-value: 70%;--ifm-contrast-foreground-dark-value: 90%;--ifm-color-primary: #3578e5;--ifm-color-secondary: #ebedf0;--ifm-color-success: #00a400;--ifm-color-info: #54c7ec;--ifm-color-warning: #ffba00;--ifm-color-danger: #fa383e;--ifm-color-primary-dark: #306cce;--ifm-color-primary-darker: #2d66c3;--ifm-color-primary-darkest: #2554a0;--ifm-color-primary-light: #538ce9;--ifm-color-primary-lighter: #72a1ed;--ifm-color-primary-lightest: #9abcf2;--ifm-color-primary-contrast-background: #ebf2fc;--ifm-color-primary-contrast-foreground: #102445;--ifm-color-secondary-dark: #d4d5d8;--ifm-color-secondary-darker: #c8c9cc;--ifm-color-secondary-darkest: #a4a6a8;--ifm-color-secondary-light: #eef0f2;--ifm-color-secondary-lighter: #f1f2f5;--ifm-color-secondary-lightest: #f5f6f8;--ifm-color-secondary-contrast-background: #fdfdfe;--ifm-color-secondary-contrast-foreground: #474748;--ifm-color-success-dark: #009400;--ifm-color-success-darker: #008b00;--ifm-color-success-darkest: #007300;--ifm-color-success-light: #26b226;--ifm-color-success-lighter: #4dbf4d;--ifm-color-success-lightest: #80d280;--ifm-color-success-contrast-background: #e6f6e6;--ifm-color-success-contrast-foreground: #003100;--ifm-color-info-dark: #4cb3d4;--ifm-color-info-darker: #47a9c9;--ifm-color-info-darkest: #3b8ba5;--ifm-color-info-light: #6ecfef;--ifm-color-info-lighter: #87d8f2;--ifm-color-info-lightest: #aae3f6;--ifm-color-info-contrast-background: #eef9fd;--ifm-color-info-contrast-foreground: #193c47;--ifm-color-warning-dark: #e6a700;--ifm-color-warning-darker: #d99e00;--ifm-color-warning-darkest: #b38200;--ifm-color-warning-light: #ffc426;--ifm-color-warning-lighter: #ffcf4d;--ifm-color-warning-lightest: #ffdd80;--ifm-color-warning-contrast-background: #fff8e6;--ifm-color-warning-contrast-foreground: #4d3800;--ifm-color-danger-dark: #e13238;--ifm-color-danger-darker: #d53035;--ifm-color-danger-darkest: #af272b;--ifm-color-danger-light: #fb565b;--ifm-color-danger-lighter: #fb7478;--ifm-color-danger-lightest: #fd9c9f;--ifm-color-danger-contrast-background: #ffebec;--ifm-color-danger-contrast-foreground: #4b1113;--ifm-color-white: #fff;--ifm-color-black: #000;--ifm-color-gray-0: var(--ifm-color-white);--ifm-color-gray-100: #f5f6f7;--ifm-color-gray-200: #ebedf0;--ifm-color-gray-300: #dadde1;--ifm-color-gray-400: #ccd0d5;--ifm-color-gray-500: #bec3c9;--ifm-color-gray-600: #8d949e;--ifm-color-gray-700: #606770;--ifm-color-gray-800: #444950;--ifm-color-gray-900: #1c1e21;--ifm-color-gray-1000: var(--ifm-color-black);--ifm-color-emphasis-0: var(--ifm-color-gray-0);--ifm-color-emphasis-100: var(--ifm-color-gray-100);--ifm-color-emphasis-200: var(--ifm-color-gray-200);--ifm-color-emphasis-300: var(--ifm-color-gray-300);--ifm-color-emphasis-400: var(--ifm-color-gray-400);--ifm-color-emphasis-600: var(--ifm-color-gray-600);--ifm-color-emphasis-700: var(--ifm-color-gray-700);--ifm-color-emphasis-800: var(--ifm-color-gray-800);--ifm-color-emphasis-900: var(--ifm-color-gray-900);--ifm-color-emphasis-1000: var(--ifm-color-gray-1000);--ifm-color-content: var(--ifm-color-emphasis-900);--ifm-color-content-inverse: var(--ifm-color-emphasis-0);--ifm-color-content-secondary: #525860;--ifm-background-color: transparent;--ifm-background-surface-color: var(--ifm-color-content-inverse);--ifm-global-border-width: 1px;--ifm-global-radius: 6.4px;--ifm-hover-overlay: rgba(0, 0, 0, .05);--ifm-font-color-base: var(--ifm-color-content);--ifm-font-color-base-inverse: var(--ifm-color-content-inverse);--ifm-font-color-secondary: var(--ifm-color-content-secondary);--ifm-font-family-base: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--ifm-font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--ifm-font-size-base: 100%;--ifm-font-weight-light: 300;--ifm-font-weight-normal: 400;--ifm-font-weight-semibold: 500;--ifm-font-weight-bold: 700;--ifm-font-weight-base: var(--ifm-font-weight-normal);--ifm-line-height-base: 1.65;--ifm-global-spacing: 16px;--ifm-spacing-vertical: var(--ifm-global-spacing);--ifm-spacing-horizontal: var(--ifm-global-spacing);--ifm-transition-fast: .2s;--ifm-transition-slow: .4s;--ifm-transition-timing-default: cubic-bezier(.08, .52, .52, 1);--ifm-global-shadow-lw: 0 1px 2px 0 rgba(0, 0, 0, .1);--ifm-global-shadow-md: 0 5px 40px rgba(0, 0, 0, .2);--ifm-global-shadow-tl: 0 12px 28px 0 rgba(0, 0, 0, .2), 0 2px 4px 0 rgba(0, 0, 0, .1);--ifm-z-index-dropdown: 100;--ifm-z-index-fixed: 200;--ifm-z-index-overlay: 400;--ifm-container-width: 1140px;--ifm-container-width-xl: 1320px;--ifm-code-background: #f6f7f8;--ifm-code-border-radius: var(--ifm-global-radius);--ifm-code-font-size: 90%;--ifm-code-padding-horizontal: 1.6px;--ifm-code-padding-vertical: 1.6px;--ifm-pre-background: var(--ifm-code-background);--ifm-pre-border-radius: var(--ifm-code-border-radius);--ifm-pre-color: inherit;--ifm-pre-line-height: 1.45;--ifm-pre-padding: 16px;--ifm-heading-color: inherit;--ifm-heading-margin-top: 0;--ifm-heading-margin-bottom: var(--ifm-spacing-vertical);--ifm-heading-font-family: var(--ifm-font-family-base);--ifm-heading-font-weight: var(--ifm-font-weight-bold);--ifm-heading-line-height: 1.25;--ifm-h1-font-size: 32px;--ifm-h2-font-size: 24px;--ifm-h3-font-size: 20px;--ifm-h4-font-size: 16px;--ifm-h5-font-size: 14px;--ifm-h6-font-size: 13.6px;--ifm-image-alignment-padding: 20px;--ifm-leading-desktop: 1.25;--ifm-leading: calc(var(--ifm-leading-desktop) * 16px);--ifm-list-left-padding: 32px;--ifm-list-margin: 16px;--ifm-list-item-margin: 4px;--ifm-list-paragraph-margin: 16px;--ifm-table-cell-padding: 12px;--ifm-table-background: transparent;--ifm-table-stripe-background: rgba(0, 0, 0, .03);--ifm-table-border-width: 1px;--ifm-table-border-color: var(--ifm-color-emphasis-300);--ifm-table-head-background: inherit;--ifm-table-head-color: inherit;--ifm-table-head-font-weight: var(--ifm-font-weight-bold);--ifm-table-cell-color: inherit;--ifm-link-color: var(--ifm-color-primary);--ifm-link-decoration: underline;--ifm-link-hover-color: var(--ifm-link-color);--ifm-link-hover-decoration: underline;--ifm-paragraph-margin-bottom: var(--ifm-leading);--ifm-blockquote-font-size: var(--ifm-font-size-base);--ifm-blockquote-border-left-width: 2px;--ifm-blockquote-padding-horizontal: var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical: 0;--ifm-blockquote-shadow: none;--ifm-blockquote-color: var(--ifm-color-emphasis-800);--ifm-blockquote-border-color: var(--ifm-color-emphasis-300);--ifm-hr-background-color: var(--ifm-color-emphasis-500);--ifm-hr-height: 1px;--ifm-hr-margin-vertical: 24px;--ifm-scrollbar-size: 7px;--ifm-scrollbar-track-background-color: #f1f1f1;--ifm-scrollbar-thumb-background-color: silver;--ifm-scrollbar-thumb-hover-background-color: #a7a7a7;--ifm-alert-background-color: inherit;--ifm-alert-border-color: inherit;--ifm-alert-border-radius: var(--ifm-global-radius);--ifm-alert-border-width: 0px;--ifm-alert-border-left-width: 5px;--ifm-alert-color: var(--ifm-font-color-base);--ifm-alert-padding-horizontal: var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical: var(--ifm-spacing-vertical);--ifm-alert-shadow: var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin: 16px;--ifm-avatar-intro-alignment: inherit;--ifm-avatar-photo-size: 48px;--ifm-badge-background-color: inherit;--ifm-badge-border-color: inherit;--ifm-badge-border-radius: var(--ifm-global-radius);--ifm-badge-border-width: var(--ifm-global-border-width);--ifm-badge-color: var(--ifm-color-white);--ifm-badge-padding-horizontal: calc(var(--ifm-spacing-horizontal) * .5);--ifm-badge-padding-vertical: calc(var(--ifm-spacing-vertical) * .25);--ifm-breadcrumb-border-radius: 24px;--ifm-breadcrumb-spacing: 8px;--ifm-breadcrumb-color-active: var(--ifm-color-primary);--ifm-breadcrumb-item-background-active: var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal: 12.8px;--ifm-breadcrumb-padding-vertical: 6.4px;--ifm-breadcrumb-size-multiplier: 1;--ifm-breadcrumb-separator: url(\'data:image/svg+xml;utf8,\');--ifm-breadcrumb-separator-filter: none;--ifm-breadcrumb-separator-size: 8px;--ifm-breadcrumb-separator-size-multiplier: 1.25;--ifm-button-background-color: transparent;--ifm-button-border-color: var(--ifm-button-background-color);--ifm-button-border-width: var(--ifm-global-border-width);--ifm-button-font-weight: var(--ifm-font-weight-bold);--ifm-button-padding-horizontal: 24px;--ifm-button-padding-vertical: 6px;--ifm-button-size-multiplier: 1;--ifm-button-transition-duration: var(--ifm-transition-fast);--ifm-button-border-radius: calc(var(--ifm-global-radius) * var(--ifm-button-size-multiplier));--ifm-button-group-spacing: 2px;--ifm-card-background-color: var(--ifm-background-surface-color);--ifm-card-border-radius: calc(var(--ifm-global-radius) * 2);--ifm-card-horizontal-spacing: var(--ifm-global-spacing);--ifm-card-vertical-spacing: var(--ifm-global-spacing);--ifm-toc-border-color: var(--ifm-color-emphasis-300);--ifm-toc-link-color: var(--ifm-color-content-secondary);--ifm-toc-padding-vertical: 8px;--ifm-toc-padding-horizontal: 8px;--ifm-dropdown-background-color: var(--ifm-background-surface-color);--ifm-dropdown-font-weight: var(--ifm-font-weight-semibold);--ifm-dropdown-link-color: var(--ifm-font-color-base);--ifm-dropdown-hover-background-color: var(--ifm-hover-overlay);--ifm-footer-background-color: var(--ifm-color-emphasis-100);--ifm-footer-color: inherit;--ifm-footer-link-color: var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color: var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing: 8px;--ifm-footer-padding-horizontal: calc(var(--ifm-spacing-horizontal) * 2);--ifm-footer-padding-vertical: calc(var(--ifm-spacing-vertical) * 2);--ifm-footer-title-color: inherit;--ifm-footer-logo-max-width: min(480px, 90vw);--ifm-hero-background-color: var(--ifm-background-surface-color);--ifm-hero-text-color: var(--ifm-color-emphasis-800);--ifm-menu-color: var(--ifm-color-emphasis-700);--ifm-menu-color-active: var(--ifm-color-primary);--ifm-menu-color-background-active: var(--ifm-hover-overlay);--ifm-menu-color-background-hover: var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal: 12px;--ifm-menu-link-padding-vertical: 6px;--ifm-menu-link-sublist-icon: url(\'data:image/svg+xml;utf8,\');--ifm-menu-link-sublist-icon-filter: none;--ifm-navbar-background-color: var(--ifm-background-surface-color);--ifm-navbar-height: 60px;--ifm-navbar-item-padding-horizontal: 12px;--ifm-navbar-item-padding-vertical: 4px;--ifm-navbar-link-color: var(--ifm-font-color-base);--ifm-navbar-link-active-color: var(--ifm-link-color);--ifm-navbar-padding-horizontal: var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical: calc(var(--ifm-spacing-vertical) * .5);--ifm-navbar-shadow: var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color: var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color: var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color: var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon: url(\'data:image/svg+xml;utf8,\');--ifm-navbar-sidebar-width: 83vw;--ifm-pagination-border-radius: var(--ifm-global-radius);--ifm-pagination-color-active: var(--ifm-color-primary);--ifm-pagination-font-size: 16px;--ifm-pagination-item-active-background: var(--ifm-hover-overlay);--ifm-pagination-page-spacing: .2em;--ifm-pagination-padding-horizontal: calc(var(--ifm-spacing-horizontal) * 1);--ifm-pagination-padding-vertical: calc(var(--ifm-spacing-vertical) * .25);--ifm-pagination-nav-border-radius: var(--ifm-global-radius);--ifm-pagination-nav-color-hover: var(--ifm-color-primary);--ifm-pills-color-active: var(--ifm-color-primary);--ifm-pills-color-background-active: var(--ifm-hover-overlay);--ifm-pills-spacing: 2px;--ifm-tabs-color: var(--ifm-font-color-secondary);--ifm-tabs-color-active: var(--ifm-color-primary);--ifm-tabs-color-active-border: var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal: 16px;--ifm-tabs-padding-vertical: 16px;--docusaurus-progress-bar-color: var(--ifm-color-primary);--ifm-color-primary: #0396f9;--ifm-color-primary-dark: #21af90;--ifm-color-primary-darker: #1fa588;--ifm-color-primary-darkest: #1a8870;--ifm-color-primary-light: #46cbae;--ifm-color-primary-lighter: #66d4bd;--ifm-color-primary-lightest: #92e0d0;--ifm-code-font-size: 95%;--ifm-link-color: var(--theme-color, var(--ifm-color-primary, #24c6bc));--docusaurus-announcement-bar-height: auto;--aa-search-input-height: 44px;--aa-input-icon-size: 20px;--aa-base-unit: 16;--aa-spacing-factor: 1;--aa-spacing: calc(var(--aa-base-unit) * var(--aa-spacing-factor) * 1px);--aa-spacing-half: calc(var(--aa-spacing) / 2);--aa-panel-max-height: 650px;--aa-base-z-index: 9999;--aa-font-size: calc(var(--aa-base-unit) * 1px);--aa-font-family: inherit;--aa-font-weight-medium: 500;--aa-font-weight-semibold: 600;--aa-font-weight-bold: 700;--aa-icon-size: 20px;--aa-icon-stroke-width: 1.6;--aa-icon-color-alpha: 1;--aa-action-icon-size: 20px;--aa-text-color-rgb: 38, 38, 39;--aa-text-color-alpha: 1;--aa-primary-color-rgb: 62, 52, 211;--aa-primary-color-alpha: .2;--aa-muted-color-rgb: 128, 126, 163;--aa-muted-color-alpha: .6;--aa-panel-border-color-rgb: 128, 126, 163;--aa-panel-border-color-alpha: .3;--aa-input-border-color-rgb: 128, 126, 163;--aa-input-border-color-alpha: .8;--aa-background-color-rgb: 255, 255, 255;--aa-background-color-alpha: 1;--aa-input-background-color-rgb: 255, 255, 255;--aa-input-background-color-alpha: 1;--aa-selected-color-rgb: 179, 173, 214;--aa-selected-color-alpha: .205;--aa-description-highlight-background-color-rgb: 245, 223, 77;--aa-description-highlight-background-color-alpha: .5;--aa-detached-media-query: (max-width: 680px);--aa-detached-modal-media-query: (min-width: 680px);--aa-detached-modal-max-width: 680px;--aa-detached-modal-max-height: 500px;--aa-overlay-color-rgb: 115, 114, 129;--aa-overlay-color-alpha: .4;--aa-panel-shadow: 0 0 0 1px rgba(35, 38, 59, .1), 0 6px 16px -4px rgba(35, 38, 59, .15);--aa-scrollbar-width: 13px;--aa-scrollbar-track-background-color-rgb: 234, 234, 234;--aa-scrollbar-track-background-color-alpha: 1;--aa-scrollbar-thumb-background-color-alpha: 1;--aa-search-input-height: 36px;--docusaurus-tag-list-border: var(--ifm-color-emphasis-300);--docusaurus-collapse-button-bg: transparent;--docusaurus-collapse-button-bg-hover: rgba(0, 0, 0, .1);--doc-sidebar-width: 300px;--doc-sidebar-hidden-width: 30px;font-size:16px;text-wrap:wrap}:host code,:host kbd,:host pre,:host samp{display:inline-block;filter:none}:host h1,:host h2,:host h3,:host label{color:hsl(var(--accent-foreground))!important}:host{--ifm-color-scheme: dark;--ifm-color-emphasis-0: var(--ifm-color-gray-1000);--ifm-color-emphasis-100: var(--ifm-color-gray-900);--ifm-color-emphasis-200: var(--ifm-color-gray-800);--ifm-color-emphasis-300: var(--ifm-color-gray-700);--ifm-color-emphasis-400: var(--ifm-color-gray-600);--ifm-color-emphasis-600: var(--ifm-color-gray-400);--ifm-color-emphasis-700: var(--ifm-color-gray-300);--ifm-color-emphasis-800: var(--ifm-color-gray-200);--ifm-color-emphasis-900: var(--ifm-color-gray-100);--ifm-color-emphasis-1000: var(--ifm-color-gray-0);--ifm-background-color: #1b1b1d !important;--ifm-background-surface-color: #242526;--ifm-hover-overlay: hsla(0, 0%, 100%, .05);--ifm-color-content: #e3e3e3;--ifm-color-content-secondary: #fff;--ifm-breadcrumb-separator-filter: invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background: hsla(0, 0%, 100%, .1);--ifm-scrollbar-track-background-color: #444;--ifm-scrollbar-thumb-background-color: #686868;--ifm-scrollbar-thumb-hover-background-color: #7a7a7a;--ifm-table-stripe-background: hsla(0, 0%, 100%, .07);--ifm-toc-border-color: var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background: #102445;--ifm-color-primary-contrast-foreground: #ebf2fc;--ifm-color-secondary-contrast-background: #474748;--ifm-color-secondary-contrast-foreground: #fdfdfe;--ifm-color-success-contrast-background: #003100;--ifm-color-success-contrast-foreground: #e6f6e6;--ifm-color-info-contrast-background: #193c47;--ifm-color-info-contrast-foreground: #eef9fd;--ifm-color-warning-contrast-background: #4d3800;--ifm-color-warning-contrast-foreground: #fff8e6;--ifm-color-danger-contrast-background: #4b1113;--ifm-color-danger-contrast-foreground: #ffebec;--ifm-color-emphasis-500: var(--ifm-color-gray-500)}@font-face{font-family:Geist;src:url(/fonts/GeistVariableVF.ttf) format("truetype-variations");src:url(/fonts/GeistVariableVF.woff2) format("woff2-variations");font-weight:100 900}#ask-cookbook-button{background-color:var(--ask-cb-bg, hsl(var(--secondary-foreground)))}#ask-cookbook-button:hover{background-color:var(--ask-cb-hover, hsl(var(--secondary-foreground)/.7))}#ask-cookbook-button span{color:var(--ask-cb-text, hsl(var(--secondary)))}#ask-cookbook-button-recommendations{background-color:var(--recommendations-bg, hsl(var(--secondary-foreground)/.1));color:var(--recommendations-text, hsl(var(--secondary-foreground)))}#ask-cookbook-button-recommendations:hover{background-color:var(--recommendations-hover, hsl(var(--secondary-foreground)/.7))}:where(html[dir=ltr]),:where([data-sonner-toaster][dir=ltr]){--toast-icon-margin-start: -3px;--toast-icon-margin-end: 4px;--toast-svg-margin-start: -1px;--toast-svg-margin-end: 0px;--toast-button-margin-start: auto;--toast-button-margin-end: 0;--toast-close-button-start: 0;--toast-close-button-end: unset;--toast-close-button-transform: translate(-35%, -35%)}:where(html[dir=rtl]),:where([data-sonner-toaster][dir=rtl]){--toast-icon-margin-start: 4px;--toast-icon-margin-end: -3px;--toast-svg-margin-start: 0px;--toast-svg-margin-end: -1px;--toast-button-margin-start: 0;--toast-button-margin-end: auto;--toast-close-button-start: unset;--toast-close-button-end: 0;--toast-close-button-transform: translate(35%, -35%)}:where([data-sonner-toaster]){position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1: hsl(0, 0%, 99%);--gray2: hsl(0, 0%, 97.3%);--gray3: hsl(0, 0%, 95.1%);--gray4: hsl(0, 0%, 93%);--gray5: hsl(0, 0%, 90.9%);--gray6: hsl(0, 0%, 88.7%);--gray7: hsl(0, 0%, 85.8%);--gray8: hsl(0, 0%, 78%);--gray9: hsl(0, 0%, 56.1%);--gray10: hsl(0, 0%, 52.3%);--gray11: hsl(0, 0%, 43.5%);--gray12: hsl(0, 0%, 9%);--border-radius: 8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:none;z-index:999999999}:where([data-sonner-toaster][data-x-position=right]){right:max(var(--offset),env(safe-area-inset-right))}:where([data-sonner-toaster][data-x-position=left]){left:max(var(--offset),env(safe-area-inset-left))}:where([data-sonner-toaster][data-x-position=center]){left:50%;transform:translate(-50%)}:where([data-sonner-toaster][data-y-position=top]){top:max(var(--offset),env(safe-area-inset-top))}:where([data-sonner-toaster][data-y-position=bottom]){bottom:max(var(--offset),env(safe-area-inset-bottom))}:where([data-sonner-toast]){--y: translateY(100%);--lift-amount: calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);filter:blur(0);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:none;overflow-wrap:anywhere}:where([data-sonner-toast][data-styled=true]){padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px #0000001a;width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}:where([data-sonner-toast]:focus-visible){box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast][data-y-position=top]){top:0;--y: translateY(-100%);--lift: 1;--lift-amount: calc(1 * var(--gap))}:where([data-sonner-toast][data-y-position=bottom]){bottom:0;--y: translateY(100%);--lift: -1;--lift-amount: calc(var(--lift) * var(--gap))}:where([data-sonner-toast]) :where([data-description]){font-weight:400;line-height:1.4;color:inherit}:where([data-sonner-toast]) :where([data-title]){font-weight:500;line-height:1.5;color:inherit}:where([data-sonner-toast]) :where([data-icon]){display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}:where([data-sonner-toast][data-promise=true]) :where([data-icon])>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}:where([data-sonner-toast]) :where([data-icon])>*{flex-shrink:0}:where([data-sonner-toast]) :where([data-icon]) svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}:where([data-sonner-toast]) :where([data-content]){display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;cursor:pointer;outline:none;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}:where([data-sonner-toast]) :where([data-button]):focus-visible{box-shadow:0 0 0 2px #0006}:where([data-sonner-toast]) :where([data-button]):first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}:where([data-sonner-toast]) :where([data-cancel]){color:var(--normal-text);background:#00000014}:where([data-sonner-toast][data-theme=dark]) :where([data-cancel]){background:#ffffff4d}:where([data-sonner-toast]) :where([data-close-button]){position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;background:var(--gray1);color:var(--gray12);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}:where([data-sonner-toast]) :where([data-close-button]):focus-visible{box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast]) :where([data-disabled=true]){cursor:not-allowed}:where([data-sonner-toast]):hover :where([data-close-button]):hover{background:var(--gray2);border-color:var(--gray5)}:where([data-sonner-toast][data-swiping=true]):before{content:"";position:absolute;left:0;right:0;height:100%;z-index:-1}:where([data-sonner-toast][data-y-position=top][data-swiping=true]):before{bottom:50%;transform:scaleY(3) translateY(50%)}:where([data-sonner-toast][data-y-position=bottom][data-swiping=true]):before{top:50%;transform:scaleY(3) translateY(-50%)}:where([data-sonner-toast][data-swiping=false][data-removed=true]):before{content:"";position:absolute;inset:0;transform:scaleY(2)}:where([data-sonner-toast]):after{content:"";position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}:where([data-sonner-toast][data-mounted=true]){--y: translateY(0);opacity:1}:where([data-sonner-toast][data-expanded=false][data-front=false]){--scale: var(--toasts-before) * .05 + 1;--y: translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}:where([data-sonner-toast])>*{transition:opacity .4s}:where([data-sonner-toast][data-expanded=false][data-front=false][data-styled=true])>*{opacity:0}:where([data-sonner-toast][data-visible=false]){opacity:0;pointer-events:none}:where([data-sonner-toast][data-mounted=true][data-expanded=true]){--y: translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}:where([data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]){--y: translateY(calc(var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]){--y: translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]){--y: translateY(40%);opacity:0;transition:transform .5s,opacity .2s}:where([data-sonner-toast][data-removed=true][data-front=false]):before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount, 0px));transition:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation:swipe-out .2s ease-out forwards}@keyframes swipe-out{0%{transform:translateY(calc(var(--lift) * var(--offset) + var(--swipe-amount)));opacity:1}to{transform:translateY(calc(var(--lift) * var(--offset) + var(--swipe-amount) + var(--lift) * -100%));opacity:0}}@media (max-width: 600px){[data-sonner-toaster]{position:fixed;--mobile-offset: 16px;right:var(--mobile-offset);left:var(--mobile-offset);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset)}[data-sonner-toaster][data-y-position=bottom]{bottom:20px}[data-sonner-toaster][data-y-position=top]{top:20px}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset);right:var(--mobile-offset);transform:none}}[data-sonner-toaster][data-theme=light]{--normal-bg: #fff;--normal-border: var(--gray4);--normal-text: var(--gray12);--success-bg: hsl(143, 85%, 96%);--success-border: hsl(145, 92%, 91%);--success-text: hsl(140, 100%, 27%);--info-bg: hsl(208, 100%, 97%);--info-border: hsl(221, 91%, 91%);--info-text: hsl(210, 92%, 45%);--warning-bg: hsl(49, 100%, 97%);--warning-border: hsl(49, 91%, 91%);--warning-text: hsl(31, 92%, 45%);--error-bg: hsl(359, 100%, 97%);--error-border: hsl(359, 100%, 94%);--error-text: hsl(360, 100%, 45%)}[data-sonner-toaster][data-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg: #000;--normal-border: hsl(0, 0%, 20%);--normal-text: var(--gray1)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg: #fff;--normal-border: var(--gray3);--normal-text: var(--gray12)}[data-sonner-toaster][data-theme=dark]{--normal-bg: #000;--normal-border: hsl(0, 0%, 20%);--normal-text: var(--gray1);--success-bg: hsl(150, 100%, 6%);--success-border: hsl(147, 100%, 12%);--success-text: hsl(150, 86%, 65%);--info-bg: hsl(215, 100%, 6%);--info-border: hsl(223, 100%, 12%);--info-text: hsl(216, 87%, 65%);--warning-bg: hsl(64, 100%, 6%);--warning-border: hsl(60, 100%, 12%);--warning-text: hsl(46, 87%, 65%);--error-bg: hsl(358, 76%, 10%);--error-border: hsl(357, 89%, 16%);--error-text: hsl(358, 100%, 81%)}[data-rich-colors=true][data-sonner-toast][data-type=success],[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info],[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning],[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error],[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size: 16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:nth-child(1){animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}to{opacity:.15}}@media (prefers-reduced-motion){[data-sonner-toast],[data-sonner-toast]>*,.sonner-loading-bar{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}._openModalButtonActive_u5qne_1{transform:scale(1.1) translateY(-2px)}._openModalButtonFixed_u5qne_6{position:fixed;bottom:40px;right:40px;z-index:calc(var(--ifm-z-index-fixed, 100) + 5);transition:all .3s cubic-bezier(.4,0,.2,1)!important}@media (max-width: 768px){._openModalButtonFixed_u5qne_6{bottom:20px;right:20px}}.monaco-editor{font-family:-apple-system,BlinkMacSystemFont,Segoe WPC,Segoe UI,HelveticaNeue-Light,system-ui,Ubuntu,Droid Sans,sans-serif;--monaco-monospace-font: "SF Mono", Monaco, Menlo, Consolas, "Ubuntu Mono", "Liberation Mono", "DejaVu Sans Mono", "Courier New", monospace}.monaco-menu .monaco-action-bar.vertical .action-item .action-menu-item:focus .action-label{stroke-width:1.2px}.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.hc-black .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.hc-light .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label{stroke-width:1.2px}.monaco-hover p{margin:0}.monaco-aria-container{position:absolute!important;top:0;height:1px;width:1px;margin:-1px;overflow:hidden;padding:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%)}.monaco-editor,.monaco-diff-editor .synthetic-focus,.monaco-diff-editor [tabindex="0"]:focus,.monaco-diff-editor [tabindex="-1"]:focus,.monaco-diff-editor button:focus,.monaco-diff-editor input[type=button]:focus,.monaco-diff-editor input[type=checkbox]:focus,.monaco-diff-editor input[type=search]:focus,.monaco-diff-editor input[type=text]:focus,.monaco-diff-editor select:focus,.monaco-diff-editor textarea:focus{outline-width:1px;outline-style:solid;outline-offset:-1px;outline-color:var(--vscode-focusBorder);opacity:1}.monaco-aria-container{position:absolute;left:-999em}::-ms-clear{display:none}.monaco-editor .editor-widget input{color:inherit}.monaco-editor{position:relative;overflow:visible;-webkit-text-size-adjust:100%;color:var(--vscode-editor-foreground);background-color:var(--vscode-editor-background)}.monaco-editor-background{background-color:var(--vscode-editor-background)}.monaco-editor .rangeHighlight{background-color:var(--vscode-editor-rangeHighlightBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-rangeHighlightBorder)}.monaco-editor.hc-black .rangeHighlight,.monaco-editor.hc-light .rangeHighlight{border-style:dotted}.monaco-editor .symbolHighlight{background-color:var(--vscode-editor-symbolHighlightBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-symbolHighlightBorder)}.monaco-editor.hc-black .symbolHighlight,.monaco-editor.hc-light .symbolHighlight{border-style:dotted}.monaco-editor .overflow-guard{position:relative;overflow:hidden}.monaco-editor .view-overlays{position:absolute;top:0}.monaco-editor .view-overlays>div,.monaco-editor .margin-view-overlays>div{position:absolute;width:100%}.monaco-editor .view-overlays>div>div,.monaco-editor .margin-view-overlays>div>div{bottom:0}.monaco-editor .squiggly-error{border-bottom:4px double var(--vscode-editorError-border)}.monaco-editor .squiggly-error:before{display:block;content:"";width:100%;height:100%;background:var(--vscode-editorError-background)}.monaco-editor .squiggly-warning{border-bottom:4px double var(--vscode-editorWarning-border)}.monaco-editor .squiggly-warning:before{display:block;content:"";width:100%;height:100%;background:var(--vscode-editorWarning-background)}.monaco-editor .squiggly-info{border-bottom:4px double var(--vscode-editorInfo-border)}.monaco-editor .squiggly-info:before{display:block;content:"";width:100%;height:100%;background:var(--vscode-editorInfo-background)}.monaco-editor .squiggly-hint{border-bottom:2px dotted var(--vscode-editorHint-border)}.monaco-editor.showUnused .squiggly-unnecessary{border-bottom:2px dashed var(--vscode-editorUnnecessaryCode-border)}.monaco-editor.showDeprecated .squiggly-inline-deprecated{text-decoration:line-through;text-decoration-color:var(--vscode-editor-foreground, inherit)}.monaco-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.monaco-scrollable-element>.visible{opacity:1;background:#0000;transition:opacity .1s linear;z-index:11}.monaco-scrollable-element>.invisible{opacity:0;pointer-events:none}.monaco-scrollable-element>.invisible.fade{transition:opacity .8s linear}.monaco-scrollable-element>.shadow{position:absolute;display:none}.monaco-scrollable-element>.shadow.top{display:block;top:0;left:3px;height:3px;width:100%;box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px inset}.monaco-scrollable-element>.shadow.left{display:block;top:3px;left:0;height:100%;width:3px;box-shadow:var(--vscode-scrollbar-shadow) 6px 0 6px -6px inset}.monaco-scrollable-element>.shadow.top-left-corner{display:block;top:0;left:0;height:3px;width:3px}.monaco-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow) 6px 0 6px -6px inset}.monaco-scrollable-element>.scrollbar>.slider{background:var(--vscode-scrollbarSlider-background)}.monaco-scrollable-element>.scrollbar>.slider:hover{background:var(--vscode-scrollbarSlider-hoverBackground)}.monaco-scrollable-element>.scrollbar>.slider.active{background:var(--vscode-scrollbarSlider-activeBackground)}.monaco-editor .inputarea{min-width:0;min-height:0;margin:0;padding:0;position:absolute;outline:none!important;resize:none;border:none;overflow:hidden;color:transparent;background-color:transparent;z-index:-10}.monaco-editor .inputarea.ime-input{z-index:10;caret-color:var(--vscode-editorCursor-foreground);color:var(--vscode-editor-foreground)}.monaco-editor .margin-view-overlays .line-numbers{bottom:0;font-variant-numeric:tabular-nums;position:absolute;text-align:right;display:inline-block;vertical-align:middle;box-sizing:border-box;cursor:default}.monaco-editor .relative-current-line-number{text-align:left;display:inline-block;width:100%}.monaco-editor .margin-view-overlays .line-numbers.lh-odd{margin-top:1px}.monaco-editor .line-numbers{color:var(--vscode-editorLineNumber-foreground)}.monaco-editor .line-numbers.active-line-number{color:var(--vscode-editorLineNumber-activeForeground)}.monaco-editor .margin{background-color:var(--vscode-editorGutter-background)}.monaco-mouse-cursor-text{cursor:text}.monaco-editor .blockDecorations-container{position:absolute;top:0;pointer-events:none}.monaco-editor .blockDecorations-block{position:absolute;box-sizing:border-box}.monaco-editor .view-overlays .current-line,.monaco-editor .margin-view-overlays .current-line{display:block;position:absolute;left:0;top:0;box-sizing:border-box;height:100%}.monaco-editor .margin-view-overlays .current-line.current-line-margin.current-line-margin-both{border-right:0}.monaco-editor .lines-content .cdr{position:absolute;height:100%}.monaco-editor .glyph-margin{position:absolute;top:0}.monaco-editor .glyph-margin-widgets .cgmr{position:absolute;display:flex;align-items:center;justify-content:center}.monaco-editor .glyph-margin-widgets .cgmr.codicon-modifier-spin:before{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.monaco-editor .lines-content .core-guide{position:absolute;box-sizing:border-box;height:100%}.mtkcontrol{color:#fff!important;background:#960000!important}.mtkoverflow{background-color:var(--vscode-button-background, var(--vscode-editor-background));color:var(--vscode-button-foreground, var(--vscode-editor-foreground));border-width:1px;border-style:solid;border-color:var(--vscode-contrastBorder);border-radius:2px;padding:4px;cursor:pointer}.mtkoverflow:hover{background-color:var(--vscode-button-hoverBackground)}.monaco-editor.no-user-select .lines-content,.monaco-editor.no-user-select .view-line,.monaco-editor.no-user-select .view-lines{user-select:none;-webkit-user-select:none}.monaco-editor.mac .lines-content:hover,.monaco-editor.mac .view-line:hover,.monaco-editor.mac .view-lines:hover{user-select:text;-webkit-user-select:text;-ms-user-select:text}.monaco-editor.enable-user-select{user-select:initial;-webkit-user-select:initial}.monaco-editor .view-lines{white-space:nowrap}.monaco-editor .view-line{position:absolute;width:100%}.monaco-editor .lines-content>.view-lines>.view-line>span{top:0;bottom:0;position:absolute}.monaco-editor .mtkw{color:var(--vscode-editorWhitespace-foreground)!important}.monaco-editor .mtkz{display:inline-block;color:var(--vscode-editorWhitespace-foreground)!important}.monaco-editor .lines-decorations{position:absolute;top:0;background:#fff}.monaco-editor .margin-view-overlays .cldr{position:absolute;height:100%}.monaco-editor .margin-view-overlays .cmdr{position:absolute;left:0;width:100%;height:100%}.monaco-editor .minimap.slider-mouseover .minimap-slider{opacity:0;transition:opacity .1s linear}.monaco-editor .minimap.slider-mouseover:hover .minimap-slider,.monaco-editor .minimap.slider-mouseover .minimap-slider.active{opacity:1}.monaco-editor .minimap-slider .minimap-slider-horizontal{background:var(--vscode-minimapSlider-background)}.monaco-editor .minimap-slider:hover .minimap-slider-horizontal{background:var(--vscode-minimapSlider-hoverBackground)}.monaco-editor .minimap-slider.active .minimap-slider-horizontal{background:var(--vscode-minimapSlider-activeBackground)}.monaco-editor .minimap-shadow-visible{box-shadow:var(--vscode-scrollbar-shadow) -6px 0 6px -6px inset}.monaco-editor .minimap-shadow-hidden{position:absolute;width:0}.monaco-editor .minimap-shadow-visible{position:absolute;left:-6px;width:6px}.monaco-editor.no-minimap-shadow .minimap-shadow-visible{position:absolute;left:-1px;width:1px}.minimap.autohide{opacity:0;transition:opacity .5s}.minimap.autohide:hover{opacity:1}.monaco-editor .minimap{z-index:5}.monaco-editor .overlayWidgets{position:absolute;top:0;left:0}.monaco-editor .view-ruler{position:absolute;top:0;box-shadow:1px 0 0 0 var(--vscode-editorRuler-foreground) inset}.monaco-editor .scroll-decoration{position:absolute;top:0;left:0;height:6px;box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px inset}.monaco-editor .lines-content .cslr{position:absolute}.monaco-editor .focused .selected-text{background-color:var(--vscode-editor-selectionBackground)}.monaco-editor .selected-text{background-color:var(--vscode-editor-inactiveSelectionBackground)}.monaco-editor .top-left-radius{border-top-left-radius:3px}.monaco-editor .bottom-left-radius{border-bottom-left-radius:3px}.monaco-editor .top-right-radius{border-top-right-radius:3px}.monaco-editor .bottom-right-radius{border-bottom-right-radius:3px}.monaco-editor.hc-black .top-left-radius{border-top-left-radius:0}.monaco-editor.hc-black .bottom-left-radius{border-bottom-left-radius:0}.monaco-editor.hc-black .top-right-radius{border-top-right-radius:0}.monaco-editor.hc-black .bottom-right-radius{border-bottom-right-radius:0}.monaco-editor.hc-light .top-left-radius{border-top-left-radius:0}.monaco-editor.hc-light .bottom-left-radius{border-bottom-left-radius:0}.monaco-editor.hc-light .top-right-radius{border-top-right-radius:0}.monaco-editor.hc-light .bottom-right-radius{border-bottom-right-radius:0}.monaco-editor .cursors-layer{position:absolute;top:0}.monaco-editor .cursors-layer>.cursor{position:absolute;overflow:hidden;box-sizing:border-box}.monaco-editor .cursors-layer.cursor-smooth-caret-animation>.cursor{transition:all 80ms}.monaco-editor .cursors-layer.cursor-block-outline-style>.cursor{background:transparent!important;border-style:solid;border-width:1px}.monaco-editor .cursors-layer.cursor-underline-style>.cursor{border-bottom-width:2px;border-bottom-style:solid;background:transparent!important}.monaco-editor .cursors-layer.cursor-underline-thin-style>.cursor{border-bottom-width:1px;border-bottom-style:solid;background:transparent!important}@keyframes monaco-cursor-smooth{0%,20%{opacity:1}60%,to{opacity:0}}@keyframes monaco-cursor-phase{0%,20%{opacity:1}90%,to{opacity:0}}@keyframes monaco-cursor-expand{0%,20%{transform:scaleY(1)}80%,to{transform:scaleY(0)}}.cursor-smooth{animation:monaco-cursor-smooth .5s ease-in-out 0s 20 alternate}.cursor-phase{animation:monaco-cursor-phase .5s ease-in-out 0s 20 alternate}.cursor-expand>.cursor{animation:monaco-cursor-expand .5s ease-in-out 0s 20 alternate}.monaco-editor .mwh{position:absolute;color:var(--vscode-editorWhitespace-foreground)!important}.monaco-workbench .workbench-hover{position:relative;font-size:13px;line-height:19px;z-index:40;overflow:hidden;max-width:700px;background:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border);border-radius:3px;color:var(--vscode-editorHoverWidget-foreground);box-shadow:0 2px 8px var(--vscode-widget-shadow)}.monaco-workbench .workbench-hover hr{border-bottom:none}.monaco-workbench .workbench-hover:not(.skip-fade-in){animation:fadein .1s linear}.monaco-workbench .workbench-hover.compact{font-size:12px}.monaco-workbench .workbench-hover.compact .hover-contents{padding:2px 8px}.monaco-workbench .workbench-hover-container.locked .workbench-hover{outline:1px solid var(--vscode-editorHoverWidget-border)}.monaco-workbench .workbench-hover-container.locked .workbench-hover:focus,.monaco-workbench .workbench-hover-lock:focus{outline:1px solid var(--vscode-focusBorder)}.monaco-workbench .workbench-hover-container.locked .workbench-hover-lock:hover{background:var(--vscode-toolbar-hoverBackground)}.monaco-workbench .workbench-hover-pointer{position:absolute;z-index:41;pointer-events:none}.monaco-workbench .workbench-hover-pointer:after{content:"";position:absolute;width:5px;height:5px;background-color:var(--vscode-editorHoverWidget-background);border-right:1px solid var(--vscode-editorHoverWidget-border);border-bottom:1px solid var(--vscode-editorHoverWidget-border)}.monaco-workbench .locked .workbench-hover-pointer:after{width:4px;height:4px;border-right-width:2px;border-bottom-width:2px}.monaco-workbench .workbench-hover-pointer.left{left:-3px}.monaco-workbench .workbench-hover-pointer.right{right:3px}.monaco-workbench .workbench-hover-pointer.top{top:-3px}.monaco-workbench .workbench-hover-pointer.bottom{bottom:3px}.monaco-workbench .workbench-hover-pointer.left:after{transform:rotate(135deg)}.monaco-workbench .workbench-hover-pointer.right:after{transform:rotate(315deg)}.monaco-workbench .workbench-hover-pointer.top:after{transform:rotate(225deg)}.monaco-workbench .workbench-hover-pointer.bottom:after{transform:rotate(45deg)}.monaco-workbench .workbench-hover a{color:var(--vscode-textLink-foreground)}.monaco-workbench .workbench-hover a:focus{outline:1px solid;outline-offset:-1px;text-decoration:underline;outline-color:var(--vscode-focusBorder)}.monaco-workbench .workbench-hover a:hover,.monaco-workbench .workbench-hover a:active{color:var(--vscode-textLink-activeForeground)}.monaco-workbench .workbench-hover code{background:var(--vscode-textCodeBlock-background)}.monaco-workbench .workbench-hover .hover-row .actions{background:var(--vscode-editorHoverWidget-statusBarBackground)}.monaco-workbench .workbench-hover.right-aligned{left:1px}.monaco-workbench .workbench-hover.right-aligned .hover-row.status-bar .actions{flex-direction:row-reverse}.monaco-workbench .workbench-hover.right-aligned .hover-row.status-bar .actions .action-container{margin-right:0;margin-left:16px}.monaco-hover{cursor:default;position:absolute;overflow:hidden;user-select:text;-webkit-user-select:text;box-sizing:border-box;animation:fadein .1s linear;line-height:1.5em;white-space:var(--vscode-hover-whiteSpace, normal)}.monaco-hover.hidden{display:none}.monaco-hover a:hover:not(.disabled){cursor:pointer}.monaco-hover .hover-contents:not(.html-hover-contents){padding:4px 8px}.monaco-hover .markdown-hover>.hover-contents:not(.code-hover-contents){max-width:var(--vscode-hover-maxWidth, 500px);word-wrap:break-word}.monaco-hover .markdown-hover>.hover-contents:not(.code-hover-contents) hr{min-width:100%}.monaco-hover p,.monaco-hover .code,.monaco-hover ul,.monaco-hover h1,.monaco-hover h2,.monaco-hover h3,.monaco-hover h4,.monaco-hover h5,.monaco-hover h6{margin:8px 0}.monaco-hover h1,.monaco-hover h2,.monaco-hover h3,.monaco-hover h4,.monaco-hover h5,.monaco-hover h6{line-height:1.1}.monaco-hover code{font-family:var(--monaco-monospace-font)}.monaco-hover hr{box-sizing:border-box;border-left:0px;border-right:0px;margin:4px -8px -4px;height:1px}.monaco-hover p:first-child,.monaco-hover .code:first-child,.monaco-hover ul:first-child{margin-top:0}.monaco-hover p:last-child,.monaco-hover .code:last-child,.monaco-hover ul:last-child{margin-bottom:0}.monaco-hover ul,.monaco-hover ol{padding-left:20px}.monaco-hover li>p{margin-bottom:0}.monaco-hover li>ul{margin-top:0}.monaco-hover code{border-radius:3px;padding:0 .4em}.monaco-hover .monaco-tokenized-source{white-space:var(--vscode-hover-sourceWhiteSpace, pre-wrap)}.monaco-hover .hover-row.status-bar{font-size:12px;line-height:22px}.monaco-hover .hover-row.status-bar .info{font-style:italic;padding:0 8px}.monaco-hover .hover-row.status-bar .actions{display:flex;padding:0 8px}.monaco-hover .hover-row.status-bar .actions .action-container{margin-right:16px;cursor:pointer}.monaco-hover .hover-row.status-bar .actions .action-container .action .icon{padding-right:4px}.monaco-hover .markdown-hover .hover-contents .codicon{color:inherit;font-size:inherit;vertical-align:middle}.monaco-hover .hover-contents a.code-link:hover,.monaco-hover .hover-contents a.code-link{color:inherit}.monaco-hover .hover-contents a.code-link:before{content:"("}.monaco-hover .hover-contents a.code-link:after{content:")"}.monaco-hover .hover-contents a.code-link>span{text-decoration:underline;border-bottom:1px solid transparent;text-underline-position:under;color:var(--vscode-textLink-foreground)}.monaco-hover .hover-contents a.code-link>span:hover{color:var(--vscode-textLink-activeForeground)}.monaco-hover .markdown-hover .hover-contents:not(.code-hover-contents):not(.html-hover-contents) span{margin-bottom:4px;display:inline-block}.monaco-hover-content .action-container a{-webkit-user-select:none;user-select:none}.monaco-hover-content .action-container.disabled{pointer-events:none;opacity:.4;cursor:default}.monaco-editor .rendered-markdown kbd{background-color:var(--vscode-keybindingLabel-background);color:var(--vscode-keybindingLabel-foreground);border-style:solid;border-width:1px;border-radius:3px;border-color:var(--vscode-keybindingLabel-border);border-bottom-color:var(--vscode-keybindingLabel-bottomBorder);box-shadow:inset 0 -1px 0 var(--vscode-widget-shadow);vertical-align:middle;padding:1px 3px}.rendered-markdown li:has(input[type=checkbox]){list-style-type:none}.context-view{position:absolute}.context-view.fixed{all:initial;font-family:inherit;font-size:13px;position:fixed;color:inherit}.monaco-list{position:relative;height:100%;width:100%;white-space:nowrap}.monaco-list.mouse-support{user-select:none;-webkit-user-select:none}.monaco-list>.monaco-scrollable-element{height:100%}.monaco-list-rows{position:relative;width:100%;height:100%}.monaco-list.horizontal-scrolling .monaco-list-rows{width:auto;min-width:100%}.monaco-list-row{position:absolute;box-sizing:border-box;overflow:hidden;width:100%}.monaco-list.mouse-support .monaco-list-row{cursor:pointer;touch-action:none}.monaco-list .monaco-scrollable-element>.scrollbar.vertical,.monaco-pane-view>.monaco-split-view2.vertical>.monaco-scrollable-element>.scrollbar.vertical{z-index:14}.monaco-list-row.scrolling{display:none!important}.monaco-list.element-focused,.monaco-list.selection-single,.monaco-list.selection-multiple{outline:0!important}.monaco-drag-image{display:inline-block;padding:1px 7px;border-radius:10px;font-size:12px;position:absolute;z-index:1000}.monaco-list-type-filter-message{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;padding:40px 1em 1em;text-align:center;white-space:normal;opacity:.7;pointer-events:none}.monaco-list-type-filter-message:empty{display:none}.monaco-select-box-dropdown-padding{--dropdown-padding-top: 1px;--dropdown-padding-bottom: 1px}.hc-black .monaco-select-box-dropdown-padding,.hc-light .monaco-select-box-dropdown-padding{--dropdown-padding-top: 3px;--dropdown-padding-bottom: 4px}.monaco-select-box-dropdown-container{display:none;box-sizing:border-box}.monaco-select-box-dropdown-container>.select-box-details-pane>.select-box-description-markdown *{margin:0}.monaco-select-box-dropdown-container>.select-box-details-pane>.select-box-description-markdown a:focus{outline:1px solid -webkit-focus-ring-color;outline-offset:-1px}.monaco-select-box-dropdown-container>.select-box-details-pane>.select-box-description-markdown code{line-height:15px;font-family:var(--monaco-monospace-font)}.monaco-select-box-dropdown-container.visible{display:flex;flex-direction:column;text-align:left;width:1px;overflow:hidden;border-bottom-left-radius:3px;border-bottom-right-radius:3px}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container{flex:0 0 auto;align-self:flex-start;padding-top:var(--dropdown-padding-top);padding-bottom:var(--dropdown-padding-bottom);padding-left:1px;padding-right:1px;width:100%;overflow:hidden;box-sizing:border-box}.monaco-select-box-dropdown-container>.select-box-details-pane{padding:5px}.hc-black .monaco-select-box-dropdown-container>.select-box-dropdown-list-container{padding-top:var(--dropdown-padding-top);padding-bottom:var(--dropdown-padding-bottom)}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row{cursor:pointer}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.option-text{text-overflow:ellipsis;overflow:hidden;padding-left:3.5px;white-space:nowrap;float:left}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.option-detail{text-overflow:ellipsis;overflow:hidden;padding-left:3.5px;white-space:nowrap;float:left;opacity:.7}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.option-decorator-right{text-overflow:ellipsis;overflow:hidden;padding-right:10px;white-space:nowrap;float:right}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.visually-hidden{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.monaco-select-box-dropdown-container>.select-box-dropdown-container-width-control{flex:1 1 auto;align-self:flex-start;opacity:0}.monaco-select-box-dropdown-container>.select-box-dropdown-container-width-control>.width-control-div{overflow:hidden;max-height:0px}.monaco-select-box-dropdown-container>.select-box-dropdown-container-width-control>.width-control-div>.option-text-width-control{padding-left:4px;padding-right:8px;white-space:nowrap}.monaco-select-box{width:100%;cursor:pointer;border-radius:2px}.monaco-select-box-dropdown-container{font-size:13px;font-weight:400;text-transform:none}.monaco-action-bar .action-item.select-container{cursor:default}.monaco-action-bar .action-item .monaco-select-box{cursor:pointer;min-width:100px;min-height:18px;padding:2px 23px 2px 8px}.mac .monaco-action-bar .action-item .monaco-select-box{font-size:11px;border-radius:5px}.monaco-action-bar{white-space:nowrap;height:100%}.monaco-action-bar .actions-container{display:flex;margin:0 auto;padding:0;height:100%;width:100%;align-items:center}.monaco-action-bar.vertical .actions-container{display:inline-block}.monaco-action-bar .action-item{display:block;align-items:center;justify-content:center;cursor:pointer;position:relative}.monaco-action-bar .action-item.disabled{cursor:default}.monaco-action-bar .action-item .icon,.monaco-action-bar .action-item .codicon{display:block}.monaco-action-bar .action-item .codicon{display:flex;align-items:center;width:16px;height:16px}.monaco-action-bar .action-label{display:flex;font-size:11px;padding:3px;border-radius:5px}.monaco-action-bar .action-item.disabled .action-label,.monaco-action-bar .action-item.disabled .action-label:before,.monaco-action-bar .action-item.disabled .action-label:hover{color:var(--vscode-disabledForeground)}.monaco-action-bar.vertical{text-align:left}.monaco-action-bar.vertical .action-item{display:block}.monaco-action-bar.vertical .action-label.separator{display:block;border-bottom:1px solid #bbb;padding-top:1px;margin-left:.8em;margin-right:.8em}.monaco-action-bar .action-item .action-label.separator{width:1px;height:16px;margin:5px 4px!important;cursor:default;min-width:1px;padding:0;background-color:#bbb}.secondary-actions .monaco-action-bar .action-label{margin-left:6px}.monaco-action-bar .action-item.select-container{overflow:hidden;flex:1;max-width:170px;min-width:60px;display:flex;align-items:center;justify-content:center;margin-right:10px}.monaco-action-bar .action-item.action-dropdown-item{display:flex}.monaco-action-bar .action-item.action-dropdown-item>.action-dropdown-item-separator{display:flex;align-items:center;cursor:default}.monaco-action-bar .action-item.action-dropdown-item>.action-dropdown-item-separator>div{width:1px}.monaco-dropdown{height:100%;padding:0}.monaco-dropdown>.dropdown-label{cursor:pointer;height:100%;display:flex;align-items:center;justify-content:center}.monaco-dropdown>.dropdown-label>.action-label.disabled{cursor:default}.monaco-dropdown-with-primary{display:flex!important;flex-direction:row;border-radius:5px}.monaco-dropdown-with-primary>.action-container>.action-label{margin-right:0}.monaco-dropdown-with-primary>.dropdown-action-container>.monaco-dropdown>.dropdown-label .codicon[class*=codicon-]{font-size:12px;padding-left:0;padding-right:0;line-height:16px;margin-left:-3px}.monaco-dropdown-with-primary>.dropdown-action-container>.monaco-dropdown>.dropdown-label>.action-label{display:block;background-size:16px;background-position:center center;background-repeat:no-repeat}.monaco-action-bar .action-item.menu-entry .action-label.icon{width:16px;height:16px;background-repeat:no-repeat;background-position:50%;background-size:16px}.monaco-dropdown-with-default{display:flex!important;flex-direction:row;border-radius:5px}.monaco-dropdown-with-default>.action-container>.action-label{margin-right:0}.monaco-dropdown-with-default>.action-container.menu-entry>.action-label.icon{width:16px;height:16px;background-repeat:no-repeat;background-position:50%;background-size:16px}.monaco-dropdown-with-default:hover{background-color:var(--vscode-toolbar-hoverBackground)}.monaco-dropdown-with-default>.dropdown-action-container>.monaco-dropdown>.dropdown-label .codicon[class*=codicon-]{font-size:12px;padding-left:0;padding-right:0;line-height:16px;margin-left:-3px}.monaco-dropdown-with-default>.dropdown-action-container>.monaco-dropdown>.dropdown-label>.action-label{display:block;background-size:16px;background-position:center center;background-repeat:no-repeat}.quick-input-widget{font-size:13px}.quick-input-widget .monaco-highlighted-label .highlight{color:#0066bf}.vs .quick-input-widget .monaco-list-row.focused .monaco-highlighted-label .highlight{color:#9dddff}.vs-dark .quick-input-widget .monaco-highlighted-label .highlight{color:#0097fb}.hc-black .quick-input-widget .monaco-highlighted-label .highlight{color:#f38518}.hc-light .quick-input-widget .monaco-highlighted-label .highlight{color:#0f4a85}.monaco-keybinding>.monaco-keybinding-key{background-color:#ddd6;border:solid 1px rgba(204,204,204,.4);border-bottom-color:#bbb6;box-shadow:inset 0 -1px #bbb6;color:#555}.hc-black .monaco-keybinding>.monaco-keybinding-key{background-color:transparent;border:solid 1px rgb(111,195,223);box-shadow:none;color:#fff}.hc-light .monaco-keybinding>.monaco-keybinding-key{background-color:transparent;border:solid 1px #0F4A85;box-shadow:none;color:#292929}.vs-dark .monaco-keybinding>.monaco-keybinding-key{background-color:#8080802b;border:solid 1px rgba(51,51,51,.6);border-bottom-color:#4449;box-shadow:inset 0 -1px #4449;color:#ccc}.monaco-custom-toggle{margin-left:2px;float:left;cursor:pointer;overflow:hidden;width:20px;height:20px;border-radius:3px;border:1px solid transparent;padding:1px;box-sizing:border-box;user-select:none;-webkit-user-select:none}.monaco-custom-toggle:hover{background-color:var(--vscode-inputOption-hoverBackground)}.hc-black .monaco-custom-toggle:hover,.hc-light .monaco-custom-toggle:hover{border:1px dashed var(--vscode-focusBorder)}.hc-black .monaco-custom-toggle,.hc-light .monaco-custom-toggle,.hc-black .monaco-custom-toggle:hover,.hc-light .monaco-custom-toggle:hover{background:none}.monaco-custom-toggle.monaco-checkbox{height:18px;width:18px;border:1px solid transparent;border-radius:3px;margin-right:9px;margin-left:0;padding:0;opacity:1;background-size:16px!important}.monaco-action-bar .checkbox-action-item{display:flex;align-items:center}.monaco-action-bar .checkbox-action-item>.monaco-custom-toggle.monaco-checkbox{margin-right:4px}.monaco-action-bar .checkbox-action-item>.checkbox-label{font-size:12px}.monaco-custom-toggle.monaco-checkbox:not(.checked):before{visibility:hidden}.quick-input-widget{position:absolute;width:600px;z-index:2550;left:50%;margin-left:-300px;-webkit-app-region:no-drag;border-radius:6px}.quick-input-titlebar{display:flex;align-items:center;border-radius:inherit}.quick-input-left-action-bar{display:flex;margin-left:4px;flex:1}.quick-input-title{padding:3px 0;text-align:center;text-overflow:ellipsis;overflow:hidden}.quick-input-right-action-bar{display:flex;margin-right:4px;flex:1}.quick-input-right-action-bar>.actions-container{justify-content:flex-end}.quick-input-titlebar .monaco-action-bar .action-label.codicon{background-position:center;background-repeat:no-repeat;padding:2px}.quick-input-description{margin:6px 6px 6px 11px}.quick-input-header .quick-input-description{margin:4px 2px;flex:1}.quick-input-header{display:flex;padding:8px 6px 2px}.quick-input-widget.hidden-input .quick-input-header{padding:0;margin-bottom:0}.quick-input-and-message{display:flex;flex-direction:column;flex-grow:1;min-width:0;position:relative}.quick-input-check-all{align-self:center;margin:0}.quick-input-filter{flex-grow:1;display:flex;position:relative}.quick-input-box{flex-grow:1}.quick-input-widget.show-checkboxes .quick-input-box,.quick-input-widget.show-checkboxes .quick-input-message{margin-left:5px}.quick-input-visible-count{position:absolute;left:-10000px}.quick-input-count{align-self:center;position:absolute;right:4px;display:flex;align-items:center}.quick-input-count .monaco-count-badge{vertical-align:middle;padding:2px 4px;border-radius:2px;min-height:auto;line-height:normal}.quick-input-action{margin-left:6px}.quick-input-action .monaco-text-button{font-size:11px;padding:0 6px;display:flex;height:25px;align-items:center}.quick-input-message{margin-top:-1px;padding:5px;overflow-wrap:break-word}.quick-input-message>.codicon{margin:0 .2em;vertical-align:text-bottom}.quick-input-message a{color:inherit}.quick-input-progress.monaco-progress-container{position:relative}.quick-input-list{line-height:22px}.quick-input-widget.hidden-input .quick-input-list{margin-top:4px;padding-bottom:4px}.quick-input-list .monaco-list{overflow:hidden;max-height:440px;padding-bottom:5px}.quick-input-list .monaco-scrollable-element{padding:0 5px}.quick-input-list .quick-input-list-entry{box-sizing:border-box;overflow:hidden;display:flex;height:100%;padding:0 6px}.quick-input-list .quick-input-list-entry.quick-input-list-separator-border{border-top-width:1px;border-top-style:solid}.quick-input-list .monaco-list-row{border-radius:3px}.quick-input-list .monaco-list-row[data-index="0"] .quick-input-list-entry.quick-input-list-separator-border{border-top-style:none}.quick-input-list .quick-input-list-label{overflow:hidden;display:flex;height:100%;flex:1}.quick-input-list .quick-input-list-checkbox{align-self:center;margin:0}.quick-input-list .quick-input-list-icon{background-size:16px;background-position:left center;background-repeat:no-repeat;padding-right:6px;width:16px;height:22px;display:flex;align-items:center;justify-content:center}.quick-input-list .quick-input-list-rows{overflow:hidden;text-overflow:ellipsis;display:flex;flex-direction:column;height:100%;flex:1;margin-left:5px}.quick-input-widget.show-checkboxes .quick-input-list .quick-input-list-rows{margin-left:10px}.quick-input-widget .quick-input-list .quick-input-list-checkbox{display:none}.quick-input-widget.show-checkboxes .quick-input-list .quick-input-list-checkbox{display:inline}.quick-input-list .quick-input-list-rows>.quick-input-list-row{display:flex;align-items:center}.quick-input-list .quick-input-list-rows>.quick-input-list-row .monaco-icon-label,.quick-input-list .quick-input-list-rows>.quick-input-list-row .monaco-icon-label .monaco-icon-label-container>.monaco-icon-name-container{flex:1}.quick-input-list .quick-input-list-rows>.quick-input-list-row .codicon[class*=codicon-]{vertical-align:text-bottom}.quick-input-list .quick-input-list-rows .monaco-highlighted-label>span{opacity:1}.quick-input-list .quick-input-list-entry .quick-input-list-entry-keybinding{margin-right:8px}.quick-input-list .quick-input-list-label-meta{opacity:.7;line-height:normal;text-overflow:ellipsis;overflow:hidden}.quick-input-list .monaco-list .monaco-list-row .monaco-highlighted-label .highlight{font-weight:700;background-color:unset;color:var(--vscode-list-highlightForeground)!important}.quick-input-list .monaco-list .monaco-list-row.focused .monaco-highlighted-label .highlight{color:var(--vscode-list-focusHighlightForeground)!important}.quick-input-list .quick-input-list-entry .quick-input-list-separator{margin-right:4px}.quick-input-list .quick-input-list-entry-action-bar{display:flex;flex:0;overflow:visible}.quick-input-list .quick-input-list-entry-action-bar .action-label{display:none}.quick-input-list .quick-input-list-entry-action-bar .action-label.codicon{margin-right:4px;padding:0 2px 2px}.quick-input-list .quick-input-list-entry-action-bar{margin-top:1px}.quick-input-list .quick-input-list-entry-action-bar{margin-right:4px}.quick-input-list .quick-input-list-entry .quick-input-list-entry-action-bar .action-label.always-visible,.quick-input-list .quick-input-list-entry:hover .quick-input-list-entry-action-bar .action-label,.quick-input-list .quick-input-list-entry.focus-inside .quick-input-list-entry-action-bar .action-label,.quick-input-list .monaco-list-row.focused .quick-input-list-entry-action-bar .action-label,.quick-input-list .monaco-list-row.passive-focused .quick-input-list-entry-action-bar .action-label{display:flex}.quick-input-list .monaco-list-row.focused .monaco-keybinding-key,.quick-input-list .monaco-list-row.focused .quick-input-list-entry .quick-input-list-separator{color:inherit}.quick-input-list .monaco-list-row.focused .monaco-keybinding-key{background:none}.quick-input-list .quick-input-list-separator-as-item{padding:4px 6px;font-size:12px}.quick-input-list .quick-input-list-separator-as-item .label-name{font-weight:600}.quick-input-list .quick-input-list-separator-as-item .label-description{opacity:1!important}.quick-input-list .monaco-tree-sticky-row .quick-input-list-entry.quick-input-list-separator-as-item.quick-input-list-separator-border{border-top-style:none}.quick-input-list .monaco-tree-sticky-row{padding:0 5px}.quick-input-list .monaco-tl-twistie{display:none!important}:root{--vscode-sash-size: 4px;--vscode-sash-hover-size: 4px}.monaco-sash{position:absolute;z-index:35;touch-action:none}.monaco-sash.disabled{pointer-events:none}.monaco-sash.mac.vertical{cursor:col-resize}.monaco-sash.vertical.minimum{cursor:e-resize}.monaco-sash.vertical.maximum{cursor:w-resize}.monaco-sash.mac.horizontal{cursor:row-resize}.monaco-sash.horizontal.minimum{cursor:s-resize}.monaco-sash.horizontal.maximum{cursor:n-resize}.monaco-sash.disabled{cursor:default!important;pointer-events:none!important}.monaco-sash.vertical{cursor:ew-resize;top:0;width:var(--vscode-sash-size);height:100%}.monaco-sash.horizontal{cursor:ns-resize;left:0;width:100%;height:var(--vscode-sash-size)}.monaco-sash:not(.disabled)>.orthogonal-drag-handle{content:" ";height:calc(var(--vscode-sash-size) * 2);width:calc(var(--vscode-sash-size) * 2);z-index:100;display:block;cursor:all-scroll;position:absolute}.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled)>.orthogonal-drag-handle.start,.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled)>.orthogonal-drag-handle.end{cursor:nwse-resize}.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled)>.orthogonal-drag-handle.end,.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled)>.orthogonal-drag-handle.start{cursor:nesw-resize}.monaco-sash.vertical>.orthogonal-drag-handle.start{left:calc(var(--vscode-sash-size) * -.5);top:calc(var(--vscode-sash-size) * -1)}.monaco-sash.vertical>.orthogonal-drag-handle.end{left:calc(var(--vscode-sash-size) * -.5);bottom:calc(var(--vscode-sash-size) * -1)}.monaco-sash.horizontal>.orthogonal-drag-handle.start{top:calc(var(--vscode-sash-size) * -.5);left:calc(var(--vscode-sash-size) * -1)}.monaco-sash.horizontal>.orthogonal-drag-handle.end{top:calc(var(--vscode-sash-size) * -.5);right:calc(var(--vscode-sash-size) * -1)}.monaco-sash:before{content:"";pointer-events:none;position:absolute;width:100%;height:100%;background:transparent}.monaco-workbench:not(.reduce-motion) .monaco-sash:before{transition:background-color .1s ease-out}.monaco-sash.hover:before,.monaco-sash.active:before{background:var(--vscode-sash-hoverBorder)}.monaco-sash.vertical:before{width:var(--vscode-sash-hover-size);left:calc(50% - (var(--vscode-sash-hover-size) / 2))}.monaco-sash.horizontal:before{height:var(--vscode-sash-hover-size);top:calc(50% - (var(--vscode-sash-hover-size) / 2))}.pointer-events-disabled{pointer-events:none!important}.monaco-sash.debug{background:#0ff}.monaco-sash.debug.disabled{background:#0ff3}.monaco-sash.debug:not(.disabled)>.orthogonal-drag-handle{background:red}.monaco-split-view2{position:relative;width:100%;height:100%}.monaco-split-view2>.sash-container{position:absolute;width:100%;height:100%;pointer-events:none}.monaco-split-view2>.sash-container>.monaco-sash{pointer-events:initial}.monaco-split-view2>.monaco-scrollable-element{width:100%;height:100%}.monaco-split-view2>.monaco-scrollable-element>.split-view-container{width:100%;height:100%;white-space:nowrap;position:relative}.monaco-split-view2>.monaco-scrollable-element>.split-view-container>.split-view-view{white-space:initial;position:absolute}.monaco-split-view2>.monaco-scrollable-element>.split-view-container>.split-view-view:not(.visible){display:none}.monaco-split-view2.vertical>.monaco-scrollable-element>.split-view-container>.split-view-view{width:100%}.monaco-split-view2.horizontal>.monaco-scrollable-element>.split-view-container>.split-view-view{height:100%}.monaco-split-view2.separator-border>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{content:" ";position:absolute;top:0;left:0;z-index:5;pointer-events:none;background-color:var(--separator-border)}.monaco-split-view2.separator-border.horizontal>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{height:100%;width:1px}.monaco-split-view2.separator-border.vertical>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{height:1px;width:100%}.monaco-table{display:flex;flex-direction:column;position:relative;height:100%;width:100%;white-space:nowrap;overflow:hidden}.monaco-table>.monaco-split-view2{border-bottom:1px solid transparent}.monaco-table>.monaco-list{flex:1}.monaco-table-tr{display:flex;height:100%}.monaco-table-th{width:100%;height:100%;font-weight:700;overflow:hidden;text-overflow:ellipsis}.monaco-table-th,.monaco-table-td{box-sizing:border-box;flex-shrink:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.monaco-table>.monaco-split-view2 .monaco-sash.vertical:before{content:"";position:absolute;left:calc(var(--vscode-sash-size) / 2);width:0;border-left:1px solid transparent}.monaco-workbench:not(.reduce-motion) .monaco-table>.monaco-split-view2,.monaco-workbench:not(.reduce-motion) .monaco-table>.monaco-split-view2 .monaco-sash.vertical:before{transition:border-color .2s ease-out}.monaco-inputbox{position:relative;display:block;padding:0;box-sizing:border-box;border-radius:2px;font-size:inherit}.monaco-inputbox>.ibwrapper>.input,.monaco-inputbox>.ibwrapper>.mirror{padding:4px 6px}.monaco-inputbox>.ibwrapper{position:relative;width:100%;height:100%}.monaco-inputbox>.ibwrapper>.input{display:inline-block;box-sizing:border-box;width:100%;height:100%;line-height:inherit;border:none;font-family:inherit;font-size:inherit;resize:none;color:inherit}.monaco-inputbox>.ibwrapper>input{text-overflow:ellipsis}.monaco-inputbox>.ibwrapper>textarea.input{display:block;scrollbar-width:none;outline:none}.monaco-inputbox>.ibwrapper>textarea.input::-webkit-scrollbar{display:none}.monaco-inputbox>.ibwrapper>textarea.input.empty{white-space:nowrap}.monaco-inputbox>.ibwrapper>.mirror{position:absolute;display:inline-block;width:100%;top:0;left:0;box-sizing:border-box;white-space:pre-wrap;visibility:hidden;word-wrap:break-word}.monaco-inputbox-container{text-align:right}.monaco-inputbox-container .monaco-inputbox-message{display:inline-block;overflow:hidden;text-align:left;width:100%;box-sizing:border-box;padding:.4em;font-size:12px;line-height:17px;margin-top:-1px;word-wrap:break-word}.monaco-inputbox .monaco-action-bar{position:absolute;right:2px;top:4px}.monaco-inputbox .monaco-action-bar .action-item{margin-left:2px}.monaco-inputbox .monaco-action-bar .action-item .codicon{background-repeat:no-repeat;width:16px;height:16px}.monaco-findInput{position:relative}.monaco-findInput .monaco-inputbox{font-size:13px;width:100%}.monaco-findInput>.controls{position:absolute;top:3px;right:2px}.vs .monaco-findInput.disabled{background-color:#e1e1e1}.vs-dark .monaco-findInput.disabled{background-color:#333}.monaco-findInput.highlight-0 .controls,.hc-light .monaco-findInput.highlight-0 .controls{animation:monaco-findInput-highlight-0 .1s linear 0s}.monaco-findInput.highlight-1 .controls,.hc-light .monaco-findInput.highlight-1 .controls{animation:monaco-findInput-highlight-1 .1s linear 0s}.hc-black .monaco-findInput.highlight-0 .controls,.vs-dark .monaco-findInput.highlight-0 .controls{animation:monaco-findInput-highlight-dark-0 .1s linear 0s}.hc-black .monaco-findInput.highlight-1 .controls,.vs-dark .monaco-findInput.highlight-1 .controls{animation:monaco-findInput-highlight-dark-1 .1s linear 0s}@keyframes monaco-findInput-highlight-0{0%{background:#fdff00cc}to{background:transparent}}@keyframes monaco-findInput-highlight-1{0%{background:#fdff00cc}99%{background:transparent}}@keyframes monaco-findInput-highlight-dark-0{0%{background:#ffffff70}to{background:transparent}}@keyframes monaco-findInput-highlight-dark-1{0%{background:#ffffff70}99%{background:transparent}}.monaco-tl-row{display:flex;height:100%;align-items:center;position:relative}.monaco-tl-row.disabled{cursor:default}.monaco-tl-indent{height:100%;position:absolute;top:0;left:16px;pointer-events:none}.hide-arrows .monaco-tl-indent{left:12px}.monaco-tl-indent>.indent-guide{display:inline-block;box-sizing:border-box;height:100%;border-left:1px solid transparent}.monaco-workbench:not(.reduce-motion) .monaco-tl-indent>.indent-guide{transition:border-color .1s linear}.monaco-tl-twistie,.monaco-tl-contents{height:100%}.monaco-tl-twistie{font-size:10px;text-align:right;padding-right:6px;flex-shrink:0;width:16px;display:flex!important;align-items:center;justify-content:center;transform:translate(3px)}.monaco-tl-contents{flex:1;overflow:hidden}.monaco-tl-twistie:before{border-radius:20px}.monaco-tl-twistie.collapsed:before{transform:rotate(-90deg)}.monaco-tl-twistie.codicon-tree-item-loading:before{animation:codicon-spin 1.25s steps(30) infinite}.monaco-tree-type-filter{position:absolute;top:0;display:flex;padding:3px;max-width:200px;z-index:100;margin:0 6px;border:1px solid var(--vscode-widget-border);border-bottom-left-radius:4px;border-bottom-right-radius:4px}.monaco-workbench:not(.reduce-motion) .monaco-tree-type-filter{transition:top .3s}.monaco-tree-type-filter.disabled{top:-40px!important}.monaco-tree-type-filter-grab{display:flex!important;align-items:center;justify-content:center;cursor:grab;margin-right:2px}.monaco-tree-type-filter-grab.grabbing{cursor:grabbing}.monaco-tree-type-filter-input{flex:1}.monaco-tree-type-filter-input .monaco-inputbox{height:23px}.monaco-tree-type-filter-input .monaco-inputbox>.ibwrapper>.input,.monaco-tree-type-filter-input .monaco-inputbox>.ibwrapper>.mirror{padding:2px 4px}.monaco-tree-type-filter-input .monaco-findInput>.controls{top:2px}.monaco-tree-type-filter-actionbar{margin-left:4px}.monaco-tree-type-filter-actionbar .monaco-action-bar .action-label{padding:2px}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container{position:absolute;top:0;left:0;width:100%;height:0;z-index:13;background-color:var(--vscode-sideBar-background)}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row.monaco-list-row{position:absolute;width:100%;opacity:1!important;overflow:hidden;background-color:var(--vscode-sideBar-background)}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row:hover{background-color:var(--vscode-list-hoverBackground)!important;cursor:pointer}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container.empty,.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container.empty .monaco-tree-sticky-container-shadow{display:none}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-container-shadow{position:absolute;bottom:-3px;left:0;height:3px;width:100%;box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px inset}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container[tabindex="0"]:focus{outline:none}.monaco-icon-label{display:flex;overflow:hidden;text-overflow:ellipsis}.monaco-icon-label:before{background-size:16px;background-position:left center;background-repeat:no-repeat;padding-right:6px;width:16px;height:22px;line-height:inherit!important;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top;flex-shrink:0}.monaco-icon-label-container.disabled{color:var(--vscode-disabledForeground)}.monaco-icon-label>.monaco-icon-label-container{min-width:0;overflow:hidden;text-overflow:ellipsis;flex:1}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-name-container>.label-name{color:inherit;white-space:pre}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-name-container>.label-name>.label-separator{margin:0 2px;opacity:.5}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-suffix-container>.label-suffix{opacity:.7;white-space:pre}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{opacity:.7;margin-left:.5em;font-size:.9em;white-space:pre}.monaco-icon-label.nowrap>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{white-space:nowrap}.vs .monaco-icon-label>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{opacity:.95}.monaco-icon-label.italic>.monaco-icon-label-container>.monaco-icon-name-container>.label-name,.monaco-icon-label.italic>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{font-style:italic}.monaco-icon-label.deprecated{text-decoration:line-through;opacity:.66}.monaco-icon-label.italic:after{font-style:italic}.monaco-icon-label.strikethrough>.monaco-icon-label-container>.monaco-icon-name-container>.label-name,.monaco-icon-label.strikethrough>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{text-decoration:line-through}.monaco-icon-label:after{opacity:.75;font-size:90%;font-weight:600;margin:auto 16px 0 5px;text-align:center}.monaco-list:focus .selected .monaco-icon-label,.monaco-list:focus .selected .monaco-icon-label:after{color:inherit!important}.monaco-list-row.focused.selected .label-description,.monaco-list-row.selected .label-description{opacity:.8}.monaco-keybinding{display:flex;align-items:center;line-height:10px}.monaco-keybinding>.monaco-keybinding-key{display:inline-block;border-style:solid;border-width:1px;border-radius:3px;vertical-align:middle;font-size:11px;padding:3px 5px;margin:0 2px}.monaco-keybinding>.monaco-keybinding-key:first-child{margin-left:0}.monaco-keybinding>.monaco-keybinding-key:last-child{margin-right:0}.monaco-keybinding>.monaco-keybinding-key-separator{display:inline-block}.monaco-keybinding>.monaco-keybinding-key-chord-separator{width:6px}.monaco-text-button{box-sizing:border-box;display:flex;width:100%;padding:4px;border-radius:2px;text-align:center;cursor:pointer;justify-content:center;align-items:center;border:1px solid var(--vscode-button-border, transparent);line-height:18px}.monaco-text-button:focus{outline-offset:2px!important}.monaco-text-button:hover{text-decoration:none!important}.monaco-button.disabled:focus,.monaco-button.disabled{opacity:.4!important;cursor:default}.monaco-text-button .codicon{margin:0 .2em;color:inherit!important}.monaco-text-button.monaco-text-button-with-short-label{flex-direction:row;flex-wrap:wrap;padding:0 4px;overflow:hidden;height:28px}.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label{flex-basis:100%}.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label-short{flex-grow:1;width:0;overflow:hidden}.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label,.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label-short{display:flex;justify-content:center;align-items:center;font-weight:400;font-style:inherit;padding:4px 0}.monaco-button-dropdown{display:flex;cursor:pointer}.monaco-button-dropdown.disabled{cursor:default}.monaco-button-dropdown>.monaco-button:focus{outline-offset:-1px!important}.monaco-button-dropdown.disabled>.monaco-button.disabled,.monaco-button-dropdown.disabled>.monaco-button.disabled:focus,.monaco-button-dropdown.disabled>.monaco-button-dropdown-separator{opacity:.4!important}.monaco-button-dropdown>.monaco-button.monaco-text-button{border-right-width:0!important}.monaco-button-dropdown .monaco-button-dropdown-separator{padding:4px 0;cursor:default}.monaco-button-dropdown .monaco-button-dropdown-separator>div{height:100%;width:1px}.monaco-button-dropdown>.monaco-button.monaco-dropdown-button{border:1px solid var(--vscode-button-border, transparent);border-left-width:0!important;border-radius:0 2px 2px 0;display:flex;align-items:center}.monaco-button-dropdown>.monaco-button.monaco-text-button{border-radius:2px 0 0 2px}.monaco-description-button{display:flex;flex-direction:column;align-items:center;margin:4px 5px}.monaco-description-button .monaco-button-description{font-style:italic;font-size:11px;padding:4px 20px}.monaco-description-button .monaco-button-label,.monaco-description-button .monaco-button-description{display:flex;justify-content:center;align-items:center}.monaco-description-button .monaco-button-label>.codicon,.monaco-description-button .monaco-button-description>.codicon{margin:0 .2em;color:inherit!important}.monaco-button.default-colors,.monaco-button-dropdown.default-colors>.monaco-button{color:var(--vscode-button-foreground);background-color:var(--vscode-button-background)}.monaco-button.default-colors:hover,.monaco-button-dropdown.default-colors>.monaco-button:hover{background-color:var(--vscode-button-hoverBackground)}.monaco-button.default-colors.secondary,.monaco-button-dropdown.default-colors>.monaco-button.secondary{color:var(--vscode-button-secondaryForeground);background-color:var(--vscode-button-secondaryBackground)}.monaco-button.default-colors.secondary:hover,.monaco-button-dropdown.default-colors>.monaco-button.secondary:hover{background-color:var(--vscode-button-secondaryHoverBackground)}.monaco-button-dropdown.default-colors .monaco-button-dropdown-separator{background-color:var(--vscode-button-background);border-top:1px solid var(--vscode-button-border);border-bottom:1px solid var(--vscode-button-border)}.monaco-button-dropdown.default-colors .monaco-button.secondary+.monaco-button-dropdown-separator{background-color:var(--vscode-button-secondaryBackground)}.monaco-button-dropdown.default-colors .monaco-button-dropdown-separator>div{background-color:var(--vscode-button-separator)}.monaco-count-badge{padding:3px 6px;border-radius:11px;font-size:11px;min-width:18px;min-height:18px;line-height:11px;font-weight:400;text-align:center;display:inline-block;box-sizing:border-box}.monaco-count-badge.long{padding:2px 3px;border-radius:2px;min-height:auto;line-height:normal}.monaco-progress-container{width:100%;height:2px;overflow:hidden}.monaco-progress-container .progress-bit{width:2%;height:2px;position:absolute;left:0;display:none}.monaco-progress-container.active .progress-bit{display:inherit}.monaco-progress-container.discrete .progress-bit{left:0;transition:width .1s linear}.monaco-progress-container.discrete.done .progress-bit{width:100%}.monaco-progress-container.infinite .progress-bit{animation-name:progress;animation-duration:4s;animation-iteration-count:infinite;transform:translateZ(0);animation-timing-function:linear}.monaco-progress-container.infinite.infinite-long-running .progress-bit{animation-timing-function:steps(100)}@keyframes progress{0%{transform:translate(0) scaleX(1)}50%{transform:translate(2500%) scaleX(3)}to{transform:translate(4900%) scaleX(1)}}.monaco-editor .diff-hidden-lines-widget{width:100%}.monaco-editor .diff-hidden-lines{height:0px;transform:translateY(-10px);font-size:13px;line-height:14px}.monaco-editor .diff-hidden-lines:not(.dragging) .top:hover,.monaco-editor .diff-hidden-lines:not(.dragging) .bottom:hover,.monaco-editor .diff-hidden-lines .top.dragging,.monaco-editor .diff-hidden-lines .bottom.dragging{background-color:var(--vscode-focusBorder)}.monaco-editor .diff-hidden-lines .top,.monaco-editor .diff-hidden-lines .bottom{transition:background-color .1s ease-out;height:4px;background-color:transparent;background-clip:padding-box;border-bottom:2px solid transparent;border-top:4px solid transparent}.monaco-editor.draggingUnchangedRegion.canMoveTop:not(.canMoveBottom) *,.monaco-editor .diff-hidden-lines .top.canMoveTop:not(.canMoveBottom),.monaco-editor .diff-hidden-lines .bottom.canMoveTop:not(.canMoveBottom){cursor:n-resize!important}.monaco-editor.draggingUnchangedRegion:not(.canMoveTop).canMoveBottom *,.monaco-editor .diff-hidden-lines .top:not(.canMoveTop).canMoveBottom,.monaco-editor .diff-hidden-lines .bottom:not(.canMoveTop).canMoveBottom{cursor:s-resize!important}.monaco-editor.draggingUnchangedRegion.canMoveTop.canMoveBottom *,.monaco-editor .diff-hidden-lines .top.canMoveTop.canMoveBottom,.monaco-editor .diff-hidden-lines .bottom.canMoveTop.canMoveBottom{cursor:ns-resize!important}.monaco-editor .diff-hidden-lines .top{transform:translateY(4px)}.monaco-editor .diff-hidden-lines .bottom{transform:translateY(-6px)}.monaco-editor .diff-unchanged-lines{background:var(--vscode-diffEditor-unchangedCodeBackground)}.monaco-editor .noModificationsOverlay{z-index:1;background:var(--vscode-editor-background);display:flex;justify-content:center;align-items:center}.monaco-editor .diff-hidden-lines .center{background:var(--vscode-diffEditor-unchangedRegionBackground);color:var(--vscode-diffEditor-unchangedRegionForeground);overflow:hidden;display:block;text-overflow:ellipsis;white-space:nowrap;height:24px;box-shadow:inset 0 -5px 5px -7px var(--vscode-diffEditor-unchangedRegionShadow),inset 0 5px 5px -7px var(--vscode-diffEditor-unchangedRegionShadow)}.monaco-editor .diff-hidden-lines .center span.codicon{vertical-align:middle}.monaco-editor .diff-hidden-lines .center a:hover .codicon{cursor:pointer;color:var(--vscode-editorLink-activeForeground)!important}.monaco-editor .diff-hidden-lines div.breadcrumb-item{cursor:pointer}.monaco-editor .diff-hidden-lines div.breadcrumb-item:hover{color:var(--vscode-editorLink-activeForeground)}.monaco-editor .movedOriginal,.monaco-editor .movedModified{border:2px solid var(--vscode-diffEditor-move-border)}.monaco-editor .movedOriginal.currentMove,.monaco-editor .movedModified.currentMove{border:2px solid var(--vscode-diffEditor-moveActive-border)}.monaco-diff-editor .moved-blocks-lines path.currentMove{stroke:var(--vscode-diffEditor-moveActive-border)}.monaco-diff-editor .moved-blocks-lines path{pointer-events:visiblestroke}.monaco-diff-editor .moved-blocks-lines .arrow{fill:var(--vscode-diffEditor-move-border)}.monaco-diff-editor .moved-blocks-lines .arrow.currentMove{fill:var(--vscode-diffEditor-moveActive-border)}.monaco-diff-editor .moved-blocks-lines .arrow-rectangle{fill:var(--vscode-editor-background)}.monaco-diff-editor .moved-blocks-lines{position:absolute;pointer-events:none}.monaco-diff-editor .moved-blocks-lines path{fill:none;stroke:var(--vscode-diffEditor-move-border);stroke-width:2}.monaco-editor .char-delete.diff-range-empty{margin-left:-1px;border-left:solid var(--vscode-diffEditor-removedTextBackground) 3px}.monaco-editor .char-insert.diff-range-empty{border-left:solid var(--vscode-diffEditor-insertedTextBackground) 3px}.monaco-editor .fold-unchanged{cursor:pointer}.monaco-diff-editor .diff-moved-code-block{display:flex;justify-content:flex-end;margin-top:-4px}.monaco-diff-editor .diff-moved-code-block .action-bar .action-label.codicon{width:12px;height:12px;font-size:12px}.monaco-diff-editor .diffOverview{z-index:9}.monaco-diff-editor .diffOverview .diffViewport{z-index:10}.monaco-diff-editor.vs .diffOverview{background:#00000008}.monaco-diff-editor.vs-dark .diffOverview{background:#ffffff03}.monaco-scrollable-element.modified-in-monaco-diff-editor.vs .scrollbar,.monaco-scrollable-element.modified-in-monaco-diff-editor.vs-dark .scrollbar{background:#0000}.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-black .scrollbar,.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-light .scrollbar{background:none}.monaco-scrollable-element.modified-in-monaco-diff-editor .slider{z-index:10}.modified-in-monaco-diff-editor .slider.active{background:#ababab66}.modified-in-monaco-diff-editor.hc-black .slider.active,.modified-in-monaco-diff-editor.hc-light .slider.active{background:none}.monaco-editor .insert-sign,.monaco-diff-editor .insert-sign,.monaco-editor .delete-sign,.monaco-diff-editor .delete-sign{font-size:11px!important;opacity:.7!important;display:flex!important;align-items:center}.monaco-editor.hc-black .insert-sign,.monaco-diff-editor.hc-black .insert-sign,.monaco-editor.hc-black .delete-sign,.monaco-diff-editor.hc-black .delete-sign,.monaco-editor.hc-light .insert-sign,.monaco-diff-editor.hc-light .insert-sign,.monaco-editor.hc-light .delete-sign,.monaco-diff-editor.hc-light .delete-sign{opacity:1}.monaco-editor .inline-deleted-margin-view-zone,.monaco-editor .inline-added-margin-view-zone{text-align:right}.monaco-editor .arrow-revert-change{z-index:10;position:absolute}.monaco-editor .arrow-revert-change:hover{cursor:pointer}.monaco-editor .view-zones .view-lines .view-line span{display:inline-block}.monaco-editor .margin-view-zones .lightbulb-glyph:hover{cursor:pointer}.monaco-editor .char-insert,.monaco-diff-editor .char-insert{background-color:var(--vscode-diffEditor-insertedTextBackground)}.monaco-editor .line-insert,.monaco-diff-editor .line-insert{background-color:var(--vscode-diffEditor-insertedLineBackground, var(--vscode-diffEditor-insertedTextBackground))}.monaco-editor .line-insert,.monaco-editor .char-insert{box-sizing:border-box;border:1px solid var(--vscode-diffEditor-insertedTextBorder)}.monaco-editor.hc-black .line-insert,.monaco-editor.hc-light .line-insert,.monaco-editor.hc-black .char-insert,.monaco-editor.hc-light .char-insert{border-style:dashed}.monaco-editor .line-delete,.monaco-editor .char-delete{box-sizing:border-box;border:1px solid var(--vscode-diffEditor-removedTextBorder)}.monaco-editor.hc-black .line-delete,.monaco-editor.hc-light .line-delete,.monaco-editor.hc-black .char-delete,.monaco-editor.hc-light .char-delete{border-style:dashed}.monaco-editor .inline-added-margin-view-zone,.monaco-editor .gutter-insert,.monaco-diff-editor .gutter-insert{background-color:var(--vscode-diffEditorGutter-insertedLineBackground, var(--vscode-diffEditor-insertedLineBackground), var(--vscode-diffEditor-insertedTextBackground))}.monaco-editor .char-delete,.monaco-diff-editor .char-delete{background-color:var(--vscode-diffEditor-removedTextBackground)}.monaco-editor .line-delete,.monaco-diff-editor .line-delete{background-color:var(--vscode-diffEditor-removedLineBackground, var(--vscode-diffEditor-removedTextBackground))}.monaco-editor .inline-deleted-margin-view-zone,.monaco-editor .gutter-delete,.monaco-diff-editor .gutter-delete{background-color:var(--vscode-diffEditorGutter-removedLineBackground, var(--vscode-diffEditor-removedLineBackground), var(--vscode-diffEditor-removedTextBackground))}.monaco-diff-editor.side-by-side .editor.modified{box-shadow:-6px 0 5px -5px var(--vscode-scrollbar-shadow);border-left:1px solid var(--vscode-diffEditor-border)}.monaco-diff-editor.side-by-side .editor.original{box-shadow:6px 0 5px -5px var(--vscode-scrollbar-shadow);border-right:1px solid var(--vscode-diffEditor-border)}.monaco-diff-editor .diffViewport{background:var(--vscode-scrollbarSlider-background)}.monaco-diff-editor .diffViewport:hover{background:var(--vscode-scrollbarSlider-hoverBackground)}.monaco-diff-editor .diffViewport:active{background:var(--vscode-scrollbarSlider-activeBackground)}.monaco-editor .diagonal-fill{background-image:linear-gradient(-45deg,var(--vscode-diffEditor-diagonalFill) 12.5%,#0000 12.5%,#0000 50%,var(--vscode-diffEditor-diagonalFill) 50%,var(--vscode-diffEditor-diagonalFill) 62.5%,#0000 62.5%,#0000 100%);background-size:8px 8px}.monaco-diff-editor .gutter{position:relative;overflow:hidden;flex-shrink:0;flex-grow:0}.monaco-diff-editor .gutter .gutterItem{opacity:0;transition:opacity .7s}.monaco-diff-editor .gutter .gutterItem.showAlways{opacity:1;transition:none}.monaco-diff-editor .gutter .gutterItem.noTransition{transition:none}.monaco-diff-editor .gutter:hover .gutterItem{opacity:1;transition:opacity .1s ease-in-out}.monaco-diff-editor .gutter .gutterItem .background{position:absolute;height:100%;left:50%;width:1px;border-left:2px var(--vscode-menu-border) solid}.monaco-diff-editor .gutter .gutterItem .buttons{position:absolute;width:100%;display:flex;justify-content:center;align-items:center}.monaco-diff-editor .gutter .gutterItem .buttons .monaco-toolbar{height:fit-content}.monaco-diff-editor .gutter .gutterItem .buttons .monaco-toolbar .monaco-action-bar{line-height:1}.monaco-diff-editor .gutter .gutterItem .buttons .monaco-toolbar .monaco-action-bar .actions-container{width:fit-content;border-radius:4px;border:1px var(--vscode-menu-border) solid;background:var(--vscode-editor-background)}.monaco-diff-editor .gutter .gutterItem .buttons .monaco-toolbar .monaco-action-bar .actions-container .action-item:hover{background:var(--vscode-toolbar-hoverBackground)}.monaco-diff-editor .gutter .gutterItem .buttons .monaco-toolbar .monaco-action-bar .actions-container .action-item .action-label{padding:.5px 1px}.monaco-component.diff-review{user-select:none;-webkit-user-select:none;z-index:99}.monaco-diff-editor .diff-review{position:absolute}.monaco-component.diff-review .diff-review-line-number{text-align:right;display:inline-block;color:var(--vscode-editorLineNumber-foreground)}.monaco-component.diff-review .diff-review-summary{padding-left:10px}.monaco-component.diff-review .diff-review-shadow{position:absolute;box-shadow:var(--vscode-scrollbar-shadow) 0 -6px 6px -6px inset}.monaco-component.diff-review .diff-review-row{white-space:pre}.monaco-component.diff-review .diff-review-table{display:table;min-width:100%}.monaco-component.diff-review .diff-review-row{display:table-row;width:100%}.monaco-component.diff-review .diff-review-spacer{display:inline-block;width:10px;vertical-align:middle}.monaco-component.diff-review .diff-review-spacer>.codicon{font-size:9px!important}.monaco-component.diff-review .diff-review-actions{display:inline-block;position:absolute;right:10px;top:2px;z-index:100}.monaco-component.diff-review .diff-review-actions .action-label{width:16px;height:16px;margin:2px 0}.monaco-component.diff-review .revertButton{cursor:pointer}.monaco-toolbar{height:100%}.monaco-toolbar .toolbar-toggle-more{display:inline-block;padding:0}.monaco-component.multiDiffEditor{background:var(--vscode-multiDiffEditor-background);overflow-y:hidden}.monaco-component.multiDiffEditor .focused{--vscode-multiDiffEditor-border: var(--vscode-focusBorder)}.monaco-component.multiDiffEditor .multiDiffEntry{display:flex;flex-direction:column;flex:1;overflow:hidden}.monaco-component.multiDiffEditor .multiDiffEntry .collapse-button{margin:0 5px;cursor:pointer}.monaco-component.multiDiffEditor .multiDiffEntry .collapse-button a{display:block}.monaco-component.multiDiffEditor .multiDiffEntry .header{z-index:1000;background:var(--vscode-editor-background)}.monaco-component.multiDiffEditor .multiDiffEntry .header:not(.collapsed) .header-content{border-bottom:1px solid var(--vscode-sideBarSectionHeader-border)}.monaco-component.multiDiffEditor .multiDiffEntry .header .header-content{margin:8px 8px 0;padding:4px 5px;border-top:1px solid var(--vscode-multiDiffEditor-border);border-right:1px solid var(--vscode-multiDiffEditor-border);border-left:1px solid var(--vscode-multiDiffEditor-border);border-top-left-radius:2px;border-top-right-radius:2px;display:flex;align-items:center;color:var(--vscode-foreground);background:var(--vscode-multiDiffEditor-headerBackground)}.monaco-component.multiDiffEditor .multiDiffEntry .header .header-content.shadow{box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px}.monaco-component.multiDiffEditor .multiDiffEntry .header .header-content .file-path{display:flex;flex:1;min-width:0}.monaco-component.multiDiffEditor .multiDiffEntry .header .header-content .file-path .title{font-size:14px;line-height:22px}.monaco-component.multiDiffEditor .multiDiffEntry .header .header-content .file-path .title.original{flex:1;min-width:0;text-overflow:ellipsis}.monaco-component.multiDiffEditor .multiDiffEntry .header .header-content .file-path .status{font-weight:600;opacity:.75;margin:0 10px;line-height:22px}.monaco-component.multiDiffEditor .multiDiffEntry .header .header-content .actions{padding:0 8px}.monaco-component.multiDiffEditor .multiDiffEntry .editorParent{flex:1;display:flex;flex-direction:column;margin-right:8px;margin-left:8px;border-right:1px solid var(--vscode-multiDiffEditor-border);border-left:1px solid var(--vscode-multiDiffEditor-border);border-bottom:1px solid var(--vscode-multiDiffEditor-border);border-radius:2px;overflow:hidden}.monaco-component.multiDiffEditor .multiDiffEntry .editorContainer{flex:1}.monaco-editor .selection-anchor{background-color:#007acc;width:2px!important}.monaco-editor .bracket-match{box-sizing:border-box;background-color:var(--vscode-editorBracketMatch-background);border:1px solid var(--vscode-editorBracketMatch-border)}.inline-editor-progress-decoration{display:inline-block;width:1em;height:1em}.inline-progress-widget{display:flex!important;justify-content:center;align-items:center}.inline-progress-widget .icon{font-size:80%!important}.inline-progress-widget:hover .icon{font-size:90%!important;animation:none}.inline-progress-widget:hover .icon:before{content:""}.monaco-editor .monaco-editor-overlaymessage{padding-bottom:8px;z-index:10000}.monaco-editor .monaco-editor-overlaymessage.below{padding-bottom:0;padding-top:8px;z-index:10000}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.monaco-editor .monaco-editor-overlaymessage.fadeIn{animation:fadeIn .15s ease-out}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.monaco-editor .monaco-editor-overlaymessage.fadeOut{animation:fadeOut .1s ease-out}.monaco-editor .monaco-editor-overlaymessage .message{padding:2px 4px;color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-inputValidation-infoBorder);border-radius:3px}.monaco-editor .monaco-editor-overlaymessage .message p{margin-block:0px}.monaco-editor .monaco-editor-overlaymessage .message a{color:var(--vscode-textLink-foreground)}.monaco-editor .monaco-editor-overlaymessage .message a:hover{color:var(--vscode-textLink-activeForeground)}.monaco-editor.hc-black .monaco-editor-overlaymessage .message,.monaco-editor.hc-light .monaco-editor-overlaymessage .message{border-width:2px}.monaco-editor .monaco-editor-overlaymessage .anchor{width:0!important;height:0!important;border-color:transparent;border-style:solid;z-index:1000;border-width:8px;position:absolute;left:2px}.monaco-editor .monaco-editor-overlaymessage .anchor.top{border-bottom-color:var(--vscode-inputValidation-infoBorder)}.monaco-editor .monaco-editor-overlaymessage .anchor.below{border-top-color:var(--vscode-inputValidation-infoBorder)}.monaco-editor .monaco-editor-overlaymessage:not(.below) .anchor.top,.monaco-editor .monaco-editor-overlaymessage.below .anchor.below{display:none}.monaco-editor .monaco-editor-overlaymessage.below .anchor.top{display:inherit;top:-8px}.post-edit-widget{box-shadow:0 0 8px 2px var(--vscode-widget-shadow);border:1px solid var(--vscode-widget-border, transparent);border-radius:4px;background-color:var(--vscode-editorWidget-background);overflow:hidden}.post-edit-widget .monaco-button{padding:2px;border:none;border-radius:0}.post-edit-widget .monaco-button:hover{background-color:var(--vscode-button-secondaryHoverBackground)!important}.post-edit-widget .monaco-button .codicon{margin:0}@font-face{font-family:codicon;font-display:block;src:url(data:font/ttf;base64,AAEAAAALAIAAAwAwR1NVQiCLJXoAAAE4AAAAVE9TLzI3T0tHAAABjAAAAGBjbWFwO462kQAACRgAABq0Z2x5ZkExNwYAACdkAAD1iGhlYWRYl6BTAAAA4AAAADZoaGVhAlsC9gAAALwAAAAkaG10eBi9//oAAAHsAAAHLGxvY2Ebh1ieAAAjzAAAA5htYXhwAuwBgQAAARgAAAAgbmFtZZP3uUsAARzsAAAB+HBvc3RMW9BGAAEe5AAAGP8AAQAAASwAAAAAASz////+AS4AAQAAAAAAAAAAAAAAAAAAAcsAAQAAAAEAANAcvqJfDzz1AAsBLAAAAAB8JbCAAAAAAHwlsID////9AS4BLQAAAAgAAgAAAAAAAAABAAABywF1ABcAAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKADAAPgACREZMVAAObGF0bgAaAAQAAAAAAAAAAQAAAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAQBKwGQAAUAAADLANIAAAAqAMsA0gAAAJAADgBNAAACAAUDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBmRWQAwOpg8QEBLAAAABsBRwADAAAAAQAAAAAAAAAAAAAAAAACAAAAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASz//wEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEs//8BLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASz//wEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLP//ASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASz//wEsAAABLAAAASwAAAEs//8BLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAAAAABQAAAAMAAAAsAAAABAAABSAAAQAAAAAEGgADAAEAAAAsAAMACgAABSAABAPuAAAAEgAQAAMAAuqI6ozqx+rJ6wnrTuwx8QH//wAA6mDqiuqP6snqzOsL61DxAf//AAAAAAAAAAAAAAAAAAAAAAABABIAYgBmANYA1gFQAdYDmAAAAAMA7wFHAUQAswE0AZIBIgFrAQwBcQBNAcABXQFnAWYAkAA1AS0AhQDNAPwAQAGQAHgAFgG7AJoAhwFAARsBEgETAaUAxwClALsBnQF9AIoBjgF2AYUBgwF3AYYBjQGIAYEAvQF8AYoAAgAEAAUACgALAAwADQAOAA8AEAASABoAHAAdAB4AWwBcAF0AXgBhAGIAIQAiACMAJAAlACgAKgArACwALQAuAC8AMQAyADMANAA7ADgAPAA9AD4APwBBAEIARQBHAEgASgBUAFUAVgBXAGYAaABqAG0AcQBzAHQAdQB2AHcAeQB6AHsAfAB9AH4AgACBAIMAhACGAIgAiwCOAI8AkgCTAJQAlQCWAJcAmACZAJsAnQCeAJ8AoAChAKIApACnAKgAqQCTAKoAqwCtALcAuAC8AL4AwgDDAMYAyADJAMoAywDRANIA0wDUANUA1gDXANgA7QDwAPEA9AD3APgA+QD6AP4A/wEEAQUBBgELAQ0BDgEPAREBFQEWARkBGgEdAR4BJQEpASoBKwEsAS4BLwEwATEBMgEzATgBOQE6ATsBPAE9AT4BPwFBAUMBRQFGAUgBSQFLAUwBTQFOAU8BVgFXAVgBWQFaAVwBYQFiAWMBZQFoAWoBbgFvAXABcgFzAXgBeQF6AXsBfgF/AYABggGEAYcBiQGLAZQBlQGeAZ8BoQGjAaQBpgGnAagBqQGqAa4BsAGxAbIBtQG2AbcBuQG6AcEBwgHDAcQBxQHJAcoA8gDzAPUA9gBfAGAAbwA5AHAAYwGMAG4AcgBsAFoAJgAnAQcAjACRAMQBrwABABcAZADsARwBUgGPAScAuQFgAV8BIAF0ASgBNgBZAbgAQwEIAI0AvwD9ARgBNwApASYBHwA2ADcASQGRAbMBrQGrAawArwFQAVMBFwBrAcYByAHHAZcBmAGZAZoBmwGcAZYAEQBSASEAnAG/AGkAzwDbANoA2QBQAE8ATgAUANAArgCwAFgAZwFVAKMAZQAVAMAAwQEkAB8AIAD7ABMBtAEUAOsA3ADdAOIA4ADhAOQA5QDnAOkA6gDfAN4BkwDMATUAiQAGAAcACAAJAOgA4wDmABsAxQEDAQAAOgAZABgATACxALIBWwBLAV4BbQDOAQoBoAGiAEYBaQCmAbwAMAEjARABCQFCAFEA7gFKAWwAggB/AXUBZAC2ALQAtQG+Ab0ARAFUAVEAUwC6AQIBAQCsAAABBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAABWUAAAAAAAAAcsAAOpgAADqYAAAAAMAAOphAADqYQAAAO8AAOpiAADqYgAAAUcAAOpjAADqYwAAAUQAAOpkAADqZAAAALMAAOplAADqZQAAATQAAOpmAADqZgAAAZIAAOpnAADqZwAAASIAAOpoAADqaAAAAWsAAOppAADqaQAAAQwAAOpqAADqagAAAXEAAOprAADqawAAAE0AAOpsAADqbAAAAcAAAOptAADqbQAAAV0AAOpuAADqbgAAAWcAAOpvAADqbwAAAWYAAOpwAADqcAAAAJAAAOpxAADqcQAAADUAAOpyAADqcgAAAS0AAOpzAADqcwAAAIUAAOp0AADqdAAAAM0AAOp1AADqdQAAAPwAAOp2AADqdgAAAEAAAOp3AADqdwAAAZAAAOp4AADqeAAAAHgAAOp5AADqeQAAABYAAOp6AADqegAAAbsAAOp7AADqewAAAJoAAOp8AADqfAAAAIcAAOp9AADqfQAAAUAAAOp+AADqfgAAARsAAOp/AADqfwAAARIAAOqAAADqgAAAARMAAOqBAADqgQAAAaUAAOqCAADqggAAAMcAAOqDAADqgwAAAKUAAOqEAADqhAAAALsAAOqFAADqhQAAAZ0AAOqGAADqhgAAAX0AAOqHAADqhwAAAIoAAOqIAADqiAAAAY4AAOqKAADqigAAAXYAAOqLAADqiwAAAYUAAOqMAADqjAAAAYMAAOqPAADqjwAAAXcAAOqQAADqkAAAAYYAAOqRAADqkQAAAY0AAOqSAADqkgAAAYgAAOqTAADqkwAAAYEAAOqUAADqlAAAAL0AAOqVAADqlQAAAXwAAOqWAADqlgAAAYoAAOqXAADqlwAAAAIAAOqYAADqmAAAAAQAAOqZAADqmQAAAAUAAOqaAADqmgAAAAoAAOqbAADqmwAAAAsAAOqcAADqnAAAAAwAAOqdAADqnQAAAA0AAOqeAADqngAAAA4AAOqfAADqnwAAAA8AAOqgAADqoAAAABAAAOqhAADqoQAAABIAAOqiAADqogAAABoAAOqjAADqowAAABwAAOqkAADqpAAAAB0AAOqlAADqpQAAAB4AAOqmAADqpgAAAFsAAOqnAADqpwAAAFwAAOqoAADqqAAAAF0AAOqpAADqqQAAAF4AAOqqAADqqgAAAGEAAOqrAADqqwAAAGIAAOqsAADqrAAAACEAAOqtAADqrQAAACIAAOquAADqrgAAACMAAOqvAADqrwAAACQAAOqwAADqsAAAACUAAOqxAADqsQAAACgAAOqyAADqsgAAACoAAOqzAADqswAAACsAAOq0AADqtAAAACwAAOq1AADqtQAAAC0AAOq2AADqtgAAAC4AAOq3AADqtwAAAC8AAOq4AADquAAAADEAAOq5AADquQAAADIAAOq6AADqugAAADMAAOq7AADquwAAADQAAOq8AADqvAAAADsAAOq9AADqvQAAADgAAOq+AADqvgAAADwAAOq/AADqvwAAAD0AAOrAAADqwAAAAD4AAOrBAADqwQAAAD8AAOrCAADqwgAAAEEAAOrDAADqwwAAAEIAAOrEAADqxAAAAEUAAOrFAADqxQAAAEcAAOrGAADqxgAAAEgAAOrHAADqxwAAAEoAAOrJAADqyQAAAFQAAOrMAADqzAAAAFUAAOrNAADqzQAAAFYAAOrOAADqzgAAAFcAAOrPAADqzwAAAGYAAOrQAADq0AAAAGgAAOrRAADq0QAAAGoAAOrSAADq0gAAAG0AAOrTAADq0wAAAHEAAOrUAADq1AAAAHMAAOrVAADq1QAAAHQAAOrWAADq1gAAAHUAAOrXAADq1wAAAHYAAOrYAADq2AAAAHcAAOrZAADq2QAAAHkAAOraAADq2gAAAHoAAOrbAADq2wAAAHsAAOrcAADq3AAAAHwAAOrdAADq3QAAAH0AAOreAADq3gAAAH4AAOrfAADq3wAAAIAAAOrgAADq4AAAAIEAAOrhAADq4QAAAIMAAOriAADq4gAAAIQAAOrjAADq4wAAAIYAAOrkAADq5AAAAIgAAOrlAADq5QAAAIsAAOrmAADq5gAAAI4AAOrnAADq5wAAAI8AAOroAADq6AAAAJIAAOrpAADq6QAAAJMAAOrqAADq6gAAAJQAAOrrAADq6wAAAJUAAOrsAADq7AAAAJYAAOrtAADq7QAAAJcAAOruAADq7gAAAJgAAOrvAADq7wAAAJkAAOrwAADq8AAAAJsAAOrxAADq8QAAAJ0AAOryAADq8gAAAJ4AAOrzAADq8wAAAJ8AAOr0AADq9AAAAKAAAOr1AADq9QAAAKEAAOr2AADq9gAAAKIAAOr3AADq9wAAAKQAAOr4AADq+AAAAKcAAOr5AADq+QAAAKgAAOr6AADq+gAAAKkAAOr7AADq+wAAAJMAAOr8AADq/AAAAKoAAOr9AADq/QAAAKsAAOr+AADq/gAAAK0AAOr/AADq/wAAALcAAOsAAADrAAAAALgAAOsBAADrAQAAALwAAOsCAADrAgAAAL4AAOsDAADrAwAAAMIAAOsEAADrBAAAAMMAAOsFAADrBQAAAMYAAOsGAADrBgAAAMgAAOsHAADrBwAAAMkAAOsIAADrCAAAAMoAAOsJAADrCQAAAMsAAOsLAADrCwAAANEAAOsMAADrDAAAANIAAOsNAADrDQAAANMAAOsOAADrDgAAANQAAOsPAADrDwAAANUAAOsQAADrEAAAANYAAOsRAADrEQAAANcAAOsSAADrEgAAANgAAOsTAADrEwAAAO0AAOsUAADrFAAAAPAAAOsVAADrFQAAAPEAAOsWAADrFgAAAPQAAOsXAADrFwAAAPcAAOsYAADrGAAAAPgAAOsZAADrGQAAAPkAAOsaAADrGgAAAPoAAOsbAADrGwAAAP4AAOscAADrHAAAAP8AAOsdAADrHQAAAQQAAOseAADrHgAAAQUAAOsfAADrHwAAAQYAAOsgAADrIAAAAQsAAOshAADrIQAAAQ0AAOsiAADrIgAAAQ4AAOsjAADrIwAAAQ8AAOskAADrJAAAAREAAOslAADrJQAAARUAAOsmAADrJgAAARYAAOsnAADrJwAAARkAAOsoAADrKAAAARoAAOspAADrKQAAAR0AAOsqAADrKgAAAR4AAOsrAADrKwAAASUAAOssAADrLAAAASkAAOstAADrLQAAASoAAOsuAADrLgAAASsAAOsvAADrLwAAASwAAOswAADrMAAAAS4AAOsxAADrMQAAAS8AAOsyAADrMgAAATAAAOszAADrMwAAATEAAOs0AADrNAAAATIAAOs1AADrNQAAATMAAOs2AADrNgAAATgAAOs3AADrNwAAATkAAOs4AADrOAAAAToAAOs5AADrOQAAATsAAOs6AADrOgAAATwAAOs7AADrOwAAAT0AAOs8AADrPAAAAT4AAOs9AADrPQAAAT8AAOs+AADrPgAAAUEAAOs/AADrPwAAAUMAAOtAAADrQAAAAUUAAOtBAADrQQAAAUYAAOtCAADrQgAAAUgAAOtDAADrQwAAAUkAAOtEAADrRAAAAUsAAOtFAADrRQAAAUwAAOtGAADrRgAAAU0AAOtHAADrRwAAAU4AAOtIAADrSAAAAU8AAOtJAADrSQAAAVYAAOtKAADrSgAAAVcAAOtLAADrSwAAAVgAAOtMAADrTAAAAVkAAOtNAADrTQAAAVoAAOtOAADrTgAAAVwAAOtQAADrUAAAAWEAAOtRAADrUQAAAWIAAOtSAADrUgAAAWMAAOtTAADrUwAAAWUAAOtUAADrVAAAAWgAAOtVAADrVQAAAWoAAOtWAADrVgAAAW4AAOtXAADrVwAAAW8AAOtYAADrWAAAAXAAAOtZAADrWQAAAXIAAOtaAADrWgAAAXMAAOtbAADrWwAAAXgAAOtcAADrXAAAAXkAAOtdAADrXQAAAXoAAOteAADrXgAAAXsAAOtfAADrXwAAAX4AAOtgAADrYAAAAX8AAOthAADrYQAAAYAAAOtiAADrYgAAAYIAAOtjAADrYwAAAYQAAOtkAADrZAAAAYcAAOtlAADrZQAAAYkAAOtmAADrZgAAAYsAAOtnAADrZwAAAZQAAOtoAADraAAAAZUAAOtpAADraQAAAZ4AAOtqAADragAAAZ8AAOtrAADrawAAAaEAAOtsAADrbAAAAaMAAOttAADrbQAAAaQAAOtuAADrbgAAAaYAAOtvAADrbwAAAacAAOtwAADrcAAAAagAAOtxAADrcQAAAakAAOtyAADrcgAAAaoAAOtzAADrcwAAAa4AAOt0AADrdAAAAbAAAOt1AADrdQAAAbEAAOt2AADrdgAAAbIAAOt3AADrdwAAAbUAAOt4AADreAAAAbYAAOt5AADreQAAAbcAAOt6AADregAAAbkAAOt7AADrewAAAboAAOt8AADrfAAAAcEAAOt9AADrfQAAAcIAAOt+AADrfgAAAcMAAOt/AADrfwAAAcQAAOuAAADrgAAAAcUAAOuBAADrgQAAAckAAOuCAADrggAAAcoAAOuDAADrgwAAAPIAAOuEAADrhAAAAPMAAOuFAADrhQAAAPUAAOuGAADrhgAAAPYAAOuHAADrhwAAAF8AAOuIAADriAAAAGAAAOuJAADriQAAAG8AAOuKAADrigAAADkAAOuLAADriwAAAHAAAOuMAADrjAAAAGMAAOuNAADrjQAAAYwAAOuOAADrjgAAAG4AAOuPAADrjwAAAHIAAOuQAADrkAAAAGwAAOuRAADrkQAAAFoAAOuSAADrkgAAACYAAOuTAADrkwAAACcAAOuUAADrlAAAAQcAAOuVAADrlQAAAIwAAOuWAADrlgAAAJEAAOuXAADrlwAAAMQAAOuYAADrmAAAAa8AAOuZAADrmQAAAAEAAOuaAADrmgAAABcAAOubAADrmwAAAGQAAOucAADrnAAAAOwAAOudAADrnQAAARwAAOueAADrngAAAVIAAOufAADrnwAAAY8AAOugAADroAAAAScAAOuhAADroQAAALkAAOuiAADrogAAAWAAAOujAADrowAAAV8AAOukAADrpAAAASAAAOulAADrpQAAAXQAAOumAADrpgAAASgAAOunAADrpwAAATYAAOuoAADrqAAAAFkAAOupAADrqQAAAbgAAOuqAADrqgAAAEMAAOurAADrqwAAAQgAAOusAADrrAAAAI0AAOutAADrrQAAAL8AAOuuAADrrgAAAP0AAOuvAADrrwAAARgAAOuwAADrsAAAATcAAOuxAADrsQAAACkAAOuyAADrsgAAASYAAOuzAADrswAAAR8AAOu0AADrtAAAADYAAOu1AADrtQAAADcAAOu2AADrtgAAAEkAAOu3AADrtwAAAZEAAOu4AADruAAAAbMAAOu5AADruQAAAa0AAOu6AADrugAAAasAAOu7AADruwAAAawAAOu8AADrvAAAAK8AAOu9AADrvQAAAVAAAOu+AADrvgAAAVMAAOu/AADrvwAAARcAAOvAAADrwAAAAGsAAOvBAADrwQAAAcYAAOvCAADrwgAAAcgAAOvDAADrwwAAAccAAOvEAADrxAAAAZcAAOvFAADrxQAAAZgAAOvGAADrxgAAAZkAAOvHAADrxwAAAZoAAOvIAADryAAAAZsAAOvJAADryQAAAZwAAOvKAADrygAAAZYAAOvLAADrywAAABEAAOvMAADrzAAAAFIAAOvNAADrzQAAASEAAOvOAADrzgAAAJwAAOvPAADrzwAAAb8AAOvQAADr0AAAAGkAAOvRAADr0QAAAM8AAOvSAADr0gAAANsAAOvTAADr0wAAANoAAOvUAADr1AAAANkAAOvVAADr1QAAAFAAAOvWAADr1gAAAE8AAOvXAADr1wAAAE4AAOvYAADr2AAAABQAAOvZAADr2QAAANAAAOvaAADr2gAAAK4AAOvbAADr2wAAALAAAOvcAADr3AAAAFgAAOvdAADr3QAAAGcAAOveAADr3gAAAVUAAOvfAADr3wAAAKMAAOvgAADr4AAAAGUAAOvhAADr4QAAABUAAOviAADr4gAAAMAAAOvjAADr4wAAAMEAAOvkAADr5AAAASQAAOvlAADr5QAAAB8AAOvmAADr5gAAACAAAOvnAADr5wAAAPsAAOvoAADr6AAAABMAAOvpAADr6QAAAbQAAOvqAADr6gAAARQAAOvrAADr6wAAAOsAAOvsAADr7AAAANwAAOvtAADr7QAAAN0AAOvuAADr7gAAAOIAAOvvAADr7wAAAOAAAOvwAADr8AAAAOEAAOvxAADr8QAAAOQAAOvyAADr8gAAAOUAAOvzAADr8wAAAOcAAOv0AADr9AAAAOkAAOv1AADr9QAAAOoAAOv2AADr9gAAAN8AAOv3AADr9wAAAN4AAOv4AADr+AAAAZMAAOv5AADr+QAAAMwAAOv6AADr+gAAATUAAOv7AADr+wAAAIkAAOv8AADr/AAAAAYAAOv9AADr/QAAAAcAAOv+AADr/gAAAAgAAOv/AADr/wAAAAkAAOwAAADsAAAAAOgAAOwBAADsAQAAAOMAAOwCAADsAgAAAOYAAOwDAADsAwAAABsAAOwEAADsBAAAAMUAAOwFAADsBQAAAQMAAOwGAADsBgAAAQAAAOwHAADsBwAAADoAAOwIAADsCAAAABkAAOwJAADsCQAAABgAAOwKAADsCgAAAEwAAOwLAADsCwAAALEAAOwMAADsDAAAALIAAOwNAADsDQAAAVsAAOwOAADsDgAAAEsAAOwPAADsDwAAAV4AAOwQAADsEAAAAW0AAOwRAADsEQAAAM4AAOwSAADsEgAAAQoAAOwTAADsEwAAAaAAAOwUAADsFAAAAaIAAOwVAADsFQAAAEYAAOwWAADsFgAAAWkAAOwXAADsFwAAAKYAAOwYAADsGAAAAbwAAOwZAADsGQAAADAAAOwaAADsGgAAASMAAOwbAADsGwAAARAAAOwcAADsHAAAAQkAAOwdAADsHQAAAUIAAOweAADsHgAAAFEAAOwfAADsHwAAAO4AAOwgAADsIAAAAUoAAOwhAADsIQAAAWwAAOwiAADsIgAAAIIAAOwjAADsIwAAAH8AAOwkAADsJAAAAXUAAOwlAADsJQAAAWQAAOwmAADsJgAAALYAAOwnAADsJwAAALQAAOwoAADsKAAAALUAAOwpAADsKQAAAb4AAOwqAADsKgAAAb0AAOwrAADsKwAAAEQAAOwsAADsLAAAAVQAAOwtAADsLQAAAVEAAOwuAADsLgAAAFMAAOwvAADsLwAAALoAAOwwAADsMAAAAQIAAOwxAADsMQAAAQEAAPEBAADxAQAAAKwAAAAAAJQA1ADoARQBMgFsAaYB4AIaAi4CQgJWAmoCfgKSAqYCyALeAvwDTgOoA9QEKgSQBOAFLgUuBVwFrgXKBmoHHgdeB+gIBghuCOAJmApMCpIKugrMCxQLJgs4C0oLXAukC74L0AvcC/oMJgxUDLgM7g0CDSoNUg3ADfIOQA56DpQO6g9ED4wPxg/qEHYQohDIESYRYBG0EeoSDhJ8EtoTJBPYE/wUUhR8FIgU+hVOFbgWGBZ6FrAW1BbsFvwXDBcYFywXOhdeF9wX9hgQGF4Yzhj6GQwZRhmQGcAZ2hoCGh4aNBpmGogarBrgGvgbeBuoG84cHBw6HGAcgBykHN4c+h0cHUwdfh2qHcwd9B4gHkgegB7YH1ofjB+mH94gPCB+IOIhPiF2IcgiMCJ4Ir4i/iNkI4YjtCPGI+IkZiSEJKAkvCUKJUglfCWqJhwmjicGJ1InfCf8KCIoqCk8KbgqQCqKKs4rYiuiK9gsDixMLO4taC2MLiYuqC7mLvovQC9kL5Av0C/2MFQwhDDmMSIxUDGWMfYyJjJEMpIyxjLqM1gzrjPqNBo0aDUgNVI1uDYgNnQ2tjbkNvw3FDcyN1o3fjegN7433Df6OBI4MDhIOGY4fjiWONA5DDleOfg6ODpcOr461jryO4g7oDvAO/I8Vjx0PMY88j0gPWY9jD2sPcQ93j4KPjY+XD6MPuw/Bj9cP5I/3kAIQERAfEC8QPBBQEFyQaBB2kH4QjxCZELqQyRDnkPoRMxFBEU2RZxFwEYORnBGyEcER0pHnkgWSGpIvEjSSQJJSEmASZhJwEngSkBKdEr+S1xLvkvwTEBMbEzSTQJNKE2ATZxNqk5kTspO7k9oT+RQKlCaUNJRClFiUZBRwFJQUqpTBlNgU4hTrFPQVChUSFRsVMBVHFVWVZZVvFXwVipWdFbSVwRXIldeV+pYVFjOWTRZlFoKWkJafFrWW0pbkFv8XIRdSl1oXYZedF6mXrxe4l8sX3Jfkl/EYAhgmGC6YPRhNGFYYYRhpmHcYnJipmLSYxhj0GP6ZHpktmUgZUhlgmX4ZjRmeGa6ZvZnPGeIZ+BoBGhOaOZpPms+bPRtIG1EbbBt2G4EbhxuSm6cbspvHG+6b/RwBHAUcCRwNHCUcNRxFHFecaRyFHI+coxzEnOuc950MHRidJ509HU2dYJ1onYUdlh2mnb0dxR3Und+d9h39ni6eSp5zHpEeoh6xAAEAAD//wEsASwAEQAiADQAZAAAJTQuASIOARUUFh8BFjI/AT4BByInNz4EMzIeARcWFwYnJjQ+AjIeAhQOAQcGJy4BFzA9AS4BJyYnNjc2NzYnNi4CIg4CFRQeARcWFwYHDgEHFS4BNTQ+ATIeARUUBgEsKEVSRSgcGQ0mXCYOGByWKSIBAwoOEBUKDx0VBgMCIlgECA0SFhEOCAgOCRMUCA6HBBEMCQsFBAcFCgEBCxQaHRoTCwYICAQFCgkMEQUSFCM8SDwjE5YpRSgoRSkhPBUKGhoKFTxiGAcKEQ4KBQsVDggJGIsJFBINCQgOEhURDgQICAQOWwEBDhgJBwUDBAcIEBQOGhQKChQaDgoTDggEBAQHCRgPARIwGiQ8IyM8JBowAAAAAAIAAAAAARoBGgAaACgAACUWDgEHNCc+ATcuAw4BByYjPgIzMh4CByIOARQeATI+ATQuASMBGQEUIhYDGSIBARAdIx4TAgkKAxglFREfGAyyFycWFicuJxcXJxfFFiUYAgoJAyUaER4SAQ8cEQMVIhQMGB8aFycuJxYWJy4nFgAAAQAAAAABBwEaAAsAACUVIxUjNSM1MzUzFQEHcRNwcBOpE3BwE3BwAAQAAAAAARoBGgANABIAFgAaAAABIwcVFzMVFzM3NTM3NQcjNTMVBzUzFScjFTMBEPQJCQoJzgoJCRzX4c+8JnBwARkJOAqfCQmfCjgvJiaplpZxEwAAAAABAAAAAAESAMwADwAANxcHJzU3FwczJzcXFQcnNzgoDTg4DSi8KA04OA0ogygNOA05DigoDjkNOA0oAAADAAAAAAEHAQcACQAWACMAADcXNTMVNxcHIyc3NC4BIg4BFB4BMj4BJxQOASIuATQ+ATIeAWUoEyYOOA04sB8zPjMeHjM+Mx8TGSwyLBkZLDIsGZQobGomDTc3Dx8zHx8zPjMeHjMfGSwZGSwyLBkZLAAAAAMAAAAAAQcBBwAJABcAJAAANyczNSM3JwcVFzcyHgEUDgIuAj4BFxUiDgEUHgEyPgE0LgGUKGxqJg03Nw8fMx8fMz4zHgEfMx8ZLBkZLDIsGRksZSgTJg44DTiwHzM+Mx4BHzM+Mx8BEhksMiwZGSwyLBkAAwAAAAABBwEHAAkAFgAjAAA3FyMVMwcXNzUnBwYuAj4BMh4BFA4BJzI+ATQuASIOARQeAZgobGomDTc3Dx8zHgEfMz4zHx8zHxksGRksMiwZGSzHKBMmDjgNOK8BHzM+Mx8fMz4zHhIZLDIsGRksMiwZAAADAAAAAAEHAQcACQAWACMAAD8BFTM1FzcnIwcXFA4CLgI+ATIeAQc0LgEiDgEUHgEyPgFlKBMmDjgNOLAfMz4zHgEfMz4zHxMZLDIsGRksMiwZmChsaiYNNzcPHzMeAR8zPjMfHzMfGSwZGSwyLBkZLAAAAAEAAAAAAQQBBwAJAAA3FzM3Jwc1IxUnO14NXg1OE06DXV0OTsTETgABAAAAAAEHAPMACQAANwcVFzcnMzUjN4NdXQ5OxMRO8l4NXg5NE04AAQAAAAABBwDxAAkAAD8BNScHFyMVMwepXl4OTsPDTihdDl0NThJOAAEAAAAAAMkA4QAJAAA3ByMnNxc1MxU3yS8NLw0fEx+KLy8NHmhoHwABAAAAAADRAM8ACQAANyc1NxcHMxUjF3ovLw0faWkfYy8NLw0fEx4AAQAAAAAA0QDPAAkAADcXFQcnNyM1MyeiLy8NHmhoHs4vDS8OHhMfAAEAAAAAAMkA4QAJAAA/ATMXBycVIzUHXi8NLw0fEx+yLy8NH2lpHwACAAAAAAEaARsACQATAAA3JzU3FwczFSMXPwE1JwcXIxUzB088PA0s6eksgTw8DSzp6SwSPA08DSwTLHY8DTwNLBMsAAEAAAAAAQQBBwAJAAAlJyMHFzcVMzUXAQReDV4NThNNqV5eDk7Dw04AAAAAAgAAAAABGgEaAAcADwAAJRUHJxUnFzUXJxUPARUXNQEZQWY6qAFeVhol6KA1JSVLDZABOSUaIUsRYQAAAwAAAAABIgEaABsAJwA2AAAlJy4BByMiBg8BBh4COwEyNj8BFxY7ATI+AgciLwEzNxccAQ4BIzMjNi8BMx4BFRcWDgIjASBLAgoHWAYKAkwCAgUJBTcFCgIMOAUGWAQJBQJrAgJsORQqAgQBV0UCAkxFAgRMAQECAgIs4QUIAQcF4QUJCAMHBiErAwQHCQgBUDR9AQMDAQYH4QECAuEBAwICAAAEAAAAAAEaARoAHQAsADUAPQAANzMmJyM3MzQ3Izc1MxUXNjcnNTM1IxUzFQcGHgI3NjMyHgIVFA4BLgI2FxYXMjcnBhUUNxc2NTQmIyI4XgsISx0bAhMkJgEJCQETcBJJAgEFCHISFw8cFQsZKi0gCRIUERcSD08KGE4LIRgSEwgKOQkJSE5PAwQCAUsTEkuOBQkJBIkNDBUbDxcmEQkgLCpZEAELTg4SGEZPDxIXIQAAAAADAAAAAAEKARoADwAWABoAACUnNTM1IxUzFQcGFjsBMjYnNzUzFRcjBzczFwEESBJwE0oECwq8CguIAiYkbicdgh0ujUsTEkuOChERkAROT0dLOTkAAAAAAwAAAAABGgEbACoAMQA6AAA3BiMVFB8BIzc2PQE0PgIXMzY3JicmDgIdARQPARczFBYyNjUzNycmNQcyNicjFBY3MjY0JiIGFBb0CQoIB7UHCQ0XHw8DBQcGBxQmHRAHCwhCFh8WQgkLB14HDAElC1MXISEuISGYAgQaGRQVGRkpEB4VCgIJBwIBAg0bJBQpFhYhDQ8WFg8NIRYWbQsICAuEIS4hIS4hAAAAAAYAAAAAASoBJgAVACcALgAzADgAQQAAEwYHIgcOAh0BFA8BNzY9ATQ+Ah8BBgcWHwEjBzMUFjI2NTM3JyYHBiImNTMWNyYnNxcPARc3JhcyNjQmIgYUFqIKBwkKDxcNBBwGBxAdJhRVCQoCBgd6EgwWHxZCCQsGUgYPCyUBdQYHCw2ClA2VBzMXISEuISEBGAgKAwUVHhApEREdExYWKRQkGw0CkQMBExIUEw8WFg8NIRFMBgsICN0HBwoNZ5UNlQYBIS4hIS4hAAAAAAQAAAAAASoBJgAVACcALgAyAAATJicmDgIdARQHNzY9ATQ+AhcWFwczJyY9ATcVFB8BByMUBiImJxcyNicjFBYHARcBzxUbFCYdEAcZAQ0XHw8UED1sBwgTBwsJQhYfFQEmBwwBJQt7AQkN/vcBBRAEAg0bJBQpFhUZCQkpEB4VCgIDDKwUGRoWEykWFiENDxYVDxILCAgLCQEJDf73AAADAAAAAAEGARsAGgAhADQAADcmPQE0LgInJg4CHQEUDwEXMxQWMjY1MzcHBiImNTMWJzc2PQE0PgIXFhceAR0BFB8B+wcMGB8SFCYdEAcLCEIWHxZCCWMGDwslAW4HCQ0XHw8eEwkKCAdmFRcmEiEbEQICDRskFCkXFSENDxYWDw0aBgsICBsVGBopEB4VCgIEFgsbDiYaGRQAAAADAAAAAADhAPQADgAWAB4AADc1MzIWFRQGBx4BFRQGIycVMzI2NTQjJzMyNjQmKwFePx8gEA0QEiIeKioSFCUrJxAUEhMmOLwaGA0VBQQYERkdWEQSECIUEB0OAAkAAAAAARoBBwAQABcAHgAiACYAKgAuADIANgAAASMPAS8BIwcVFzMXMzczNzUHLwEjNTMfASMPATU3MwcjFTMVIxUzJzMVIzcjFTMHMxUjFTMVIwEQZwcMDAdnCQljEA4QYwmMBAZdWQ56XgcCDVqWOTk5OTk5Obw4ODg4ODg4AQcDDAwDCrsKEBAKu7gDA6kOmwMCoQ0mEjkSOBM4EhMTExIAAgAAAAAA9AEaAAgADgAAEyMHFRc3Fzc1BycjBzUz6qgKEU1NERNEDkSWARkJ9AZWVgb020tL0gADAAAAAAEaAQcARwBxAH0AADcxIyIOAh0BFA4CBx4DHQEUHgI7ARUjIi4BJzEmJzUmNzU0JzEmJzUmJzEmKwE1MzI+ATcxNj0BJjcxNjcxPgI7ARczNSMiJzEmJzUmJzEmPQE2JzUmJzEuAisBFTMyHgIdARQeAhcjFgciDgEeAj4BNTQmcQIGCgcEAgQHBQUHBAIEBwoGAgIJEA0DAwEBAQICBAMFBQYBAQYKBwICAQEBAwMNEAkClAICBgUFAwQCAgEBAQMDDRAJAQEGCgcEAgQHBQEPFxEcDQYYIh8TIfQECAoGGQYMCwgEBAgLDAYZBgoIBBIGDQgIBwEICBAGBQUDAQMCAxIFBwUFBhAICAgICA0HehIDAgMBAwUFBhAICAEHCAgNBxMECAoGGQYMCwgEAhETHyIYBg0cERchAAQAAAAAARoBBwBHAHEAfgCKAAA3MSMiDgIdARQOAgceAx0BFB4COwEVIyIuAScxJic1Jjc1NCcxJic1JicxJisBNTMyPgE3MTY9ASY3MTY3MT4COwEXMzUjIicxJic1JicxJj0BNic1JicxLgIrARUzMh4CHQEUHgIXIxYHNjMyFhUUDgEuAjYXBycHFwcXNxc3JzdxAgYKBwQCBAcFBQcEAgQHCgYCAgkQDQMDAQEBAgIEAwUFBgEBBgoHAgIBAQEDAw0QCQKUAgIGBQUDBAICAQEBAwMNEAkBAQYKBwQCBAcFAQ82DhEXIRMfIhgGDUIVFQ4WFg4VFQ4WFvQECAoGGQYMCwgEBAgLDAYZBgoIBBIGDQgIBwEICBAGBQUDAQMCAxIFBwUFBhAICAgICA0HehIDAgMBAwUFBhAICAEHCAgNBxMECAoGGQYMCwgEAhoJIRcRHA0GGCIfAhYWDhUVDhYWDhUVAAUAAAAAARoBBwANABEAGwAfACkAACUjNScjBxUjBxUXMzc1JzMVIxcVBzUnIwcVJzUXFSM1BzUXFRczNzU3FQEQQgleCUIJCfQJqEtLlksKOAlLgyZdSwk4CkvhHAoKHAmWCgqWHBMTDioJCgoJKw04ExNLYCsGCQkGKl8AAAAABAAAAAABBwEaACIAPwBbAGQAABM2MzIeARcOAQc1MTY9AT4CJicuAQ4CFhcVFBcVLgI2FwYjFRQGKwEwIzEuAT0BIiY9ATQ2OwEyFh0BFAc3FAcWHQE+AiYnLgEOAhYXNTQ3Jj4CHgEHIxQGIiY0NjIWWBwiHzMeAQEpIQkRFwkHChE2OSgJGhkJHigIG3ICBAUEFAEEBAQFCwgSCAsDGQkGCQsBCwkNJCMaCQsNBgkBFB4eEwEeCxALCxALAQYTHjQeJDoMAQkLAwkgJicQGRUMKzo1DgMMCAELMUA6pwMvBAUBBAQvBQQmCAsLCCYEAlsPDQkKAgkZHBkJDgoKGiQjDQILCQ0fGgkLGRAICwsQCwsAAwAAAAABGgEaAAcACwAPAAATMxcVByMnNRcVMzUnMzUjHPQJCfQJE+Hh4eEBGQnhCQnhQpaWEyYAAAAAAwAAAAABGAEaADEAOQBJAAA3NTQmIgYdASMnBxcHBh0BIxU7ARYfAQcXNxceATI2PwEXNyc1NjcxMzUjNTYvATcnByM1NDYyFh0BFxUWFRQOAiIuAjU0NzXMIC0gEB8LHgEJJigBBA0BJQsjAgwfIh8MASQLJQ4FKScBCgEeCx9tFyAXHQkNFhsdHBYMCNgLFiAgFgsfCx4BGhsMEBsVASULIwEOEA8OASQLJgEWGxAMGxoBHgsfCxAXFxALEAEWGRcnHA8PHCcXGRYBAAAAABEAAAAAARoBGgAPABMAFwAbAB8AIwAnACsALwAzADcAOwA/AEMARwBLAE8AAAEjNSMVIzUjFSMHFRczNzUHIzUzNSM1MwcjFTMHMxUjFyMVMzczFSMXIxUzBzMVIzcjFTMXMxUjFyMVMwczFSM3IxUzFzMVIxcjFTMnMxUjARAcE5YTHAkJ9AkS4eHh4bwTExMTExMTEyYSEhISEhISEhISEiYTExMTExMTExMTEyUTExMTExMTEwEHEhISEgrhCQnh16gTE14TEhMTE14TEhMTE4QTExMSExMThBMTExITXhMAAAMAAAAAARoBGgA9AHkAggAANy4BDgEPAgYmLwEmJy4CPwI+AjU0Jy4DIyIPAQ4CFRQeBjMyPgE/ATY1NCYvASYvASYHBiciJicmJy4DNSY+AT8BNjMyHwEWHwEWFA8BDgIUFh8BFjMyNzY/AT4BMh8CFh8BFhUUDwEOATcHMxUjNTMVN+sFCwoHAwYFAwgCKQsLBAYBAwQHAwYDCAULDA0IDAgOBQkDChEYHCAiIRAKEQ0GDggDAwcEBA8EDQcIDh4OHxoNFhAJAQQGBQsDBAIEBwoHBgMCCwQFBAQFRQkMBQUJBgYCBgUEBwkFAwYDBAoFCi9XPl4TV30CAQUFBAYEAwEDJwsMBQgFAwUGAwcJBgwJBQwLCAgOBg0RCg8iISAcGREKBAgFDggMBQoECAQEDgRUAgEJBxIaDRweHg8HDgkFCgQDBggJBwQFAwsDBwoLCgVFCQIEBwYDBAMGCAQFCAMCBAMLBAfjVxNePlcAAwAAAAABGgEaAAgARACAAAA/ASM1MxUjNQcXMh8DHgEVFA8BDgIjIi4GNTQ+AT8BNjMyHgIXFhUUDgEPAgYUFhcWHwEeAT8CPgIHMj4BPwE2JzYvASYvAiYiBg8BDgIjIi8BLgE0PgI/ATY0LwQmIyIPAQ4CBx4DFxYXHgGiVz1dElgxDAkPCAcDAwgOBQ4RChAiISAcGBEKAwgGDggMBw4NCgUIAwYDBwQCBgQLCykCCAMFBgMICQYJDAoFCgQBAQMGAwUJBwQFBgIGAwcKBQwJRQUEBAUHAwUCAwYICQcEAgQDCwQHAwEBCRAWDRofDh6vWBJdPVcjCA4ICAQKBQwIDgUIBAoSGBwgISEQCxANBg4ICAsNBAkMBQkIAwYFAwUIBQwLJwMBAwQGBAUFWgMGBQsDBAIDCAUECAYDBAMGBAUECUUECwwJBwYDBQMFBAcJCAYDBAoECw0HDh8eHA0aEQgJAAAABAAAAAABAgDhAAcADwAkAC8AADcjJyMHIzczFycmJyMGDwEXIzUxBiMiJjU0PwE0IyIHNTYzMhUPAQ4BFRQWMzI2NaYTDz0PEjcREBYBAQEBARe2EQsVDxIiHxUSDw8UJBEYDAwLCQwQUSgokFk+AwYGAz43EBMQDh0FBBoMEAomDwQBCAsHChENAAAEAAAAAAElAPQABgAKAAwAEwAAJQcjJzcXNwc3Jw8BFwcXByMnNxcBJZIOOg40i5BSDVASCikLDw46DjTprVMKSaRtYgteFg8VDxFTCkkAAAEAAAAAAQ8A+gAGAAAlBy8BNxc3AQ+fDz8POJfuvAFZC0+yAAgAAAAAARoBBwAGAAoADgASABYAHQAkACsAADcjJzcXNx8BMxUjFTMVIxcjFTMHMxUjJzM3JwcnBxcjJzcXNxcHMzcnBycHRg0TDQ0aDhuWlpaWlpaWlpaWSg0iDhoNDSANEw0NGg4vDSIOGg0N2BQNDRsOBRMlEyYSJhNoIQ0aDQ5MFA0NGw1aIQ0aDQ0AAAEAAAAAAPMAwQAGAAA/ARcHIyc3llEMWAtYDG9SDFdXDAAAAAEAAAAAAMEA9AAGAAA3FwcnNTcXb1IMV1cMllEMWAtYDAAAAAEAAAAAAM8A8wAGAAA3JzcXFQcnvVIMV1cMllEMWAtYDAAAAAEAAAAAAPQAzwAGAAA3Byc3MxcHllEMWAtYDL1SDFdXDAAAAAIAAAAAAQcBGgA3ADsAABMzFTM1MxUzNTMVMxcVMxUjFTMVIxUzFSMVByMVIzUjFSM1IxUjNSMnNSM1MzUjNTM1IzUzNTczBzM1I14TEhMTExITJiYmJiYmExITExMSExMTJSUlJSUlExMTg4MBGSUlJSUlExMSExMTEhMTJSUlJSUlExMSExMTEhMTloMAAAEAAAAAAP0A/QALAAA3Bxc3FzcnNycHJweFVRFVVRFVVRFVVRGWVRFVVRFVVRFVVREAAAACAAAAAAD0APQAAwAHAAA3FTM1ByM1Mzi8E5aW9Ly8qZYAAAABAAAAAAEHAJYAAwAAJRUjNQEHz5YTEwADAAAAAAEHAPQAAwAHABEAADcVMzUHIzUzJzM1MxUjFTM1IzipE4ODcBODEyapzqioloQSE4MTqQAAAAABAAAAAADiAOIAGQAANzIXHgEXFhQHDgEHBiInLgEnJjQ2NzY3PgGWCgoTHAUDAwUcEwoUChMcBQMFBQoRCRPhAwUcEwoUChMcBQMDBRwTChQTCREKBQUAAQAAAAABGgEaABoAABMyFx4BFxYUBgcGBw4BIi4ENDY3Njc+AZYSESExCgQJCREeDyEkIR4YEQkJCREeDyEBGQQKMSERJCEPHhEJCQkRGB4hJCEPHhEJCQAAAAACAAAAAAEaARoAKgBEAAATJiIHMQYHBgcxDgEWFxYXHgI+ATcxNjc2NzE2JicxJicxJicxJicxJicXBgcOASIuBDQ2NzY3PgEyFx4BFxYUBrQPHg8ODRkPCAgBAwgVCxkdHxwNGQ8IAwUBBAMIBwsKDA0OUxEeDyEkIR4YEQkJCREeDyEkESExCgQJAQIFBQMIDxkNHR8OHBYKDwgBBwgPGQ0ODx8ODg0MCgsHCAOuHhEJCQkRGB4hJCEPHhEJCQQKMSERJCEAAAMAAAAAARoBGgAMABYAHwAAEzIeARQOASIuATQ+AQcUFhc3LgEOARUzNCYnBx4BPgGWJDwjIzxIPCMjPEwNDZ8ZQjsk4g4NnxlCOyQBGSM8SDwjIzxIPCODFCUQnxUJHDchFCUQnxUJHDcAAAEAAAAAALwAvAAIAAA3FAYuATQ2Mha8FiAVFSAWlhAWARUgFhYAAAACAAAAAAC8ALwACgAXAAA3DgEuAj4BMhYUFzY1NCYjIg4BHgI2pgQKCwgCBAkOCwwHFhALEwkEERYVjAUEAggLCgcLDg8KCxAWDRUWEQQJAAMAAAAAAOEA4gAMABUAFgAANzI+ATQuASIOARQeATcUBiImNDYyFieWFCMUFCMoIxQUI0UdKB0dKB0xSxQjKCMUFCMoIxRLFB0dKB0dIAAABQAAAAABGgEaAAcANAA9AEYATwAAASMHFRczNzUHIzUzHgEzMjY0JiIGFSMVIzUzFQ4BFRQWMjY1MxQWMjY0JiMiBgcjLgEjNTMHNDYyFhQGIiYnMhYUBiImNDYzMhYUBiImNDYBEPQJCfQJEqkrBBIKDxYWHxY4JSUICxYfFiYWHxYWEAoRBTAFEQqpcQoRCwsRCjgICwsRCgp5CQoKEQoKARkJ9AkJ9OolCAsWHxYWDzjhLAQSCRAWFhAQFhYfFgoJCQomqQgLCxEKCnkKEQoKEQoKEQoKEQoAAAUAAAAAARoA9AALAA8AEwAYABwAADcXNxc3JzcnBycHFychNSEVITUhFzUjFTMVNSMVvA0eHg8gIA8eHg0exwEG/voBBv76lpaWlkANHh4NHh4PICAPHoMTSxNCCRI5ExMAAAAEAAAAAAEWARoAFgAiACwANgAANyM1MxUzNScjNSM0JiIGFSMVIwcVFzM1PgIeARQOAS4CFwc1IxUnBxczNyczFwcnFSM1ByeDOJYTChwSFiAVFBsKCkEBCQsKBwUKCwgFhhQTFA4lDSR8DSUOFBMUDSaoJS8JEw8WFg8TCbwJ5QUJAgQKCgoFAQYKrBRkZBQNJCRbJA0UZGQUDQAEAAAAAAEHAQcACwAZACAAJAAANycHJwcXBxc3FzcvATczFxUHIxUHIyc1NzsCFxUzNSMXIxUzog4aGw0bGw0bGg4bKRODExMmEoQSEiYTSxImg0uEhJQOGxsOGhsNGxsNG3oTE4MTJhIShBISS4M4hAAAAAEAAAAAAOgA6AALAAA3FzcnNycHJwcXBxeWRA5FRQ5ERA5FRQ6JRQ5ERA5FRQ5ERA4AAAACAAAAAAEaAPYALwA5AAA3Mx4BFAYjNTI2NCYnIycuAgYPAScmJyIHDgEeATsBFSMiJicuAT4BNzYXPgEeAQcXNTMVNxcHIyfgARchIRcPFRUPEQICFx8bBgYQBQUUDQoGCxgOCQkOGgkMBwsbEQ4OCSYrH18YExgNKA0ovAEgLyETFh4WARAPFgUQDg4DAQEOChwaEBMLCw0jIhcDAwQUFgYfdhhmZRcNKCgAAgAAAAABGgD2ADIAPAAANzMeARQGKwE1MzI2NCYnIycuAgYPAScmJwYHDgEeATsBFSMiJicuATc+Ahc+AR4BFwcnFSM1Byc3MxfgARchIRclJQ8VFQ8RAgIXHxsGBhAFBRQNCgYLGA4vLw4aCQ8ECwcXHA4JJisfAx8ZEhgNKA0ovAEgLyETFh4WARAPFgUQDg4DAQEBDQocGhATCwsQKxIMEQUEFBYGHxZIGWZlGA4oKAAAAgAAAAABGgD2ABUALgAANzMeARQGKwEiJicuAT4BNzYXPgEeAQczMjY0JisBJy4CBg8BJyYnIgcOAR4BM+ABFyEhF4wOGgkMBwsbEQ4OCSYrH3+DEBYWEBECAhcfGwYGEAUFFA0KBgsYDrwBIC8hCwsNIyIXAwMEFBYGH3MWHxYQDxYFEA4OAwEBDgocGhAABwAAAAABGgEaAAMABwALAA8AEwAXACcAABMzFSM3MxUjFzMVIxUzFSMVMxUjBzMVIycHFTM1MxUjNSMVFzM3NSdeExMlS0smS0tLS0tLJktLXRMT4eETE+ESEgEHz7wTExITExMSExPOEl5ez3FxEhLPEgADAAAAAAEUAPQABgANABEAADcHFwcnNTczBxcHFzc1Bxc3J1gxMQ04OJEOMjIOOLgRXhHDMTINOA05DjEyDTgNYAi7CQAAAAAGAAAAAAEsARoAFQArAEEAUwBdAGUAABMVFBYXMxYXFh0BIzU0Ji8BJicmPQEzFQYWFzMWFxYdASM1NCYnNSYnJj0BMxUUFhcxFhcWHQEjNTQmLwEmJyY9AQc3MzIWFAYrAQ4BKwEiLgE9ARc1IxUUFjsBMjY3FTMWNjQmIzgHCAEKBAgTBwgBCgQITAEHCAEKBAgTBgkKBQdLBgkKBQcSBwgBCgQIcBLFFBsbFAwGKBo4FSIVvKkhFzkXIRMJDBAQDAEZCQYIBwgFCgwKCgYIBgEHBgoMCQkGCAcIBQoMCgoGCAYBBwYKDAkJBggHCAUKDAoKBggGAQcGCgwJcBMcJxsZHxQiFDk4ODgYISFQOAERFxEAAAAABAAAAAABBwEHAAMAEQAYABwAADcjFTMnNzMXFQcjFQcjJzU3OwIXFTM1IxcjFTOpXl5LE4MTEyYShBISJhNLEiaDS4SEgxKDExODEyYSEoQSEkuDOIQAAAIAAAAAARoBGgAMABQAABMiDgEUHgEyPgE0LgEHNTIeARQOAZYkPCMjPEg8IyM8JB8zHx8zARkjPEg8IyM8SDwj8+EfMz4zHgAAAAAKAAAAAAEsARoABwALABMAFwAfACMAKwAvADMAPQAAEwcVFzM3NScHNTMVDwEVFzM3NScHNTMVBzczFxUHIyc3FTM1NwcVFzM3NScHIzUzFSM1MycjFTMHFzc1JwccCQk4CgouJS8JCTgKCi4lOAk4Cgo4CRMlnwkJOQkJCiUlJSVuOjoTDSIiDQEZCTgKCjgJOCYmJQo4CQk4CjkmJi8KCjgJCS8lJYMJcQkJcQk4Jl4lExMSDCINIg0AAAMAAAAAARoBGgASAB4AJwAAPwEVByc1Iyc1NzMXFSM1IxUzHwI3NTM3NScjBxUXNyM1MxUjBxUnSxMWEBwJCeEKE84cCXYjEBwJCZYJCUtChB0JFlgTGxUHLwmWCQlUS4QJQiIGHApdCgpdChNLSwkPFQAACgAAAAABGgEHAAYACgAOABQAGAAjACcALQAxADgAAAEjFTMVMzUnMxUjJzMVIxcdATM3NQc1IxUnIw8BNScjFRc3Mzc1IxUHNSMVFzM9ASMVNxUjNTczFQEQHBMScCUlSyUlqQkJOCUmCQcoCgkQNgWDEuETCQoTExMJHAEGEhMcCRISEoQSEwkcJRMTEwMoIQpCBzZLJSU4EhwJSyUlXhMcCRIAAAAAAgAAAAABGgEHABcAIwAAEzMXFSYnNSMVMxcVPwEzBhUjByc1Iyc1FyIOAR4CPgE1NCYc9AkICuEuCigHCwIFNhAvCc4RHA0GGCIfEyEBBwqACQZolgohKAMJCjYHLwmpehMfIhgGDRwRFyEAAgAAAAABGgEHAAsAFAAAASMHFRczFRc3Mzc1ByMPATUnIzUzARD0CQkvEDZ/CRJ6BygKLuEBBwqpCS8HNgmpnwMoIQqWAAAABQAA//0BLQEaACwAMgA2AEMASgAANwYjNSMVLgInMzUjPgI3FTM1HgIXIxUzBxYXNjU0LgEiDgEUHgEzMjcmNy8BHwEGLwIfATYXMhYVFA4BLgI2FzcnBycHF6sGBhIbLhwCEhICHS0bEhsuHAISEgEJCAMjPEg8IyM8JA4NBA03JkwbBg0SJBJHDxEXIRMfIhgHDS4iDxwQDBgnARISAh0tGxMbLRwCEhICHC4bEgwCBA0OJDwjIzxIPCMDCEobTCY3BA0kEiQmCgEgGBEcDQYZISA/LQslDg8TAAQAAAAAASwBGgAsADIANgA/AAA3BiM1IxUuAiczNSM+AjcVMzUeAhcjFTMHFhc2NTQuASIOARQeATMyNyY3LwEfAQYvAh8BFBYyNjQmIgarBgYSGy4cAhISAh0tGxIbLhwCEhIBCQgDIzxIPCMjPCQODQQNNyZMGwYNEiQSLyAvISEvICcBEhICHS0bExstHAISEgIcLhsSDAIEDQ4kPCMjPEg8IwMIShtMJjcEDSQSJFUXISEvISEAAAAABAAAAAABGgEaAAMABwAjADAAADcXLwEXLwEXMw4CBzUjFS4CJzM1Iz4CNxUzNR4CFyMVBzI+ATQuASIOARQeAakmTCZUEiQSeQIcLhsSGy4cAhISAh0tGxIbLhwCEl4kPCMjPEg8IyM8qUwmTFQkEiQbLhwCEhICHS0bExstHAISEgIcLhsSeiM8SDwjIzxIPCMAAAb//wAAASwBCwAMABgATgBnAHEAewAANzIWHQEUBiImPQE0Nhc0JiIGHQEUFjI2NScWFzc2FxYXFhUUBxczHgEdARQHDgEPAQYHBgcGIicmJyYvAS4BJyY9ATQ2NzM3JjU0NzY3Ng8BFRcWFxYyNzY/ATUnBiMiJyYnBgcGIyI3Jg4BFBYyNjc2NwYXHgEyNjQuAXUGCAgMCAhWCAwICAwIMgIBAxEmIxANBQMBDg8DAgcHCwYHDA0pUikNDAcGCwcHAgMPDgEDBQ0QIyZJAQEKDCRGJAwKAQEMFCESBgQEBhIhFDoIMA8MKhMCAycHAwITKgwPMHEJBhwGCAgGHAYJDwYJCQYcBggIBrIBAgMTBQQTER4TDBAHGQ4YBQYDCQUIBQQHBRISBQcEBQgFCQMGBRgOGQcQDBMeERMEBYICUAEGBQ8PBQYBUAIGEwYICAYTYggFEygOFBQWCAgWFBQOKBMFAAAAAAMAAAAAAQcBGgAHAAwAEwAAPwEzFxUHIyc3JyMVMycHFRc1MydLE2VEE5YTqThelrwSEnkT4RNDixMTgzi78xK8E88SAAAAAAQAAAAAAQcA9AAGABsAKAA2AAA3DwEnNxc3Fz4BNTQuASMiByYjNjMyHgEUBgc2ByIuATQ+Ah4CDgEHMj4BNC4BIg4BFB4BF6cvDhwNFShJCQoSHhINDA0PFx4XJxcZFAVlEh4SEh4kHhEBEh4SFycWFicuJxYWJxeQOAEcDhUwKwkYDRIeEgUFExcnLigLDisSHiQeEQESHiQeEhIWJy4nFhYnLicWAQAAAAAEAAAAAAEaAOIAAwAHABcAGwAAJRUjNRUzFSM3IyIGHQEUFjsBMjY9ATQmBzMVIwEH4eHh4eEICwsI4QcLC0AmJs4SEiVelgsIgwgLCwiDCAtwEwABAAAAAADPAJYAAwAANzMVI15wcJYTAAAGAAAAAAEJARwADAAcACgAMAA6AEgAABM+AR4CDgIuAjYXFjMyPgE1NC4CDgIeATcXBxYOAS4CPgEXBxY2NCYOARY3BxYVFAcXPgEvASYjIg4BFBcHJj4CF0kbQTskBB02QTolBBwmGiAcLxwWJTAuJBMDGIINKAQFERQPAgwUChIFCgcIBAFUDwUJDgwDCjQLDBIeEgkNEAMmOBoBBRIEHTZBOyQEHDdBOqgSHC8cGSoeCQwgLS8qig0pCRQMAg4VEQUEIQMECwUBBwcrDgsNEg8OEy4UFwUSHiQPDhg5KwwNAAADAAAAAAD0ARoAEwAkADUAADc0LgEiDgEVFyMVFx4BMjY/ATUjJzIXHgEUBgcGIicuATQ2NzYXBw4BBwYiJy4BLwE1FjcWN/QZLDIsGQEBAQQ1SDUEAQFdFRMQExMQEyoTEBMTEBNgAQETDxIqEg8TAQEjKCgj6g0WDAwWDQKmBxEXFxEHph4FBA4KDQQFBQQNCg4EBcQDBQwEBQUEDAUDjBQBARUAAAAFAAAAAAEoAQcAJQAsADUAPwBGAAA3By4BIgYHJwcXBxUjFTMVFhcHFzceATI2Nxc3JzY3NTM1IzUnNycyFhUjNDYXDgEHLgEnNTMnBxUzNRcHFTc1BzU3JzUXFYkRBBkgGQQRDRYDExMBBBgNFQcWGBYHFQ0YBAETEwMWSwwQOBAyAhUPDxUBSyoPE44wR0dpj6WDEA8UFA8QDRYCExMBCQkYDRUKCwsKFQ0YCQoBEhMCFg0QDAwQSw8VAQEVDxyzCFZEXyAXLxBkFkZfF24QAAAAAAQAAAAAARYBBwAlACwANQA/AAA3By4BIgYHJwcXBxUjFTMVFhcHFzceATI2Nxc3JzY3NTM1IzUnNycyFhUjNDYXDgEHLgEnNTMnNxcVBzU3JxUjiREEGSAZBBENFgMTEwEEGA0VBxYYFgcVDRgEARMTAxZLDBA4EDICFQ8PFQFLEw6pbFaOE4MQDxQUDxANFgITEwEJCRgNFQoLCwoVDRgJCgESEwIWDRAMDBBLDxUBARUPHKsIcRBIFzlfRAAAAAQAAAAAASkBLAAlACwANQBAAAA3By4BIgYHJwcXBxUjFTMVFhcHFzceATI2Nxc3JzY3NTM1IzUnNycyFhUjNDYXDgEHLgEnNTM3FQc1NycVJic1N4kRBBkgGQQRDRYDExMBBBgNFQcWGBYHFQ0YBAETEwIVSwwQOBAyAhUPDxUBS7iAaqIJCg6DEA8UFA8QDRUDExMBCQkYDRUKCwsKFQ0ZCAoBEhMDFQ0QDAwQSw8VAQEVDxxgEFEWQ2d2BgN+CAAAAAAEAAAAAADjAOMADAAYABwAIAAANz4BHgIOAi4CNhceAT4CJicmDgEWNyMVMxUjFTNsESgkFwISISgkFgMSHQwcGQ8CDQsSKRgISjg4ODjUDAIRIigkFwISISgkXggCDBccGQgLCCMqOxMSEwADAAAAAADhAOIADAAQABQAADciDgEUHgEyPgE0LgEXFSM1NxUjNZYUIxQUIygjFBQjEktLS+EUIygjFBQjKCMUXhISORMTAAACAAAAAADmAOEABQALAAA3IwcXMzcHIyc3Mxe6ViwsViw6Oh4eOh3hS0tLMzMzMwABAAAAAADmAOEABQAANwcjJzcz5StWLCxWlktLSwAAAAIAAAAAAOEA4QACAAUAADczJwczJ0uWSyNGI16DbD0AAQAAAAAA4QDhAAIAADcXI5ZLluGBAAAAAgAAAAAA9AD0AAMABwAAPwEXBzU3Jwc5XV1dNDQ0ll5eXSk0NTUAAAEAAAAAAPQA9AADAAA3Fwcnll5eXvReXl4AAAADAAAAAADjAOMADAAQABQAADc+AS4CDgIeAjYnIxUzJzUzFdQMAhEiKCQXAhEiKCQnFxcXF2wRKCQXAhEiKCQXAhEWEyVLSwAFAAAAAAEcARwAFQAeAEQATABWAAATNzMfAhUPASsBNTQnMzUjFSYjPQEXByYvATcnNxcHNxcHFxUzFSMVBgcXBycOASImJwcnNyYnNSM1MzU3JzcXPgEyFgcuAQ4BFTM0BzY3NSMVHgEXNlgCsQEPAQEPAVwHYKwJCoYjAgIGHC0KNFcRDRUCExMBBBgNFQcWGBYHFQ0YBAETEwMWDREEGSAZFQYREAk4AgoBSgEVDw8BGwEBDwGxAg8CCgesWwJcAWcjAwMFHC4KMzsQDRUDExIBCgkYDRUKCwsKFQ0ZCAkBExMDFQ0QDxQUBwYDBg4JDFQKDxwcDxUBAQADAAAAAAEMAQcAAwAJAAwAABMjFTM3BxUXNzUPATVLExM+Dw+DFmkBB+HVB7wHXRAITJgAAwAAAAABDwEHAAMACQAMAAATMxUjNwcVFzc1DwE1LxwcXBYWhCFdAQfh2Qu8C14WC0KEAAMAAAAAARYBBwAJAC4AOAAAPwEXFQc1NycVIxcOAR0BFA4CKwEiLgI9ATQuAjU0PgQyHgQVFAYHIxUUFjsBMjY1Xg6pbFaOExUFBgIDBQMQAwUDAgYLBwMGCAoMDAwKCAYEBxwWAgEQAQL/CHEQSBc5X0RgBQ0HEAMFAwICAwUDEAcNCxAKBgsLCAYDAwYICwsGChAZFgECAgEAAAQAAAAAAREBGgARAB8ANwBEAAA3Jic3JwcmJyYHBg8BFzc2NzYHBg8BJzc2NzYXHgEXFgc3JwcnNycHJwcOARQWFwcXNx4BMjY/AQcGIi4CNTQ/ARcHBv8DBRkLGgcJFBQLCB1RHQkECBcDBhI6EgYHEBAHCwQGYRwMGyMcDBwLHQkIBQYZCxoHEhUVCB02CBAPDAYMEjoSBuQJBxoLGQYCBwgECR1RHQgLFA4HBhI6EgYDBgYECwcQbh0MHSMdDB0LHQgVFREIGQwZBQYJCB0aBAcLDwgRDBI6EgUAAAAABgAAAAABGgEAAAMABwALAA8AFQAYAAA3NTMVJzMVIzcVIzUdATM1JTcXFQcnNxU3cahdXV1dqKj++g5lZQ4TSnESEksTSxMTqRMTrQdDD0QIdWMxAAAAAAIAAAAAANgA9AADAAcAADczFSM3FSM1VB0dhBz0vLy8vAAAAAIAAP/9ARYBBwAaACQAADcUDgEmJwceAT4CLgEGBzUjFRczNSM+AR4BJzcXFQc1NycVI4YZJyMIEgotMiMHGi8xDxMJLBgKIyUXKA6pWUOOE0sUHwgSEgcXGQclMiwTDRQXMgoTEQ4KHqEIcRA7Fi1fRAAABQAAAAABHAD0AAQACQAOABIALQAANzUzBgc3NjcjFRcmJyMVJRUhNRcyPgEuAQYHMxUjJzUzFT4BHgEOAiYnNx4BE2ECARcJC4lpBQNhAQb++scSGgYRISAJFCUIEA0qJxYGHiolCQ8GF3ESCQk4CggScQkKE7wTE7wWIh4MDA8QCCoTEQsRJCseBxUUBg0PAAAAAAEAAAAAAQwBDQAdAAA3FA4BJicHHgI+AjU0LgEGBzUjFRczNSM+AR4B7yY6NQwaCigyMykXKkRFFhwOQSMONTcjlh4uDRscCxghDQogLxokOxcVHCJLDhwZFg8tAAAAAAMAAAAAAP4BBwADAAkADAAAEyMVMycXFQcnNR8BNf0cHFwWFoQhXQEH4dkLvAteFgtChAADAAAAAAEQAQcACAASABcAADcUBi4BNDYyFjMvASMHFRczPwEHIzUzF7wWIBUVIBZUUBFfGBhfEVBhX19PlhAWARUgFhZZCBiyFwhZSrJZAAIAAAAAARABBwAJAA4AACUvASMHFRczPwEHIzUzFwEQUBFfGBhfEVBhX19PplkIGLIXCFlKslkAAgAAAAAA/AEAAAUACAAAPwEXFQcnNxU3UBaWlhYcbvQLZBdkDK2TSgAAAAACAAAAAAEMAQwAFwAgAAA3NTMVPgEzMh4BHwEjNS4CIgYHMxUjJxciJjQ2MhYUBiEcEDAbHTQgAgEdAhgnLikLNU4SdRAVFSAWFsBLLxMWGy4cBQQUIhQWExwSkBUgFhYgFQAAAgAAAAAA6gEaAAoAEwAANzM3Jwc1IxUnBx8BFAYiJjQ2MhaWCkkUMRwxFEkvFh8WFh8WeUkUMXR0MRRJQRAVFSAWFgACAAAAAADqARoACgATAAATIwcXNxUzNRc3JxcUBiImNDYyFpYKSRQxHDEUSRsWHxYWHxYBGUkUMXR0MRRJ4RAVFSAWFgAAAAACAAAAAAEMAQwAFwAhAAAlNSMVLgEjIg4BDwEzNT4CMhYXIxUzNwcyNjQuAQYUFjMBCxwQMBsdNCACAR0CGCcuKQs1ThJ1EBYWIBUVEMBLLxMWGy4cBQQUIhQWExwSkBUgFQEWIBYAAAIAAAAAAQcBBwAHAAsAABMXFQcjJzU3FyMVM/QTE7wSEreysgEHE7wSErwTGLIAAAUAAAAAASsBLAABAA0AQQBJAFkAADc1Fyc3FzcXBxcHJwcnNxUzNxcHFRYVBzMVIzEGDwEXBycHDgEiJi8BByc3JyYnKwE1MzU0NzUnNxczNTQ+ATIeAQcVMzU0JiIGFzUjBwYVFB4CMj4CNTQrWyYNKCcNJiYNKCcNdBAkDSIMASwuBg8BKw0pAQ4kJiQOASkMKgEPBQEuLAsjDSQSEB0iHRFrWRolGnqbAQkOGR8iHxkPiwEJJgwoKA0mJg0pKA2QDCQNIgEeHw4SHxkBKwwpAg8SEhACKAwqARkeEg4gHAEjDSQMER0RER0RDAwTGhoyAQEaHBktIRERIS0ZHQACAAAAAAEaAQcAFAAeAAA3NTI2NzY1Iyc1NzMXFSc1IxUzBxczNycHNSMVJwcXSxERAgJVCQn0CRLhawkuKC8NHxMeDi8TEwUFAwUKuwoKrRORqQkvLw0feXkfDS8AAAADAAAAAAEaAOEADQARABUAACUHNScjBxUXMzc1Fzc1ByM1MxcnNTcBCz0JqQkJqQk9Dl2Wlks5OdMjKAkJhAkJJiMJa21wXR8KIgAABQAAAAABGgEHAA0AFwAgACkAMgAANzMXFQcjJzU3Mz8BMxcHMzUjLwEjDwEjFyIGFBY+ATQmFzIWFAYuATQ2NyIGFBYyNjQmyUcJCfQJCUcQBzgHk+FCBxAwEAdBHAQGBggFBVAQFhYgFRUQFyEhLiEh9AqoCgqoChADA7mWAxAQAxMFCAYBBQgFEhYgFgEVIBYSIS4hIS4hAAAAAwAAAAAA9AEaAAcACwAPAAATMxcVByMnNRczNSMXMxUjVJYKCpYJE4ODLyUlARkJ9AkJ9OrhvBMAAAAAAwAAAAABBwEaAAcACwAXAAATMxcVByMnNRczNSMXIxUjFTMVMzUzNSMc4QoK4QkTzs5wEzg4Ezg4ARkJ4QkJ4djPJjgTODgTAAAAAAMAAAAAARoBGgAHAAsAEQAAEzMXFQcjJzUXMzUjFzMVByM1HPQJCfQJE+HhliVwJgEZCfQJCfTq4SYlcSYAAAADAAAAAAEaARoABwALABQAABMzFxUHIyc1FxUzNQcyNjQmIgYUFhz0CQn0CRPhcRchIS4hIQEZCfQJCfQJ4eGpIS4hIS4hAAAFAAAAAAEaARoACQAOABoAHgAlAAATHwEVByMnNTczBzM1JyMXIxUzFTM1MzUjNSMHMxUjNx8BFQcvAbY4BhOpExNxcak4cUslJRMmJhMlXl6LKwUSATgBFDgOqBMT4RLzqDlLEyYmEyWDE84rDbsTzjgAAAMAAAAAAQcBGgADAAsADwAANxUjNSczFxUHIyc1FzM1I7xeQuEKCuEJE87OqRMTcAnhCQnh2M8AAwAAAAABGgEaAAcACwASAAATMxcVByMnNRczNSMXMxU3JxUjHPQJCfQJE+HhJTheXjgBGQn0CQn06uGEOEtLOAAAAAAEAAAAAAEHARoACQAOABoAHgAAEx8BFQcjJzU3MwczNScjFyMVMxUzNTM1IzUjBzMVI8k4BRKpExNwcKk5cEslJRMlJRMlXV0BFDgOqBMT4RLzqDlLEyYmEyWDEwAAAAAGAAAAAAEaAPQABwALAA8AFwAbAB8AAD8BMxcVByMnNzM1IzUzNSM3MxcVByMnNRczNSM1MzUjJgleCQleCRJLS0tLel4JCV4JE0tLS0vqCgqoCgoJcRITEwqoCgqonyYlSwAAAQAAAAAA9wEKABkAABMVFzM1Izc+AR4CBg8BFzc+AS4CBg8BNUIJQjASDSIjGQoKDWENYhAMDCEsLBAOAQdCCRISDQkJGSMjDGINYREsLCELCxENJwAAAAMAAAAAARoBGgAJAAwAEAAAEyMPAhc/AjUHNxc3JzcX+BubAywaTQWa7B0bECGWIQEZmgVNGiwDmxvLOBsKIZYhAAAAAwAAAAABGgEaAA0AEQAYAAAlJyM1JyMHFRczFRczNyc1MxUXIzUzNzUzARkJjQleCQkvCbwJ80uWqRwJhLIKVAkJlwhVCQlncXFdSwgdAAADAAAAAAEHAKkACAARABoAADcUBiImNDYyFhcUBiImNDYyFhcUBiImNDYyFksLEAoKEAteCxALCxALXgsQCwsQC5YICwsQCwsICAsLEAsLCAgLCxALCwAAAgAAAAABGgEaAAsAHAAANzMVIxUjNSM1MzUzBzUzFTM1IzUzNSM1MxcVByNLODgTODgTOBPhcXFxegkJ9OETODgTOP1nXYMTJRMKzgkAAAADAAAAAADiAOEACwAYACEAADcnByc3JzcXNxcHFzcUDgEiLgE0PgEyHgEHNCYiBhQWMjasFhYRFhYRFhYRFhYkFCMoIxQUIygjFBMhLiEhLiFvFhYRFhYRFhYRFhYWFCMUFCMoIxQUIxQXISEuISEAAwAAAAABFgEbABUAKAA0AAATHgEXFhUUBw4BBwYnLgM3Njc+ARc2NzYnNCYnJicmBgcOARYXHgEnNxcHFwcnByc3JzehFikQJh4PJhYwJxQeEAMHDyYSKyEmGRkCEQ8dJhMmDyAXISIQJgQtDS0tDS0tDS0tDQEZARQQKTcrJxIXBAkWCyIqLhUuGQwM9AkfIiUXKhAdAwEJCxhOSBMKBnwvDS8vDS8vDS8vDQAAAAAEAAAAAAEdARoALwBDAFAAVAAAEyMHJwcXBxUXBxc3FzMmJyMvAQcnNy8BNT8BJzcXPwEzHwE3FwcfARUWFzUnNycPATIWFwYHLgEOAhYXBgcuAT4BHwE+AR4CDgIuAjYXFTM1sDQKJiYaLS0aJiYKJwoIBgkOJg8ZBiwsBhkPJg4JFgkOJg8ZBiwLCC0aJiYkDBMECQgBCw4KAQgHBgMNDQQVDhgOIyEXBQ0cIiAWBgwIXgEZLRomJgo0CiYmGi0ICywGGQ8mDgkWCQ4mDxkGLCwGGQ8mDgkGCAonCiYmGjAOCwMGBwgBCg4LAQgJBRcbEgE0DAYMHCMhFgUMGyIhHhMTAAUAAAAAAQcBBwADAAcAFQAcACAAADcjFTMHNSMVJzczFxUHIxUHIyc1NzsCFxUzNSMXIxUzqV5eJhITE4MTEyYShBISJhNLEiaDS4SEgxImXl6pExODEyYSEoQSEkuDOIQAAAACAAAAAAEaAOMACAAMAAA3JzcXByc3IzUnMxUj9SwNQ0MNLL0lExOpLQ1EQw0tEziDAAAABgAAAAABLAEsAAcACwAXABsAHwAjAAATNzMXFQcjJzcVMzUFNTczFxUzFxUHIyc3NSMVFyMVOwI1I6kTXRMTXRMTXf7nE14SXhMTzhNxXl5eXhJeXgEZExNdExNdXV2ocBMTXhJeExNwXl4SXl4AAAQAAAAAARQBFAAgACYANwA7AAATBhQfAQ4BBwYeATY3PgE3FwYUFjI3FxYyNjQvATEnJiIfAQYiJjQ3IgcXNjMyFhceAT4BJy4CBxcuARwDAjMSGgUBBAcHAQUXERYOHSkPSgMIBQKAaAMIYiwJGhIfExEPCwolOQkBBwcEAQcjMxowARsBEAIHAzMNJRYEBwIEBBQgCxcOKR4PSgMFBwOAaAN0LAkTGVEFEAMuIwQEAgcEGysYLC8TGwAAAwAAAAABEQDoAAgAEQAoAAA3MhYUBiImNDYXIgYUFjI2NCYnMh4BFxYOASYnLgEiBgcOAS4BNz4ClhUdHSodHRUNEhIaEhINHDMjBwEEBwcBCTlKOQkBBwcEAQcjM7sdKR4eKR0SExoSEhoTPhgrGwQHAgQEIy0tIwQEAgcEGysYAAAAA///AAABGgEaABUAOwBEAAATBxU3FzUzFSMHNSMXBzMVFzczNzUnBz4BNC4BIg4BFBYXDgEHBg8BMzU0PgI7ATIeAh0BMycmJy4BJyImNDYyFhQGVAkJCqkhGCYBARQQIiIJCZgOEBIeIx8REA0NFgcEAQETChIYDQENGBIKEwEBBQYWMhMbGycbGwEZCR0BARReGBgKCRwHIwlxCbEJHSMeEhIeIx0JBhYQCwwSCg0XEwoKExcNChMLCxAWDxsnGxsnGwAAAAAIAAAAAAEHARoACQAOABgAHQAnADEAOwBAAAATHwEVByMnNTczBxUzNScHFDMyNjU0IyIGFzQyFCIXMzUjNQcVNxUjByM1MzUHNTcVMzcUMzI2NTQjIgYXNDIUIsY+AwrOCQmRiLw4aBkNDhkNDhAUFDwtDx8QDxotDxAgDhQaDQ0ZDQ4QFBQBFz4HtgkJ9AkS4ag5TCUUEiUUEhoyCww9Bg0DLWoMLQMNBj0YJBMTJRQTGjIAAAAABQAAAAABBwEaAAkADAATABoAIQAAEx8BFQcjJzU3MwczJyMVMzUjJzUHNycHFRc/AhcVByc3xj4DCs4JCZEEODiEvEIJSiINKSkNJA0pKQ0iARc+B7YJCfQJSznhlglCjiMNKQ0pDUQOKQ0pDSIAAAcAAAAAARoBGgARABQAHAAlACkALQA2AAATMxUXMxUzNS8CIwcVFzM1IzcXIxcjBxUXMzc1BxUnIwcnIwc1FzcXKwE1Nxc3MjY0JiIGFBYmcAlCEwM+BpEJCUI4gzg4Z5YJCZYJEh8NFigNDU8PHR5dEy8lBAYGCAUFAQdCCRMpBz4CCfQJE+E5OAlxCQlxCkseFigMJ1APHBsTLkEGBwYGBwYACQAAAAABBwEaAA4AEQAZAB4AKAAuADcAPwBJAAAlLwEjBxUzNTMVFzMVMzUHNRcPARUXMzc1JwcVIzUzByMVIzUzMhUUBicjFTMyNBc2JzQHIxUzMic1MzYWFAYnNyMVIzUzFSMVMwEEPgaRCRJxCUITSzjFCQnOCgoJvLyWBg0UFQ0KBQUKQgkBHhQUDRQGBwsKCE0SDSEUEtk+AglnXkIJEykEOTk4CXEJCXEJXhJdOBM5EwgLGxERJgkMHAE4CyMBCw8LAQsWOQsOAAAAAAQAAAAAARoBBwADACEAKwAyAAA3MzUjNzU3Mx8BMxcVByMnNSMnNTczHwEzFxUjNSMvASMVFycjFTM/ATM1IwcjFTM1IwcmEhISClMICGsJCc4KHAkJUwgIawoTZwgIRHEIRDsICHFoE0G8awheSxMJCQQOCpYJCS8JqQoFDgouJQUOOA8POQ4FEzhLXQ4AAAQAAAAAARoBBwAKABIAHAAsAAA3MxcVByMnNTczHwE1NyMPASMVNzM3Iy8BIxUzNxcnNxcVByc3Iw4BFyM0NjeRfwkJ9AkJXgeFAXcQBlRmegF6BxBQUBAxGQ4pKw0bGg8VARMeF/QKuwkJzgoDzB1nEANxlhMDEDkQSRoNKg0qDhkBFQ4WIAEAAAAABQAAAAABBwEaABEAFAAcACAAKgAAEx8BFQcjNTM1Iyc1IxUjNTczBzMnByMHFRczNzUHIzUzBxUjNQcnNyM1M8Y+AwpBOEIJcRIJkQQ4OB2DCQmDChNwcBMSMg0xITgBFz4HtgkTlglCS1QJSzleCoMJCYN5cBw4ITENMhIAAAALAAAAAAEHARoACgAOACMAJwArAC8AMwA3ADsAPwBJAAATMxcVDwEVByMnNRcjFTMVMzUvATUjFQcjFSM1Iyc1IxUzNTM1FTM1JxUjNTczFSM1FSM1NzMVIzUVIzU7ATUjFzc1IxUfARUzNS/OCgMQCrsJSxMTSxADJgkJEwoJEyYTEhITExISExMSEhMTEhJzEDgPAxMBGQleBhF/CQn0CSa7dhAHVC8KEhIKL+ESExMTExMTExMlEhITEyYTExMWEFFRDwd6eQAAAAADAAAAAAEHARoACQAPABIAACUvASMHFRczNzUHIzUzFTMnNRcBATgNcRMTqRMTqV5LODjcOAUS4RMTqKjhSxI5OQAAAAQAAAAAARMBLAANABAAFwAdAAATIwcVIwcVFzM3NTM3NScXIwcjNTMVFzM3IzUzFTPbcRI5EhKXEjsQOB4eJpY5EktLll44ASwTOBO8EhI5EpceHuG7cRITuzgAAQAAAAABGgEHAAcAAAEVBxUjNSc1ARldS14BByBZaGhZIAAAAgAAAAABGgEHAAcADwAAARUHFSM1JzUXFTM1NzUjFQEZXUtecCZe4QEHIFloaFkgcV5eWQUFAAACAAAAAAD7ARoALQBTAAA3JzYmJyYnBgcGFxYXBy4CNzU2NzY3Nj8BNjc2NzYnNx4BBzY/ARUWFxYHDgEnFwYWFx4BBz4BNzYmJw4BLwE2JicGBwYPAQYHBhUxBhYXJjc2N6sKCQMLEgQOAgMGAwoLFB8RAQEDBAkKEAgJBwoDBAYNHxsJBgQRCgYLCwklOxABCQkNCgQMEgUFBAgGEwoGDAkUAhEJDwIXCQQBEA8KBQYcEw4LHAkPFhMRDg0IDg4EGCUUBwkJDQ0PDggKCw8MEQwMFkclBwgCARATJRsUGn8HDRkJCRwPBBELESMQCQkCDRs7FhYaDQ8CFBcMChIfChcVHB8AAAACAAAAAAELARoABgANAAABJwcnBxczNycHJwcXMwEKDXBxDXcNdw1wcQ13DQEMDXBwDXcGDnFxDncAAAACAAAAAAEOARoABgANAAA3FzcXNycjBxc3FzcnIxMNcHENdg14DXBxDXYNoQ1xcQ146A1wcA14AAIAAAAAAO4BAAAGAA0AADcHJwcXMzcHNxc3JyMH4EpLDFELUaNNTAxTC1L/SkoLUVHOTEwLUlIABAAA//8BLgEHABQAHgArADIAADczFxUmJzUjDwEjFTMWFyMnNTczHwEzNyMvASMVMzcXPgEeAg4CLgI2FzcnBycHF5F/CQgLdhAGVWACBG8JCV4HC3oBegcQUFAQMREoJBcCEiEoJBYDEjgtDycYDCD0ClQHBBsQA3EJCQnOCgM2EwMQORBCDAIRIigkFwISISgkUjsMNBMOGgAABQAAAAABGgEHABIAHAAgACQAKAAANzMXFSM1Iw8BIxUzFSMnNTczHwEzNyMvASMVMzcXMxUjNzMVIz8BFweRfwkSdxAHVF5nCQleBwt6AXoHEFBQEBATEyYSEiUSJhH0CkETEANxEgnOCgM2EwMQORA1cHBwaQdqBgAAAAMAAAAAASUBBwANABkAIAAANzM/AScjNScjLwEjBxU3Mx8BMxUjDwEjDwEXIzczPwEzHM4JMgkVCmwRBl4JE1AQB2dVBhBHCRO9uh9FBhBtJgaEDC4KEAMKzsUQAyUDEAc5MV4DEAAAAwAAAAABGgEHAAoAEgAcAAAlIy8BIwcVFzM3NQcVIzUzPwEzJyMPASM1Mx8BMwEQfxAHXgkJ9AkT4VUGEHcBegYQUFAQB3r0EAMKzgkJu5UdcQMQEgMQORADAAAFAAAAAAEsAPQAEwAjAEAASQBTAAA3MzIeAR0BFA4BKwEiLgE9ATQ+ARciBh0BFBY7ATI2PQE0JiMHIgYdASMiBhQWOwEVFBYyNj0BMzI2NCYrATU0JhcUBiImNDYeAQcUBiImPgEyFhVLlhQjFBQjFJYUIxQUIxQXISEXlhchIRd6BAUcBAYGBBwFCAYcBAUFBBwGiQsQCwsQCxMLEAsBChAL9BQjFDgVIhQUIhQ5FCMUEyEXOBghIRg4FyElBgQcBQgGHAQFBQQcBggFHAQGEwgLCxALAQpACAsLDwsLCAAAAAAEAAAAAAEaARoAHwA3AEAASQAANycjDwEnBxcPARUfAQcXNx8BMz8BFzcnPwE1LwE3JwcnFzcXBxcVBxcHJwcjJwcnNyc1Nyc3FzcXFAYiJjQ2MhYHMjY0JiIGFBarChYKDSURGAMtLQUYDyUPCBYKDyUPGAUsLQYYDyUICicmGy0tGyYnCjQKJyUaLS0ZJicIQBceFhYeFyYICwsQCwvaLS0GGA8lDQoWCg8lDxgFKy0FGA8lDwgWCg8lDxhDLRkmJwg0CiclGi0tGSYnCDQKJyYbLYMPFhYeFxciCxALCxALAAAFAAAAAAEHARoAIgAmADkATABQAAA3IzY1JicmLwEmIgYHBgcmJyYjIgcGBwYPARQXIwcVFzM3NQcjNTM1IzUmNTc2NzY3NjIXFhcWFxYVMzQ3Njc2NzYyFhcWHwEUBxUHIxcjNTP9HgIEAwYIBQgJCAMRDQ0RDAUJCAcGAwQBAh4JCeEKhF1dOAIBAgMCBwIPBAkGBAECEwICBAUKAw8IBQEBAgICNl5eXuEIDwsFCQMCAwECBRQUBQMFAwkDCwMOCAmpCQmpoJYTBAUKAwUBBAQCAgQIBQMFBQUFAwUIBAIEBgEDBQoFAgKplgAAAAAFAAAAAAEaARoAEwAWACYAMAA0AAA3MxUXIyc1NzMfAhUmJzUjJzUjFycVFxUzFxUHIyc1NzM1NDYyFgcGHQEzNTQuAQYHFTM1OEsCVgkJkQY+AwgLQglxvDhBEwkJcQkJExYfFjMFJQYKDCVeJhIBCfQJAj4HMAsHCAlCOTk5SxIKSwkJSwoSEBYWAgYIEhIGCQUCNzg4AAIAAAAAAOEBLAAPABgAABMzFR4BFAYHFSM1LgE0NjcXMjY0JiIGFBaNEhwmJhwSHCYmHAkUHR0oHR0BLEwDKjoqA0xMAyo6KgN7HSgdHSgdAAAAAAQAAP/+ARwBGgAfACoASQBVAAA3JzcXFQcnNyMGJj0BLgI+ATMyFxYXFhUUBgcVFBYzJxY+Ai4BDgIWFxYXHgEHDgEuAjY3Njc1NCYrARcHJzU3FwczMhYPAT4CLgIOAh4BixgMKCgNGCMTHA4UBQsXDwkJEggDFRAQDDUIFA4CChAQDQMHyA4KDAMJCBocFAYLDAgJEQsjGA4oKA4YIxMcAQYHDAcBCRARDAMHEDgYDSgNKA4YARwTaAMUHBoQAwgSCQkRGgNnDBGbBQIOFA8HAw0QEHsDCgwhDgwLBhQcGggFAmgMEBgNKA0oDRgbFLIBCA4ODgYDDBEQCgAAAAAEAAAAAAEEAQcAAwANABEAFQAAEyMVMwcnNxc1MxU3FwcnMxUjFyMVM6kTExBeDU4TTQ5eEBMTExMTAQcTzl0OThsbTg5dqBImEwAABAAAAAABCAEtADQAPwBKAFcAADcuAQcGBwYHLgEnMjc+ATU0JyYnJiMiDgEeARcVBgcOAR4CPgE1Ni4BJzUWFxYXHgE+ATQHHgEOAi4BPgInIi4BPgIeAQ4BFw4BLgI+Ah4CBvkMIQ4MBgEBHioDBAQNEAQHEgkKDhcLBRQOCQgLCwUUHBsPAQkSCw8WExQEHSQYqAgKAg4UDwcDDRADCA4HAw0QEQoED40FDg4LBgQMEQ4JAwSbDAMJCA0EBAMqHgIGFw4KCRIHBBAaHBQDXwIFCBsbFAYLFw8JFA8CLRULCgESFQMbJTIEDxQOAgoQEA0DggoPEQwDBxEUDXsFBAMJDhEMAwYLDQ4AAAYAAP/+ARoBGgAhAC0AOQBKAFUAYQAANwYPARUWFx4BFRQOAiMiLgE+ATc1LgI+ATMyHgIVFAcuASIOAR4CPgInFjI+AS4CDgIWFxYXFhUUDgEuAjY3Njc1Mxc+AS4BDgIeATYnBxc3FzcnNycHJwdpCA0IBAQNEAcNEgkPFwsFFA4OFAULFw8JEg0HFgQNEA4HAw0QEAkBLAcQDQgBCRARDAMHyA4KDhAaHBQGCwwHChILBwIKEBEMAwYQFB0fDR8gDR8fDSAfDdAMBgJeAQIFGA4KEQ4HEBocFANfAxQcGhAHDRIJD58HCAoPEQwDBg4PngUIDhANBwQMEBB7AwoOEw4YCwYUHBoIBQJDhQcUEAYDDBEPCwLYHw4gIA4fIA0fHw0AAAAABQAAAAABLAEaAB0AKgA2AEoAVgAANwYPARUWFxYVFAcOASIuAT4BNzUuAj4BMzYWBxQHLgEjIgYXHgI+AicWMj4BLgIOAhYXIzU0JisBFwcnNTcXBzMyFhcWBxUjNSM1MzUzFTMVI2kIDQgTCggDBhgdFwsFFA4OFAULFw8THQEWBA0IDREDAQ0QEAkBLAcQDQgBCRARDAMHyBIRCyMYDigoDhgjDhgFBAETODgTODjQDAYCXgQQDA4KCQ0QEBocFANfAxQcGhABHBQPnwcIFQ0IDAMGDg+eBQgOEA0HBAwQEC8cDBAYDSgNKA0YEA0JCcU4Ezg4EwAHAAAAAAEbARoAIAAsADgAQQBKAFMAXAAANz4BNTQuAiMiDgEeARcVDgIeATMyPgI1NCYnJic1Fx4BDgIuAj4BMiciLgE+Ah4CDgEXFAYiJjQ2MhYHMjY0JiIGFBYnFBYyNjQmIgY1FBYyNjQmIgZUDRAHDRIJDxcLBRQODhQFCxcPCRINBxANBAQFBggBCRAQDQMHDhAICA4HAwwREAkBCA3QGycbGycbLwwRERcREQcLDwsLDwsLDwsLDwu+BhcPCRINBxAaHBQDXwMUHBoQBw4RCg4YBQIBXnUEDg8OBgMMEQ8KgwoQEAwEBw0QDgifFBsbJxwcLxAYEBAYEIgICwsPCwtIBwsLDwsLAAAAAAT//wAAAQcBGgAPABsAHwA1AAA3FRczNzUvAiMVMxcVIzU3IzUjFSMVMxUzNTMHMxUjNwcnNyMiBhQWOwEVIyImNDY7ASc3FzgTqRIFOA4lJTmpgyUTJSUTJV1dXRMoDRg4DBAQDAkJFBsbFDgYDShxSxMTqA44BRI5qEtLJSUTJiZLE5koDRgQGBATGyccGA0oAAAEAAAAAAEaARoAEQAWACIALgAAJS8BIwcVFzMmJyM1MxcVFhc1ByMVMzQnMzUzFTMVIxUjNSMXIg4BHgI+ATU0JgEBOA5wExNkCQZVcDkKCG4nJSUlEyUlEyVwERwNBhgiHxMh3DgFEuETCAriOToDBUJwEwpnJSUTJiYmEx8iGAYNHBEXIQAABQAA//4BGgEaAB0AKgA2AFcAYwAANwYPARUWFxYVFAcOASIuAT4BNzUuAj4BMzYWBxQHLgEjIgYXHgI+AicWMj4BLgIOAhYXFhcWFRQOAS4CNjc2NzU0JisBFwcnNTcXBzMyFhcWBxc+AS4BDgIeAjZpCA0IEwoIAwYYHRcLBRQODhQFCxcPEx0BFgQNCA0RAwENEBAJASwHEA0IAQkQEQwDB8gOCg4QGhwUBgsMCAkRCyMYDigoDhgjDhgFBAELBwIKEBEMAwYLDQ7QDAYCXgQQDA4KCQ0QEBocFANfAxQcGhABHBQPnwcIFQ0IDAMGDg+eBQgOEA0HBAwQEHsDCg4TDhgLBhQcGggFAmgMEBgNKA0oDRgQDQkJqgcUEAYDDBEOCQMEAAAFAAAAAAEHAQ4ACQAXACEAJQApAAA3FTM1FzcnIwcXDwEVFzM3NScjDgEiJicXMxUjNTMeATI2JzMVIxUzFSODEzINQg1CDjYJCeEKCkIEGiEaA2kszisIICcgPRMTExPwIiIyDkFBDjsJXgkJXgkQFRUQEktLERUVXBMTEwAAAAMAAAAAAQcBDgAJABcAIQAANxUzNRc3JyMHFw8BFRczNzUnIw4BIiYnFzMVIzUzHgEyNoMTMg1CDUIONgkJ4QoKQgQaIRoDaSzOKwggJyDwbW0yDkFBDjsJXgkJXgkQFRUQEktLERUVAAAAAAMAAAAAAQcBGgAJABcAIQAANzUzFTcXByMnNw8BFRczNzUnIw4BIiYnFzMVIzUzHgEyNoMTMg1CDUIONgkJ4QoKQgQaIRoDaSzOKwggJyCtbGwxDUJCDVsJXgkJXgkQFRUQEktLERUVAAAAAAUAAAAAARoBGgAMABgAHwAjACcAADczFyMnNTczFxUnNSMXBzM3JyM3JyMPARc3MwczBzcjJyM1MwcjNTM5MA1GCgrhCRPOaBsqaQ0fDw82ESsRKzYjQmwfMwo2PxolLnETCakJCVohMKlBbCAbHQteGnA4bUg4EzkTAAABAAAAAAEYASEAbAAAJRYVFAcGBxYdARQGIiY9ATYmJzc2NzY3NjU0LwE2JwYPASYHJyYjBhcHDgEVFBcWFxYfAQYXFRYGIiY9AQYnJicmLwEuAScuAT4BFxYXFh8BFhcWNzUmNyYnJjU0NyY/ATYXFhc2FzY3Nh8BFgEHERcSIAYFBwUBBQUFFg0RCQsQAgcGERMHKSkHGgsGBwMICQsIEg0WBQsBAQYHBhENCwkFCAEFBwMCAwIGAwcHAwcBCggNFQIHIBEZEQUJBgQKEBUpKhQQCwQGCeoUGy0YEQUKES4EBQUELggNBg4DBgcPEh0WEQoQEgQNAgsLAhATEAkIFQodEQ8IBgMPCg8vBAYGBBoEBAMIBAsBBgYBAQYGBAIBBQMIAg0EBwUEDg0GERgrHBQaFQQCAQMNCgoNBAICBRkAAAAB//8AAAEtASwAVAAAEyIOARUUHgEXMjY9AQYnJicmLwEuAS8BJjc2MzEeAR8BFhcWNzY3JicmNTQ3MSY3MzIXFhc2MzIXNjc2FzEWDwEWFRQHBgceAR0BFBYzPgI1NC4BlilFKBouHgUFDgsJBwQDAwIIAwMJBAIEBgsDAwkOCgoBCB4QFhAHCQQGCAoNDxcRFBINBwMIBQEQFg8fBAYFBR4vGSlFASwoRSkgOioKBAQZAwMCBQQFBAgKAwEGAwEBBwQEDwEBBAwIBA0TJxcRExQDBAkFBQwDAgETFAERFycSDQQDDgopBAQKKzofKUUoAAAAAwAAAAABBwEHAAsAEwAXAAA3MzUzNSM1IxUjFTMnMxcVByMnNRczNSNxEnFxEjk5Qs4KCs4JEry8OHESOTkSXgrOCQnOxbwAAgAAAAABLQEsAAwAagAAEyIOARQeATI+ATQuAQMjIiY9ATQmJz4CNzY1NCYnPgE0JicjIgYPAiYHLwEuASsBDgEUFhcOARUUFx4CFw4BBw4BJi8CLgEjBwYUHwEWHwEeATczNxUUBisBLgI+AjIeAg4BB5YpRSgoRVJFKChFAQICBAQFDRcQAwQHBgEBAgICBQgECQcgIAcJBAkEAwECAQEGBwQDEBYNAwQBBw8LBAQEAwYDBQECCAICBgMRCgYHBAMBHSwTCiQ3PjckChMsHQEsKEVSRSgoRVJFKP7wAwMjBw0EAQkQCw0OCRIHBAcJCQUCAgUECQkEBQICBQkJBwQHEgkODQsQCQEDCQUDAQgHBAUBAwEBAgIGAgILCQoBARYDAwksOj4yHBwyPjosCQAAAAAKAAAAAAEaARoADAASAB4AKgAxADcAQQBIAE0AUwAAEzIeARQOASIuATQ+ARcuAScWHwE2NSYnIxYVFAczNic1NjQnIwYVFBczNicmJysBBgcjNjcOAQ8BBhQXMyY1NDcjFyMeARcmJxc2NyMWNwYHPgE3nyE4ISE4QjghITh9CR4SDAYyAQEDLAEELwJBAQJIAQRDAgMHEAoJEQYUBQ0THQkIBAQvBAEsNCwKJhcSCS8SCjcJQgkSFyULARkhOEI4ICA4QjghSxIaBhcbOAUEDw0KCBMTCQoBCRIJCQkTEwpBHhoaHhsYBxoSEg4dDhMTCApKFhwFGR0xFhsbHB4ZBRwWAAMAAAAAASwBGgAWACcAKgAAPwE1JwcXIyIGFBY7ATUjIi4BNjsBBxc3IyczHwIVByMnNRcVMzUjNxUzcSYoDRg4FBsbFAkJDBABEQw4GA1fMhNYDTkFE6gTE6hLEzi9Jw0oDRgcJxsTEBgQGA1LEgU4DqgTE4wQfJZLOQACAAAAAAEaALwAAwAHAAAlIRUhFSEVIQEZ/voBBv76AQa8EyYSAAAABwAAAAABGgEPAAkAEQAVAB0AIQApAC0AADcXByc1NxcHMxUHNTczFxUHIzc1IxU3NTczFxUHIzc1IxU3FRczNzUnIxcVIzUoEAsgIAsP8M4JJgkJJh0TOAkmCQkmHRM4CSYJCSYdE+ERCx8MHwwPE8arCAirCBGZmR2FCAiFCRF1dX1gCAhgCBBQUAACAAAAAAEgASwABgATAAAlFSMnNTMVNwcjJwcnNzMXNzMXBwEZ/QkTzmENH0QOSw4fYA0mDTgSCf30uGEfRA1LH2EmDQAAAAAGAAAAAAEaASwABgAKAA4AEgAWABoAACUVIyc1MxU3MxUjNzMVIwczFSMHMxUjNzMVIwEZ/QkTOCUlgyYmSyYmOCUlgyYmOBIJ/fTPJjglJiUmJTglAAAABwAAAAABGgEsAAYADgASABoAHgAmACoAADczNSM1IxU3NTczFxUHIzc1IxU3FRczNzUnIxcVIzUHNTczFxUHIzc1IxUc/fMTJQolCgolHBODCiUKCiUcE14KJQoKJRwTJhL0/SWWCgqWCRODg7K8CQm8CRKpqbNxCQlxCRNeXgAGAAAAAADPAPQAAwAHAAsADwATABcAADczFSMVMxUjFTMVIzczFSMVMxUjFTMVI14lJSUlJSVLJSUlJSUl9CYlJiUmvCYlJiUmAAAACwAAAAABBwEaAAkAEQAVAB0AIQApAC0ANQA5AD0AQQAAEzMVIxUzFSMnNRcjJzU3MxcVJzM1IxcjJzU3MxcVJzM1IwcjJzU3MxcVJzM1IxcjJzU3MxcVJzM1KwIVMzUjFTMcJhwcJgl6JgkJJgklEhKMOAkJOAo5JiZBJgkJJgklEhKMOAkJOAo5JiYSJiYmJgEZEuETCfRnCSYJCSYKEiUJOAoKOAollgkmCQkmChM5CjgJCTgJJhNwEgABAAAAAAEaAQcAHAAAJS4BJy4BIgYPAScuASIGBw4CFB4BHwE3PgI0ARcCCQcKGhsZCg0NChkbGgoHCQQECQdvbwcJBNIJEQYKCgoJDQ0JCgoKBxASEhIQB25uBxASEgACAAAAAAEaAQcAHQA9AAAlLgEnLgEiBg8BJy4BIgYHBgcGFB4BHwE3Njc2NTQHBg8BJy4CND4BNzY3NhcWHwE3Njc2FxYXFhcWFRQHARcCCQcKGhsZCg0NChkbGgoNBQIECQdvbwcECRUDCmFiBQcDAwcFBwoTFAkHGhkHChMUCQcFAwcB0gkRBgoLCwkNDQkLCwoNEwkSEhAGb28GCBATCRUNCmFhBQwMDg0LBQcECAgDCBkZBwQICAQHBQYLDgcGAAAAAgAAAAABHQEbAB4AJQAANz4BJicuAQ4BBzUjFRczNSM+AR4BDgImJwceAjYnNyc1IxUX/RINDBITPEE4EBMJQikTSEouAjFLRhIQDzhCPisONhMDRRc5ORcaHAQhHC1CCRIiHRU+TTwSISIJHSYGGywNNkdLBwAAAgAAAAABFAETABEAHAAAExcHJxUHIyc1IxUHIyc1Byc3BxUzNTczFxUzNSeddw0TCjgJJgk4ChIOd0QmCTgKJUsBEmwOEXoJCUJCCQl6EQ5sWIJCCQlCgkQAAAAEAAAAAAD0AOIACwAgACwAMAAANzM1IxUjNSMVMzUzFzMnNjc2NzY0LgEnJicmKwEVMzUzNwYrATUzMhYVFAcGFyMVM3kPDzEQEDFqERgDBAgDAgMFBAYHBAMuDxwJAwIgIAYKAQMXvLxxcDExcDAwMQEDBgkFCwoHAwUCAXAuEAEkCggFAwdmEwAAAAUAAAAAAQcBGgAkAC4AOwA/AEMAADczFxUzFxUHIxUHIwcnNSMnNSMnNTczNTczNS4BNTQ2MhYVBgcXNSMVFzMVPwEzJwYHMQYmJwceATI2NycjFTM3MxUjn0sJCgoKCgk6LxAvCgkJCQkKSwQGCxALAQlCli8JIgc1KAsODRgJDQoZHBkJTBMTOBMT4QkmChIJOQk0By0MNgkSCigHFQMIBgcLCwcLBWE4bgIpJgMuCgMDCAkOCQsLCTMTExMAAAMAAAAAARoBGgAJABMAHQAANzM3NS8BIw8BFTcjNTMfATM/ATMnIw8BIy8BIzczHPQJNAiNCTT04S8OCFYIDTEBNQkMSw4INTF/JglUkAYGi1kJOBcFBRcTBRcXBYQAAAEAAAAAAPQAzwARAAA3FRQWOwEnNxcVByc3IyImPQFLBQSBHg0wMA0egQsRziUEBR4OMAsvDR4QDCUAAAQAAAAAARkBGwATACcAKwAvAAATHgEXHgEGBw4BJicuAz4DFz4BNz4BJicuAQYHDgEeARceATcnMzUjFxUjNaEWKQ8YEgwVEzc8GxQeEQINGiYrIBIhDBILEBQSMTMVGRoDHxoRJhIfGBgYGAEZAxMQGD5AGhgZAg4LIiotLCQaC/MEFA8WNzUVEhEHDhE1OzIOCQYElBIlS0sAAAUAAAAAARoBGgAHAAsAEwAXAB0AAAEXFQcjJzU3FyMVMxUXFQcjJzU3FyMVMycXBxc3JwEHEhKWExOWlpYSEpYTE5aWlvQeHg0rKwEZEksTE0sSEks5EksTE0sSEkuOHh4NKysAAAAAAwAAAAABJwEHAAwAEAAUAAA/ATMXFSM1IxUzFSMnBScVNwc1FyMTE+ESEuFdXRMBFH4zID0l9BMTcXGWExMgfrEzBlY+AAAACQAAAAABBwEaAAcADQAVABsAJAAqADIAOABBAAA3FzY0JwcWFCc3JicHFic3JiIHFzYyBycGBxc2BzQ3FwYWFwcmFwcWFzcmFwceATcnBiI3FzY3JwYnMjY0JiIGFBbvEgYGEgULEBIjCR4sBRInEgYPIT8JIxIRDy0GEgYBBRIGHhESIwkeLQYSJxIFECE/CSMSEBBMBwsLDwsLfwUSJxIGDyE/CSMSEQ8VEgYGEgYMERIjCR5NFBIGDyEQBRIbCSMSEBAWEgUBBhIFCxASIwkeOgsPCwsPCwAAAAMAAAAAASMBGwAVADAAOQAANwcvATcXPgMeAxcjLgIGBzcfAQcnDgMuAyczNRQeAz4CNwcnNycUFjI2NCYiBmM9DRkRDwgbJCgpJRwQARIEMkg+DCytGREPCBskKSkkHBACEwwYHyQjIBcHKwc9fwsQCwsQC8IZBTwHJBMfFAgGFB4mFCQ0CSciEkM9CCUTHxQIBxQeJhUJEiIcEgYGEhwREhIZCggLCw8LCwADAAAAAAEHARoADQAbACQAABMiDgEeAj4BJzYuAgciLgE+Ah4BFRQOAicUFjI2NCYiBo0lPhwONUhEKgEBEyItGCA0GA0sPTojEB0mJwsPCwsPCwEZKURJNA4cPSUZLCMS4SM6PSwNGDQgFCYdEGcHCwsPCwsAAAABAAAAAADgAQcAHAAANwcjNzI3Njc2PwE2NTQuASM3MwcmDgEPAQYUHgGpAlwCDgUHAwYGJgUECQwCVgIKDQgGJgYECS0GBgIDBQgUhxAJBAcCBwcBBgwVhxMJBgMAAAACAAAAAAEaAQcAGwAxAAA3Iyc1Iy8BPwEXHgEXFhcWNzY/Ax8BDwEjFSczNTczNycHBgcOASImJyYvAQcXMxffkwkbCQwGUAwBBQIFBg4NBgUFBAxQBgwJG5OACR0IPwMDAwgUFRMHBAMDQAkcCiEKfQcyCxsGBQcCBQMFBgIFBQkGGwsyB30JfQkjFQQFAwgICAgDBQQVIwkAAAACAAAAAAEHAQcARgCNAAA3NSMiDgEHMQYHMQYXFRQHMQYHBisBFTMyFxUWFxUWFzEWHQEGFxUWFzEeAhczNSMiLgI9ATQmJyYnNjc+AT0BNDY3NjMXFTMyPgE3MTY3MTYnNTQ3MTY3NjsBNSMiJzUmJzUmJzEmPQE2JzUmJzEuAgcjFTMyHgIdARQWFxYXBgcOAR0BFAYHBiNxAgkRDAMDAQEBAgQKBQYBAQYFBQMEAgIBAQEDAw0QCQICBgoHBAICBQkJBQICCQcFBk0BCRANAwMBAQECBAoFBgICBgUFAwQCAgEBAQMDDRAJAQEGCgcEAgIFCQkFAgIJBwUG9BMHDQgICAgIEAYFCgUCEgIBAgMBAwUFBhAICAEHCAgNBgETBAgKBhkGDAULBwcLBQwGGQkNBAK8EgYNCAcJCAgQBgUKBQISAgECAwEDBQUGEAgIAQcICA0HARIECAoGGQYMBQsHBwsFDAYZCQ0EAgAAAAMAAAAAAKoBBwALABQAHQAANx4BPgImJyYOARY3IiY0NjIWFAYnIiY0NjIWFAaMBAoJBQEEBQYPCAIRCAsLEAsLCAgLCxALCykDAQUICgkDBAMND1YLEAsLEAteCxALCxALAAADAAAAAAEcARwAHAA5AEUAABMeAgcOASMiJw8BIxUHIxUHIyc1PwEmNTQ+Ahc2NzE2LgIHDgEVBhcPARUzNTczNTczPwEWMzI3PgEuAgYHBh4BNtUXIwwEBi8eDQsPBxMJHAo4CQJeBBEdJSwSBQMJGCARFh4BBQJeJQkdCRcRCgwMFwMDAQUICwkCBAMNDgEYBSArFh0mBBIDHAocCQkrB10NDhIjFwmKDhcRIBgJAwUkFw0MCl8eHQkcCRMDBEIECgkGAQUEBw8IAwAGAAAAAAEaARoALwA2ADkAPQBAAEcAACUnMzUjNSMVIxUzByMVMx4BMjY3MzUjJzMVIw8BFzM3LwEjNTMHIxUzHgEyNjczNQcGIiYnMwYnIzcfASM/ARcjFwYiJiczBgESHhNeE14THgcCBRgeGQUCCB86JQglB6kHJQglOh8IAgUYHxgFArcGDwwELwQBJhN2F4MXdhMmIAYPDAQvBKlLExISE0sTDhISDhNLlgQvDw8vBJZLEw4SEg4THQMHBgYZLYscHIotHAQIBgYAAAAABgAA//0BLQEYAAcACwAXAB8ALAAzAAATIwcVFzM3NQc3Fw8BJzMXNzMHIyIGDwEXBycjFzM3Jjc2FzIWFRQOAS4CNhc3JwcnBxeZCm9vCnPWXmFhBW0hUVQiDwcZJwgTEBVRIW0KFAQrDxEXIRMfIhgHDS4iDxwQDBgBGEwQSkoQCEFBP0JKNzcKHRYNDg43Sg0JPQoBIBgRHA0GGSEgPy0LJQ4PEwAABQAAAAABLAEYAAcACwAXAB8AKAAAEyMHFRczNzUHNxcPASczFzczByMiBg8BFwcnIxczNyY3FBYyNjQmIgaZCm9vCnPWXmFhBW0hUVQiDwcZJwgTEBVRIW0KFAQTIC8hIS8gARhMEEpKEAhBQT9CSjc3Ch0WDQ4ON0oNCQ4XISEvISEABAAAAAABDAEYAAcACwASABkAABMzFxUHIyc1NwcXNwcXMzcjBycXJzMXNzMHjwpzcwpvdF5eYdNtCnEiVFFMbSFRVCJxARhMEEpKEDlBPz83Sko3N3lKNzdKAAACAAAAAAEaARoABwALAAATBxUXMzc1JxUjNTMmExPhEhK8vAEZEuETE+ES8+EAAAACAAAAAAEaARoABwALAAATBxUXMzc1Jwc1MxUmExPhEhLhuwEZEuETE+ES8+HhAAADAAAAAAEaARoABwALAA8AABMHFRczNzUnBzUzFTM1MxUmExPhEhLhS0tLARkS4RMT4RLz4eHh4QAAAAAFAAAAAAEaARoABwALAA8AEwAXAAATNzMXFQcjJzcVMzUHMxUjNzMVIzcjFTMTE+ESEuETE+HPJiY5JSVdJSUBBhMT4RIS4eHhEhMTExMTAAQAAAAAARoBGgAHAAsADwATAAATBxUXMzc1Jwc1MxU3NTMVNzMVIyYTE+ESEuElE3ATJiYBGRLhExPhEvPh4UuWlpbhAAAAAAQAAAAAARoBGgAHAAsADwATAAATBxUXMzc1Jwc1MxUzNTMVMzUzFSYTE+ESEuElE3ATJgEZEuETE+ESqJaWlpaWlgAAAwAAAAABGgEaAAcACwAPAAATNzMXFQcjJzcVMzUzFTM1ExPhEhLhExOWEjkBBxIS4RMT4ZaW4eEAAAAAAwAAAAABGgEaAAcACwAPAAATBxUXMzc1Jwc1MxUHMxUjJhMT4RIS4eHh4eEBGRPhEhLhE6mWlhI5AAAAAwAAAAABGgEaAAcACwAPAAATNzMXFQcjJzcVMzUzFTM1ExPhEhLhExM4E5YBBxIS4RMT4eHhlpYAAAAAAgAAAAABGgEaAAcACwAAEwcVFzM3NScHNTMVJhMT4RIS4eEBGRLhExPhEqiWlgAAAwAAAAABGgEaAAcACwAPAAATBxUXMzc1Jwc1MxUzNTMVJhMT4RIS4UsShAEZE+ESEuET9OHh4eEAAAAAAgAAAAABGgEaAAcACwAAEwcVFzM3NScVIzUzJhMT4RIShIQBGRLhExPhEvPhAAAAAwAAAAABGgEaAAcACwAPAAATBxUXMzc1Jwc1MxUzNTMVJhMT4RIS4YMTSwEZE+ESEuET9OHh4eEAAAAAAgAAAAABGgEaAAcACwAAEwcVFzM3NScHNTMVJhMT4RIS4YMBGRLhExPhEvPh4QAAAgAAAAABGgEaAAcACwAAEwcVFzM3NScHNTMVJhMT4RIS4eEBGRPhEhLhE+HOzgAABgAAAAABGgEHAAcACwATABcAHwAjAAATBxUXMzc1Jwc1MxU/ATMXFQcjJzcVMzUHNzMXFQcjJzcVMzU4EhJLExNLSzkSORISORISOUsSORISORISOQEHE7wSErwTz7y8vBMTOBMTODg4gxISORISOTk5AAAGAAAAAAEoAQcABwALABMAFwAfACMAAD8BMxcVByMnNxUzNRc/AR8BDwEvARc3LwE3MxcVByMnNxUzNV4JJgkJJgkTEikGIwxGBSMMMkASQb8JJgkJJgkTEv0KCs4JCcW8vAcMDQXCDA0FwLAGsAwKCs4JCcW8vAADAAAAAAEaARoACAASADcAADciBhQWMjY0JhcnBzcnMzcXMwcnDgEHIxUUFjsBFhcjBiY9ATQmJy4BNTQ3PgMzMh4BFRQHBuEXISEuISECGRgJFhsKChwXHxIdByMDAxoDBSIKDwoJDA4MBRATFQwXJxcHBIMhLiEhLiFdEhIcEB8fEFIDGBIpAgQKCAEPCh4NGAkLHxEXEwoPCwYWJxcSDgkAAAMAAAAAAR0BGgA7AFgAbAAANzY3Nj8BNjc2NTQuBCIOBAceARceAR0BFB4COwEyPgI1JyMmJxUUBisBIiY9ATM+ATM3Mhc2NzY3NjMwMScmJyYnJicGBwYHBg8BFxYXFhcWFzY3NjIXFhcWFAcGBwYiJyYnJjSoBQgGBAICBwUGCxATFRgVEw8LBgEBDQwKCgMHCQUeBQkHBAECCQcDAx4CBCUDCwcCBDMGDgsNBwUHCAgLCAoEBQoICwcJBwcJBwsICh8JBgIHAgYJAgIJBgIHAgYJAngKCAUGBwgFDQ8MFRMPCwYGCw8TFQwSHQwKFw0eBQkHAwMHCQUIAQYPAgQEAikGCAFQGA8KBQIBAQUGCg4TEw4KBgUBAQECBAYLDQUGCQICCQYCBgIGCQMDCQYCBgAAAgAAAAAA9QEaACEAKwAANw4BHQEUBgcGJyMGJj0BNCYnLgE1NDc+AzMyHgEVFAYHIxUUFjsBMjY12wkLCAcEBR4LDgoJDA4MBQ8TFgwXJxYNMykDAx4CA4oJGA0eBw0DAgEBDwoeDRgJCx8RFxMKDwsGFicXEh4uKQIEAwMAAAACAAAAAAEaARoADAAWAAATMxUjFTM1MxUHIyc1IRUjNQcnNyM1MxxVS+ESCfQJAQYSfw1+Y3oBGRLhS1UJCfR6Y34NfxIAAAACAAAAAAEaAPQAJABJAAA3MzIeAR0BFA4BKwE1MzI2PQE0JisBIgYdAR4BFxUuAT0BND4BFzUeAR0BFA4BKwEiLgE9ATQ+ATsBFSMiBh0BFBY7ATI2NzUuAVM5Eh0RER0SCQkTGhoTORMbARUQGCARHaAYIBEdEToSHRERHRIJCRMaGhM6EhoBARX0ER4RBBEdEhMbEgQTGhoTBBAZAxMDJBgEER4RTBMDJBgEER4RER4RBBEdERIbEgQTGhoTBBAZAAAAAwAAAAABBwD0AAMABwALAAA3NTMVJzMVIzcVIzVxS3GWlrzhSxMTXhNeExMAAAAABAAAAAABBwD0AAMABwALAA8AADczFSMVMxUjNTMVIzUzFSMmqKiWluHhzs6DEiYThBNLEwAAAAAGAAAAAAEaAQcABgAKAA4AEgAzAGsAABM3MxUjNQc3MxUjFTMVIxcjFTMnPwE2NCcmJyYiBwYHBgcVMzU0PwEyMxcVFg8CFTM1IxcyFxYVFAcGBwYiLgEvASYnMTMVFxYzPwIvASsBNTczPwEnNCYPAQYdASM1NDc+AjIeAhQHKwcNDQczu7u7u7u7u9MBAQMBAgcFCAUGAgEBEAEBAQIBAQECEyURCwIBAwECBwUIBQQCAgEBEAECAQEBAQEBAQQEAQEBAQMBAQEPAwEEBgcGBgQDAQAHOSoGAhM4EzgTUgEBBQgEBwICAgIHAwMBAQECAQIBAwMDFQsNOgIEBgMDBwICAgMCBAMEAgIBAQICAwIMAQEDAgEBAQEBAgEBBgUCAwICAwcJBAAAAAADAAAAAAEaAPQAAwAHAAsAADc1MxUnIRUhNxUjNROpqQEG/vrOzksTE14TXhMTAAAFAAAAAAEHAPQAAwAHAAsADwATAAA3MxUjFTMVIzUzFSMnMxUjOwEVI0upqYODvLw4zs44ExODEiYThBNLE6kACAAAAAABGgD0AAMABwALAA8AEwAXABsAHwAANyMVMxUjFTMHMxUjFyMVMzczFSMXIxUzBzMVIxcjFTMmExMTExMTExMTEyXOzs7Ozs7Ozs7OzvQTJRMmEiYTvBMlEyYSJhMAAAQAAAAAASMBIAAWACcAMwA/AAATNxcVByc1IyIHBgcGBycmNz4DFzMXFTcnFSMmBgcGBzY3Njc2Mwc+AR4CBgcGLgE2Fx4BPgImJyYOARasEmRkEggfDxYUFRcTAQQEGSgwGg0WR0YkGC4RFQkUFBIWDxxCDB0aEAINDBMrGQkeBxEQCQIIBwwaDwYBFwlQEUwJIwMEDQ8eBg4OGSwgEQFBIzY4IQERERYdEwoIAwJKCQINGB0bBwwJJCw7BQIIDxEQBAgGFhoAAQAAAAABGAEaAA8AACUuAiIOAQcjPgIyHgEXAQUFHzA2MB8FEwUlOEA4JQWpGisYGCsaIDMdHTMgAAAABAAAAAAA4gEQABAAHgAnADMAADcuASMxIg4CHwEzNzYnNCYnOwEeARcUDwEnJjU+ARcmDgEeAT4BJic+AR4CBgcGLgE2ywocDxUiFAEMOwo7DAELQQECFiABCTAwCQEgIgYQCAMNDwkDJggVEgsBCQkMHhEF+goMFSIqEnd3EhYPGw4BIRcQDWFhDRAXISgFAw0PCQMNDxQGAgkRFRIFCAYZHgADAAAAAAD0AQcABwALABsAAD8BMxcVByMnNxUzNSc1NCYiBh0BMzU0NjIWHQE4E5YTE5YTE5YTIS4hExUgFZYTE14SEl5eXhMlGCEhGCUlEBYWECUAAAAAAwAAAAABBwEaABEAGQAdAAA3IzU0LgEiDgEdASMHFRczNzUnND4BFh0BIxcjNTP0ExQjKCMUExISvBOpIS4hcJa8vKklFSIUFCIVJRNwExNwOBggASEYJYNwAAAEAAAAAAEaARAAFgAaAB4AMAAAEyIOAR0BFzM3NTQ2MhYdARczNzU0LgEHIzUzFyM1Myc1NCYiBgcVIzU0PgEyHgEdAZYkPCMTOBMWHhcSORIjPFw4OKk5OTkgLiEBOB40PDQfARAjPCReExNeDxYWD14TE14kPCPhODg4ExMYIB8WFhMeNB4eNB4TAAMAAAAAARoBDwAHAAwAFAAAEyMHFRczNzUnFwcjJxcjNR8BMz8Bmwp+CfQJg2oaoBjZ4RQIqAgVAQ9LlQkJlTg/HR2FchoDAxoAAAADAAAAAAEaAPQABwANABAAAD8BMxcVByMnNxUzNQcjNyMXEwn0CQn0CRPhawxkvF7qCgqoCgqVjIxSXEkAAAAAAwAAAAABBwD0AAMABwALAAA3FTc1FzUnFRc1NxUmQUs4S0LFjSmNsI0jjSONKY0AAwAAAAAA9AEHAAMABwALAAATMwcjFyMnMxcjBzNnjSmNsI0jjSONKY0BB0JLOEtBAAAAAAQAAAAAAPwBEAADAAcAFQAZAAA3MwcjFTMXIz8BJyMPARUXBxczPwE1BzMHI2x3I3d3I3dkLAiNCC8sLAiNCC+QdyN3/TgTOEJGDgVLCUZHDgVLCQ44AAAEAAAAAAEQAPwAAwAHABUAGQAANxU3NTMVFzUPASc1PwEzFzcXFQ8BIzcVNzUvOBM4QUcOBUsJR0YOBUsJDjjAdyN3dyN3ZCwIjQgvLCwIjQgvkHcjdwAAAgAAAAABGgDPABAAFwAANzMVIzcHIycUFRcjNTMXFhc3NSMVIxc3dycbASEXIQEZKA8OAZwlJDc2znpjY2MHLy16KysEFkJCNjYAAAMAAAAAARoA7gAPABcAGwAAPwEXFQcnDgIuAjcvATUXBhUUHgE2NycXNQcm5wwMcgMPFRYPBgMmCEABCxAOAljX161ACqEKHgsPBgUQFQsKCiQ9AgIJDAIICCw5ij0AAAIAAAAAAO4A9QA4AEIAADcGJwYuAjc0PgIzMhcWFRQGIyI1DgEjIiY0PgEzNhYXNzMHBhYzMjY1NCYjIg4BFQYeAjcWNycUMzI2NzYjIgbEGh8RIRkMAQ4dJhQkFhkfFxUGEQoOEQ0XDQkPAwQRDwMDBg4VJR8YJRUBCRQbDhwZTBELEAQJGQ4SRA8BAQwZIBIUJx0QExUjHicSCQkTIh0SAQoIDzwNCh8WHSAYKRgPGhQKAQENOBcSESQeAAAAAAMAAAAAASwA4QADAAcACwAAJSE1IRUhNSE1ITUhASz+1AEs/tQBLP7UASzOE6kTOBMAAAACAAAAAADrAP4AJgA7AAA3JyMHFzcVMRUxFRQfARYXHgEfAR4CHQEzNTQuAi8BLgI3JxcHNjcmLwEGDwEOAx0BMzU0PgE3xSgOKA0VAQICAgQNBw4HDAcaBQsMBw0GCwYBARU0AwMHBAIFBg0HDAsFGgcMB9UoKA0UEwkGBQULBgYLEQgPBxETDRERDRgSEAcOBhAUCx0UUwQDCgwFBwYOBw8TGA0REQ0TEQcAAwAAAAAA/gEQAAsADwAjAAA3NDYyFh0BFAYiJjUXNTMVJwYuATUzFB4BOwEyPgE1MxQOASNeIS4hIS4hLxISGisZExQiFRIVIhQTGSsa2BchIRdLGCEhGI0mJiYBGisZFCMUFCMUGSsZAAAABAAAAAAA/gEaAAsAHAAgADQAADc1NDYyFh0BFAYiJjciDgEdARQeATI+AT0BNC4BAzUzFScGLgE1MxQeATsBMj4BNTMUDgEjZxwmHBwmHC8SHhISHiQeEhIeGxISGisZExQiFRIVIhQTGSsajUsTHBwTSxQbG6ARHxFLEh4SEh4SSxEfEf7nJiYmARorGRQjFBQjFBkrGQADAAAAAAEaARoAEQAWABoAABMjFSMHFRczFTM1Mz8BNS8BIxcjNTMXJzMVI5YTZwkJZxNUBygoB1RQwMAfp15eARklCksJg4MCJg4lA0s4HAkSAAADAAAAAAEaARoACgAVACUAABMfARUHJwcnNT8BHwE1JxUjNQcVNzE/ARcVByc3IxcHJzU3FwczoXQEDnV1DgR0FWdnE2dnIw4uLg0ecR4NLi4NH3IBGUsHrAhLSwisB0urQpZCNjZClkJaDS8NLg0eHg0uDS8NHwADAAAAAAEaAPQAEwAeACIAACUnIwcVMzUXBh0BHwEzPwE1NCc3BxUHJzU2NxczNxYvATcXARmABoATKw8FSwhJBg8/QkFCAQ0xBzANQWdnZ8IyMndeERUaCAciIggIGRUZRwEeHgEWEhMTEhEoKCgABAAAAAABEAEaAAkAEwAdACcAADcHNSMVJwcXMzcnFzcVMzUXNycjDwEzFSMXByc1NxczJzcXFQcnNyPAIRIhDTAOMG4NIRIhDTAONSFBQSENMTFlQSENMTENIUFjIEBAIA0wMJMNIEBAIA0wUCATIA4xDTAtIA0wDTEOIAAAAAAFAAAAAAEaARoADAAQABgAHAAgAAATNzMXFQcjNTM1IxUjNxUzNQ8BFRczNzUnBzUzFQczFSNxCZYJCS8mhBIShOsJCZYKCoyDg4ODARAJCYMKE0sTORMTXgqDCQmDCiYTExJLAAAAAAUAAAAAAQcBBwAMABUAJwArADQAACUjFSYjIgYUFj4BPQEHMhYUBiImPgE3DwEVJiMOARQWMjY9ATcVMzUHFQc1BzIWFAYiJjQ2AQcTDQ8UGxsnGy4LEREXEQEQMZYJDQ8UGxsnG4QTE4MvCxERFxAQqS8JGyccARsTVTgRFxERFxGVCQmNCgEbJxsbFHEIElQKJQkmjREXEBAXEQAAAAADAAAAAAEZARcACQARAB0AADczNxcVBycjJzUfATUPASMVMzcXBxcHJwcnNyc3Fxw0SRAQSTQJSDs7By4utw0gIA0hIA0gIA0gzkgG9AZICV5YO8c7AktJDSAhDSAgDSEgDSAAAwAAAAABLAEaABAAEwAfAAATHwEVIzUjNSMVMxUjJzU3MwcVMxcjNSM1MzUzFTMVI7JAAhNLXktUCQl+BDYVEzg4Ezg4ARdBCCUTS88SCeEJEjnOOBM4OBMAAAADAAAAAAEsARoAEgAcACgAAAEjLwEjBxUXMzUjNTM/ATMHMzUHIw8BIzUzHwEzByM1IzUzNTMVMxUjARB/EAdeCQlnXlUGEHcBExN6BhBQUBAHehMTODgTODgBBw8DCc4KE3ECECVUHAMQOBAC9DgTODgTAAEAAAAAAPQAxQARAAA3FRQGKwE3JwcVFzcnMzI2PQHhBQSBHg0wMA0egQsRxSUEBh8NMAowDR8QDCUAAAQAAAAAARoA0gAIAA8AFgAoAAA3Nh4BDgEuATYXLgEOARYfAR4BPgEmJzcVFAYrATcnBxUXNyczMjY9ASwTLhoJJy4aCUYJFBIKAQUNCRQSCgEFnAYETR4NMDANHk0MEMUNCScuGgknLgIFAQoSFAkNBQEKEhQJJSUEBR4OMAsvDR4QDCUAAAAFAAAAAAEaAQcABwALAA8AEwAXAAATMxcVByMnNRcVMzUHMxUjFyMVMwczFSMc9AkJ9AkT4byWlnFxcXFLSwEHCrsKCrsJqakmEhMTExIAABcAAAAAASwBLAADAAcACwAPABMAFwAbAB8AIwAnACsALwAzADcAOwA/AEMASwBPAFMAVwBbAF8AADcjNTMVIzUzFSM1MxUjNTMVIzUzHQEjNRczFSM3MxUjAyM1MxcjNTsCFSMzIzUzFyM1MxcjNTMVNTMdASM1MysBNTMXNzMXFQcjJzcVMzUXMxUjFTMVIxUzFSMnMxUjExMTExMTExMTExMTExMTJRMTJRMTJRISExMTOBISJhMTJRISExMTzhMTSxODExODExODJRMTExMTE5ZeXs4TOBM5EzgTORMlExMTExMTARkTExMTExMTExMlEhImExNLEhKpExOpqakTJhImEyWDEwAAAAAHAAAAAAEaARoABwALABMAFwAbAB8AIwAAEzczFxUHIyc3FTM1BzczFxUHIyc3FTM1FyMVMwczFSMXIxUzJhKpExOpEhKplhNeEhJeExNeXRISEhISEhISAQcSEuETE+Hh4SYTExMSEhMTExMlEyUTJgAAAAQAAAAAARoA+gAlAEAASQBSAAAlNjc2JyMmBwYHBgcmIgcmJyYHMQYXFhcGFRQXFhcWMjc2NzY1NAciJyYnJjU0NzY3MhcWMjc2MxYXFhUUBwYHBiciBhQWMjY0JjMiBhQWMjY0JgEEAwEBBwQEBggJDA4SQhIZEgkFBwEBAxURDx8aUxsfDxGDIRAYDA0RCA8KFhESEhUKDwgRDQwYEEoIDAwQDAxKCAwMEAwMwggKEhIBAgEFBQkFBRAEAgESEgoIFyApGBUKCAgKFRgpIHgDBAsMGRMPCAIBAQEBAggPExgNCwQDUhEYEREYEREYEREYEQAEAAAAAAEtARoADAAQACIALgAAEzMXFSYnNSMVByMnNRczNSMXIgcjDgEXBxc3HgE+Ai4CBwYuAT4CHgIOATjPEgkKXRVcEhJeXsMMCgERCQssDSwJFxUPBwQNFQgKDwcEDBAQCQEGDAEZEmQEAl7MFRLPz89xBwonESwNLAYDCBAVFhIKSwELDxEMAwYNDw4IAAAACgAAAAABGgEcAAsAFwAkAC0ASABiAHcAkgCeAKcAADcOAS4CNjc2HgEGJy4BDgIWFxY+ASY3NhYXHgEOAiYnJjYXFjI2NCYiBhQHMxUjIiY9ASImPQE0NjsBBgcjIgYdATMVFBY3JisBIgYdARQWMxUGFxYXMz4BPQEyNj0BNAcjFRQGKwEiJj0BIzUmNjsBMh4BFRcjNTMyNj0BMzU0JisBJiczMhYdARQGIxUUBiciDgEeAj4BNTQmByImNDYyFhQGqwkUEgsCCggNHhIGGAQKCQYBBQUGDwgDKwkUBwUEAwkOEQYJAhQDCAUFCAWcIiIJDgcLEw4iBwMYBgkTAosKDi4OEwsIAQcFByYICwcLEhMCAh4CAhIBCQYuBQcDNCIiAQMTCQYYAwciDhMLBw6uCQ4GAwwREAkQDAQFBQgFBdUGAgkRFBIGCAYZHyYDAQQJCgkDBAQMDwQFAgcFDQ4LBgMGChoWAwUIBgYIpRMNCiIMCCkNFAgLCQUqNQICegoUDjsIDCwJBwUBAgwILAwIPA1KPwECAgE/PQUJBQcCdhMCAjUqBQkLCBQNKQgMIgoN2QoQEQwDBg8IDBEmBQgGBggFAAAABQAAAAABBwEsABUAGQAdACEAJQAAExUXFQcjJzU3NTMVMzUzFTM1MxUzNQMzNSMXMxUjFyMVMwczFSP0ExO8EhITJhImEyWpvLwmcHBwcHBwcHABLBMS9BMT9BITExMTExMT/uf0JhM4EzgTAAAAAAQAAAAAARoA9AAKABAAFAAcAAA3HwEVDwEvATU/ARcHHwE/AQcXNScXFTc1BxUHNaFsDAdzcwYLawRLCkA5EbFeXnFeJhP0HQl+CSAgCX4JHRMTAxEPBXcabBkZbBprCjAFMAADAAAAAAESARoAIwAtAEIAACUnNSc1NCcmJyYjIgYdAQcGFB8BFhcWNzY/AQcUHgIyPgInJj4CHgEdAQcXDgEmLwEmND8BFQYUHgE+ASYnNRcBERZcAgQLBgUMEDkJCUQEBQsKBQRdDQEGBwoIBgKWAQEDBAYEEhMBBQYBRAMDUgUGCgkEAwRITzoBXBcGBQsEAhAMPTgIFwlEBAIEBAIEXSoECQcEBAcIswIEAwEBBQQXE6oCAgICRAIIA1E1BAsJAwUJCgM1SQAAAAACAAAAAAEaARoADAATAAA3Mj4BNC4BIg4BFB4BNyMnNxc3F5YkPCMjPEg8IyM8EQ0rDSRPDRMjPEg8IyM8SDwjTSsNJE8NAAADAAAAAAEWARsABgAcAC8AADczNycHJwc3HgEXFhUUBw4BBwYnLgM3Njc+ARc2NzYnNCYnJicmBgcOARYXHgF2DVUNTyQNVhYpECYeDyYWMCcUHhADBw8mEishJhkZAhEPHSYTJg8gFyEiECZgVg1PJA2OARQQKTcrJxIXBAkWCyIqLhUuGQwM9AkfIiUXKhAdAwEJCxhOSBMKBgAEAAAAAAEaARsACwAXACMARQAANyMVIxUzFTM1MzUjJy4BDgIWFxY+ASYnPgEeAgYHBi4BNhczMhYdASM1NCYrASIGHQEzFRQWOwEVIyImNzUiJjc1NDb0EyUlEyUlVAQKCQUBBAUGDwkDJgkUEgsCCggNHhEGCi4OExIJBi4GCRMCAg8PCQ4BCQsBE3EmEyUlE7gDAQUICgkDBAMNDxQGAQkRFBIFCQcZHkUTDg4OBggIBjM/AQITDQksDAgyDhMAAAAABAAAAAAAzwEaAAgAEQApAD0AABMyFhQGIiY0NjciBh4BMjY0JhcjIgYdAQYWMxUGFjsBMjY9ATI2JzU0Jgc1JjY7ATIWBxUjFRQGKwEiJj0BlggLCxALCwgQFgEVIBYWBy4OEwELCQEOCR4KDQgLARNKAQkGLgYJARICAh4CAgEHCxALCxALEhYfFhYfFlQTDjIIDCwJDQ0KKwwIMg4TVDMGCAgGMz8BAgIBPwAAAAABAAAAAAEsAQcALQAAEwcVMzUzFRczNzUzFRczNzUzFRczNzUzFSM1IxUjNSMVIzUjFSM1IxUXITc1JxMTEyUKEgolChIKJQoSCiU4Ey8SLxM4ExMBBhMTAQcTcXFnCgpnZwoKZ2cKCme8OTk5OTk5S0sSErwTAAAEAAAAAAEaARoABQAOABsALQAANzMuAScVNx4BFxYVIzUyBxczDgEjIi4BNTQ2NxcyPgE3NjUjNSIHDgIXFB4BvEkGKBwBIzMGAXAJLxNcBzMiGSwZKyATGzAgBAJxCQoaKxkBHjO8GygGSVwGMyMKCXCDEyArGSwZIjMHzBgrGgoJcQIEIDAbHzMeAAIAAAAAAQcA4QAcADcAACUVIyImJyMOAysBNSMnNzM1MzIWFxYXMz4BMwcGBwYPASMnJicuAScVPgE3Nj8BMxcWHwEWFwEHBgsTBzYEDA8SCgk8ExM8CQoRCBAINgcTCwkDAwUDBE0CBAkEDwYGDwQJBAJNBAECBQIEzoMKCQkOCgVLCglLBQUKEgkKFAECAwYFBgwIAwcBgwEHBAgLBwYDAgQCAQAAAAIAAAAAAS0BBwA2AFAAABMzFRQGBxUeARcGBzEmLwE1NzY/ATY3IxYXFh8BFQcGBw4BBzMGByMVByc1IzU0Njc2NzUuATUXPgIXHgEXFhQHDgEHBiInLgEnJjY3Njc2S4MJCgkNBAkICQwGBQMCBAIBWwIBBAUGBwsIBAcBXgUECgkKSwYEChIJCowHDg8IDhUEAgIEFQ4IDwcOFgQCAQEFDAQBBwYLEwc2BAsGAwUKBAJNBAECBQMDBAIFAwRNAgQJBA8GBwg8ExM8CQoRCBAINgcTC5gEAwEDAxUPBw8IDhUEAgIEFQ4IDwcQCwQAAAIAAAAAAOEBBwAcADcAABMzFRQGBxUeAx0BIxUHJzUjNTQ2NzY3NS4BNRcWFxYfARUHBgcOAQczLgEnJi8BNTc2PwE2N0uDCQoJDgoFSwkKSwYEChIJChQCAQQFBgcLCAQHAYMBBgQIDAYFAwIEAgEBBwYLEwc2BAwPEgoJPBMTPAkKEQgQCDYHEwsJBAIFAwRNAgQJBA8GBg8ECQQCTQQBAgUDAwAAAAQAAAAAARYBGwAVACgALgAxAAATHgEXFhUUBw4BBwYnLgM3Njc+ARc2NzYnNCYnJicmBgcOARYXHgEnNxcVByc3FTehFikQJh4PJhYwJxQeEAMHDyYSKyEmGRkCEQ8dJhMmDyAXISIQJicOVFQOEjoBGQEUECk3KycSFwQJFgsiKi4VLhkMDPQJHyIlFyoQHQMBCQsYTkgTCgarCDgQOAhfTicAAgAAAAAA8AEHAAUACAAAEwcVFzc1BzUXRw8PqaWPAQcI4QhwEGe+XwAAAAACAAAAAADiARoAFQAfAAATIxUjBxUUFhcVMzU+AT0BJyM1IxUjFw4BLgE9ATMVFIMSHQklHRIdJQkcEyY7DCIfE3ABGTgJQhwrAzk5AyscQgk4OHMMBg0cETg4FwAAAAAFAAAAAAENAO8ABwAPAB8AJwAvAAA3IycjByM3MxcnJicxBg8BFzUzMhYVFAYHFR4BFRQGIycVMzI2NTQjBxUzMjY1NCOgEw8+DhM4ERAXAQEBAhZuKRMWDgsOEhsUGREOEBwTFw8QI14oKJBZPgMHBwM+N5ASDwwSBAEBEw8SF4EvDgwVPjQODBoAAAgAAAAAARoBBwAHAAsADwATABcAGwAfACMAABMzFxUHIyc1FzM1IxcjFTMnIzUzBzM1IxczFSMnIxUzBzMVIybhEhLhExPh4c68vBOWljhLSxMlJTlLS0tLSwEHE7wSEry8vBM4ExKDSxMlOBMlEwACAAAAAADrAOsABwALAAA/ATMXFQcjJzcVMzVCCZYJCZYJEoThCQmWCQmNhIQAAAAFAAAAAAEaARoABwALAA8AEwAXAAATMxcVByMnNRczNSMXMxUjNyMVMzczFSMc9AkJ9AkT4eESJiZxJiYlJiYBGQn0CQn06uETvLxxcZYAAAEAAAAAARoA9AASAAA3JyMHJyMHIxUzPwEXMzcfATM13SETIxYSFjU8Cg0WEyMbCUODcX1dURIHMl+EWAYSAAAEAAAAAAEHARoADAAZADwAQAAAEyIOARQeATI+ATQuAQciLgE+AjIeARQOATcuASIOAgczND4BMh4CFAYPAQ4BFxUzNTQ2PwE+AjQmBzMVI40hOCEhOEI4ISE4IRwwHAEbMDgvHBwvAQUPEQ8KBAEXBQcGBQQCBAMOAwQBFgQDBwQGBAQuFRUBGSE4QjggIDhCOCHhHC84MBwcMDgvHJ4FBgYLDQcFBwMBAwUICQQQBAkFDAkECAQIBAoLDQxeFgACAAAAAAEKAQ0AEAAiAAA3DgEVMjMyFhQGIyImNTQ2NxcOARUyMzIWFAYjIiY1NDY3F4YjIAMFExwaFRsdLy+ZJCADBRMcGhUbHTAuFuoWMyQYKxsqJjVOGyMWMyQYKxsqJjVOGyMAAAgAAAAAARkBGgAMABkAJQAxAEMATgBSAFYAADc0NjcnDgEUFhc3LgE3FBYXNy4BNDY3Jw4BFyc+ATQmJzceARQGNwceARQGBxc+ATQmBxYPARcHJyMHJzcuAT4CHgEHDgIeATI2NC4BFyMHMxcnIwc4EA8OERMTEQ4PEBQNDA0JCgoJDQwNkA4KCgoKDgsNDQ4NDhAQDg0RExNLAQUFQBEOaA8RQAUEBw0PDQkeAgQBAgUGBgQFAgURJhkRNhDDFSYODREsMSwRDQ4mFBAfDA0JGBoYCQ4MH00OCRgaGAkNDB8hH4YNDiYpJg4NESwxLEIKCASRCCEhCJEGEBAJAQYMAQEEBQUDBQcEAickOCUlAAAAAAUAAAAAARoBCwAVAB4AKgAzAD8AADcUBzM2LgEOAh4BNzUGLgE+Ah4BBzI2NCYiBhQWFzI3Fw4BIiYnNx4BNzI2NCYiBhQWFzMVMxUjFSM1IzUz4QETAyA7QC4MHDkgGi4YBiMzMR56CAsLEAsLLhQODQkZGxkJDQcSLwgLCxALCzcTJSUTJSWfBAUgORwMLkA7IAMTAxgvNCcNEysRCw8LCw8LLw4NCQsLCg0HCC8LDwsLDws4JhMlJRMADgAAAAABGgD0AA8AEwAXABsAHwAjACcAKwAvADMANwA7AD8AQwAAJSMiBh0BFBY7ATI2PQE0JgcjNTMHIxUzByMVMzczFSMXIxUzJzMVIzcjFTMnMxUjFSMVMwczFSM1MxUjNyMVMwczFSMBB88ICgoIzwcLCwfPzzkSEhITEyUTExMTE4NdXYMmJl4TExMTSxMTExM4EhI4Jib0CwiDCAsLCIMIC5aDExITEzgSORISEjgTOBITExMSXRISEhMTAAAAAAMAAAAAAOIA4QAIABUAHgAANzI2NCYiBhQWNxQOASIuATQ+ATIeAQc0JiIGFBYyNpYICwsQCwtTFCMoIxQUIygjFBMhLiEhLiGDCxALCxALExQjFBQjKCMUFCMUFyEhLiEhAAADAAAAAAEWARsACAAeADEAADcyNjQmIgYeATceARcWFRQHDgEHBicuAzc2Nz4BFzY3Nic0JicmJyYGBw4BFhceAZYQFhYgFgEVGxYpECYeDyYWMCcUHhADBw8mEishJhkZAhEPHSYTJg8gFyEiECZxFSAWFiAVqAEUECk3KycSFwQJFgsiKi4VLhkMDPQJHyIlFyoQHQMBCQsYTkgTCgYAAQAAAAAA6wEKABkAABMVByM1MycuAQ4CFh8BBycuAT4CFh8BNeoJQjASDSIjGQoKDWENYhAMDCEsLBENAQdCCRISDQkJGSMjDGINYREsLCELCxENJwAAAAoAAAAAASoBLAAVAB0AIQAuADIANgA6AD4AQgBHAAA3Byc3IyIGFBY7ARUjLgE0NjczJzcXEyMnNTczFxUnMzUjNzMXFQcjNTM1IxUjNRcjFTMHMxUjFyMVMzczFSMXIxUzJzEzFSOLKw4aPA0REQ0LCxQcHBQ8Gg4rRXgKCngKeGRkRngKCjIoZBQUPDw8PDw8PDwUPDw8FBQqKhbzKw4aERkSFAEdKB0BGg4r/v8KoAoKoAqMeAqgChSMPEaCFBQUFBTIFDwUPBQAAAEAAAAAAQkBBwAdAAA3IzUzFxUjNQ4BHgE+AiYnNx4CDgMuAj4BWDJBChMaERo5QCsFJB8FGSUSBBorMzElEgQa9BMKQSUTPzwfCzBBNQoSCCMwMywdBxAjMDMsAAAAAAIAAAAAAQgBBwARABUAABMzFTcXBxcHJxUjNQcnNyc3FwczFSO8EjAJMDAJMBIwCTAwCTCWS0sBBzsdEB0eEB06Oh0QHh0QHVtLAAAFAAAAAAEtARIAEgAfACwAMgA4AAATMxcVJic1IxUzFBcjNTM1Iyc1FyIOARQeATI+ATQuAQciLgE0PgEyHgEUDgE3JzcXBxcnFwcXNycR/gkJCuphFE46awrXFSQVFSQqJBUVJBUQGxAQGyAbDw8bEBoaCRMTSxISCBsbAREJbAcFVrAgGhMUCcRsFSQqJBUVJCokFYgPGyAbEBAbIBsPJxsbCRITERITCBsbAAAAAAIAAAAAAPIBGgAGAA0AADcnNycHFRcnFwcXNzUn8ktLDFBQrk1NDFJSeUpLC1AMUFZNTAxTC1IAAQAAAAABGgCpAAMAACUhNSEBGf76AQaWEwAAAAsAAAAAARoBGgALABUAJgA6AEQAWABhAHMAewB/AIYAADc2MhYUBiInByM1MxUUFjI2NCYiBhUHJzcXNTQ2OwEVIyIGHQE3FzczNTQjIgYHFTYyDwEGFRQWMzI/ARUUBiImNTQ/AQcjNQYjIiY1ND8BNCIHNT4BNzIVBzUHBhUUFjI2FzI3NQYiJjQ2Mhc1JiciBhQWJzczFxUHIyc3FTM1JzczFxUHNdoEDggJDgMBCwsEBwQDBwWMJwwTDwssLAQFEgw7DRIECQMHDwELDgcGCAQBBQYDBgcsDAQIBgcOCw4HAwkEEQwHBgMGBDcJBQUMBwgLBAMIDA4NfRKpExOpEhKpcBKEEhL6CQ4YDwcGSjQEBwgOBwgFTigMEx0KEBEGAx0SDA0gFwMCDAUJAQMQBwkJEgQEBwQCBwEBrwcJCQcQAwEJBQwCAgEXCwQBAQcCBAYSAw4ECA4JBA4CARAaD0sTE10TE11dXSYTE14TcQAAAAYAAAAAAOIBGgAQAB0AJwA6AEIARgAANxc3Jwc1NDY7ATUjIgYdAScXMxY+ATQmIgcnIxUzPQE0NjIWFAYiJgcGIyImNSY2MzIXFSYiBhQWMjcnBxUXMzc1JwczFSM8KykNEwYDHRwMEBRvAQUVDQsWBgEQEAYLBgYLBhAHDhATARYRDAYHEQsKEQheExODExODg4PmKyoNEx4EBhIQDB4ULwkBEh4RCydcGwcHCAkRCgmWBRQQEhUDEwULEwsFWxNwExNwExNwAAAAAAEAAAAAAQcBBAAVAAATBxUXNyczMhYXFh0BMzU0LgIrATd2S0sOPSQnNBAeExEmPCkiOwEETA1LDTwQEB9HBgYnOSYTOgAAAAkAAAAAARoBGgAoACwAMAA0ADsASwBTAFcAWwAANyM1MzUjIg4CHQEGFhcWFzM1IyInJic0PQE0NTY3NjsBFSMVMzc1IycjFTMHMxUjFTMVIxcjNTMVIyc3MxcVByMVIzUjIiY9ATQ2FzM1IyIGHgE7ATUjJzM1I/SpS1AGDQkEAQsKBgYFBQMCBgICBgIDrktUChODExMTExMTEwUFOAUXQlQJCS8TEggLCxEJCQQGAQUgJiYTOTlxlhIFCgwGsgoQBAIBEwEDBQMCCgIDBQMBJhMKVHETExITE4M4OBzqCXEJExMLCF4HC3ATBggFExI5AAAHAAAAAAEaASwADwAfAC8APwBHAFcAYAAANzEyFhUxFAYjMSImNTE0NhcxMhYVMRQGIzEiJjUxNDY3MTIWFTEUBiMxIiY1MTQ2NzEyFhUxFAYjMSImNTE0NgczNxcHIyc3FyMVMx4BMjY3MzUjLgEiBhcUBiIuAT4BFp8EBgYEBAUFBAQGBgQEBQUEBAYGBAQFBQQEBgYEBAUFBRNEDVQNVQ4MODgEJTElAzk5AyUxJWwbJxsBHCcb4QUEBAYGBAQFJQYEBAUFBAQGSwYEBAUFBAQGJQUEBAYGBAQFeUUOVFQOrRMYICAYExggICEUGxsnGwEcAAAAAAQAAAAAARoBGgAJABMAIwAsAAA3FTM1FzcnIwcXNxUzNRc3JyMHHwEjFTMeATI2NzM1Iy4BIgYXFAYiLgE+ARaWE0QNVA1VDkQTRA1UDVUODDg4BCUxJQM5OQMlMSVsGycbARwnG/wSEkQNVFQNDC4uRQ5UVA40ExggIBgTGCAgIRQbGycbARwAAAAABAAAAAABBwEIAC8AOABBAEoAACU0LgEOARYXFRQPAScmPQE+AS4BIg4BFhcVFBYfARUOAR4BMj4BJic1Nz4BPQE+ASc0NjIWFAYiJhcUBiImNDYyFjciJjQ2MhYUBgEHFB4XBBAOBTQ0BQ4QBBUcFQQQDggHMw4QBBUdFQMQDTIICAwPuwsQCgoQC2cLEAsLEAsvCAsLEAsL4Q8VAxMcGQMUBgMaGgMGFAMYHBISHBgDFAgOAxsYBBccExMcFwQYGgQOCBQDFA0ICwsQCwuhCAoKEAsLjgsQCwsQCwAAAAADAAAAAAEaASwADwAYACIAADcjFTMeATI2NzM1Iy4BIgYXFAYiLgE+ARYnNTMVNxcHIyc3Xjg4BCUxJQM5OQMlMSVsGycbARwnGzgTRA1UDVUOSxMYICAYExggICEUGxsnGwEcXnl5RQ5UVA4AAAAAAwAAAAABGgEaAAkAGQAiAAA3FTM1FzcnIwcfASMVMx4BMjY3MzUjLgEiBhcUBiIuAT4BFpYTRA1UDVUODDg4BCUxJQM5OQMlMSVsGycbARwnG/xmZkQNVFQNbRMYICAYExggICEUGxsnGwEcAAAAAAYAAAAAAQcBGgAmACoALgAyADYAPQAAJTUnIyIHBgcGBxUUFxYXFjsBNSMiJyYnJj0BNDc2NzY7ARUjFTM3JzUzFSczFSMVMxUjFyMVMxcHIzUzFSMBBwq3BgYNBQIBAwUNBgYFBQMCBgIBAQIGAgOuS1QKvKmWExMTExMTEwkXBTgFcZ8JAgYNBgayBgYNBQISAQMFAwIKAgMFAwEmEglClpaDExMSExNnHDg4AAAABAAAAAABGgEaAAsAFAAYABwAABMzFxUHIwcnNSMnNRczNSMVMxcVPwEzFSMVMzUjHPQJCX82EC8JenrhLgooBxISEhIBGQm8CTYHLwm8sqmpCiEomV4lEgAAAAAEAAAAAAEHARoACQAOABoAHgAAEx8BFQcjJzU3MwczNScjFyMVMxUzNTM1IzUjBzMVI8k4BRKpExNwcKk5cEslJRMlJRMlXV0BFDgOqBMT4RLzqDlLEyYmEyWDEwAAAAAHAAAAAAEaASwACAARABoAIwAwAFYAZgAANxQGIiY0NjIWBxQWMjY0JiIGFxQWMjY0JiIGFxQGIiY0NjIWBzY3Fw4BIiYnNx4BPwEUBgcVMzIWHQEXFQcVFAYrASImPQEnNTc1NDY7ATUuATU0NjIWByIGHQEUFjsBPgE9ATQmI5YWHxYWHxY4Cw8LCw8LOBYfFhYfFjgLDwsLDwsuDgsNCRkcGQoNCRgNEgoJLxggExIhGHAYIBMTIBgvCQoQGBBUEBYWEHAQFhYQlhAVFSAVFRAICwsQCwsIEBUVIBUVEAgLCxALC0UDCw0KCgoKDQkHArcJDwMBIRcTEyUTExchIRcTEyUTExchAQMPCQwQEDsWD3EQFgEVEHEPFgAAAAAGAAAAAAEaARoAEQAWABsAKAAuADcAAAEiBwYHIwcVHwIzNzU2NzY1BzMGBycXJzY3FS8BNjc2NzY3BgcGBwYHNSM1IxU3Ni4BDgEeATYBEC8uJSROCQNwBzgJIRMX8zEXEwdqBxsXQEAQFSMkMC8DHhckF0glE7cGBRMXDQUTFwEZFxMhCTgHcQIJTiQlLi9UGBsHagcTFzEVQBgXJBceAy8wJCMVOBMlOJAJFw0FExcNBQAEAAAAAAElAQcAHgAoADUAPgAANzU3Mx8BMxcVMxcPASM2NzM3IyYnPwEzNSMvASMVBhcUBiImNDYyFhUzFA4BIi4BND4BMh4BBzI2NCYiBhQWEwleBhFsChUJMglGBwUzLWwGCAMGVWcHEFAKVREXEREXECYSHiMfEREfIx4SQhQbGycbG7dGCgMQCi4MhAYICnEHBgMDJQMQMQVXDBAQGBAQDBIeEREeJB4SEh5BHCcbGyccAAAABAAAAAABGgEHABwAJgAzADwAADczFxUHIzY3MzcjFSYnPwEzNyMvASMVBgc1NzMXBxQGIiY0NjIWFTMUDgEiLgE0PgEyHgEHMjY0JiIGFBaRfwkJbAcFVgF3CAkHBnoBegcQUAoJCV4HEBEXEREXECYSHiMfEREfIx4SQhQbGycbG/QKuwkICoQBBgQGAxMDEDEFB0YKA50MEBAYEBAMEh4RER4kHhISHkEcJxsbJxwAAAAAAwAAAAAA9AD0AAQADgAYAAA3IzUyFicVMh4BFTM0LgEHFTIeARUzNC4BXiYQFiYuTi0TM1YzGisZEx8zOCYWrBMtTi4zVjNLExkrGh8zHwADAAAAAAEaAPQACQAOABIAADcXMzc1LwEjDwEXJzczFyczFwcTfA58Pgd8Bz6DbzV0NW8yIlSlfHwOPgMDPnZvNTUiIlMAAAADAAAAAAEgARoABQAIABIAABMHFRc3NQc1HwEzFwcnFSM1BychDg6ppI4wDS8NHxMfDQEZCOEHcBBnvl8LLw0fZmYfDQAAAAAFAAAAAAEXAPgABgAQACAAMgA5AAA/ATUnFRcHJzcXFQc1NycVIxcmDgEeATY3MTY1NCcxLgEHNhcxFhceARUxFg4BLgE3MTYXByMnNxc3n3eahmNqDp9DLoYSIRgmDhEpLhAPEwgVLQ0TEQ0GCAEWIx4PBgVKIw0RDAwdL1AOZxVZQqwHag4tFR9ZQA4BGS0sFwgTFBYbFQgKGAoBAg0GEwsQHQgSIBIREyMRDQwdAAMAAAAAARYBBwAFAAgADwAAEwcVFzc1BzUXBzc1JxUXBzQODqmlj1akpI6OAQcI4QhwEGe+X3VtEG4XX18AAAADAAAAAAEgARoABQAIABIAABMHFRc3NQc1HwEjJzcXNTMVNxciDw+ppY49DS8NHxMfDQEZCOEHcBBnvl+OLw0fZmYfDgAAAAAEAAAAAAEWAQcACQAcAC4ANQAAPwEXFQc1NycVIwcmBgcGFhceATY3MTY1NCc1LgEHNhcxFhceARUxFg4BLgE3MTYXByMnNxc3Xg6pbFaOEwMZKAgEAgQJKzEREBQJFjAOFBIOBwgBGCQgEAYFTyUOEg0MH/8IcRBIFzlfRA8BGhkMGAwWGQoTFRceFQEICxkKAQINCBQLER8IEyETExUlEw0MHwAAAAAEAAAAAAEWAQcACQAcAC4AOgAAPwEXFQc1NycVIwcmBgcGFhceATY3MTY1NCc1LgEHNhcxFhceARUxFg4BLgE3MTYXJwcXBxc3FzcnNydeDqlsVo4TAxkoCAQCBAkrMREQFAkWMA4UEg4HCAEYJCAQBgUsFgwXFwwWFwwXFwz/CHEQSBc5X0QPARoZDBgMFhkKExUXHhUBCAsZCgECDQgUCxEfCBMhExMXFwwYFwwXFwwXGAwAAAAABAAAAAABGgEaAA8AGAAcACYAACUvASMHFSMHFRczNzUzNzUHIzUzFTM1MxcHNTMVFyM1LwIjNTMXARYcBqAJLwkJvAkvCUuoEnEPFl0lcSYDHAZekhf6HAMJLwm8CQkvCaDOqDk5Fg8lJUteBhwDJhcAAAAFAAAAAAEaARkAFAAYACAAIwAnAAATHwEVIwc1JyMVIzUjFTMHIyc1NzMHMzUjHwEVDwEnPwEPAT8BFzcnzx8GCgkfBnElOAouExOcPyYmehxyOQwccmcKEwMPYQ8BEx8OBgkPIEtLvBISvBNLOTkcDXIcDThyhxMJHQ9hDgAAAAMAAAAAARoBGgAJABIAFgAAEx8BFQcjJzU3MwcVMzUnIxUjNTMVMzX6HAMJ9AkJ2M7hFyKDSyYBFx0G2AkJ9AkS4coXS0s5OQAAAAAGAAAAAAEaAQcAAwAHAA4AFQAcACMAADczNSMXMxUjJyM1NzMVIzcVIzUjNTMHMxUHIzUzIzMVIyc1Mzi8vCZwcDgTCUI48xI5QgkSCUI54ThCCRNLliVLS0EKEwlBOBOWQgkSEglCAAYAAAAAARoBGgAGAA0AFAAbACMAJwAANyM1MzUzFTc1IxUXMzUHFTM1MzUrARUzFTM1JzcHIyc1NzMXByMVM0IvJROpEwkvOBMlL9clEwmfCYQJCYQJJUtL4RMlLwolLwkTsi8lExMlLwkcCQleCQkcJgAAAwAA//8BLAEQABIAHwAvAAATIg4BFRQWFwcXNxYzMj4BNC4BBzQ+ATIeARQOASIuARcHIyc3FzczFzczFxUnByOWFycWDAtFDUYVGhcnFhYnWRIeJB4SEh4kHhJVKA4cDRYoDSkoDR8lKQ0BEBcnFhEeDEUNRg4XJy0nF1QRHhISHiMeEhIegigcDRUoKCgfGiUoAAQAAAAAARsBHwAcACkAMgA6AAA3DgEXFhcGFxUnByc3LgE+AR4BFRQHJic1NC4BBhc+AR4CDgIuAjYXFjcWNycGFRQ3FzYnNiYjImwTCQsIDwIBCUcORxcFJEFCKQEICR0vMicQKSQWAxIiKCQWAhESERcSD08KGE4LAQEhGBLuEzUYEgwJCQMGRQ1FGUU6GRM3IwcIBwYCGioUCmQLAxIhKCQXAhEiKCRbEQEBC04OEhhGTw8SFyEAAAAAAgAAAAABLAEtAA8AHQAAEyIOARYXBxc3HgE+AS4BIxUiLgE0PgEyHgEUDgEjvx8zGQkUZA5kG0M4FhQ3IRcnFxcnLiYXFyYXASwhODwWcwxyFQImQEEouxYnLicWFicuJxcAAAIAAAAAARoBEAAGAA0AABM3FxUHJzcXBzcnHwEVEw74+A4dFBjR0RhlAQgIcBFwCG8JV2JfVgISAAAAAAYAAAAAARwBGgADAAcACwAdACEAKQAANzMVIxUzFSMVMxUjFyE3MzU0PgI7ATIeAh0BMwczNSMXJyMVIzUjB3FLS0tLS0ur/vQYIwMFBwRwBAcFAyOmcHCmDhWWFQ70E14SExNLXqkDBwUDAwUHBKgmz/Q4JSU4AAYAAAAAARoBBwAMABAALgA3AFUAXgAAEzMXFSM1IxUzFSMnNRczNSMXNSYnByc3JjcnNxc2NzUzFRYXNxcHFgcXBycGBxUnFBYyNjQmIgYXNSYnByc3JjcnNxc2NzUzFRYXNxcHFgcXBycGBxUnFBYyNjQmIgYc9AkS4YONCRPh4V0FBBEKEgEBEgoRBQQTBQQSCRIBARIJEgQFFwgLCQkLCWUFBBIJEQEBEQkSBAUSBQQSCREBAREJEgQFFwgMCAgMCAEHCno5hBIJzi8mqRUBAwoRCgUFChAKBAEVFQEEChAKBQUKEQsEARUvBggIDAgIbRQCAwoQCwUFChAKAwIVFQIDChAKBQULEAoDAhQvBgkJCwkJAAAGAAAAAAEHARoABwAbACMANwA/AFMAADcnNTczFxUHJyMVIzUjFSM1IxUjNSMVMzUjFSMHJzU3MxcVBycjFSM1IxUzNSMVIzUjFSM1IxUjFzc1JyMHFRc3NTMVMzUzFTM1MxUzNTMVMzUzFS8JCc4KCkETExMSExMTvCYSjQkJzgoKjBMTE7wmEhMTExKMCgrOCQkJExMTEhMTExImzgo4CQk4CjkTExMTExMmJhODCTgKCjgJOBMTJiYTExMTE4MJOAoKOAkTJRMTExMTExMTJQAAAAQAAAAAASwBLAAXADcAQwBOAAA3FxUHFwcnByMnByc3JzU3JzcXNzMXNxcHNzUvATcnBy8BIw8BJwcXDwEVHwEHFzcfATM/ARc3LwE2MzIWFRQOAS4BNhcWMzI2NC4BDgEW+DQ0HissCzwLLCodNDQdKiwLPAssKzEyMgccESsRChkKECsSHQcyMgcdEisQChkKESsRHGALDRIZFB4bCwgZBgYJDAkPDgYFvws8CywqHTQ0HissCzwLLCseNDQeK2wKGQsQKxIdBzIyBx0SKxALGQoQKxIdBzIyBx0SK0sHGRIPGAYOHR0tAwwRCwMHDg8AAAAEAAAAAAEHAP4AGQAjADwARgAANzIWFzMyFhQGByMOASImJyMiJj4BNzM+ATMXIgYUFjI2NCYjNzIWFzMyFhQGByMOASImJyMiJjQ2NzM+ARciBhQWMjY0JiNxDBUDaAQGBQNqAxUZFQMdBAYBBAMfAxUMAQgLCw8LCwhMDBUDHQQGBQMfAxUZFQNoBAUEA2oDFQ0ICwsPCwsIehAMBgcFAQwQEAwFCAUBDBATCw8LCw8LlhAMBQgFAQwQEAwGBwUBDBATCw8LCw8LAAAFAAAAAAEZARoADAAlAD0AQABCAAA3IwcVFzM3NSMVIzUzFyM1NDY3NTQ2Mh8BFQcGIiY9AQYHBg8BIzciDgEPATM2NzY3NjMXFBYyPwEnLgEGFQcyMCMxXkIJCc4KE7s4ExMqIQ8VB0VFBxUPFQoEAgETTBQhFQEBBAUKDxcJCQEDBgJERAIGAzkBAeEJvAkJOC+pcC8hNAYYCg8ISRlJCA8KFAURBwoGehMgEyEPCw8EASgDAwJJSAIBBAOiAAADAAAAAAEaARwAJABFAFEAADcuBTc1NzI+Ajc2NzYXFhcWFx4DMxcVFA4EBycVFB4DHwE2Nz4EPQEjJicmLwEmJyYHDgMHFz4BLgEiDgEWFwczmw8cGhYRCgEJChARDwcLDBITDAsGBQgPERAKCQkRFxkcD2wIDxUYDRYMCw0YFQ4JCwkKFBEJCAoODwkRExMKaAkKBBAUDwQJCgglGAkTFhkeIxI8CQIDBgUHBAUDAQYDAwUGAwIJPBIjHhkWEwnRMxAdGxcVCA8HCAkUFxsdEDMBAgQLBQQCAgQDCwgEAVEEEhMNDRMSBDEAAAMAAAAAARsBBwAVABkAIwAANzUXNScjBxUfATc1Mzc1BxUjNS8BMwcnNR8BMxUjFwcnNTcXzxIJqQkGXgxCCRI5BkSDTEtLOl1cHg4uLw3lARMqCgrKCSAJEwkqEw6cCBjUGa0ZLhMeDS4NLw0AAAADAAAAAAEbAQcAFwAbACUAADcVNzUnIwcVMRUfATc1Mzc1JxUjNS8BMwcnNR8BIzUzJzcXFQcnzxIJqQkGXgxCCRI5BkSDTEtLe15dHg0uLg3lHRMiCgoJwQkgCRMJIhMsnAgY1BmtGUATHg0uDi4NAAAAAAUAAAAAAR0BHQAMABkAIgArADgAABM+AR4CDgIuAjYXHgE+Ai4CDgIWNxQGIiY0NjIWFxQGIiY0NjIWByImJwceAT4BNycOAU0dRz8oBCA7RT8oBB4pGTw2IgQbMzs2IgQaPAsQCwsQC14LEAsLEAtCEBoIEAolKiMJEAccAQMUBR87RkAnBB48RT+3EAUbMj02IQQbMjw1XwgLCxALCwgICwsQCwtTEA0JEhUBFhMIDhEAAAMAAAAAARoBGgAIADEAWAAANxQGIiY0NjIWJyIGFRQXByMVMxUzNTcWFzMVIyIGFSIGHgE7AT4BNCYjNCYjNTQuASMHNDY7ATIWHQEXMzIWHQEzMhYUBisBIiY0NjsBNTQ2OwE3NScjIiaWBQgGBggFLxMcCBUiHRIVDA4cEhAWEBYBFRCpDxYWDxYQER8RQhAMJhMbCgkICxMICwsIqQgLCwgTCwgcCQkmDBDqBAUFCAYGKxsUDgsVExwhFQcBJRYPFiAWARUgFg8WQhEfES8MERwTSwoLCBILEAsLEAsTBwsKOAkRAAAHAAAAAAEaAQcACgAOABIAGgAeACIALAAAEwcVMzUzFTcXNScHMxUjByMVMycHFRczNzUnBzUzFScjFTM3IxUnBxczNycHgxIShAMPEnEmJjgmJjgTE4MTE4ODEyUlXhMWDSYNJg0WAQcTODguAw86EyYlOSVLE14SEl4TcV5eOSaWSBYOJiYOFgAAAAQAAP//AQcBLAAsADUAPgBHAAAlNC4BDgIeARcOASsBIgc1PgEuASIOARYXFQ4BHgI+ASYnPgE7ATI2Nz4BJzQ2MhYUBiImFxQGIiY0NjIWNyImNDYyFhQGAQcOGBoWCQQSDQUSCyUWEBIVAxskGwMVEhIWAxkkHAYSEgUSCyUSHQYRGM4QGBAQGBA4EBgQEBgQZwwQEBcREcUNFwwCEBkaEwQKCw9bAx0kGBgkHQNyBBwkGQIWJB4FCgsVEQIbSQwQEBcREcIMEBAXERFuERcQEBcRAAAAAAIAAAAAARoBGgAsAFcAADcWMjY/AT4BPwE+Ai4BLwEuAS8BLgIOAQ8BDgEPAQ4CHgEfARYXFh8BFhcWMjY/AT4BPwE+Ai4BLwEuAS8BLgIOAQ8BDgEPAQ4BFBYfAR4BHwEWZQUNCgIIBA4KGgUGAwIGBxkKDwMJAgkJCQYCCAMPCRoFBgMCBgYaDAkEAwgCeAQKCAEFAQcFDgUFAQMFAw8EBwEFAgYIBgUCBAIGBQ4FBQUFDgUHAQUBYQMHBhoKDgQIAgYJCQkCCQMOChoGBgIDBwQaCg4DCQEHCQkJAggECwYHGgZPAwUFDgUHAQUBBwcHBQEFAQcFDgUFAQMFAw4FBwEFAQgKCAEFAQcFDgUABAAAAAABGgEaACwAQABrAH8AADcWMjY/AT4BPwE+Ai4BLwEuAS8BLgIOAQ8BDgEPAQ4CHgEfARYXFh8BFj8BFx4BHwEHDgEPAScuAS8BNz4BFxYyNj8BPgE/AT4CLgEvAS4BLwEuAg4BDwEOAQ8BDgEUFh8BHgEfARYvATc+AT8BFx4BHwEHDgEPAScuAWUFDQoCCAQOChoFBgMCBgcZCg8DCQIJCQkGAggDDwkaBQYDAgYGGgwJBAMIAgcKCAUVDhoaDhUFCQkEFQ4aGg4UdgQKCAEFAQcFDgUFAQMFAw8EBwEFAgYIBgUCBAIGBQ4FBQUFDgUHAQUBDQMDCQ0DAQEDDQkDAwkNAwEBAw1hAwcGGgoOBAgCBgkJCQIJAw4KGgYGAgMHBBoKDgMJAQcJCQkCCAQLBgcaBocaGg4VBAoJBBUOGhoOFQUJCQUUyAMFBQ4FBwEFAQcHBwUBBQEHBQ4FBQEDBQMOBQYCBQEICggBBQEHBQ4FMgEBAw0JAwMJDQMBAQMNCQMDCQ0AAwAAAAABGgEaAAcACwAPAAABIwcVFzM3NQcjNTMXIzUzAQfPEhLPEoNeXnFeXgEZEs8SEs/Pz8/PAAAAAwAAAAABGgEaAAcACwAPAAABIwcVFzM3NQcjNTM1IzUzAQfPEhLPEhLPz8/PARkSzxISz89eE14AAAAAAwAAAAABGgESAE0AnACmAAA3JiMuASMVDgEHFRYXFhcyMQYHBgcGHQEUFjI3MwYHIw4BFQYWOwEWPgInJi8BLgE2PwEzMhcWFxY2NzY1NCcmJyYHBgcGByYnNTQmJxcWBwYHBisBNDY7ATUmNjcnBgcjIgcGJj4BOwEyNj8BBiYnPgE3MzIXFhcWHwEzNSY2Nz4BNzYXHgEXFRQOASYnJgcOAQcGFh8BHgEHJi8BIgYUFj4BNCYjaAEBAg8KFh4EBREICgEQCggEAwsPBycFAgYRFwEEBH0QHBYJAQENAgcFAwMCAwMDBgcKEgUCDQwRGBoSDQoFBQcPDGQCAgMOCAluCggYARIODAgDPAMCBQUECgcTBAUBBg8cCgQhFQIIBwoQCAYBAwECAQQTDhMQDRECBQcIBAoLBwkCAwcIAgoBBgEHgwQGBgcGBgT6AQkMGQkjFwgKBgQCAgcGCAYHBgcKAwkKAhsSBAUBCxcdEBYRAwgLCQIBAQQCAQkJBgcRFhILDQUDDgsOBwcDCxABuQ8JDggDBwsKDRQBEQMCAQIDCwgFAxgCCQoVHAEDBRULCgEBBxcGDBMCBAkIGwwCBwUCAgIGAwIKBwsXCAMMHg0NDHAFCAYBBQgFAAAFAAAAAAEaARoACQANAA8AEQAbAAA3JwcjFwc3Fyc3BzM3DwI3IwczNxczBxcnBze0Hh5lUh9QUB9S7VIYGBAYqlJSLA4OLCQOJCQOt2JiQGQ+PmRACU9PNFCEES0tHC0cHC0AAQAAAAABGgEaAAkAADcnByMXBzcXJze0Hh5lUh9QUB9St2JiQGQ+PmRAAAAEAAAAAAEaARoACQAPABAAEgAAPwEXMwcXJwc3Jx8BJzcjJzUXI3geHmVSH1BQH1KDJA4kLA5qUrdiYkBkPj5kQEccLRwtM08AAAAAAwAAAAABFgEbAAMAGQAsAAA3MxUjNx4BFxYVFAcOAQcGJy4DNzY3PgEXNjc2JzQmJyYnJgYHDgEWFx4BcUtLMBYpECYeDyYWMCcUHhADBw8mEishJhkZAhEPHSYTJg8gFyEiECa8S6gBFBApNysnEhcECRYLIiouFS4ZDAz0CR8iJRcqEB0DAQkLGE5IEwoGAAAAAAUAAAAAARoA9AAJABMAHAAlAC4AADczNSMHFRczNSM3IxUzFSMVMzc1BzI2NCYiBhQWNxQGIiY0NjIWFzI2NCYiBh4BJhIcCQkcEuocExMcCbsICwsQCwtTCxALCxALJQgLCxALAQrhEwqoChOpE5YTCqhnCxALCxALEwgLCxALCxsLEAsLEAsAAAAAAgAAAAABGgEHAAkAEwAAEwcVFzM1IzUzNRc3NScjFTMVIxUcCQkvJSXFCQkvJiYBBwrOCRK8E+EJzgoTvBIAAAIAAAAAARoA9AAHAB8AAD8BMxcVByMnNyMVIzcnBxUXNyczNTMnNxcVByc3IxUzEwn0CQn0CfRxTCcNODgNKE1JJw03Nw0nSXHqCgqoCgqfQScNNw43DSgSKA03DjcNJ0EAAAAEAAAAAAEUARoAIAAkACgALAAANzM3NScjByM1NzUnIwcVFzM3FRczFRczNzUnIwcjNTMVNxcHJx8BBy8CNxfVDTIZDSJeIyYNSyUOFQlYGA4yGQ0jXk84DCUMJQwlDJAYPRl2Mg0ZIhgiDiVLDSYWbQkKGTIOGSNLCSoLJgw4DCYMeBk9GAAABwAAAAABGgEaABkANQA+AEcAUABZAGIAABMiDgIdAR4BPgEeAg4BFhczMj4BNC4BIwcjLgE1Jjc2NCYiBwYnIiY9ATQ+ATIeARQOASM3FAYiJjQ2MhYXFAYiJj4BMhYnMjYuASIGFBY3FAYiJj4BMhYXFAYiJjQ2MhaWGjAlFAETGhQcFAEUAw4PCyM9IyM9IwEKBAUCCA8fLBAHCgIEHzM9NB4eNB4SCxALCxALOAsQCwEKEAuDCAsBChALC4sLEAsBChALEwsQCwsQCwEZFCUwGggODQQTARQbFRwVASQ8Rzwk9QEEBAwIECsgEAgCBAMHHzMfHzM9NB68CAsLEAsLiwgLCw8LC1YLEAsLEAsTCAsLEAsLQAgLCxALCwAABAAAAAABGgD0AAMABwAPABMAADczFSMXIxUzJzczFxUHIyc3FTM1S5aWlpaWzhPhEhLhExPhvBMmEnATE5YTE5aWlgAGAAAAAAEaAQcADAAVABkAHgAiACYAAD8BMxcVByM1MzUjFSMXNScjBxUXMzcnFSM1Nyc1MxUnMxUjByMVM4MTcRISS0txEyYTcBMTcBMTcIsIS0tLSyZLS/QTE14TE144ORMTE14SEl5eXhMICxM4E10TAAcAAAAAARoBBwAMABEAGgAeACIAJgAqAAABIwcVMzUzFSMVMzc1BzMVIycHIwcVFzM3NScVIzUzBzMVIxUzFSM3MxUjAQdxExNxS0sScEtEByZdExNwExNwcF5LS0tLcUtLAQcTODheExNeOBMHBxNeEhJeE3FeExITE5YTAAAAAgAAAAAA7wEaAAsAEgAAEzczFwczFwcnNyMnFwc3IzcjB4sRPg8pIQ6GHigXEUc2hUU+PkABDwodQCCJFkgbCWOJXoQAAAAABAAAAAABGgEHAAsADwATABcAACUnIw8BFR8BMz8BNQcnNRc3JzcfAQc1NwEPXhGDCgpeEYMKoFRUCVd9Vwd6etgvQhFUES9CEVSRKkYmECc/LFc9STkAAAMAAAAAAQcBGgAJAAwAEwAAJS8BIwcVFzM3NQcjNQc1MxUXMxUBBD4GkQkJzgoTOIRxCULZPgIJ9AkJtgQ54eFCCZYAAgAAAAABGwDiABcAIQAANyIGByMuAQ4BFB4BNjczHgI+Ai4CByImNDYyFhQGI9gZJQM6BBcdEhIdFwQ6AhUfIhwPAhIdERQbGycbGxPhIBgNEAMVHRUEEA4RGw4EEx4jHBFwGycbGyccAAAABQAAAAABGgDrABIAJQA/AEoAZQAANxY+ATc2JzYnLgEjIgc1IxUzNTc2FzYXFhUWBw4BJwYmNzUmNzYnDgEPARU3NjcyFhUHDgEUFjMyPwEVMzU2JhcUBiMiJjQ3Nj8BFxY3Fj8BNQcGIiY0NhcyHwE1JyYiBgcGFBcWhwoUEgYNAQEMBhAJEAwTExAFBgsGBwEJAwkGCw8BAQgEUAkRBwIICw8HCRcOFRMOCwkGEQETAQ8LBgkECAoTnAgKDgwDCQkXEBINCggIAwoWEwcPDgZfBgEICBEWFA8HBws0jwZMAwEBCQoNDw0EBgEBEQsLDAoEFgEFBQEXBwoBDAgEARIaEgYFCT8QFzkNEQgMBAUBAy8EAQEIARYGBxQcFgEFBRYBBQgHESoQBwAACAAAAAABGgEHAAMABwALAA8AEwAXABsAHwAAJSM1MwcjFTMnIxUzFyMVMycjFTM3IxUzJxUjNRcjFTMBGV1dEiYmS6mpJc7OXnBwll1dg4NwXV3hE0sTExNeEksTExOpOTkTEwAAAAAEAAAAAAEHARoACwAPABMAFwAANycjDwEVHwEzPwE1Byc1Fyc3FwcXBzU3/V0TXgkJXhNdCnpVVVBZWVleVFThODgQcRA4OBBxozJhLkE1NTFDMmUuAAAABQAAAAABHAEaAAgADAAQAB0AKQAAEzMVFhc1IxU3FycHMyc/ARc3PgEeAg4CLgI2Fx4BPgImJyYOARZLlgoJvBMoFUuWdiALKyoPIyAUAhAeIh8UAg8ZChkXDgIMChAmFggBB0sBBGKfISolgxM4E0t4CgIPHiMgEwIQHSIgVAcCCxUaFgcLCCAmAAACAAAAAAEHAQcARgCNAAA3NSMiDgEHMQYHMQYXFRQHMQYHBisBFTMyFxUWFxUWFzEWHQEGFxUWFzEeAhczNSMiLgI9ATQmJyYnNjc+AT0BNDY3NjMXFTMyPgE3MTY3MTYnNTQ3MTY3NjsBNSMiJzUmJzUmJzEmPQE2JzUmJzEuAgcjFTMyHgIdARQWFxYXBgcOAR0BFAcOASNxAgkRDAMDAQEBAgQKBQYBAQYFBQMEAgIBAQEDAw0QCQICBgoHBAICBQkJBQICCQcFBk0BCRANAwMBAQECBAoFBgICBgUFAwQCAgEBAQMDDBEJAQEGCgcEAgIFCQkFAgIIAwoG9BMHDQgICAgIEAYFCgUCEgIBAgMBAwUFBhAICAEHCAgNBgETBAgKBhkGDAULBwcLBQwGGQkNBAK8EgYNCAcJCAgQBgUKBQISAgECAwEDBQUGEAgIAQcICA0HARIECAoGGQYMBQsHBwsFDAYZDAgEBAAAAAIAAAAAARoBGgAbAB8AABMVMxUjFTMVIxUjNSMVIzUjNTM1IzUzNTMVMzUHFTM1zktLS0sSSxNLS0tLE0tLSwEZSxJLE0tLS0sTSxJLS0tdS0sAAAgAAAAAARoBHAAOABkAHQApADUAQgBPAFMAABMWFxYUDgEjIiY1NDY3Nhc2NzQuAQ4BFB4BNwcXNxczFTMVIxUjNSM1MycXBxcHJwcnNyc3FzcuASIOAR4DPgIHBgcGJy4BPgIWFxY3IxUzNgoEAgYMCAoPCAcKBAYBBQYGBAUGTGQNY1MSLy8SLy9sDSEhDSEhDSEhDSE6AwwQDQUBBwsNDAcBEQEEBgUCAgEFBgUBBY1LSwEXBAkFDAsIDwsHDQMEJQMHAwYCAwUHBQIiZAxjhy8SLy8SJQ0hIQ0hIQ0hIQ0hcAcJCQ0NCgYBBwoNCAQBAwUBBQYFAQICBTQTAAADAAAAAAEZAOEAGwAiACkAADcjNTQmKwEVFBY7ARUjNTMyNj0BIyIGBxUjNTMXJzcXFQcnIyc3JwcVF84SBgQTBQQKOQoEBRIEBQEScDccDiIhDqccGw4hIrwJBAVnBAUTEwUEZwUECSVMHA0iDiEOGxsNIQ4iAAACAAAAAAEaARsAHwBDAAA3Ii4BNzY3JjQ3Njc+AR8BBxc3FxYUBgcGBw4BJwYHBjciBwYHDgEfAQcGBwYeAjI3Nj8BFxY2NzY3PgE1NCcHJzcmNQ4TAggjQAUGChURKRIMNhc4BQYMCwYIECUSRCAJiRIQBgUOBwgDBEQjAwEHBggDHkkFBQ8gDgYFCQkBMTAwBhMTGQomPg4eDhgNCwQIBTgXNgwPIB4LBgULBAdFHgj1CwMFDiYSBgRCJQULBwIDG0sEAgcDCQMFCRcNBgYwMDEBAAIAAAAAAPQBGgAHABsAABMHFRczNzUnBzUzFSM1MzUjNTM1IzUzNSM1MzVLExOWExOWlpYmJktLJiZLARkS4RMT4RIlE+ESEyYSJhMlEwAACAAAAAABGgEaAAkADQARABUAGQAdACEAJQAAEwcVMzUzFTM1JwM1MxU3IxUzNzMVIzcjFTM3MxUjMzUjFSczFSMvCRLPEgnqEiYTExMSEjgTExMSEl0SJhMTARkJ2M/P2An++hMTExMTExMTExMTExMTAAAHAAAAAAEaAQcABwALAB8AKQA2AEAAUgAAEwcVFzM3NScHNTMVJzM1NCMiBgcVNjIVBwYVFBYzMj8BFRQGIiY1ND8BFyMVIzUzFzYyFhQGIicVFBYyNjQmIgYXMjc1BiImNDYyFzUmByYGFBYmExPhEhLh4aMNEgQJAwcPDA4HBggEAQUGAwYHKwELCwEEDggJDgQEBwQDBwVFCQUFCwcHDAQECAsODQEHE6kTE6kTvKmpOiAXAwIMBQkBAxAHCQkSBAQHBAIHAQEUBkofCQ4YDxwFBAcIDgcIIQMOBAgOCQQOAwEBEBoPAAAAAAYAAAAAARoBBwAHAAsAEwAYACAAJQAAEwcVFzM3NScHMxUjBzczFxUHIyc3IxUzNTM3MxcVByMnNyMVMzUmExPhEhLh4eETEzgTEzgTJRI4XhI5EhI5EiUTOQEHEzgTEzgTEzhLEhI5EhI5OTkSEjkSEjk5OQAAAAYAAAAAARoA4QAJABMAHwAjACcAKwAANzM1IwcVFzM1IzcjFTMVIxUzNzUHFxUPASMvATU/ATMHFzUnNxc3Jwc3NQcmJS8JCS8l6i8mJi8JPAQGVAkuBQZUCVAcHAsbPxsbQkLOEwmWChOWE4MTCpYnCC8JJRwILwgmVxEZEQ8QHBBXHRodAAADAAAAAAErAQgAEQAjACcAADcnPgEeARc3FwcjJzcXLgIGHwEGLgInByc3MxcHJx4DJzcXB2cPGj02IAEXDicPJw8XARosMUAPGjoyHgEXDycOKA8WAhgnLpIN3w3nDREDHDMfFg4nKA4XGCoYAbMNDgEdMR0XDicoDhYXJxcDvg3QDgACAAAAAAErAQ0AEQAjAAA3Byc3MxcHJx4CNjcXDgEuATcnBxczNycHLgIGBxc+AR4BJhcPJw4oDxYDKT05Dw8TRUkwzRcPJw8nDhcBLkhFFA8QOjwnkRcOJygOFh8vDRocCyEeETovFw4oJw4WJToTGyALGxgQMAALAAAAAAEHAQcABwALAA8AEwAXABsAHwAjACcAKwAvAAATIwcVFzM3NQczFSMXIzUzHQEjNSczFSMVMxUjFTUzFTM1MxUzIzUzNSM1Myc1MxX94QkJ4Qrhzs6DODg4Szg4ODg4EzhLODg4ODg4AQcKzgkJzgkTOCU4JSU4JRMlOSYmJiYmEyUTJSUAAAMAAAAAAScBBwARACMAMAAAEyMPARUXMzcWMj4BPwE0Jic1ByYjIgYUFjMyFxUHBg8BJzczFx4BFQYVDgMnPwH4YgZ9YQ0qEiolFwIBFBETDg4EBQUEDw1JAwIlVHNUEwkKAQIRGx4ORQMBBwN9DWIqChQiFQoVJQwqIQUFCAYGKEoBAyZUdDkKFw0FBQ8ZDwIGRQcAAAAABQAAAAABGgEaAAgAFQAeACsAOAAANzI2NCYiBhQWNxQOASIuATQ+ATIeAQcyNjQmIgYUFjcUDgEiLgE0PgEyHgEHMj4BNC4BIg4BFB4BlggLCxALC1MUIygjFBQjKCMUSxchIS4hIZojPEg8IyM8SDwjgx8zHx8zPjMeHjODCxALCxALExQjFBQjKCMUFCNMIS4hIS4hOCQ8IyM8SDwjIzyUHjM+Mx8fMz4zHgAAAAAEAAAAAAEaARoABgAKAA4AEgAAPwEnBycHFzcjNzMHMxUjFyMVM0NrDWQcDiLkmStuqKioqKiorl0OViIMKh8mSyYlJgAAAAAFAAAAAAEGARoAEwAXABsAIAAqAAATHwEPAS8BBy8BBy8BPwEnPwEnNwcXNyc3FzcnNxc3Jw8BFyMnFSM1ByM30wsnBD4LA0MKAzALDgUvAwRDAwVnBioHChU4FAojKyEuBTkWIxMjFSABGQRdCxoECBwEBxQFHwsUCAodCAtiEBEQFy4YLRhNE00Tc1s4S2FOSQAABAAAAAABEgEjABcARwBRAG4AACUnJiIPAQ4BHQEUFh8BFjI/AT4BPQE0JgcVFA8BBj0BBiciNTc0NzMWNzY0IiY1NDc1ND8BMh0BNhcyDwEUBzEmBhUUFjMyFDcUIwcjNTQ/ATE3Bw4BHQEUFyMiLwEuAT0BNDY/ATYyHwEWFy4BBwEAWQgSCFkICQkIWQgSCFkICQlNAQUBBQUBAgEBBQQHDQYKAQUBBAQCAQIBBQoEBAwkARYBARYQVAkJCAUHB1kGCAgGWQcPBlkLAgIJBuk1BQU1BRAJagkQBTUFBTUFEAlqCRCfCAEBAwECCAMCAQcBAQECAw0EBw0ICAEBAwEIAgECBgEBAQUHAgIaBAEOBgEBDXw0BQwJZwsDAzUEDgdqBw4ENQMDNQcNBAIDAAcAAAAAASwBGgADACAAJAAoADAANAA4AAA3FyMnByIOAhQeAjI3FwYjBiIuAjQ+AjIWFwcuARczFSMVMxUjNyEHFRchNzUHITUhNSE1IcwmDiVTCAwKBQUJDBIJAgQFBxAQDAcHDBISCgICBAklExMTE43+5gkJARoJE/76AQb++gEGqV5eCwUJDxANCQUDCQICBgwRFBEMBwICCQICCBMSE7sJ9AkJ9OqoEyYAAAAAD///AAAA8gEtAAQBFwEaAS0BNQE7AUoBUAFSAVcBXgFjAWQBbgF0AAATIisBNxc2NQc2PQEjLgEnLgEHPgEnDgEHBgcGMzcwByMOAQcUNjEHJgcGBzMGBzEGFQcGFRQXBxcjHgMXJicUFhcHFh8BJhcWHwE3BhczHgEzBxYXMxYXJxceAhcjJicuAjcmNzQnNTY3NTEWPwE2NzM2NzY3MTY3FTY3Nj8BBjM3BzYXMTIzBwYxFjcxNhcnFxYXMjcxNhcVFhcyJzEeARcmMRUWIxYXNSYnFCMxJgYXFjcxNDEXFh8BIicxJhUeARUxIhUUFjczBwYXJxQVMRYHNjQHFgcxBhUnBhYHNjUxNDciDwEOASc0JyYnJjc2NzY3PgIWFy4BDgEXNzI1FB4BNxU2PwEHBjY/ATY1MSY/AQcwOQEUFhcWNwYuAScyFzEWFyYnFhc3IiMyFiMwJxc0IgcXFAcGBzQmNjcUBzEGFD8BNgcuATcWNycPAhcWFycWHwEnJic3BwYHNicVMDMxMhQPATU2BxQHNTQ3hQQDAg5IAwICAQEbEA0jCQEGAQcIAwYGAQEGAwUFCAUEAggPDQUDAgQFAQIEAQMBAgQFBQQEAgUDAgIDAQQDAgYDAgEIBQEIAwMFAgEDBgMGBQ0OBQQUBxwyHAIBAQEHBwIDAwMBAgEFBAcHAgcMBw0IAQEPBwUEBAUFAgUFBgYBCwoKAgIEBQEIAQUPGgUDAQEEAgYGAwIBAgEBAgEBAQEBAgEDAQIBAQIDAQMBAgECAQUEAwQBAwEBAQUHECYUAhIGCQMCAgMFBBIWEgUJGhgOAQEBFR8OBQMJAQMFDgMBAQIEVAYDCxIJGxgGAQUIBAQGCQsDAQEGAgIENgIBAgMCBAQBBAICBAEDGQUGBAcFGgEnAQMEAwUCAgEBAwGMAQIGB+ACAQEEAgYCAwErAZAIBgUIEAoTJgcGAgQBAQEBAgIEAgEBAgEDBgECAwEPDAkFBwkEDBEIDQUHBwkEAQUJAQQCCQUCAwIBAgYDCAQCBQkDBwQBAgMCBAUGBQICAQIILUAhBgwPAgIWDgECBQUHBAQGBAcGAgMGBwMGAwECBAEBAQEBAgECAwQDBQEBAgEDBAUIHhEEBAULCgEUCQIBAwUCAQEEAgYFAgMBBAYBAwUDAQQJBwgDBAUGBgkDBwoIAwQHBQQCAQECBQcNBQcBAg4LDxcBBgsDBwwBCgcIBAsZDgECERsLBwEBAggCAwENAwICAgMDKQEEAgQBBAYQCgUKAQMICgW7AQF6BgQDAQsHBgEBBAUCAgQBAgEEEwECAQEBmQGfBAQGAxcEAgUCBgMYAg8NDlcBAQMDAQMVBAQCBAQAAAUAAAAAARIBLQBaALEAzwEZAT4AADceAR8BFh8BHgEUDgEPAQ4CBw4BIyImJyYvAiIPASIPAQ4BIiYnJi8BLgI0NjUnNDY3Nj8DJzQ+Ajc+ATUnNDU0PgIzMh4CHQEWFxYfAR4CFRQnMhYfARUPAQYPAQYUFxYfAR4BOwEyPwM0LwIuAS8BPQE0PgEzMhYUBhQXMzI2NScuAiMiBgcXJyYHIyI9AS4CIg4BFQcUHwEWMjY1IyIvASY2BzI+AyYvAi4CBg8BDgIVFxQGFBYfAhYXNzI3Njc2NzU/ATQ+ATc1ND8BNj8BLwEmLwEmNScmLwImIg8BBiImLwEmIh0BBwYHFxQXBw4BHQIyHwEWHwEWHwEUBgceAxcyPgE3Nj8CNj0BLwImIyIPAQYiJi8BBwYHBhUHBg8CFBb5BAUBAgEDAwIDAwYEBwYJCgYEBwQICwQCAQQdBwYNAQEEAwgLCgUJCRkDBQMDAQcHAwIFBwEBBwoMBggJAQULEg0OEgkDAQMDBA4HDAh+AgMBAQEEAQIGAgIDAQQBBgYBBgUOCwEBAgUDBwMBAgMCBQQCAQIDAwEBAwYECAYBAQUCAgICAQIEBgMDAQIBAQICAQEBAgEEHQQGBgMBAgINCgIEBQYDCgMIBQECBQQQCAMFQwQFCQkEBAIFAwYDAQIBAgMFAgICBwEBAgMDAwIFBRQFCQcDBQMCCAMBAQEFBgQDAwcEBAYEAQIFAwIICApAAwcIAwgKCgMBBQMFAwYDAgoDBQUBBAICAQICAQMBAQlbAgcFBgQFBAIGBwUEAQQDBwoEAgMGCAIBAQEBAgIFAgQCAwQCBAEDBggIBQ0HBwIBAgQJAgcKFBMSCAoYDgsGBgwSDgcMExcMDQoJBAYSCRQWDQqPAgEEBAIFAQEFAgMBAgQGAwUDCAgEAgECAQEEAQECBwIDAgcFBAIBAwMHBAgEBwgJAQEBAQYDBgUDBAMFBAMFAQIBAQUEBuQCAwYHBQISEAQGBAECCgMDBAQMBAcHAwEDAQEDDgECBAIDAQgfBAYFAgEBAgMBAQIXBgQCCgICBAcHBwUDAw0CBQQGAwIHDQcIBAICBwgTCQoEAgQDBAgDBAYEBQEEBgQCFQIFBAkFBQICAgIIBQ8EAQYBAwIKAwICBQURCAgFBQcKAAAAAAQAAAAAASsBGgAHAAsADwAVAAATHwEPAS8BNwcXNycXBxc3LwEHFwcXL/QIIgv0CCIO4SDhTQNeAj1FDTI9CQEZAwnyCQMK8egD3wKdEgITLzcPJycPAAAEAAAAAAEHARoABwAMABAAFAAAEyMHFRczNzUHFSM1MxcjNTM1IzUz/eEJCeEKhF1dcV5eXl4BGQn0CQn0cWfPz14TXgAAAAAG//8AAAEcARoACAARAB4AJwA0AEQAADcUBiImNDYyFgcUBiImNDYyFhcuAScGJx4BFxYzJjU3FAYiJjQ2MhYXNjc2JicGBxYHBgcWJyIxPgEXBg8BDgEHJicmI/YXIRcXIRemGCEXFyEYMhYiChESDTEgDg4LYRchGBghFxATBgYKDwYQEQgDCQ7SARJEJgkCARgpDggKBgbzERYWIRYWZREWFiEWFnQEGhMIBB4oBwIOEgEQFhYhFhYCFx0ZMhYRCR8iEA4LfCAjAwoNCAEVEwUCAQAAAAAEAAAAAAEaARoABwALABIAFgAAEzczFxUHIyc3FTM1DwEXBxc3NRUzFSMTE+ESEuETE+GvDTU1DT5LSwEHEhLhExPh4eE5DTU1DT0KMxMAAAQAAAAAARoA4QAHAAoAEgAYAAA3BzM3MxczJwc3FzcjBzM3MxczJzc2Nx8BPywZCSsKGSwbDw6FHj0eDj8OHWQWAgECF6lxHBxxQigoeqkrK0JDBgULQwADAAAAAAEHAPQAAwAHAAsAACUjNTMVIzUzBzM1IwEH4eHh4eHh4c4mcSZxJgAAAAABAAAAAAEaAQcAGwAANyIuAT8BIwYuAjc2Nz4BNzMeAR0BFAYrAQcGZggOBQQSNAcMBwEDIwgDDQinCw8PCxluCCMLEQkpAQYLDgZKFwcJAQEPC0IKD2cHAAAAAAIAAAAAARoBBwAbADYAADciLgE/ASMGLgI3Njc+ATczHgEdARQGKwEHBiciBwYHBhY3MxcVBwYeATI/AjMyNj0BNCYjZggOBQQSNAcMBwEDIwgDDQinCw8PCxluCBgFAgsgAgQFPgkUAQEEBQJyCRkDBQUDIwsRCSkBBgsOBkoXBwkBAQ8LQgoPZwfRBR9DBAcBDAkuAgUDAmgDBANCAwUAAAAAAQAAAAABGgEHABsAABMeAg8BMzYeAgcGBw4BKwEuAT0BNDY7ATc2xggOBQQSNAcMBwEDIwgDDQinCw8PCxptCAEHAQoRCSkBBwsNBkoXBwoBDwtCCg9nBgAAAAACAAAAAAEaAQcAGwA2AAATHgIPATM2HgIHBgcOASsBLgE9ATQ2OwE3NhcyNzY3NiYHIyc1NzYuASIPAiMiBhcVBhYzxggOBQQSNAcMBwEDIwgDDQinCw8PCxptCBgFAgshAQQFPQoUAQEEBQJyCRkDBQEBBQMBBwEKEQkpAQcLDQZKFwcKAQ8LQgoPZwbQBR9DBAcBDAkuAgUDAmgDBANCAwUAAAYAAAAAARkBGgAgAC8AQQBNAFIAaAAAJScHJzcnJiIOAhQXBgcGFhceATMyNzY3NjcWMj4CNAcGKwEiLgI3NjceARcGNxYGIicuATc+AjsBBxUXMzcHMxc3JzcvAQ8CFycXFSMnFzcXFhQHDgEnJi8BNxceAT4CNCYnARUPJxcnAw0bGhQLBTo5BgEIBAkFCQcVJCIaDRwaFAviAQICAgIDAgEqRgMGBEmpASAsDwwGBgQPFAoFIiMNIsocDgwMAQQ2Cw8CIworFByKDToICAYPCAUDOw06AgUFAgEBAesDJxcoDwQLFBsdDTo7CBUHBAUHEyUhGwYLFRoctwEBBAYCLEYEBwNLhRcfDwwgDwoQCCMNIyInDg0NHwgkAg8MNkAdFSx9DTwIFggGAwMCBDwNPAICAgMDBAMBAAAGAAAAAAD0ARoAEwAXABsAHwAjACcAADczFSMVByMnNSM1MzU0NjsBMhYVKwEVMwczNSMXIxUzNzMVIzczFSO8OBMTgxMSOAsIOAgLEzg4XoODJhMTEhMTJhMT9BOpEhKpExMHCwsHE7ypE4ODg4ODAAAAAAEAAAAAAQcAzwAFAAA/ATMXByMmB9IIahDECgpmAAAAAQAAAAAAzwEHAAUAABMXFQcnNcQKCmYBBwjSCGoQAAABAAAAAADPAQcABQAANyc1NxcVaAoKZiYH0ghqEAAAAAEAAAAAAQcAzwAFAAAlByMnNzMBBwjSB2kQaAoKZgAAAQAAAAABGgD/AD4AACUOAQcXFAYHDgMiJicWNjciJicmJxcWNy4BJyY1MRYzJicmJyY3NjcWFxYXFhcnNTQ3Njc2MhYXNjcGBzYBGQUOCAEHBwkdJCstKhIVKhAMFwcFAwUKCQkQBgwMDQsHAwIDBAEECg0ZHxAQAQQIFQoWFAgSEAYSEOUIDgYHEB8PFSIYDAwMAgsODAoHCAEBAwIJCA4UBgcMBgYODQcGDAoVCAQBBgYMCRUIBAkIBAkTCgEABAAAAAABBwEaAB4AIgAmACoAADcjJzM3NScjBxUXMwcjBxUXMzc1JyM3FyMHFRczNzUnNTMVBxUjNRcjNTP9ID8UCgpLCQkUPiEJCTgKCgE6OQEJCTgKljheJc4mJl5eCUsJCUsJXgo4CQk4ClZWCjgJCTh6OTmDJSUlJQAAAAAEAAAAAAEHARoAHgAiACYAKgAAEyMHFRczByczNzUnIwcVFzMXIwcVFzM3NScjNzM3NQc1MxUXFSM1NyM1M/04CQkBOToBCgo4CQkhPhQJCUsKChQ/IArhJV44gyYmARkJOApWVgo4CQk4Cl0KSwkJSwpdCjgvJiaDODiDJgAAAAUAAAAAAQcBGgAjACcAKwAvADMAADcjJzUnIzUzNzUnIwcVFzMVIwcVByMHFRczNzU3MxcVFzM3NSczFSMHMxUjByM1MxcjNTP9ISAKHAkKCiUJCQkcCSAiCQkmCSBDIAolCoQTExI4ODkSErwTE0sgRwolCSYJCSYJJQpHIAkmCQkiICAiCQkmxRNLOEsSEhIAAAADAAAAAAEHARoACQATAC0AADc1Byc3MxcHJxUHFScHFzM3Jwc1NxcHFwcjNTMnIwczFSMnNyc3MxUjFzM3IzWNEw0iDiINExITDSIOIg0TYgZFRQZOODg4OjlPBUVFBU85ODg6OLJLEw4hIg0TSzhLEw0iIg0TS2cTNzkTEy0tExM3ORMTLS0TAAAAAAwAAAAAARoBGgAJABMAGwAfACcAKwAzADcAPwBDAEcASwAAExcHJxUjNQcnNxc1IxUnBxczNyc3Iyc1NzMXFSczNSMXIyc1NzMXFSczNSMHIyc1NzMXFSczNSMXIyc1NzMXFSczNSsCFTM1IxUzNigPFxIXDScPEhcNJw0oDU4lCQklCiYTE404Cgo4CTgmJkIlCQklCiYTE404Cgo4CTgmJhMlJSUlARknDRZSVBgNJ+hSUhYNJycNYgkmCQkmChIlCTgKCjgKJZYJJgkJJgoTOQo4CQk4CSYTcBIAAAAAAgAAAAABBwEdABUAGgAANzU0PgEWFzMuAQ4BHQEjBxUXMzc1JwczFSM1XhopIwcUCC44JhMSErwTEyYmvKklFR8HFRMbIAcqHSUTcBMTcBMTcHAABQAAAAABGgEaAAkAEQAeACcALwAANzM3FxUHJyMnNR8BNQ8BIxUzNxQGByc+ASc2JzceAQcUByc2NCc3FgcUByc2JzcWHDRJEBBJNAlIOzsHLi7FDw4ODA0BARkODg8lEw0NDQ0TJggOBwcOCNFIBvQGSAleVzvGOgNLJRcqEg0PJBMnHw0RKxcfGQ0ULxMNGR8QDQ4PEA0NAAAABAAAAAABFQEUABcALwBbAF8AADczNzM3NTc1JzUnIycjByMHFQcVFxUXMzcjNS8BPwE1Mz8BHwEzFR8BDwEVIw8BJzcGDwEjNTY3PgMzMh4CFA4BDwEOAR0BIzU0Nj8BPgE0JzEuAScxJiIGFyM1M5ANIC0KICAJLiANHy8KHx8KLwMpAh0cAykGHB0GKAMdHQMoBxwcFQIBAREBAwIEBwkFCAsIAwQFAwYCBBEEAwsDAwEBAwIDBgYPEBAYIAotIA4gLgkgIAotIA4gLQoTKAccHAcoAxwcAygHHBwHKAMcHHEDAwYBCQcDBgQDBQgLDAkIBAcDBgMJCgUIAw4DCAcDAgQBAgRdEAAAAAYAAAAAASwBGgBCAE4AWgBiAGYAagAANzQ2HwEWMjY/AicuAiIHNTcWHwE3PgMWFRQjIiYiBgcGBxcWHwEWMjc2PwEXDgMiLgEvASYnDwEOAiImFz4BNCYnMxYVFAYHIy4BNTQ3Mw4BFRQXNyEHFRchNzUHITUhNSE1IWUHBAUBAwUDCwYHAQUGBwMbBgMFBQMJCQkGCAMFBgYDBQQIAQECAQQBBQMDAwEGBwgGBQMBBAEBCQYDCAcIBnMHCQkHDRIJCZ4JCRINCAgQz/7mCQkBGgkT/voBBv76AQZUBAUCBAEFAxANGwMFAwEEBQYIEAgGCQYBBAQIAwYEBggiBAMDAQEEBQQCAwgHBgQGAxQEAw8JBQYFBQUKGBoYChUaDhcKCRkNGhUKGQwbFM4J9AkJ9OqoEyYAAAIAAAAAARUBFAAXAB4AADcjJyMnNSc1NzU3MzczFzMXFRcVBxUHIyczNycHJwedDR8vCh8fCi8fDSAuCSAgCi0/DkYNQBoNGCAKLSAOIC0KICAJLiAOIC0KMEYOQRoNAAMAAAAAARUBFAAXAC8ANgAANzM3Mzc1NzUnNScjJyMHIwcVBxUXFRczNyM1LwE/ATUzPwEfATMVHwEPARUjDwEnNzM3JwcnB5ANIC0KICAJLiANHy8KHx8KLwMpAh0cAykGHB0GKAMdHQMoBxwcBA5GDUAaDRggCi0gDiAuCSAgCi0gDiAtChMoBxwcBygDHBwDKAccHAcoAxwcIEYOQRoNAAAABAAAAAABGgD0AAcACwAWACEAADcHFRczNzUnFSM1Mwc1MzUjBxUXMzUjJzUzNSMHFRczNSOWExNxEhJxcakTHQkJHRM4EhwJCRwS9BOWExOWE6mWXksTCYQJEzgmEgleCRMAAAMAAP//AS4BBwASAB8AJgAAEzMXFSYnNSMVMxQXIzUzNSMnNRc+AR4CDgIuAjYXNycHJwcXHPQJCAvgXRNLOGcJpBEoJBcCEiEoJBYDEjgtDycYDCABBwpnBwRTqR8ZExIKu3QMAhEiKCQXAhIhKCRSOww0Ew4aAAUAAAAAASwBBwASAB8AKwAxADcAABMzFxUmJzUjFTMUFyM1MzUjJzUXIg4BFB4BMj4BNC4BByIuATQ+ATMyFhQGJxc3JzcnByc3FwcnHPQJCAvgXRNLOGcJzhQjFBQjKCMUFCMUDxoPDxoPFyEhFRsJExMJMBIIGxsIAQcKZwcEU6kfGRMSCrtnFCMoIxQUIygjFIMPGh4aDyEuIUMbCBMSCC4SCBobCAAAAAADAAAAAAEsAQcAEgAfACsAABMzFxUmJzUjFTMUFyM1MzUjJzUXIg4BFB4BMj4BNC4BByIuATQ+ATMyFhQGHPQJCAvgXRNLOGcJzhQjFBQjKCMUFCMUDxoPDxoPFyEhAQcKZwcEU6kfGRMSCrtnFCMoIxQUIygjFIMPGh4aDyEuIQAAAAADAAD//gEuAQcAEgAuADEAABMzFxUmJzUjFTMUFyM1MzUjJzUXMh4CFx4BBw4CBw4BJy4CJy4BNz4CNzYXJxUc9AkIC+BdE0s4ZwnOChMRDgUHBAQCCg4IDR4PCREOBQcEBAIKDggSOjkBBwpnBwRTqR8ZExIKu2cFCg4IDR4PCREOBQcEBAIKDggNHg8JEQ4FCksmSwAAAAIAAAAAARoBBwAPABMAAAEjBxUXMxUjFTM1IzUzNzUHIzUzARD0CQlnOJY4ZwkS4eEBBwq7ChITExIKu7KpAAAGAAAAAAEsAPQAGQAzADcAOwBHAFMAADczMhYdARQGKwEiLwEmIg8BBisBIiY9ATQ2FyIGHQEeATsBMj8BNjIfARY7ATI2PQE0JiMHMxUjJTMVIycyFhQGKwEiJjQ2OwEyFhQGKwEiJjQ2M0uWFyEhFwcRDw8KFgoPDxEHFyEhFxAWARUQBwwJEA4iDhAJDAcQFhYQ4RMTARkTE58EBQUELwQFBQSWBAUFBC8EBQUE9CEXSxghCgoGBgoKIRhLFyETFg9LEBYGCwkJCwYWEEsPFjg4ODglBQgGBggFBQgGBggFAAAEAAAAAAEHARkABQARAB8AKQAAEwcXNzU0FScmIg8BDgEfATY1NxYdARQHNz4BPQE2JicHNxcHBiIvASY0t08oLIwCCAMNAwEEoQUOBAQ0BAQBBQToFh8bAggDDQMBEkgfITsGmmoCAwwDCQOUBQbhCQnPCQkZAggEpQQIAYEVHBUCAwwDCQAAAQAAAAABBwEaACoAADcGJyYvAQcGIi8BJjQ/AScmND8BNjIfATc+AR8BHgEdASM1Bxc1MxUUBgfMBgYDA2AqAggDDQMDJCQDAw0DCAIqYgQIBDIEBDxJST0FBCcDAwECWCACAwwDCQMhIgMJAwwDAiBZAwECGQEIBFxBODcuSQQIAgAABgAAAAABGgEaAAsAFwAjADAAOABAAAA3MzUzNSM1IxUjFTMXIxUjFTMVMzUzNSM3NSMVIxUzFTM1MzUHJiIPAQYUFjI/ATY0BwYiJjQ/ARc3Byc3NjIWFFITExMTExOWExISExMTHxMTExMSSggXCYwIEBgIjAiiAggGA3kOEwYNBgIIBs4TExMTE14SExMTE5YSEhMTExMuCAiNCBcRCYwIF54DBgcDeQ0TBg4GAgUIAAAABAAAAAABGQEaAAUACAAMABAAABMzFwcjJzcHMyc1IxU9ATMVjhB7CPYIg2vWXxgYARnmDQ3OyRMTEyZLSwAAAAMAAAAAAPQBGgAGABoAJwAANzM1IzUjFScOARQWFxUXMzc1PgE0Jic1JyMHFxQOASIuATQ+ATIeAY0lHBMcFhkZFgpLCRYZGRYJSwp6FCMoIxQUIygjFIMTLzhaDCwyLAwpCQkpDCwyLAwpCQl6FCMUFCMoIxQUIwAAAAADAAAAAADhARoAEQAZAB0AABM1IyIOARQeATsBFSMVMzUjNQcjIiY0NjsBFyM1M+FnEh4SEh4SHBNeEzgcFBsbFBwmExMBBxIRHyMeEl4SEs9eGyccz88ABQAAAAABLAD3AAcAHAAnADcAQwAANTMVITUzFSE3IzUjBiMiJjU0PwE0IyIHNTYzMhUPAQ4BFRQWMzI2NRcxFSM1MxUxNjMyFhUUBiInFRQWMzI2NTQmIgYTAQYT/tSAEAEKFRARIh8WEg8PFCQQGQwLCgkNED8REQwYFBYZKgsQDQ8REBwRXiYmODgQExENHQUEGgwRCSYPBAEICwcKEQ4bD5hDFBsYGh87Dg0SFxURExQAAwAAAAABGgEHAAcACwAPAAABIwcVFzM3NQcjNTM1IzUzARD0CQn0CRLh4eHhAQcKzgkJzsWEEiYAAAAABgAAAAABGgEaAB8ALwBFAFoAegCKAAA3JicmBwYPARU3PgEyFhcHDgIHBhYXFjMyNxUzNTQmBxUUBw4BJy4CPQE0PgEzNy4CIgcGBzUjFTM1FhcWMzI+AjQHFA4BBwYnLgI9AT4DFzYXHgEHPgEyFh8BNScmDgMUHgIyNj8BNQ8BBicuAjQ2NyM1MxcVByMXByc1NxcHM0kEBQkLBwYGBAQLCwUBEgcJBgEDBgkFBQsHEwMPAQIKBQICAQMEA2sBBgsOBQMCEhIDBgIEBwsHBBICBAIGBQIEAgECAwUDBgQBAl4DBggGAwcCCBIOCgUFCQ0OCgQCBgoGBgMFAwTcS1QJCXwnDjY2DiZy6wUCAwIBAwMUAwMFBgYCAQUHBAoSBAIJBzEHCx8FAwMGBQIBAgMCBAEDAhYGCwcEAgMudAUFAQEGDBAQBwcKBgEDAgIEBgQKBAgFAwEBBgIJYAMDAgIFFQEFAQYMDxEOCgYDAgERAgQBAgIGCAsJTRIJcQknDTYNNw4lAAADAAAAAAElAS0AJAA/AEwAABMyHgIXFhcWFxYzFRQOBA8BJy4FPQEyPgI3PgEXLgEnLgEiBgcOAQcVFB4EFz4FNS8BDwEvAQ8BHwI/AZcIDQ0MBwoLFRcMCwsTGR8hEQQFESIeGhMKCxgWFQoMGogVKRIJFhYVCRIpFgoRGBoeDxAdGxcSCTQICFEcCAgCJAQJBFsBLAIEBgQGBQgCAUoWJiMeGxcKAwMKFxseIycUTAEFCQYICDgBDAwGBgYGDAwBORIiIBsYFQkJFBkbICISGQcBYCcCBwczAgECawAAAAQAAAAAASUBLQAkAD8AaQBxAAATMh4CFxYXFhcyFxUUDgQPAScuBT0BFj4CNz4BFy4BJy4BIgYHDgEHFRQeBBc+BTUnHgEUDgEPAQ4BHQEHIyc1ND4BPwE+ATQmJyYiBw4BFQcjJzQ+ATc2FxYHNzMXFQcjJ5cIDQ0MBwoLFRYNCwsTGR8hEQUEESIeGhMKCxgWFQoMGogVKRIJFhYVCRIpFgoRGBoeDxAdGxcRCmAFBgUGBAYDAwMNAwUGBAYDAwMCBQ8FAgMDDQMGCgYODwYeAw0DAw0DASwCBAYEBgUIAgFKFiYjHhsXCgMDChcbHiMnFEwBAgUJBggIOAEMDAYGBgYMDAE5EiIgGxgVCQkUGRsgIhIZBgwOCwgDBgMGBAYDAwYHCwcDBgQGBwYDBQUDBgQCAggNCgIGBgNhAwMNAwMAAAMAAAAAASUBLQAkAD8AUwAAEzIeAhcWFxYXMhcVFA4EDwEnLgU9ARY+Ajc+ARcuAScuASIGBw4BBxUUHgQXPgU1LwEjBycjBxUXBxUXMzcXMzc1JzeXCA0NDAcKCxUWDQsLExkfIREFBBEiHhoTCgsYFhUKDBqIFSkSCRYWFQkSKRYKERgaHg8QHRsXEQpHBwQlJQQIJSUIBCUlBAclJQEsAgQGBAYFCAIBShYmIx4bFwoDAwoXGx4jJxRMAQIFCQYICDgBDAwGBgYGDAwBORIiIBsYFQkJFBkbICISCwgmJggEJSUECCYmCAQlJQAAAAMAAAAAARoBHgAOAB8AKwAANxYGBxcHJw4BLgE+AR4BBzI2Nwc+ATU0LgEiDgEUHgE3NSM1IxUjFTMVMzXiAQ0MUA5PHEg5Exw/RzBkER8MAQwOFycuJhcXJkUlEyYmE7kUJhBPDlAXAitFQiMMNYANDAEMHxEXJxcXJy0nF0sTJSUTJSUAAAADAAAAAAEaAR4ADgAfACMAADcWBgcXBycOAS4BPgEeAQcyNjcHPgE1NC4BIg4BFB4BJzMVI+IBDQxQDk8cSDkTHD9HMGQRHwwBDA4XJy4mFxcmGF1duRQmEE8OUBcCK0VCIww1gA0MAQwfERcnFxcnLScXXRIAAAAAABAAxgABAAAAAAABAAcAAAABAAAAAAACAAcABwABAAAAAAADAAcADgABAAAAAAAEAAcAFQABAAAAAAAFAAwAHAABAAAAAAAGAAcAKAABAAAAAAAKACQALwABAAAAAAALABMAUwADAAEECQABAA4AZgADAAEECQACAA4AdAADAAEECQADAA4AggADAAEECQAEAA4AkAADAAEECQAFABgAngADAAEECQAGAA4AtgADAAEECQAKAEgAxAADAAEECQALACYBDGNvZGljb25SZWd1bGFyY29kaWNvbmNvZGljb25WZXJzaW9uIDEuMTFjb2RpY29uVGhlIGljb24gZm9udCBmb3IgVmlzdWFsIFN0dWRpbyBDb2RlaHR0cDovL2ZvbnRlbGxvLmNvbQBjAG8AZABpAGMAbwBuAFIAZQBnAHUAbABhAHIAYwBvAGQAaQBjAG8AbgBjAG8AZABpAGMAbwBuAFYAZQByAHMAaQBvAG4AIAAxAC4AMQAxAGMAbwBkAGkAYwBvAG4AVABoAGUAIABpAGMAbwBuACAAZgBvAG4AdAAgAGYAbwByACAAVgBpAHMAdQBhAGwAIABTAHQAdQBkAGkAbwAgAEMAbwBkAGUAaAB0AHQAcAA6AC8ALwBmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQACAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcsBAgEDAQQBBQEGAQcBCAEJAQoBCwEMAQ0BDgEPARABEQESARMBFAEVARYBFwEYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUBJgEnASgBKQEqASsBLAEtAS4BLwEwATEBMgEzATQBNQE2ATcBOAE5AToBOwE8AT0BPgE/AUABQQFCAUMBRAFFAUYBRwFIAUkBSgFLAUwBTQFOAU8BUAFRAVIBUwFUAVUBVgFXAVgBWQFaAVsBXAFdAV4BXwFgAWEBYgFjAWQBZQFmAWcBaAFpAWoBawFsAW0BbgFvAXABcQFyAXMBdAF1AXYBdwF4AXkBegF7AXwBfQF+AX8BgAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEBkgGTAZQBlQGWAZcBmAGZAZoBmwGcAZ0BngGfAaABoQGiAaMBpAGlAaYBpwGoAakBqgGrAawBrQGuAa8BsAGxAbIBswG0AbUBtgG3AbgBuQG6AbsBvAG9Ab4BvwHAAcEBwgHDAcQBxQHGAccByAHJAcoBywHMAc0BzgHPAdAB0QHSAdMB1AHVAdYB1wHYAdkB2gHbAdwB3QHeAd8B4AHhAeIB4wHkAeUB5gHnAegB6QHqAesB7AHtAe4B7wHwAfEB8gHzAfQB9QH2AfcB+AH5AfoB+wH8Af0B/gH/AgACAQICAgMCBAIFAgYCBwIIAgkCCgILAgwCDQIOAg8CEAIRAhICEwIUAhUCFgIXAhgCGQIaAhsCHAIdAh4CHwIgAiECIgIjAiQCJQImAicCKAIpAioCKwIsAi0CLgIvAjACMQIyAjMCNAI1AjYCNwI4AjkCOgI7AjwCPQI+Aj8CQAJBAkICQwJEAkUCRgJHAkgCSQJKAksCTAJNAk4CTwJQAlECUgJTAlQCVQJWAlcCWAJZAloCWwJcAl0CXgJfAmACYQJiAmMCZAJlAmYCZwJoAmkCagJrAmwCbQJuAm8CcAJxAnICcwJ0AnUCdgJ3AngCeQJ6AnsCfAJ9An4CfwKAAoECggKDAoQChQKGAocCiAKJAooCiwKMAo0CjgKPApACkQKSApMClAKVApYClwKYApkCmgKbApwCnQKeAp8CoAKhAqICowKkAqUCpgKnAqgCqQKqAqsCrAKtAq4CrwKwArECsgKzArQCtQK2ArcCuAK5AroCuwK8Ar0CvgK/AsACwQLCAsMCxALFAsYCxwLIAskCygLLAswAB2FjY291bnQUYWN0aXZhdGUtYnJlYWtwb2ludHMDYWRkB2FyY2hpdmUKYXJyb3ctYm90aBFhcnJvdy1jaXJjbGUtZG93bhFhcnJvdy1jaXJjbGUtbGVmdBJhcnJvdy1jaXJjbGUtcmlnaHQPYXJyb3ctY2lyY2xlLXVwCmFycm93LWRvd24KYXJyb3ctbGVmdAthcnJvdy1yaWdodBBhcnJvdy1zbWFsbC1kb3duEGFycm93LXNtYWxsLWxlZnQRYXJyb3ctc21hbGwtcmlnaHQOYXJyb3ctc21hbGwtdXAKYXJyb3ctc3dhcAhhcnJvdy11cAxhenVyZS1kZXZvcHMFYXp1cmULYmVha2VyLXN0b3AGYmVha2VyCGJlbGwtZG90DmJlbGwtc2xhc2gtZG90CmJlbGwtc2xhc2gEYmVsbAVibGFuawRib2xkBGJvb2sIYm9va21hcmsLYnJhY2tldC1kb3QNYnJhY2tldC1lcnJvcglicmllZmNhc2UJYnJvYWRjYXN0B2Jyb3dzZXIDYnVnCGNhbGVuZGFyDWNhbGwtaW5jb21pbmcNY2FsbC1vdXRnb2luZw5jYXNlLXNlbnNpdGl2ZQljaGVjay1hbGwFY2hlY2sJY2hlY2tsaXN0DGNoZXZyb24tZG93bgxjaGV2cm9uLWxlZnQNY2hldnJvbi1yaWdodApjaGV2cm9uLXVwBGNoaXAMY2hyb21lLWNsb3NlD2Nocm9tZS1tYXhpbWl6ZQ9jaHJvbWUtbWluaW1pemUOY2hyb21lLXJlc3RvcmUNY2lyY2xlLWZpbGxlZBNjaXJjbGUtbGFyZ2UtZmlsbGVkDGNpcmNsZS1sYXJnZQxjaXJjbGUtc2xhc2gTY2lyY2xlLXNtYWxsLWZpbGxlZAxjaXJjbGUtc21hbGwGY2lyY2xlDWNpcmN1aXQtYm9hcmQJY2xlYXItYWxsBmNsaXBweQljbG9zZS1hbGwFY2xvc2UOY2xvdWQtZG93bmxvYWQMY2xvdWQtdXBsb2FkBWNsb3VkCGNvZGUtb3NzBGNvZGUGY29mZmVlDGNvbGxhcHNlLWFsbApjb2xvci1tb2RlB2NvbWJpbmUSY29tbWVudC1kaXNjdXNzaW9uDWNvbW1lbnQtZHJhZnQSY29tbWVudC11bnJlc29sdmVkB2NvbW1lbnQOY29tcGFzcy1hY3RpdmULY29tcGFzcy1kb3QHY29tcGFzcwdjb3BpbG90BGNvcHkIY292ZXJhZ2ULY3JlZGl0LWNhcmQEZGFzaAlkYXNoYm9hcmQIZGF0YWJhc2UJZGVidWctYWxsD2RlYnVnLWFsdC1zbWFsbAlkZWJ1Zy1hbHQnZGVidWctYnJlYWtwb2ludC1jb25kaXRpb25hbC11bnZlcmlmaWVkHGRlYnVnLWJyZWFrcG9pbnQtY29uZGl0aW9uYWwgZGVidWctYnJlYWtwb2ludC1kYXRhLXVudmVyaWZpZWQVZGVidWctYnJlYWtwb2ludC1kYXRhJGRlYnVnLWJyZWFrcG9pbnQtZnVuY3Rpb24tdW52ZXJpZmllZBlkZWJ1Zy1icmVha3BvaW50LWZ1bmN0aW9uH2RlYnVnLWJyZWFrcG9pbnQtbG9nLXVudmVyaWZpZWQUZGVidWctYnJlYWtwb2ludC1sb2ccZGVidWctYnJlYWtwb2ludC11bnN1cHBvcnRlZA1kZWJ1Zy1jb25zb2xlFGRlYnVnLWNvbnRpbnVlLXNtYWxsDmRlYnVnLWNvbnRpbnVlDmRlYnVnLWNvdmVyYWdlEGRlYnVnLWRpc2Nvbm5lY3QSZGVidWctbGluZS1ieS1saW5lC2RlYnVnLXBhdXNlC2RlYnVnLXJlcnVuE2RlYnVnLXJlc3RhcnQtZnJhbWUNZGVidWctcmVzdGFydBZkZWJ1Zy1yZXZlcnNlLWNvbnRpbnVlF2RlYnVnLXN0YWNrZnJhbWUtYWN0aXZlEGRlYnVnLXN0YWNrZnJhbWULZGVidWctc3RhcnQPZGVidWctc3RlcC1iYWNrD2RlYnVnLXN0ZXAtaW50bw5kZWJ1Zy1zdGVwLW91dA9kZWJ1Zy1zdGVwLW92ZXIKZGVidWctc3RvcAVkZWJ1ZxBkZXNrdG9wLWRvd25sb2FkE2RldmljZS1jYW1lcmEtdmlkZW8NZGV2aWNlLWNhbWVyYQ1kZXZpY2UtbW9iaWxlCmRpZmYtYWRkZWQMZGlmZi1pZ25vcmVkDWRpZmYtbW9kaWZpZWQNZGlmZi1tdWx0aXBsZQxkaWZmLXJlbW92ZWQMZGlmZi1yZW5hbWVkC2RpZmYtc2luZ2xlBGRpZmYHZGlzY2FyZARlZGl0DWVkaXRvci1sYXlvdXQIZWxsaXBzaXMMZW1wdHktd2luZG93C2Vycm9yLXNtYWxsBWVycm9yB2V4Y2x1ZGUKZXhwYW5kLWFsbAZleHBvcnQKZXh0ZW5zaW9ucwpleWUtY2xvc2VkA2V5ZQhmZWVkYmFjawtmaWxlLWJpbmFyeQlmaWxlLWNvZGUKZmlsZS1tZWRpYQhmaWxlLXBkZg5maWxlLXN1Ym1vZHVsZRZmaWxlLXN5bWxpbmstZGlyZWN0b3J5EWZpbGUtc3ltbGluay1maWxlCGZpbGUtemlwBGZpbGUFZmlsZXMNZmlsdGVyLWZpbGxlZAZmaWx0ZXIFZmxhbWUJZm9sZC1kb3duB2ZvbGQtdXAEZm9sZA1mb2xkZXItYWN0aXZlDmZvbGRlci1saWJyYXJ5DWZvbGRlci1vcGVuZWQGZm9sZGVyBGdhbWUEZ2VhcgRnaWZ0C2dpc3Qtc2VjcmV0CmdpdC1jb21taXQLZ2l0LWNvbXBhcmUJZ2l0LWZldGNoCWdpdC1tZXJnZRdnaXQtcHVsbC1yZXF1ZXN0LWNsb3NlZBdnaXQtcHVsbC1yZXF1ZXN0LWNyZWF0ZRZnaXQtcHVsbC1yZXF1ZXN0LWRyYWZ0HmdpdC1wdWxsLXJlcXVlc3QtZ28tdG8tY2hhbmdlcxxnaXQtcHVsbC1yZXF1ZXN0LW5ldy1jaGFuZ2VzEGdpdC1wdWxsLXJlcXVlc3QPZ2l0LXN0YXNoLWFwcGx5DWdpdC1zdGFzaC1wb3AJZ2l0LXN0YXNoDWdpdGh1Yi1hY3Rpb24KZ2l0aHViLWFsdA9naXRodWItaW52ZXJ0ZWQOZ2l0aHViLXByb2plY3QGZ2l0aHViBWdsb2JlCmdvLXRvLWZpbGUHZ3JhYmJlcgpncmFwaC1sZWZ0CmdyYXBoLWxpbmUNZ3JhcGgtc2NhdHRlcgVncmFwaAdncmlwcGVyEWdyb3VwLWJ5LXJlZi10eXBlDGhlYXJ0LWZpbGxlZAVoZWFydAdoaXN0b3J5BGhvbWUPaG9yaXpvbnRhbC1ydWxlBWh1Ym90BWluYm94BmluZGVudARpbmZvBmluc2VydAdpbnNwZWN0C2lzc3VlLWRyYWZ0Dmlzc3VlLXJlb3BlbmVkBmlzc3VlcwZpdGFsaWMGamVyc2V5BGpzb24Oa2ViYWItdmVydGljYWwDa2V5A2xhdw1sYXllcnMtYWN0aXZlCmxheWVycy1kb3QGbGF5ZXJzF2xheW91dC1hY3Rpdml0eWJhci1sZWZ0GGxheW91dC1hY3Rpdml0eWJhci1yaWdodA9sYXlvdXQtY2VudGVyZWQObGF5b3V0LW1lbnViYXITbGF5b3V0LXBhbmVsLWNlbnRlchRsYXlvdXQtcGFuZWwtanVzdGlmeRFsYXlvdXQtcGFuZWwtbGVmdBBsYXlvdXQtcGFuZWwtb2ZmEmxheW91dC1wYW5lbC1yaWdodAxsYXlvdXQtcGFuZWwXbGF5b3V0LXNpZGViYXItbGVmdC1vZmYTbGF5b3V0LXNpZGViYXItbGVmdBhsYXlvdXQtc2lkZWJhci1yaWdodC1vZmYUbGF5b3V0LXNpZGViYXItcmlnaHQQbGF5b3V0LXN0YXR1c2JhcgZsYXlvdXQHbGlicmFyeRFsaWdodGJ1bGItYXV0b2ZpeBFsaWdodGJ1bGItc3BhcmtsZQlsaWdodGJ1bGINbGluay1leHRlcm5hbARsaW5rC2xpc3QtZmlsdGVyCWxpc3QtZmxhdAxsaXN0LW9yZGVyZWQObGlzdC1zZWxlY3Rpb24JbGlzdC10cmVlDmxpc3QtdW5vcmRlcmVkCmxpdmUtc2hhcmUHbG9hZGluZwhsb2NhdGlvbgpsb2NrLXNtYWxsBGxvY2sGbWFnbmV0CW1haWwtcmVhZARtYWlsCm1hcC1maWxsZWQTbWFwLXZlcnRpY2FsLWZpbGxlZAxtYXAtdmVydGljYWwDbWFwCG1hcmtkb3duCW1lZ2FwaG9uZQdtZW50aW9uBG1lbnUFbWVyZ2UKbWljLWZpbGxlZANtaWMJbWlsZXN0b25lBm1pcnJvcgxtb3J0YXItYm9hcmQEbW92ZRBtdWx0aXBsZS13aW5kb3dzBW11c2ljBG11dGUIbmV3LWZpbGUKbmV3LWZvbGRlcgduZXdsaW5lCm5vLW5ld2xpbmUEbm90ZRFub3RlYm9vay10ZW1wbGF0ZQhub3RlYm9vawhvY3RvZmFjZQxvcGVuLXByZXZpZXcMb3JnYW5pemF0aW9uBm91dHB1dAdwYWNrYWdlCHBhaW50Y2FuC3Bhc3MtZmlsbGVkBHBhc3MKcGVyc29uLWFkZAZwZXJzb24FcGlhbm8JcGllLWNoYXJ0A3BpbgxwaW5uZWQtZGlydHkGcGlubmVkC3BsYXktY2lyY2xlBHBsYXkEcGx1Zw1wcmVzZXJ2ZS1jYXNlB3ByZXZpZXcQcHJpbWl0aXZlLXNxdWFyZQdwcm9qZWN0BXB1bHNlCHF1ZXN0aW9uBXF1b3RlC3JhZGlvLXRvd2VyCXJlYWN0aW9ucwtyZWNvcmQta2V5cwxyZWNvcmQtc21hbGwGcmVjb3JkBHJlZG8KcmVmZXJlbmNlcwdyZWZyZXNoBXJlZ2V4D3JlbW90ZS1leHBsb3JlcgZyZW1vdGUGcmVtb3ZlC3JlcGxhY2UtYWxsB3JlcGxhY2UFcmVwbHkKcmVwby1jbG9uZQpyZXBvLWZldGNoD3JlcG8tZm9yY2UtcHVzaAtyZXBvLWZvcmtlZAlyZXBvLXB1bGwJcmVwby1wdXNoBHJlcG8GcmVwb3J0D3JlcXVlc3QtY2hhbmdlcwVyb2JvdAZyb2NrZXQScm9vdC1mb2xkZXItb3BlbmVkC3Jvb3QtZm9sZGVyA3JzcwRydWJ5CXJ1bi1hYm92ZRBydW4tYWxsLWNvdmVyYWdlB3J1bi1hbGwJcnVuLWJlbG93DHJ1bi1jb3ZlcmFnZQpydW4tZXJyb3JzCHNhdmUtYWxsB3NhdmUtYXMEc2F2ZQtzY3JlZW4tZnVsbA1zY3JlZW4tbm9ybWFsDHNlYXJjaC1mdXp6eQtzZWFyY2gtc3RvcAZzZWFyY2gEc2VuZBJzZXJ2ZXItZW52aXJvbm1lbnQOc2VydmVyLXByb2Nlc3MGc2VydmVyDXNldHRpbmdzLWdlYXIIc2V0dGluZ3MFc2hhcmUGc2hpZWxkB3NpZ24taW4Ic2lnbi1vdXQGc21pbGV5BXNuYWtlD3NvcnQtcHJlY2VkZW5jZQ5zb3VyY2UtY29udHJvbA5zcGFya2xlLWZpbGxlZAdzcGFya2xlEHNwbGl0LWhvcml6b250YWwOc3BsaXQtdmVydGljYWwIc3F1aXJyZWwKc3Rhci1lbXB0eQlzdGFyLWZ1bGwJc3Rhci1oYWxmC3N0b3AtY2lyY2xlDXN1cnJvdW5kLXdpdGgMc3ltYm9sLWFycmF5DnN5bWJvbC1ib29sZWFuDHN5bWJvbC1jbGFzcwxzeW1ib2wtY29sb3IPc3ltYm9sLWNvbnN0YW50EnN5bWJvbC1lbnVtLW1lbWJlcgtzeW1ib2wtZW51bQxzeW1ib2wtZXZlbnQMc3ltYm9sLWZpZWxkC3N5bWJvbC1maWxlEHN5bWJvbC1pbnRlcmZhY2UKc3ltYm9sLWtleQ5zeW1ib2wta2V5d29yZA1zeW1ib2wtbWV0aG9kC3N5bWJvbC1taXNjEHN5bWJvbC1uYW1lc3BhY2UOc3ltYm9sLW51bWVyaWMPc3ltYm9sLW9wZXJhdG9yEHN5bWJvbC1wYXJhbWV0ZXIPc3ltYm9sLXByb3BlcnR5DHN5bWJvbC1ydWxlcg5zeW1ib2wtc25pcHBldA1zeW1ib2wtc3RyaW5nEHN5bWJvbC1zdHJ1Y3R1cmUPc3ltYm9sLXZhcmlhYmxlDHN5bmMtaWdub3JlZARzeW5jBXRhYmxlA3RhZwZ0YXJnZXQIdGFza2xpc3QJdGVsZXNjb3BlDXRlcm1pbmFsLWJhc2gMdGVybWluYWwtY21kD3Rlcm1pbmFsLWRlYmlhbg50ZXJtaW5hbC1saW51eBN0ZXJtaW5hbC1wb3dlcnNoZWxsDXRlcm1pbmFsLXRtdXgPdGVybWluYWwtdWJ1bnR1CHRlcm1pbmFsCXRleHQtc2l6ZQp0aHJlZS1iYXJzEXRodW1ic2Rvd24tZmlsbGVkCnRodW1ic2Rvd24PdGh1bWJzdXAtZmlsbGVkCHRodW1ic3VwBXRvb2xzBXRyYXNoDXRyaWFuZ2xlLWRvd24NdHJpYW5nbGUtbGVmdA50cmlhbmdsZS1yaWdodAt0cmlhbmdsZS11cAd0d2l0dGVyEnR5cGUtaGllcmFyY2h5LXN1YhR0eXBlLWhpZXJhcmNoeS1zdXBlcg50eXBlLWhpZXJhcmNoeQZ1bmZvbGQTdW5ncm91cC1ieS1yZWYtdHlwZQZ1bmxvY2sGdW5tdXRlCnVudmVyaWZpZWQOdmFyaWFibGUtZ3JvdXAPdmVyaWZpZWQtZmlsbGVkCHZlcmlmaWVkCHZlcnNpb25zCXZtLWFjdGl2ZQp2bS1jb25uZWN0CnZtLW91dGxpbmUKdm0tcnVubmluZwJ2bQJ2cg92c2NvZGUtaW5zaWRlcnMGdnNjb2RlBHdhbmQHd2FybmluZwV3YXRjaAp3aGl0ZXNwYWNlCndob2xlLXdvcmQGd2luZG93CXdvcmQtd3JhcBF3b3Jrc3BhY2UtdHJ1c3RlZBF3b3Jrc3BhY2UtdW5rbm93bhN3b3Jrc3BhY2UtdW50cnVzdGVkB3pvb20taW4Iem9vbS1vdXQAAAA=) format("truetype")}.codicon[class*=codicon-]{font: 16px/1 codicon;display:inline-block;text-decoration:none;text-rendering:auto;text-align:center;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;user-select:none;-webkit-user-select:none}.codicon-wrench-subaction{opacity:.5}@keyframes codicon-spin{to{transform:rotate(360deg)}}.codicon-sync.codicon-modifier-spin,.codicon-loading.codicon-modifier-spin,.codicon-gear.codicon-modifier-spin,.codicon-notebook-state-executing.codicon-modifier-spin{animation:codicon-spin 1.5s steps(30) infinite}.codicon-modifier-disabled{opacity:.4}.codicon-loading,.codicon-tree-item-loading:before{animation-duration:1s!important;animation-timing-function:cubic-bezier(.53,.21,.29,.67)!important}.monaco-editor .codicon.codicon-symbol-array,.monaco-workbench .codicon.codicon-symbol-array{color:var(--vscode-symbolIcon-arrayForeground)}.monaco-editor .codicon.codicon-symbol-boolean,.monaco-workbench .codicon.codicon-symbol-boolean{color:var(--vscode-symbolIcon-booleanForeground)}.monaco-editor .codicon.codicon-symbol-class,.monaco-workbench .codicon.codicon-symbol-class{color:var(--vscode-symbolIcon-classForeground)}.monaco-editor .codicon.codicon-symbol-method,.monaco-workbench .codicon.codicon-symbol-method{color:var(--vscode-symbolIcon-methodForeground)}.monaco-editor .codicon.codicon-symbol-color,.monaco-workbench .codicon.codicon-symbol-color{color:var(--vscode-symbolIcon-colorForeground)}.monaco-editor .codicon.codicon-symbol-constant,.monaco-workbench .codicon.codicon-symbol-constant{color:var(--vscode-symbolIcon-constantForeground)}.monaco-editor .codicon.codicon-symbol-constructor,.monaco-workbench .codicon.codicon-symbol-constructor{color:var(--vscode-symbolIcon-constructorForeground)}.monaco-editor .codicon.codicon-symbol-value,.monaco-workbench .codicon.codicon-symbol-value,.monaco-editor .codicon.codicon-symbol-enum,.monaco-workbench .codicon.codicon-symbol-enum{color:var(--vscode-symbolIcon-enumeratorForeground)}.monaco-editor .codicon.codicon-symbol-enum-member,.monaco-workbench .codicon.codicon-symbol-enum-member{color:var(--vscode-symbolIcon-enumeratorMemberForeground)}.monaco-editor .codicon.codicon-symbol-event,.monaco-workbench .codicon.codicon-symbol-event{color:var(--vscode-symbolIcon-eventForeground)}.monaco-editor .codicon.codicon-symbol-field,.monaco-workbench .codicon.codicon-symbol-field{color:var(--vscode-symbolIcon-fieldForeground)}.monaco-editor .codicon.codicon-symbol-file,.monaco-workbench .codicon.codicon-symbol-file{color:var(--vscode-symbolIcon-fileForeground)}.monaco-editor .codicon.codicon-symbol-folder,.monaco-workbench .codicon.codicon-symbol-folder{color:var(--vscode-symbolIcon-folderForeground)}.monaco-editor .codicon.codicon-symbol-function,.monaco-workbench .codicon.codicon-symbol-function{color:var(--vscode-symbolIcon-functionForeground)}.monaco-editor .codicon.codicon-symbol-interface,.monaco-workbench .codicon.codicon-symbol-interface{color:var(--vscode-symbolIcon-interfaceForeground)}.monaco-editor .codicon.codicon-symbol-key,.monaco-workbench .codicon.codicon-symbol-key{color:var(--vscode-symbolIcon-keyForeground)}.monaco-editor .codicon.codicon-symbol-keyword,.monaco-workbench .codicon.codicon-symbol-keyword{color:var(--vscode-symbolIcon-keywordForeground)}.monaco-editor .codicon.codicon-symbol-module,.monaco-workbench .codicon.codicon-symbol-module{color:var(--vscode-symbolIcon-moduleForeground)}.monaco-editor .codicon.codicon-symbol-namespace,.monaco-workbench .codicon.codicon-symbol-namespace{color:var(--vscode-symbolIcon-namespaceForeground)}.monaco-editor .codicon.codicon-symbol-null,.monaco-workbench .codicon.codicon-symbol-null{color:var(--vscode-symbolIcon-nullForeground)}.monaco-editor .codicon.codicon-symbol-number,.monaco-workbench .codicon.codicon-symbol-number{color:var(--vscode-symbolIcon-numberForeground)}.monaco-editor .codicon.codicon-symbol-object,.monaco-workbench .codicon.codicon-symbol-object{color:var(--vscode-symbolIcon-objectForeground)}.monaco-editor .codicon.codicon-symbol-operator,.monaco-workbench .codicon.codicon-symbol-operator{color:var(--vscode-symbolIcon-operatorForeground)}.monaco-editor .codicon.codicon-symbol-package,.monaco-workbench .codicon.codicon-symbol-package{color:var(--vscode-symbolIcon-packageForeground)}.monaco-editor .codicon.codicon-symbol-property,.monaco-workbench .codicon.codicon-symbol-property{color:var(--vscode-symbolIcon-propertyForeground)}.monaco-editor .codicon.codicon-symbol-reference,.monaco-workbench .codicon.codicon-symbol-reference{color:var(--vscode-symbolIcon-referenceForeground)}.monaco-editor .codicon.codicon-symbol-snippet,.monaco-workbench .codicon.codicon-symbol-snippet{color:var(--vscode-symbolIcon-snippetForeground)}.monaco-editor .codicon.codicon-symbol-string,.monaco-workbench .codicon.codicon-symbol-string{color:var(--vscode-symbolIcon-stringForeground)}.monaco-editor .codicon.codicon-symbol-struct,.monaco-workbench .codicon.codicon-symbol-struct{color:var(--vscode-symbolIcon-structForeground)}.monaco-editor .codicon.codicon-symbol-text,.monaco-workbench .codicon.codicon-symbol-text{color:var(--vscode-symbolIcon-textForeground)}.monaco-editor .codicon.codicon-symbol-type-parameter,.monaco-workbench .codicon.codicon-symbol-type-parameter{color:var(--vscode-symbolIcon-typeParameterForeground)}.monaco-editor .codicon.codicon-symbol-unit,.monaco-workbench .codicon.codicon-symbol-unit{color:var(--vscode-symbolIcon-unitForeground)}.monaco-editor .codicon.codicon-symbol-variable,.monaco-workbench .codicon.codicon-symbol-variable{color:var(--vscode-symbolIcon-variableForeground)}.monaco-editor .lightBulbWidget{display:flex;align-items:center;justify-content:center}.monaco-editor .lightBulbWidget:hover{cursor:pointer}.monaco-editor .lightBulbWidget.codicon-light-bulb,.monaco-editor .lightBulbWidget.codicon-lightbulb-sparkle{color:var(--vscode-editorLightBulb-foreground)}.monaco-editor .lightBulbWidget.codicon-lightbulb-autofix,.monaco-editor .lightBulbWidget.codicon-lightbulb-sparkle-autofix{color:var(--vscode-editorLightBulbAutoFix-foreground, var(--vscode-editorLightBulb-foreground))}.monaco-editor .lightBulbWidget.codicon-sparkle-filled{color:var(--vscode-editorLightBulbAi-foreground, var(--vscode-icon-foreground))}.monaco-editor .lightBulbWidget:before{position:relative;z-index:2}.monaco-editor .lightBulbWidget:after{position:absolute;top:0;left:0;content:"";display:block;width:100%;height:100%;opacity:.3;background-color:var(--vscode-editor-background);z-index:1}.action-widget{font-size:13px;min-width:160px;max-width:80vw;z-index:40;display:block;width:100%;border:1px solid var(--vscode-editorWidget-border)!important;border-radius:2px;background-color:var(--vscode-editorWidget-background);color:var(--vscode-editorWidget-foreground)}.context-view-block{position:fixed;cursor:initial;left:0;top:0;width:100%;height:100%;z-index:-1}.context-view-pointerBlock{position:fixed;cursor:initial;left:0;top:0;width:100%;height:100%;z-index:2}.action-widget .monaco-list{user-select:none;-webkit-user-select:none;border:none!important;border-width:0!important}.action-widget .monaco-list:focus:before{outline:0!important}.action-widget .monaco-list .monaco-scrollable-element{overflow:visible}.action-widget .monaco-list .monaco-list-row{padding:0 10px;white-space:nowrap;cursor:pointer;touch-action:none;width:100%}.action-widget .monaco-list .monaco-list-row.action.focused:not(.option-disabled){background-color:var(--vscode-quickInputList-focusBackground)!important;color:var(--vscode-quickInputList-focusForeground);outline:1px solid var(--vscode-menu-selectionBorder, transparent);outline-offset:-1px}.action-widget .monaco-list-row.group-header{color:var(--vscode-descriptionForeground)!important;font-weight:600}.action-widget .monaco-list .group-header,.action-widget .monaco-list .option-disabled,.action-widget .monaco-list .option-disabled:before,.action-widget .monaco-list .option-disabled .focused,.action-widget .monaco-list .option-disabled .focused:before{cursor:default!important;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;background-color:transparent!important;outline:0 solid!important}.action-widget .monaco-list-row.action{display:flex;gap:6px;align-items:center}.action-widget .monaco-list-row.action.option-disabled,.action-widget .monaco-list:focus .monaco-list-row.focused.action.option-disabled,.action-widget .monaco-list-row.action.option-disabled .codicon,.action-widget .monaco-list:not(.drop-target):not(.dragging) .monaco-list-row:hover:not(.selected):not(.focused).option-disabled{color:var(--vscode-disabledForeground)}.action-widget .monaco-list-row.action:not(.option-disabled) .codicon{color:inherit}.action-widget .monaco-list-row.action .title{flex:1;overflow:hidden;text-overflow:ellipsis}.action-widget .monaco-list-row.action .monaco-keybinding>.monaco-keybinding-key{background-color:var(--vscode-keybindingLabel-background);color:var(--vscode-keybindingLabel-foreground);border-style:solid;border-width:1px;border-radius:3px;border-color:var(--vscode-keybindingLabel-border);border-bottom-color:var(--vscode-keybindingLabel-bottomBorder);box-shadow:inset 0 -1px 0 var(--vscode-widget-shadow)}.action-widget .action-widget-action-bar{background-color:var(--vscode-editorHoverWidget-statusBarBackground);border-top:1px solid var(--vscode-editorHoverWidget-border)}.action-widget .action-widget-action-bar:before{display:block;content:"";width:100%}.action-widget .action-widget-action-bar .actions-container{padding:0 8px}.action-widget-action-bar .action-label{color:var(--vscode-textLink-activeForeground);font-size:12px;line-height:22px;padding:0;pointer-events:all}.action-widget-action-bar .action-item{margin-right:16px;pointer-events:none}.action-widget-action-bar .action-label:hover{background-color:transparent!important}.monaco-action-bar .actions-container.highlight-toggled .action-label.checked{background:var(--vscode-actionBar-toggledBackground)!important}.monaco-editor .codelens-decoration{overflow:hidden;display:inline-block;text-overflow:ellipsis;white-space:nowrap;color:var(--vscode-editorCodeLens-foreground);line-height:var(--vscode-editorCodeLens-lineHeight);font-size:var(--vscode-editorCodeLens-fontSize);padding-right:calc(var(--vscode-editorCodeLens-fontSize)*.5);font-feature-settings:var(--vscode-editorCodeLens-fontFeatureSettings);font-family:var(--vscode-editorCodeLens-fontFamily),var(--vscode-editorCodeLens-fontFamilyDefault)}.monaco-editor .codelens-decoration>span,.monaco-editor .codelens-decoration>a{user-select:none;-webkit-user-select:none;white-space:nowrap;vertical-align:sub}.monaco-editor .codelens-decoration>a{text-decoration:none}.monaco-editor .codelens-decoration>a:hover{cursor:pointer;color:var(--vscode-editorLink-activeForeground)!important}.monaco-editor .codelens-decoration>a:hover .codicon{color:var(--vscode-editorLink-activeForeground)!important}.monaco-editor .codelens-decoration .codicon{vertical-align:middle;color:currentColor!important;color:var(--vscode-editorCodeLens-foreground);line-height:var(--vscode-editorCodeLens-lineHeight);font-size:var(--vscode-editorCodeLens-fontSize)}.monaco-editor .codelens-decoration>a:hover .codicon:before{cursor:pointer}@keyframes fadein{0%{opacity:0;visibility:visible}to{opacity:1}}.monaco-editor .codelens-decoration.fadein{animation:fadein .1s linear}.colorpicker-widget{height:190px;user-select:none;-webkit-user-select:none}.colorpicker-color-decoration,.hc-light .colorpicker-color-decoration{border:solid .1em #000;box-sizing:border-box;margin:.1em .2em 0;width:.8em;height:.8em;line-height:.8em;display:inline-block;cursor:pointer}.hc-black .colorpicker-color-decoration,.vs-dark .colorpicker-color-decoration{border:solid .1em #eee}.colorpicker-header{display:flex;height:24px;position:relative;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAHUlEQVQYV2PYvXu3JAi7uLiAMaYAjAGTQBPYLQkAa/0Zef3qRswAAAAASUVORK5CYII=);background-size:9px 9px;image-rendering:pixelated}.colorpicker-header .picked-color{width:240px;display:flex;align-items:center;justify-content:center;line-height:24px;cursor:pointer;color:#fff;flex:1;white-space:nowrap;overflow:hidden}.colorpicker-header .picked-color .picked-color-presentation{white-space:nowrap;margin-left:5px;margin-right:5px}.colorpicker-header .picked-color .codicon{color:inherit;font-size:14px}.colorpicker-header .picked-color.light{color:#000}.colorpicker-header .original-color{width:74px;z-index:inherit;cursor:pointer}.standalone-colorpicker{color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border)}.colorpicker-header.standalone-colorpicker{border-bottom:none}.colorpicker-header .close-button{cursor:pointer;background-color:var(--vscode-editorHoverWidget-background);border-left:1px solid var(--vscode-editorHoverWidget-border)}.colorpicker-header .close-button-inner-div{width:100%;height:100%;text-align:center}.colorpicker-header .close-button-inner-div:hover{background-color:var(--vscode-toolbar-hoverBackground)}.colorpicker-header .close-icon{padding:3px}.colorpicker-body{display:flex;padding:8px;position:relative}.colorpicker-body .saturation-wrap{overflow:hidden;height:150px;position:relative;min-width:220px;flex:1}.colorpicker-body .saturation-box{height:150px;position:absolute}.colorpicker-body .saturation-selection{width:9px;height:9px;margin:-5px 0 0 -5px;border:1px solid rgb(255,255,255);border-radius:100%;box-shadow:0 0 2px #000c;position:absolute}.colorpicker-body .strip{width:25px;height:150px}.colorpicker-body .standalone-strip{width:25px;height:122px}.colorpicker-body .hue-strip{position:relative;margin-left:8px;cursor:grab;background:linear-gradient(to bottom,red,#ff0 17%,#0f0 33%,#0ff,#00f 67%,#f0f 83%,red)}.colorpicker-body .opacity-strip{position:relative;margin-left:8px;cursor:grab;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAHUlEQVQYV2PYvXu3JAi7uLiAMaYAjAGTQBPYLQkAa/0Zef3qRswAAAAASUVORK5CYII=);background-size:9px 9px;image-rendering:pixelated}.colorpicker-body .strip.grabbing{cursor:grabbing}.colorpicker-body .slider{position:absolute;top:0;left:-2px;width:calc(100% + 4px);height:4px;box-sizing:border-box;border:1px solid rgba(255,255,255,.71);box-shadow:0 0 1px #000000d9}.colorpicker-body .strip .overlay{height:150px;pointer-events:none}.colorpicker-body .standalone-strip .standalone-overlay{height:122px;pointer-events:none}.standalone-colorpicker-body{display:block;border:1px solid transparent;border-bottom:1px solid var(--vscode-editorHoverWidget-border);overflow:hidden}.colorpicker-body .insert-button{position:absolute;height:20px;width:58px;padding:0;right:8px;bottom:8px;background:var(--vscode-button-background);color:var(--vscode-button-foreground);border-radius:2px;border:none;cursor:pointer}.colorpicker-body .insert-button:hover{background:var(--vscode-button-hoverBackground)}.monaco-editor .goto-definition-link{text-decoration:underline;cursor:pointer;color:var(--vscode-editorLink-activeForeground)!important}.monaco-editor .peekview-widget .head{box-sizing:border-box;display:flex;justify-content:space-between;flex-wrap:nowrap}.monaco-editor .peekview-widget .head .peekview-title{display:flex;align-items:baseline;font-size:13px;margin-left:20px;min-width:0;text-overflow:ellipsis;overflow:hidden}.monaco-editor .peekview-widget .head .peekview-title.clickable{cursor:pointer}.monaco-editor .peekview-widget .head .peekview-title .dirname:not(:empty){font-size:.9em;margin-left:.5em}.monaco-editor .peekview-widget .head .peekview-title .meta{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.monaco-editor .peekview-widget .head .peekview-title .dirname,.monaco-editor .peekview-widget .head .peekview-title .filename{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monaco-editor .peekview-widget .head .peekview-title .meta:not(:empty):before{content:"-";padding:0 .3em}.monaco-editor .peekview-widget .head .peekview-actions{flex:1;text-align:right;padding-right:2px}.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar{display:inline-block}.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar,.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar>.actions-container{height:100%}.monaco-editor .peekview-widget>.body{border-top:1px solid;position:relative}.monaco-editor .peekview-widget .head .peekview-title .codicon{margin-right:4px;align-self:center}.monaco-editor .peekview-widget .monaco-list .monaco-list-row.focused .codicon{color:inherit!important}.monaco-editor .zone-widget{position:absolute;z-index:10}.monaco-editor .zone-widget .zone-widget-container{border-top-style:solid;border-bottom-style:solid;border-top-width:0;border-bottom-width:0;position:relative}.monaco-editor .zone-widget .zone-widget-container.reference-zone-widget{border-top-width:1px;border-bottom-width:1px}.monaco-editor .reference-zone-widget .inline{display:inline-block;vertical-align:top}.monaco-editor .reference-zone-widget .messages{height:100%;width:100%;text-align:center;padding:3em 0}.monaco-editor .reference-zone-widget .ref-tree{line-height:23px;background-color:var(--vscode-peekViewResult-background);color:var(--vscode-peekViewResult-lineForeground)}.monaco-editor .reference-zone-widget .ref-tree .reference{text-overflow:ellipsis;overflow:hidden}.monaco-editor .reference-zone-widget .ref-tree .reference-file{display:inline-flex;width:100%;height:100%;color:var(--vscode-peekViewResult-fileForeground)}.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .selected .reference-file{color:inherit!important}.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .monaco-list-rows>.monaco-list-row.selected:not(.highlighted){background-color:var(--vscode-peekViewResult-selectionBackground);color:var(--vscode-peekViewResult-selectionForeground)!important}.monaco-editor .reference-zone-widget .ref-tree .reference-file .count{margin-right:12px;margin-left:auto}.monaco-editor .reference-zone-widget .ref-tree .referenceMatch .highlight{background-color:var(--vscode-peekViewResult-matchHighlightBackground)}.monaco-editor .reference-zone-widget .preview .reference-decoration{background-color:var(--vscode-peekViewEditor-matchHighlightBackground);border:2px solid var(--vscode-peekViewEditor-matchHighlightBorder);box-sizing:border-box}.monaco-editor .reference-zone-widget .preview .monaco-editor .monaco-editor-background,.monaco-editor .reference-zone-widget .preview .monaco-editor .inputarea.ime-input{background-color:var(--vscode-peekViewEditor-background)}.monaco-editor .reference-zone-widget .preview .monaco-editor .margin{background-color:var(--vscode-peekViewEditorGutter-background)}.monaco-editor.hc-black .reference-zone-widget .ref-tree .reference-file,.monaco-editor.hc-light .reference-zone-widget .ref-tree .reference-file{font-weight:700}.monaco-editor.hc-black .reference-zone-widget .ref-tree .referenceMatch .highlight,.monaco-editor.hc-light .reference-zone-widget .ref-tree .referenceMatch .highlight{border:1px dotted var(--vscode-contrastActiveBorder, transparent);box-sizing:border-box}.monaco-editor .peekview-widget .head .peekview-title .severity-icon{display:inline-block;vertical-align:text-top;margin-right:4px}.monaco-editor .marker-widget{text-overflow:ellipsis;white-space:nowrap}.monaco-editor .marker-widget>.stale{opacity:.6;font-style:italic}.monaco-editor .marker-widget .title{display:inline-block;padding-right:5px}.monaco-editor .marker-widget .descriptioncontainer{position:absolute;white-space:pre;user-select:text;-webkit-user-select:text;padding:8px 12px 0 20px}.monaco-editor .marker-widget .descriptioncontainer .message{display:flex;flex-direction:column}.monaco-editor .marker-widget .descriptioncontainer .message .details{padding-left:6px}.monaco-editor .marker-widget .descriptioncontainer .message .source,.monaco-editor .marker-widget .descriptioncontainer .message span.code{opacity:.6}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link{opacity:.6;color:inherit}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link:before{content:"("}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link:after{content:")"}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link>span{text-decoration:underline;border-bottom:1px solid transparent;text-underline-position:under;color:var(--vscode-textLink-activeForeground)}.monaco-editor .marker-widget .descriptioncontainer .filename{cursor:pointer;color:var(--vscode-textLink-activeForeground)}.monaco-editor .zone-widget .codicon.codicon-error,.markers-panel .marker-icon.error,.markers-panel .marker-icon .codicon.codicon-error,.text-search-provider-messages .providerMessage .codicon.codicon-error,.extensions-viewlet>.extensions .codicon.codicon-error,.extension-editor .codicon.codicon-error,.preferences-editor .codicon.codicon-error{color:var(--vscode-problemsErrorIcon-foreground)}.monaco-editor .zone-widget .codicon.codicon-warning,.markers-panel .marker-icon.warning,.markers-panel .marker-icon .codicon.codicon-warning,.text-search-provider-messages .providerMessage .codicon.codicon-warning,.extensions-viewlet>.extensions .codicon.codicon-warning,.extension-editor .codicon.codicon-warning,.preferences-editor .codicon.codicon-warning{color:var(--vscode-problemsWarningIcon-foreground)}.monaco-editor .zone-widget .codicon.codicon-info,.markers-panel .marker-icon.info,.markers-panel .marker-icon .codicon.codicon-info,.text-search-provider-messages .providerMessage .codicon.codicon-info,.extensions-viewlet>.extensions .codicon.codicon-info,.extension-editor .codicon.codicon-info,.preferences-editor .codicon.codicon-info{color:var(--vscode-problemsInfoIcon-foreground)}.monaco-editor .inlineSuggestionsHints.withBorder{z-index:39;color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border)}.monaco-editor .inlineSuggestionsHints a,.monaco-editor .inlineSuggestionsHints a:hover{color:var(--vscode-foreground)}.monaco-editor .inlineSuggestionsHints .keybinding{display:flex;margin-left:4px;opacity:.6}.monaco-editor .inlineSuggestionsHints .keybinding .monaco-keybinding-key{font-size:8px;padding:2px 3px}.monaco-editor .inlineSuggestionsHints .availableSuggestionCount a{display:flex;min-width:19px;justify-content:center}.monaco-editor .inlineSuggestionStatusBarItemLabel{margin-right:2px}.monaco-editor .hoverHighlight{background-color:var(--vscode-editor-hoverHighlightBackground)}.monaco-editor .monaco-hover{color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border);border-radius:3px}.monaco-editor .monaco-hover a{color:var(--vscode-textLink-foreground)}.monaco-editor .monaco-hover a:hover{color:var(--vscode-textLink-activeForeground)}.monaco-editor .monaco-hover .hover-row .actions{background-color:var(--vscode-editorHoverWidget-statusBarBackground)}.monaco-editor .monaco-hover code{background-color:var(--vscode-textCodeBlock-background)}.monaco-editor.vs .dnd-target,.monaco-editor.hc-light .dnd-target{border-right:2px dotted black;color:#fff}.monaco-editor.vs-dark .dnd-target{border-right:2px dotted #AEAFAD;color:#51504f}.monaco-editor.hc-black .dnd-target{border-right:2px dotted #fff;color:#000}.monaco-editor.mouse-default .view-lines,.monaco-editor.vs-dark.mac.mouse-default .view-lines,.monaco-editor.hc-black.mac.mouse-default .view-lines,.monaco-editor.hc-light.mac.mouse-default .view-lines{cursor:default}.monaco-editor.mouse-copy .view-lines,.monaco-editor.vs-dark.mac.mouse-copy .view-lines,.monaco-editor.hc-black.mac.mouse-copy .view-lines,.monaco-editor.hc-light.mac.mouse-copy .view-lines{cursor:copy}.monaco-editor .findOptionsWidget{background-color:var(--vscode-editorWidget-background);color:var(--vscode-editorWidget-foreground);box-shadow:0 0 8px 2px var(--vscode-widget-shadow);border:2px solid var(--vscode-contrastBorder)}.monaco-editor .find-widget{position:absolute;z-index:35;height:33px;overflow:hidden;line-height:19px;transition:transform .2s linear;padding:0 4px;box-sizing:border-box;transform:translateY(calc(-100% - 10px));box-shadow:0 0 8px 2px var(--vscode-widget-shadow);color:var(--vscode-editorWidget-foreground);border-left:1px solid var(--vscode-widget-border);border-right:1px solid var(--vscode-widget-border);border-bottom:1px solid var(--vscode-widget-border);border-bottom-left-radius:4px;border-bottom-right-radius:4px;background-color:var(--vscode-editorWidget-background)}.monaco-workbench.reduce-motion .monaco-editor .find-widget{transition:transform 0ms linear}.monaco-editor .find-widget textarea{margin:0}.monaco-editor .find-widget.hiddenEditor{display:none}.monaco-editor .find-widget.replaceToggled>.replace-part{display:flex}.monaco-editor .find-widget.visible{transform:translateY(0)}.monaco-editor .find-widget .monaco-inputbox.synthetic-focus{outline:1px solid -webkit-focus-ring-color;outline-offset:-1px;outline-color:var(--vscode-focusBorder)}.monaco-editor .find-widget .monaco-inputbox .input{background-color:transparent;min-height:0}.monaco-editor .find-widget .monaco-findInput .input{font-size:13px}.monaco-editor .find-widget>.find-part,.monaco-editor .find-widget>.replace-part{margin:3px 25px 0 17px;font-size:12px;display:flex}.monaco-editor .find-widget>.find-part .monaco-inputbox,.monaco-editor .find-widget>.replace-part .monaco-inputbox{min-height:25px}.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.mirror{padding-right:22px}.monaco-editor .find-widget>.find-part .monaco-inputbox>.ibwrapper>.input,.monaco-editor .find-widget>.find-part .monaco-inputbox>.ibwrapper>.mirror,.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.input,.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.mirror{padding-top:2px;padding-bottom:2px}.monaco-editor .find-widget>.find-part .find-actions{height:25px;display:flex;align-items:center}.monaco-editor .find-widget>.replace-part .replace-actions{height:25px;display:flex;align-items:center}.monaco-editor .find-widget .monaco-findInput{vertical-align:middle;display:flex;flex:1}.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element{width:100%}.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element .scrollbar.vertical{opacity:0}.monaco-editor .find-widget .matchesCount{display:flex;flex:initial;margin:0 0 0 3px;padding:2px 0 0 2px;height:25px;vertical-align:middle;box-sizing:border-box;text-align:center;line-height:23px}.monaco-editor .find-widget .button{width:16px;height:16px;padding:3px;border-radius:5px;flex:initial;margin-left:3px;background-position:center center;background-repeat:no-repeat;cursor:pointer;display:flex;align-items:center;justify-content:center}.monaco-editor .find-widget .codicon-find-selection{width:22px;height:22px;padding:3px;border-radius:5px}.monaco-editor .find-widget .button.left{margin-left:0;margin-right:3px}.monaco-editor .find-widget .button.wide{width:auto;padding:1px 6px;top:-1px}.monaco-editor .find-widget .button.toggle{position:absolute;top:0;left:3px;width:18px;height:100%;border-radius:0;box-sizing:border-box}.monaco-editor .find-widget .button.toggle.disabled{display:none}.monaco-editor .find-widget .disabled{color:var(--vscode-disabledForeground);cursor:default}.monaco-editor .find-widget>.replace-part{display:none}.monaco-editor .find-widget>.replace-part>.monaco-findInput{position:relative;display:flex;vertical-align:middle;flex:auto;flex-grow:0;flex-shrink:0}.monaco-editor .find-widget>.replace-part>.monaco-findInput>.controls{position:absolute;top:3px;right:2px}.monaco-editor .find-widget.reduced-find-widget .matchesCount{display:none}.monaco-editor .find-widget.narrow-find-widget{max-width:257px!important}.monaco-editor .find-widget.collapsed-find-widget{max-width:170px!important}.monaco-editor .find-widget.collapsed-find-widget .button.previous,.monaco-editor .find-widget.collapsed-find-widget .button.next,.monaco-editor .find-widget.collapsed-find-widget .button.replace,.monaco-editor .find-widget.collapsed-find-widget .button.replace-all,.monaco-editor .find-widget.collapsed-find-widget>.find-part .monaco-findInput .controls{display:none}.monaco-editor .find-widget.no-results .matchesCount{color:var(--vscode-errorForeground)}.monaco-editor .findMatch{animation-duration:0;animation-name:inherit!important;background-color:var(--vscode-editor-findMatchHighlightBackground)}.monaco-editor .currentFindMatch{background-color:var(--vscode-editor-findMatchBackground);border:2px solid var(--vscode-editor-findMatchBorder);padding:1px;box-sizing:border-box}.monaco-editor .findScope{background-color:var(--vscode-editor-findRangeHighlightBackground)}.monaco-editor .find-widget .monaco-sash{left:0!important;background-color:var(--vscode-editorWidget-resizeBorder, var(--vscode-editorWidget-border))}.monaco-editor.hc-black .find-widget .button:before{position:relative;top:1px;left:2px}.monaco-editor .find-widget .button:not(.disabled):hover,.monaco-editor .find-widget .codicon-find-selection:hover{background-color:var(--vscode-toolbar-hoverBackground)!important}.monaco-editor.findMatch{background-color:var(--vscode-editor-findMatchHighlightBackground)}.monaco-editor.currentFindMatch{background-color:var(--vscode-editor-findMatchBackground)}.monaco-editor.findScope{background-color:var(--vscode-editor-findRangeHighlightBackground)}.monaco-editor.findMatch{background-color:var(--vscode-editorWidget-background)}.monaco-editor .find-widget>.button.codicon-widget-close{position:absolute;top:5px;right:4px}.monaco-editor .margin-view-overlays .codicon-folding-manual-collapsed,.monaco-editor .margin-view-overlays .codicon-folding-manual-expanded,.monaco-editor .margin-view-overlays .codicon-folding-expanded,.monaco-editor .margin-view-overlays .codicon-folding-collapsed{cursor:pointer;opacity:0;transition:opacity .5s;display:flex;align-items:center;justify-content:center;font-size:140%;margin-left:2px}.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-manual-collapsed,.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-manual-expanded,.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-expanded,.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-collapsed{transition:initial}.monaco-editor .margin-view-overlays:hover .codicon,.monaco-editor .margin-view-overlays .codicon.codicon-folding-collapsed,.monaco-editor .margin-view-overlays .codicon.codicon-folding-manual-collapsed,.monaco-editor .margin-view-overlays .codicon.alwaysShowFoldIcons{opacity:1}.monaco-editor .inline-folded:after{color:gray;margin:.1em .2em 0;content:"⋯";display:inline;line-height:1em;cursor:pointer}.monaco-editor .folded-background{background-color:var(--vscode-editor-foldBackground)}.monaco-editor .cldr.codicon.codicon-folding-expanded,.monaco-editor .cldr.codicon.codicon-folding-collapsed,.monaco-editor .cldr.codicon.codicon-folding-manual-expanded,.monaco-editor .cldr.codicon.codicon-folding-manual-collapsed{color:var(--vscode-editorGutter-foldingControlForeground)!important}.monaco-editor .suggest-preview-additional-widget{white-space:nowrap}.monaco-editor .suggest-preview-additional-widget .content-spacer{color:transparent;white-space:pre}.monaco-editor .suggest-preview-additional-widget .button{display:inline-block;cursor:pointer;text-decoration:underline;text-underline-position:under}.monaco-editor .ghost-text-hidden{opacity:0;font-size:0}.monaco-editor .ghost-text-decoration,.monaco-editor .suggest-preview-text .ghost-text{font-style:italic}.monaco-editor .ghost-text-decoration,.monaco-editor .ghost-text-decoration-preview,.monaco-editor .suggest-preview-text .ghost-text{color:var(--vscode-editorGhostText-foreground)!important;background-color:var(--vscode-editorGhostText-background);border:1px solid var(--vscode-editorGhostText-border)}.monaco-editor .snippet-placeholder{min-width:2px;outline-style:solid;outline-width:1px;background-color:var(--vscode-editor-snippetTabstopHighlightBackground, transparent);outline-color:var(--vscode-editor-snippetTabstopHighlightBorder, transparent)}.monaco-editor .finish-snippet-placeholder{outline-style:solid;outline-width:1px;background-color:var(--vscode-editor-snippetFinalTabstopHighlightBackground, transparent);outline-color:var(--vscode-editor-snippetFinalTabstopHighlightBorder, transparent)}.monaco-editor .suggest-widget{width:430px;z-index:40;display:flex;flex-direction:column;border-radius:3px}.monaco-editor .suggest-widget.message{flex-direction:row;align-items:center}.monaco-editor .suggest-widget,.monaco-editor .suggest-details{flex:0 1 auto;width:100%;border-style:solid;border-width:1px;border-color:var(--vscode-editorSuggestWidget-border);background-color:var(--vscode-editorSuggestWidget-background)}.monaco-editor.hc-black .suggest-widget,.monaco-editor.hc-black .suggest-details,.monaco-editor.hc-light .suggest-widget,.monaco-editor.hc-light .suggest-details{border-width:2px}.monaco-editor .suggest-widget .suggest-status-bar{box-sizing:border-box;display:none;flex-flow:row nowrap;justify-content:space-between;width:100%;font-size:80%;padding:0 4px;border-top:1px solid var(--vscode-editorSuggestWidget-border);overflow:hidden}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar{display:flex}.monaco-editor .suggest-widget .suggest-status-bar .left{padding-right:8px}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-label{color:var(--vscode-editorSuggestWidgetStatus-foreground)}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-item:not(:last-of-type) .action-label{margin-right:0}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-item:not(:last-of-type) .action-label:after{content:", ";margin-right:.3em}.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row>.contents>.main>.right>.readMore,.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row.focused.string-label>.contents>.main>.right>.readMore{display:none}.monaco-editor .suggest-widget.with-status-bar:not(.docs-side) .monaco-list .monaco-list-row:hover>.contents>.main>.right.can-expand-details>.details-label{width:100%}.monaco-editor .suggest-widget>.message{padding-left:22px}.monaco-editor .suggest-widget>.tree{height:100%;width:100%}.monaco-editor .suggest-widget .monaco-list{user-select:none;-webkit-user-select:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row{display:flex;-mox-box-sizing:border-box;box-sizing:border-box;padding-right:10px;background-repeat:no-repeat;background-position:2px 2px;white-space:nowrap;cursor:pointer;touch-action:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused{color:var(--vscode-editorSuggestWidget-selectedForeground)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused .codicon{color:var(--vscode-editorSuggestWidget-selectedIconForeground)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents{flex:1;height:100%;overflow:hidden;padding-left:2px}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main{display:flex;overflow:hidden;text-overflow:ellipsis;white-space:pre;justify-content:space-between}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right{display:flex}.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.focused)>.contents>.main .monaco-icon-label{color:var(--vscode-editorSuggestWidget-foreground)}.monaco-editor .suggest-widget:not(.frozen) .monaco-highlighted-label .highlight{font-weight:700}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main .monaco-highlighted-label .highlight{color:var(--vscode-editorSuggestWidget-highlightForeground)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused>.contents>.main .monaco-highlighted-label .highlight{color:var(--vscode-editorSuggestWidget-focusHighlightForeground)}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore:before{color:inherit;opacity:1;font-size:14px;cursor:pointer}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close{position:absolute;top:6px;right:2px}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close:hover,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore:hover{opacity:1}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{opacity:.7}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.signature-label{overflow:hidden;text-overflow:ellipsis;opacity:.6}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.qualifier-label{margin-left:12px;opacity:.4;font-size:85%;line-height:initial;text-overflow:ellipsis;overflow:hidden;align-self:center}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{font-size:85%;margin-left:1.1em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label>.monaco-tokenized-source{display:inline}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{display:none}.monaco-editor .suggest-widget:not(.shows-details) .monaco-list .monaco-list-row.focused>.contents>.main>.right>.details-label{display:inline}.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.string-label)>.contents>.main>.right>.details-label,.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row.focused:not(.string-label)>.contents>.main>.right>.details-label{display:inline}.monaco-editor .suggest-widget:not(.docs-side) .monaco-list .monaco-list-row.focused:hover>.contents>.main>.right.can-expand-details>.details-label{width:calc(100% - 26px)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left{flex-shrink:1;flex-grow:1;overflow:hidden}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.monaco-icon-label{flex-shrink:0}.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.string-label)>.contents>.main>.left>.monaco-icon-label{max-width:100%}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.string-label>.contents>.main>.left>.monaco-icon-label{flex-shrink:1}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right{overflow:hidden;flex-shrink:4;max-width:70%}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore{display:inline-block;position:absolute;right:10px;width:18px;height:18px;visibility:hidden}.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row>.contents>.main>.right>.readMore{display:none!important}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.string-label>.contents>.main>.right>.readMore{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused.string-label>.contents>.main>.right>.readMore{display:inline-block}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused:hover>.contents>.main>.right>.readMore{visibility:visible}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated{opacity:.66;text-decoration:unset}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated>.monaco-icon-label-container>.monaco-icon-name-container{text-decoration:line-through}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label:before{height:100%}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon{display:block;height:16px;width:16px;margin-left:2px;background-repeat:no-repeat;background-size:80%;background-position:center}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.hide{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .suggest-icon{display:flex;align-items:center;margin-right:4px}.monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .icon,.monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .suggest-icon:before{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.customcolor .colorspan{margin:0 0 0 .3em;border:.1em solid #000;width:.7em;height:.7em;display:inline-block}.monaco-editor .suggest-details-container{z-index:41}.monaco-editor .suggest-details{display:flex;flex-direction:column;cursor:default;color:var(--vscode-editorSuggestWidget-foreground)}.monaco-editor .suggest-details.focused{border-color:var(--vscode-focusBorder)}.monaco-editor .suggest-details a{color:var(--vscode-textLink-foreground)}.monaco-editor .suggest-details a:hover{color:var(--vscode-textLink-activeForeground)}.monaco-editor .suggest-details code{background-color:var(--vscode-textCodeBlock-background)}.monaco-editor .suggest-details.no-docs{display:none}.monaco-editor .suggest-details>.monaco-scrollable-element{flex:1}.monaco-editor .suggest-details>.monaco-scrollable-element>.body{box-sizing:border-box;height:100%;width:100%}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.type{flex:2;overflow:hidden;text-overflow:ellipsis;opacity:.7;white-space:pre;margin:0 24px 0 0;padding:4px 0 12px 5px}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.type.auto-wrap{white-space:normal;word-break:break-all}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs{margin:0;padding:4px 5px;white-space:pre-wrap}.monaco-editor .suggest-details.no-type>.monaco-scrollable-element>.body>.docs{margin-right:24px;overflow:hidden}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs{padding:0;white-space:initial;min-height:calc(1rem + 8px)}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div,.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>span:not(:empty){padding:4px 5px}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div>p:first-child{margin-top:0}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div>p:last-child{margin-bottom:0}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs .monaco-tokenized-source{white-space:pre}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs .code{white-space:pre-wrap;word-wrap:break-word}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs .codicon{vertical-align:sub}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>p:empty{display:none}.monaco-editor .suggest-details code{border-radius:3px;padding:0 .4em}.monaco-editor .suggest-details ul,.monaco-editor .suggest-details ol{padding-left:20px}.monaco-editor .suggest-details p code{font-family:var(--monaco-monospace-font)}.monaco-editor.vs .valueSetReplacement{outline:solid 2px var(--vscode-editorBracketMatch-border)}.monaco-editor .linked-editing-decoration{background-color:var(--vscode-editor-linkedEditingBackground);min-width:1px}.monaco-editor .detected-link,.monaco-editor .detected-link-active{text-decoration:underline;text-underline-position:under}.monaco-editor .detected-link-active{cursor:pointer;color:var(--vscode-editorLink-activeForeground)!important}.monaco-editor .focused .selectionHighlight{background-color:var(--vscode-editor-selectionHighlightBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-selectionHighlightBorder)}.monaco-editor.hc-black .focused .selectionHighlight,.monaco-editor.hc-light .focused .selectionHighlight{border-style:dotted}.monaco-editor .wordHighlight{background-color:var(--vscode-editor-wordHighlightBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-wordHighlightBorder)}.monaco-editor.hc-black .wordHighlight,.monaco-editor.hc-light .wordHighlight{border-style:dotted}.monaco-editor .wordHighlightStrong{background-color:var(--vscode-editor-wordHighlightStrongBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-wordHighlightStrongBorder)}.monaco-editor.hc-black .wordHighlightStrong,.monaco-editor.hc-light .wordHighlightStrong{border-style:dotted}.monaco-editor .wordHighlightText{background-color:var(--vscode-editor-wordHighlightTextBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-wordHighlightTextBorder)}.monaco-editor.hc-black .wordHighlightText,.monaco-editor.hc-light .wordHighlightText{border-style:dotted}.monaco-editor .inline-edit-remove{background-color:var(--vscode-editorGhostText-background);font-style:italic;text-decoration:line-through}.monaco-editor .inline-edit-remove.backgroundColoring{background-color:var(--vscode-diffEditor-removedLineBackground)}.monaco-editor .inline-edit-hidden{opacity:0;font-size:0}.monaco-editor .inline-edit-decoration,.monaco-editor .suggest-preview-text .inline-edit{font-style:italic}.monaco-editor .inline-completion-text-to-replace{text-decoration:underline;text-underline-position:under}.monaco-editor .inline-edit-decoration,.monaco-editor .inline-edit-decoration-preview,.monaco-editor .suggest-preview-text .inline-edit{color:var(--vscode-editorGhostText-foreground)!important;background-color:var(--vscode-editorGhostText-background);border:1px solid var(--vscode-editorGhostText-border)}.monaco-editor .inlineEditHints.withBorder{z-index:39;color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border)}.monaco-editor .inlineEditHints a,.monaco-editor .inlineEditHints a:hover{color:var(--vscode-foreground)}.monaco-editor .inlineEditHints .keybinding{display:flex;margin-left:4px;opacity:.6}.monaco-editor .inlineEditHints .keybinding .monaco-keybinding-key{font-size:8px;padding:2px 3px}.monaco-editor .inlineEditStatusBarItemLabel{margin-right:2px}.monaco-editor .parameter-hints-widget{z-index:39;display:flex;flex-direction:column;line-height:1.5em;cursor:default;color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border)}.hc-black .monaco-editor .parameter-hints-widget,.hc-light .monaco-editor .parameter-hints-widget{border-width:2px}.monaco-editor .parameter-hints-widget>.phwrapper{max-width:440px;display:flex;flex-direction:row}.monaco-editor .parameter-hints-widget.multiple{min-height:3.3em;padding:0}.monaco-editor .parameter-hints-widget.multiple .body:before{content:"";display:block;height:100%;position:absolute;opacity:.5;border-left:1px solid var(--vscode-editorHoverWidget-border)}.monaco-editor .parameter-hints-widget p,.monaco-editor .parameter-hints-widget ul{margin:8px 0}.monaco-editor .parameter-hints-widget .monaco-scrollable-element,.monaco-editor .parameter-hints-widget .body{display:flex;flex:1;flex-direction:column;min-height:100%}.monaco-editor .parameter-hints-widget .signature{padding:4px 5px;position:relative}.monaco-editor .parameter-hints-widget .signature.has-docs:after{content:"";display:block;position:absolute;left:0;width:100%;padding-top:4px;opacity:.5;border-bottom:1px solid var(--vscode-editorHoverWidget-border)}.monaco-editor .parameter-hints-widget .docs{padding:0 10px 0 5px;white-space:pre-wrap}.monaco-editor .parameter-hints-widget .docs.empty{display:none}.monaco-editor .parameter-hints-widget .docs a{color:var(--vscode-textLink-foreground)}.monaco-editor .parameter-hints-widget .docs a:hover{color:var(--vscode-textLink-activeForeground);cursor:pointer}.monaco-editor .parameter-hints-widget .docs .markdown-docs{white-space:initial}.monaco-editor .parameter-hints-widget .docs code{font-family:var(--monaco-monospace-font);border-radius:3px;padding:0 .4em;background-color:var(--vscode-textCodeBlock-background)}.monaco-editor .parameter-hints-widget .docs .monaco-tokenized-source,.monaco-editor .parameter-hints-widget .docs .code{white-space:pre-wrap}.monaco-editor .parameter-hints-widget .controls{display:none;flex-direction:column;align-items:center;min-width:22px;justify-content:flex-end}.monaco-editor .parameter-hints-widget.multiple .controls{display:flex;padding:0 2px}.monaco-editor .parameter-hints-widget.multiple .button{width:16px;height:16px;background-repeat:no-repeat;cursor:pointer}.monaco-editor .parameter-hints-widget .button.previous{bottom:24px}.monaco-editor .parameter-hints-widget .overloads{text-align:center;height:12px;line-height:12px;font-family:var(--monaco-monospace-font)}.monaco-editor .parameter-hints-widget .signature .parameter.active{color:var(--vscode-editorHoverWidget-highlightForeground);font-weight:700}.monaco-editor .parameter-hints-widget .documentation-parameter>.parameter{font-weight:700;margin-right:.5em}.monaco-editor .rename-box{z-index:100;color:inherit;border-radius:4px}.monaco-editor .rename-box.preview{padding:4px 4px 0}.monaco-editor .rename-box .rename-input{padding:3px;border-radius:2px;width:calc(100% - 8px)}.monaco-editor .rename-box .rename-label{display:none;opacity:.8}.monaco-editor .rename-box.preview .rename-label{display:inherit}.monaco-editor .sticky-widget{overflow:hidden}.monaco-editor .sticky-widget-line-numbers{float:left;background-color:inherit}.monaco-editor .sticky-widget-lines-scrollable{display:inline-block;position:absolute;overflow:hidden;width:var(--vscode-editorStickyScroll-scrollableWidth);background-color:inherit}.monaco-editor .sticky-widget-lines{position:absolute;background-color:inherit}.monaco-editor .sticky-line-number,.monaco-editor .sticky-line-content{color:var(--vscode-editorLineNumber-foreground);white-space:nowrap;display:inline-block;position:absolute;background-color:inherit}.monaco-editor .sticky-line-number .codicon-folding-expanded,.monaco-editor .sticky-line-number .codicon-folding-collapsed{float:right;transition:var(--vscode-editorStickyScroll-foldingOpacityTransition)}.monaco-editor .sticky-line-content{width:var(--vscode-editorStickyScroll-scrollableWidth);background-color:inherit;white-space:nowrap}.monaco-editor .sticky-line-number-inner{display:inline-block;text-align:right}.monaco-editor .sticky-widget{border-bottom:1px solid var(--vscode-editorStickyScroll-border)}.monaco-editor .sticky-line-content:hover{background-color:var(--vscode-editorStickyScrollHover-background);cursor:pointer}.monaco-editor .sticky-widget{width:100%;box-shadow:var(--vscode-editorStickyScroll-shadow) 0 3px 2px -2px;z-index:4;background-color:var(--vscode-editorStickyScroll-background)}.monaco-editor .sticky-widget.peek{background-color:var(--vscode-peekViewEditorStickyScroll-background)}.monaco-editor .unicode-highlight{border:1px solid var(--vscode-editorUnicodeHighlight-border);background-color:var(--vscode-editorUnicodeHighlight-background);box-sizing:border-box}.editor-banner{box-sizing:border-box;cursor:default;width:100%;font-size:12px;display:flex;overflow:visible;height:26px;background:var(--vscode-banner-background)}.editor-banner .icon-container{display:flex;flex-shrink:0;align-items:center;padding:0 6px 0 10px}.editor-banner .icon-container.custom-icon{background-repeat:no-repeat;background-position:center center;background-size:16px;width:16px;padding:0;margin:0 6px 0 10px}.editor-banner .message-container{display:flex;align-items:center;line-height:26px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.editor-banner .message-container p{margin-block-start:0;margin-block-end:0}.editor-banner .message-actions-container{flex-grow:1;flex-shrink:0;line-height:26px;margin:0 4px}.editor-banner .message-actions-container a.monaco-button{width:inherit;margin:2px 8px;padding:0 12px}.editor-banner .message-actions-container a{padding:3px;margin-left:12px;text-decoration:underline}.editor-banner .action-container{padding:0 10px 0 6px}.editor-banner{background-color:var(--vscode-banner-background)}.editor-banner,.editor-banner .action-container .codicon,.editor-banner .message-actions-container .monaco-link{color:var(--vscode-banner-foreground)}.editor-banner .icon-container .codicon{color:var(--vscode-banner-iconForeground)}.monaco-link{color:var(--vscode-textLink-foreground)}.monaco-link:hover{color:var(--vscode-textLink-activeForeground)}.monaco-editor .iPadShowKeyboard{width:58px;min-width:0;height:36px;min-height:0;margin:0;padding:0;position:absolute;resize:none;overflow:hidden;background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIHZpZXdCb3g9IjAgMCA1MyAzNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwKSI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNDguMDM2NCA0LjAxMDQySDQuMDA3NzlMNC4wMDc3OSAzMi4wMjg2SDQ4LjAzNjRWNC4wMTA0MlpNNC4wMDc3OSAwLjAwNzgxMjVDMS43OTcyMSAwLjAwNzgxMjUgMC4wMDUxODc5OSAxLjc5OTg0IDAuMDA1MTg3OTkgNC4wMTA0MlYzMi4wMjg2QzAuMDA1MTg3OTkgMzQuMjM5MiAxLjc5NzIxIDM2LjAzMTIgNC4wMDc3OSAzNi4wMzEySDQ4LjAzNjRDNTAuMjQ3IDM2LjAzMTIgNTIuMDM5IDM0LjIzOTIgNTIuMDM5IDMyLjAyODZWNC4wMTA0MkM1Mi4wMzkgMS43OTk4NCA1MC4yNDcgMC4wMDc4MTI1IDQ4LjAzNjQgMC4wMDc4MTI1SDQuMDA3NzlaTTguMDEwNDIgOC4wMTMwMkgxMi4wMTNWMTIuMDE1Nkg4LjAxMDQyVjguMDEzMDJaTTIwLjAxODIgOC4wMTMwMkgxNi4wMTU2VjEyLjAxNTZIMjAuMDE4MlY4LjAxMzAyWk0yNC4wMjA4IDguMDEzMDJIMjguMDIzNFYxMi4wMTU2SDI0LjAyMDhWOC4wMTMwMlpNMzYuMDI4NiA4LjAxMzAySDMyLjAyNlYxMi4wMTU2SDM2LjAyODZWOC4wMTMwMlpNNDAuMDMxMiA4LjAxMzAySDQ0LjAzMzlWMTIuMDE1Nkg0MC4wMzEyVjguMDEzMDJaTTE2LjAxNTYgMTYuMDE4Mkg4LjAxMDQyVjIwLjAyMDhIMTYuMDE1NlYxNi4wMTgyWk0yMC4wMTgyIDE2LjAxODJIMjQuMDIwOFYyMC4wMjA4SDIwLjAxODJWMTYuMDE4MlpNMzIuMDI2IDE2LjAxODJIMjguMDIzNFYyMC4wMjA4SDMyLjAyNlYxNi4wMTgyWk00NC4wMzM5IDE2LjAxODJWMjAuMDIwOEgzNi4wMjg2VjE2LjAxODJINDQuMDMzOVpNMTIuMDEzIDI0LjAyMzRIOC4wMTA0MlYyOC4wMjZIMTIuMDEzVjI0LjAyMzRaTTE2LjAxNTYgMjQuMDIzNEgzNi4wMjg2VjI4LjAyNkgxNi4wMTU2VjI0LjAyMzRaTTQ0LjAzMzkgMjQuMDIzNEg0MC4wMzEyVjI4LjAyNkg0NC4wMzM5VjI0LjAyMzRaIiBmaWxsPSIjNDI0MjQyIi8+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDAiPgo8cmVjdCB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIGZpbGw9IndoaXRlIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==) center center no-repeat;border:4px solid #F6F6F6;border-radius:4px}.monaco-editor.vs-dark .iPadShowKeyboard{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIHZpZXdCb3g9IjAgMCA1MyAzNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwKSI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNDguMDM2NCA0LjAxMDQySDQuMDA3NzlMNC4wMDc3OSAzMi4wMjg2SDQ4LjAzNjRWNC4wMTA0MlpNNC4wMDc3OSAwLjAwNzgxMjVDMS43OTcyMSAwLjAwNzgxMjUgMC4wMDUxODc5OSAxLjc5OTg0IDAuMDA1MTg3OTkgNC4wMTA0MlYzMi4wMjg2QzAuMDA1MTg3OTkgMzQuMjM5MiAxLjc5NzIxIDM2LjAzMTIgNC4wMDc3OSAzNi4wMzEySDQ4LjAzNjRDNTAuMjQ3IDM2LjAzMTIgNTIuMDM5IDM0LjIzOTIgNTIuMDM5IDMyLjAyODZWNC4wMTA0MkM1Mi4wMzkgMS43OTk4NCA1MC4yNDcgMC4wMDc4MTI1IDQ4LjAzNjQgMC4wMDc4MTI1SDQuMDA3NzlaTTguMDEwNDIgOC4wMTMwMkgxMi4wMTNWMTIuMDE1Nkg4LjAxMDQyVjguMDEzMDJaTTIwLjAxODIgOC4wMTMwMkgxNi4wMTU2VjEyLjAxNTZIMjAuMDE4MlY4LjAxMzAyWk0yNC4wMjA4IDguMDEzMDJIMjguMDIzNFYxMi4wMTU2SDI0LjAyMDhWOC4wMTMwMlpNMzYuMDI4NiA4LjAxMzAySDMyLjAyNlYxMi4wMTU2SDM2LjAyODZWOC4wMTMwMlpNNDAuMDMxMiA4LjAxMzAySDQ0LjAzMzlWMTIuMDE1Nkg0MC4wMzEyVjguMDEzMDJaTTE2LjAxNTYgMTYuMDE4Mkg4LjAxMDQyVjIwLjAyMDhIMTYuMDE1NlYxNi4wMTgyWk0yMC4wMTgyIDE2LjAxODJIMjQuMDIwOFYyMC4wMjA4SDIwLjAxODJWMTYuMDE4MlpNMzIuMDI2IDE2LjAxODJIMjguMDIzNFYyMC4wMjA4SDMyLjAyNlYxNi4wMTgyWk00NC4wMzM5IDE2LjAxODJWMjAuMDIwOEgzNi4wMjg2VjE2LjAxODJINDQuMDMzOVpNMTIuMDEzIDI0LjAyMzRIOC4wMTA0MlYyOC4wMjZIMTIuMDEzVjI0LjAyMzRaTTE2LjAxNTYgMjQuMDIzNEgzNi4wMjg2VjI4LjAyNkgxNi4wMTU2VjI0LjAyMzRaTTQ0LjAzMzkgMjQuMDIzNEg0MC4wMzEyVjI4LjAyNkg0NC4wMzM5VjI0LjAyMzRaIiBmaWxsPSIjQzVDNUM1Ii8+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDAiPgo8cmVjdCB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIGZpbGw9IndoaXRlIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==) center center no-repeat;border:4px solid #252526}.monaco-editor .tokens-inspect-widget{z-index:50;user-select:text;-webkit-user-select:text;padding:10px;color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border)}.monaco-editor.hc-black .tokens-inspect-widget,.monaco-editor.hc-light .tokens-inspect-widget{border-width:2px}.monaco-editor .tokens-inspect-widget .tokens-inspect-separator{height:1px;border:0;background-color:var(--vscode-editorHoverWidget-border)}.monaco-editor .tokens-inspect-widget .tm-token{font-family:var(--monaco-monospace-font)}.monaco-editor .tokens-inspect-widget .tm-token-length{font-weight:400;font-size:60%;float:right}.monaco-editor .tokens-inspect-widget .tm-metadata-table{width:100%}.monaco-editor .tokens-inspect-widget .tm-metadata-value{font-family:var(--monaco-monospace-font);text-align:right}.monaco-editor .tokens-inspect-widget .tm-token-type{font-family:var(--monaco-monospace-font)}.markdown-body code{max-width:100%}.markdown-body pre{padding:0}.markdown-body code>div{margin-bottom:0!important}.markdown-body{max-width:100%;--prism-color: #bfc7d5;--prism-background-color: #292d3e}.cb-pre{overflow:hidden;width:100%;max-width:none;margin:0!important}.cb-pre,.cb-pre *{color:#abb2bf;font-family:Fira Code,Fira Mono,ui-monospace,monospace,Menlo,Consolas,DejaVu Sans Mono!important;direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;line-height:1.5;tab-size:2;hyphens:none}.copy-button-group{column-gap:3.2px;display:flex;position:absolute;right:calc(var(--ifm-pre-padding) / 2);top:calc(var(--ifm-pre-padding) / 2)}.copy-button-group button{align-items:center;border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;line-height:0;opacity:0;padding:6.4px;transition:opacity .2s ease-in-out;background:var(--prism-background-color)}.markdown-body .copy-btn>svg{width:18px;height:18px;position:relative}.markdown-body .copy-btn>svg path{fill:var(--prism-color)}.markdown-body .copy-btn--container{position:relative}.markdown-body .copy-btn--container:hover .copy-button-group button{opacity:.4}.markdown-body .copy-btn--container:hover .copy-button-group button:hover{opacity:1}._messageContainer_1ks3y_1{width:100%;box-sizing:border-box;overflow-wrap:break-word;color:var(--ifm-color-content);padding:20px;font-size:inherit;line-height:inherit;display:flex;flex-direction:column;align-items:flex-start;gap:10px}._messageContainer_1ks3y_1>*{max-width:100%}._messageText_1ks3y_19{overflow-wrap:wrap;max-width:100%!important}._messageText_1ks3y_19 a{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration);transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}._messageText_1ks3y_19 li{margin-bottom:var(--ifm-leading)}._messageText_1ks3y_19 p{margin:var(--ifm-leading) 0}._messageActions_1ks3y_37{display:flex;flex-direction:row;align-items:center;gap:10px;color:var(--cookbook-muted-color);font-weight:500;font-size:14px}._messageButton_1ks3y_47{cursor:pointer;opacity:.6}._messageButton_1ks3y_47:hover{opacity:1}._messageRating_1ks3y_56{cursor:pointer;opacity:1}._markdownBody_1ks3y_61{max-width:100%;overflow:scroll}._typingAnimationContainer_1ks3y_66{display:flex;align-items:center;gap:4px}@keyframes _typingAnimation_1ks3y_66{0%,80%,to{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-6px)}}._typingDot_1ks3y_85{display:inline-block;font-size:24px;line-height:1.5;color:var(--ifm-color-emphasis-600);animation:_typingAnimation_1ks3y_66 1s infinite}._typingDot_1ks3y_85:nth-child(1){animation-delay:0s}._typingDot_1ks3y_85:nth-child(2){animation-delay:.2s}._typingDot_1ks3y_85:nth-child(3){animation-delay:.4s}._flex_1ks3y_103{display:flex}._suggestedQuestionContainer_lwl8p_1{position:relative;display:flex;flex-wrap:wrap;padding-top:20px;padding-bottom:12px;gap:8px}._openModalButton_lwl8p_10{background-color:#1098fc}._suggestedQuestionBox_lwl8p_14{height:max-content;padding-top:12px;padding-bottom:12px}._maximizeButton_lwl8p_20{position:absolute;top:20px;right:20px;color:#fff;cursor:pointer;z-index:20}._column_lwl8p_29{display:flex;flex-direction:column}._readSection__container_lwl8p_34{height:calc(100% - 100px);overflow:scroll}._readSection_lwl8p_34{--padding-top: 0px;--padding-bottom: 75px;flex-grow:1;display:flex;flex-direction:column;justify-content:end;padding-bottom:var(--padding-bottom);padding-top:var(--padding-top);overflow-y:scroll;gap:10px;height:100%;mask-image:linear-gradient(to bottom,transparent,rgba(0,0,0,1) calc(var(--padding-top) + 40px),rgba(0,0,0,1) calc(100% - var(--padding-bottom) - 40px),transparent calc(100% - var(--padding-bottom) + 20px));text-align:left}._readSection_lwl8p_34::-webkit-scrollbar{display:none}._readSection_lwl8p_34{scrollbar-width:none}._writeSection_lwl8p_75{position:relative;display:flex;flex-shrink:0;align-items:center;width:100%;height:max-content;gap:4px;padding-left:20px;padding-right:20px;border-radius:10px}._writeSection_lwl8p_75 textarea::placeholder{color:var(--cookbook-muted-color)!important}._writeSection_lwl8p_75 textarea{font-size:16px}._sendButton_lwl8p_96{border-radius:10px;background-color:var(--cookbook-modal-background);position:absolute;display:flex;justify-content:center;align-items:center;padding:0;height:35px;width:35px;bottom:10px;right:30px;color:var(--cookbook-muted-color)}._sendButton_lwl8p_96:hover{color:unset}._sendButton_lwl8p_96>svg{margin-top:4px;color:var(--ifm-color-emphasis-600);transition:color .2s ease-in-out}._sendButton_lwl8p_96>svg:hover{color:var(--ifm-color-emphasis-700)}._container_lwl8p_163{position:relative;display:flex;flex-direction:column;overflow:hidden;color:#646464;padding:0;animation:.2s _fadeinfall_lwl8p_1;text-align:left!important;background:var(--cookbook-modal-background);border-radius:10px;transform:translateZ(0);width:100%;height:100%;max-width:var(--cookbook-modal-width);max-height:var(--cookbook-modal-height)}._row_lwl8p_185{display:flex;flex-direction:row;flex-grow:1;overflow:hidden}._sidebarWrapper_lwl8p_192{box-sizing:border-box;display:flex;flex-shrink:0;overflow:hidden;transition-duration:.3s;transition-timing-function:cubic-bezier(.87,0,.13,1);background-color:var(--ifm-background-color);width:0px}._sidebarWrapper__open_lwl8p_204{width:260px}._sidebarContent_lwl8p_208{position:relative;box-sizing:border-box;display:flex;width:260px;flex-shrink:0;flex-direction:column;border-right-width:1px;border-right-style:solid;--tw-border-opacity: 1;border-right-color:var(--ifm-color-emphasis-200);overflow:hidden;text-align:left}._container__expanded_lwl8p_223{height:100%;box-sizing:border-box;margin-top:-300px}._inputField_lwl8p_229{appearance:none;background:var( --cookbook-searchbox-background, var(--ifm-color-emphasis-100) );border:0;border-radius:10px;color:var(--cookbook-text-color);flex:1;font-size:14.4px;height:100%;outline:0;width:80%;padding-left:16px;padding-right:16px}._suggestionsContainer_lwl8p_248{display:flex;flex-direction:column;position:relative;z-index:10;width:100%;height:max-content;padding-left:20px;padding-right:20px;padding-bottom:20px}._suggestionsContainer_lwl8p_248>*{height:max-content}._tags_lwl8p_265{position:relative;flex-direction:column;display:flex;flex-wrap:wrap;align-items:start;width:100%;row-gap:8px;column-gap:4px;font-weight:500!important}@media (max-width: 768px){._tags_lwl8p_265{padding:unset}}._tags_lwl8p_265::-webkit-scrollbar{display:none}._tags_lwl8p_265{scrollbar-width:none}._tags_lwl8p_265>*{width:max-content}._modalOuterContainer_lwl8p_300{--cookbook-text-color: var(--ifm-color-emphasis-1000);--cookbook-muted-color: var(--ifm-color-secondary-darkest);--cookbook-container-background: rgba(47, 55, 69, .7);--cookbook-modal-background: var(--ifm-background-color);--cookbook-searchbox-background: var(--ifm-color-emphasis-100);--cookbook-searchbox-focus-background: var(--ifm-color-black);--cookbook-hit-background: var(--ifm-color-emphasis-100);--cookbook-footer-background: var(--ifm-background-surface-color);--cookbook-key-gradient: linear-gradient( -26.5deg, var(--ifm-color-emphasis-200) 0%, var(--ifm-color-emphasis-100) 100% );--cookbook-modal-width: 1000px;--cookbook-modal-height: 800px;--cookbook-modal-shadow: inset 1px 1px 0 0 #2c2e40, 0 3px 8px 0 #000309;--cookbook-mobile-trigger: 768px;background:var(--cookbook-container-background);left:0;position:fixed;top:0;z-index:calc(var(--ifm-z-index-fixed) + 9998);display:flex;align-items:center;justify-content:center;cursor:unset;padding-bottom:calc(env(safe-area-inset-bottom) + 90px);padding-top:20px;padding-left:20px;padding-right:20px}._modalOuterContainer_lwl8p_300{height:100vh;padding-bottom:calc(env(safe-area-inset-bottom) + 90px);width:100vw}@media (max-width: 768px){._modalOuterContainer_lwl8p_300{padding:unset}}@supports (height: 100dvh){._modalOuterContainer_lwl8p_300{padding-bottom:20px;height:100dvh;width:100dvw}}._header_lwl8p_356{display:flex;border-bottom:1px solid var(--ifm-color-emphasis-200);background-color:var(--ifm-background-color);box-shadow:var(--ifm-navbar-shadow);padding-left:20px;padding-right:20px;width:100%}._poweredByContainer_lwl8p_369>*{color:var(--ifm-font-color-base)}._poweredByCookbook_lwl8p_373{display:flex!important;align-items:center!important;padding-left:0!important;font-weight:800!important}._poweredByCookbookLogo_lwl8p_380{width:calc(16px * var(--ifm-breadcrumb-size-multiplier) * 1.5);height:calc(16px * var(--ifm-breadcrumb-size-multiplier) * 1.5);margin-right:6px;margin-bottom:3px}._notActive_lwl8p_387{pointer-events:none}._closeBtn_lwl8p_391{position:absolute;width:35px;height:35px;top:10px;right:10px;color:var(--cookbook-muted-color);transition:all .2s ease-in-out;border-radius:10px;display:flex;justify-content:center;align-items:center;padding:0}._closeBtn_lwl8p_391:hover{background-color:var(--cookbook-modal-background)!important;color:var(--cookbook-text-color)!important}._buttonIcon_lwl8p_411{cursor:pointer}._buttonIcon_lwl8p_411:hover>*{color:var(--ifm-link-color)}._buttonIcon_lwl8p_411>*{transform:scale(1.1);transform-origin:bottom;transition:color .15s ease-in;color:var(--cookbook-text-color)}._sidebarToggleContainer_lwl8p_426{position:absolute;width:32px;height:max-content;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:10;left:-18px;top:0}._sidebarToggleButton_lwl8p_440{margin-left:4px;display:flex;height:50px;width:32px;flex-shrink:0;display:flex!important;flex-direction:column;align-items:center;justify-content:center;align-self:center;cursor:pointer;border-radius:10px;background:var(--ifm-background-surface-color);border-color:var(--ifm-color-emphasis-200);--color: var(--ifm-color-emphasis-300);--hover-color: var(--ifm-color-emphasis-200)}._sidebarToggleButton_lwl8p_440:before,._sidebarToggleButton_lwl8p_440:after{height:12px;width:4px;border-radius:9999px;--tw-bg-opacity: 1;background-color:var(--color);transition-property:all;transition-timing-function:cubic-bezier(.87,0,.13,1);transition-duration:.3s;--tw-content: "";content:var(--tw-content);display:block}._sidebarToggleButton_lwl8p_440:before{content:var(--tw-content);transform-origin:bottom;--tw-rotate: 0deg;--tw-translate-x: 0px;--tw-translate-y: 2px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate))}._sidebarToggleButton_lwl8p_440:after{content:var(--tw-content);transform-origin:top;--tw-rotate: 0deg;--tw-translate-x: 0px;--tw-translate-y: -2px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate))}@media (hover: hover) and (pointer: fine){._sidebarToggleButton_lwl8p_440:hover:before{background-color:var(--hover-color)}._sidebarToggleButton_lwl8p_440:hover:after{background-color:var(--hover-color)}}@media (hover: hover) and (pointer: fine){._sidebarToggleButton__open_lwl8p_506:hover:before{--tw-rotate: 15deg;--tw-translate-x: -2px}._sidebarToggleButton__open_lwl8p_506:hover:after{--tw-rotate: -15deg;--tw-translate-x: -2px}}._sidebarToggleButton_lwl8p_440:not(._sidebarToggleButton__open_lwl8p_506):before{--tw-rotate: -15deg}._sidebarToggleButton_lwl8p_440:not(._sidebarToggleButton__open_lwl8p_506):after{--tw-rotate: 15deg}._sidebarToggleButton_lwl8p_440{transition:all .3s cubic-bezier(.87,0,.13,1)!important;transform:translate(0)}._sidebarToggleButton_lwl8p_440:not(._sidebarToggleButton__open_lwl8p_506){transform:translate(10px);padding-left:16px!important}._sidebarToggleButton__open_lwl8p_506{transform:translate(-13px);border-top-right-radius:0;border-bottom-right-radius:0}._option_lwl8p_548{--bg-color: transparent;--active-color: #363a3f;--border-color: #30a46c;--icon-color: #edeef0;--padding-for-icons: 80px;position:relative;padding:15px 0 15px 16px;display:flex;align-items:center;justify-content:space-between;width:100%;border-left-width:2px;border-left-color:transparent;border-left-style:solid;background-color:var(--bg-color);transition:all ease-out .15s;cursor:pointer}._optionLabel_lwl8p_572{transition:all ease-out .15s;font-size:16px;font-weight:400;--tw-text-opacity: 1;color:var(--ifm-color-content);width:100%;height:22px;line-height:1.25;overflow:hidden;word-break:break-all;--tw-text-opacity: 1 !important;mask-image:linear-gradient(to right,rgba(0,0,0,1) calc(100% - var(--padding-for-icons) - 32px),transparent calc(100% - var(--padding-for-icons) + 16px));mask-size:calc(100% + var(--padding-for-icons) * .6) 100%}@media (hover: hover) and (pointer: fine){._option_lwl8p_548:hover>*{opacity:1}._option_lwl8p_548:hover ._optionLabel_lwl8p_572{mask-size:100% 100%}._option_lwl8p_548:hover{--tw-bg-opacity: 1;backdrop-filter:invert(10%);-webkit-backdrop-filter:invert(10%);transform:translateZ(0)}}._option__active_lwl8p_611>*{opacity:1}._option__active_lwl8p_611 ._optionLabel_lwl8p_572{mask-size:100% 100%}._option__active_lwl8p_611{--tw-bg-opacity: 1;backdrop-filter:invert(10%);-webkit-backdrop-filter:invert(10%);transform:translateZ(0)}._optionIcons_lwl8p_626{position:absolute;right:10px;margin-top:auto;margin-bottom:auto;z-index:10;display:flex;width:max-content;align-items:center;justify-content:center;gap:8px;transition-property:opacity;transition-timing-function:ease-in-out;transition-duration:.15s;opacity:0}._sidebarBottomContainer_lwl8p_645{margin-top:auto;bottom:0;box-sizing:border-box;width:100%;overflow:visible;border-top-width:1px;--tw-border-opacity: 1;border-top-style:solid;border-top-color:var(--ifm-color-emphasis-200);padding:20px 14px;background:var(--cookbook-modal-background);flex-shrink:0}._mainContentContainer_lwl8p_663{position:relative;display:flex;flex-grow:1;flex-direction:column;padding-bottom:20px}@keyframes _fadein_lwl8p_1{0%{opacity:0}to{opacity:1}}@keyframes _fadeinfall_lwl8p_1{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}.react-scroll-to-bottom__panel{width:100%;max-height:100%;height:max-content;overflow-y:auto}.react-scroll-to-bottom__BasicScrollToBottom{position:absolute;width:100%;height:100%}.react-scroll-to-bottom__AutoHideFollowButton{background-color:#0003;border-radius:10px;border-width:0;bottom:5px;cursor:pointer;height:20px;outline:0;position:absolute;right:20px;width:20px;padding-top:50px}.react-scroll-to-bottom__AutoHideFollowButton:hover{background-color:#0006}.react-scroll-to-bottom__AutoHideFollowButton:active{background-color:#0009}._container_lh73c_1{position:relative;display:inline-flex;height:20px;width:44px;align-items:center;border-radius:9999px;background:var(--ifm-background-surface-color)!important;transition:background-color .2s ease;border:1px solid var(--ifm-color-emphasis-300)!important}._containerActive_lh73c_13{background:var(--ifm-color-info)!important}._containerActive_lh73c_13 ._toggle_lh73c_16{background:var(--ifm-color-emphasis-900, #000000)}._srLabel_lh73c_20{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}._toggle_lh73c_16{--position: 4px;display:inline-block;height:12px;width:12px;transform:translate(var(--position));border-radius:9999px;transition:transform .2s ease,background-color .2s ease;background:var(--ifm-color-emphasis-900, #ffffff)}._toggleActive_lh73c_45{--position: 27.2px}._modeContainer_1cc2j_2{position:relative;display:flex;flex-direction:row;align-items:center;justify-content:left;gap:10px;margin-bottom:15px;margin-top:-5px}._modeText_1cc2j_25{font-weight:700;color:var(--ifm-color-content);font-size:13px}')}(); +!function(e){"function"==typeof define&&define.amd?define(e):e()}((function(){"use strict";function e(e,t){for(var n=0;ni[t]})}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function n(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var i={exports:{}},a={},o=Object.getOwnPropertySymbols,r=Object.prototype.hasOwnProperty,s=Object.prototype.propertyIsEnumerable;var c=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var i={};return"abcdefghijklmnopqrst".split("").forEach((function(e){i[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},i)).join("")}catch(a){return!1}}()?Object.assign:function(e,t){for(var n,i,a=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),c=1;c=f},a=function(){},e.unstable_forceFrameRate=function(e){0>e||125>>1,a=e[i];if(!(void 0!==a&&0x(r,n))void 0!==c&&0>x(c,r)?(e[i]=c,e[s]=n,i=s):(e[i]=r,e[o]=n,i=o);else{if(!(void 0!==c&&0>x(c,n)))break e;e[i]=c,e[s]=n,i=s}}}return t}return null}function x(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var _=[],E=[],I=1,S=null,B=3,D=!1,L=!1,N=!1;function T(e){for(var t=k(E);null!==t;){if(null===t.callback)C(E);else{if(!(t.startTime<=e))break;C(E),t.sortIndex=t.expirationTime,v(_,t)}t=k(E)}}function Z(e){if(N=!1,T(e),!L)if(null!==k(_))L=!0,t(M);else{var i=k(E);null!==i&&n(Z,i.startTime-e)}}function M(t,a){L=!1,N&&(N=!1,i()),D=!0;var o=B;try{for(T(a),S=k(_);null!==S&&(!(S.expirationTime>a)||t&&!e.unstable_shouldYield());){var r=S.callback;if("function"==typeof r){S.callback=null,B=S.priorityLevel;var s=r(S.expirationTime<=a);a=e.unstable_now(),"function"==typeof s?S.callback=s:S===k(_)&&C(_),T(a)}else C(_);S=k(_)}if(null!==S)var c=!0;else{var l=k(E);null!==l&&n(Z,l.startTime-a),c=!1}return c}finally{S=null,B=o,D=!1}}var Q=a;e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_continueExecution=function(){L||D||(L=!0,t(M))},e.unstable_getCurrentPriorityLevel=function(){return B},e.unstable_getFirstCallbackNode=function(){return k(_)},e.unstable_next=function(e){switch(B){case 1:case 2:case 3:var t=3;break;default:t=B}var n=B;B=t;try{return e()}finally{B=n}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=Q,e.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=B;B=e;try{return t()}finally{B=n}},e.unstable_scheduleCallback=function(a,o,r){var s=e.unstable_now();switch("object"==typeof r&&null!==r?r="number"==typeof(r=r.delay)&&0s?(a.sortIndex=r,v(E,a),null===k(_)&&a===k(E)&&(N?i():N=!0,n(Z,r-s))):(a.sortIndex=c,v(_,a),L||D||(L=!0,t(M))),a},e.unstable_wrapCallback=function(e){var t=B;return function(){var n=B;B=t;try{return e.apply(this,arguments)}finally{B=n}}}}(te),ee.exports=te;var ne=ee.exports,ie=P,ae=c,oe=ne; +/** @license React v17.0.2 + * react-dom.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. + */function re(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n