├── .editorconfig ├── .eslintrc.js ├── .gitattributes ├── .github ├── CODEOWNERS ├── ISSUE_TEMPLATE │ ├── bug_report.yaml │ ├── config.yml │ └── feature_request.md ├── pull_request_template.md └── workflows │ ├── deploy-cdn.yml │ ├── deploy-static.yml │ ├── e2e-android-sdk-tests.yml │ ├── e2e-js-sdk-android-tests.yml │ ├── e2e-js-sdk-ios-tests.yml │ ├── gh-pages.yml │ ├── lint-build-test.yml │ ├── main.yml │ ├── publish-preview.yml │ ├── publish-release.yml │ ├── security-code-scanner.yml │ └── sonar-cloud.yml ├── .gitignore ├── .husky ├── commit-msg ├── pre-commit └── prepare-commit-msg ├── .nojekyll ├── .nvmrc ├── .prettierrc.js ├── .yarn ├── plugins │ └── @yarnpkg │ │ ├── plugin-allow-scripts.cjs │ │ └── plugin-workspace-tools.cjs └── releases │ └── yarn-3.5.1.cjs ├── .yarnrc.yml ├── LICENSE ├── README.md ├── commitlint.config.js ├── deployments └── dapps │ └── sdk-playground │ ├── .env.sample │ ├── .eslintrc.js │ ├── .gitignore │ ├── .prettierrc.js │ ├── Dockerfile │ ├── README.md │ ├── craco.config.js │ ├── package.json │ ├── public │ ├── Fonts │ │ ├── AntDesign.ttf │ │ ├── Entypo.ttf │ │ ├── EvilIcons.ttf │ │ ├── Feather.ttf │ │ ├── FontAwesome.ttf │ │ ├── FontAwesome5_Brands.ttf │ │ ├── FontAwesome5_Regular.ttf │ │ ├── FontAwesome5_Solid.ttf │ │ ├── FontAwesome6_Brands.ttf │ │ ├── FontAwesome6_Regular.ttf │ │ ├── FontAwesome6_Solid.ttf │ │ ├── Fontisto.ttf │ │ ├── Foundation.ttf │ │ ├── Ionicons.ttf │ │ ├── MaterialCommunityIcons.ttf │ │ ├── MaterialIcons.ttf │ │ ├── Octicons.ttf │ │ ├── SimpleLineIcons.ttf │ │ └── Zocial.ttf │ ├── favicon.ico │ ├── index.html │ ├── logo192.png │ ├── logo512.png │ ├── manifest.json │ └── robots.txt │ ├── sdk-copy.sh │ ├── src │ ├── App.css │ ├── App.tsx │ ├── SignHelpers.ts │ ├── components │ │ └── layout.tsx │ ├── index.css │ ├── index.tsx │ ├── logo.svg │ ├── pages │ │ ├── demo.css │ │ ├── demo.tsx │ │ └── onboard.tsx │ ├── reportWebVitals.js │ ├── setupTests.js │ └── utils │ │ └── sign-utils.ts │ ├── tsconfig.json │ └── yarn.lock ├── docs ├── Development.md ├── E2E_Testing_Guide.md ├── connection_flow.png ├── contributing.md ├── custom-modal.md ├── demo_electron.gif ├── demo_nodejs.gif ├── demo_rn_ios.gif ├── demo_web.gif ├── init-new-react-native-project.md ├── sdk-init-flow.md ├── sdk_commlayer_flow.png ├── sdk_highlevel_architecture.png ├── wagmi-integration.md ├── wagmi-v2-integration.md └── why-infura-wagmi.md ├── e2e ├── .android.env.example ├── .dapps.env.example ├── .env.example ├── .gitignore ├── .ios.env.example ├── README.md ├── babel.config.js ├── package.json ├── src │ ├── fixtures │ │ ├── FixtureBuilder.ts │ │ ├── FixtureHelper.ts │ │ └── FixtureServer.ts │ ├── screens │ │ ├── Android │ │ │ ├── AndroidSettingsOpeningLinksScreen.ts │ │ │ ├── AndroidSettingsScreen.ts │ │ │ ├── ChromeBrowserScreen.ts │ │ │ └── components │ │ │ │ └── AndroidOpenWithComponent.ts │ │ ├── Dapps │ │ │ └── MetaMaskSDKTestDappScreen.ts │ │ ├── MetaMask │ │ │ ├── GetStartedScreen.ts │ │ │ ├── ImportFromSeedScreen.ts │ │ │ ├── LockScreen.ts │ │ │ ├── MainScreen.ts │ │ │ ├── OptinMetricsScreen.ts │ │ │ ├── SecurityUpdates.ts │ │ │ ├── SettingsScreen.ts │ │ │ ├── TermsOfUseScreen.ts │ │ │ ├── WalletReadyScreen.ts │ │ │ ├── WalletSetupScreen.ts │ │ │ └── components │ │ │ │ ├── BottomNavigationComponent.ts │ │ │ │ ├── ConnectModalComponent.ts │ │ │ │ ├── EnableSmartTransactionsComponent.ts │ │ │ │ ├── MetaMetricsComponent.ts │ │ │ │ ├── NetworkSwitchedModalComponent.ts │ │ │ │ ├── PersonalSignConfirmationComponent.ts │ │ │ │ ├── SendTxModalComponent.ts │ │ │ │ ├── SignModalComponent.ts │ │ │ │ ├── SwitchNetworkModalComponent.ts │ │ │ │ ├── WelcomeComponent.ts │ │ │ │ └── WhatsNewComponent.ts │ │ ├── iOS │ │ │ ├── SafariBrowserScreen.ts │ │ │ └── components │ │ │ │ └── IOSOpenInComponent.ts │ │ └── interfaces │ │ │ ├── Dapp.ts │ │ │ └── MobileBrowser.ts │ └── util │ │ ├── Constants.ts │ │ ├── Gestures.ts │ │ ├── Selectors.ts │ │ ├── Utils.ts │ │ ├── helpers.ts │ │ └── types.ts ├── test │ ├── configs │ │ ├── browserstack │ │ │ ├── wdio.android.app.browserstack.conf.ts │ │ │ ├── wdio.ios.app.browserstack.conf.ts │ │ │ └── wdio.shared.browserstack.conf.ts │ │ ├── local │ │ │ ├── wdio.android.app.local.conf.ts │ │ │ ├── wdio.ios.app.local.conf.ts │ │ │ └── wdio.shared.local.appium.conf.ts │ │ └── wdio.conf.ts │ ├── mocha.hooks.ts │ └── specs │ │ ├── fixture_reference.ts │ │ ├── js_sdk.spec.ts │ │ ├── metamask-connector │ │ └── web_dapp.spec.ts │ │ ├── multi-wallet-connector │ │ └── fixture_reference.ts │ │ └── native │ │ └── android_sdk.spec.ts ├── tsconfig.json └── yarn.lock ├── jest.config.base.ts ├── lint-staged.config.js ├── package.json ├── packages ├── contracts │ ├── .env.sample │ ├── .eslintrc.js │ ├── .gitattributes │ ├── .gitignore │ ├── LICENSE │ ├── README.md │ ├── contracts │ │ └── Simple.sol │ ├── migrations │ │ └── 1_deploy.ts │ ├── package.json │ ├── src │ │ └── index.ts │ ├── truffle-config.js │ ├── tsconfig.json │ └── yarn.lock ├── deve2e │ ├── .eslintrc.js │ ├── .prettierrc.js │ ├── README.md │ ├── package.json │ ├── rollup.config.cjs │ ├── src │ │ ├── e2e-communication.ts │ │ ├── e2e-encryption.ts │ │ ├── e2e-sdk.ts │ │ └── index.ts │ └── tsconfig.json ├── devnext │ ├── .env.sample │ ├── .eslintrc.js │ ├── .gitignore │ ├── .prettierrc.js │ ├── README.md │ ├── babel.config.js │ ├── next.config.js │ ├── package.json │ ├── postcss.config.js │ ├── public │ │ ├── Fonts │ │ │ ├── AntDesign.ttf │ │ │ ├── Entypo.ttf │ │ │ ├── EvilIcons.ttf │ │ │ ├── Feather.ttf │ │ │ ├── FontAwesome.ttf │ │ │ ├── FontAwesome5_Brands.ttf │ │ │ ├── FontAwesome5_Regular.ttf │ │ │ ├── FontAwesome5_Solid.ttf │ │ │ ├── FontAwesome6_Brands.ttf │ │ │ ├── FontAwesome6_Regular.ttf │ │ │ ├── FontAwesome6_Solid.ttf │ │ │ ├── Fontisto.ttf │ │ │ ├── Foundation.ttf │ │ │ ├── Ionicons.ttf │ │ │ ├── MaterialCommunityIcons.ttf │ │ │ ├── MaterialIcons.ttf │ │ │ ├── Octicons.ttf │ │ │ ├── SimpleLineIcons.ttf │ │ │ └── Zocial.ttf │ │ ├── android-chrome-192x192.png │ │ ├── android-chrome-512x512.png │ │ ├── apple-touch-icon.png │ │ ├── deep.html │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── favicon.ico │ │ ├── next.svg │ │ ├── site.webmanifest │ │ ├── thirteen.svg │ │ └── vercel.svg │ ├── src │ │ ├── abi │ │ │ └── Simple.json │ │ ├── components │ │ │ ├── WalletActions.tsx │ │ │ └── layout.tsx │ │ ├── pages │ │ │ ├── _app.tsx │ │ │ ├── _document.tsx │ │ │ ├── add.svg │ │ │ ├── demo.tsx │ │ │ ├── index.tsx │ │ │ ├── uikit.tsx │ │ │ └── web3onboard.tsx │ │ ├── styles │ │ │ ├── Home.module.css │ │ │ ├── globals.css │ │ │ └── icons.css │ │ └── utils │ │ │ └── sign-utils.ts │ ├── tailwind.config.js │ └── tsconfig.json ├── devreact │ ├── .env.sample │ ├── .eslintrc.js │ ├── .gitignore │ ├── .prettierrc.js │ ├── README.md │ ├── craco.config.js │ ├── mocks │ │ └── AssetRegistry.js │ ├── package.json │ ├── public │ │ ├── Fonts │ │ │ ├── AntDesign.ttf │ │ │ ├── Entypo.ttf │ │ │ ├── EvilIcons.ttf │ │ │ ├── Feather.ttf │ │ │ ├── FontAwesome.ttf │ │ │ ├── FontAwesome5_Brands.ttf │ │ │ ├── FontAwesome5_Regular.ttf │ │ │ ├── FontAwesome5_Solid.ttf │ │ │ ├── FontAwesome6_Brands.ttf │ │ │ ├── FontAwesome6_Regular.ttf │ │ │ ├── FontAwesome6_Solid.ttf │ │ │ ├── Fontisto.ttf │ │ │ ├── Foundation.ttf │ │ │ ├── Ionicons.ttf │ │ │ ├── MaterialCommunityIcons.ttf │ │ │ ├── MaterialIcons.ttf │ │ │ ├── Octicons.ttf │ │ │ ├── SimpleLineIcons.ttf │ │ │ └── Zocial.ttf │ │ ├── favicon.ico │ │ ├── index.html │ │ ├── logo192.png │ │ ├── logo512.png │ │ ├── manifest.json │ │ └── robots.txt │ ├── src │ │ ├── App.css │ │ ├── App.tsx │ │ ├── icons.css │ │ ├── index.css │ │ ├── index.tsx │ │ ├── logo.svg │ │ ├── reportWebVitals.js │ │ └── setupTests.js │ ├── tsconfig.json │ └── types │ │ └── svg.d.ts ├── devreactnative │ ├── .bundle │ │ └── config │ ├── .env.sample │ ├── .eslintrc.js │ ├── .gitignore │ ├── .prettierrc.js │ ├── .watchmanconfig │ ├── App.tsx │ ├── Gemfile │ ├── Gemfile.lock │ ├── README.md │ ├── __tests__ │ │ └── App.test.tsx │ ├── android │ │ ├── app │ │ │ ├── build.gradle │ │ │ ├── debug.keystore │ │ │ ├── proguard-rules.pro │ │ │ └── src │ │ │ │ ├── debug │ │ │ │ ├── AndroidManifest.xml │ │ │ │ └── java │ │ │ │ │ └── com │ │ │ │ │ └── devreactnative │ │ │ │ │ └── ReactNativeFlipper.java │ │ │ │ ├── main │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── java │ │ │ │ │ └── com │ │ │ │ │ │ └── devreactnative │ │ │ │ │ │ ├── MainActivity.java │ │ │ │ │ │ └── MainApplication.java │ │ │ │ └── res │ │ │ │ │ ├── drawable │ │ │ │ │ └── rn_edit_text_material.xml │ │ │ │ │ ├── mipmap-hdpi │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ ├── mipmap-mdpi │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ ├── mipmap-xhdpi │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ └── values │ │ │ │ │ ├── strings.xml │ │ │ │ │ └── styles.xml │ │ │ │ └── release │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── devreactnative │ │ │ │ └── ReactNativeFlipper.java │ │ ├── build.gradle │ │ ├── gradle.properties │ │ ├── gradle │ │ │ └── wrapper │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ └── gradle-wrapper.properties │ │ ├── gradlew │ │ ├── gradlew.bat │ │ └── settings.gradle │ ├── app.json │ ├── babel.config.js │ ├── fixios.sh │ ├── index.js │ ├── ios │ │ ├── .xcode.env │ │ ├── Podfile │ │ ├── Podfile.lock │ │ ├── devreactnative.xcodeproj │ │ │ ├── project.pbxproj │ │ │ └── xcshareddata │ │ │ │ └── xcschemes │ │ │ │ └── devreactnative.xcscheme │ │ ├── devreactnative.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ │ └── IDEWorkspaceChecks.plist │ │ ├── devreactnative │ │ │ ├── AppDelegate.h │ │ │ ├── AppDelegate.mm │ │ │ ├── Images.xcassets │ │ │ │ ├── AppIcon.appiconset │ │ │ │ │ └── Contents.json │ │ │ │ └── Contents.json │ │ │ ├── Info.plist │ │ │ ├── LaunchScreen.storyboard │ │ │ └── main.m │ │ └── devreactnativeTests │ │ │ ├── Info.plist │ │ │ └── devreactnativeTests.m │ ├── jest.config.js │ ├── metro.config.js │ ├── package.json │ ├── src │ │ ├── MainTabNavigator.tsx │ │ ├── RootNavigator.tsx │ │ ├── StorageManagerRN.ts │ │ ├── screens │ │ │ ├── DemoScreen.tsx │ │ │ ├── SettingsScreen.tsx │ │ │ └── navigation.params.ts │ │ ├── types │ │ │ └── env.d.ts │ │ └── views │ │ │ ├── DappView.tsx │ │ │ ├── colors.tsx │ │ │ └── service-status-view.tsx │ └── tsconfig.json ├── devsocket │ ├── README.md │ ├── package.json │ ├── src │ │ └── index.ts │ ├── tsconfig.eslint.json │ └── tsconfig.json ├── examples │ ├── .tool-versions │ ├── electronjs │ │ ├── README.md │ │ ├── index.html │ │ ├── package.json │ │ ├── src │ │ │ ├── main.ts │ │ │ ├── preload.ts │ │ │ ├── renderer.ts │ │ │ └── sdk.ts │ │ ├── tsconfig.json │ │ └── yarn.lock │ ├── nextjs-demo │ │ ├── .env.sample │ │ ├── .eslintrc.json │ │ ├── .gitignore │ │ ├── README.md │ │ ├── next.config.js │ │ ├── package.json │ │ ├── public │ │ │ ├── next.svg │ │ │ └── vercel.svg │ │ ├── sdk-copy.sh │ │ ├── src │ │ │ └── app │ │ │ │ ├── SDKContainer.css │ │ │ │ ├── SDKContainer.tsx │ │ │ │ ├── SignHelpers.ts │ │ │ │ ├── favicon.ico │ │ │ │ ├── globals.css │ │ │ │ ├── layout.tsx │ │ │ │ ├── page.module.css │ │ │ │ └── page.tsx │ │ ├── tsconfig.json │ │ └── yarn.lock │ ├── nodejs-interactive │ │ ├── .env.sample │ │ ├── .gitignore │ │ ├── README.md │ │ ├── package.json │ │ ├── sdk-copy.sh │ │ ├── src │ │ │ ├── constants.ts │ │ │ ├── index.ts │ │ │ └── rpcRequests.ts │ │ ├── tsconfig.json │ │ └── yarn.lock │ ├── nodejs │ │ ├── README.md │ │ ├── package.json │ │ ├── sdk-copy.sh │ │ ├── src │ │ │ └── index.ts │ │ ├── tsconfig.json │ │ └── yarn.lock │ ├── pure-javascript │ │ ├── README.md │ │ ├── index.html │ │ ├── package.json │ │ ├── sdk-copy.sh │ │ └── yarn.lock │ ├── react-demo │ │ ├── .gitignore │ │ ├── README.md │ │ ├── eslint.config.js │ │ ├── index.html │ │ ├── package.json │ │ ├── public │ │ │ └── vite.svg │ │ ├── sdk-copy.sh │ │ ├── src │ │ │ ├── App.css │ │ │ ├── App.tsx │ │ │ ├── SignHelpers.ts │ │ │ ├── assets │ │ │ │ └── react.svg │ │ │ ├── index.css │ │ │ ├── main.tsx │ │ │ └── vite-env.d.ts │ │ ├── tsconfig.app.json │ │ ├── tsconfig.json │ │ ├── tsconfig.node.json │ │ ├── vite.config.ts │ │ └── yarn.lock │ ├── react-metamask-button │ │ ├── .gitignore │ │ ├── README.md │ │ ├── package.json │ │ ├── public │ │ │ ├── favicon.ico │ │ │ ├── index.html │ │ │ ├── logo192.png │ │ │ ├── logo512.png │ │ │ ├── manifest.json │ │ │ └── robots.txt │ │ ├── sdk-copy.sh │ │ ├── src │ │ │ ├── App.css │ │ │ ├── App.js │ │ │ ├── App.test.js │ │ │ ├── index.css │ │ │ ├── index.js │ │ │ ├── logo.svg │ │ │ ├── reportWebVitals.js │ │ │ └── setupTests.js │ │ └── yarn.lock │ ├── react-with-custom-modal │ │ ├── .env.sample │ │ ├── .gitignore │ │ ├── README.md │ │ ├── package.json │ │ ├── public │ │ │ ├── favicon.ico │ │ │ ├── index.html │ │ │ ├── logo192.png │ │ │ ├── logo512.png │ │ │ ├── manifest.json │ │ │ └── robots.txt │ │ ├── sdk-copy.sh │ │ ├── src │ │ │ ├── App.css │ │ │ ├── App.test.js │ │ │ ├── App.tsx │ │ │ ├── OtpModal.tsx │ │ │ ├── QrCodeModal.tsx │ │ │ ├── SignHelpers.ts │ │ │ ├── helpers.ts │ │ │ ├── index.css │ │ │ ├── index.tsx │ │ │ ├── logo.svg │ │ │ ├── reportWebVitals.js │ │ │ └── setupTests.js │ │ ├── tsconfig.json │ │ └── yarn.lock │ ├── reactNativeDemo │ │ ├── .bundle │ │ │ └── config │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .node-version │ │ ├── .prettierrc.js │ │ ├── .watchmanconfig │ │ ├── App.tsx │ │ ├── Gemfile │ │ ├── Gemfile.lock │ │ ├── README.md │ │ ├── __tests__ │ │ │ └── App-test.tsx │ │ ├── android │ │ │ ├── app │ │ │ │ ├── build.gradle │ │ │ │ ├── debug.keystore │ │ │ │ ├── proguard-rules.pro │ │ │ │ └── src │ │ │ │ │ ├── debug │ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ │ └── java │ │ │ │ │ │ └── com │ │ │ │ │ │ └── reactnativedemo │ │ │ │ │ │ └── ReactNativeFlipper.java │ │ │ │ │ ├── main │ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ │ ├── java │ │ │ │ │ │ └── com │ │ │ │ │ │ │ └── reactnativedemo │ │ │ │ │ │ │ ├── MainActivity.java │ │ │ │ │ │ │ └── MainApplication.java │ │ │ │ │ └── res │ │ │ │ │ │ ├── drawable │ │ │ │ │ │ └── rn_edit_text_material.xml │ │ │ │ │ │ ├── mipmap-hdpi │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ │ ├── mipmap-mdpi │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ │ ├── mipmap-xhdpi │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ │ └── values │ │ │ │ │ │ ├── strings.xml │ │ │ │ │ │ └── styles.xml │ │ │ │ │ └── release │ │ │ │ │ └── java │ │ │ │ │ └── com │ │ │ │ │ └── reactnativedemo │ │ │ │ │ └── ReactNativeFlipper.java │ │ │ ├── build.gradle │ │ │ ├── gradle.properties │ │ │ ├── gradle │ │ │ │ └── wrapper │ │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ │ └── gradle-wrapper.properties │ │ │ ├── gradlew │ │ │ ├── gradlew.bat │ │ │ └── settings.gradle │ │ ├── app.json │ │ ├── babel.config.js │ │ ├── index.js │ │ ├── ios │ │ │ ├── .xcode.env │ │ │ ├── Podfile │ │ │ ├── Podfile.lock │ │ │ ├── reactNativeDemo.xcodeproj │ │ │ │ ├── project.pbxproj │ │ │ │ └── xcshareddata │ │ │ │ │ └── xcschemes │ │ │ │ │ └── reactNativeDemo.xcscheme │ │ │ ├── reactNativeDemo.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ ├── reactNativeDemo │ │ │ │ ├── AppDelegate.h │ │ │ │ ├── AppDelegate.mm │ │ │ │ ├── Images.xcassets │ │ │ │ │ ├── AppIcon.appiconset │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ │ ├── Info.plist │ │ │ │ ├── LaunchScreen.storyboard │ │ │ │ └── main.m │ │ │ └── reactNativeDemoTests │ │ │ │ ├── Info.plist │ │ │ │ └── reactNativeDemoTests.m │ │ ├── jest.config.js │ │ ├── metro.config.js │ │ ├── package.json │ │ ├── sdk-copy.sh │ │ ├── src │ │ │ ├── MainTabNavigator.tsx │ │ │ ├── RootNavigator.tsx │ │ │ ├── screens │ │ │ │ ├── DemoScreen.tsx │ │ │ │ └── navigation.params.ts │ │ │ ├── types │ │ │ │ └── env.d.ts │ │ │ └── views │ │ │ │ ├── DappView.tsx │ │ │ │ ├── colors.tsx │ │ │ │ └── service-status-view.tsx │ │ ├── tsconfig.json │ │ └── yarn.lock │ ├── reactNativeSdkDemo │ │ ├── .bundle │ │ │ └── config │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc.js │ │ ├── .watchmanconfig │ │ ├── App.tsx │ │ ├── Gemfile │ │ ├── Gemfile.lock │ │ ├── README.md │ │ ├── __tests__ │ │ │ └── App.test.tsx │ │ ├── android │ │ │ ├── app │ │ │ │ ├── build.gradle │ │ │ │ ├── debug.keystore │ │ │ │ ├── proguard-rules.pro │ │ │ │ └── src │ │ │ │ │ ├── debug │ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ │ └── java │ │ │ │ │ │ └── com │ │ │ │ │ │ └── reactnativesdkdemo │ │ │ │ │ │ └── ReactNativeFlipper.java │ │ │ │ │ ├── main │ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ │ ├── java │ │ │ │ │ │ └── com │ │ │ │ │ │ │ └── reactnativesdkdemo │ │ │ │ │ │ │ ├── MainActivity.java │ │ │ │ │ │ │ └── MainApplication.java │ │ │ │ │ └── res │ │ │ │ │ │ ├── drawable │ │ │ │ │ │ └── rn_edit_text_material.xml │ │ │ │ │ │ ├── mipmap-hdpi │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ │ ├── mipmap-mdpi │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ │ ├── mipmap-xhdpi │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ │ └── values │ │ │ │ │ │ ├── strings.xml │ │ │ │ │ │ └── styles.xml │ │ │ │ │ └── release │ │ │ │ │ └── java │ │ │ │ │ └── com │ │ │ │ │ └── reactnativesdkdemo │ │ │ │ │ └── ReactNativeFlipper.java │ │ │ ├── build.gradle │ │ │ ├── gradle.properties │ │ │ ├── gradle │ │ │ │ └── wrapper │ │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ │ └── gradle-wrapper.properties │ │ │ ├── gradlew │ │ │ ├── gradlew.bat │ │ │ └── settings.gradle │ │ ├── app.json │ │ ├── babel.config.js │ │ ├── index.js │ │ ├── ios │ │ │ ├── .xcode.env │ │ │ ├── Podfile │ │ │ ├── Podfile.lock │ │ │ ├── reactNativeSdkDemo.xcodeproj │ │ │ │ ├── project.pbxproj │ │ │ │ ├── project.xcworkspace │ │ │ │ │ └── xcshareddata │ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ └── xcshareddata │ │ │ │ │ └── xcschemes │ │ │ │ │ └── reactNativeSdkDemo.xcscheme │ │ │ ├── reactNativeSdkDemo.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ ├── reactNativeSdkDemo │ │ │ │ ├── AppDelegate.h │ │ │ │ ├── AppDelegate.mm │ │ │ │ ├── Images.xcassets │ │ │ │ │ ├── AppIcon.appiconset │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ │ ├── Info.plist │ │ │ │ ├── LaunchScreen.storyboard │ │ │ │ └── main.m │ │ │ └── reactNativeSdkDemoTests │ │ │ │ ├── Info.plist │ │ │ │ └── reactNativeSdkDemoTests.m │ │ ├── jest.config.js │ │ ├── metro.config.js │ │ ├── package.json │ │ ├── src │ │ │ ├── MainTabNavigator.tsx │ │ │ ├── RootNavigator.tsx │ │ │ ├── screens │ │ │ │ ├── DemoScreen.tsx │ │ │ │ └── navigation.params.ts │ │ │ ├── types │ │ │ │ └── env.d.ts │ │ │ └── views │ │ │ │ ├── DappView.tsx │ │ │ │ ├── colors.tsx │ │ │ │ └── service-status-view.tsx │ │ ├── tsconfig.json │ │ └── yarn.lock │ ├── vuejs │ │ ├── README.md │ │ ├── babel.config.js │ │ ├── jsconfig.json │ │ ├── package.json │ │ ├── public │ │ │ ├── favicon.ico │ │ │ └── index.html │ │ ├── sdk-copy.sh │ │ ├── src │ │ │ ├── App.vue │ │ │ ├── assets │ │ │ │ └── logo.png │ │ │ ├── components │ │ │ │ └── MetaMaskComponent.vue │ │ │ └── main.js │ │ ├── vue.config.js │ │ └── yarn.lock │ ├── wagmi-demo-react │ │ ├── .gitignore │ │ ├── index.html │ │ ├── package.json │ │ ├── public │ │ │ └── manifest.json │ │ ├── sdk-copy.sh │ │ ├── src │ │ │ ├── App.tsx │ │ │ ├── contracts.ts │ │ │ ├── index.css │ │ │ ├── main.tsx │ │ │ ├── vite-env.d.ts │ │ │ └── wagmi.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.node.json │ │ ├── vite.config.ts │ │ └── yarn.lock │ ├── wagmi-demo │ │ ├── .env.sample │ │ ├── .gitignore │ │ ├── README.md │ │ ├── next.config.js │ │ ├── next.config.mjs │ │ ├── package.json │ │ ├── sdk-copy.sh │ │ ├── src │ │ │ ├── app │ │ │ │ ├── contracts.ts │ │ │ │ ├── globals.css │ │ │ │ ├── layout.tsx │ │ │ │ ├── page.tsx │ │ │ │ └── providers.tsx │ │ │ └── wagmi.ts │ │ ├── tsconfig.json │ │ └── yarn.lock │ └── with-web3onboard │ │ ├── .eslintrc.cjs │ │ ├── .gitignore │ │ ├── README.md │ │ ├── index.html │ │ ├── package.json │ │ ├── public │ │ └── vite.svg │ │ ├── sdk-copy.sh │ │ ├── src │ │ ├── App.css │ │ ├── App.tsx │ │ ├── assets │ │ │ └── react.svg │ │ ├── index.css │ │ ├── main.tsx │ │ └── vite-env.d.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.node.json │ │ ├── vite.config.ts │ │ └── yarn.lock ├── playground-next │ ├── .env.example │ ├── .gitignore │ ├── README.md │ ├── eslint.config.mjs │ ├── next.config.ts │ ├── package.json │ ├── public │ │ ├── file.svg │ │ ├── globe.svg │ │ ├── next.svg │ │ ├── vercel.svg │ │ └── window.svg │ ├── src │ │ └── app │ │ │ ├── favicon.ico │ │ │ ├── globals.css │ │ │ ├── layout.tsx │ │ │ ├── page.module.css │ │ │ └── page.tsx │ └── tsconfig.json ├── sdk-analytics │ ├── CHANGELOG.md │ ├── README.md │ ├── eslint.config.mjs │ ├── package.json │ ├── src │ │ ├── analytics.test.ts │ │ ├── analytics.ts │ │ ├── index.ts │ │ ├── schema.ts │ │ ├── sender.test.ts │ │ └── sender.ts │ └── tsconfig.json ├── sdk-communication-layer │ ├── .change │ ├── .eslintrc.js │ ├── .gitignore │ ├── .prettierrc.js │ ├── .size-limit.json │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── e2e │ │ ├── ecies.test.ts │ │ ├── sdk-comm.e2e.test.ts │ │ └── shared-e2e.config.ts │ ├── jest-preload.js │ ├── jest.config.ts │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── Analytics.ts │ │ ├── ECIES.ts │ │ ├── KeyExchange.test.ts │ │ ├── KeyExchange.ts │ │ ├── RemoteCommunication.test.ts │ │ ├── RemoteCommunication.ts │ │ ├── SocketService.test.ts │ │ ├── SocketService.ts │ │ ├── config.ts │ │ ├── index.ts │ │ ├── services │ │ │ ├── RemoteCommunication │ │ │ │ ├── ChannelManager │ │ │ │ │ ├── clean.test.ts │ │ │ │ │ ├── clean.ts │ │ │ │ │ ├── generateChannelIdConnect.test.ts │ │ │ │ │ ├── generateChannelIdConnect.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── ConnectionManager │ │ │ │ │ ├── connectToChannel.test.ts │ │ │ │ │ ├── connectToChannel.ts │ │ │ │ │ ├── disconnect.test.ts │ │ │ │ │ ├── disconnect.ts │ │ │ │ │ ├── handleAuthorization.test.ts │ │ │ │ │ ├── handleAuthorization.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── initSocketService.test.ts │ │ │ │ │ ├── initSocketService.ts │ │ │ │ │ ├── originatorSessionConnect.test.ts │ │ │ │ │ ├── originatorSessionConnect.ts │ │ │ │ │ ├── rejectChannel.ts │ │ │ │ │ ├── resume.test.ts │ │ │ │ │ └── resume.ts │ │ │ │ ├── EventListeners │ │ │ │ │ ├── handleAuthorizedEvent.test.ts │ │ │ │ │ ├── handleAuthorizedEvent.ts │ │ │ │ │ ├── handleChannelCreatedEvent.test.ts │ │ │ │ │ ├── handleChannelCreatedEvent.ts │ │ │ │ │ ├── handleClientsConnectedEvent.test.ts │ │ │ │ │ ├── handleClientsConnectedEvent.ts │ │ │ │ │ ├── handleClientsDisconnectedEvent.test.ts │ │ │ │ │ ├── handleClientsDisconnectedEvent.ts │ │ │ │ │ ├── handleClientsWaitingEvent.test.ts │ │ │ │ │ ├── handleClientsWaitingEvent.ts │ │ │ │ │ ├── handleFullPersistenceEvent.test.ts │ │ │ │ │ ├── handleFullPersistenceEvent.ts │ │ │ │ │ ├── handleKeysExchangedEvent.test.ts │ │ │ │ │ ├── handleKeysExchangedEvent.ts │ │ │ │ │ ├── handleMessageEvent.test.ts │ │ │ │ │ ├── handleMessageEvent.ts │ │ │ │ │ ├── handleSocketDisconnectedEvent.test.ts │ │ │ │ │ ├── handleSocketDisconnectedEvent.ts │ │ │ │ │ ├── handleSocketReconnectEvent.test.ts │ │ │ │ │ ├── handleSocketReconnectEvent.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── MessageHandlers │ │ │ │ │ ├── handleAuthorizedMessage.test.ts │ │ │ │ │ ├── handleAuthorizedMessage.ts │ │ │ │ │ ├── handleOriginatorInfoMessage.test.ts │ │ │ │ │ ├── handleOriginatorInfoMessage.ts │ │ │ │ │ ├── handleOtpMessage.test.ts │ │ │ │ │ ├── handleOtpMessage.ts │ │ │ │ │ ├── handlePauseMessage.test.ts │ │ │ │ │ ├── handlePauseMessage.ts │ │ │ │ │ ├── handleReadyMessage.test.ts │ │ │ │ │ ├── handleReadyMessage.ts │ │ │ │ │ ├── handleTerminateMessage.test.ts │ │ │ │ │ ├── handleTerminateMessage.ts │ │ │ │ │ ├── handleWalletInfoMessage.test.ts │ │ │ │ │ ├── handleWalletInfoMessage.ts │ │ │ │ │ ├── handleWalletInitMessage.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── onCommunicationLayerMessage.test.ts │ │ │ │ │ ├── onCommunicationLayerMessage.ts │ │ │ │ │ ├── sendMessage.test.ts │ │ │ │ │ └── sendMessage.ts │ │ │ │ ├── StateManger │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── setLastActiveDate.test.ts │ │ │ │ │ └── setLastActiveDate.ts │ │ │ │ └── StorageManager │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── testStorage.test.ts │ │ │ │ │ └── testStorage.ts │ │ │ └── SocketService │ │ │ │ ├── ChannelManager │ │ │ │ ├── checkSameId.test.ts │ │ │ │ ├── checkSameId.ts │ │ │ │ ├── createChannel.test.ts │ │ │ │ ├── createChannel.ts │ │ │ │ ├── index.ts │ │ │ │ ├── setupChannelListeners.test.ts │ │ │ │ └── setupChannelListeners.ts │ │ │ │ ├── ConnectionManager │ │ │ │ ├── connectToChannel.test.ts │ │ │ │ ├── connectToChannel.ts │ │ │ │ ├── disconnect.test.ts │ │ │ │ ├── disconnect.ts │ │ │ │ ├── handleJoinChannelResult.ts │ │ │ │ ├── index.ts │ │ │ │ ├── pause.test.ts │ │ │ │ ├── pause.ts │ │ │ │ ├── ping.test.ts │ │ │ │ ├── ping.ts │ │ │ │ ├── reconnectSocket.test.ts │ │ │ │ ├── reconnectSocket.ts │ │ │ │ ├── resume.test.ts │ │ │ │ ├── resume.ts │ │ │ │ ├── setupSocketFocusListener.test.ts │ │ │ │ └── setupSocketFocusListener.ts │ │ │ │ ├── EventListeners │ │ │ │ ├── handleChannelConfig.test.ts │ │ │ │ ├── handleChannelConfig.ts │ │ │ │ ├── handleChannelCreated.test.ts │ │ │ │ ├── handleChannelCreated.ts │ │ │ │ ├── handleChannelRejected.test.ts │ │ │ │ ├── handleChannelRejected.ts │ │ │ │ ├── handleClientsConnected.test.ts │ │ │ │ ├── handleClientsConnected.ts │ │ │ │ ├── handleClientsWaitingToJoin.test.ts │ │ │ │ ├── handleClientsWaitingToJoin.ts │ │ │ │ ├── handleDisconnect.test.ts │ │ │ │ ├── handleDisconnect.ts │ │ │ │ ├── handleKeyInfo.test.ts │ │ │ │ ├── handleKeyInfo.ts │ │ │ │ ├── handleKeysExchanged.test.ts │ │ │ │ ├── handleKeysExchanged.ts │ │ │ │ ├── handleMessage.test.ts │ │ │ │ ├── handleMessage.ts │ │ │ │ ├── handlePing.test.ts │ │ │ │ ├── handlePing.ts │ │ │ │ ├── handleReconnect.test.ts │ │ │ │ ├── handleReconnect.ts │ │ │ │ ├── handleReconnectError.test.ts │ │ │ │ ├── handleReconnectError.ts │ │ │ │ ├── handleReconnectFailed.test.ts │ │ │ │ ├── handleReconnectFailed.ts │ │ │ │ ├── handleSocketError.test.ts │ │ │ │ ├── handleSocketError.ts │ │ │ │ ├── handlesClientsDisconnected.test.ts │ │ │ │ ├── handlesClientsDisconnected.ts │ │ │ │ └── index.ts │ │ │ │ ├── KeysManager │ │ │ │ ├── handleKeyHandshake.test.ts │ │ │ │ ├── handleKeyHandshake.ts │ │ │ │ ├── index.ts │ │ │ │ ├── keyCheck.test.ts │ │ │ │ ├── keyCheck.ts │ │ │ │ ├── resetKeys.test.ts │ │ │ │ ├── resetKeys.ts │ │ │ │ ├── validateKeyExchange.test.ts │ │ │ │ └── validateKeyExchange.ts │ │ │ │ └── MessageHandlers │ │ │ │ ├── encryptAndSendMessage.test.ts │ │ │ │ ├── encryptAndSendMessage.ts │ │ │ │ ├── handleRpcReplies.test.ts │ │ │ │ ├── handleRpcReplies.ts │ │ │ │ ├── handleSendMessage.test.ts │ │ │ │ ├── handleSendMessage.ts │ │ │ │ ├── index.ts │ │ │ │ ├── trackRpcMethod.test.ts │ │ │ │ └── trackRpcMethod.ts │ │ ├── types │ │ │ ├── AutoConnectOptions.ts │ │ │ ├── AutoConnectType.ts │ │ │ ├── Channel.ts │ │ │ ├── ChannelConfig.ts │ │ │ ├── CommunicationLayerMessage.ts │ │ │ ├── CommunicationLayerPreference.ts │ │ │ ├── ConnectToChannelOptions.ts │ │ │ ├── ConnectionStatus.ts │ │ │ ├── DappMetadata.ts │ │ │ ├── DisconnectOptions.ts │ │ │ ├── EventType.ts │ │ │ ├── InternalEventType.ts │ │ │ ├── KeyExchangeMessageType.ts │ │ │ ├── KeyInfo.ts │ │ │ ├── LoggingOptions.ts │ │ │ ├── MessageType.ts │ │ │ ├── OriginatorInfo.ts │ │ │ ├── PlatformType.ts │ │ │ ├── RemoteMessage.ts │ │ │ ├── ServiceStatus.ts │ │ │ ├── StorageManager.ts │ │ │ ├── TrackingEvent.ts │ │ │ └── WalletInfo.ts │ │ └── utils │ │ │ ├── logger.ts │ │ │ ├── packageInfo.util.ts │ │ │ ├── wait.test.ts │ │ │ └── wait.ts │ ├── tsconfig.build.json │ ├── tsconfig.eslint.json │ ├── tsconfig.json │ └── tsconfig.test.json ├── sdk-install-modal-web │ ├── .change │ ├── .eslintrc.js │ ├── .gitignore │ ├── .prettierrc.js │ ├── .size-limit.json │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── jest-preload.js │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── components.d.ts │ │ ├── components │ │ │ ├── misc │ │ │ │ ├── AdvantagesListItem.tsx │ │ │ │ ├── CloseButton.tsx │ │ │ │ ├── ConnectIcon.tsx │ │ │ │ ├── HeartIcon.tsx │ │ │ │ ├── Icon.tsx │ │ │ │ ├── InstallIcon.tsx │ │ │ │ ├── LockIcon.tsx │ │ │ │ ├── Logo.tsx │ │ │ │ ├── MetamaskExtensionImage.tsx │ │ │ │ ├── SDKVersion.tsx │ │ │ │ ├── WalletIcon.tsx │ │ │ │ ├── simple-i18n.ts │ │ │ │ └── tracking-events.ts │ │ │ ├── mm-install-modal │ │ │ │ └── mm-install-modal.tsx │ │ │ ├── mm-pending-modal │ │ │ │ └── mm-pending-modal.tsx │ │ │ ├── mm-select-modal │ │ │ │ └── mm-select-modal.tsx │ │ │ ├── style.css │ │ │ └── widget-wrapper │ │ │ │ ├── resetStyles.css │ │ │ │ └── widget-wrapper.tsx │ │ ├── index.html │ │ └── index.ts │ ├── stencil.config.ts │ └── tsconfig.json ├── sdk-react-native │ ├── .change │ ├── .eslintrc.js │ ├── .gitignore │ ├── .prettierrc.js │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── android │ │ ├── README.md │ │ ├── build.gradle │ │ ├── gradle.properties │ │ └── src │ │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── AndroidManifestNew.xml │ │ │ └── java │ │ │ └── io │ │ │ └── metamask │ │ │ └── reactnativesdk │ │ │ ├── MetaMaskReactNativeSdkModule.kt │ │ │ └── MetaMaskReactNativeSdkPackage.kt │ ├── ios │ │ ├── EthereumRequestObjC.h │ │ ├── EthereumRequestObjC.m │ │ ├── MetaMaskReactNativeSdk-Bridging-Header.h │ │ ├── MetaMaskReactNativeSdk.swift │ │ ├── MetaMaskReactSdkInterface.m │ │ ├── Options.h │ │ └── Options.m │ ├── metamask-sdk-react-native.podspec │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── MetaMaskHooks.ts │ │ ├── MetaMaskProvider.tsx │ │ ├── NativePackageMethods.ts │ │ ├── SDKConfigProvider.tsx │ │ └── index.ts │ └── tsconfig.json ├── sdk-react-ui │ ├── .change │ ├── .eslintrc.js │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── postcss.config.js │ ├── rollup.config.js │ ├── src │ │ ├── MetaMaskButton │ │ │ ├── Balance.tsx │ │ │ ├── IconNetwork.tsx │ │ │ ├── IconOriginal.tsx │ │ │ ├── IconSimplified.tsx │ │ │ ├── IconWrongNetwork.tsx │ │ │ ├── MetaMaskButton.tsx │ │ │ ├── MetaMaskModal.tsx │ │ │ ├── constants.tsx │ │ │ └── utils.ts │ │ ├── MetaMaskUIProvider.tsx │ │ ├── MetaMaskWagmiConnector.ts │ │ ├── hooks │ │ │ ├── MetaMaskWagmiHooks.ts │ │ │ └── useBalance.ts │ │ ├── index.ts │ │ └── style.css │ ├── tailwind.config.js │ └── tsconfig.json ├── sdk-react │ ├── .change │ ├── .eslintrc.js │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── babel.config.js │ ├── jest-preload.js │ ├── jest.config.ts │ ├── jest.resolver.js │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── EventsHandlers │ │ │ ├── useHandleAccountsChangedEvent.test.tsx │ │ │ ├── useHandleAccountsChangedEvent.ts │ │ │ ├── useHandleChainChangedEvent.test.tsx │ │ │ ├── useHandleChainChangedEvent.ts │ │ │ ├── useHandleConnectEvent.test.tsx │ │ │ ├── useHandleConnectEvent.ts │ │ │ ├── useHandleDisconnectEvent.test.tsx │ │ │ ├── useHandleDisconnectEvent.ts │ │ │ ├── useHandleInitializedEvent.test.tsx │ │ │ ├── useHandleInitializedEvent.ts │ │ │ ├── useHandleOnConnectingEvent.test.tsx │ │ │ ├── useHandleOnConnectingEvent.ts │ │ │ ├── useHandleProviderEvent.test.tsx │ │ │ ├── useHandleProviderEvent.ts │ │ │ ├── useHandleSDKStatusEvent.test.tsx │ │ │ ├── useHandleSDKStatusEvent.ts │ │ │ ├── useHandleTerminateEvent.test.tsx │ │ │ └── useHandleTerminateEvent.ts │ │ ├── MetaMaskHooks.spec.tsx │ │ ├── MetaMaskHooks.ts │ │ ├── MetaMaskProvider.spec.tsx │ │ ├── MetaMaskProvider.tsx │ │ ├── SDKConfigProvider.test.tsx │ │ ├── SDKConfigProvider.tsx │ │ ├── index.ts │ │ └── utils │ │ │ └── logger.ts │ ├── tsconfig.json │ └── tsconfig.test.json ├── sdk-socket-server-next │ ├── .env.sample │ ├── .eslintrc.js │ ├── .prettierrc.js │ ├── Dockerfile │ ├── LICENSE │ ├── README.md │ ├── docker-compose-cluster.yml │ ├── docker-compose.yml │ ├── e2e │ │ ├── analytics-node.ts │ │ └── api-config.test.ts │ ├── init-redis-cluster.sh │ ├── nginx.conf │ ├── nodemon.json │ ├── package.json │ ├── src │ │ ├── analytics-api.ts │ │ ├── config.ts │ │ ├── index.ts │ │ ├── logger.ts │ │ ├── metrics.ts │ │ ├── middleware-metrics.ts │ │ ├── protocol │ │ │ ├── handleAck.ts │ │ │ ├── handleChannelRejected.ts │ │ │ ├── handleCheckRoom.ts │ │ │ ├── handleJoinChannel.ts │ │ │ ├── handleMessage.ts │ │ │ ├── handlePing.ts │ │ │ └── retrieveMessages.ts │ │ ├── rate-limiter.ts │ │ ├── redis-check.ts │ │ ├── socket-config.ts │ │ └── utils.ts │ ├── tsconfig.eslint.json │ ├── tsconfig.json │ └── tsconfig.test.json ├── sdk-ui │ ├── .change │ ├── .eslintrc.js │ ├── .gitignore │ ├── .prettierrc.js │ ├── .storybook │ │ ├── main.ts │ │ ├── preview-head.html │ │ └── preview.tsx │ ├── CHANGELOG.md │ ├── README.md │ ├── assets │ │ └── images │ │ │ ├── ApplePayLogo-dark.png │ │ │ ├── ApplePayLogo-dark@2x.png │ │ │ ├── ApplePayLogo-dark@3x.png │ │ │ ├── ApplePayLogo-light.png │ │ │ ├── ApplePayLogo-light@2x.png │ │ │ ├── ApplePayLogo-light@3x.png │ │ │ ├── ApplePayMark-dark.png │ │ │ ├── ApplePayMark-dark@2x.png │ │ │ ├── ApplePayMark-dark@3x.png │ │ │ ├── ApplePayMark-light.png │ │ │ ├── ApplePayMark-light@2x.png │ │ │ ├── ApplePayMark-light@3x.png │ │ │ ├── ApplePayMark.png │ │ │ ├── ApplePayMark@2x.png │ │ │ ├── ApplePayMark@3x.png │ │ │ ├── MoonPayLogo-dark.png │ │ │ ├── MoonPayLogo-dark@2x.png │ │ │ ├── MoonPayLogo-dark@3x.png │ │ │ ├── MoonPayLogo-light.png │ │ │ ├── MoonPayLogo-light@2x.png │ │ │ ├── MoonPayLogo-light@3x.png │ │ │ ├── TransakLogo.png │ │ │ ├── TransakLogo@2x.png │ │ │ ├── TransakLogo@3x.png │ │ │ ├── WyreLogo-dark.png │ │ │ ├── WyreLogo-dark@2x.png │ │ │ ├── WyreLogo-dark@3x.png │ │ │ ├── WyreLogo-light.png │ │ │ ├── WyreLogo-light@2x.png │ │ │ ├── WyreLogo-light@3x.png │ │ │ ├── android-face-recognition.png │ │ │ ├── android-iris.png │ │ │ ├── arbitrum.png │ │ │ ├── astronaut.png │ │ │ ├── avalanche.png │ │ │ ├── bg.png │ │ │ ├── binance.png │ │ │ ├── bnb-logo.png │ │ │ ├── collectibles-icon.png │ │ │ ├── connect-qr-hardware.png │ │ │ ├── drawer-bg.png │ │ │ ├── eth-logo-new.png │ │ │ ├── eth-logo.png │ │ │ ├── ethereum.png │ │ │ ├── explain-backup-seedphrase.png │ │ │ ├── fantom.png │ │ │ ├── fox-badge.png │ │ │ ├── fox.png │ │ │ ├── frame.png │ │ │ ├── gas-education-carousel-1.png │ │ │ ├── gas-education-carousel-2.png │ │ │ ├── gas-education-carousel-3.png │ │ │ ├── goerli-logo-dark.png │ │ │ ├── harmony.png │ │ │ ├── image-icons.ts │ │ │ ├── ios-face-id.png │ │ │ ├── linea-mainnet-logo.png │ │ │ ├── linea-testnet-logo.png │ │ │ ├── lock.png │ │ │ ├── matic.png │ │ │ ├── metamask-error.png │ │ │ ├── metamask-name.png │ │ │ ├── no-nfts-placeholder.png │ │ │ ├── onboarding-carousel-1.png │ │ │ ├── onboarding-carousel-2.png │ │ │ ├── onboarding-carousel-3.png │ │ │ ├── opensea-logo-flat-colored-blue.png │ │ │ ├── optimism.png │ │ │ ├── package.json │ │ │ ├── palm.png │ │ │ ├── piggybank.png │ │ │ ├── reveal-srp.png │ │ │ ├── selected-wallet-icon.png │ │ │ ├── sepolia-logo-dark.png │ │ │ ├── sliderbutton-bg.png │ │ │ ├── sliderbutton-shine.png │ │ │ ├── slippage-slider-bg.png │ │ │ ├── static-logos.js │ │ │ ├── swaps_aggs-dark.png │ │ │ ├── swaps_aggs-dark@2x.png │ │ │ ├── swaps_aggs-dark@3x.png │ │ │ ├── swaps_aggs-light.png │ │ │ ├── swaps_aggs-light@2x.png │ │ │ ├── swaps_aggs-light@3x.png │ │ │ ├── swaps_onboard_device.png │ │ │ ├── swaps_onboard_device@2x.png │ │ │ ├── swaps_onboard_device@3x.png │ │ │ ├── sync-icon.png │ │ │ ├── sync-icon@2x.png │ │ │ ├── sync-icon@3x.png │ │ │ ├── transaction-icons │ │ │ ├── approve-failed.png │ │ │ ├── approve.png │ │ │ ├── interaction-failed.png │ │ │ ├── interaction.png │ │ │ ├── receive-failed.png │ │ │ ├── receive-inverted.png │ │ │ ├── receive.png │ │ │ ├── send-failed.png │ │ │ ├── send.png │ │ │ ├── swap-failed.png │ │ │ └── swap.png │ │ │ ├── tx-history-icon.png │ │ │ ├── wallet-icon.png │ │ │ ├── welcome-bg1.png │ │ │ ├── welcome-bg1@2x.png │ │ │ ├── welcome-bg1@3x.png │ │ │ ├── welcome-bg2.png │ │ │ ├── welcome-bg2@2x.png │ │ │ ├── welcome-bg2@3x.png │ │ │ ├── welcome-bg3.png │ │ │ ├── welcome-bg3@2x.png │ │ │ ├── welcome-bg3@3x.png │ │ │ ├── welcome-bg4.png │ │ │ ├── welcome-bg4@2x.png │ │ │ ├── welcome-bg4@3x.png │ │ │ ├── whats-new-security.png │ │ │ ├── whats-new-token-detection.png │ │ │ ├── whats-new-token-detection@2x.png │ │ │ ├── whats-new-token-detection@3x.png │ │ │ ├── whats-new-token-security.png │ │ │ ├── whats-new-token-security@2x.png │ │ │ ├── whats-new-token-security@3x.png │ │ │ └── whats_new_blockaid.png │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── components │ │ │ ├── address-copy-button │ │ │ │ └── address-copy-button.tsx │ │ │ ├── balance-conversion-text │ │ │ │ └── balance-conversion-text.tsx │ │ │ ├── fab-group-fix │ │ │ │ ├── FabGroupFix.tsx │ │ │ │ └── fab-utils.ts │ │ │ ├── floating-metamask-button │ │ │ │ ├── floating-metamask-button.stories.tsx │ │ │ │ └── floating-metamask-button.tsx │ │ │ ├── gasprice-panel │ │ │ │ ├── gasprice-panel.stories.tsx │ │ │ │ └── gasprice-panel.tsx │ │ │ ├── icons │ │ │ │ ├── IconOriginal.tsx │ │ │ │ ├── IconWrongNetwork.tsx │ │ │ │ ├── IconsSimplified.tsx │ │ │ │ ├── icons-preview.tsx │ │ │ │ └── icons.stories.tsx │ │ │ ├── item-view │ │ │ │ ├── item-view.stories.tsx │ │ │ │ └── item-view.tsx │ │ │ ├── language-picker │ │ │ │ ├── language-picker.stories.tsx │ │ │ │ └── language-picker.tsx │ │ │ ├── metamask-button │ │ │ │ ├── account-balance │ │ │ │ │ └── account-balance.tsx │ │ │ │ ├── connect-button │ │ │ │ │ └── connect-button.tsx │ │ │ │ ├── connected-button │ │ │ │ │ └── connected-button.tsx │ │ │ │ ├── metamask-button.stories.tsx │ │ │ │ └── metamask-button.tsx │ │ │ ├── metamask-modal │ │ │ │ └── metamask-modal.tsx │ │ │ ├── network-selector │ │ │ │ ├── NetworkSelector.styles.ts │ │ │ │ ├── network-selector.stories.tsx │ │ │ │ └── network-selector.tsx │ │ │ ├── rpc-chain-viewer │ │ │ │ └── rpc-chain-viewer.tsx │ │ │ ├── rpc-history-viewer │ │ │ │ ├── history-item │ │ │ │ │ ├── history-item.stories.tsx │ │ │ │ │ └── history-item.tsx │ │ │ │ ├── rpc-history-viewer.stories.tsx │ │ │ │ └── rpc-history-viewer.tsx │ │ │ ├── sdk-config-card │ │ │ │ ├── sdk-config-card.stories.tsx │ │ │ │ └── sdk-config-card.tsx │ │ │ ├── sdk-config │ │ │ │ ├── sdk-config.stories.tsx │ │ │ │ └── sdk-config.tsx │ │ │ ├── sdk-debug-panel │ │ │ │ ├── sdk-debug-panel.stories.tsx │ │ │ │ └── sdk-debug-panel.tsx │ │ │ ├── sdk-status │ │ │ │ ├── sdk-status.stories.tsx │ │ │ │ └── sdk-status.tsx │ │ │ ├── sdk-summary │ │ │ │ ├── sdk-summary.stories.tsx │ │ │ │ └── sdk-summary.tsx │ │ │ └── swap-panel │ │ │ │ ├── swap-panel.stories.tsx │ │ │ │ └── swap-panel.tsx │ │ ├── constants │ │ │ ├── animation.constants.ts │ │ │ ├── networks.constants.ts │ │ │ ├── storybook.constants.ts │ │ │ ├── test-ids.ts │ │ │ └── urls.ts │ │ ├── context │ │ │ ├── language-provider.tsx │ │ │ ├── preferences-provider.tsx │ │ │ └── ui-provider.tsx │ │ ├── design-system │ │ │ ├── assets │ │ │ │ └── index.ts │ │ │ ├── components │ │ │ │ ├── Avatars │ │ │ │ │ ├── Avatar │ │ │ │ │ │ ├── Avatar.tsx │ │ │ │ │ │ ├── Avatar.types.ts │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── foundation │ │ │ │ │ │ │ └── AvatarBase │ │ │ │ │ │ │ │ ├── AvatarBase.constants.ts │ │ │ │ │ │ │ │ ├── AvatarBase.styles.ts │ │ │ │ │ │ │ │ ├── AvatarBase.test.tsx │ │ │ │ │ │ │ │ ├── AvatarBase.tsx │ │ │ │ │ │ │ │ ├── AvatarBase.types.ts │ │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── variants │ │ │ │ │ │ │ ├── AvatarAccount │ │ │ │ │ │ │ ├── AvatarAccount.constants.ts │ │ │ │ │ │ │ ├── AvatarAccount.stories.tsx │ │ │ │ │ │ │ ├── AvatarAccount.styles.ts │ │ │ │ │ │ │ ├── AvatarAccount.test.tsx │ │ │ │ │ │ │ ├── AvatarAccount.tsx │ │ │ │ │ │ │ ├── AvatarAccount.types.ts │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── AvatarFavicon │ │ │ │ │ │ │ ├── AvatarFavicon.constants.ts │ │ │ │ │ │ │ ├── AvatarFavicon.stories.tsx │ │ │ │ │ │ │ ├── AvatarFavicon.styles.ts │ │ │ │ │ │ │ ├── AvatarFavicon.test.tsx │ │ │ │ │ │ │ ├── AvatarFavicon.tsx │ │ │ │ │ │ │ ├── AvatarFavicon.types.ts │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── AvatarIcon │ │ │ │ │ │ │ ├── AvatarIcon.constants.ts │ │ │ │ │ │ │ ├── AvatarIcon.stories.tsx │ │ │ │ │ │ │ ├── AvatarIcon.styles.ts │ │ │ │ │ │ │ ├── AvatarIcon.test.tsx │ │ │ │ │ │ │ ├── AvatarIcon.tsx │ │ │ │ │ │ │ ├── AvatarIcon.types.ts │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ │ └── AvatarIcon.test.tsx.snap │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── AvatarNetwork │ │ │ │ │ │ │ ├── AvatarNetwork.constants.ts │ │ │ │ │ │ │ ├── AvatarNetwork.stories.tsx │ │ │ │ │ │ │ ├── AvatarNetwork.styles.ts │ │ │ │ │ │ │ ├── AvatarNetwork.test.tsx │ │ │ │ │ │ │ ├── AvatarNetwork.tsx │ │ │ │ │ │ │ ├── AvatarNetwork.types.ts │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ │ └── AvatarNetwork.test.tsx.snap │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ └── AvatarToken │ │ │ │ │ │ │ ├── AvatarToken.constants.ts │ │ │ │ │ │ │ ├── AvatarToken.stories.tsx │ │ │ │ │ │ │ ├── AvatarToken.styles.ts │ │ │ │ │ │ │ ├── AvatarToken.test.tsx │ │ │ │ │ │ │ ├── AvatarToken.tsx │ │ │ │ │ │ │ ├── AvatarToken.types.ts │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ └── AvatarToken.test.tsx.snap │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── AvatarGroup │ │ │ │ │ │ ├── AvatarGroup.constants.ts │ │ │ │ │ │ ├── AvatarGroup.stories.tsx │ │ │ │ │ │ ├── AvatarGroup.styles.ts │ │ │ │ │ │ ├── AvatarGroup.test.tsx │ │ │ │ │ │ ├── AvatarGroup.tsx │ │ │ │ │ │ ├── AvatarGroup.types.ts │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ └── AvatarGroup.test.tsx.snap │ │ │ │ │ │ └── index.ts │ │ │ │ ├── Badges │ │ │ │ │ ├── Badge │ │ │ │ │ │ ├── Badge.constants.ts │ │ │ │ │ │ ├── Badge.stories.tsx │ │ │ │ │ │ ├── Badge.test.tsx │ │ │ │ │ │ ├── Badge.tsx │ │ │ │ │ │ ├── Badge.types.ts │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ └── Badge.test.tsx.snap │ │ │ │ │ │ ├── foundation │ │ │ │ │ │ │ └── BadgeBase │ │ │ │ │ │ │ │ ├── BadgeBase.constants.ts │ │ │ │ │ │ │ │ ├── BadgeBase.styles.ts │ │ │ │ │ │ │ │ ├── BadgeBase.test.tsx │ │ │ │ │ │ │ │ ├── BadgeBase.tsx │ │ │ │ │ │ │ │ ├── BadgeBase.types.ts │ │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ │ └── BadgeBase.test.tsx.snap │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── variants │ │ │ │ │ │ │ ├── BadgeNetwork │ │ │ │ │ │ │ ├── BadgeNetwork.constants.ts │ │ │ │ │ │ │ ├── BadgeNetwork.styles.ts │ │ │ │ │ │ │ ├── BadgeNetwork.test.tsx │ │ │ │ │ │ │ ├── BadgeNetwork.tsx │ │ │ │ │ │ │ ├── BadgeNetwork.types.ts │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ │ └── BadgeNetwork.test.tsx.snap │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ └── BadgeStatus │ │ │ │ │ │ │ ├── BadgeStatus.constants.ts │ │ │ │ │ │ │ ├── BadgeStatus.styles.ts │ │ │ │ │ │ │ ├── BadgeStatus.test.tsx │ │ │ │ │ │ │ ├── BadgeStatus.tsx │ │ │ │ │ │ │ ├── BadgeStatus.types.ts │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ └── BadgeStatus.test.tsx.snap │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── BadgeWrapper │ │ │ │ │ │ ├── BadgeWrapper.constants.tsx │ │ │ │ │ │ ├── BadgeWrapper.stories.tsx │ │ │ │ │ │ ├── BadgeWrapper.styles.ts │ │ │ │ │ │ ├── BadgeWrapper.test.tsx │ │ │ │ │ │ ├── BadgeWrapper.tsx │ │ │ │ │ │ ├── BadgeWrapper.types.ts │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ └── BadgeWrapper.test.tsx.snap │ │ │ │ │ │ └── index.ts │ │ │ │ ├── Banners │ │ │ │ │ └── Banner │ │ │ │ │ │ ├── Banner.constants.ts │ │ │ │ │ │ ├── Banner.stories.tsx │ │ │ │ │ │ ├── Banner.test.tsx │ │ │ │ │ │ ├── Banner.tsx │ │ │ │ │ │ ├── Banner.types.ts │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ └── Banner.test.tsx.snap │ │ │ │ │ │ ├── foundation │ │ │ │ │ │ └── BannerBase │ │ │ │ │ │ │ ├── BannerBase.constants.tsx │ │ │ │ │ │ │ ├── BannerBase.styles.ts │ │ │ │ │ │ │ ├── BannerBase.tsx │ │ │ │ │ │ │ ├── BannerBase.types.ts │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── variants │ │ │ │ │ │ ├── BannerAlert │ │ │ │ │ │ ├── BannerAlert.constants.ts │ │ │ │ │ │ ├── BannerAlert.stories.tsx │ │ │ │ │ │ ├── BannerAlert.styles.ts │ │ │ │ │ │ ├── BannerAlert.test.tsx │ │ │ │ │ │ ├── BannerAlert.tsx │ │ │ │ │ │ ├── BannerAlert.types.ts │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ └── BannerAlert.test.tsx.snap │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ └── BannerTip │ │ │ │ │ │ ├── BannerTip.constants.ts │ │ │ │ │ │ ├── BannerTip.stories.tsx │ │ │ │ │ │ ├── BannerTip.styles.ts │ │ │ │ │ │ ├── BannerTip.test.tsx │ │ │ │ │ │ ├── BannerTip.tsx │ │ │ │ │ │ ├── BannerTip.types.ts │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ └── BannerTip.test.tsx.snap │ │ │ │ │ │ ├── assets │ │ │ │ │ │ ├── fox-chat.png │ │ │ │ │ │ └── fox-greeting.png │ │ │ │ │ │ └── index.ts │ │ │ │ ├── Buttons │ │ │ │ │ ├── Button │ │ │ │ │ │ ├── Button.constants.ts │ │ │ │ │ │ ├── Button.tsx │ │ │ │ │ │ ├── Button.types.ts │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── foundation │ │ │ │ │ │ │ └── ButtonBase │ │ │ │ │ │ │ │ ├── ButtonBase.constants.ts │ │ │ │ │ │ │ │ ├── ButtonBase.stories.tsx │ │ │ │ │ │ │ │ ├── ButtonBase.styles.ts │ │ │ │ │ │ │ │ ├── ButtonBase.test.tsx │ │ │ │ │ │ │ │ ├── ButtonBase.tsx │ │ │ │ │ │ │ │ ├── ButtonBase.types.ts │ │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── variants │ │ │ │ │ │ │ ├── ButtonLink │ │ │ │ │ │ │ ├── ButtonLink.constants.ts │ │ │ │ │ │ │ ├── ButtonLink.stories.tsx │ │ │ │ │ │ │ ├── ButtonLink.styles.ts │ │ │ │ │ │ │ ├── ButtonLink.test.tsx │ │ │ │ │ │ │ ├── ButtonLink.tsx │ │ │ │ │ │ │ ├── ButtonLink.types.ts │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── ButtonPrimary │ │ │ │ │ │ │ ├── ButtonPrimary.constants.ts │ │ │ │ │ │ │ ├── ButtonPrimary.stories.tsx │ │ │ │ │ │ │ ├── ButtonPrimary.styles.ts │ │ │ │ │ │ │ ├── ButtonPrimary.test.tsx │ │ │ │ │ │ │ ├── ButtonPrimary.tsx │ │ │ │ │ │ │ ├── ButtonPrimary.types.ts │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ └── ButtonSecondary │ │ │ │ │ │ │ ├── ButtonSecondary.constants.ts │ │ │ │ │ │ │ ├── ButtonSecondary.stories.tsx │ │ │ │ │ │ │ ├── ButtonSecondary.styles.ts │ │ │ │ │ │ │ ├── ButtonSecondary.test.tsx │ │ │ │ │ │ │ ├── ButtonSecondary.tsx │ │ │ │ │ │ │ ├── ButtonSecondary.types.ts │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── ButtonIcon │ │ │ │ │ │ ├── ButtonIcon.constants.ts │ │ │ │ │ │ ├── ButtonIcon.stories.tsx │ │ │ │ │ │ ├── ButtonIcon.styles.ts │ │ │ │ │ │ ├── ButtonIcon.test.tsx │ │ │ │ │ │ ├── ButtonIcon.tsx │ │ │ │ │ │ ├── ButtonIcon.types.ts │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ └── ButtonIcon.test.tsx.snap │ │ │ │ │ │ └── index.ts │ │ │ │ ├── Cards │ │ │ │ │ └── Card │ │ │ │ │ │ ├── Card.stories.tsx │ │ │ │ │ │ ├── Card.styles.ts │ │ │ │ │ │ ├── Card.test.tsx │ │ │ │ │ │ ├── Card.tsx │ │ │ │ │ │ ├── Card.types.ts │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ └── Card.test.tsx.snap │ │ │ │ │ │ └── index.ts │ │ │ │ ├── Cells │ │ │ │ │ └── Cell │ │ │ │ │ │ ├── Cell.constants.ts │ │ │ │ │ │ ├── Cell.stories.tsx │ │ │ │ │ │ ├── Cell.test.tsx │ │ │ │ │ │ ├── Cell.tsx │ │ │ │ │ │ ├── Cell.types.ts │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── foundation │ │ │ │ │ │ └── CellBase │ │ │ │ │ │ │ ├── CellBase.constants.ts │ │ │ │ │ │ │ ├── CellBase.styles.ts │ │ │ │ │ │ │ ├── CellBase.test.tsx │ │ │ │ │ │ │ ├── CellBase.tsx │ │ │ │ │ │ │ ├── CellBase.types.ts │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── variants │ │ │ │ │ │ ├── CellDisplay │ │ │ │ │ │ ├── CellDisplay.constants.ts │ │ │ │ │ │ ├── CellDisplay.stories.tsx │ │ │ │ │ │ ├── CellDisplay.styles.ts │ │ │ │ │ │ ├── CellDisplay.test.tsx │ │ │ │ │ │ ├── CellDisplay.tsx │ │ │ │ │ │ ├── CellDisplay.types.ts │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ └── CellDisplay.test.tsx.snap │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── CellMultiSelect │ │ │ │ │ │ ├── CellMultiSelect.constants.ts │ │ │ │ │ │ ├── CellMultiSelect.stories.tsx │ │ │ │ │ │ ├── CellMultiSelect.styles.ts │ │ │ │ │ │ ├── CellMultiSelect.test.tsx │ │ │ │ │ │ ├── CellMultiSelect.tsx │ │ │ │ │ │ ├── CellMultiSelect.types.ts │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ └── CellMultiSelect.test.tsx.snap │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ └── CellSelect │ │ │ │ │ │ ├── CellSelect.constants.ts │ │ │ │ │ │ ├── CellSelect.stories.tsx │ │ │ │ │ │ ├── CellSelect.styles.ts │ │ │ │ │ │ ├── CellSelect.test.tsx │ │ │ │ │ │ ├── CellSelect.tsx │ │ │ │ │ │ ├── CellSelect.types.ts │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ └── CellSelect.test.tsx.snap │ │ │ │ │ │ └── index.ts │ │ │ │ ├── Checkbox │ │ │ │ │ ├── Checkbox.constants.ts │ │ │ │ │ ├── Checkbox.stories.tsx │ │ │ │ │ ├── Checkbox.styles.ts │ │ │ │ │ ├── Checkbox.test.tsx │ │ │ │ │ ├── Checkbox.tsx │ │ │ │ │ ├── Checkbox.types.ts │ │ │ │ │ ├── README.md │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ └── Checkbox.test.tsx.snap │ │ │ │ │ └── index.ts │ │ │ │ ├── Form │ │ │ │ │ ├── HelpText │ │ │ │ │ │ ├── HelpText.constants.ts │ │ │ │ │ │ ├── HelpText.stories.tsx │ │ │ │ │ │ ├── HelpText.test.tsx │ │ │ │ │ │ ├── HelpText.tsx │ │ │ │ │ │ ├── HelpText.types.ts │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ └── HelpText.test.tsx.snap │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── Label │ │ │ │ │ │ ├── Label.constants.ts │ │ │ │ │ │ ├── Label.stories.tsx │ │ │ │ │ │ ├── Label.test.tsx │ │ │ │ │ │ ├── Label.tsx │ │ │ │ │ │ ├── Label.types.ts │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ └── Label.test.tsx.snap │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── TextField │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── TextField.constants.tsx │ │ │ │ │ │ ├── TextField.stories.tsx │ │ │ │ │ │ ├── TextField.styles.ts │ │ │ │ │ │ ├── TextField.test.tsx │ │ │ │ │ │ ├── TextField.tsx │ │ │ │ │ │ ├── TextField.types.ts │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ └── TextField.test.tsx.snap │ │ │ │ │ │ ├── foundation │ │ │ │ │ │ │ └── Input │ │ │ │ │ │ │ │ ├── Input.constants.ts │ │ │ │ │ │ │ │ ├── Input.stories.tsx │ │ │ │ │ │ │ │ ├── Input.styles.ts │ │ │ │ │ │ │ │ ├── Input.test.tsx │ │ │ │ │ │ │ │ ├── Input.tsx │ │ │ │ │ │ │ │ ├── Input.types.ts │ │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ │ └── Input.test.tsx.snap │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── TextFieldSearch │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── TextFieldSearch.constants.ts │ │ │ │ │ │ ├── TextFieldSearch.stories.tsx │ │ │ │ │ │ ├── TextFieldSearch.test.tsx │ │ │ │ │ │ ├── TextFieldSearch.tsx │ │ │ │ │ │ ├── TextFieldSearch.types.ts │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ └── TextFieldSearch.test.tsx.snap │ │ │ │ │ │ └── index.ts │ │ │ │ ├── HeaderBase │ │ │ │ │ ├── HeaderBase.constants.ts │ │ │ │ │ ├── HeaderBase.stories.tsx │ │ │ │ │ ├── HeaderBase.styles.ts │ │ │ │ │ ├── HeaderBase.test.tsx │ │ │ │ │ ├── HeaderBase.tsx │ │ │ │ │ ├── HeaderBase.types.ts │ │ │ │ │ ├── README.md │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ └── HeaderBase.test.tsx.snap │ │ │ │ │ └── index.ts │ │ │ │ ├── Icons │ │ │ │ │ └── Icon │ │ │ │ │ │ ├── Icon.assets.ts │ │ │ │ │ │ ├── Icon.constants.ts │ │ │ │ │ │ ├── Icon.stories.tsx │ │ │ │ │ │ ├── Icon.styles.ts │ │ │ │ │ │ ├── Icon.test.tsx │ │ │ │ │ │ ├── Icon.tsx │ │ │ │ │ │ ├── Icon.types.ts │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ └── Icon.test.tsx.snap │ │ │ │ │ │ ├── assets │ │ │ │ │ │ ├── activity.svg │ │ │ │ │ │ ├── add-square.svg │ │ │ │ │ │ ├── add.svg │ │ │ │ │ │ ├── arrow-2-down.svg │ │ │ │ │ │ ├── arrow-2-left.svg │ │ │ │ │ │ ├── arrow-2-right.svg │ │ │ │ │ │ ├── arrow-2-up.svg │ │ │ │ │ │ ├── arrow-2-upright.svg │ │ │ │ │ │ ├── arrow-double-left.svg │ │ │ │ │ │ ├── arrow-double-right.svg │ │ │ │ │ │ ├── arrow-down.svg │ │ │ │ │ │ ├── arrow-left.svg │ │ │ │ │ │ ├── arrow-right.svg │ │ │ │ │ │ ├── arrow-up.svg │ │ │ │ │ │ ├── ban.svg │ │ │ │ │ │ ├── bank-token.svg │ │ │ │ │ │ ├── bank.svg │ │ │ │ │ │ ├── bold.svg │ │ │ │ │ │ ├── book.svg │ │ │ │ │ │ ├── bookmark.svg │ │ │ │ │ │ ├── bridge.svg │ │ │ │ │ │ ├── calculator.svg │ │ │ │ │ │ ├── card-pos.svg │ │ │ │ │ │ ├── card-token.svg │ │ │ │ │ │ ├── card.svg │ │ │ │ │ │ ├── category.svg │ │ │ │ │ │ ├── chart-2.svg │ │ │ │ │ │ ├── chart.svg │ │ │ │ │ │ ├── check-bold.svg │ │ │ │ │ │ ├── check-box-off.svg │ │ │ │ │ │ ├── check-box-on.svg │ │ │ │ │ │ ├── check-circle-off.svg │ │ │ │ │ │ ├── check.svg │ │ │ │ │ │ ├── circle-x.svg │ │ │ │ │ │ ├── clock.svg │ │ │ │ │ │ ├── close.svg │ │ │ │ │ │ ├── code-circle.svg │ │ │ │ │ │ ├── coin.svg │ │ │ │ │ │ ├── confirmation.svg │ │ │ │ │ │ ├── connect.svg │ │ │ │ │ │ ├── copy-success.svg │ │ │ │ │ │ ├── copy.svg │ │ │ │ │ │ ├── customize.svg │ │ │ │ │ │ ├── danger.svg │ │ │ │ │ │ ├── dark.svg │ │ │ │ │ │ ├── data.svg │ │ │ │ │ │ ├── diagram.svg │ │ │ │ │ │ ├── document-code.svg │ │ │ │ │ │ ├── download.svg │ │ │ │ │ │ ├── edit.svg │ │ │ │ │ │ ├── eraser.svg │ │ │ │ │ │ ├── ethereum.svg │ │ │ │ │ │ ├── expand.svg │ │ │ │ │ │ ├── explore.svg │ │ │ │ │ │ ├── export.svg │ │ │ │ │ │ ├── eye-slash.svg │ │ │ │ │ │ ├── eye.svg │ │ │ │ │ │ ├── file.svg │ │ │ │ │ │ ├── filter.svg │ │ │ │ │ │ ├── flag.svg │ │ │ │ │ │ ├── flash-slash.svg │ │ │ │ │ │ ├── flash.svg │ │ │ │ │ │ ├── flask.svg │ │ │ │ │ │ ├── fox.svg │ │ │ │ │ │ ├── full-circle.svg │ │ │ │ │ │ ├── gas.svg │ │ │ │ │ │ ├── global-search.svg │ │ │ │ │ │ ├── global.svg │ │ │ │ │ │ ├── graph.svg │ │ │ │ │ │ ├── hardware.svg │ │ │ │ │ │ ├── heart.svg │ │ │ │ │ │ ├── hierarchy.svg │ │ │ │ │ │ ├── home.svg │ │ │ │ │ │ ├── import.svg │ │ │ │ │ │ ├── info.svg │ │ │ │ │ │ ├── key.svg │ │ │ │ │ │ ├── light.svg │ │ │ │ │ │ ├── link-2.svg │ │ │ │ │ │ ├── link.svg │ │ │ │ │ │ ├── loading.svg │ │ │ │ │ │ ├── lock-circle.svg │ │ │ │ │ │ ├── lock-slash.svg │ │ │ │ │ │ ├── lock.svg │ │ │ │ │ │ ├── login.svg │ │ │ │ │ │ ├── logout.svg │ │ │ │ │ │ ├── menu.svg │ │ │ │ │ │ ├── message-question.svg │ │ │ │ │ │ ├── messages.svg │ │ │ │ │ │ ├── minus-bold.svg │ │ │ │ │ │ ├── minus-square.svg │ │ │ │ │ │ ├── minus.svg │ │ │ │ │ │ ├── mobile.svg │ │ │ │ │ │ ├── money.svg │ │ │ │ │ │ ├── monitor.svg │ │ │ │ │ │ ├── more-horizontal.svg │ │ │ │ │ │ ├── more-vertical.svg │ │ │ │ │ │ ├── notification-circle.svg │ │ │ │ │ │ ├── notification.svg │ │ │ │ │ │ ├── password-check.svg │ │ │ │ │ │ ├── people.svg │ │ │ │ │ │ ├── plug.svg │ │ │ │ │ │ ├── programming-arrows.svg │ │ │ │ │ │ ├── qr-code.svg │ │ │ │ │ │ ├── question.svg │ │ │ │ │ │ ├── received.svg │ │ │ │ │ │ ├── refresh.svg │ │ │ │ │ │ ├── save.svg │ │ │ │ │ │ ├── scan-barcode.svg │ │ │ │ │ │ ├── scan-focus.svg │ │ │ │ │ │ ├── scan.svg │ │ │ │ │ │ ├── scroll.svg │ │ │ │ │ │ ├── search.svg │ │ │ │ │ │ ├── security-card.svg │ │ │ │ │ │ ├── security-cross.svg │ │ │ │ │ │ ├── security-key.svg │ │ │ │ │ │ ├── security-search.svg │ │ │ │ │ │ ├── security-slash.svg │ │ │ │ │ │ ├── security-tick.svg │ │ │ │ │ │ ├── security-time.svg │ │ │ │ │ │ ├── security-user.svg │ │ │ │ │ │ ├── security.svg │ │ │ │ │ │ ├── send-1.svg │ │ │ │ │ │ ├── send-2.svg │ │ │ │ │ │ ├── setting.svg │ │ │ │ │ │ ├── share.svg │ │ │ │ │ │ ├── slash.svg │ │ │ │ │ │ ├── snaps-mobile.svg │ │ │ │ │ │ ├── snaps-plus.svg │ │ │ │ │ │ ├── snaps.svg │ │ │ │ │ │ ├── speedometer.svg │ │ │ │ │ │ ├── square.svg │ │ │ │ │ │ ├── star.svg │ │ │ │ │ │ ├── student.svg │ │ │ │ │ │ ├── swap-horizontal.svg │ │ │ │ │ │ ├── swap-vertival.svg │ │ │ │ │ │ ├── tag.svg │ │ │ │ │ │ ├── tilde.svg │ │ │ │ │ │ ├── timer.svg │ │ │ │ │ │ ├── trash.svg │ │ │ │ │ │ ├── trend-down.svg │ │ │ │ │ │ ├── trend-up.svg │ │ │ │ │ │ ├── twitter.svg │ │ │ │ │ │ ├── upload.svg │ │ │ │ │ │ ├── usb.svg │ │ │ │ │ │ ├── user-add.svg │ │ │ │ │ │ ├── user-check.svg │ │ │ │ │ │ ├── user-circle-add.svg │ │ │ │ │ │ ├── user-circle.svg │ │ │ │ │ │ ├── user-minus.svg │ │ │ │ │ │ ├── user-remove.svg │ │ │ │ │ │ ├── user-search.svg │ │ │ │ │ │ ├── user-tick.svg │ │ │ │ │ │ ├── user.svg │ │ │ │ │ │ ├── wallet-card.svg │ │ │ │ │ │ ├── wallet-money.svg │ │ │ │ │ │ ├── wallet.svg │ │ │ │ │ │ ├── warning.svg │ │ │ │ │ │ └── wifi.svg │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── scripts │ │ │ │ │ │ └── generate-assets.js │ │ │ │ ├── List │ │ │ │ │ ├── ListItem │ │ │ │ │ │ ├── ListItem.constants.ts │ │ │ │ │ │ ├── ListItem.stories.tsx │ │ │ │ │ │ ├── ListItem.styles.ts │ │ │ │ │ │ ├── ListItem.test.tsx │ │ │ │ │ │ ├── ListItem.tsx │ │ │ │ │ │ ├── ListItem.types.ts │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ └── ListItem.test.tsx.snap │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── ListItemColumn │ │ │ │ │ │ ├── ListItemColumn.constants.ts │ │ │ │ │ │ ├── ListItemColumn.styles.ts │ │ │ │ │ │ ├── ListItemColumn.test.tsx │ │ │ │ │ │ ├── ListItemColumn.tsx │ │ │ │ │ │ ├── ListItemColumn.types.ts │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ └── ListItemColumn.test.tsx.snap │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── ListItemMultiSelect │ │ │ │ │ │ ├── ListItemMultiSelect.constants.ts │ │ │ │ │ │ ├── ListItemMultiSelect.stories.tsx │ │ │ │ │ │ ├── ListItemMultiSelect.styles.ts │ │ │ │ │ │ ├── ListItemMultiSelect.test.tsx │ │ │ │ │ │ ├── ListItemMultiSelect.tsx │ │ │ │ │ │ ├── ListItemMultiSelect.types.ts │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ └── ListItemMultiSelect.test.tsx.snap │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── ListItemSelect │ │ │ │ │ │ ├── ListItemSelect.constants.ts │ │ │ │ │ │ ├── ListItemSelect.stories.tsx │ │ │ │ │ │ ├── ListItemSelect.styles.ts │ │ │ │ │ │ ├── ListItemSelect.test.tsx │ │ │ │ │ │ ├── ListItemSelect.tsx │ │ │ │ │ │ ├── ListItemSelect.types.ts │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ └── ListItemSelect.test.tsx.snap │ │ │ │ │ │ └── index.ts │ │ │ │ ├── NextImage │ │ │ │ │ └── NextImage.tsx │ │ │ │ ├── Overlay │ │ │ │ │ ├── Overlay.constants.ts │ │ │ │ │ ├── Overlay.stories.tsx │ │ │ │ │ ├── Overlay.styles.ts │ │ │ │ │ ├── Overlay.tsx │ │ │ │ │ ├── Overlay.types.ts │ │ │ │ │ ├── README.md │ │ │ │ │ └── index.ts │ │ │ │ ├── Pickers │ │ │ │ │ ├── PickerAccount │ │ │ │ │ │ ├── PickerAccount.constants.ts │ │ │ │ │ │ ├── PickerAccount.stories.tsx │ │ │ │ │ │ ├── PickerAccount.styles.ts │ │ │ │ │ │ ├── PickerAccount.test.tsx │ │ │ │ │ │ ├── PickerAccount.tsx │ │ │ │ │ │ ├── PickerAccount.types.ts │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ └── PickerAccount.test.tsx.snap │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── PickerBase │ │ │ │ │ │ ├── PickerBase.styles.ts │ │ │ │ │ │ ├── PickerBase.test.tsx │ │ │ │ │ │ ├── PickerBase.tsx │ │ │ │ │ │ ├── PickerBase.types.ts │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ └── PickerBase.test.tsx.snap │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── PickerNetwork │ │ │ │ │ │ ├── PickerNetwork.constants.ts │ │ │ │ │ │ ├── PickerNetwork.stories.tsx │ │ │ │ │ │ ├── PickerNetwork.styles.ts │ │ │ │ │ │ ├── PickerNetwork.test.tsx │ │ │ │ │ │ ├── PickerNetwork.tsx │ │ │ │ │ │ ├── PickerNetwork.types.ts │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ └── PickerNetwork.test.tsx.snap │ │ │ │ │ │ └── index.ts │ │ │ │ ├── Tags │ │ │ │ │ ├── Tag │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── Tag.stories.tsx │ │ │ │ │ │ ├── Tag.styles.ts │ │ │ │ │ │ ├── Tag.test.tsx │ │ │ │ │ │ ├── Tag.tsx │ │ │ │ │ │ ├── Tag.types.ts │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ └── Tag.test.tsx.snap │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── TagUrl │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── TagUrl.constants.ts │ │ │ │ │ │ ├── TagUrl.stories.tsx │ │ │ │ │ │ ├── TagUrl.styles.ts │ │ │ │ │ │ ├── TagUrl.test.tsx │ │ │ │ │ │ ├── TagUrl.tsx │ │ │ │ │ │ ├── TagUrl.types.ts │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ └── TagUrl.test.tsx.snap │ │ │ │ │ │ └── index.ts │ │ │ │ ├── Texts │ │ │ │ │ ├── Text │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── Text.constants.ts │ │ │ │ │ │ ├── Text.stories.tsx │ │ │ │ │ │ ├── Text.styles.ts │ │ │ │ │ │ ├── Text.test.tsx │ │ │ │ │ │ ├── Text.tsx │ │ │ │ │ │ ├── Text.types.ts │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ └── Text.test.tsx.snap │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── TextWithPrefixIcon │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── TextWithPrefixIcon.constants.ts │ │ │ │ │ │ ├── TextWithPrefixIcon.stories.tsx │ │ │ │ │ │ ├── TextWithPrefixIcon.styles.ts │ │ │ │ │ │ ├── TextWithPrefixIcon.test.tsx │ │ │ │ │ │ ├── TextWithPrefixIcon.tsx │ │ │ │ │ │ ├── TextWithPrefixIcon.types.ts │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ └── TextWithPrefixIcon.test.tsx.snap │ │ │ │ │ │ └── index.ts │ │ │ │ └── Toast │ │ │ │ │ ├── README.md │ │ │ │ │ ├── Toast.constants.ts │ │ │ │ │ ├── Toast.context.tsx │ │ │ │ │ ├── Toast.stories.tsx │ │ │ │ │ ├── Toast.styles.ts │ │ │ │ │ ├── Toast.tsx │ │ │ │ │ ├── Toast.types.ts │ │ │ │ │ └── index.ts │ │ │ ├── constants │ │ │ │ ├── animation.constants.ts │ │ │ │ └── storybook.constants.ts │ │ │ ├── hooks │ │ │ │ ├── index.ts │ │ │ │ ├── useComponentSize.ts │ │ │ │ └── useStyles.ts │ │ │ └── index.ts │ │ ├── hooks │ │ │ ├── use-app-preferences-setup.tsx │ │ │ ├── use-app-theme-setup.tsx │ │ │ └── use-screen-width.tsx │ │ ├── index.ts │ │ ├── mocks │ │ │ └── storybook.mocks.tsx │ │ ├── screens │ │ │ └── preview │ │ │ │ ├── preview.stories.tsx │ │ │ │ └── preview.tsx │ │ ├── styles │ │ │ └── common.ts │ │ ├── theme │ │ │ ├── index.ts │ │ │ └── models.ts │ │ ├── types │ │ │ └── declarations.d.ts │ │ └── utils │ │ │ ├── address │ │ │ ├── index.test.ts │ │ │ └── index.ts │ │ │ ├── blockies.js.backup │ │ │ ├── blockies.ts │ │ │ ├── device.ts │ │ │ ├── generateTestId.ts │ │ │ ├── networks.ts │ │ │ └── regex │ │ │ ├── index.ts │ │ │ └── index.types.ts │ └── tsconfig.json └── sdk │ ├── .change │ ├── .eslintrc.js │ ├── .prettierrc.js │ ├── .size-limit.json │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── TESTING.md │ ├── bundle-size.js │ ├── e2e │ ├── metamask-simulator-e2e.test.ts │ ├── sdk-e2e.test.ts │ └── utils │ │ └── sleep.ts │ ├── jest-preload.js │ ├── jest.config.ts │ ├── package.json │ ├── rollup.config.js │ ├── src │ ├── Platform │ │ ├── MetaMaskInstaller.test.ts │ │ ├── MetaMaskInstaller.ts │ │ ├── PlatfformManager.test.ts │ │ └── PlatfformManager.ts │ ├── PortStream │ │ ├── MobilePortStream.test.ts │ │ ├── MobilePortStream.ts │ │ ├── getPortStream.test.ts │ │ └── getPortStream.ts │ ├── PostMessageStream │ │ ├── PostMessageStream.ts │ │ ├── RemoteCommunicationPostMessageStream.test.ts │ │ ├── RemoteCommunicationPostMessageStream.ts │ │ ├── getPostMessageStream.test.ts │ │ └── getPostMessageStream.ts │ ├── config.ts │ ├── constants.ts │ ├── index.ts │ ├── provider │ │ ├── SDKProvider.test.ts │ │ ├── SDKProvider.ts │ │ ├── extensionConnectWithOverwrite.test.ts │ │ ├── extensionConnectWithOverwrite.ts │ │ ├── extensionProviderHelpers │ │ │ ├── analyticsHelper.test.ts │ │ │ ├── analyticsHelper.ts │ │ │ ├── handleBatchMethod.test.ts │ │ │ ├── handleBatchMethod.ts │ │ │ ├── handleConnectSignMethod.test.ts │ │ │ ├── handleConnectSignMethod.ts │ │ │ ├── handleConnectWithMethod.test.ts │ │ │ ├── handleConnectWithMethod.ts │ │ │ ├── handleUuid.test.ts │ │ │ └── handleUuid.ts │ │ ├── initializeMobileProvider.ts │ │ ├── wrapExtensionProvider.test.ts │ │ └── wrapExtensionProvider.ts │ ├── sdk.test.ts │ ├── sdk.ts │ ├── services │ │ ├── Analytics.test.ts │ │ ├── Analytics.ts │ │ ├── Ethereum.test.ts │ │ ├── Ethereum.ts │ │ ├── MetaMaskInstaller │ │ │ ├── checkInstallation.test.ts │ │ │ ├── checkInstallation.ts │ │ │ ├── redirectToProperInstall.test.ts │ │ │ ├── redirectToProperInstall.ts │ │ │ ├── startDesktopOnboarding.test.ts │ │ │ ├── startDesktopOnboarding.ts │ │ │ ├── startInstaller.test.ts │ │ │ └── startInstaller.ts │ │ ├── MetaMaskSDK │ │ │ ├── ConnectionManager │ │ │ │ ├── connect.test.ts │ │ │ │ ├── connect.ts │ │ │ │ ├── connectAndSign.test.ts │ │ │ │ ├── connectAndSign.ts │ │ │ │ ├── connectWith.test.ts │ │ │ │ ├── connectWith.ts │ │ │ │ ├── index.ts │ │ │ │ ├── resume.test.ts │ │ │ │ ├── resume.ts │ │ │ │ ├── terminate.test.ts │ │ │ │ └── terminate.ts │ │ │ ├── InitializerManager │ │ │ │ ├── handleAutoAndExtensionConnections.test.ts │ │ │ │ ├── handleAutoAndExtensionConnections.ts │ │ │ │ ├── index.ts │ │ │ │ ├── initEventListeners.test.ts │ │ │ │ ├── initEventListeners.ts │ │ │ │ ├── initializeMetaMaskSDK.test.ts │ │ │ │ ├── initializeMetaMaskSDK.ts │ │ │ │ ├── initializeProviderAndEventListeners.test.ts │ │ │ │ ├── initializeProviderAndEventListeners.ts │ │ │ │ ├── performSDKInitialization.test.ts │ │ │ │ ├── performSDKInitialization.ts │ │ │ │ ├── setupAnalytics.test.ts │ │ │ │ ├── setupAnalytics.ts │ │ │ │ ├── setupAnalyticsV2.test.ts │ │ │ │ ├── setupAnalyticsV2.ts │ │ │ │ ├── setupDappMetadata.test.ts │ │ │ │ ├── setupDappMetadata.ts │ │ │ │ ├── setupExtensionPreferences.test.ts │ │ │ │ ├── setupExtensionPreferences.ts │ │ │ │ ├── setupInfuraProvider.test.ts │ │ │ │ ├── setupInfuraProvider.ts │ │ │ │ ├── setupPlatformManager.test.ts │ │ │ │ ├── setupPlatformManager.ts │ │ │ │ ├── setupReadOnlyRPCProviders.ts │ │ │ │ ├── setupRemoteConnectionAndInstaller.test.ts │ │ │ │ ├── setupRemoteConnectionAndInstaller.ts │ │ │ │ ├── setupStorage.test.ts │ │ │ │ └── setupStorage.ts │ │ │ └── ProviderManager │ │ │ │ ├── connectWithExtensionProvider.test.ts │ │ │ │ ├── connectWithExtensionProvider.ts │ │ │ │ └── index.ts │ │ ├── MobilePortStream │ │ │ ├── onMessage.test.ts │ │ │ ├── onMessage.ts │ │ │ ├── write.test.ts │ │ │ └── write.ts │ │ ├── PlatfformManager │ │ │ ├── getPlatformType.test.ts │ │ │ ├── getPlatformType.ts │ │ │ ├── isMetaMaskInstalled.test.ts │ │ │ ├── isMetaMaskInstalled.ts │ │ │ ├── openDeeplink.test.ts │ │ │ └── openDeeplink.ts │ │ ├── RemoteCommunicationPostMessageStream │ │ │ ├── extractMethod.test.ts │ │ │ ├── extractMethod.ts │ │ │ ├── onMessage.test.ts │ │ │ ├── onMessage.ts │ │ │ ├── write.test.ts │ │ │ └── write.ts │ │ ├── RemoteConnection │ │ │ ├── ConnectionInitializer │ │ │ │ ├── cleanupConnector.ts │ │ │ │ ├── index.ts │ │ │ │ ├── initializeConnector.test.ts │ │ │ │ └── initializeConnector.ts │ │ │ ├── ConnectionManager │ │ │ │ ├── connectWithDeeplink.test.ts │ │ │ │ ├── connectWithDeeplink.ts │ │ │ │ ├── connectWithModalInstaller.test.ts │ │ │ │ ├── connectWithModalInstaller.ts │ │ │ │ ├── handleDisconnect.test.ts │ │ │ │ ├── handleDisconnect.ts │ │ │ │ ├── index.ts │ │ │ │ ├── startConnection.test.ts │ │ │ │ └── startConnection.ts │ │ │ ├── EventListeners │ │ │ │ ├── cleanupListeners.ts │ │ │ │ ├── index.ts │ │ │ │ ├── setupListeners.test.ts │ │ │ │ └── setupListeners.ts │ │ │ ├── ModalManager │ │ │ │ ├── index.ts │ │ │ │ ├── onOTPModalDisconnect.test.ts │ │ │ │ ├── onOTPModalDisconnect.ts │ │ │ │ ├── showActiveModal.test.ts │ │ │ │ ├── showActiveModal.ts │ │ │ │ ├── showInstallModal.test.ts │ │ │ │ ├── showInstallModal.ts │ │ │ │ ├── waitForOTPAnswer.test.ts │ │ │ │ └── waitForOTPAnswer.ts │ │ │ ├── RemoteConnection.test.ts │ │ │ ├── RemoteConnection.ts │ │ │ └── index.ts │ │ ├── SDKProvider │ │ │ ├── ChainManager │ │ │ │ ├── handleChainChanged.test.ts │ │ │ │ ├── handleChainChanged.ts │ │ │ │ └── index.ts │ │ │ ├── ConnectionManager │ │ │ │ ├── handleDisconnect.test.ts │ │ │ │ ├── handleDisconnect.ts │ │ │ │ └── index.ts │ │ │ └── InitializationManager │ │ │ │ ├── index.ts │ │ │ │ ├── initializeState.test.ts │ │ │ │ ├── initializeState.ts │ │ │ │ ├── initializeStateAsync.test.ts │ │ │ │ └── initializeStateAsync.ts │ │ └── rpc-requests │ │ │ ├── RPCRequestHandler.test.ts │ │ │ └── RPCRequestHandler.ts │ ├── storage-manager │ │ ├── StorageManagerAS.test.ts │ │ ├── StorageManagerAS.ts │ │ ├── StorageManagerNode.test.ts │ │ ├── StorageManagerNode.ts │ │ ├── StorageManagerWeb.test.ts │ │ ├── StorageManagerWeb.ts │ │ └── getStorageManager.ts │ ├── types │ │ ├── MetaMaskSDKEvents.ts │ │ ├── ProviderUpdateType.ts │ │ ├── SDKLoggingOptions.ts │ │ ├── SDKUIOptions.ts │ │ └── globals.d.ts │ ├── ui │ │ └── InstallModal │ │ │ ├── InstallModal-nodejs.test.ts │ │ │ ├── InstallModal-nodejs.ts │ │ │ ├── InstallModal-nonweb.test.ts │ │ │ ├── InstallModal-nonweb.ts │ │ │ ├── InstallModal-web.ts │ │ │ ├── Modal-web.ts │ │ │ ├── installModal.ts │ │ │ ├── pendingModal-nodejs.test.ts │ │ │ ├── pendingModal-nodejs.ts │ │ │ ├── pendingModal-web.ts │ │ │ └── pendingModal.ts │ └── utils │ │ ├── base64.test.ts │ │ ├── base64.ts │ │ ├── blockedDomainCheck.test.ts │ │ ├── blockedDomainCheck.ts │ │ ├── doctypeCheck.test.ts │ │ ├── doctypeCheck.ts │ │ ├── documentElementCheck.test.ts │ │ ├── documentElementCheck.ts │ │ ├── eip6963RequestProvider.test.ts │ │ ├── eip6963RequestProvider.ts │ │ ├── extractFavicon.test.ts │ │ ├── extractFavicon.ts │ │ ├── get-browser-extension.test.ts │ │ ├── get-browser-extension.ts │ │ ├── getBase64FromUrl.ts │ │ ├── hex.utils.test.ts │ │ ├── hex.utils.ts │ │ ├── isOldIOS.test.ts │ │ ├── isOldIOS.ts │ │ ├── logger.ts │ │ ├── shouldForceInjectProvider.test.ts │ │ ├── shouldForceInjectProvider.ts │ │ ├── shouldInjectProvider.test.ts │ │ ├── shouldInjectProvider.ts │ │ ├── suffixCheck.test.ts │ │ ├── suffixCheck.ts │ │ ├── wait.test.ts │ │ └── wait.ts │ ├── tsconfig.build.json │ ├── tsconfig.eslint.json │ ├── tsconfig.json │ └── tsconfig.test.json ├── pictures └── SDK_Session_Diagram.jpg ├── platforms.json ├── release.config.json ├── scripts ├── alignversions.sh ├── build-static-dapps.sh ├── child-workspace-package-names-as-json.ts ├── deploy-cdn.sh ├── deploy-static.sh ├── generate-preview-build-message.ts ├── i18n-locales-auto-translate.ts ├── link-packages.sh ├── prepack.sh ├── prepare-preview-builds.jq ├── prepare-preview-builds.sh ├── prepare-preview-manifest.sh ├── publish-all.sh ├── publish-package.sh ├── sdk-comm-layer-mobile-overwrite.sh ├── update-examples-dapps.sh └── validate-changelog.sh ├── sonar-project.properties ├── templates ├── index.html └── version_info_placeholder.html ├── tsconfig.base.json ├── turbo.json └── yarn.lock /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = space 5 | indent_size = 2 6 | end_of_line = lf 7 | charset = utf-8 8 | trim_trailing_whitespace = true 9 | insert_final_newline = true 10 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 2 | # Reviewing the lockfile contents is an important step in verifying that 3 | # we're using the dependencies we expect to be using 4 | yarn.lock linguist-generated=false 5 | 6 | 7 | # yarn v3 8 | # See: https://yarnpkg.com/getting-started/qa#which-files-should-be-gitignored 9 | /.yarn/releases/** binary 10 | /.yarn/plugins/** binary 11 | -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | # Lines starting with '#' are comments. 2 | # Each line is a file pattern followed by one or more owners. 3 | 4 | * @MetaMask/sdk-devs -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: Documentation 4 | url: https://docs.metamask.io/sdk 5 | about: Check the official documentation for help using the SDK 6 | -------------------------------------------------------------------------------- /.husky/commit-msg: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | . "$(dirname -- "$0")/_/husky.sh" 3 | 4 | npx --no-install commitlint --edit "$1" 5 | -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | . "$(dirname -- "$0")/_/husky.sh" 3 | 4 | npx --no-install lint-staged 5 | -------------------------------------------------------------------------------- /.husky/prepare-commit-msg: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | . "$(dirname -- "$0")/_/husky.sh" 3 | 4 | # Call your personal global hook if it exists 5 | if [ -x "$HOME/.config/git/hooks/prepare-commit-msg" ]; then 6 | "$HOME/.config/git/hooks/prepare-commit-msg" "$1" "$2" "$3" 7 | fi 8 | -------------------------------------------------------------------------------- /.nojekyll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/.nojekyll -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | v18 2 | -------------------------------------------------------------------------------- /.prettierrc.js: -------------------------------------------------------------------------------- 1 | // All of these are defaults except singleQuote, but we specify them 2 | // for explicitness 3 | module.exports = { 4 | quoteProps: 'as-needed', 5 | singleQuote: true, 6 | tabWidth: 2, 7 | trailingComma: 'all', 8 | }; 9 | -------------------------------------------------------------------------------- /commitlint.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | extends: ['@commitlint/config-conventional'], 3 | rules: { 4 | 'body-max-line-length': [0, 'always', 100], 5 | }, 6 | }; 7 | -------------------------------------------------------------------------------- /deployments/dapps/sdk-playground/.env.sample: -------------------------------------------------------------------------------- 1 | REACT_APP_COMM_SERVER_URL=https://metamask-sdk-socket.metafi.codefi.network/ 2 | -------------------------------------------------------------------------------- /deployments/dapps/sdk-playground/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /deployments/dapps/sdk-playground/.prettierrc.js: -------------------------------------------------------------------------------- 1 | // All of these are defaults except singleQuote, but we specify them 2 | // for explicitness 3 | module.exports = { 4 | quoteProps: 'as-needed', 5 | singleQuote: true, 6 | tabWidth: 2, 7 | trailingComma: 'all', 8 | }; 9 | -------------------------------------------------------------------------------- /deployments/dapps/sdk-playground/README.md: -------------------------------------------------------------------------------- 1 | # Demo Dapp Dev 2 | 3 | This image is kept to be deployed with different versions of the sdk to automate the debug process. 4 | 5 | -------------------------------------------------------------------------------- /deployments/dapps/sdk-playground/public/Fonts/AntDesign.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/deployments/dapps/sdk-playground/public/Fonts/AntDesign.ttf -------------------------------------------------------------------------------- /deployments/dapps/sdk-playground/public/Fonts/Entypo.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/deployments/dapps/sdk-playground/public/Fonts/Entypo.ttf -------------------------------------------------------------------------------- /deployments/dapps/sdk-playground/public/Fonts/EvilIcons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/deployments/dapps/sdk-playground/public/Fonts/EvilIcons.ttf -------------------------------------------------------------------------------- /deployments/dapps/sdk-playground/public/Fonts/Feather.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/deployments/dapps/sdk-playground/public/Fonts/Feather.ttf -------------------------------------------------------------------------------- /deployments/dapps/sdk-playground/public/Fonts/FontAwesome.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/deployments/dapps/sdk-playground/public/Fonts/FontAwesome.ttf -------------------------------------------------------------------------------- /deployments/dapps/sdk-playground/public/Fonts/FontAwesome5_Brands.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/deployments/dapps/sdk-playground/public/Fonts/FontAwesome5_Brands.ttf -------------------------------------------------------------------------------- /deployments/dapps/sdk-playground/public/Fonts/FontAwesome5_Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/deployments/dapps/sdk-playground/public/Fonts/FontAwesome5_Regular.ttf -------------------------------------------------------------------------------- /deployments/dapps/sdk-playground/public/Fonts/FontAwesome5_Solid.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/deployments/dapps/sdk-playground/public/Fonts/FontAwesome5_Solid.ttf -------------------------------------------------------------------------------- /deployments/dapps/sdk-playground/public/Fonts/FontAwesome6_Brands.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/deployments/dapps/sdk-playground/public/Fonts/FontAwesome6_Brands.ttf -------------------------------------------------------------------------------- /deployments/dapps/sdk-playground/public/Fonts/FontAwesome6_Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/deployments/dapps/sdk-playground/public/Fonts/FontAwesome6_Regular.ttf -------------------------------------------------------------------------------- /deployments/dapps/sdk-playground/public/Fonts/FontAwesome6_Solid.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/deployments/dapps/sdk-playground/public/Fonts/FontAwesome6_Solid.ttf -------------------------------------------------------------------------------- /deployments/dapps/sdk-playground/public/Fonts/Fontisto.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/deployments/dapps/sdk-playground/public/Fonts/Fontisto.ttf -------------------------------------------------------------------------------- /deployments/dapps/sdk-playground/public/Fonts/Foundation.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/deployments/dapps/sdk-playground/public/Fonts/Foundation.ttf -------------------------------------------------------------------------------- /deployments/dapps/sdk-playground/public/Fonts/Ionicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/deployments/dapps/sdk-playground/public/Fonts/Ionicons.ttf -------------------------------------------------------------------------------- /deployments/dapps/sdk-playground/public/Fonts/MaterialCommunityIcons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/deployments/dapps/sdk-playground/public/Fonts/MaterialCommunityIcons.ttf -------------------------------------------------------------------------------- /deployments/dapps/sdk-playground/public/Fonts/MaterialIcons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/deployments/dapps/sdk-playground/public/Fonts/MaterialIcons.ttf -------------------------------------------------------------------------------- /deployments/dapps/sdk-playground/public/Fonts/Octicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/deployments/dapps/sdk-playground/public/Fonts/Octicons.ttf -------------------------------------------------------------------------------- /deployments/dapps/sdk-playground/public/Fonts/SimpleLineIcons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/deployments/dapps/sdk-playground/public/Fonts/SimpleLineIcons.ttf -------------------------------------------------------------------------------- /deployments/dapps/sdk-playground/public/Fonts/Zocial.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/deployments/dapps/sdk-playground/public/Fonts/Zocial.ttf -------------------------------------------------------------------------------- /deployments/dapps/sdk-playground/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/deployments/dapps/sdk-playground/public/favicon.ico -------------------------------------------------------------------------------- /deployments/dapps/sdk-playground/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/deployments/dapps/sdk-playground/public/logo192.png -------------------------------------------------------------------------------- /deployments/dapps/sdk-playground/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/deployments/dapps/sdk-playground/public/logo512.png -------------------------------------------------------------------------------- /deployments/dapps/sdk-playground/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /deployments/dapps/sdk-playground/src/App.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/deployments/dapps/sdk-playground/src/App.css -------------------------------------------------------------------------------- /deployments/dapps/sdk-playground/src/setupTests.js: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /docs/connection_flow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/docs/connection_flow.png -------------------------------------------------------------------------------- /docs/demo_electron.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/docs/demo_electron.gif -------------------------------------------------------------------------------- /docs/demo_nodejs.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/docs/demo_nodejs.gif -------------------------------------------------------------------------------- /docs/demo_rn_ios.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/docs/demo_rn_ios.gif -------------------------------------------------------------------------------- /docs/demo_web.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/docs/demo_web.gif -------------------------------------------------------------------------------- /docs/sdk_commlayer_flow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/docs/sdk_commlayer_flow.png -------------------------------------------------------------------------------- /docs/sdk_highlevel_architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/docs/sdk_highlevel_architecture.png -------------------------------------------------------------------------------- /e2e/.android.env.example: -------------------------------------------------------------------------------- 1 | BUNDLE_ID= 2 | DEVICE_NAME= 3 | PLATFORM_VERSION= 4 | APP_PATH= 5 | AUTOMATION_NAME=UiAutomator2 6 | -------------------------------------------------------------------------------- /e2e/.dapps.env.example: -------------------------------------------------------------------------------- 1 | METAMASK_TEST_DAPP_URL=http://192.111.111.111:3333 2 | -------------------------------------------------------------------------------- /e2e/.env.example: -------------------------------------------------------------------------------- 1 | SRP= 2 | BROWSERSTACK_USERNAME= 3 | BROWSERSTACK_ACCESS_KEY= 4 | BROWSERSTACK_API_USERNAME= 5 | BROWSERSTACK_API_PASSWORD= 6 | WALLET_PASSWORD= -------------------------------------------------------------------------------- /e2e/.gitignore: -------------------------------------------------------------------------------- 1 | allure-report 2 | allure-results 3 | .idea 4 | .vscode 5 | *.sample 6 | 7 | .android.env 8 | .ios.env 9 | .env 10 | .dapps.env 11 | 12 | browserstack.err 13 | local.log 14 | appium.log 15 | -------------------------------------------------------------------------------- /e2e/.ios.env.example: -------------------------------------------------------------------------------- 1 | BUNDLE_ID= 2 | DEVICE_NAME=iPhone 16 Pro 3 | PLATFORM_VERSION=18.2 4 | APP_PATH=METAMASK_APP_PATH 5 | AUTOMATION_NAME=XCUITest 6 | DEVICE_UDID= 7 | 8 | -------------------------------------------------------------------------------- /e2e/src/screens/interfaces/MobileBrowser.ts: -------------------------------------------------------------------------------- 1 | import { Dapp } from '@screens/interfaces/Dapp'; 2 | 3 | export type MobileBrowser = { 4 | goToAddress(address: string, pageObject: Dapp): Promise; 5 | refreshPage(): Promise; 6 | launchBrowser(): Promise; 7 | }; 8 | -------------------------------------------------------------------------------- /packages/contracts/.env.sample: -------------------------------------------------------------------------------- 1 | MNEMONIC="loan myself ankle lunch alone web frog school arrive ready piano love tower brass song" 2 | CUSTOM_NETWORK_URL="https://somenetwork.domain.com" 3 | -------------------------------------------------------------------------------- /packages/contracts/.gitattributes: -------------------------------------------------------------------------------- 1 | *.sol linguist-language=Solidity 2 | -------------------------------------------------------------------------------- /packages/contracts/.gitignore: -------------------------------------------------------------------------------- 1 | types/ 2 | build/ 3 | dist/ 4 | -------------------------------------------------------------------------------- /packages/contracts/contracts/Simple.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.8.6; 3 | 4 | contract Simple { 5 | string public text = "pong"; 6 | 7 | // calldata uses less gas than memory 8 | function set(string calldata _text) external { 9 | text = _text; 10 | } 11 | 12 | function ping() external view returns (string memory) { 13 | return text; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /packages/contracts/migrations/1_deploy.ts: -------------------------------------------------------------------------------- 1 | const Simple = artifacts.require('Simple') 2 | 3 | const migration: Truffle.Migration = function (deployer, network, accounts) { 4 | deployer.deploy(Simple) 5 | } 6 | 7 | module.exports = migration 8 | 9 | // because of https://stackoverflow.com/questions/40900791/cannot-redeclare-block-scoped-variable-in-unrelated-files 10 | export {} 11 | -------------------------------------------------------------------------------- /packages/contracts/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/contracts/src/index.ts -------------------------------------------------------------------------------- /packages/deve2e/.prettierrc.js: -------------------------------------------------------------------------------- 1 | // All of these are defaults except singleQuote, but we specify them 2 | // for explicitness 3 | module.exports = { 4 | quoteProps: 'as-needed', 5 | singleQuote: true, 6 | tabWidth: 2, 7 | trailingComma: 'all', 8 | }; 9 | -------------------------------------------------------------------------------- /packages/devnext/.env.sample: -------------------------------------------------------------------------------- 1 | NEXT_PUBLIC_COMM_SERVER_URL=http://192.168.50.114:4000/ 2 | NEXT_PUBLIC_SIMPLE_CONTRACT_ADDRESS='0x13A0A1998B968CFbb780500c83A74F0137193703' 3 | # Replace with your Ganache RPC URL if different 4 | NEXT_PUBLIC_PROVIDER_RPCURL='http://localhost:8545' 5 | # NEXT_PUBLIC_INFURA_API_KEY= 6 | -------------------------------------------------------------------------------- /packages/devnext/.prettierrc.js: -------------------------------------------------------------------------------- 1 | // All of these are defaults except singleQuote, but we specify them 2 | // for explicitness 3 | module.exports = { 4 | quoteProps: 'as-needed', 5 | singleQuote: true, 6 | tabWidth: 2, 7 | trailingComma: 'all', 8 | }; 9 | -------------------------------------------------------------------------------- /packages/devnext/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function (api) { 2 | api.cache(true); 3 | return { 4 | presets: ['next/babel', 'babel-preset-expo'], 5 | plugins: [ 6 | '@babel/plugin-proposal-export-namespace-from', 7 | 'react-native-reanimated/plugin', 8 | ["react-native-web", { commonjs: true }] 9 | ] 10 | }; 11 | }; 12 | -------------------------------------------------------------------------------- /packages/devnext/postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /packages/devnext/public/Fonts/AntDesign.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devnext/public/Fonts/AntDesign.ttf -------------------------------------------------------------------------------- /packages/devnext/public/Fonts/Entypo.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devnext/public/Fonts/Entypo.ttf -------------------------------------------------------------------------------- /packages/devnext/public/Fonts/EvilIcons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devnext/public/Fonts/EvilIcons.ttf -------------------------------------------------------------------------------- /packages/devnext/public/Fonts/Feather.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devnext/public/Fonts/Feather.ttf -------------------------------------------------------------------------------- /packages/devnext/public/Fonts/FontAwesome.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devnext/public/Fonts/FontAwesome.ttf -------------------------------------------------------------------------------- /packages/devnext/public/Fonts/FontAwesome5_Brands.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devnext/public/Fonts/FontAwesome5_Brands.ttf -------------------------------------------------------------------------------- /packages/devnext/public/Fonts/FontAwesome5_Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devnext/public/Fonts/FontAwesome5_Regular.ttf -------------------------------------------------------------------------------- /packages/devnext/public/Fonts/FontAwesome5_Solid.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devnext/public/Fonts/FontAwesome5_Solid.ttf -------------------------------------------------------------------------------- /packages/devnext/public/Fonts/FontAwesome6_Brands.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devnext/public/Fonts/FontAwesome6_Brands.ttf -------------------------------------------------------------------------------- /packages/devnext/public/Fonts/FontAwesome6_Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devnext/public/Fonts/FontAwesome6_Regular.ttf -------------------------------------------------------------------------------- /packages/devnext/public/Fonts/FontAwesome6_Solid.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devnext/public/Fonts/FontAwesome6_Solid.ttf -------------------------------------------------------------------------------- /packages/devnext/public/Fonts/Fontisto.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devnext/public/Fonts/Fontisto.ttf -------------------------------------------------------------------------------- /packages/devnext/public/Fonts/Foundation.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devnext/public/Fonts/Foundation.ttf -------------------------------------------------------------------------------- /packages/devnext/public/Fonts/Ionicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devnext/public/Fonts/Ionicons.ttf -------------------------------------------------------------------------------- /packages/devnext/public/Fonts/MaterialCommunityIcons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devnext/public/Fonts/MaterialCommunityIcons.ttf -------------------------------------------------------------------------------- /packages/devnext/public/Fonts/MaterialIcons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devnext/public/Fonts/MaterialIcons.ttf -------------------------------------------------------------------------------- /packages/devnext/public/Fonts/Octicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devnext/public/Fonts/Octicons.ttf -------------------------------------------------------------------------------- /packages/devnext/public/Fonts/SimpleLineIcons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devnext/public/Fonts/SimpleLineIcons.ttf -------------------------------------------------------------------------------- /packages/devnext/public/Fonts/Zocial.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devnext/public/Fonts/Zocial.ttf -------------------------------------------------------------------------------- /packages/devnext/public/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devnext/public/android-chrome-192x192.png -------------------------------------------------------------------------------- /packages/devnext/public/android-chrome-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devnext/public/android-chrome-512x512.png -------------------------------------------------------------------------------- /packages/devnext/public/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devnext/public/apple-touch-icon.png -------------------------------------------------------------------------------- /packages/devnext/public/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devnext/public/favicon-16x16.png -------------------------------------------------------------------------------- /packages/devnext/public/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devnext/public/favicon-32x32.png -------------------------------------------------------------------------------- /packages/devnext/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devnext/public/favicon.ico -------------------------------------------------------------------------------- /packages/devnext/public/site.webmanifest: -------------------------------------------------------------------------------- 1 | {"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} -------------------------------------------------------------------------------- /packages/devnext/src/pages/add.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/devnext/src/styles/Home.module.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devnext/src/styles/Home.module.css -------------------------------------------------------------------------------- /packages/devnext/src/styles/icons.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'FontAwesome'; 3 | src: url('/Fonts/FontAwesome.ttf') format('truetype'); 4 | } 5 | 6 | @font-face { 7 | font-family: 'MaterialIcons'; 8 | src: url('/Fonts/MaterialIcons.ttf') format('truetype'); 9 | } 10 | 11 | @font-face { 12 | font-family: 'MaterialCommunityIcons'; 13 | src: url('/Fonts/MaterialCommunityIcons.ttf') format('truetype'); 14 | } 15 | -------------------------------------------------------------------------------- /packages/devreact/.env.sample: -------------------------------------------------------------------------------- 1 | REACT_APP_COMM_SERVER_URL=https://metamask-sdk.api.cx.metamask.io/ 2 | REACT_APP_SIMPLE_CONTRACT_ADDRESS='0x13A0A1998B968CFbb780500c83A74F0137193703' 3 | # Replace with your Ganache RPC URL if different 4 | REACT_APP_PROVIDER_RPCURL='http://localhost:8545' 5 | -------------------------------------------------------------------------------- /packages/devreact/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /packages/devreact/.prettierrc.js: -------------------------------------------------------------------------------- 1 | // All of these are defaults except singleQuote, but we specify them 2 | // for explicitness 3 | module.exports = { 4 | quoteProps: 'as-needed', 5 | singleQuote: true, 6 | tabWidth: 2, 7 | trailingComma: 'all', 8 | }; 9 | -------------------------------------------------------------------------------- /packages/devreact/mocks/AssetRegistry.js: -------------------------------------------------------------------------------- 1 | // mocks/AssetRegistry.js 2 | module.exports = { 3 | // Mock the APIs or exports that are required by your project 4 | // This is a dummy example; adjust according to your needs 5 | getAssetByID: () => ({}) 6 | }; 7 | -------------------------------------------------------------------------------- /packages/devreact/public/Fonts/AntDesign.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devreact/public/Fonts/AntDesign.ttf -------------------------------------------------------------------------------- /packages/devreact/public/Fonts/Entypo.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devreact/public/Fonts/Entypo.ttf -------------------------------------------------------------------------------- /packages/devreact/public/Fonts/EvilIcons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devreact/public/Fonts/EvilIcons.ttf -------------------------------------------------------------------------------- /packages/devreact/public/Fonts/Feather.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devreact/public/Fonts/Feather.ttf -------------------------------------------------------------------------------- /packages/devreact/public/Fonts/FontAwesome.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devreact/public/Fonts/FontAwesome.ttf -------------------------------------------------------------------------------- /packages/devreact/public/Fonts/FontAwesome5_Brands.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devreact/public/Fonts/FontAwesome5_Brands.ttf -------------------------------------------------------------------------------- /packages/devreact/public/Fonts/FontAwesome5_Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devreact/public/Fonts/FontAwesome5_Regular.ttf -------------------------------------------------------------------------------- /packages/devreact/public/Fonts/FontAwesome5_Solid.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devreact/public/Fonts/FontAwesome5_Solid.ttf -------------------------------------------------------------------------------- /packages/devreact/public/Fonts/FontAwesome6_Brands.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devreact/public/Fonts/FontAwesome6_Brands.ttf -------------------------------------------------------------------------------- /packages/devreact/public/Fonts/FontAwesome6_Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devreact/public/Fonts/FontAwesome6_Regular.ttf -------------------------------------------------------------------------------- /packages/devreact/public/Fonts/FontAwesome6_Solid.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devreact/public/Fonts/FontAwesome6_Solid.ttf -------------------------------------------------------------------------------- /packages/devreact/public/Fonts/Fontisto.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devreact/public/Fonts/Fontisto.ttf -------------------------------------------------------------------------------- /packages/devreact/public/Fonts/Foundation.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devreact/public/Fonts/Foundation.ttf -------------------------------------------------------------------------------- /packages/devreact/public/Fonts/Ionicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devreact/public/Fonts/Ionicons.ttf -------------------------------------------------------------------------------- /packages/devreact/public/Fonts/MaterialCommunityIcons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devreact/public/Fonts/MaterialCommunityIcons.ttf -------------------------------------------------------------------------------- /packages/devreact/public/Fonts/MaterialIcons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devreact/public/Fonts/MaterialIcons.ttf -------------------------------------------------------------------------------- /packages/devreact/public/Fonts/Octicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devreact/public/Fonts/Octicons.ttf -------------------------------------------------------------------------------- /packages/devreact/public/Fonts/SimpleLineIcons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devreact/public/Fonts/SimpleLineIcons.ttf -------------------------------------------------------------------------------- /packages/devreact/public/Fonts/Zocial.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devreact/public/Fonts/Zocial.ttf -------------------------------------------------------------------------------- /packages/devreact/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devreact/public/favicon.ico -------------------------------------------------------------------------------- /packages/devreact/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devreact/public/logo192.png -------------------------------------------------------------------------------- /packages/devreact/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devreact/public/logo512.png -------------------------------------------------------------------------------- /packages/devreact/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /packages/devreact/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 4 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 5 | sans-serif; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | } 9 | 10 | code { 11 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', 12 | monospace; 13 | } 14 | -------------------------------------------------------------------------------- /packages/devreact/src/reportWebVitals.js: -------------------------------------------------------------------------------- 1 | const reportWebVitals = (onPerfEntry) => { 2 | if (onPerfEntry && onPerfEntry instanceof Function) { 3 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 4 | getCLS(onPerfEntry); 5 | getFID(onPerfEntry); 6 | getFCP(onPerfEntry); 7 | getLCP(onPerfEntry); 8 | getTTFB(onPerfEntry); 9 | }); 10 | } 11 | }; 12 | 13 | export default reportWebVitals; 14 | -------------------------------------------------------------------------------- /packages/devreact/src/setupTests.js: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /packages/devreact/types/svg.d.ts: -------------------------------------------------------------------------------- 1 | declare module '*.svg' { 2 | const content: any; 3 | export default content; 4 | } 5 | -------------------------------------------------------------------------------- /packages/devreactnative/.bundle/config: -------------------------------------------------------------------------------- 1 | BUNDLE_PATH: "vendor/bundle" 2 | BUNDLE_FORCE_RUBY_PLATFORM: 1 3 | -------------------------------------------------------------------------------- /packages/devreactnative/.env.sample: -------------------------------------------------------------------------------- 1 | COMM_SERVER_URL= 2 | INFURA_API_KEY= 3 | -------------------------------------------------------------------------------- /packages/devreactnative/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @type {import('eslint').Linter.Config} 3 | */ 4 | module.exports = { 5 | root: true, 6 | extends: '@react-native-community', 7 | ignorePatterns: ['metro.config.js', 'public', '.cache', 'node_modules','.eslintrc.js'], 8 | }; 9 | -------------------------------------------------------------------------------- /packages/devreactnative/.prettierrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | arrowParens: 'avoid', 3 | bracketSameLine: true, 4 | bracketSpacing: false, 5 | singleQuote: true, 6 | trailingComma: 'all', 7 | }; 8 | -------------------------------------------------------------------------------- /packages/devreactnative/.watchmanconfig: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /packages/devreactnative/Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | # You may use http://rbenv.org/ or https://rvm.io/ to install and use this version 4 | ruby ">= 2.6.10" 5 | 6 | gem 'cocoapods', '~> 1.12' 7 | -------------------------------------------------------------------------------- /packages/devreactnative/android/app/debug.keystore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devreactnative/android/app/debug.keystore -------------------------------------------------------------------------------- /packages/devreactnative/android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devreactnative/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /packages/devreactnative/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devreactnative/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /packages/devreactnative/android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devreactnative/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /packages/devreactnative/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devreactnative/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /packages/devreactnative/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devreactnative/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /packages/devreactnative/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devreactnative/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /packages/devreactnative/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devreactnative/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /packages/devreactnative/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devreactnative/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /packages/devreactnative/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devreactnative/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /packages/devreactnative/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devreactnative/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /packages/devreactnative/android/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | devreactnative 3 | 4 | -------------------------------------------------------------------------------- /packages/devreactnative/android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /packages/devreactnative/android/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/devreactnative/android/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /packages/devreactnative/android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.1-all.zip 4 | networkTimeout=10000 5 | zipStoreBase=GRADLE_USER_HOME 6 | zipStorePath=wrapper/dists 7 | -------------------------------------------------------------------------------- /packages/devreactnative/android/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'devreactnative' 2 | apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings) 3 | include ':app' 4 | includeBuild('../node_modules/@react-native/gradle-plugin') 5 | -------------------------------------------------------------------------------- /packages/devreactnative/app.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "devreactnative", 3 | "displayName": "devreactnative" 4 | } 5 | -------------------------------------------------------------------------------- /packages/devreactnative/fixios.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | reldir="$( dirname -- "$0"; )"; 4 | # force change to base workspace folder 5 | cd "$reldir"; 6 | 7 | sed -i '' '10i\ 8 | #include 9 | ' ios/Pods/Flipper/xplat/Flipper/FlipperTransportTypes.h 10 | -------------------------------------------------------------------------------- /packages/devreactnative/index.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable import/no-unassigned-import */ 2 | /** 3 | * @format 4 | */ 5 | import 'node-libs-react-native/globals'; 6 | import 'react-native-url-polyfill/auto'; 7 | 8 | import {AppRegistry} from 'react-native'; 9 | import {SafeApp} from './App'; 10 | import {name as appName} from './app.json'; 11 | 12 | AppRegistry.registerComponent(appName, () => SafeApp); 13 | -------------------------------------------------------------------------------- /packages/devreactnative/ios/devreactnative.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /packages/devreactnative/ios/devreactnative/AppDelegate.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | @interface AppDelegate : RCTAppDelegate 5 | 6 | @end 7 | -------------------------------------------------------------------------------- /packages/devreactnative/ios/devreactnative/Images.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/devreactnative/ios/devreactnative/main.m: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | #import "AppDelegate.h" 4 | 5 | int main(int argc, char *argv[]) 6 | { 7 | @autoreleasepool { 8 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/devreactnative/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | preset: 'react-native', 3 | }; 4 | -------------------------------------------------------------------------------- /packages/devreactnative/src/types/env.d.ts: -------------------------------------------------------------------------------- 1 | declare module '@env' { 2 | export const COMM_SERVER_URL: string; 3 | export const INFURA_API_KEY: string; 4 | export const PROVIDER_RPCURL: string; 5 | } 6 | -------------------------------------------------------------------------------- /packages/devreactnative/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@tsconfig/react-native/tsconfig.json", 3 | "compilerOptions": { 4 | "esModuleInterop": true, 5 | "paths": { 6 | "react": ["./node_modules/@types/react"] 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/examples/.tool-versions: -------------------------------------------------------------------------------- 1 | ruby 2.7.6 2 | -------------------------------------------------------------------------------- /packages/examples/electronjs/README.md: -------------------------------------------------------------------------------- 1 | # Electron SDK example 2 | 3 | Get started by running: 4 | 5 | ```bash 6 | yarn install 7 | ``` 8 | 9 | and 10 | 11 | ```bash 12 | yarn start 13 | ``` 14 | 15 | If the installation does not work inside this repository, run the following command after `yarn install`: 16 | 17 | ```bash 18 | node node_modules/electron/install.js 19 | ``` 20 | -------------------------------------------------------------------------------- /packages/examples/electronjs/src/preload.ts: -------------------------------------------------------------------------------- 1 | window.addEventListener('DOMContentLoaded', () => { 2 | const replaceText = (selector: string, text: string) => { 3 | const element = document.getElementById(selector) 4 | if (element) element.innerText = text 5 | } 6 | 7 | for (const type of ["chrome", "node", "electron"]) { 8 | replaceText(`${type}-version`, process.versions[type as keyof NodeJS.ProcessVersions]); 9 | } 10 | }) 11 | -------------------------------------------------------------------------------- /packages/examples/electronjs/src/renderer.ts: -------------------------------------------------------------------------------- 1 | // This file is required by the index.html file and will 2 | // be executed in the renderer process for that window. 3 | // No Node.js APIs are available in this process unless 4 | // nodeIntegration is set to true in webPreferences. 5 | // Use preload.js to selectively enable features 6 | // needed in the renderer process. 7 | -------------------------------------------------------------------------------- /packages/examples/nextjs-demo/.env.sample: -------------------------------------------------------------------------------- 1 | # comm server default to https://metamask-sdk-socket.metafi.codefi.network/ 2 | NEXT_PUBLIC_COMM_SERVER_URL=https://metamask-sdk.api.cx.metamask.io/ 3 | -------------------------------------------------------------------------------- /packages/examples/nextjs-demo/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "next/core-web-vitals" 3 | } 4 | -------------------------------------------------------------------------------- /packages/examples/nextjs-demo/README.md: -------------------------------------------------------------------------------- 1 | # Next.js SDK example 2 | 3 | Get started by running: 4 | 5 | ```bash 6 | yarn 7 | ``` 8 | 9 | and 10 | 11 | ```bash 12 | yarn dev 13 | ``` 14 | -------------------------------------------------------------------------------- /packages/examples/nextjs-demo/next.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('next').NextConfig} */ 2 | const nextConfig = {} 3 | 4 | module.exports = nextConfig 5 | -------------------------------------------------------------------------------- /packages/examples/nextjs-demo/src/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/examples/nextjs-demo/src/app/favicon.ico -------------------------------------------------------------------------------- /packages/examples/nextjs-demo/src/app/page.module.css: -------------------------------------------------------------------------------- 1 | .main { 2 | display: flex; 3 | flex-direction: column; 4 | justify-content: space-between; 5 | align-items: center; 6 | padding: 6rem; 7 | min-height: 100vh; 8 | } 9 | 10 | -------------------------------------------------------------------------------- /packages/examples/nextjs-demo/src/app/page.tsx: -------------------------------------------------------------------------------- 1 | import Image from 'next/image' 2 | import styles from './page.module.css' 3 | import SDKContainer from './SDKContainer' 4 | 5 | export default function Home() { 6 | return ( 7 |
8 | 9 |
10 | ) 11 | } 12 | -------------------------------------------------------------------------------- /packages/examples/nodejs-interactive/.env.sample: -------------------------------------------------------------------------------- 1 | INFURA_API_KEY=YOUR_API_KEY 2 | EVENT_AMOUNT=5 3 | COMM_SERVER_URL=SOCKET_SERVER_URL 4 | -------------------------------------------------------------------------------- /packages/examples/nodejs-interactive/.gitignore: -------------------------------------------------------------------------------- 1 | .env 2 | .sdk-comm 3 | -------------------------------------------------------------------------------- /packages/examples/nodejs-interactive/README.md: -------------------------------------------------------------------------------- 1 | # Node.js SDK Interactive example 2 | 3 | Get started by running: 4 | 5 | ```bash 6 | yarn install 7 | ``` 8 | 9 | and 10 | 11 | ```bash 12 | yarn start 13 | ``` 14 | -------------------------------------------------------------------------------- /packages/examples/nodejs/README.md: -------------------------------------------------------------------------------- 1 | # Node.js SDK example 2 | 3 | Get started by running: 4 | 5 | ```bash 6 | yarn install 7 | ``` 8 | 9 | and 10 | 11 | ```bash 12 | yarn start 13 | ``` 14 | -------------------------------------------------------------------------------- /packages/examples/pure-javascript/README.md: -------------------------------------------------------------------------------- 1 | # Pure JavaScript SDK example 2 | -------------------------------------------------------------------------------- /packages/examples/react-demo/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /packages/examples/react-demo/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | React MMSDK Demo 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /packages/examples/react-demo/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /packages/examples/react-demo/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "files": [], 3 | "references": [ 4 | { "path": "./tsconfig.app.json" }, 5 | { "path": "./tsconfig.node.json" } 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /packages/examples/react-demo/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import react from '@vitejs/plugin-react' 3 | 4 | // https://vite.dev/config/ 5 | export default defineConfig({ 6 | plugins: [react()], 7 | base: './', 8 | build: { 9 | outDir: './build', 10 | emptyOutDir: true, // also necessary 11 | } 12 | }) 13 | -------------------------------------------------------------------------------- /packages/examples/react-metamask-button/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/examples/react-metamask-button/public/favicon.ico -------------------------------------------------------------------------------- /packages/examples/react-metamask-button/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/examples/react-metamask-button/public/logo192.png -------------------------------------------------------------------------------- /packages/examples/react-metamask-button/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/examples/react-metamask-button/public/logo512.png -------------------------------------------------------------------------------- /packages/examples/react-metamask-button/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /packages/examples/react-metamask-button/src/App.test.js: -------------------------------------------------------------------------------- 1 | import { render, screen } from '@testing-library/react'; 2 | import App from './App'; 3 | 4 | test('renders learn react link', () => { 5 | render(); 6 | const linkElement = screen.getByText(/learn react/i); 7 | expect(linkElement).toBeInTheDocument(); 8 | }); 9 | -------------------------------------------------------------------------------- /packages/examples/react-metamask-button/src/setupTests.js: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /packages/examples/react-with-custom-modal/.env.sample: -------------------------------------------------------------------------------- 1 | REACT_APP_COMM_SERVER_URL=https://metamask-sdk.api.cx.metamask.io/ 2 | -------------------------------------------------------------------------------- /packages/examples/react-with-custom-modal/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/examples/react-with-custom-modal/public/favicon.ico -------------------------------------------------------------------------------- /packages/examples/react-with-custom-modal/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/examples/react-with-custom-modal/public/logo192.png -------------------------------------------------------------------------------- /packages/examples/react-with-custom-modal/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/examples/react-with-custom-modal/public/logo512.png -------------------------------------------------------------------------------- /packages/examples/react-with-custom-modal/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /packages/examples/react-with-custom-modal/src/App.test.js: -------------------------------------------------------------------------------- 1 | import { render, screen } from '@testing-library/react'; 2 | import App from './App'; 3 | 4 | test('renders learn react link', () => { 5 | render(); 6 | const linkElement = screen.getByText(/learn react/i); 7 | expect(linkElement).toBeInTheDocument(); 8 | }); 9 | -------------------------------------------------------------------------------- /packages/examples/react-with-custom-modal/src/setupTests.js: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /packages/examples/reactNativeDemo/.bundle/config: -------------------------------------------------------------------------------- 1 | BUNDLE_PATH: "vendor/bundle" 2 | BUNDLE_FORCE_RUBY_PLATFORM: 1 3 | -------------------------------------------------------------------------------- /packages/examples/reactNativeDemo/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @type {import('eslint').Linter.Config} 3 | */ 4 | module.exports = { 5 | root: true, 6 | extends: '@react-native', 7 | ignorePatterns: [ 8 | 'metro.config.js', 9 | 'public', 10 | '.cache', 11 | 'node_modules', 12 | '.eslintrc.js', 13 | ], 14 | }; 15 | -------------------------------------------------------------------------------- /packages/examples/reactNativeDemo/.node-version: -------------------------------------------------------------------------------- 1 | 16 2 | -------------------------------------------------------------------------------- /packages/examples/reactNativeDemo/.prettierrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | arrowParens: 'avoid', 3 | bracketSameLine: true, 4 | bracketSpacing: false, 5 | singleQuote: true, 6 | trailingComma: 'all', 7 | }; 8 | -------------------------------------------------------------------------------- /packages/examples/reactNativeDemo/.watchmanconfig: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /packages/examples/reactNativeDemo/Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | # You may use http://rbenv.org/ or https://rvm.io/ to install and use this version 4 | ruby '>= 2.6.10' 5 | 6 | gem 'cocoapods', '~> 1.13' 7 | gem 'activesupport', '>= 6.1.7.3', '< 7.1.0' 8 | -------------------------------------------------------------------------------- /packages/examples/reactNativeDemo/README.md: -------------------------------------------------------------------------------- 1 | # React Native SDK example 2 | 3 | We recommend using React Native v0.71.4 or higher to avoid performance issues on Android. 4 | -------------------------------------------------------------------------------- /packages/examples/reactNativeDemo/android/app/debug.keystore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/examples/reactNativeDemo/android/app/debug.keystore -------------------------------------------------------------------------------- /packages/examples/reactNativeDemo/android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/examples/reactNativeDemo/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /packages/examples/reactNativeDemo/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/examples/reactNativeDemo/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /packages/examples/reactNativeDemo/android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/examples/reactNativeDemo/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /packages/examples/reactNativeDemo/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/examples/reactNativeDemo/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /packages/examples/reactNativeDemo/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/examples/reactNativeDemo/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /packages/examples/reactNativeDemo/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/examples/reactNativeDemo/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /packages/examples/reactNativeDemo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/examples/reactNativeDemo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /packages/examples/reactNativeDemo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/examples/reactNativeDemo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /packages/examples/reactNativeDemo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/examples/reactNativeDemo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /packages/examples/reactNativeDemo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/examples/reactNativeDemo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /packages/examples/reactNativeDemo/android/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | reactNativeDemo 3 | 4 | -------------------------------------------------------------------------------- /packages/examples/reactNativeDemo/android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /packages/examples/reactNativeDemo/android/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/examples/reactNativeDemo/android/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /packages/examples/reactNativeDemo/android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.1-all.zip 4 | networkTimeout=10000 5 | zipStoreBase=GRADLE_USER_HOME 6 | zipStorePath=wrapper/dists 7 | -------------------------------------------------------------------------------- /packages/examples/reactNativeDemo/android/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'reactNativeDemo' 2 | apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings) 3 | include ':app' 4 | includeBuild('../node_modules/@react-native/gradle-plugin') 5 | -------------------------------------------------------------------------------- /packages/examples/reactNativeDemo/app.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "reactNativeDemo", 3 | "displayName": "reactNativeDemo" 4 | } -------------------------------------------------------------------------------- /packages/examples/reactNativeDemo/ios/reactNativeDemo.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /packages/examples/reactNativeDemo/ios/reactNativeDemo.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /packages/examples/reactNativeDemo/ios/reactNativeDemo/AppDelegate.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | @interface AppDelegate : RCTAppDelegate 5 | 6 | @end 7 | -------------------------------------------------------------------------------- /packages/examples/reactNativeDemo/ios/reactNativeDemo/Images.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/examples/reactNativeDemo/ios/reactNativeDemo/main.m: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | #import "AppDelegate.h" 4 | 5 | int main(int argc, char *argv[]) 6 | { 7 | @autoreleasepool { 8 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/examples/reactNativeDemo/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | preset: 'react-native', 3 | }; 4 | -------------------------------------------------------------------------------- /packages/examples/reactNativeDemo/src/types/env.d.ts: -------------------------------------------------------------------------------- 1 | declare module '@env' { 2 | export const COMM_SERVER_URL: string; 3 | export const INFURA_API_KEY: string; 4 | export const PROVIDER_RPCURL: string; 5 | } 6 | -------------------------------------------------------------------------------- /packages/examples/reactNativeDemo/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@tsconfig/react-native/tsconfig.json", 3 | "compilerOptions": { 4 | "esModuleInterop": true, 5 | "lib": ["ES2021.String"], 6 | "paths": { 7 | "react": ["./node_modules/@types/react"] 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/examples/reactNativeSdkDemo/.bundle/config: -------------------------------------------------------------------------------- 1 | BUNDLE_PATH: "vendor/bundle" 2 | BUNDLE_FORCE_RUBY_PLATFORM: 1 3 | -------------------------------------------------------------------------------- /packages/examples/reactNativeSdkDemo/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @type {import('eslint').Linter.Config} 3 | */ 4 | module.exports = { 5 | root: true, 6 | extends: '@react-native', 7 | ignorePatterns: [ 8 | 'metro.config.js', 9 | 'public', 10 | '.cache', 11 | 'node_modules', 12 | '.eslintrc.js', 13 | ], 14 | }; 15 | -------------------------------------------------------------------------------- /packages/examples/reactNativeSdkDemo/.prettierrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | arrowParens: 'avoid', 3 | bracketSameLine: true, 4 | bracketSpacing: false, 5 | singleQuote: true, 6 | trailingComma: 'all', 7 | }; 8 | -------------------------------------------------------------------------------- /packages/examples/reactNativeSdkDemo/.watchmanconfig: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /packages/examples/reactNativeSdkDemo/Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | # You may use http://rbenv.org/ or https://rvm.io/ to install and use this version 4 | ruby ">= 2.6.10" 5 | 6 | gem 'cocoapods', '~> 1.12' 7 | -------------------------------------------------------------------------------- /packages/examples/reactNativeSdkDemo/android/app/debug.keystore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/examples/reactNativeSdkDemo/android/app/debug.keystore -------------------------------------------------------------------------------- /packages/examples/reactNativeSdkDemo/android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/examples/reactNativeSdkDemo/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /packages/examples/reactNativeSdkDemo/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/examples/reactNativeSdkDemo/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /packages/examples/reactNativeSdkDemo/android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/examples/reactNativeSdkDemo/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /packages/examples/reactNativeSdkDemo/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/examples/reactNativeSdkDemo/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /packages/examples/reactNativeSdkDemo/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/examples/reactNativeSdkDemo/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /packages/examples/reactNativeSdkDemo/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/examples/reactNativeSdkDemo/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /packages/examples/reactNativeSdkDemo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/examples/reactNativeSdkDemo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /packages/examples/reactNativeSdkDemo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/examples/reactNativeSdkDemo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /packages/examples/reactNativeSdkDemo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/examples/reactNativeSdkDemo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /packages/examples/reactNativeSdkDemo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/examples/reactNativeSdkDemo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /packages/examples/reactNativeSdkDemo/android/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | reactNativeSdkDemo 3 | 4 | -------------------------------------------------------------------------------- /packages/examples/reactNativeSdkDemo/android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /packages/examples/reactNativeSdkDemo/android/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/examples/reactNativeSdkDemo/android/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /packages/examples/reactNativeSdkDemo/android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.1-all.zip 4 | networkTimeout=10000 5 | zipStoreBase=GRADLE_USER_HOME 6 | zipStorePath=wrapper/dists 7 | -------------------------------------------------------------------------------- /packages/examples/reactNativeSdkDemo/android/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'reactNativeSdkDemo' 2 | apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings) 3 | include ':app' 4 | includeBuild('../node_modules/@react-native/gradle-plugin') 5 | -------------------------------------------------------------------------------- /packages/examples/reactNativeSdkDemo/app.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "reactNativeSdkDemo", 3 | "displayName": "reactNativeSdkDemo" 4 | } 5 | -------------------------------------------------------------------------------- /packages/examples/reactNativeSdkDemo/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @format 3 | */ 4 | 5 | import {AppRegistry} from 'react-native'; 6 | import App from './App'; 7 | import {name as appName} from './app.json'; 8 | 9 | AppRegistry.registerComponent(appName, () => App); 10 | -------------------------------------------------------------------------------- /packages/examples/reactNativeSdkDemo/ios/reactNativeSdkDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /packages/examples/reactNativeSdkDemo/ios/reactNativeSdkDemo.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /packages/examples/reactNativeSdkDemo/ios/reactNativeSdkDemo.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /packages/examples/reactNativeSdkDemo/ios/reactNativeSdkDemo/AppDelegate.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | @interface AppDelegate : RCTAppDelegate 5 | 6 | @end 7 | -------------------------------------------------------------------------------- /packages/examples/reactNativeSdkDemo/ios/reactNativeSdkDemo/Images.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/examples/reactNativeSdkDemo/ios/reactNativeSdkDemo/main.m: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | #import "AppDelegate.h" 4 | 5 | int main(int argc, char *argv[]) 6 | { 7 | @autoreleasepool { 8 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/examples/reactNativeSdkDemo/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | preset: 'react-native', 3 | }; 4 | -------------------------------------------------------------------------------- /packages/examples/reactNativeSdkDemo/src/types/env.d.ts: -------------------------------------------------------------------------------- 1 | declare module '@env' { 2 | export const INFURA_API_KEY: string; 3 | } 4 | -------------------------------------------------------------------------------- /packages/examples/reactNativeSdkDemo/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@tsconfig/react-native/tsconfig.json", 3 | "compilerOptions": { 4 | "esModuleInterop": true, 5 | "lib": ["ES2021.String"], 6 | "paths": { 7 | "react": ["./node_modules/@types/react"] 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/examples/vuejs/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | '@vue/cli-plugin-babel/preset' 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /packages/examples/vuejs/jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es5", 4 | "module": "esnext", 5 | "baseUrl": "./", 6 | "moduleResolution": "node", 7 | "paths": { 8 | "@/*": [ 9 | "src/*" 10 | ] 11 | }, 12 | "lib": [ 13 | "esnext", 14 | "dom", 15 | "dom.iterable", 16 | "scripthost" 17 | ] 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /packages/examples/vuejs/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/examples/vuejs/public/favicon.ico -------------------------------------------------------------------------------- /packages/examples/vuejs/src/App.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 17 | -------------------------------------------------------------------------------- /packages/examples/vuejs/src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/examples/vuejs/src/assets/logo.png -------------------------------------------------------------------------------- /packages/examples/vuejs/src/main.js: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue' 2 | import App from './App.vue' 3 | 4 | createApp(App).mount('#app') 5 | -------------------------------------------------------------------------------- /packages/examples/wagmi-demo-react/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /packages/examples/wagmi-demo-react/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vite React 7 | 8 | 9 |
10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /packages/examples/wagmi-demo-react/public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vite-react", 3 | "description": "vite-react playground", 4 | "iconPath": "favicon.ico" 5 | } 6 | -------------------------------------------------------------------------------- /packages/examples/wagmi-demo-react/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /packages/examples/wagmi-demo-react/tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "skipLibCheck": true, 5 | "module": "ESNext", 6 | "moduleResolution": "bundler", 7 | "allowSyntheticDefaultImports": true 8 | }, 9 | "include": ["vite.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /packages/examples/wagmi-demo-react/vite.config.ts: -------------------------------------------------------------------------------- 1 | import react from '@vitejs/plugin-react' 2 | import { defineConfig } from 'vite' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [react()], 7 | base: './', 8 | build: { 9 | outDir: './build', 10 | emptyOutDir: true, // also necessary 11 | } 12 | }) 13 | -------------------------------------------------------------------------------- /packages/examples/wagmi-demo/.env.sample: -------------------------------------------------------------------------------- 1 | INFURA_API_KEY=your_infura_api_key 2 | -------------------------------------------------------------------------------- /packages/examples/wagmi-demo/README.md: -------------------------------------------------------------------------------- 1 | This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-wagmi`](https://github.com/wevm/wagmi/tree/main/packages/create-wagmi). 2 | -------------------------------------------------------------------------------- /packages/examples/wagmi-demo/next.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('next').NextConfig} */ 2 | const nextConfig = {} 3 | 4 | module.exports = nextConfig 5 | -------------------------------------------------------------------------------- /packages/examples/with-web3onboard/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /packages/examples/with-web3onboard/src/main.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom/client' 3 | import App from './App.tsx' 4 | import './index.css' 5 | 6 | ReactDOM.createRoot(document.getElementById('root')!).render( 7 | 8 | 9 | , 10 | ) 11 | -------------------------------------------------------------------------------- /packages/examples/with-web3onboard/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /packages/examples/with-web3onboard/tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "skipLibCheck": true, 5 | "module": "ESNext", 6 | "moduleResolution": "bundler", 7 | "allowSyntheticDefaultImports": true 8 | }, 9 | "include": ["vite.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /packages/examples/with-web3onboard/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import react from '@vitejs/plugin-react' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [react()], 7 | base: './', 8 | build: { 9 | outDir: './build', 10 | emptyOutDir: true, // also necessary 11 | } 12 | }) 13 | -------------------------------------------------------------------------------- /packages/playground-next/.env.example: -------------------------------------------------------------------------------- 1 | NEXT_PUBLIC_INFURA_API_KEY=your_key_here -------------------------------------------------------------------------------- /packages/playground-next/next.config.ts: -------------------------------------------------------------------------------- 1 | import type { NextConfig } from "next"; 2 | 3 | const nextConfig: NextConfig = { 4 | /* config options here */ 5 | }; 6 | 7 | export default nextConfig; 8 | -------------------------------------------------------------------------------- /packages/playground-next/public/file.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/playground-next/public/vercel.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/playground-next/public/window.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/playground-next/src/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/playground-next/src/app/favicon.ico -------------------------------------------------------------------------------- /packages/sdk-analytics/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es2018", 4 | "module": "commonjs", 5 | "outDir": "./dist", 6 | "rootDir": "./src", 7 | "strict": true, 8 | "esModuleInterop": true, 9 | "skipLibCheck": true, 10 | "forceConsistentCasingInFileNames": true, 11 | "declaration": true, 12 | "sourceMap": true 13 | }, 14 | "include": ["src/**/*"], 15 | "exclude": ["node_modules", "dist"] 16 | } -------------------------------------------------------------------------------- /packages/sdk-communication-layer/.change: -------------------------------------------------------------------------------- 1 | 0.30.2 2 | -------------------------------------------------------------------------------- /packages/sdk-communication-layer/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /packages/sdk-communication-layer/.prettierrc.js: -------------------------------------------------------------------------------- 1 | // All of these are defaults except singleQuote, but we specify them 2 | // for explicitness 3 | module.exports = { 4 | quoteProps: 'as-needed', 5 | singleQuote: true, 6 | tabWidth: 2, 7 | trailingComma: 'all', 8 | }; 9 | -------------------------------------------------------------------------------- /packages/sdk-communication-layer/.size-limit.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "path": "./dist/browser/es/metamask-sdk-communication-layer.js", 4 | "limit": "100000 ms" 5 | } 6 | ] 7 | -------------------------------------------------------------------------------- /packages/sdk-communication-layer/e2e/shared-e2e.config.ts: -------------------------------------------------------------------------------- 1 | export const e2eConfig = { 2 | tempFileName: '.shared-e2e-config.json', 3 | }; 4 | -------------------------------------------------------------------------------- /packages/sdk-communication-layer/jest-preload.js: -------------------------------------------------------------------------------- 1 | global.console = { 2 | ...console, 3 | log: jest.fn(), 4 | debug: jest.fn(), 5 | info: jest.fn(), 6 | warn: jest.fn(), 7 | error: jest.fn(), 8 | }; 9 | -------------------------------------------------------------------------------- /packages/sdk-communication-layer/src/services/RemoteCommunication/ChannelManager/index.ts: -------------------------------------------------------------------------------- 1 | export * from './clean'; 2 | export * from './generateChannelIdConnect'; 3 | -------------------------------------------------------------------------------- /packages/sdk-communication-layer/src/services/RemoteCommunication/ConnectionManager/index.ts: -------------------------------------------------------------------------------- 1 | export * from './connectToChannel'; 2 | export * from './originatorSessionConnect'; 3 | export * from './resume'; 4 | export * from './initSocketService'; 5 | export * from './disconnect'; 6 | export * from './handleAuthorization'; 7 | -------------------------------------------------------------------------------- /packages/sdk-communication-layer/src/services/RemoteCommunication/StateManger/index.ts: -------------------------------------------------------------------------------- 1 | export * from './setLastActiveDate'; 2 | -------------------------------------------------------------------------------- /packages/sdk-communication-layer/src/services/RemoteCommunication/StorageManager/index.ts: -------------------------------------------------------------------------------- 1 | export * from './testStorage'; 2 | -------------------------------------------------------------------------------- /packages/sdk-communication-layer/src/services/SocketService/ChannelManager/index.ts: -------------------------------------------------------------------------------- 1 | export * from './checkSameId'; 2 | export * from './createChannel'; 3 | export * from './setupChannelListeners'; 4 | -------------------------------------------------------------------------------- /packages/sdk-communication-layer/src/services/SocketService/ConnectionManager/index.ts: -------------------------------------------------------------------------------- 1 | export * from './connectToChannel'; 2 | export * from './disconnect'; 3 | export * from './pause'; 4 | export * from './ping'; 5 | export * from './resume'; 6 | export * from './setupSocketFocusListener'; 7 | -------------------------------------------------------------------------------- /packages/sdk-communication-layer/src/services/SocketService/KeysManager/index.ts: -------------------------------------------------------------------------------- 1 | export * from './keyCheck'; 2 | export * from './resetKeys'; 3 | export * from './handleKeyHandshake'; 4 | export * from './validateKeyExchange'; 5 | -------------------------------------------------------------------------------- /packages/sdk-communication-layer/src/services/SocketService/MessageHandlers/index.ts: -------------------------------------------------------------------------------- 1 | export * from './handleSendMessage'; 2 | export * from './handleRpcReplies'; 3 | export * from './trackRpcMethod'; 4 | export * from './encryptAndSendMessage'; 5 | -------------------------------------------------------------------------------- /packages/sdk-communication-layer/src/types/AutoConnectOptions.ts: -------------------------------------------------------------------------------- 1 | export interface AutoConnectOptions { 2 | enable?: boolean; 3 | timeout?: number; // number is ms, how long to wait for mm mobile 4 | // type: behavior once timeout is reached 5 | // RENEW -> generate new channel id 6 | // LINK -> call deeplink 7 | // type: AutoConnectType; 8 | } 9 | -------------------------------------------------------------------------------- /packages/sdk-communication-layer/src/types/AutoConnectType.ts: -------------------------------------------------------------------------------- 1 | export enum AutoConnectType { 2 | RENEW = 'renew', 3 | LINK = 'link', 4 | } 5 | -------------------------------------------------------------------------------- /packages/sdk-communication-layer/src/types/Channel.ts: -------------------------------------------------------------------------------- 1 | export interface Channel { 2 | channelId: string; 3 | pubKey: string; 4 | privKey: string; 5 | } 6 | -------------------------------------------------------------------------------- /packages/sdk-communication-layer/src/types/CommunicationLayerPreference.ts: -------------------------------------------------------------------------------- 1 | export enum CommunicationLayerPreference { 2 | SOCKET = 'socket', 3 | } 4 | -------------------------------------------------------------------------------- /packages/sdk-communication-layer/src/types/ConnectToChannelOptions.ts: -------------------------------------------------------------------------------- 1 | export interface ConnectToChannelOptions { 2 | channelId: string; 3 | withKeyExchange?: boolean; 4 | authorized?: boolean; 5 | } 6 | -------------------------------------------------------------------------------- /packages/sdk-communication-layer/src/types/DappMetadata.ts: -------------------------------------------------------------------------------- 1 | export interface DappMetadata { 2 | url?: string; 3 | name?: string; 4 | iconUrl?: string; 5 | scheme?: string; 6 | base64Icon?: string; // @deprecated use iconUrl instead - backwards compatibility 7 | connector?: string; 8 | } 9 | 10 | export interface DappMetadataWithSource extends DappMetadata { 11 | source?: string; 12 | } 13 | -------------------------------------------------------------------------------- /packages/sdk-communication-layer/src/types/DisconnectOptions.ts: -------------------------------------------------------------------------------- 1 | export interface DisconnectOptions { 2 | terminate?: boolean; 3 | channelId?: string; 4 | /** 5 | * Flag used only on terminated disconnection to send a TERMINATE message on the channel. 6 | * Default to true. 7 | */ 8 | sendMessage?: boolean; 9 | } 10 | -------------------------------------------------------------------------------- /packages/sdk-communication-layer/src/types/InternalEventType.ts: -------------------------------------------------------------------------------- 1 | export enum InternalEventType { 2 | /** 3 | * KEY_EXCHANGE is used between Communication layer and KeyExchange Layer 4 | */ 5 | KEY_EXCHANGE = 'key_exchange', 6 | } 7 | -------------------------------------------------------------------------------- /packages/sdk-communication-layer/src/types/KeyExchangeMessageType.ts: -------------------------------------------------------------------------------- 1 | export enum KeyExchangeMessageType { 2 | KEY_HANDSHAKE_START = 'key_handshake_start', 3 | KEY_HANDSHAKE_CHECK = 'key_handshake_check', 4 | KEY_HANDSHAKE_SYN = 'key_handshake_SYN', 5 | KEY_HANDSHAKE_SYNACK = 'key_handshake_SYNACK', 6 | KEY_HANDSHAKE_ACK = 'key_handshake_ACK', 7 | KEY_HANDSHAKE_WALLET = 'key_handshake_wallet', 8 | KEY_HANDSHAKE_NONE = 'none', 9 | } 10 | -------------------------------------------------------------------------------- /packages/sdk-communication-layer/src/types/KeyInfo.ts: -------------------------------------------------------------------------------- 1 | export interface KeyInfo { 2 | step: string; 3 | ecies: { 4 | public: string; 5 | private: string; 6 | otherPubKey?: string; 7 | }; 8 | keysExchanged: boolean; 9 | } 10 | -------------------------------------------------------------------------------- /packages/sdk-communication-layer/src/types/LoggingOptions.ts: -------------------------------------------------------------------------------- 1 | export interface CommunicationLayerLoggingOptions { 2 | eciesLayer?: boolean; 3 | keyExchangeLayer?: boolean; 4 | serviceLayer?: boolean; 5 | remoteLayer?: boolean; 6 | plaintext?: boolean; 7 | logger?: (_msg: string, ...args: unknown[]) => void; 8 | } 9 | -------------------------------------------------------------------------------- /packages/sdk-communication-layer/src/types/OriginatorInfo.ts: -------------------------------------------------------------------------------- 1 | export interface OriginatorInfo { 2 | url: string; 3 | title: string; 4 | platform: string; 5 | dappId: string; 6 | anonId?: string; 7 | icon?: string; 8 | scheme?: string; 9 | source?: string; 10 | apiVersion?: string; 11 | connector?: string; 12 | } 13 | -------------------------------------------------------------------------------- /packages/sdk-communication-layer/src/types/PlatformType.ts: -------------------------------------------------------------------------------- 1 | export enum PlatformType { 2 | // React Native or Nodejs 3 | NonBrowser = 'nodejs', 4 | // MetaMask Mobile in-app browser 5 | MetaMaskMobileWebview = 'in-app-browser', 6 | // Desktop Browser 7 | DesktopWeb = 'web-desktop', 8 | // Mobile Browser 9 | MobileWeb = 'web-mobile', 10 | // ReactNative 11 | ReactNative = 'react-native', 12 | } 13 | -------------------------------------------------------------------------------- /packages/sdk-communication-layer/src/types/RemoteMessage.ts: -------------------------------------------------------------------------------- 1 | import { MessageType } from './MessageType'; 2 | import { OriginatorInfo } from './OriginatorInfo'; 3 | 4 | export interface RemoteMessage { 5 | type: MessageType; 6 | originatorInfo?: OriginatorInfo; 7 | } 8 | -------------------------------------------------------------------------------- /packages/sdk-communication-layer/src/types/WalletInfo.ts: -------------------------------------------------------------------------------- 1 | export interface WalletInfo { 2 | type: string; 3 | version: string; 4 | } 5 | -------------------------------------------------------------------------------- /packages/sdk-communication-layer/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": {}, 4 | "include": ["./src", "package.json"], 5 | "exclude": ["node_modules", "dist", "**/*.spec.ts", "**/*.test.ts"] 6 | } 7 | -------------------------------------------------------------------------------- /packages/sdk-install-modal-web/.change: -------------------------------------------------------------------------------- 1 | 0.30.2 2 | -------------------------------------------------------------------------------- /packages/sdk-install-modal-web/.prettierrc.js: -------------------------------------------------------------------------------- 1 | // All of these are defaults except singleQuote, but we specify them 2 | // for explicitness 3 | module.exports = { 4 | quoteProps: 'as-needed', 5 | singleQuote: true, 6 | tabWidth: 2, 7 | trailingComma: 'all', 8 | }; 9 | -------------------------------------------------------------------------------- /packages/sdk-install-modal-web/.size-limit.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "path": "dist/components/*.js", 4 | "limit": "30 KB" 5 | } 6 | ] 7 | -------------------------------------------------------------------------------- /packages/sdk-install-modal-web/README.md: -------------------------------------------------------------------------------- 1 | # sdk-install-modal-web 2 | -------------------------------------------------------------------------------- /packages/sdk-install-modal-web/jest-preload.js: -------------------------------------------------------------------------------- 1 | global.console = { 2 | ...console, 3 | log: jest.fn(), 4 | debug: jest.fn(), 5 | info: jest.fn(), 6 | warn: jest.fn(), 7 | error: jest.fn(), 8 | }; 9 | -------------------------------------------------------------------------------- /packages/sdk-install-modal-web/src/components/misc/SDKVersion.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "@stencil/core"; 2 | 3 | export default function SDKVersion({version}: {version?: string}) { 4 | return ( 5 |
SDK Version {version ? `v${version}`:`unknown`}
6 | ) 7 | } 8 | -------------------------------------------------------------------------------- /packages/sdk-install-modal-web/src/components/misc/tracking-events.ts: -------------------------------------------------------------------------------- 1 | export enum TrackingEvents { 2 | SDK_MODAL_VIEWED = 'sdk_modal_viewed', 3 | SDK_MODAL_BUTTON_CLICKED = 'sdk_modal_button_clicked', 4 | SDK_MODAL_TOGGLE_CHANGED = 'sdk_modal_toggle_changed', 5 | } 6 | -------------------------------------------------------------------------------- /packages/sdk-react-native/.change: -------------------------------------------------------------------------------- 1 | 0.29.1 2 | -------------------------------------------------------------------------------- /packages/sdk-react-native/.prettierrc.js: -------------------------------------------------------------------------------- 1 | // for explicitness 2 | module.exports = { 3 | quoteProps: 'as-needed', 4 | singleQuote: true, 5 | tabWidth: 2, 6 | trailingComma: 'all', 7 | }; 8 | -------------------------------------------------------------------------------- /packages/sdk-react-native/android/gradle.properties: -------------------------------------------------------------------------------- 1 | MetaMaskReactNativeSdk_kotlinVersion=1.8.0 2 | MetaMaskReactNativeSdk_minSdkVersion=23 3 | MetaMaskReactNativeSdk_targetSdkVersion=34 4 | MetaMaskReactNativeSdk_compileSdkVersion=34 5 | MetaMaskReactNativeSdk_ndkversion=23.1.7779620 6 | -------------------------------------------------------------------------------- /packages/sdk-react-native/android/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | -------------------------------------------------------------------------------- /packages/sdk-react-native/android/src/main/AndroidManifestNew.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /packages/sdk-react-native/ios/EthereumRequestObjC.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | @interface EthereumRequestObjC : NSObject 5 | 6 | @property (nonatomic, strong) NSString *method; 7 | @property (nonatomic, strong) id params; 8 | 9 | - (instancetype)initWithDictionary:(NSDictionary *)dictionary; 10 | 11 | @end 12 | 13 | -------------------------------------------------------------------------------- /packages/sdk-react-native/ios/MetaMaskReactNativeSdk-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | // 2 | // Use this file to import your target's public headers that you would like to expose to Swift. 3 | // 4 | 5 | #import "Options.h" 6 | #import "EthereumRequestObjC.h" 7 | -------------------------------------------------------------------------------- /packages/sdk-react-ui/.change: -------------------------------------------------------------------------------- 1 | 0.29.2 2 | -------------------------------------------------------------------------------- /packages/sdk-react-ui/postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | }; 7 | -------------------------------------------------------------------------------- /packages/sdk-react-ui/src/style.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | -------------------------------------------------------------------------------- /packages/sdk-react/.change: -------------------------------------------------------------------------------- 1 | 0.30.2 2 | -------------------------------------------------------------------------------- /packages/sdk-react/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | '@babel/preset-env', 4 | '@babel/preset-react', 5 | '@babel/preset-typescript', 6 | ], 7 | }; 8 | -------------------------------------------------------------------------------- /packages/sdk-react/jest-preload.js: -------------------------------------------------------------------------------- 1 | global.console = { 2 | ...console, 3 | log: jest.fn(), 4 | debug: jest.fn(), 5 | info: jest.fn(), 6 | warn: jest.fn(), 7 | error: jest.fn(), 8 | }; 9 | -------------------------------------------------------------------------------- /packages/sdk-react/src/utils/logger.ts: -------------------------------------------------------------------------------- 1 | import debug from 'debug'; 2 | 3 | /** 4 | * Logger for the SDK. 5 | * This logger uses the 'debug' library for outputting debug information. 6 | * Logging is enabled in the code via `debug.enable('__NAMESPACE__')`. 7 | */ 8 | export const logger = debug('MM_SDK-React'); 9 | 10 | logger.color = '#CC5500'; 11 | -------------------------------------------------------------------------------- /packages/sdk-socket-server-next/.prettierrc.js: -------------------------------------------------------------------------------- 1 | // All of these are defaults except singleQuote, but we specify them 2 | // for explicitness 3 | module.exports = { 4 | quoteProps: 'as-needed', 5 | singleQuote: true, 6 | tabWidth: 2, 7 | trailingComma: 'all', 8 | }; 9 | -------------------------------------------------------------------------------- /packages/sdk-socket-server-next/e2e/analytics-node.ts: -------------------------------------------------------------------------------- 1 | class Analytics { 2 | constructor(writeKey: string, options?: object) { 3 | // Mock constructor 4 | } 5 | 6 | track(_event: string, callback?: (err: Error | null) => void): void { 7 | // Mock track method 8 | if (callback) { 9 | callback(null); 10 | } 11 | } 12 | } 13 | 14 | export default Analytics; 15 | -------------------------------------------------------------------------------- /packages/sdk-socket-server-next/nodemon.json: -------------------------------------------------------------------------------- 1 | { 2 | "watch": ["./src"], 3 | "ext": "ts", 4 | "exec": "ts-node" 5 | } 6 | -------------------------------------------------------------------------------- /packages/sdk-socket-server-next/tsconfig.test.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES6", 4 | "module": "commonjs", 5 | "outDir": "dist", 6 | "strict": true, 7 | "esModuleInterop": true, 8 | "skipLibCheck": true, 9 | "forceConsistentCasingInFileNames": true, 10 | "types": ["node", "jest", "@testing-library/jest-dom"] 11 | }, 12 | "include": ["src/","e2e/"], 13 | "exclude": ["node_modules"] 14 | } 15 | -------------------------------------------------------------------------------- /packages/sdk-ui/.change: -------------------------------------------------------------------------------- 1 | 0.30.2 2 | -------------------------------------------------------------------------------- /packages/sdk-ui/.gitignore: -------------------------------------------------------------------------------- 1 | storybook-static/ 2 | -------------------------------------------------------------------------------- /packages/sdk-ui/.prettierrc.js: -------------------------------------------------------------------------------- 1 | // All of these are defaults except singleQuote, but we specify them 2 | // for explicitness 3 | module.exports = { 4 | quoteProps: 'as-needed', 5 | singleQuote: true, 6 | tabWidth: 2, 7 | trailingComma: 'all', 8 | }; 9 | -------------------------------------------------------------------------------- /packages/sdk-ui/.storybook/preview-head.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /packages/sdk-ui/README.md: -------------------------------------------------------------------------------- 1 | ** DO NOT USE THIS PACKAGE DIRECTLY ** 2 | 3 | This package is used by the SDK team to test the SDK. It is not intended to be used directly by external developers. 4 | -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/ApplePayLogo-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/ApplePayLogo-dark.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/ApplePayLogo-dark@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/ApplePayLogo-dark@2x.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/ApplePayLogo-dark@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/ApplePayLogo-dark@3x.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/ApplePayLogo-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/ApplePayLogo-light.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/ApplePayLogo-light@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/ApplePayLogo-light@2x.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/ApplePayLogo-light@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/ApplePayLogo-light@3x.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/ApplePayMark-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/ApplePayMark-dark.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/ApplePayMark-dark@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/ApplePayMark-dark@2x.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/ApplePayMark-dark@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/ApplePayMark-dark@3x.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/ApplePayMark-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/ApplePayMark-light.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/ApplePayMark-light@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/ApplePayMark-light@2x.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/ApplePayMark-light@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/ApplePayMark-light@3x.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/ApplePayMark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/ApplePayMark.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/ApplePayMark@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/ApplePayMark@2x.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/ApplePayMark@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/ApplePayMark@3x.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/MoonPayLogo-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/MoonPayLogo-dark.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/MoonPayLogo-dark@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/MoonPayLogo-dark@2x.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/MoonPayLogo-dark@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/MoonPayLogo-dark@3x.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/MoonPayLogo-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/MoonPayLogo-light.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/MoonPayLogo-light@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/MoonPayLogo-light@2x.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/MoonPayLogo-light@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/MoonPayLogo-light@3x.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/TransakLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/TransakLogo.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/TransakLogo@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/TransakLogo@2x.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/TransakLogo@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/TransakLogo@3x.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/WyreLogo-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/WyreLogo-dark.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/WyreLogo-dark@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/WyreLogo-dark@2x.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/WyreLogo-dark@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/WyreLogo-dark@3x.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/WyreLogo-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/WyreLogo-light.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/WyreLogo-light@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/WyreLogo-light@2x.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/WyreLogo-light@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/WyreLogo-light@3x.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/android-face-recognition.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/android-face-recognition.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/android-iris.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/android-iris.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/arbitrum.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/arbitrum.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/astronaut.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/astronaut.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/avalanche.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/avalanche.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/bg.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/binance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/binance.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/bnb-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/bnb-logo.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/collectibles-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/collectibles-icon.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/connect-qr-hardware.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/connect-qr-hardware.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/drawer-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/drawer-bg.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/eth-logo-new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/eth-logo-new.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/eth-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/eth-logo.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/ethereum.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/ethereum.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/explain-backup-seedphrase.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/explain-backup-seedphrase.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/fantom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/fantom.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/fox-badge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/fox-badge.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/fox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/fox.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/frame.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/frame.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/gas-education-carousel-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/gas-education-carousel-1.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/gas-education-carousel-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/gas-education-carousel-2.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/gas-education-carousel-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/gas-education-carousel-3.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/goerli-logo-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/goerli-logo-dark.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/harmony.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/harmony.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/ios-face-id.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/ios-face-id.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/linea-mainnet-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/linea-mainnet-logo.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/linea-testnet-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/linea-testnet-logo.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/lock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/lock.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/matic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/matic.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/metamask-error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/metamask-error.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/metamask-name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/metamask-name.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/no-nfts-placeholder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/no-nfts-placeholder.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/onboarding-carousel-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/onboarding-carousel-1.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/onboarding-carousel-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/onboarding-carousel-2.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/onboarding-carousel-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/onboarding-carousel-3.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/opensea-logo-flat-colored-blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/opensea-logo-flat-colored-blue.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/optimism.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/optimism.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "images" 3 | } 4 | -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/palm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/palm.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/piggybank.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/piggybank.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/reveal-srp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/reveal-srp.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/selected-wallet-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/selected-wallet-icon.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/sepolia-logo-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/sepolia-logo-dark.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/sliderbutton-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/sliderbutton-bg.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/sliderbutton-shine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/sliderbutton-shine.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/slippage-slider-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/slippage-slider-bg.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/swaps_aggs-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/swaps_aggs-dark.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/swaps_aggs-dark@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/swaps_aggs-dark@2x.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/swaps_aggs-dark@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/swaps_aggs-dark@3x.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/swaps_aggs-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/swaps_aggs-light.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/swaps_aggs-light@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/swaps_aggs-light@2x.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/swaps_aggs-light@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/swaps_aggs-light@3x.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/swaps_onboard_device.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/swaps_onboard_device.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/swaps_onboard_device@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/swaps_onboard_device@2x.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/swaps_onboard_device@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/swaps_onboard_device@3x.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/sync-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/sync-icon.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/sync-icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/sync-icon@2x.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/sync-icon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/sync-icon@3x.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/transaction-icons/approve-failed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/transaction-icons/approve-failed.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/transaction-icons/approve.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/transaction-icons/approve.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/transaction-icons/interaction-failed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/transaction-icons/interaction-failed.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/transaction-icons/interaction.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/transaction-icons/interaction.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/transaction-icons/receive-failed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/transaction-icons/receive-failed.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/transaction-icons/receive-inverted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/transaction-icons/receive-inverted.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/transaction-icons/receive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/transaction-icons/receive.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/transaction-icons/send-failed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/transaction-icons/send-failed.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/transaction-icons/send.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/transaction-icons/send.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/transaction-icons/swap-failed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/transaction-icons/swap-failed.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/transaction-icons/swap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/transaction-icons/swap.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/tx-history-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/tx-history-icon.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/wallet-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/wallet-icon.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/welcome-bg1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/welcome-bg1.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/welcome-bg1@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/welcome-bg1@2x.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/welcome-bg1@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/welcome-bg1@3x.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/welcome-bg2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/welcome-bg2.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/welcome-bg2@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/welcome-bg2@2x.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/welcome-bg2@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/welcome-bg2@3x.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/welcome-bg3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/welcome-bg3.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/welcome-bg3@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/welcome-bg3@2x.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/welcome-bg3@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/welcome-bg3@3x.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/welcome-bg4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/welcome-bg4.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/welcome-bg4@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/welcome-bg4@2x.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/welcome-bg4@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/welcome-bg4@3x.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/whats-new-security.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/whats-new-security.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/whats-new-token-detection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/whats-new-token-detection.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/whats-new-token-detection@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/whats-new-token-detection@2x.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/whats-new-token-detection@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/whats-new-token-detection@3x.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/whats-new-token-security.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/whats-new-token-security.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/whats-new-token-security@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/whats-new-token-security@2x.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/whats-new-token-security@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/whats-new-token-security@3x.png -------------------------------------------------------------------------------- /packages/sdk-ui/assets/images/whats_new_blockaid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/assets/images/whats_new_blockaid.png -------------------------------------------------------------------------------- /packages/sdk-ui/src/components/icons/icons.stories.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Meta } from '@storybook/react-native'; 3 | import { IconsPreview, IconsPreviewProps } from './icons-preview'; 4 | 5 | const IconsPreviewMeta: Meta = { 6 | title: 'SDK UI / Preview Icons', 7 | component: IconsPreview, 8 | }; 9 | 10 | export default IconsPreviewMeta; 11 | 12 | export const Primary = () => ; 13 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/constants/animation.constants.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Animation Tokens in miliseconds. 3 | */ 4 | export enum AnimationDuration { 5 | Instantly = 0, 6 | Immediately = 50, 7 | Quickly = 100, 8 | Promptly = 200, 9 | Regularly = 300, 10 | Slowly = 400, 11 | } 12 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/constants/storybook.constants.ts: -------------------------------------------------------------------------------- 1 | export const storybookPropsGroupID = 'Props'; 2 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/assets/index.ts: -------------------------------------------------------------------------------- 1 | import ethereum from '../../../assets/images/ethereum.png'; 2 | 3 | export default { ethereum }; 4 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Avatars/Avatar/foundation/AvatarBase/AvatarBase.constants.ts: -------------------------------------------------------------------------------- 1 | export const DUMMY_IMAGE_DATA = '0x310ff9e227946749ca32aC146215F352183F556b'; 2 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Avatars/Avatar/foundation/AvatarBase/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './AvatarBase'; 2 | export type { AvatarBaseProps } from './AvatarBase.types'; 3 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Avatars/Avatar/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Avatar'; 2 | export { AvatarSize, AvatarVariant } from './Avatar.types'; 3 | export { AvatarAccountType } from './variants/AvatarAccount/AvatarAccount.types'; 4 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Avatars/Avatar/variants/AvatarAccount/AvatarAccount.constants.ts: -------------------------------------------------------------------------------- 1 | export const DUMMY_WALLET_ADDRESS = 2 | '0x10e08af911f2e489480fb2855b24771745d0198b50f5c55891369844a8c57092'; 3 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Avatars/Avatar/variants/AvatarAccount/AvatarAccount.styles.ts: -------------------------------------------------------------------------------- 1 | // Third party dependencies. 2 | import { StyleSheet } from 'react-native'; 3 | 4 | const styleSheet = StyleSheet.create({ imageStyle: { flex: 1 } }); 5 | 6 | export default styleSheet; 7 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Avatars/Avatar/variants/AvatarAccount/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './AvatarAccount'; 2 | export { AvatarAccountType } from './AvatarAccount.types'; 3 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Avatars/Avatar/variants/AvatarFavicon/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './AvatarFavicon'; 2 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Avatars/Avatar/variants/AvatarIcon/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './AvatarIcon'; 2 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Avatars/Avatar/variants/AvatarNetwork/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './AvatarNetwork'; 2 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Avatars/Avatar/variants/AvatarToken/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './AvatarToken'; 2 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Avatars/AvatarGroup/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './AvatarGroup'; 2 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Badges/Badge/Badge.constants.ts: -------------------------------------------------------------------------------- 1 | export const BADGE_BADGENETWORK_TEST_ID = 'badge-badgenetwork'; 2 | export const BADGE_BADGESTATUS_TEST_ID = 'badge-badgestatus'; 3 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Badges/Badge/foundation/BadgeBase/BadgeBase.constants.ts: -------------------------------------------------------------------------------- 1 | export const BADGE_BASE_TEST_ID = 'badge-base'; 2 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Badges/Badge/foundation/BadgeBase/__snapshots__/BadgeBase.test.tsx.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`BadgeBase - snapshots should render badge correctly 1`] = ` 4 | 8 | 11 | 12 | `; 13 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Badges/Badge/foundation/BadgeBase/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './BadgeBase'; 2 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Badges/Badge/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Badge'; 2 | export type { BadgeProps } from './Badge.types'; 3 | export { BadgeVariant } from './Badge.types'; 4 | export { BadgeStatusState } from './variants/BadgeStatus/BadgeStatus.types'; 5 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Badges/Badge/variants/BadgeNetwork/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './BadgeNetwork'; 2 | export type { BadgeNetworkProps } from './BadgeNetwork.types'; 3 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Badges/Badge/variants/BadgeStatus/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './BadgeStatus'; 2 | export type { BadgeStatusProps } from './BadgeStatus.types'; 3 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Badges/BadgeWrapper/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './BadgeWrapper'; 2 | export type { 3 | BadgeWrapperProps, 4 | BadgeAnchorElementShape, 5 | BadgePosition, 6 | } from './BadgeWrapper.types'; 7 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Banners/Banner/Banner.constants.ts: -------------------------------------------------------------------------------- 1 | // Internal dependencies. 2 | import { BannerVariant } from './Banner.types'; 3 | 4 | // Defaults 5 | export const DEFAULT_BANNER_VARIANT = BannerVariant.Alert; 6 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Banners/Banner/foundation/BannerBase/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './BannerBase'; 2 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Banners/Banner/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Banner'; 2 | export { BannerAlertSeverity } from './variants/BannerAlert/BannerAlert.types'; 3 | export { BannerTipLogoType } from './variants/BannerTip/BannerTip.types'; 4 | export { BannerVariant } from './Banner.types'; 5 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Banners/Banner/variants/BannerAlert/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './BannerAlert'; 2 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Banners/Banner/variants/BannerTip/assets/fox-chat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/src/design-system/components/Banners/Banner/variants/BannerTip/assets/fox-chat.png -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Banners/Banner/variants/BannerTip/assets/fox-greeting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/packages/sdk-ui/src/design-system/components/Banners/Banner/variants/BannerTip/assets/fox-greeting.png -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Banners/Banner/variants/BannerTip/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './BannerTip'; 2 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Buttons/Button/foundation/ButtonBase/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './ButtonBase'; 2 | export type { ButtonBaseProps } from './ButtonBase.types'; 3 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Buttons/Button/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Button'; 2 | export { ButtonSize, ButtonVariants, ButtonWidthTypes } from './Button.types'; 3 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Buttons/Button/variants/ButtonLink/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './ButtonLink'; 2 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Buttons/Button/variants/ButtonPrimary/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './ButtonPrimary'; 2 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Buttons/Button/variants/ButtonSecondary/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './ButtonSecondary'; 2 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Buttons/ButtonIcon/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './ButtonIcon'; 2 | export { ButtonIconSizes, ButtonIconVariants } from './ButtonIcon.types'; 3 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Cards/Card/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Card'; 2 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Cells/Cell/foundation/CellBase/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './CellBase'; 2 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Cells/Cell/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Cell'; 2 | export { CellVariant } from './Cell.types'; 3 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Cells/Cell/variants/CellDisplay/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './CellDisplay'; 2 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Cells/Cell/variants/CellMultiSelect/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './CellMultiSelect'; 2 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Cells/Cell/variants/CellSelect/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './CellSelect'; 2 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Checkbox/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Checkbox'; 2 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Form/HelpText/__snapshots__/HelpText.test.tsx.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`HelpText should render default settings correctly 1`] = ` 4 | 9 | Sample HelpText text 10 | 11 | `; 12 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Form/HelpText/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './HelpText'; 2 | export { HelpTextSeverity } from './HelpText.types'; 3 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Form/Label/Label.constants.ts: -------------------------------------------------------------------------------- 1 | // Internal dependencies. 2 | import { TextVariant } from '../../Texts/Text'; 3 | 4 | // Defaults 5 | export const DEFAULT_LABEL_TEXT_VARIANT = TextVariant.BodyMD; 6 | 7 | // Test IDs 8 | export const LABEL_TEST_ID = 'label'; 9 | 10 | // Sample consts 11 | export const SAMPLE_LABEL_TEXT = 'Sample Label Text'; 12 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Form/Label/Label.types.ts: -------------------------------------------------------------------------------- 1 | // External dependencies. 2 | import { TextProps } from '../../Texts/Text/Text.types'; 3 | 4 | /** 5 | * Label component props. 6 | */ 7 | export type LabelProps = TextProps; 8 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Form/Label/README.md: -------------------------------------------------------------------------------- 1 | # Label 2 | 3 | Label is a [Text](../../Texts/Text/Text.tsx) component, used to describe the purpose of form field. 4 | 5 | ## Props 6 | 7 | This component extends [TextProps](../../Texts/Text/Text.types.ts). 8 | 9 | ## Usage 10 | 11 | ```javascript 12 | ; 13 | ``` 14 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Form/Label/__snapshots__/Label.test.tsx.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Label should render default settings correctly 1`] = ` 4 | 8 | Sample Label Text 9 | 10 | `; 11 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Form/Label/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Label'; 2 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Form/TextField/foundation/Input/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Input'; 2 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Form/TextField/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './TextField'; 2 | export { TextFieldSize } from './TextField.types'; 3 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Form/TextFieldSearch/__snapshots__/TextFieldSearch.test.tsx.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`TextFieldSearch should render default settings correctly 1`] = ` 4 | 11 | } 12 | testID="textfieldsearch" 13 | /> 14 | `; 15 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Form/TextFieldSearch/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './TextFieldSearch'; 2 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/HeaderBase/HeaderBase.constants.ts: -------------------------------------------------------------------------------- 1 | // External dependencies. 2 | import { TextVariant } from '../Texts/Text'; 3 | 4 | // Defaults 5 | export const DEFAULT_HEADERBASE_TITLE_TEXTVARIANT = TextVariant.HeadingSM; 6 | 7 | // Test IDs 8 | export const HEADERBASE_TEST_ID = 'header'; 9 | export const HEADERBASE_TITLE_TEST_ID = 'header-title'; 10 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/HeaderBase/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './HeaderBase'; 2 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Icons/Icon/__snapshots__/Icon.test.tsx.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Icon renders correctly 1`] = ` 4 | 16 | `; 17 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Icons/Icon/assets/add.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Icons/Icon/assets/arrow-2-down.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Icons/Icon/assets/arrow-2-left.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Icons/Icon/assets/arrow-2-right.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Icons/Icon/assets/arrow-2-up.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Icons/Icon/assets/arrow-2-upright.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Icons/Icon/assets/arrow-down.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Icons/Icon/assets/arrow-left.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Icons/Icon/assets/arrow-right.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Icons/Icon/assets/arrow-up.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Icons/Icon/assets/ban.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Icons/Icon/assets/bold.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Icons/Icon/assets/check-box-off.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Icons/Icon/assets/check-circle-off.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Icons/Icon/assets/check.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Icons/Icon/assets/clock.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Icons/Icon/assets/diagram.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Icons/Icon/assets/ethereum.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Icons/Icon/assets/expand.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Icons/Icon/assets/export.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Icons/Icon/assets/flag.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Icons/Icon/assets/flash.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Icons/Icon/assets/full-circle.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Icons/Icon/assets/heart.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Icons/Icon/assets/info.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Icons/Icon/assets/link.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Icons/Icon/assets/loading.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Icons/Icon/assets/login.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Icons/Icon/assets/logout.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Icons/Icon/assets/minus-bold.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Icons/Icon/assets/minus-square.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Icons/Icon/assets/minus.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Icons/Icon/assets/notification-circle.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Icons/Icon/assets/refresh.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Icons/Icon/assets/scan-focus.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Icons/Icon/assets/send-1.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Icons/Icon/assets/square.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Icons/Icon/assets/tag.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Icons/Icon/assets/user.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Icons/Icon/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Icon'; 2 | export { IconSize, IconName, IconColor } from './Icon.types'; 3 | export type { IconProps } from './Icon.types'; 4 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/List/ListItem/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './ListItem'; 2 | export { VerticalAlignment } from './ListItem.types'; 3 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/List/ListItemColumn/__snapshots__/ListItemColumn.test.tsx.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`ListItemColumn should render snapshot correctly 1`] = ` 4 | 12 | 13 | 14 | `; 15 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/List/ListItemColumn/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './ListItemColumn'; 2 | export { WidthType } from './ListItemColumn.types'; 3 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/List/ListItemMultiSelect/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './ListItemMultiSelect'; 2 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/List/ListItemSelect/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './ListItemSelect'; 2 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Overlay/Overlay.constants.ts: -------------------------------------------------------------------------------- 1 | // External dependencies. 2 | import { AnimationDuration } from '../../constants/animation.constants'; 3 | 4 | // Defaults 5 | export const DEFAULT_OVERLAY_ANIMATION_DURATION = AnimationDuration.Regularly; 6 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Overlay/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Overlay'; 2 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Pickers/PickerAccount/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './PickerAccount'; 2 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Pickers/PickerBase/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './PickerBase'; 2 | export type { PickerBaseProps } from './PickerBase.types'; 3 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Pickers/PickerNetwork/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './PickerNetwork'; 2 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Tags/Tag/Tag.test.tsx: -------------------------------------------------------------------------------- 1 | // Third party dependencies. 2 | import React from 'react'; 3 | import { shallow } from 'enzyme'; 4 | 5 | // Internal dependencies. 6 | import Tag from './Tag'; 7 | 8 | describe('Tag', () => { 9 | it('should render correctly', () => { 10 | const wrapper = shallow(); 11 | expect(wrapper).toMatchSnapshot(); 12 | }); 13 | }); 14 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Tags/Tag/Tag.types.ts: -------------------------------------------------------------------------------- 1 | // Third party dependencies. 2 | import { ViewProps } from 'react-native'; 3 | 4 | /** 5 | * Tag component props. 6 | */ 7 | export interface TagProps extends ViewProps { 8 | /** 9 | * Label of the tag. 10 | */ 11 | label: string; 12 | } 13 | 14 | /** 15 | * Style sheet input parameters. 16 | */ 17 | export type TagStyleSheetVars = Pick; 18 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Tags/Tag/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Tag'; 2 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Tags/TagUrl/TagUrl.constants.ts: -------------------------------------------------------------------------------- 1 | // Third party dependencies. 2 | import { ImageSourcePropType } from 'react-native'; 3 | 4 | export const TEST_LABEL = 'https://uniswap.org'; 5 | 6 | export const TEST_IMAGE_SOURCE: ImageSourcePropType = { 7 | uri: 'https://uniswap.org/favicon.ico', 8 | }; 9 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Tags/TagUrl/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './TagUrl'; 2 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Texts/Text/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Text'; 2 | export { TextVariant, TextColor } from './Text.types'; 3 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Texts/TextWithPrefixIcon/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './TextWithPrefixIcon'; 2 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/components/Toast/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Toast'; 2 | export { ToastVariants } from './Toast.types'; 3 | export { ToastContext, ToastContextWrapper } from './Toast.context'; 4 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/constants/animation.constants.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable import/prefer-default-export */ 2 | 3 | /** 4 | * Animation Tokens in miliseconds. 5 | */ 6 | export enum AnimationDuration { 7 | Instantly = 0, 8 | Immediately = 50, 9 | Quickly = 100, 10 | Promptly = 200, 11 | Regularly = 300, 12 | Slowly = 400, 13 | } 14 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/constants/storybook.constants.ts: -------------------------------------------------------------------------------- 1 | // eslint-disable-next-line import/prefer-default-export 2 | export const storybookPropsGroupID = 'Props'; 3 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/design-system/hooks/index.ts: -------------------------------------------------------------------------------- 1 | export { useStyles } from './useStyles'; 2 | export { useComponentSize } from './useComponentSize'; 3 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/screens/preview/preview.stories.tsx: -------------------------------------------------------------------------------- 1 | import type { Meta } from '@storybook/react-native'; 2 | import React from 'react'; 3 | import { PreviewScreen } from './preview'; 4 | 5 | const PreviewScreenMeta: Meta = { 6 | component: PreviewScreen, 7 | argTypes: {}, 8 | args: {}, 9 | }; 10 | 11 | export default PreviewScreenMeta; 12 | 13 | export const Primary = () => ; 14 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/theme/models.ts: -------------------------------------------------------------------------------- 1 | import { Theme as DesignTokenTheme } from '@metamask/design-tokens'; 2 | 3 | export enum AppThemeKey { 4 | os = 'os', 5 | light = 'light', 6 | dark = 'dark', 7 | } 8 | export interface Theme extends DesignTokenTheme { 9 | themeAppearance: AppThemeKey.light | AppThemeKey.dark; 10 | } 11 | 12 | export type Colors = Theme['colors']; 13 | export type Shadows = Theme['shadows']; 14 | -------------------------------------------------------------------------------- /packages/sdk-ui/src/utils/generateTestId.ts: -------------------------------------------------------------------------------- 1 | export default (Platform: any, id: string) => ({ testID: id }); 2 | -------------------------------------------------------------------------------- /packages/sdk/.change: -------------------------------------------------------------------------------- 1 | 0.30.2 2 | -------------------------------------------------------------------------------- /packages/sdk/.prettierrc.js: -------------------------------------------------------------------------------- 1 | // All of these are defaults except singleQuote, but we specify them 2 | // for explicitness 3 | module.exports = { 4 | quoteProps: 'as-needed', 5 | singleQuote: true, 6 | tabWidth: 2, 7 | trailingComma: 'all', 8 | }; 9 | -------------------------------------------------------------------------------- /packages/sdk/.size-limit.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "path": "./dist/browser/es/metamask-sdk.js", 4 | "limit": "100000 ms" 5 | }, 6 | { 7 | "path": "./dist/browser/umd/metamask-sdk.js", 8 | "limit": "100000 ms" 9 | }, 10 | { 11 | "path": "./dist/browser/umd/metamask-sdk.iife.js", 12 | "limit": "100000 ms" 13 | } 14 | ] 15 | -------------------------------------------------------------------------------- /packages/sdk/TESTING.md: -------------------------------------------------------------------------------- 1 | ## e2e 2 | 3 | For e2e tests, you can simulate the connection running two separate tests in 2 terminals: 4 | 5 | - terminal1: `yarn test:dev -t 'should communicate as a DAPP' --verbose` 6 | - Copy the qrcode url into the `metamask-simulator-e2e.test.ts` file 7 | - terminal2: `yarn test:dev -t 'should simulate MM mobile' --verbose` 8 | -------------------------------------------------------------------------------- /packages/sdk/e2e/utils/sleep.ts: -------------------------------------------------------------------------------- 1 | export const sleep = (ms: number) => { 2 | return new Promise((resolve) => { 3 | const ref = setTimeout(resolve, ms); 4 | return () => { 5 | clearTimeout(ref); 6 | }; 7 | }); 8 | }; 9 | -------------------------------------------------------------------------------- /packages/sdk/jest-preload.js: -------------------------------------------------------------------------------- 1 | global.console = { 2 | ...console, 3 | log: jest.fn(), 4 | debug: jest.fn(), 5 | info: jest.fn(), 6 | warn: jest.fn(), 7 | error: jest.fn(), 8 | }; 9 | -------------------------------------------------------------------------------- /packages/sdk/jest.config.ts: -------------------------------------------------------------------------------- 1 | import baseConfig from '../../jest.config.base'; 2 | 3 | module.exports = { 4 | ...baseConfig, 5 | coveragePathIgnorePatterns: ['./src/types', '/index.ts$'], 6 | coverageThreshold: { 7 | global: { 8 | branches: 50, 9 | functions: 50, 10 | lines: 50, 11 | statements: 50, 12 | }, 13 | }, 14 | clearMocks: true, 15 | resetMocks: false, 16 | restoreMocks: false, 17 | }; 18 | -------------------------------------------------------------------------------- /packages/sdk/src/PortStream/getPortStream.ts: -------------------------------------------------------------------------------- 1 | import { PlatformType } from '@metamask/sdk-communication-layer'; 2 | import { MobilePortStream } from './MobilePortStream'; 3 | 4 | export const getPortStream = (platformType: PlatformType) => { 5 | if (platformType === PlatformType.MetaMaskMobileWebview) { 6 | return MobilePortStream; 7 | } 8 | 9 | return undefined; 10 | }; 11 | -------------------------------------------------------------------------------- /packages/sdk/src/PostMessageStream/PostMessageStream.ts: -------------------------------------------------------------------------------- 1 | import { Duplex } from 'readable-stream'; 2 | 3 | export interface PostMessageStream extends Duplex { 4 | _write( 5 | chunk: any, 6 | encoding: BufferEncoding, 7 | callback: (error?: Error | null) => void, 8 | ): void; 9 | start(): void; 10 | } 11 | -------------------------------------------------------------------------------- /packages/sdk/src/services/MetaMaskSDK/ConnectionManager/index.ts: -------------------------------------------------------------------------------- 1 | export * from './connect'; 2 | export * from './resume'; 3 | export * from './terminate'; 4 | -------------------------------------------------------------------------------- /packages/sdk/src/services/MetaMaskSDK/ProviderManager/index.ts: -------------------------------------------------------------------------------- 1 | export * from './connectWithExtensionProvider'; 2 | -------------------------------------------------------------------------------- /packages/sdk/src/services/RemoteConnection/ConnectionInitializer/index.ts: -------------------------------------------------------------------------------- 1 | export * from './initializeConnector'; 2 | -------------------------------------------------------------------------------- /packages/sdk/src/services/RemoteConnection/ConnectionManager/index.ts: -------------------------------------------------------------------------------- 1 | export * from './connectWithDeeplink'; 2 | export * from './connectWithModalInstaller'; 3 | export * from './handleDisconnect'; 4 | export * from './startConnection'; 5 | -------------------------------------------------------------------------------- /packages/sdk/src/services/RemoteConnection/EventListeners/cleanupListeners.ts: -------------------------------------------------------------------------------- 1 | import { RemoteConnectionState } from '../RemoteConnection'; 2 | 3 | export function cleanupListeners(state: RemoteConnectionState): void { 4 | state.listeners.forEach(({ event, handler }) => { 5 | state.connector?.off(event, handler); 6 | }); 7 | state.listeners = []; 8 | } 9 | -------------------------------------------------------------------------------- /packages/sdk/src/services/RemoteConnection/EventListeners/index.ts: -------------------------------------------------------------------------------- 1 | export * from './setupListeners'; 2 | -------------------------------------------------------------------------------- /packages/sdk/src/services/RemoteConnection/ModalManager/index.ts: -------------------------------------------------------------------------------- 1 | export * from './showActiveModal'; 2 | export * from './showInstallModal'; 3 | -------------------------------------------------------------------------------- /packages/sdk/src/services/RemoteConnection/ModalManager/onOTPModalDisconnect.ts: -------------------------------------------------------------------------------- 1 | import { 2 | RemoteConnectionProps, 3 | RemoteConnectionState, 4 | } from '../RemoteConnection'; 5 | 6 | export function onOTPModalDisconnect( 7 | options: RemoteConnectionProps, 8 | state: RemoteConnectionState, 9 | ) { 10 | options.modals.onPendingModalDisconnect?.(); 11 | state.pendingModal?.unmount?.(); 12 | } 13 | -------------------------------------------------------------------------------- /packages/sdk/src/services/RemoteConnection/ModalManager/waitForOTPAnswer.ts: -------------------------------------------------------------------------------- 1 | import { RemoteConnectionState } from '../RemoteConnection'; 2 | 3 | export async function waitForOTPAnswer(state: RemoteConnectionState) { 4 | while (state.otpAnswer === undefined) { 5 | await new Promise((res) => setTimeout(() => res(), 1000)); 6 | } 7 | return state.otpAnswer; 8 | } 9 | -------------------------------------------------------------------------------- /packages/sdk/src/services/RemoteConnection/index.ts: -------------------------------------------------------------------------------- 1 | export * from './RemoteConnection'; 2 | -------------------------------------------------------------------------------- /packages/sdk/src/services/SDKProvider/ChainManager/index.ts: -------------------------------------------------------------------------------- 1 | export * from './handleChainChanged'; 2 | -------------------------------------------------------------------------------- /packages/sdk/src/services/SDKProvider/ConnectionManager/index.ts: -------------------------------------------------------------------------------- 1 | export * from './handleDisconnect'; 2 | -------------------------------------------------------------------------------- /packages/sdk/src/services/SDKProvider/InitializationManager/index.ts: -------------------------------------------------------------------------------- 1 | export * from './initializeState'; 2 | export * from './initializeStateAsync'; 3 | -------------------------------------------------------------------------------- /packages/sdk/src/types/SDKLoggingOptions.ts: -------------------------------------------------------------------------------- 1 | import { CommunicationLayerLoggingOptions } from '@metamask/sdk-communication-layer'; 2 | 3 | export interface SDKLoggingOptions extends CommunicationLayerLoggingOptions { 4 | // automatically switch all logging options on 5 | developerMode?: boolean; 6 | sdk?: boolean; 7 | } 8 | -------------------------------------------------------------------------------- /packages/sdk/src/types/SDKUIOptions.ts: -------------------------------------------------------------------------------- 1 | export interface SDKUIOptions { 2 | installer?: (params: { link: string }) => void; 3 | confirm?: () => void; 4 | } 5 | -------------------------------------------------------------------------------- /packages/sdk/src/ui/InstallModal/InstallModal-nonweb.ts: -------------------------------------------------------------------------------- 1 | import { logger } from '../../utils/logger'; 2 | 3 | const InstallModal = ({ link }: { link: string; debug?: boolean }) => { 4 | logger(`[UI: InstallModal-nonweb()] INSTALL MODAL link=${link}`); 5 | return { 6 | unmount: () => undefined, 7 | }; 8 | }; 9 | export default InstallModal; 10 | -------------------------------------------------------------------------------- /packages/sdk/src/utils/doctypeCheck.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Checks the doctype of the current document if it exists 3 | * 4 | * returns {boolean} {@code true} if the doctype is html or if none exists 5 | */ 6 | export function doctypeCheck() { 7 | if ( 8 | typeof window !== 'undefined' && 9 | typeof window?.document !== 'undefined' 10 | ) { 11 | return window.document?.doctype?.name === 'html'; 12 | } 13 | return false; 14 | } 15 | -------------------------------------------------------------------------------- /packages/sdk/src/utils/logger.ts: -------------------------------------------------------------------------------- 1 | import debug from 'debug'; 2 | 3 | /** 4 | * Logger for the SDK. 5 | * This logger uses the 'debug' library for outputting debug information. 6 | * Logging is enabled in the code via `debug.enable('__NAMESPACE__')`. 7 | */ 8 | export const logger = debug('MM_SDK'); 9 | 10 | logger.color = '#FFAC1C'; 11 | -------------------------------------------------------------------------------- /packages/sdk/src/utils/shouldForceInjectProvider.ts: -------------------------------------------------------------------------------- 1 | export const shouldForceInjectProvider = (forceInjectProvider: boolean) => { 2 | return ( 3 | forceInjectProvider || 4 | // eslint-disable-next-line @typescript-eslint/ban-ts-comment 5 | // @ts-ignore 6 | (typeof window !== 'undefined' && window.navigator.brave) 7 | ); 8 | }; 9 | -------------------------------------------------------------------------------- /packages/sdk/src/utils/wait.ts: -------------------------------------------------------------------------------- 1 | export const wait = (time: number) => { 2 | return new Promise((resolve) => { 3 | setTimeout(() => { 4 | resolve(true); 5 | }, time); 6 | }); 7 | }; 8 | -------------------------------------------------------------------------------- /packages/sdk/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": {}, 4 | "references": [] 5 | } 6 | -------------------------------------------------------------------------------- /pictures/SDK_Session_Diagram.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MetaMask/metamask-sdk/104176ef9f6561d15454aa52436898adaf8410b2/pictures/SDK_Session_Diagram.jpg -------------------------------------------------------------------------------- /release.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "versioningStrategy": "independent" 3 | } 4 | -------------------------------------------------------------------------------- /scripts/link-packages.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | cd ./packages 3 | 4 | packages=("sdk" "sdk-communication-layer" "sdk-react" "sdk-install-modal-web") 5 | for name in "${packages[@]}" 6 | do 7 | cd $name 8 | # We swallow the output of "yarn unlink" because we don't care if it fails 9 | ! yarn unlink &> /dev/null 10 | yarn link 11 | cd .. 12 | done 13 | -------------------------------------------------------------------------------- /scripts/prepack.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -x 4 | set -e 5 | set -o pipefail 6 | 7 | if [[ -n $SKIP_PREPACK ]]; then 8 | echo "Notice: skipping prepack." 9 | exit 0 10 | fi 11 | 12 | yarn build 13 | -------------------------------------------------------------------------------- /scripts/validate-changelog.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -euo pipefail 4 | 5 | if [[ $# -eq 0 ]]; then 6 | echo "Missing package name." 7 | exit 1 8 | fi 9 | 10 | package_name="$1" 11 | 12 | if [[ "${GITHUB_REF:-}" =~ '^release/' ]]; then 13 | yarn auto-changelog validate --tag-prefix "${package_name}@" --rc 14 | else 15 | yarn auto-changelog validate --tag-prefix "${package_name}@" 16 | fi 17 | --------------------------------------------------------------------------------