{"_id":"@civic/multichain-wallet-connect","_rev":"34-27aa1c9d82b62e48fd78613b412e0e9f","name":"@civic/multichain-wallet-connect","dist-tags":{"latest":"0.0.1-beta.0","beta":"0.0.1-beta.17"},"versions":{"0.0.1-beta.0":{"name":"@civic/multichain-wallet-connect","version":"0.0.1-beta.0","author":{"name":"civic.com"},"license":"MIT","_id":"@civic/multichain-wallet-connect@0.0.1-beta.0","maintainers":[{"name":"ndrabins","email":"noah.drabinsky1@gmail.com"},{"name":"dmelosantos","email":"danielmelos@gmail.com"},{"name":"jp-civic","email":"jp@civic.com"},{"name":"chriteixeira","email":"chriteixeira@gmail.com"},{"name":"daneel","email":"daneel@civic.com"},{"name":"mitchcivic","email":"mitch@civic.com"},{"name":"dankelleher","email":"dankelleher@yahoo.com"},{"name":"jonthepilot","email":"jonathan@civic.com"},{"name":"rado0x54","email":"web@riedel-it.de"},{"name":"araptarchis","email":"alexis.raptarchis@googlemail.com"},{"name":"civicfinance","email":"camille@civic.com"},{"name":"kevinhcolgan","email":"kevin@civic.com"},{"name":"flippiescholtz","email":"flippie@civic.com"},{"name":"tyronemichael","email":"tyronemichael@gmail.com"},{"name":"lucmir","email":"luccmir@gmail.com"},{"name":"william-identity","email":"william@identity.org"}],"homepage":"https://github.com/civicteam/civic.me#readme","bugs":{"url":"https://github.com/civicteam/civic.me/issues"},"dist":{"shasum":"42f671c5a092a3ebabc38458fad88214ee46d252","tarball":"https://registry.npmjs.org/@civic/multichain-wallet-connect/-/multichain-wallet-connect-0.0.1-beta.0.tgz","fileCount":86,"integrity":"sha512-TdyZj2SIGAveHl/Gy0d+bmjDUvCgaW5N03bKu9RbShn+9YJhlGm1XroKhXdRDi/BDtxin23iUCWVeA1eyYzQ/A==","signatures":[{"sig":"MEQCIAapBn59SNMcQiie1zbKbMQHOuYgZy6eRzvReNHZlSPeAiBnVMRYH2vKiMVwTPCdkaMzDlTFvDPdy/9BECsqrIZZMw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":118859},"main":"./dist/umd/index.js","types":"./dist/typings/index.d.ts","module":"./dist/esm/index.js","engines":{"node":">=16"},"gitHead":"e747a2cd10619c160798b3f0e44603772063a91d","scripts":{"lint":"eslint -c .eslintrc.js '{src,test}/**/*.ts'","test":"yarn test:unit","build":"tsc -b tsconfig.build.json && tsc -b tsconfig.umd.json","lint:fix":"eslint -c .eslintrc.js --fix '{src,test}/**/*.ts'","test:unit":"STAGE=${STAGE:-local} FORCE_COLOR=1 LOG_LEVEL=error LOCAL=true  ts-mocha -p tsconfig.mocha.json --timeout 20000 --paths 'test/unit/**/*.ts'","test:mocha":"STAGE=${STAGE:-local} FORCE_COLOR=1 LOG_LEVEL=error LOCAL=true nyc --reporter=text --reporter=html mocha","test:watch":"ts-mocha -p tsconfig.mocha.json 'test/**/*.ts' -w --watch-files '**/**/*.ts'"},"_npmUser":{"name":"tyronemichael","email":"tyronemichael@gmail.com"},"repository":{"url":"git+ssh://git@github.com/civicteam/civic.me.git","type":"git"},"_npmVersion":"8.19.2","description":"A multichain wallet connect library","directories":{},"_nodeVersion":"18.12.1","dependencies":{"ramda":"^0.28.0","wagmi":"^0.12.13","ethers":"^5","@types/react":"^17.0.0","@solana/web3.js":"^1.76.0","@headlessui/react":"^1.7.14","styled-components":"^6.0.0-rc.2","@wallet-standard/app":"^1.0.1","@wallet-standard/core":"^1.0.3","@rainbow-me/rainbowkit":"^0.12.14","@wallet-standard/wallet":"^1.0.1","@civic/civic-chain-icons":"0.0.5-beta.0","@civic/civic-eth-provider":"0.0.8-beta.2","@solana/wallet-adapter-base":"^0.9.22","@wallet-standard/react-core":"^0.1.4","@solana/wallet-adapter-react":"^0.15.32","@solana/wallet-adapter-wallets":"^0.19.16","@solana/wallet-adapter-react-ui":"^0.9.31","@solana/wallet-standard-wallet-adapter-react":"^1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","chai":"^4.3.6","husky":"^8.0.1","mocha":"^9.2.2","sinon":"^14.0.0","ts-node":"^10.7.0","eslint_d":"^12.0.0","ts-mocha":"^10.0.0","sinon-chai":"^3.7.0","@types/chai":"^4.3.1","@types/jsdom":"^16.2.14","@types/mocha":"^9.1.0","@types/ramda":"^0.28.12","@types/sinon":"^10.0.11","@types/expect":"^24.3.0","tsconfig-paths":"^3.9.0","chai-as-promised":"^7.1.1","@types/sinon-chai":"^3.2.8","eslint-plugin-no-only-tests":"^3.1.0"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"_npmOperationalInternal":{"tmp":"tmp/multichain-wallet-connect_0.0.1-beta.0_1685018153155_0.7682834661434716","host":"s3://npm-registry-packages"}},"0.0.1-beta.1":{"name":"@civic/multichain-wallet-connect","version":"0.0.1-beta.1","author":{"name":"civic.com"},"license":"MIT","_id":"@civic/multichain-wallet-connect@0.0.1-beta.1","maintainers":[{"name":"ndrabins","email":"noah.drabinsky1@gmail.com"},{"name":"dmelosantos","email":"danielmelos@gmail.com"},{"name":"jp-civic","email":"jp@civic.com"},{"name":"chriteixeira","email":"chriteixeira@gmail.com"},{"name":"daneel","email":"daneel@civic.com"},{"name":"mitchcivic","email":"mitch@civic.com"},{"name":"dankelleher","email":"dankelleher@yahoo.com"},{"name":"jonthepilot","email":"jonathan@civic.com"},{"name":"rado0x54","email":"web@riedel-it.de"},{"name":"araptarchis","email":"alexis.raptarchis@googlemail.com"},{"name":"civicfinance","email":"camille@civic.com"},{"name":"kevinhcolgan","email":"kevin@civic.com"},{"name":"flippiescholtz","email":"flippie@civic.com"},{"name":"tyronemichael","email":"tyronemichael@gmail.com"},{"name":"lucmir","email":"luccmir@gmail.com"},{"name":"william-identity","email":"william@identity.org"}],"homepage":"https://github.com/civicteam/civic.me#readme","bugs":{"url":"https://github.com/civicteam/civic.me/issues"},"dist":{"shasum":"a59a81008cae842db9c7ebccf27c0c0c2a9826fc","tarball":"https://registry.npmjs.org/@civic/multichain-wallet-connect/-/multichain-wallet-connect-0.0.1-beta.1.tgz","fileCount":86,"integrity":"sha512-0OSdqOUB4BP5X9wGVGSAzsdIuMO1SzkAQVqxshuxsVVAxRH9VOabqLvltlVeE8t67bXwouTFmiK+MxYk5YKEKA==","signatures":[{"sig":"MEYCIQCKVSlunU0IN4k/RtSwCspPqO209uiN0Lgc0d5QJQVgcQIhAJGgOdeH1TbNAWXOpromDGOzM4Ac873/91gh1xwj9rRU","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":118859},"main":"./dist/umd/index.js","types":"./dist/typings/index.d.ts","module":"./dist/esm/index.js","readme":"# Overview\n\nComing soon\n","engines":{"node":">=16"},"gitHead":"eaf3f5c0cc09cf74290d34164d1be8920366f6ce","scripts":{"lint":"eslint -c .eslintrc.js '{src,test}/**/*.ts'","test":"yarn test:unit","build":"tsc -b tsconfig.build.json && tsc -b tsconfig.umd.json","lint:fix":"eslint -c .eslintrc.js --fix '{src,test}/**/*.ts'","test:unit":"STAGE=${STAGE:-local} FORCE_COLOR=1 LOG_LEVEL=error LOCAL=true  ts-mocha -p tsconfig.mocha.json --timeout 20000 --paths 'test/unit/**/*.ts'","test:mocha":"STAGE=${STAGE:-local} FORCE_COLOR=1 LOG_LEVEL=error LOCAL=true nyc --reporter=text --reporter=html mocha","test:watch":"ts-mocha -p tsconfig.mocha.json 'test/**/*.ts' -w --watch-files '**/**/*.ts'"},"_npmUser":{"name":"tyronemichael","email":"tyronemichael@gmail.com"},"repository":{"url":"git+ssh://git@github.com/civicteam/civic.me.git","type":"git"},"_npmVersion":"8.19.2","description":"A multichain wallet connect library","directories":{},"_nodeVersion":"18.12.1","dependencies":{"ramda":"^0.28.0","wagmi":"^0.12.13","ethers":"^5","@types/react":"^17.0.0","@solana/web3.js":"^1.76.0","@headlessui/react":"^1.7.14","styled-components":"^6.0.0-rc.2","@wallet-standard/app":"^1.0.1","@wallet-standard/core":"^1.0.3","@rainbow-me/rainbowkit":"^0.12.14","@wallet-standard/wallet":"^1.0.1","@civic/civic-chain-icons":"0.0.5-beta.0","@civic/civic-eth-provider":"0.0.8-beta.2","@solana/wallet-adapter-base":"^0.9.22","@wallet-standard/react-core":"^0.1.4","@solana/wallet-adapter-react":"^0.15.32","@solana/wallet-adapter-wallets":"^0.19.16","@solana/wallet-adapter-react-ui":"^0.9.31","@solana/wallet-standard-wallet-adapter-react":"^1.0.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.1.0","chai":"^4.3.6","husky":"^8.0.1","mocha":"^9.2.2","sinon":"^14.0.0","ts-node":"^10.7.0","eslint_d":"^12.0.0","ts-mocha":"^10.0.0","sinon-chai":"^3.7.0","@types/chai":"^4.3.1","@types/jsdom":"^16.2.14","@types/mocha":"^9.1.0","@types/ramda":"^0.28.12","@types/sinon":"^10.0.11","@types/expect":"^24.3.0","tsconfig-paths":"^3.9.0","chai-as-promised":"^7.1.1","@types/sinon-chai":"^3.2.8","eslint-plugin-no-only-tests":"^3.1.0"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"_npmOperationalInternal":{"tmp":"tmp/multichain-wallet-connect_0.0.1-beta.1_1685101700250_0.1530422210069775","host":"s3://npm-registry-packages"}},"0.0.1-beta.2":{"name":"@civic/multichain-wallet-connect","version":"0.0.1-beta.2","author":{"name":"civic.com"},"license":"MIT","_id":"@civic/multichain-wallet-connect@0.0.1-beta.2","maintainers":[{"name":"ndrabins","email":"noah.drabinsky1@gmail.com"},{"name":"dmelosantos","email":"danielmelos@gmail.com"},{"name":"jp-civic","email":"jp@civic.com"},{"name":"chriteixeira","email":"chriteixeira@gmail.com"},{"name":"daneel","email":"daneel@civic.com"},{"name":"mitchcivic","email":"mitch@civic.com"},{"name":"dankelleher","email":"dankelleher@yahoo.com"},{"name":"jonthepilot","email":"jonathan@civic.com"},{"name":"rado0x54","email":"web@riedel-it.de"},{"name":"araptarchis","email":"alexis.raptarchis@googlemail.com"},{"name":"civicfinance","email":"camille@civic.com"},{"name":"kevinhcolgan","email":"kevin@civic.com"},{"name":"flippiescholtz","email":"flippie@civic.com"},{"name":"tyronemichael","email":"tyronemichael@gmail.com"},{"name":"lucmir","email":"luccmir@gmail.com"},{"name":"william-identity","email":"william@identity.org"}],"homepage":"https://github.com/civicteam/civic.me#readme","bugs":{"url":"https://github.com/civicteam/civic.me/issues"},"dist":{"shasum":"6ff3c3c4a919d1cb1e9f85843bf6d6cc6301912b","tarball":"https://registry.npmjs.org/@civic/multichain-wallet-connect/-/multichain-wallet-connect-0.0.1-beta.2.tgz","fileCount":86,"integrity":"sha512-wuGQI9zSbhYiRMIuptS+A7JWXv+w+thv7gCofGr4a6edTQKvZDl7Dh1lbBpmBms1JE6GJNHrV4HLC91gIt5/Mg==","signatures":[{"sig":"MEQCIAacgxZgBZBjUeouLNI1eJUvohO+8Nq6fqubay2TuMiqAiAKBC5a35lTx5BUIftHXOtSn+WbENkFDhgR6pwI5RBByQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":118874},"main":"./dist/umd/index.js","types":"./dist/typings/index.d.ts","module":"./dist/esm/index.js","readme":"## Library Specification: Multi-Chain Wallet Support\n\n### Overview\nThe library provides support for multiple chains by leveraging the [Wallet Standard](https://github.com/wallet-standard/wallet-standard). It enables the injection of wallets that conform to the wallet standard into Wallet Adapters. The Wallet Adapters serve as UI interfaces that allow users to select their preferred wallet for connecting to the dApp. The library currently supports the [Solana Wallet Adapter](https://github.com/solana-labs/wallet-adapter) and [Rainbowkit](https://www.rainbowkit.com), both of which implement the same interface. This design allows for easy switching between different Wallet Adapters.\n\n### Core Functionality\n1. Wallet Standard:\n   - The library uses the wallet standard defined [here](https://github.com/wallet-standard/wallet-standard).\n   - The standard interface includes common methods for connecting to a blockchain, signing transactions, and retrieving account information.\n\n2. Wallet Adapters:\n   - Wallet Adapters serve as UI interfaces for users to select their preferred wallet.\n   - The Wallet Adapters should be capable of handling multiple wallets, each conforming to the wallet standard.\n   - The library has implemented a mechanism for dynamically switching between different Wallet Adapters at runtime.\n   - A common interface has also been developed to allow the use of different wallet adapters.\n   - Currently, the library supports the [Solana Wallet Adapter](https://github.com/solana-labs/wallet-adapter) and [Rainbowkit](https://www.rainbowkit.com).\n\n3. Solana Wallet Adapter:\n   - Implements the Wallet Adapter interface specifically for the Solana blockchain.\n   - Integrates with Solana wallets that conform to the wallet standard.\n   - Provides a user-friendly interface for selecting and connecting to Solana wallets.\n   - Supports common operations such as transaction signing and account information retrieval for Solana.\n\n4. Rainbowkit Wallet Adapter:\n   - Implements the Wallet Adapter specifically for EVM-supported wallets.\n   - Integrates with the Rainbowkit wallet that conforms to the wallet standard.\n   - Provides a user-friendly interface for selecting and connecting to EVM-supported wallets.\n   - Supports common operations such as transaction signing and account information retrieval for Rainbowkit.\n\n### Extensibility and Switching Wallet Adapters\n1. Interface Consistency:\n   - Ensures that all Wallet Adapters conform to the same interface defined by the wallet standard.\n   - This allows for seamless switching between different Wallet Adapters without modifying the core library code.\n\n2. Future Wallet Adapters:\n   - The library is designed to be extensible, allowing for the addition of new Wallet Adapters in the future.\n   - New Wallet Adapters should conform to the wallet standard and integrate with the library's core functionality.\n   - Clear documentation and guidelines are provided for developers to create new Wallet Adapters.\n\n### Installation\n\nInstall the component using `yarn install @civic/multichain-wallet-connect` or `npm i -S @civic/multichain-wallet-connect`.\n\n### Architecture\n\nThe architecture can be viewed [here](https://mermaid.live/view#pako:eNqVVE1rwzAM_SvC5-0P5FAoHYzCxmCl9JKLGquNwbEzW17ZSv_77Ngt_abLyUh6T3rPcraisZJEJTx9BTINvShcO-xqA_Gbe3LPo9F8WsFHTwbkuO9LZhrj70GzmrSozMQaQw1XMDWKFWr1S7BR3IIPfW8dk4Qm1fmMvgBGsgVqTTyW2DO5EyJuCXIWSjpzb4aYj3lkaKxZWdcB26E-58AzGolO3m6btM1au0kEKQTLwGzNif4rOsvhDq9PKgbXOitR37PjdpsZ6TTTUHy71zUgW5ed8wPFvuPD_r9hME17hvZn95DZTpAH6Z_EwRlA0Moz2BXgNyqNS01HF0cQYjE0aA7-J59ObDkbrFiSOa4PcMWPMk1pEvUsjvD_9vRxmrPhX4kPQudTiBsLPi6fMusjzrK7N8zd72uBX8DiwpcdHvJS-VKSmuQa8SQ6ch0qGR_-NvWpRZTVUS2qeJS0wiilFrXZxVIMbGc_phEVu0BPIvQSef-fyMHdH73-g1Y).\n\n```mermaid\nsequenceDiagram\n    User->>UI: Open dApp\n    UI->>MultiChainConnect: Initialize with supported chains\n    MultiChainConnect->>WalletAdapter: Initialize the Wallet Adapter with wallets that conform to the wallet standard\n    MultiChainConnect->>UI: Show connect button\n    User->>MultiChainConnect: Connect\n    MultiChainConnect->>User: Open modal with supported chains\n    User->>MultiChainConnect: Select chain\n    MultiChainConnect->>MultiChainConnect: Store the selected chain\n    MultiChainConnect->>WalletAdapter: Launch selected chain's Wallet Adapter\n    WalletAdapter->>User: Return a list of available wallets the user can connect with\n    User->>WalletAdapter: Select wallet\n    WalletAdapter->>MultiChainConnect: Return connected Wallet\n    MultiChainConnect->>MultiChainConnect: Store the connected Wallet\n    MultiChainConnect->>WalletAdapter: Get connect UI for showing the connected wallet \n    WalletAdapter->>UI: Show UI for connected wallet and button for disconnecting wallet\n```\n\n### Example Usage\n\n1. Importing the Library:\n\n```javascript\nimport React from 'react';\nimport { MultichainWalletProvider, createChain } from '@civic/multichain-wallet-connect';\n\nconst ExampleComponent: React.FC = () => {\n  return (\n    <MultichainWalletProvider\n      chains={[createChain.ethereum('mainnet')]}\n    >\n      <MultichainConnectButton />\n    </MultichainWalletProvider>\n  );\n};\n\nexport default ExampleComponent;\n```\n\n### Custom button\n\n1. Creating your own button with custom styling:\n\n```javascript\n/* eslint-disable import/no-extraneous-dependencies */\nimport React from \"react\";\nimport styled from \"styled-components\";\nimport { MultichainConnectedButton, useWallet, useModal } from \"@civic/multichain-wallet-connect\";\n\n// Styled component named StyledButton\nconst StyledButton = styled.button`\n  display: inline-block;\n  border-radius: 20px;\n  padding: 0.5rem 0;\n  margin: 0.5rem 1rem;\n  width: 11rem;\n  border: 2px solid black;\n  background: white;\n  color: black;\n`;\n\nexport function MultichainConnectButton(): JSX.Element | null {\n  const { connected } = useWallet();\n  const { openConnectModal } = useModal();\n\n  return (\n    <>\n      {!connected && (\n        <StyledButton type=\"button\" onClick={openConnectModal}>\n          Connect\n        </StyledButton>\n      )}\n      <MultichainConnectedButton />\n    </>\n  );\n}\n```","engines":{"node":">=16"},"scripts":{"lint":"eslint -c .eslintrc.js '{src,test}/**/*.ts'","test":"yarn test:unit","build":"tsc -b tsconfig.build.json && tsc -b tsconfig.umd.json","lint:fix":"eslint -c .eslintrc.js --fix '{src,test}/**/*.ts'","test:unit":"STAGE=${STAGE:-local} FORCE_COLOR=1 LOG_LEVEL=error LOCAL=true  ts-mocha -p tsconfig.mocha.json --timeout 20000 --paths 'test/unit/**/*.ts'","test:mocha":"STAGE=${STAGE:-local} FORCE_COLOR=1 LOG_LEVEL=error LOCAL=true nyc --reporter=text --reporter=html mocha","test:watch":"ts-mocha -p tsconfig.mocha.json 'test/**/*.ts' -w --watch-files '**/**/*.ts'"},"_npmUser":{"name":"tyronemichael","email":"tyronemichael@gmail.com"},"repository":{"url":"git+ssh://git@github.com/civicteam/civic.me.git","type":"git"},"_npmVersion":"6.14.17","description":"A multichain wallet connect library","directories":{},"_nodeVersion":"14.21.2","dependencies":{"ramda":"^0.28.0","wagmi":"^0.12.13","ethers":"^5","@types/react":"^17.0.0","@solana/web3.js":"^1.76.0","@headlessui/react":"^1.7.14","styled-components":"^6.0.0-rc.2","@wallet-standard/app":"^1.0.1","@wallet-standard/core":"^1.0.3","@rainbow-me/rainbowkit":"^0.12.14","@wallet-standard/wallet":"^1.0.1","@civic/civic-chain-icons":"0.0.5-beta.0","@civic/civic-eth-provider":"0.0.8-beta.2","@solana/wallet-adapter-base":"^0.9.22","@wallet-standard/react-core":"^0.1.4","@solana/wallet-adapter-react":"^0.15.32","@solana/wallet-adapter-wallets":"^0.19.16","@solana/wallet-adapter-react-ui":"^0.9.31","@solana/wallet-standard-wallet-adapter-react":"^1.0.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.1.0","chai":"^4.3.6","husky":"^8.0.1","mocha":"^9.2.2","sinon":"^14.0.0","ts-node":"^10.7.0","eslint_d":"^12.0.0","ts-mocha":"^10.0.0","sinon-chai":"^3.7.0","@types/chai":"^4.3.1","@types/jsdom":"^16.2.14","@types/mocha":"^9.1.0","@types/ramda":"^0.28.12","@types/sinon":"^10.0.11","@types/expect":"^24.3.0","tsconfig-paths":"^3.9.0","chai-as-promised":"^7.1.1","@types/sinon-chai":"^3.2.8","eslint-plugin-no-only-tests":"^3.1.0"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"_npmOperationalInternal":{"tmp":"tmp/multichain-wallet-connect_0.0.1-beta.2_1685347155280_0.27658473117454285","host":"s3://npm-registry-packages"}},"0.0.1-beta.3":{"name":"@civic/multichain-wallet-connect","version":"0.0.1-beta.3","author":{"name":"civic.com"},"license":"MIT","_id":"@civic/multichain-wallet-connect@0.0.1-beta.3","maintainers":[{"name":"ndrabins","email":"noah.drabinsky1@gmail.com"},{"name":"dmelosantos","email":"danielmelos@gmail.com"},{"name":"jp-civic","email":"jp@civic.com"},{"name":"chriteixeira","email":"chriteixeira@gmail.com"},{"name":"daneel","email":"daneel@civic.com"},{"name":"mitchcivic","email":"mitch@civic.com"},{"name":"dankelleher","email":"dankelleher@yahoo.com"},{"name":"jonthepilot","email":"jonathan@civic.com"},{"name":"rado0x54","email":"web@riedel-it.de"},{"name":"araptarchis","email":"alexis.raptarchis@googlemail.com"},{"name":"civicfinance","email":"camille@civic.com"},{"name":"kevinhcolgan","email":"kevin@civic.com"},{"name":"flippiescholtz","email":"flippie@civic.com"},{"name":"tyronemichael","email":"tyronemichael@gmail.com"},{"name":"lucmir","email":"luccmir@gmail.com"},{"name":"william-identity","email":"william@identity.org"}],"homepage":"https://github.com/civicteam/civic.me#readme","bugs":{"url":"https://github.com/civicteam/civic.me/issues"},"dist":{"shasum":"f12353791331bae1545032858c33f2a174b76cf5","tarball":"https://registry.npmjs.org/@civic/multichain-wallet-connect/-/multichain-wallet-connect-0.0.1-beta.3.tgz","fileCount":86,"integrity":"sha512-Psi4PUkGipxIZbLOWvpw5XY5vwDYX/BYTrn4KB5heibBOyLPk4OBWQLmZkAE9z/tdaUWmIKo8ZwwUn6Mel1GdQ==","signatures":[{"sig":"MEUCIQDHx1XoFTC6ewtff8PnffpoyyjXIuymjyE1raqJ510HawIgdQRo8So+1871ZbD7R7AWpU4UCZHyp1iNV4ajSHo9uJw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":124401},"main":"./dist/umd/index.js","types":"./dist/typings/index.d.ts","module":"./dist/esm/index.js","readme":"## Library Specification: Multi-Chain Wallet Support\n\n### Overview\nThe library provides support for multiple chains by leveraging the [Wallet Standard](https://github.com/wallet-standard/wallet-standard). It enables the injection of wallets that conform to the wallet standard into Wallet Adapters. The Wallet Adapters serve as UI interfaces that allow users to select their preferred wallet for connecting to the dApp. The library currently supports the [Solana Wallet Adapter](https://github.com/solana-labs/wallet-adapter) and [Rainbowkit](https://www.rainbowkit.com), both of which implement the same interface. This design allows for easy switching between different Wallet Adapters.\n\n### Core Functionality\n1. Wallet Standard:\n   - The library uses the wallet standard defined [here](https://github.com/wallet-standard/wallet-standard).\n   - The standard interface includes common methods for connecting to a blockchain, signing transactions, and retrieving account information.\n\n2. Wallet Adapters:\n   - Wallet Adapters serve as UI interfaces for users to select their preferred wallet.\n   - The Wallet Adapters should be capable of handling multiple wallets, each conforming to the wallet standard.\n   - The library has implemented a mechanism for dynamically switching between different Wallet Adapters at runtime.\n   - A common interface has also been developed to allow the use of different wallet adapters.\n   - Currently, the library supports the [Solana Wallet Adapter](https://github.com/solana-labs/wallet-adapter) and [Rainbowkit](https://www.rainbowkit.com).\n\n3. Solana Wallet Adapter:\n   - Implements the Wallet Adapter interface specifically for the Solana blockchain.\n   - Integrates with Solana wallets that conform to the wallet standard.\n   - Provides a user-friendly interface for selecting and connecting to Solana wallets.\n   - Supports common operations such as transaction signing and account information retrieval for Solana.\n\n4. Rainbowkit Wallet Adapter:\n   - Implements the Wallet Adapter specifically for EVM-supported wallets.\n   - Integrates with the Rainbowkit wallet that conforms to the wallet standard.\n   - Provides a user-friendly interface for selecting and connecting to EVM-supported wallets.\n   - Supports common operations such as transaction signing and account information retrieval for Rainbowkit.\n\n### Extensibility and Switching Wallet Adapters\n1. Interface Consistency:\n   - Ensures that all Wallet Adapters conform to the same interface defined by the wallet standard.\n   - This allows for seamless switching between different Wallet Adapters without modifying the core library code.\n\n2. Future Wallet Adapters:\n   - The library is designed to be extensible, allowing for the addition of new Wallet Adapters in the future.\n   - New Wallet Adapters should conform to the wallet standard and integrate with the library's core functionality.\n   - Clear documentation and guidelines are provided for developers to create new Wallet Adapters.\n\n### Installation\n\nInstall the component using `yarn install @civic/multichain-wallet-connect` or `npm i -S @civic/multichain-wallet-connect`.\n\n### Architecture\n\nThe architecture can be viewed [here](https://mermaid.live/view#pako:eNqVVE1rwzAM_SvC5-0P5FAoHYzCxmCl9JKLGquNwbEzW17ZSv_77Ngt_abLyUh6T3rPcraisZJEJTx9BTINvShcO-xqA_Gbe3LPo9F8WsFHTwbkuO9LZhrj70GzmrSozMQaQw1XMDWKFWr1S7BR3IIPfW8dk4Qm1fmMvgBGsgVqTTyW2DO5EyJuCXIWSjpzb4aYj3lkaKxZWdcB26E-58AzGolO3m6btM1au0kEKQTLwGzNif4rOsvhDq9PKgbXOitR37PjdpsZ6TTTUHy71zUgW5ed8wPFvuPD_r9hME17hvZn95DZTpAH6Z_EwRlA0Moz2BXgNyqNS01HF0cQYjE0aA7-J59ObDkbrFiSOa4PcMWPMk1pEvUsjvD_9vRxmrPhX4kPQudTiBsLPi6fMusjzrK7N8zd72uBX8DiwpcdHvJS-VKSmuQa8SQ6ch0qGR_-NvWpRZTVUS2qeJS0wiilFrXZxVIMbGc_phEVu0BPIvQSef-fyMHdH73-g1Y).\n\n```mermaid\nsequenceDiagram\n    User->>UI: Open dApp\n    UI->>MultiChainConnect: Initialize with supported chains\n    MultiChainConnect->>WalletAdapter: Initialize the Wallet Adapter with wallets that conform to the wallet standard\n    MultiChainConnect->>UI: Show connect button\n    User->>MultiChainConnect: Connect\n    MultiChainConnect->>User: Open modal with supported chains\n    User->>MultiChainConnect: Select chain\n    MultiChainConnect->>MultiChainConnect: Store the selected chain\n    MultiChainConnect->>WalletAdapter: Launch selected chain's Wallet Adapter\n    WalletAdapter->>User: Return a list of available wallets the user can connect with\n    User->>WalletAdapter: Select wallet\n    WalletAdapter->>MultiChainConnect: Return connected Wallet\n    MultiChainConnect->>MultiChainConnect: Store the connected Wallet\n    MultiChainConnect->>WalletAdapter: Get connect UI for showing the connected wallet \n    WalletAdapter->>UI: Show UI for connected wallet and button for disconnecting wallet\n```\n\n### Example Usage\n\n1. Importing the Library:\n\n```javascript\nimport React from 'react';\nimport { MultichainWalletProvider, createChain } from '@civic/multichain-wallet-connect';\n\nconst ExampleComponent: React.FC = () => {\n  return (\n    <MultichainWalletProvider\n      chains={[createChain.ethereum('mainnet')]}\n    >\n      <MultichainConnectButton />\n    </MultichainWalletProvider>\n  );\n};\n\nexport default ExampleComponent;\n```\n\n### Custom button\n\n1. Creating your own button with custom styling:\n\n```javascript\n/* eslint-disable import/no-extraneous-dependencies */\nimport React from \"react\";\nimport styled from \"styled-components\";\nimport { MultichainConnectedButton, useWallet, useModal } from \"@civic/multichain-wallet-connect\";\n\n// Styled component named StyledButton\nconst StyledButton = styled.button`\n  display: inline-block;\n  border-radius: 20px;\n  padding: 0.5rem 0;\n  margin: 0.5rem 1rem;\n  width: 11rem;\n  border: 2px solid black;\n  background: white;\n  color: black;\n`;\n\nexport function MultichainConnectButton(): JSX.Element | null {\n  const { connected } = useWallet();\n  const { openConnectModal } = useModal();\n\n  return (\n    <>\n      {!connected && (\n        <StyledButton type=\"button\" onClick={openConnectModal}>\n          Connect\n        </StyledButton>\n      )}\n      <MultichainConnectedButton />\n    </>\n  );\n}\n```","engines":{"node":">=16"},"gitHead":"d1a0805dd083da785e840819caca4272b456f357","scripts":{"lint":"eslint -c .eslintrc.js '{src,test}/**/*.ts'","test":"yarn test:unit","build":"tsc -b tsconfig.build.json && tsc -b tsconfig.umd.json","lint:fix":"eslint -c .eslintrc.js --fix '{src,test}/**/*.ts'","test:unit":"STAGE=${STAGE:-local} FORCE_COLOR=1 LOG_LEVEL=error LOCAL=true  ts-mocha -p tsconfig.mocha.json --timeout 20000 --paths 'test/unit/**/*.ts'","test:mocha":"STAGE=${STAGE:-local} FORCE_COLOR=1 LOG_LEVEL=error LOCAL=true nyc --reporter=text --reporter=html mocha","test:watch":"ts-mocha -p tsconfig.mocha.json 'test/**/*.ts' -w --watch-files '**/**/*.ts'"},"_npmUser":{"name":"tyronemichael","email":"tyronemichael@gmail.com"},"repository":{"url":"git+ssh://git@github.com/civicteam/civic.me.git","type":"git"},"_npmVersion":"8.19.2","description":"A multichain wallet connect library","directories":{},"_nodeVersion":"18.12.1","dependencies":{"ramda":"^0.28.0","wagmi":"^0.12.13","ethers":"^5","@types/react":"^17.0.0","@solana/web3.js":"^1.76.0","@headlessui/react":"^1.7.14","styled-components":"^6.0.0-rc.2","@wallet-standard/app":"^1.0.1","@wallet-standard/core":"^1.0.3","@rainbow-me/rainbowkit":"^0.12.14","@wallet-standard/wallet":"^1.0.1","@civic/civic-chain-icons":"0.0.5-beta.0","@civic/civic-eth-provider":"0.0.8-beta.2","@solana/wallet-adapter-base":"^0.9.22","@wallet-standard/react-core":"^0.1.4","@solana/wallet-adapter-react":"^0.15.32","@solana/wallet-adapter-wallets":"^0.19.16","@solana/wallet-adapter-react-ui":"^0.9.31","@solana/wallet-standard-wallet-adapter-react":"^1.0.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.1.0","chai":"^4.3.6","husky":"^8.0.1","mocha":"^9.2.2","sinon":"^14.0.0","ts-node":"^10.7.0","eslint_d":"^12.0.0","ts-mocha":"^10.0.0","sinon-chai":"^3.7.0","@types/chai":"^4.3.1","@types/jsdom":"^16.2.14","@types/mocha":"^9.1.0","@types/ramda":"^0.28.12","@types/sinon":"^10.0.11","@types/expect":"^24.3.0","tsconfig-paths":"^3.9.0","chai-as-promised":"^7.1.1","@types/sinon-chai":"^3.2.8","eslint-plugin-no-only-tests":"^3.1.0"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"_npmOperationalInternal":{"tmp":"tmp/multichain-wallet-connect_0.0.1-beta.3_1685347700197_0.8596411179316739","host":"s3://npm-registry-packages"}},"0.0.1-beta.4":{"name":"@civic/multichain-wallet-connect","version":"0.0.1-beta.4","author":{"name":"civic.com"},"license":"MIT","_id":"@civic/multichain-wallet-connect@0.0.1-beta.4","maintainers":[{"name":"ndrabins","email":"noah.drabinsky1@gmail.com"},{"name":"dmelosantos","email":"danielmelos@gmail.com"},{"name":"jp-civic","email":"jp@civic.com"},{"name":"chriteixeira","email":"chriteixeira@gmail.com"},{"name":"daneel","email":"daneel@civic.com"},{"name":"mitchcivic","email":"mitch@civic.com"},{"name":"dankelleher","email":"dankelleher@yahoo.com"},{"name":"jonthepilot","email":"jonathan@civic.com"},{"name":"rado0x54","email":"web@riedel-it.de"},{"name":"araptarchis","email":"alexis.raptarchis@googlemail.com"},{"name":"civicfinance","email":"camille@civic.com"},{"name":"kevinhcolgan","email":"kevin@civic.com"},{"name":"flippiescholtz","email":"flippie@civic.com"},{"name":"tyronemichael","email":"tyronemichael@gmail.com"},{"name":"lucmir","email":"luccmir@gmail.com"},{"name":"william-identity","email":"william@identity.org"}],"homepage":"https://github.com/civicteam/civic.me#readme","bugs":{"url":"https://github.com/civicteam/civic.me/issues"},"dist":{"shasum":"17eb52cbc501de1819bd5b5c7d25e5e0f62e4790","tarball":"https://registry.npmjs.org/@civic/multichain-wallet-connect/-/multichain-wallet-connect-0.0.1-beta.4.tgz","fileCount":86,"integrity":"sha512-GvOcnTVYRifMkfMp2aNNbIQ2HimlSSobCcZPM45RPm5U2m9q52vwAMLOv44ErvRQg4Hbe/IfvGeh2Mexy1Embg==","signatures":[{"sig":"MEYCIQCm88W4JxCwQ0ms+ctEC4gOornmfXwboYXLtRAWsVtQCwIhANJ0CpmN1A9kr4iEeDJ5bAI80kxrYJQH2UCaBWnSEdCE","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":124557},"main":"./dist/umd/index.js","types":"./dist/typings/index.d.ts","module":"./dist/esm/index.js","readme":"## Library Specification: Multi-Chain Wallet Support\n\n### Overview\nThe library provides support for multiple chains by leveraging the [Wallet Standard](https://github.com/wallet-standard/wallet-standard). It enables the injection of wallets that conform to the wallet standard into Wallet Adapters. The Wallet Adapters serve as UI interfaces that allow users to select their preferred wallet for connecting to the dApp. The library currently supports the [Solana Wallet Adapter](https://github.com/solana-labs/wallet-adapter) and [Rainbowkit](https://www.rainbowkit.com), both of which implement the same interface. This design allows for easy switching between different Wallet Adapters.\n\n### Core Functionality\n1. Wallet Standard:\n   - The library uses the wallet standard defined [here](https://github.com/wallet-standard/wallet-standard).\n   - The standard interface includes common methods for connecting to a blockchain, signing transactions, and retrieving account information.\n\n2. Wallet Adapters:\n   - Wallet Adapters serve as UI interfaces for users to select their preferred wallet.\n   - The Wallet Adapters should be capable of handling multiple wallets, each conforming to the wallet standard.\n   - The library has implemented a mechanism for dynamically switching between different Wallet Adapters at runtime.\n   - A common interface has also been developed to allow the use of different wallet adapters.\n   - Currently, the library supports the [Solana Wallet Adapter](https://github.com/solana-labs/wallet-adapter) and [Rainbowkit](https://www.rainbowkit.com).\n\n3. Solana Wallet Adapter:\n   - Implements the Wallet Adapter interface specifically for the Solana blockchain.\n   - Integrates with Solana wallets that conform to the wallet standard.\n   - Provides a user-friendly interface for selecting and connecting to Solana wallets.\n   - Supports common operations such as transaction signing and account information retrieval for Solana.\n\n4. Rainbowkit Wallet Adapter:\n   - Implements the Wallet Adapter specifically for EVM-supported wallets.\n   - Integrates with the Rainbowkit wallet that conforms to the wallet standard.\n   - Provides a user-friendly interface for selecting and connecting to EVM-supported wallets.\n   - Supports common operations such as transaction signing and account information retrieval for Rainbowkit.\n\n### Extensibility and Switching Wallet Adapters\n1. Interface Consistency:\n   - Ensures that all Wallet Adapters conform to the same interface defined by the wallet standard.\n   - This allows for seamless switching between different Wallet Adapters without modifying the core library code.\n\n2. Future Wallet Adapters:\n   - The library is designed to be extensible, allowing for the addition of new Wallet Adapters in the future.\n   - New Wallet Adapters should conform to the wallet standard and integrate with the library's core functionality.\n   - Clear documentation and guidelines are provided for developers to create new Wallet Adapters.\n\n### Installation\n\nInstall the component using `yarn install @civic/multichain-wallet-connect` or `npm i -S @civic/multichain-wallet-connect`.\n\n### Architecture\n\nThe architecture can be viewed [here](https://mermaid.live/view#pako:eNqVVE1rwzAM_SvC5-0P5FAoHYzCxmCl9JKLGquNwbEzW17ZSv_77Ngt_abLyUh6T3rPcraisZJEJTx9BTINvShcO-xqA_Gbe3LPo9F8WsFHTwbkuO9LZhrj70GzmrSozMQaQw1XMDWKFWr1S7BR3IIPfW8dk4Qm1fmMvgBGsgVqTTyW2DO5EyJuCXIWSjpzb4aYj3lkaKxZWdcB26E-58AzGolO3m6btM1au0kEKQTLwGzNif4rOsvhDq9PKgbXOitR37PjdpsZ6TTTUHy71zUgW5ed8wPFvuPD_r9hME17hvZn95DZTpAH6Z_EwRlA0Moz2BXgNyqNS01HF0cQYjE0aA7-J59ObDkbrFiSOa4PcMWPMk1pEvUsjvD_9vRxmrPhX4kPQudTiBsLPi6fMusjzrK7N8zd72uBX8DiwpcdHvJS-VKSmuQa8SQ6ch0qGR_-NvWpRZTVUS2qeJS0wiilFrXZxVIMbGc_phEVu0BPIvQSef-fyMHdH73-g1Y).\n\n```mermaid\nsequenceDiagram\n    User->>UI: Open dApp\n    UI->>MultiChainConnect: Initialize with supported chains\n    MultiChainConnect->>WalletAdapter: Initialize the Wallet Adapter with wallets that conform to the wallet standard\n    MultiChainConnect->>UI: Show connect button\n    User->>MultiChainConnect: Connect\n    MultiChainConnect->>User: Open modal with supported chains\n    User->>MultiChainConnect: Select chain\n    MultiChainConnect->>MultiChainConnect: Store the selected chain\n    MultiChainConnect->>WalletAdapter: Launch selected chain's Wallet Adapter\n    WalletAdapter->>User: Return a list of available wallets the user can connect with\n    User->>WalletAdapter: Select wallet\n    WalletAdapter->>MultiChainConnect: Return connected Wallet\n    MultiChainConnect->>MultiChainConnect: Store the connected Wallet\n    MultiChainConnect->>WalletAdapter: Get connect UI for showing the connected wallet \n    WalletAdapter->>UI: Show UI for connected wallet and button for disconnecting wallet\n```\n\n### Example Usage\n\n1. Importing the Library:\n\n```javascript\nimport React from 'react';\nimport { MultichainWalletProvider, createChain } from '@civic/multichain-wallet-connect';\n\nconst ExampleComponent: React.FC = () => {\n  return (\n    <MultichainWalletProvider\n      chains={[createChain.ethereum('mainnet')]}\n    >\n      <MultichainConnectButton />\n    </MultichainWalletProvider>\n  );\n};\n\nexport default ExampleComponent;\n```\n\n### Custom button\n\n1. Creating your own button with custom styling:\n\n```javascript\n/* eslint-disable import/no-extraneous-dependencies */\nimport React from \"react\";\nimport styled from \"styled-components\";\nimport { MultichainConnectedButton, useWallet, useModal } from \"@civic/multichain-wallet-connect\";\n\n// Styled component named StyledButton\nconst StyledButton = styled.button`\n  display: inline-block;\n  border-radius: 20px;\n  padding: 0.5rem 0;\n  margin: 0.5rem 1rem;\n  width: 11rem;\n  border: 2px solid black;\n  background: white;\n  color: black;\n`;\n\nexport function MultichainConnectButton(): JSX.Element | null {\n  const { connected } = useWallet();\n  const { openConnectModal } = useModal();\n\n  return (\n    <>\n      {!connected && (\n        <StyledButton type=\"button\" onClick={openConnectModal}>\n          Connect\n        </StyledButton>\n      )}\n      <MultichainConnectedButton />\n    </>\n  );\n}\n```","engines":{"node":">=16"},"gitHead":"d1a0805dd083da785e840819caca4272b456f357","scripts":{"lint":"eslint -c .eslintrc.js '{src,test}/**/*.ts'","test":"yarn test:unit","build":"tsc -b tsconfig.build.json && tsc -b tsconfig.umd.json","lint:fix":"eslint -c .eslintrc.js --fix '{src,test}/**/*.ts'","test:unit":"STAGE=${STAGE:-local} FORCE_COLOR=1 LOG_LEVEL=error LOCAL=true  ts-mocha -p tsconfig.mocha.json --timeout 20000 --paths 'test/unit/**/*.ts'","test:mocha":"STAGE=${STAGE:-local} FORCE_COLOR=1 LOG_LEVEL=error LOCAL=true nyc --reporter=text --reporter=html mocha","test:watch":"ts-mocha -p tsconfig.mocha.json 'test/**/*.ts' -w --watch-files '**/**/*.ts'"},"_npmUser":{"name":"tyronemichael","email":"tyronemichael@gmail.com"},"repository":{"url":"git+ssh://git@github.com/civicteam/civic.me.git","type":"git"},"_npmVersion":"8.19.2","description":"A multichain wallet connect library","directories":{},"_nodeVersion":"18.12.1","dependencies":{"ramda":"^0.28.0","wagmi":"^0.12.13","ethers":"^5","@types/react":"^17.0.0","@solana/web3.js":"^1.76.0","@headlessui/react":"^1.7.14","styled-components":"^6.0.0-rc.2","@wallet-standard/app":"^1.0.1","@wallet-standard/core":"^1.0.3","@rainbow-me/rainbowkit":"^0.12.14","@wallet-standard/wallet":"^1.0.1","@civic/civic-chain-icons":"0.0.5-beta.0","@civic/civic-eth-provider":"0.0.8-beta.2","@solana/wallet-adapter-base":"^0.9.22","@wallet-standard/react-core":"^0.1.4","@solana/wallet-adapter-react":"^0.15.32","@solana/wallet-adapter-wallets":"^0.19.16","@solana/wallet-adapter-react-ui":"^0.9.31","@solana/wallet-standard-wallet-adapter-react":"^1.0.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.1.0","chai":"^4.3.6","husky":"^8.0.1","mocha":"^9.2.2","sinon":"^14.0.0","ts-node":"^10.7.0","eslint_d":"^12.0.0","ts-mocha":"^10.0.0","sinon-chai":"^3.7.0","@types/chai":"^4.3.1","@types/jsdom":"^16.2.14","@types/mocha":"^9.1.0","@types/ramda":"^0.28.12","@types/sinon":"^10.0.11","@types/expect":"^24.3.0","tsconfig-paths":"^3.9.0","chai-as-promised":"^7.1.1","@types/sinon-chai":"^3.2.8","eslint-plugin-no-only-tests":"^3.1.0"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"_npmOperationalInternal":{"tmp":"tmp/multichain-wallet-connect_0.0.1-beta.4_1685349534929_0.6351923064006393","host":"s3://npm-registry-packages"}},"0.0.1-beta.5":{"name":"@civic/multichain-wallet-connect","version":"0.0.1-beta.5","author":{"name":"civic.com"},"license":"MIT","_id":"@civic/multichain-wallet-connect@0.0.1-beta.5","maintainers":[{"name":"ndrabins","email":"noah.drabinsky1@gmail.com"},{"name":"dmelosantos","email":"danielmelos@gmail.com"},{"name":"jp-civic","email":"jp@civic.com"},{"name":"chriteixeira","email":"chriteixeira@gmail.com"},{"name":"daneel","email":"daneel@civic.com"},{"name":"mitchcivic","email":"mitch@civic.com"},{"name":"dankelleher","email":"dankelleher@yahoo.com"},{"name":"jonthepilot","email":"jonathan@civic.com"},{"name":"rado0x54","email":"web@riedel-it.de"},{"name":"araptarchis","email":"alexis.raptarchis@googlemail.com"},{"name":"civicfinance","email":"camille@civic.com"},{"name":"kevinhcolgan","email":"kevin@civic.com"},{"name":"flippiescholtz","email":"flippie@civic.com"},{"name":"tyronemichael","email":"tyronemichael@gmail.com"},{"name":"lucmir","email":"luccmir@gmail.com"},{"name":"william-identity","email":"william@identity.org"}],"homepage":"https://github.com/civicteam/civic.me#readme","bugs":{"url":"https://github.com/civicteam/civic.me/issues"},"dist":{"shasum":"cc3ed7ad343b6e9ed861ba61fa481b27ea6779c0","tarball":"https://registry.npmjs.org/@civic/multichain-wallet-connect/-/multichain-wallet-connect-0.0.1-beta.5.tgz","fileCount":89,"integrity":"sha512-7LhJEazzVHlnPPQ4JX24rd+BvzJVf/r+YkAzXIPrYBmowh9They8439gLElO8AT6cz9dULtaKTUMJkKwi5Tv2g==","signatures":[{"sig":"MEQCIC+LqY5PyVZIixMTYnbsLbZWUQXEn6o4bHHwYmPwV6oVAiAqPKBrRturOPaltILizHmQGLbjiCJ3PYrGoTCkurA59g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":137462},"main":"./dist/umd/index.js","types":"./dist/typings/index.d.ts","module":"./dist/esm/index.js","readme":"## Library Specification: Multi-Chain Wallet Support\n\n### Overview\nThe library provides support for multiple chains by leveraging the [Wallet Standard](https://github.com/wallet-standard/wallet-standard). It enables the injection of wallets that conform to the wallet standard into Wallet Adapters. The Wallet Adapters serve as UI interfaces that allow users to select their preferred wallet for connecting to the dApp. The library currently supports the [Solana Wallet Adapter](https://github.com/solana-labs/wallet-adapter) and [Rainbowkit](https://www.rainbowkit.com), both of which implement the same interface. This design allows for easy switching between different Wallet Adapters.\n\n### Core Functionality\n1. Wallet Standard:\n   - The library uses the wallet standard defined [here](https://github.com/wallet-standard/wallet-standard).\n   - The standard interface includes common methods for connecting to a blockchain, signing transactions, and retrieving account information.\n\n2. Wallet Adapters:\n   - Wallet Adapters serve as UI interfaces for users to select their preferred wallet.\n   - The Wallet Adapters should be capable of handling multiple wallets, each conforming to the wallet standard.\n   - The library has implemented a mechanism for dynamically switching between different Wallet Adapters at runtime.\n   - A common interface has also been developed to allow the use of different wallet adapters.\n   - Currently, the library supports the [Solana Wallet Adapter](https://github.com/solana-labs/wallet-adapter) and [Rainbowkit](https://www.rainbowkit.com).\n\n3. Solana Wallet Adapter:\n   - Implements the Wallet Adapter interface specifically for the Solana blockchain.\n   - Integrates with Solana wallets that conform to the wallet standard.\n   - Provides a user-friendly interface for selecting and connecting to Solana wallets.\n   - Supports common operations such as transaction signing and account information retrieval for Solana.\n\n4. Rainbowkit Wallet Adapter:\n   - Implements the Wallet Adapter specifically for EVM-supported wallets.\n   - Integrates with the Rainbowkit wallet that conforms to the wallet standard.\n   - Provides a user-friendly interface for selecting and connecting to EVM-supported wallets.\n   - Supports common operations such as transaction signing and account information retrieval for Rainbowkit.\n\n### Extensibility and Switching Wallet Adapters\n1. Interface Consistency:\n   - Ensures that all Wallet Adapters conform to the same interface defined by the wallet standard.\n   - This allows for seamless switching between different Wallet Adapters without modifying the core library code.\n\n2. Future Wallet Adapters:\n   - The library is designed to be extensible, allowing for the addition of new Wallet Adapters in the future.\n   - New Wallet Adapters should conform to the wallet standard and integrate with the library's core functionality.\n   - Clear documentation and guidelines are provided for developers to create new Wallet Adapters.\n\n### Installation\n\nInstall the component using `yarn install @civic/multichain-wallet-connect` or `npm i -S @civic/multichain-wallet-connect`.\n\n### Architecture\n\nThe architecture can be viewed [here](https://mermaid.live/view#pako:eNqVVE1rwzAM_SvC5-0P5FAoHYzCxmCl9JKLGquNwbEzW17ZSv_77Ngt_abLyUh6T3rPcraisZJEJTx9BTINvShcO-xqA_Gbe3LPo9F8WsFHTwbkuO9LZhrj70GzmrSozMQaQw1XMDWKFWr1S7BR3IIPfW8dk4Qm1fmMvgBGsgVqTTyW2DO5EyJuCXIWSjpzb4aYj3lkaKxZWdcB26E-58AzGolO3m6btM1au0kEKQTLwGzNif4rOsvhDq9PKgbXOitR37PjdpsZ6TTTUHy71zUgW5ed8wPFvuPD_r9hME17hvZn95DZTpAH6Z_EwRlA0Moz2BXgNyqNS01HF0cQYjE0aA7-J59ObDkbrFiSOa4PcMWPMk1pEvUsjvD_9vRxmrPhX4kPQudTiBsLPi6fMusjzrK7N8zd72uBX8DiwpcdHvJS-VKSmuQa8SQ6ch0qGR_-NvWpRZTVUS2qeJS0wiilFrXZxVIMbGc_phEVu0BPIvQSef-fyMHdH73-g1Y).\n\n```mermaid\nsequenceDiagram\n    User->>UI: Open dApp\n    UI->>MultiChainConnect: Initialize with supported chains\n    MultiChainConnect->>WalletAdapter: Initialize the Wallet Adapter with wallets that conform to the wallet standard\n    MultiChainConnect->>UI: Show connect button\n    User->>MultiChainConnect: Connect\n    MultiChainConnect->>User: Open modal with supported chains\n    User->>MultiChainConnect: Select chain\n    MultiChainConnect->>MultiChainConnect: Store the selected chain\n    MultiChainConnect->>WalletAdapter: Launch selected chain's Wallet Adapter\n    WalletAdapter->>User: Return a list of available wallets the user can connect with\n    User->>WalletAdapter: Select wallet\n    WalletAdapter->>MultiChainConnect: Return connected Wallet\n    MultiChainConnect->>MultiChainConnect: Store the connected Wallet\n    MultiChainConnect->>WalletAdapter: Get connect UI for showing the connected wallet \n    WalletAdapter->>UI: Show UI for connected wallet and button for disconnecting wallet\n```\n\n### Example Usage\n\n1. Importing the Library:\n\n```javascript\nimport React from 'react';\nimport { MultichainWalletProvider, createChain } from '@civic/multichain-wallet-connect';\n\nconst ExampleComponent: React.FC = () => {\n  return (\n    <MultichainWalletProvider\n      chains={[createChain.ethereum('mainnet')]}\n    >\n      <MultichainConnectButton />\n    </MultichainWalletProvider>\n  );\n};\n\nexport default ExampleComponent;\n```\n\n### Custom button\n\n1. Creating your own button with custom styling:\n\n```javascript\n/* eslint-disable import/no-extraneous-dependencies */\nimport React from \"react\";\nimport styled from \"styled-components\";\nimport { MultichainConnectedButton, useWallet, useModal } from \"@civic/multichain-wallet-connect\";\n\n// Styled component named StyledButton\nconst StyledButton = styled.button`\n  display: inline-block;\n  border-radius: 20px;\n  padding: 0.5rem 0;\n  margin: 0.5rem 1rem;\n  width: 11rem;\n  border: 2px solid black;\n  background: white;\n  color: black;\n`;\n\nexport function MultichainConnectButton(): JSX.Element | null {\n  const { connected } = useWallet();\n  const { openConnectModal } = useModal();\n\n  return (\n    <>\n      {!connected && (\n        <StyledButton type=\"button\" onClick={openConnectModal}>\n          Connect\n        </StyledButton>\n      )}\n      <MultichainConnectedButton />\n    </>\n  );\n}\n```","engines":{"node":">=16"},"gitHead":"d1a0805dd083da785e840819caca4272b456f357","scripts":{"lint":"eslint -c .eslintrc.js '{src,test}/**/*.ts'","test":"yarn test:unit","build":"tsc -b tsconfig.build.json && tsc -b tsconfig.umd.json","lint:fix":"eslint -c .eslintrc.js --fix '{src,test}/**/*.ts'","test:unit":"STAGE=${STAGE:-local} FORCE_COLOR=1 LOG_LEVEL=error LOCAL=true  ts-mocha -p tsconfig.mocha.json --timeout 20000 --paths 'test/unit/**/*.ts'","test:mocha":"STAGE=${STAGE:-local} FORCE_COLOR=1 LOG_LEVEL=error LOCAL=true nyc --reporter=text --reporter=html mocha","test:watch":"ts-mocha -p tsconfig.mocha.json 'test/**/*.ts' -w --watch-files '**/**/*.ts'"},"_npmUser":{"name":"tyronemichael","email":"tyronemichael@gmail.com"},"repository":{"url":"git+ssh://git@github.com/civicteam/civic.me.git","type":"git"},"_npmVersion":"8.19.2","description":"A multichain wallet connect library","directories":{},"_nodeVersion":"18.12.1","dependencies":{"ramda":"^0.28.0","wagmi":"^0.12.13","ethers":"^5","@types/react":"^17.0.0","@solana/web3.js":"^1.76.0","@headlessui/react":"^1.7.14","styled-components":"^6.0.0-rc.2","@wallet-standard/app":"^1.0.1","@wallet-standard/core":"^1.0.3","@rainbow-me/rainbowkit":"^0.12.14","@wallet-standard/wallet":"^1.0.1","@civic/civic-chain-icons":"0.0.5-beta.0","@civic/civic-eth-provider":"0.0.8-beta.2","@solana/wallet-adapter-base":"^0.9.22","@wallet-standard/react-core":"^0.1.4","@solana/wallet-adapter-react":"^0.15.32","@solana/wallet-adapter-wallets":"^0.19.16","@solana/wallet-adapter-react-ui":"^0.9.31","@solana/wallet-standard-wallet-adapter-react":"^1.0.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.1.0","chai":"^4.3.6","husky":"^8.0.1","mocha":"^9.2.2","sinon":"^14.0.0","ts-node":"^10.7.0","eslint_d":"^12.0.0","ts-mocha":"^10.0.0","sinon-chai":"^3.7.0","@types/chai":"^4.3.1","@types/jsdom":"^16.2.14","@types/mocha":"^9.1.0","@types/ramda":"^0.28.12","@types/sinon":"^10.0.11","@types/expect":"^24.3.0","tsconfig-paths":"^3.9.0","chai-as-promised":"^7.1.1","@types/sinon-chai":"^3.2.8","eslint-plugin-no-only-tests":"^3.1.0"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"_npmOperationalInternal":{"tmp":"tmp/multichain-wallet-connect_0.0.1-beta.5_1685359882089_0.27729803461863","host":"s3://npm-registry-packages"}},"0.0.1-beta.6":{"name":"@civic/multichain-wallet-connect","version":"0.0.1-beta.6","author":{"name":"civic.com"},"license":"MIT","_id":"@civic/multichain-wallet-connect@0.0.1-beta.6","maintainers":[{"name":"ndrabins","email":"noah.drabinsky1@gmail.com"},{"name":"dmelosantos","email":"danielmelos@gmail.com"},{"name":"jp-civic","email":"jp@civic.com"},{"name":"chriteixeira","email":"chriteixeira@gmail.com"},{"name":"daneel","email":"daneel@civic.com"},{"name":"mitchcivic","email":"mitch@civic.com"},{"name":"dankelleher","email":"dankelleher@yahoo.com"},{"name":"jonthepilot","email":"jonathan@civic.com"},{"name":"rado0x54","email":"web@riedel-it.de"},{"name":"araptarchis","email":"alexis.raptarchis@googlemail.com"},{"name":"civicfinance","email":"camille@civic.com"},{"name":"kevinhcolgan","email":"kevin@civic.com"},{"name":"flippiescholtz","email":"flippie@civic.com"},{"name":"tyronemichael","email":"tyronemichael@gmail.com"},{"name":"lucmir","email":"luccmir@gmail.com"},{"name":"william-identity","email":"william@identity.org"}],"homepage":"https://github.com/civicteam/civic.me#readme","bugs":{"url":"https://github.com/civicteam/civic.me/issues"},"dist":{"shasum":"4b5a85bfe2e0881e8d4f4a83b4da5a9e37c4fb3c","tarball":"https://registry.npmjs.org/@civic/multichain-wallet-connect/-/multichain-wallet-connect-0.0.1-beta.6.tgz","fileCount":89,"integrity":"sha512-bE605MO+JCiBUS+EcS1IzZP2Z34w437Dr9AZRRaJ/xjZWHtFzB/0P80zc6+EhGtdJ/nnmN0C7AlU5rscN1OOrA==","signatures":[{"sig":"MEUCID1Tg1S2FZ6GsoEeSQ59Jl0rg8AwIkD86mjSVafboFtBAiEA5vnQh/syeKEMB0G5qN5uBj1uBlpYg6AL//ckj32TY2U=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":138172},"main":"./dist/umd/index.js","types":"./dist/typings/index.d.ts","module":"./dist/esm/index.js","readme":"## Library Specification: Multi-Chain Wallet Support\n\n### Overview\nThe library provides support for multiple chains by leveraging the [Wallet Standard](https://github.com/wallet-standard/wallet-standard). It enables the injection of wallets that conform to the wallet standard into Wallet Adapters. The Wallet Adapters serve as UI interfaces that allow users to select their preferred wallet for connecting to the dApp. The library currently supports the [Solana Wallet Adapter](https://github.com/solana-labs/wallet-adapter) and [Rainbowkit](https://www.rainbowkit.com), both of which implement the same interface. This design allows for easy switching between different Wallet Adapters.\n\n### Core Functionality\n1. Wallet Standard:\n   - The library uses the wallet standard defined [here](https://github.com/wallet-standard/wallet-standard).\n   - The standard interface includes common methods for connecting to a blockchain, signing transactions, and retrieving account information.\n\n2. Wallet Adapters:\n   - Wallet Adapters serve as UI interfaces for users to select their preferred wallet.\n   - The Wallet Adapters should be capable of handling multiple wallets, each conforming to the wallet standard.\n   - The library has implemented a mechanism for dynamically switching between different Wallet Adapters at runtime.\n   - A common interface has also been developed to allow the use of different wallet adapters.\n   - Currently, the library supports the [Solana Wallet Adapter](https://github.com/solana-labs/wallet-adapter) and [Rainbowkit](https://www.rainbowkit.com).\n\n3. Solana Wallet Adapter:\n   - Implements the Wallet Adapter interface specifically for the Solana blockchain.\n   - Integrates with Solana wallets that conform to the wallet standard.\n   - Provides a user-friendly interface for selecting and connecting to Solana wallets.\n   - Supports common operations such as transaction signing and account information retrieval for Solana.\n\n4. Rainbowkit Wallet Adapter:\n   - Implements the Wallet Adapter specifically for EVM-supported wallets.\n   - Integrates with the Rainbowkit wallet that conforms to the wallet standard.\n   - Provides a user-friendly interface for selecting and connecting to EVM-supported wallets.\n   - Supports common operations such as transaction signing and account information retrieval for Rainbowkit.\n\n### Extensibility and Switching Wallet Adapters\n1. Interface Consistency:\n   - Ensures that all Wallet Adapters conform to the same interface defined by the wallet standard.\n   - This allows for seamless switching between different Wallet Adapters without modifying the core library code.\n\n2. Future Wallet Adapters:\n   - The library is designed to be extensible, allowing for the addition of new Wallet Adapters in the future.\n   - New Wallet Adapters should conform to the wallet standard and integrate with the library's core functionality.\n   - Clear documentation and guidelines are provided for developers to create new Wallet Adapters.\n\n### Installation\n\nInstall the component using `yarn install @civic/multichain-wallet-connect` or `npm i -S @civic/multichain-wallet-connect`.\n\n### Architecture\n\nThe architecture can be viewed [here](https://mermaid.live/view#pako:eNqVVE1rwzAM_SvC5-0P5FAoHYzCxmCl9JKLGquNwbEzW17ZSv_77Ngt_abLyUh6T3rPcraisZJEJTx9BTINvShcO-xqA_Gbe3LPo9F8WsFHTwbkuO9LZhrj70GzmrSozMQaQw1XMDWKFWr1S7BR3IIPfW8dk4Qm1fmMvgBGsgVqTTyW2DO5EyJuCXIWSjpzb4aYj3lkaKxZWdcB26E-58AzGolO3m6btM1au0kEKQTLwGzNif4rOsvhDq9PKgbXOitR37PjdpsZ6TTTUHy71zUgW5ed8wPFvuPD_r9hME17hvZn95DZTpAH6Z_EwRlA0Moz2BXgNyqNS01HF0cQYjE0aA7-J59ObDkbrFiSOa4PcMWPMk1pEvUsjvD_9vRxmrPhX4kPQudTiBsLPi6fMusjzrK7N8zd72uBX8DiwpcdHvJS-VKSmuQa8SQ6ch0qGR_-NvWpRZTVUS2qeJS0wiilFrXZxVIMbGc_phEVu0BPIvQSef-fyMHdH73-g1Y).\n\n```mermaid\nsequenceDiagram\n    User->>UI: Open dApp\n    UI->>MultiChainConnect: Initialize with supported chains\n    MultiChainConnect->>WalletAdapter: Initialize the Wallet Adapter with wallets that conform to the wallet standard\n    MultiChainConnect->>UI: Show connect button\n    User->>MultiChainConnect: Connect\n    MultiChainConnect->>User: Open modal with supported chains\n    User->>MultiChainConnect: Select chain\n    MultiChainConnect->>MultiChainConnect: Store the selected chain\n    MultiChainConnect->>WalletAdapter: Launch selected chain's Wallet Adapter\n    WalletAdapter->>User: Return a list of available wallets the user can connect with\n    User->>WalletAdapter: Select wallet\n    WalletAdapter->>MultiChainConnect: Return connected Wallet\n    MultiChainConnect->>MultiChainConnect: Store the connected Wallet\n    MultiChainConnect->>WalletAdapter: Get connect UI for showing the connected wallet \n    WalletAdapter->>UI: Show UI for connected wallet and button for disconnecting wallet\n```\n\n### Example Usage\n\n1. Importing the Library:\n\n```javascript\nimport React from 'react';\nimport { MultichainWalletProvider, createChain } from '@civic/multichain-wallet-connect';\n\nconst ExampleComponent: React.FC = () => {\n  return (\n    <MultichainWalletProvider\n      chains={[createChain.ethereum('mainnet')]}\n    >\n      <MultichainConnectButton />\n    </MultichainWalletProvider>\n  );\n};\n\nexport default ExampleComponent;\n```\n\n### Custom button\n\n1. Creating your own button with custom styling:\n\n```javascript\n/* eslint-disable import/no-extraneous-dependencies */\nimport React from \"react\";\nimport styled from \"styled-components\";\nimport { MultichainConnectedButton, useWallet, useModal } from \"@civic/multichain-wallet-connect\";\n\n// Styled component named StyledButton\nconst StyledButton = styled.button`\n  display: inline-block;\n  border-radius: 20px;\n  padding: 0.5rem 0;\n  margin: 0.5rem 1rem;\n  width: 11rem;\n  border: 2px solid black;\n  background: white;\n  color: black;\n`;\n\nexport function MultichainConnectButton(): JSX.Element | null {\n  const { connected } = useWallet();\n  const { openConnectModal } = useModal();\n\n  return (\n    <>\n      {!connected && (\n        <StyledButton type=\"button\" onClick={openConnectModal}>\n          Connect\n        </StyledButton>\n      )}\n      <MultichainConnectedButton />\n    </>\n  );\n}\n```","engines":{"node":">=16"},"gitHead":"d1a0805dd083da785e840819caca4272b456f357","scripts":{"lint":"eslint -c .eslintrc.js '{src,test}/**/*.ts'","test":"yarn test:unit","build":"tsc -b tsconfig.build.json && tsc -b tsconfig.umd.json","lint:fix":"eslint -c .eslintrc.js --fix '{src,test}/**/*.ts'","test:unit":"STAGE=${STAGE:-local} FORCE_COLOR=1 LOG_LEVEL=error LOCAL=true  ts-mocha -p tsconfig.mocha.json --timeout 20000 --paths 'test/unit/**/*.ts'","test:mocha":"STAGE=${STAGE:-local} FORCE_COLOR=1 LOG_LEVEL=error LOCAL=true nyc --reporter=text --reporter=html mocha","test:watch":"ts-mocha -p tsconfig.mocha.json 'test/**/*.ts' -w --watch-files '**/**/*.ts'"},"_npmUser":{"name":"tyronemichael","email":"tyronemichael@gmail.com"},"repository":{"url":"git+ssh://git@github.com/civicteam/civic.me.git","type":"git"},"_npmVersion":"8.19.2","description":"A multichain wallet connect library","directories":{},"_nodeVersion":"18.12.1","dependencies":{"ramda":"^0.28.0","wagmi":"^0.12.13","ethers":"^5","@types/react":"^17.0.0","@solana/web3.js":"^1.76.0","@headlessui/react":"^1.7.14","styled-components":"^6.0.0-rc.2","@wallet-standard/app":"^1.0.1","@wallet-standard/core":"^1.0.3","@rainbow-me/rainbowkit":"^0.12.14","@wallet-standard/wallet":"^1.0.1","@civic/civic-chain-icons":"0.0.5-beta.0","@civic/civic-eth-provider":"0.0.8-beta.2","@solana/wallet-adapter-base":"^0.9.22","@wallet-standard/react-core":"^0.1.4","@solana/wallet-adapter-react":"^0.15.32","@solana/wallet-adapter-wallets":"^0.19.16","@solana/wallet-adapter-react-ui":"^0.9.31","@solana/wallet-standard-wallet-adapter-react":"^1.0.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.1.0","chai":"^4.3.6","husky":"^8.0.1","mocha":"^9.2.2","sinon":"^14.0.0","ts-node":"^10.7.0","eslint_d":"^12.0.0","ts-mocha":"^10.0.0","sinon-chai":"^3.7.0","@types/chai":"^4.3.1","@types/jsdom":"^16.2.14","@types/mocha":"^9.1.0","@types/ramda":"^0.28.12","@types/sinon":"^10.0.11","@types/expect":"^24.3.0","tsconfig-paths":"^3.9.0","chai-as-promised":"^7.1.1","@types/sinon-chai":"^3.2.8","eslint-plugin-no-only-tests":"^3.1.0"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"_npmOperationalInternal":{"tmp":"tmp/multichain-wallet-connect_0.0.1-beta.6_1685360812717_0.49178901322745006","host":"s3://npm-registry-packages"}},"0.0.1-beta.7":{"name":"@civic/multichain-wallet-connect","version":"0.0.1-beta.7","author":{"name":"civic.com"},"license":"MIT","_id":"@civic/multichain-wallet-connect@0.0.1-beta.7","maintainers":[{"name":"ndrabins","email":"noah.drabinsky1@gmail.com"},{"name":"dmelosantos","email":"danielmelos@gmail.com"},{"name":"jp-civic","email":"jp@civic.com"},{"name":"chriteixeira","email":"chriteixeira@gmail.com"},{"name":"daneel","email":"daneel@civic.com"},{"name":"mitchcivic","email":"mitch@civic.com"},{"name":"dankelleher","email":"dankelleher@yahoo.com"},{"name":"jonthepilot","email":"jonathan@civic.com"},{"name":"rado0x54","email":"web@riedel-it.de"},{"name":"araptarchis","email":"alexis.raptarchis@googlemail.com"},{"name":"civicfinance","email":"camille@civic.com"},{"name":"kevinhcolgan","email":"kevin@civic.com"},{"name":"flippiescholtz","email":"flippie@civic.com"},{"name":"tyronemichael","email":"tyronemichael@gmail.com"},{"name":"lucmir","email":"luccmir@gmail.com"},{"name":"william-identity","email":"william@identity.org"}],"homepage":"https://github.com/civicteam/civic.me#readme","bugs":{"url":"https://github.com/civicteam/civic.me/issues"},"dist":{"shasum":"3528d07c520f9a7258c8b41f624c833c620738d2","tarball":"https://registry.npmjs.org/@civic/multichain-wallet-connect/-/multichain-wallet-connect-0.0.1-beta.7.tgz","fileCount":89,"integrity":"sha512-l+hRljId9xpfricaWB2LrUyh0S2nOrXlQOJrKIL13IJArOAQum8vx3gS2E4SZskuWtv6EuunefJk7iBA59TSYQ==","signatures":[{"sig":"MEUCIQDftmRoKVeK6ShyK4qXIQxeLJcPLlZg5PXGqrbpRjvFeAIgCYWvCyuDy8Yn/yooVVjYnwcxhx2U2XfjSO6I/BBP9iM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":138456},"main":"./dist/umd/index.js","types":"./dist/typings/index.d.ts","module":"./dist/esm/index.js","readme":"## Library Specification: Multi-Chain Wallet Support\n\n### Overview\nThe library provides support for multiple chains by leveraging the [Wallet Standard](https://github.com/wallet-standard/wallet-standard). It enables the injection of wallets that conform to the wallet standard into Wallet Adapters. The Wallet Adapters serve as UI interfaces that allow users to select their preferred wallet for connecting to the dApp. The library currently supports the [Solana Wallet Adapter](https://github.com/solana-labs/wallet-adapter) and [Rainbowkit](https://www.rainbowkit.com), both of which implement the same interface. This design allows for easy switching between different Wallet Adapters.\n\n### Core Functionality\n1. Wallet Standard:\n   - The library uses the wallet standard defined [here](https://github.com/wallet-standard/wallet-standard).\n   - The standard interface includes common methods for connecting to a blockchain, signing transactions, and retrieving account information.\n\n2. Wallet Adapters:\n   - Wallet Adapters serve as UI interfaces for users to select their preferred wallet.\n   - The Wallet Adapters should be capable of handling multiple wallets, each conforming to the wallet standard.\n   - The library has implemented a mechanism for dynamically switching between different Wallet Adapters at runtime.\n   - A common interface has also been developed to allow the use of different wallet adapters.\n   - Currently, the library supports the [Solana Wallet Adapter](https://github.com/solana-labs/wallet-adapter) and [Rainbowkit](https://www.rainbowkit.com).\n\n3. Solana Wallet Adapter:\n   - Implements the Wallet Adapter interface specifically for the Solana blockchain.\n   - Integrates with Solana wallets that conform to the wallet standard.\n   - Provides a user-friendly interface for selecting and connecting to Solana wallets.\n   - Supports common operations such as transaction signing and account information retrieval for Solana.\n\n4. Rainbowkit Wallet Adapter:\n   - Implements the Wallet Adapter specifically for EVM-supported wallets.\n   - Integrates with the Rainbowkit wallet that conforms to the wallet standard.\n   - Provides a user-friendly interface for selecting and connecting to EVM-supported wallets.\n   - Supports common operations such as transaction signing and account information retrieval for Rainbowkit.\n\n### Extensibility and Switching Wallet Adapters\n1. Interface Consistency:\n   - Ensures that all Wallet Adapters conform to the same interface defined by the wallet standard.\n   - This allows for seamless switching between different Wallet Adapters without modifying the core library code.\n\n2. Future Wallet Adapters:\n   - The library is designed to be extensible, allowing for the addition of new Wallet Adapters in the future.\n   - New Wallet Adapters should conform to the wallet standard and integrate with the library's core functionality.\n   - Clear documentation and guidelines are provided for developers to create new Wallet Adapters.\n\n### Installation\n\nInstall the component using `yarn install @civic/multichain-wallet-connect` or `npm i -S @civic/multichain-wallet-connect`.\n\n### Architecture\n\nThe architecture can be viewed [here](https://mermaid.live/view#pako:eNqVVE1rwzAM_SvC5-0P5FAoHYzCxmCl9JKLGquNwbEzW17ZSv_77Ngt_abLyUh6T3rPcraisZJEJTx9BTINvShcO-xqA_Gbe3LPo9F8WsFHTwbkuO9LZhrj70GzmrSozMQaQw1XMDWKFWr1S7BR3IIPfW8dk4Qm1fmMvgBGsgVqTTyW2DO5EyJuCXIWSjpzb4aYj3lkaKxZWdcB26E-58AzGolO3m6btM1au0kEKQTLwGzNif4rOsvhDq9PKgbXOitR37PjdpsZ6TTTUHy71zUgW5ed8wPFvuPD_r9hME17hvZn95DZTpAH6Z_EwRlA0Moz2BXgNyqNS01HF0cQYjE0aA7-J59ObDkbrFiSOa4PcMWPMk1pEvUsjvD_9vRxmrPhX4kPQudTiBsLPi6fMusjzrK7N8zd72uBX8DiwpcdHvJS-VKSmuQa8SQ6ch0qGR_-NvWpRZTVUS2qeJS0wiilFrXZxVIMbGc_phEVu0BPIvQSef-fyMHdH73-g1Y).\n\n```mermaid\nsequenceDiagram\n    User->>UI: Open dApp\n    UI->>MultiChainConnect: Initialize with supported chains\n    MultiChainConnect->>WalletAdapter: Initialize the Wallet Adapter with wallets that conform to the wallet standard\n    MultiChainConnect->>UI: Show connect button\n    User->>MultiChainConnect: Connect\n    MultiChainConnect->>User: Open modal with supported chains\n    User->>MultiChainConnect: Select chain\n    MultiChainConnect->>MultiChainConnect: Store the selected chain\n    MultiChainConnect->>WalletAdapter: Launch selected chain's Wallet Adapter\n    WalletAdapter->>User: Return a list of available wallets the user can connect with\n    User->>WalletAdapter: Select wallet\n    WalletAdapter->>MultiChainConnect: Return connected Wallet\n    MultiChainConnect->>MultiChainConnect: Store the connected Wallet\n    MultiChainConnect->>WalletAdapter: Get connect UI for showing the connected wallet \n    WalletAdapter->>UI: Show UI for connected wallet and button for disconnecting wallet\n```\n\n### Example Usage\n\n1. Importing the Library:\n\n```javascript\nimport React from 'react';\nimport { MultichainWalletProvider, createChain } from '@civic/multichain-wallet-connect';\n\nconst ExampleComponent: React.FC = () => {\n  return (\n    <MultichainWalletProvider\n      chains={[createChain.ethereum('mainnet')]}\n    >\n      <MultichainConnectButton />\n    </MultichainWalletProvider>\n  );\n};\n\nexport default ExampleComponent;\n```\n\n### Custom button\n\n1. Creating your own button with custom styling:\n\n```javascript\n/* eslint-disable import/no-extraneous-dependencies */\nimport React from \"react\";\nimport styled from \"styled-components\";\nimport { MultichainConnectedButton, useWallet, useModal } from \"@civic/multichain-wallet-connect\";\n\n// Styled component named StyledButton\nconst StyledButton = styled.button`\n  display: inline-block;\n  border-radius: 20px;\n  padding: 0.5rem 0;\n  margin: 0.5rem 1rem;\n  width: 11rem;\n  border: 2px solid black;\n  background: white;\n  color: black;\n`;\n\nexport function MultichainConnectButton(): JSX.Element | null {\n  const { connected } = useWallet();\n  const { openConnectModal } = useModal();\n\n  return (\n    <>\n      {!connected && (\n        <StyledButton type=\"button\" onClick={openConnectModal}>\n          Connect\n        </StyledButton>\n      )}\n      <MultichainConnectedButton />\n    </>\n  );\n}\n```","engines":{"node":">=16"},"gitHead":"d1a0805dd083da785e840819caca4272b456f357","scripts":{"lint":"eslint -c .eslintrc.js '{src,test}/**/*.ts'","test":"yarn test:unit","build":"tsc -b tsconfig.build.json && tsc -b tsconfig.umd.json","lint:fix":"eslint -c .eslintrc.js --fix '{src,test}/**/*.ts'","test:unit":"STAGE=${STAGE:-local} FORCE_COLOR=1 LOG_LEVEL=error LOCAL=true  ts-mocha -p tsconfig.mocha.json --timeout 20000 --paths 'test/unit/**/*.ts'","test:mocha":"STAGE=${STAGE:-local} FORCE_COLOR=1 LOG_LEVEL=error LOCAL=true nyc --reporter=text --reporter=html mocha","test:watch":"ts-mocha -p tsconfig.mocha.json 'test/**/*.ts' -w --watch-files '**/**/*.ts'"},"_npmUser":{"name":"tyronemichael","email":"tyronemichael@gmail.com"},"repository":{"url":"git+ssh://git@github.com/civicteam/civic.me.git","type":"git"},"_npmVersion":"8.19.2","description":"A multichain wallet connect library","directories":{},"_nodeVersion":"18.12.1","dependencies":{"ramda":"^0.28.0","wagmi":"^0.12.13","ethers":"^5","@types/react":"^17.0.0","@solana/web3.js":"^1.76.0","@headlessui/react":"^1.7.14","styled-components":"^6.0.0-rc.2","@wallet-standard/app":"^1.0.1","@wallet-standard/core":"^1.0.3","@rainbow-me/rainbowkit":"^0.12.14","@wallet-standard/wallet":"^1.0.1","@civic/civic-chain-icons":"0.0.5-beta.0","@civic/civic-eth-provider":"0.0.8-beta.2","@solana/wallet-adapter-base":"^0.9.22","@wallet-standard/react-core":"^0.1.4","@solana/wallet-adapter-react":"^0.15.32","@solana/wallet-adapter-wallets":"^0.19.16","@solana/wallet-adapter-react-ui":"^0.9.31","@solana/wallet-standard-wallet-adapter-react":"^1.0.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.1.0","chai":"^4.3.6","husky":"^8.0.1","mocha":"^9.2.2","sinon":"^14.0.0","ts-node":"^10.7.0","eslint_d":"^12.0.0","ts-mocha":"^10.0.0","sinon-chai":"^3.7.0","@types/chai":"^4.3.1","@types/jsdom":"^16.2.14","@types/mocha":"^9.1.0","@types/ramda":"^0.28.12","@types/sinon":"^10.0.11","@types/expect":"^24.3.0","tsconfig-paths":"^3.9.0","chai-as-promised":"^7.1.1","@types/sinon-chai":"^3.2.8","eslint-plugin-no-only-tests":"^3.1.0"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"_npmOperationalInternal":{"tmp":"tmp/multichain-wallet-connect_0.0.1-beta.7_1685361518437_0.44321116230600044","host":"s3://npm-registry-packages"}},"0.0.1-beta.8":{"name":"@civic/multichain-wallet-connect","version":"0.0.1-beta.8","author":{"name":"civic.com"},"license":"MIT","_id":"@civic/multichain-wallet-connect@0.0.1-beta.8","maintainers":[{"name":"ndrabins","email":"noah.drabinsky1@gmail.com"},{"name":"dmelosantos","email":"danielmelos@gmail.com"},{"name":"jp-civic","email":"jp@civic.com"},{"name":"chriteixeira","email":"chriteixeira@gmail.com"},{"name":"daneel","email":"daneel@civic.com"},{"name":"mitchcivic","email":"mitch@civic.com"},{"name":"dankelleher","email":"dankelleher@yahoo.com"},{"name":"jonthepilot","email":"jonathan@civic.com"},{"name":"rado0x54","email":"web@riedel-it.de"},{"name":"araptarchis","email":"alexis.raptarchis@googlemail.com"},{"name":"civicfinance","email":"camille@civic.com"},{"name":"kevinhcolgan","email":"kevin@civic.com"},{"name":"flippiescholtz","email":"flippie@civic.com"},{"name":"tyronemichael","email":"tyronemichael@gmail.com"},{"name":"lucmir","email":"luccmir@gmail.com"},{"name":"william-identity","email":"william@identity.org"}],"homepage":"https://github.com/civicteam/civic.me#readme","bugs":{"url":"https://github.com/civicteam/civic.me/issues"},"dist":{"shasum":"b443ff7a4783a94fa6c38152492da6980bf84d73","tarball":"https://registry.npmjs.org/@civic/multichain-wallet-connect/-/multichain-wallet-connect-0.0.1-beta.8.tgz","fileCount":89,"integrity":"sha512-sIM25TMPJhP4O2j6YmUVbMsfHHk/pDEuC/hZ5UadfjYAH+AIutk/LMdJdXq8ArEykXzujJzwltoe5xGAiOMz8w==","signatures":[{"sig":"MEQCIBapxhveRRmi2iER5zNHTo2RPcbHf/535Lqg1qe9yAtgAiA/LfZNe1hRSpPbxlO3/Brc/frjWUsRLAZ7Ziz2aBHakA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":135684},"main":"./dist/umd/index.js","types":"./dist/typings/index.d.ts","module":"./dist/esm/index.js","readme":"## Library Specification: Multi-Chain Wallet Support\n\n### Overview\nThe library provides support for multiple chains by leveraging the [Wallet Standard](https://github.com/wallet-standard/wallet-standard). It enables the injection of wallets that conform to the wallet standard into Wallet Adapters. The Wallet Adapters serve as UI interfaces that allow users to select their preferred wallet for connecting to the dApp. The library currently supports the [Solana Wallet Adapter](https://github.com/solana-labs/wallet-adapter) and [Rainbowkit](https://www.rainbowkit.com), both of which implement the same interface. This design allows for easy switching between different Wallet Adapters.\n\n### Core Functionality\n1. Wallet Standard:\n   - The library uses the wallet standard defined [here](https://github.com/wallet-standard/wallet-standard).\n   - The standard interface includes common methods for connecting to a blockchain, signing transactions, and retrieving account information.\n\n2. Wallet Adapters:\n   - Wallet Adapters serve as UI interfaces for users to select their preferred wallet.\n   - The Wallet Adapters should be capable of handling multiple wallets, each conforming to the wallet standard.\n   - The library has implemented a mechanism for dynamically switching between different Wallet Adapters at runtime.\n   - A common interface has also been developed to allow the use of different wallet adapters.\n   - Currently, the library supports the [Solana Wallet Adapter](https://github.com/solana-labs/wallet-adapter) and [Rainbowkit](https://www.rainbowkit.com).\n\n3. Solana Wallet Adapter:\n   - Implements the Wallet Adapter interface specifically for the Solana blockchain.\n   - Integrates with Solana wallets that conform to the wallet standard.\n   - Provides a user-friendly interface for selecting and connecting to Solana wallets.\n   - Supports common operations such as transaction signing and account information retrieval for Solana.\n\n4. Rainbowkit Wallet Adapter:\n   - Implements the Wallet Adapter specifically for EVM-supported wallets.\n   - Integrates with the Rainbowkit wallet that conforms to the wallet standard.\n   - Provides a user-friendly interface for selecting and connecting to EVM-supported wallets.\n   - Supports common operations such as transaction signing and account information retrieval for Rainbowkit.\n\n### Extensibility and Switching Wallet Adapters\n1. Interface Consistency:\n   - Ensures that all Wallet Adapters conform to the same interface defined by the wallet standard.\n   - This allows for seamless switching between different Wallet Adapters without modifying the core library code.\n\n2. Future Wallet Adapters:\n   - The library is designed to be extensible, allowing for the addition of new Wallet Adapters in the future.\n   - New Wallet Adapters should conform to the wallet standard and integrate with the library's core functionality.\n   - Clear documentation and guidelines are provided for developers to create new Wallet Adapters.\n\n### Installation\n\nInstall the component using `yarn install @civic/multichain-wallet-connect` or `npm i -S @civic/multichain-wallet-connect`.\n\n### Architecture\n\nThe architecture can be viewed [here](https://mermaid.live/view#pako:eNqVVE1rwzAM_SvC5-0P5FAoHYzCxmCl9JKLGquNwbEzW17ZSv_77Ngt_abLyUh6T3rPcraisZJEJTx9BTINvShcO-xqA_Gbe3LPo9F8WsFHTwbkuO9LZhrj70GzmrSozMQaQw1XMDWKFWr1S7BR3IIPfW8dk4Qm1fmMvgBGsgVqTTyW2DO5EyJuCXIWSjpzb4aYj3lkaKxZWdcB26E-58AzGolO3m6btM1au0kEKQTLwGzNif4rOsvhDq9PKgbXOitR37PjdpsZ6TTTUHy71zUgW5ed8wPFvuPD_r9hME17hvZn95DZTpAH6Z_EwRlA0Moz2BXgNyqNS01HF0cQYjE0aA7-J59ObDkbrFiSOa4PcMWPMk1pEvUsjvD_9vRxmrPhX4kPQudTiBsLPi6fMusjzrK7N8zd72uBX8DiwpcdHvJS-VKSmuQa8SQ6ch0qGR_-NvWpRZTVUS2qeJS0wiilFrXZxVIMbGc_phEVu0BPIvQSef-fyMHdH73-g1Y).\n\n```mermaid\nsequenceDiagram\n    User->>UI: Open dApp\n    UI->>MultiChainConnect: Initialize with supported chains\n    MultiChainConnect->>WalletAdapter: Initialize the Wallet Adapter with wallets that conform to the wallet standard\n    MultiChainConnect->>UI: Show connect button\n    User->>MultiChainConnect: Connect\n    MultiChainConnect->>User: Open modal with supported chains\n    User->>MultiChainConnect: Select chain\n    MultiChainConnect->>MultiChainConnect: Store the selected chain\n    MultiChainConnect->>WalletAdapter: Launch selected chain's Wallet Adapter\n    WalletAdapter->>User: Return a list of available wallets the user can connect with\n    User->>WalletAdapter: Select wallet\n    WalletAdapter->>MultiChainConnect: Return connected Wallet\n    MultiChainConnect->>MultiChainConnect: Store the connected Wallet\n    MultiChainConnect->>WalletAdapter: Get connect UI for showing the connected wallet \n    WalletAdapter->>UI: Show UI for connected wallet and button for disconnecting wallet\n```\n\n### Example Usage\n\n1. Importing the Library:\n\n```javascript\nimport React from 'react';\nimport { MultichainWalletProvider, createChain } from '@civic/multichain-wallet-connect';\n\nconst ExampleComponent: React.FC = () => {\n  return (\n    <MultichainWalletProvider\n      chains={[createChain.ethereum('mainnet')]}\n    >\n      <MultichainConnectButton />\n    </MultichainWalletProvider>\n  );\n};\n\nexport default ExampleComponent;\n```\n\n### Custom button\n\n1. Creating your own button with custom styling:\n\n```javascript\n/* eslint-disable import/no-extraneous-dependencies */\nimport React from \"react\";\nimport styled from \"styled-components\";\nimport { MultichainConnectedButton, useWallet, useModal } from \"@civic/multichain-wallet-connect\";\n\n// Styled component named StyledButton\nconst StyledButton = styled.button`\n  display: inline-block;\n  border-radius: 20px;\n  padding: 0.5rem 0;\n  margin: 0.5rem 1rem;\n  width: 11rem;\n  border: 2px solid black;\n  background: white;\n  color: black;\n`;\n\nexport function MultichainConnectButton(): JSX.Element | null {\n  const { connected } = useWallet();\n  const { openConnectModal } = useModal();\n\n  return (\n    <>\n      {!connected && (\n        <StyledButton type=\"button\" onClick={openConnectModal}>\n          Connect\n        </StyledButton>\n      )}\n      <MultichainConnectedButton />\n    </>\n  );\n}\n```","engines":{"node":">=16"},"gitHead":"d1a0805dd083da785e840819caca4272b456f357","scripts":{"lint":"eslint -c .eslintrc.js '{src,test}/**/*.ts'","test":"yarn test:unit","build":"tsc -b tsconfig.build.json && tsc -b tsconfig.umd.json","lint:fix":"eslint -c .eslintrc.js --fix '{src,test}/**/*.ts'","test:unit":"STAGE=${STAGE:-local} FORCE_COLOR=1 LOG_LEVEL=error LOCAL=true  ts-mocha -p tsconfig.mocha.json --timeout 20000 --paths 'test/unit/**/*.ts'","test:mocha":"STAGE=${STAGE:-local} FORCE_COLOR=1 LOG_LEVEL=error LOCAL=true nyc --reporter=text --reporter=html mocha","test:watch":"ts-mocha -p tsconfig.mocha.json 'test/**/*.ts' -w --watch-files '**/**/*.ts'"},"_npmUser":{"name":"tyronemichael","email":"tyronemichael@gmail.com"},"repository":{"url":"git+ssh://git@github.com/civicteam/civic.me.git","type":"git"},"_npmVersion":"8.19.2","description":"A multichain wallet connect library","directories":{},"_nodeVersion":"18.12.1","dependencies":{"ramda":"^0.28.0","wagmi":"^0.12.13","ethers":"^5","@types/react":"^17.0.0","@solana/web3.js":"^1.76.0","@headlessui/react":"^1.7.14","styled-components":"^6.0.0-rc.2","@wallet-standard/app":"^1.0.1","@wallet-standard/core":"^1.0.3","@rainbow-me/rainbowkit":"^0.12.14","@wallet-standard/wallet":"^1.0.1","@civic/civic-chain-icons":"0.0.5-beta.0","@civic/civic-eth-provider":"0.0.8-beta.2","@solana/wallet-adapter-base":"^0.9.22","@wallet-standard/react-core":"^0.1.4","@solana/wallet-adapter-react":"^0.15.32","@solana/wallet-adapter-wallets":"^0.19.16","@solana/wallet-adapter-react-ui":"^0.9.31","@solana/wallet-standard-wallet-adapter-react":"^1.0.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.1.0","chai":"^4.3.6","husky":"^8.0.1","mocha":"^9.2.2","sinon":"^14.0.0","ts-node":"^10.7.0","eslint_d":"^12.0.0","ts-mocha":"^10.0.0","sinon-chai":"^3.7.0","@types/chai":"^4.3.1","@types/jsdom":"^16.2.14","@types/mocha":"^9.1.0","@types/ramda":"^0.28.12","@types/sinon":"^10.0.11","@types/expect":"^24.3.0","tsconfig-paths":"^3.9.0","chai-as-promised":"^7.1.1","@types/sinon-chai":"^3.2.8","eslint-plugin-no-only-tests":"^3.1.0"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"_npmOperationalInternal":{"tmp":"tmp/multichain-wallet-connect_0.0.1-beta.8_1685368417815_0.7641127212155481","host":"s3://npm-registry-packages"}},"0.0.1-beta.9":{"name":"@civic/multichain-wallet-connect","version":"0.0.1-beta.9","author":{"name":"civic.com"},"license":"MIT","_id":"@civic/multichain-wallet-connect@0.0.1-beta.9","maintainers":[{"name":"ndrabins","email":"noah.drabinsky1@gmail.com"},{"name":"dmelosantos","email":"danielmelos@gmail.com"},{"name":"jp-civic","email":"jp@civic.com"},{"name":"chriteixeira","email":"chriteixeira@gmail.com"},{"name":"daneel","email":"daneel@civic.com"},{"name":"mitchcivic","email":"mitch@civic.com"},{"name":"dankelleher","email":"dankelleher@yahoo.com"},{"name":"jonthepilot","email":"jonathan@civic.com"},{"name":"rado0x54","email":"web@riedel-it.de"},{"name":"araptarchis","email":"alexis.raptarchis@googlemail.com"},{"name":"civicfinance","email":"camille@civic.com"},{"name":"kevinhcolgan","email":"kevin@civic.com"},{"name":"flippiescholtz","email":"flippie@civic.com"},{"name":"tyronemichael","email":"tyronemichael@gmail.com"},{"name":"lucmir","email":"luccmir@gmail.com"},{"name":"william-identity","email":"william@identity.org"}],"homepage":"https://github.com/civicteam/civic.me#readme","bugs":{"url":"https://github.com/civicteam/civic.me/issues"},"dist":{"shasum":"ecdeb613ea2fcddc128e9d290581c35d97b747bb","tarball":"https://registry.npmjs.org/@civic/multichain-wallet-connect/-/multichain-wallet-connect-0.0.1-beta.9.tgz","fileCount":89,"integrity":"sha512-9qwHu6Fj5gpCtsHruHfrgIFko4C9rcjZsYbgImRSKl2HaaNnBxk/2ETiWKrrlI93EvQ9CVq3R97VNMzmYO2GwQ==","signatures":[{"sig":"MEUCICs6dhELyD0fXgmipwCUhQocEltryPWeFaPJLnUTI13VAiEA/KCdPlGcV9YY85KedBiVjk+Bhqcz1j3V/R8baOcvLHU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":135684},"main":"./dist/umd/index.js","types":"./dist/typings/index.d.ts","module":"./dist/esm/index.js","readme":"## Library Specification: Multi-Chain Wallet Support\n\n### Overview\nThe library provides support for multiple chains by leveraging the [Wallet Standard](https://github.com/wallet-standard/wallet-standard). It enables the injection of wallets that conform to the wallet standard into Wallet Adapters. The Wallet Adapters serve as UI interfaces that allow users to select their preferred wallet for connecting to the dApp. The library currently supports the [Solana Wallet Adapter](https://github.com/solana-labs/wallet-adapter) and [Rainbowkit](https://www.rainbowkit.com), both of which implement the same interface. This design allows for easy switching between different Wallet Adapters.\n\n### Core Functionality\n1. Wallet Standard:\n   - The library uses the wallet standard defined [here](https://github.com/wallet-standard/wallet-standard).\n   - The standard interface includes common methods for connecting to a blockchain, signing transactions, and retrieving account information.\n\n2. Wallet Adapters:\n   - Wallet Adapters serve as UI interfaces for users to select their preferred wallet.\n   - The Wallet Adapters should be capable of handling multiple wallets, each conforming to the wallet standard.\n   - The library has implemented a mechanism for dynamically switching between different Wallet Adapters at runtime.\n   - A common interface has also been developed to allow the use of different wallet adapters.\n   - Currently, the library supports the [Solana Wallet Adapter](https://github.com/solana-labs/wallet-adapter) and [Rainbowkit](https://www.rainbowkit.com).\n\n3. Solana Wallet Adapter:\n   - Implements the Wallet Adapter interface specifically for the Solana blockchain.\n   - Integrates with Solana wallets that conform to the wallet standard.\n   - Provides a user-friendly interface for selecting and connecting to Solana wallets.\n   - Supports common operations such as transaction signing and account information retrieval for Solana.\n\n4. Rainbowkit Wallet Adapter:\n   - Implements the Wallet Adapter specifically for EVM-supported wallets.\n   - Integrates with the Rainbowkit wallet that conforms to the wallet standard.\n   - Provides a user-friendly interface for selecting and connecting to EVM-supported wallets.\n   - Supports common operations such as transaction signing and account information retrieval for Rainbowkit.\n\n### Extensibility and Switching Wallet Adapters\n1. Interface Consistency:\n   - Ensures that all Wallet Adapters conform to the same interface defined by the wallet standard.\n   - This allows for seamless switching between different Wallet Adapters without modifying the core library code.\n\n2. Future Wallet Adapters:\n   - The library is designed to be extensible, allowing for the addition of new Wallet Adapters in the future.\n   - New Wallet Adapters should conform to the wallet standard and integrate with the library's core functionality.\n   - Clear documentation and guidelines are provided for developers to create new Wallet Adapters.\n\n### Installation\n\nInstall the component using `yarn install @civic/multichain-wallet-connect` or `npm i -S @civic/multichain-wallet-connect`.\n\n### Architecture\n\nThe architecture can be viewed [here](https://mermaid.live/view#pako:eNqVVE1rwzAM_SvC5-0P5FAoHYzCxmCl9JKLGquNwbEzW17ZSv_77Ngt_abLyUh6T3rPcraisZJEJTx9BTINvShcO-xqA_Gbe3LPo9F8WsFHTwbkuO9LZhrj70GzmrSozMQaQw1XMDWKFWr1S7BR3IIPfW8dk4Qm1fmMvgBGsgVqTTyW2DO5EyJuCXIWSjpzb4aYj3lkaKxZWdcB26E-58AzGolO3m6btM1au0kEKQTLwGzNif4rOsvhDq9PKgbXOitR37PjdpsZ6TTTUHy71zUgW5ed8wPFvuPD_r9hME17hvZn95DZTpAH6Z_EwRlA0Moz2BXgNyqNS01HF0cQYjE0aA7-J59ObDkbrFiSOa4PcMWPMk1pEvUsjvD_9vRxmrPhX4kPQudTiBsLPi6fMusjzrK7N8zd72uBX8DiwpcdHvJS-VKSmuQa8SQ6ch0qGR_-NvWpRZTVUS2qeJS0wiilFrXZxVIMbGc_phEVu0BPIvQSef-fyMHdH73-g1Y).\n\n```mermaid\nsequenceDiagram\n    User->>UI: Open dApp\n    UI->>MultiChainConnect: Initialize with supported chains\n    MultiChainConnect->>WalletAdapter: Initialize the Wallet Adapter with wallets that conform to the wallet standard\n    MultiChainConnect->>UI: Show connect button\n    User->>MultiChainConnect: Connect\n    MultiChainConnect->>User: Open modal with supported chains\n    User->>MultiChainConnect: Select chain\n    MultiChainConnect->>MultiChainConnect: Store the selected chain\n    MultiChainConnect->>WalletAdapter: Launch selected chain's Wallet Adapter\n    WalletAdapter->>User: Return a list of available wallets the user can connect with\n    User->>WalletAdapter: Select wallet\n    WalletAdapter->>MultiChainConnect: Return connected Wallet\n    MultiChainConnect->>MultiChainConnect: Store the connected Wallet\n    MultiChainConnect->>WalletAdapter: Get connect UI for showing the connected wallet \n    WalletAdapter->>UI: Show UI for connected wallet and button for disconnecting wallet\n```\n\n### Example Usage\n\n1. Importing the Library:\n\n```javascript\nimport React from 'react';\nimport { MultichainWalletProvider, createChain } from '@civic/multichain-wallet-connect';\n\nconst ExampleComponent: React.FC = () => {\n  return (\n    <MultichainWalletProvider\n      chains={[createChain.ethereum('mainnet')]}\n    >\n      <MultichainConnectButton />\n    </MultichainWalletProvider>\n  );\n};\n\nexport default ExampleComponent;\n```\n\n### Custom button\n\n1. Creating your own button with custom styling:\n\n```javascript\n/* eslint-disable import/no-extraneous-dependencies */\nimport React from \"react\";\nimport styled from \"styled-components\";\nimport { MultichainConnectedButton, useWallet, useModal } from \"@civic/multichain-wallet-connect\";\n\n// Styled component named StyledButton\nconst StyledButton = styled.button`\n  display: inline-block;\n  border-radius: 20px;\n  padding: 0.5rem 0;\n  margin: 0.5rem 1rem;\n  width: 11rem;\n  border: 2px solid black;\n  background: white;\n  color: black;\n`;\n\nexport function MultichainConnectButton(): JSX.Element | null {\n  const { connected } = useWallet();\n  const { openConnectModal } = useModal();\n\n  return (\n    <>\n      {!connected && (\n        <StyledButton type=\"button\" onClick={openConnectModal}>\n          Connect\n        </StyledButton>\n      )}\n      <MultichainConnectedButton />\n    </>\n  );\n}\n```","engines":{"node":">=16"},"gitHead":"d1a0805dd083da785e840819caca4272b456f357","scripts":{"lint":"eslint -c .eslintrc.js '{src,test}/**/*.ts'","test":"yarn test:unit","build":"tsc -b tsconfig.build.json && tsc -b tsconfig.umd.json","lint:fix":"eslint -c .eslintrc.js --fix '{src,test}/**/*.ts'","test:unit":"STAGE=${STAGE:-local} FORCE_COLOR=1 LOG_LEVEL=error LOCAL=true  ts-mocha -p tsconfig.mocha.json --timeout 20000 --paths 'test/unit/**/*.ts'","test:mocha":"STAGE=${STAGE:-local} FORCE_COLOR=1 LOG_LEVEL=error LOCAL=true nyc --reporter=text --reporter=html mocha","test:watch":"ts-mocha -p tsconfig.mocha.json 'test/**/*.ts' -w --watch-files '**/**/*.ts'"},"_npmUser":{"name":"tyronemichael","email":"tyronemichael@gmail.com"},"repository":{"url":"git+ssh://git@github.com/civicteam/civic.me.git","type":"git"},"_npmVersion":"8.19.2","description":"A multichain wallet connect library","directories":{},"_nodeVersion":"18.12.1","dependencies":{"ramda":"^0.28.0","wagmi":"^0.12.13","ethers":"^5","@types/react":"^17.0.0","@solana/web3.js":"^1.76.0","@headlessui/react":"^1.7.14","styled-components":"^6.0.0-rc.2","@wallet-standard/app":"^1.0.1","@wallet-standard/core":"^1.0.3","@rainbow-me/rainbowkit":"^0.12.14","@wallet-standard/wallet":"^1.0.1","@civic/civic-chain-icons":"0.0.5-beta.0","@civic/civic-eth-provider":"0.0.8-beta.2","@solana/wallet-adapter-base":"^0.9.22","@wallet-standard/react-core":"^0.1.4","@solana/wallet-adapter-react":"^0.15.32","@solana/wallet-adapter-wallets":"^0.19.16","@solana/wallet-adapter-react-ui":"^0.9.31","@solana/wallet-standard-wallet-adapter-react":"^1.0.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.1.0","chai":"^4.3.6","husky":"^8.0.1","mocha":"^9.2.2","sinon":"^14.0.0","ts-node":"^10.7.0","eslint_d":"^12.0.0","ts-mocha":"^10.0.0","sinon-chai":"^3.7.0","@types/chai":"^4.3.1","@types/jsdom":"^16.2.14","@types/mocha":"^9.1.0","@types/ramda":"^0.28.12","@types/sinon":"^10.0.11","@types/expect":"^24.3.0","tsconfig-paths":"^3.9.0","chai-as-promised":"^7.1.1","@types/sinon-chai":"^3.2.8","eslint-plugin-no-only-tests":"^3.1.0"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"_npmOperationalInternal":{"tmp":"tmp/multichain-wallet-connect_0.0.1-beta.9_1685435335805_0.16775966979310297","host":"s3://npm-registry-packages"}},"0.0.1-beta.10":{"name":"@civic/multichain-wallet-connect","version":"0.0.1-beta.10","author":{"name":"civic.com"},"license":"MIT","_id":"@civic/multichain-wallet-connect@0.0.1-beta.10","maintainers":[{"name":"ndrabins","email":"noah.drabinsky1@gmail.com"},{"name":"dmelosantos","email":"danielmelos@gmail.com"},{"name":"jp-civic","email":"jp@civic.com"},{"name":"chriteixeira","email":"chriteixeira@gmail.com"},{"name":"daneel","email":"daneel@civic.com"},{"name":"mitchcivic","email":"mitch@civic.com"},{"name":"dankelleher","email":"dankelleher@yahoo.com"},{"name":"jonthepilot","email":"jonathan@civic.com"},{"name":"rado0x54","email":"web@riedel-it.de"},{"name":"araptarchis","email":"alexis.raptarchis@googlemail.com"},{"name":"civicfinance","email":"camille@civic.com"},{"name":"kevinhcolgan","email":"kevin@civic.com"},{"name":"flippiescholtz","email":"flippie@civic.com"},{"name":"tyronemichael","email":"tyronemichael@gmail.com"},{"name":"lucmir","email":"luccmir@gmail.com"},{"name":"william-identity","email":"william@identity.org"}],"homepage":"https://github.com/civicteam/civic.me#readme","bugs":{"url":"https://github.com/civicteam/civic.me/issues"},"dist":{"shasum":"0834ae0d11cde97b8fffff1dd40c9ba036f66680","tarball":"https://registry.npmjs.org/@civic/multichain-wallet-connect/-/multichain-wallet-connect-0.0.1-beta.10.tgz","fileCount":89,"integrity":"sha512-lb/y5nzZnjIothgQGhxpsD4MSErupK4i1MAssHhVk4W6Cv/8DiwjYGilJlT6184XCZFgN2QEPgKiarM8xTusqQ==","signatures":[{"sig":"MEUCIHYy1SrRQ4r2TizSohMbPpASpuwntJO2eAAS+gfX7RqTAiEAx8+7d0RHfoqinKdkr6f5IDQurMyzTYo5AGllPQAvxgY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":131199},"main":"./dist/umd/index.js","types":"./dist/typings/index.d.ts","module":"./dist/esm/index.js","readme":"## Library Specification: Multi-Chain Wallet Support\n\n### Overview\nThe library provides support for multiple chains by leveraging the [Wallet Standard](https://github.com/wallet-standard/wallet-standard). It enables the injection of wallets that conform to the wallet standard into Wallet Adapters. The Wallet Adapters serve as UI interfaces that allow users to select their preferred wallet for connecting to the dApp. The library currently supports the [Solana Wallet Adapter](https://github.com/solana-labs/wallet-adapter) and [Rainbowkit](https://www.rainbowkit.com), both of which implement the same interface. This design allows for easy switching between different Wallet Adapters.\n\n### Core Functionality\n1. Wallet Standard:\n   - The library uses the wallet standard defined [here](https://github.com/wallet-standard/wallet-standard).\n   - The standard interface includes common methods for connecting to a blockchain, signing transactions, and retrieving account information.\n\n2. Wallet Adapters:\n   - Wallet Adapters serve as UI interfaces for users to select their preferred wallet.\n   - The Wallet Adapters should be capable of handling multiple wallets, each conforming to the wallet standard.\n   - The library has implemented a mechanism for dynamically switching between different Wallet Adapters at runtime.\n   - A common interface has also been developed to allow the use of different wallet adapters.\n   - Currently, the library supports the [Solana Wallet Adapter](https://github.com/solana-labs/wallet-adapter) and [Rainbowkit](https://www.rainbowkit.com).\n\n3. Solana Wallet Adapter:\n   - Implements the Wallet Adapter interface specifically for the Solana blockchain.\n   - Integrates with Solana wallets that conform to the wallet standard.\n   - Provides a user-friendly interface for selecting and connecting to Solana wallets.\n   - Supports common operations such as transaction signing and account information retrieval for Solana.\n\n4. Rainbowkit Wallet Adapter:\n   - Implements the Wallet Adapter specifically for EVM-supported wallets.\n   - Integrates with the Rainbowkit wallet that conforms to the wallet standard.\n   - Provides a user-friendly interface for selecting and connecting to EVM-supported wallets.\n   - Supports common operations such as transaction signing and account information retrieval for Rainbowkit.\n\n### Extensibility and Switching Wallet Adapters\n1. Interface Consistency:\n   - Ensures that all Wallet Adapters conform to the same interface defined by the wallet standard.\n   - This allows for seamless switching between different Wallet Adapters without modifying the core library code.\n\n2. Future Wallet Adapters:\n   - The library is designed to be extensible, allowing for the addition of new Wallet Adapters in the future.\n   - New Wallet Adapters should conform to the wallet standard and integrate with the library's core functionality.\n   - Clear documentation and guidelines are provided for developers to create new Wallet Adapters.\n\n### Installation\n\nInstall the component using `yarn install @civic/multichain-wallet-connect` or `npm i -S @civic/multichain-wallet-connect`.\n\n### Architecture\n\nThe architecture can be viewed [here](https://mermaid.live/view#pako:eNqVVE1rwzAM_SvC5-0P5FAoHYzCxmCl9JKLGquNwbEzW17ZSv_77Ngt_abLyUh6T3rPcraisZJEJTx9BTINvShcO-xqA_Gbe3LPo9F8WsFHTwbkuO9LZhrj70GzmrSozMQaQw1XMDWKFWr1S7BR3IIPfW8dk4Qm1fmMvgBGsgVqTTyW2DO5EyJuCXIWSjpzb4aYj3lkaKxZWdcB26E-58AzGolO3m6btM1au0kEKQTLwGzNif4rOsvhDq9PKgbXOitR37PjdpsZ6TTTUHy71zUgW5ed8wPFvuPD_r9hME17hvZn95DZTpAH6Z_EwRlA0Moz2BXgNyqNS01HF0cQYjE0aA7-J59ObDkbrFiSOa4PcMWPMk1pEvUsjvD_9vRxmrPhX4kPQudTiBsLPi6fMusjzrK7N8zd72uBX8DiwpcdHvJS-VKSmuQa8SQ6ch0qGR_-NvWpRZTVUS2qeJS0wiilFrXZxVIMbGc_phEVu0BPIvQSef-fyMHdH73-g1Y).\n\n```mermaid\nsequenceDiagram\n    User->>UI: Open dApp\n    UI->>MultiChainConnect: Initialize with supported chains\n    MultiChainConnect->>WalletAdapter: Initialize the Wallet Adapter with wallets that conform to the wallet standard\n    MultiChainConnect->>UI: Show connect button\n    User->>MultiChainConnect: Connect\n    MultiChainConnect->>User: Open modal with supported chains\n    User->>MultiChainConnect: Select chain\n    MultiChainConnect->>MultiChainConnect: Store the selected chain\n    MultiChainConnect->>WalletAdapter: Launch selected chain's Wallet Adapter\n    WalletAdapter->>User: Return a list of available wallets the user can connect with\n    User->>WalletAdapter: Select wallet\n    WalletAdapter->>MultiChainConnect: Return connected Wallet\n    MultiChainConnect->>MultiChainConnect: Store the connected Wallet\n    MultiChainConnect->>WalletAdapter: Get connect UI for showing the connected wallet \n    WalletAdapter->>UI: Show UI for connected wallet and button for disconnecting wallet\n```\n\n### Example Usage\n\n1. Importing the Library:\n\n```javascript\nimport React from 'react';\nimport { MultichainWalletProvider, createChain } from '@civic/multichain-wallet-connect';\n\nconst ExampleComponent: React.FC = () => {\n  return (\n    <MultichainWalletProvider\n      chains={[createChain.ethereum('mainnet')]}\n    >\n      <MultichainConnectButton />\n    </MultichainWalletProvider>\n  );\n};\n\nexport default ExampleComponent;\n```\n\n### Custom button\n\n1. Creating your own button with custom styling:\n\n```javascript\n/* eslint-disable import/no-extraneous-dependencies */\nimport React from \"react\";\nimport styled from \"styled-components\";\nimport { MultichainConnectedButton, useWallet, useModal } from \"@civic/multichain-wallet-connect\";\n\n// Styled component named StyledButton\nconst StyledButton = styled.button`\n  display: inline-block;\n  border-radius: 20px;\n  padding: 0.5rem 0;\n  margin: 0.5rem 1rem;\n  width: 11rem;\n  border: 2px solid black;\n  background: white;\n  color: black;\n`;\n\nexport function MultichainConnectButton(): JSX.Element | null {\n  const { connected } = useWallet();\n  const { openConnectModal } = useModal();\n\n  return (\n    <>\n      {!connected && (\n        <StyledButton type=\"button\" onClick={openConnectModal}>\n          Connect\n        </StyledButton>\n      )}\n      <MultichainConnectedButton />\n    </>\n  );\n}\n```","engines":{"node":">=16"},"gitHead":"d1a0805dd083da785e840819caca4272b456f357","scripts":{"lint":"eslint -c .eslintrc.js '{src,test}/**/*.ts'","test":"yarn test:unit","build":"tsc -b tsconfig.build.json && tsc -b tsconfig.umd.json","lint:fix":"eslint -c .eslintrc.js --fix '{src,test}/**/*.ts'","test:unit":"STAGE=${STAGE:-local} FORCE_COLOR=1 LOG_LEVEL=error LOCAL=true  ts-mocha -p tsconfig.mocha.json --timeout 20000 --paths 'test/unit/**/*.ts'","test:mocha":"STAGE=${STAGE:-local} FORCE_COLOR=1 LOG_LEVEL=error LOCAL=true nyc --reporter=text --reporter=html mocha","test:watch":"ts-mocha -p tsconfig.mocha.json 'test/**/*.ts' -w --watch-files '**/**/*.ts'"},"_npmUser":{"name":"tyronemichael","email":"tyronemichael@gmail.com"},"repository":{"url":"git+ssh://git@github.com/civicteam/civic.me.git","type":"git"},"_npmVersion":"8.19.2","description":"A multichain wallet connect library","directories":{},"_nodeVersion":"18.12.1","dependencies":{"ramda":"^0.28.0","wagmi":"^0.12.13","ethers":"^5","@types/react":"^17.0.0","@solana/web3.js":"^1.76.0","@headlessui/react":"^1.7.14","styled-components":"^6.0.0-rc.2","@wallet-standard/app":"^1.0.1","@wallet-standard/core":"^1.0.3","@rainbow-me/rainbowkit":"^0.12.14","@wallet-standard/wallet":"^1.0.1","@civic/civic-chain-icons":"0.0.5-beta.0","@civic/civic-eth-provider":"0.0.8-beta.2","@solana/wallet-adapter-base":"^0.9.22","@wallet-standard/react-core":"^0.1.4","@solana/wallet-adapter-react":"^0.15.32","@solana/wallet-adapter-wallets":"^0.19.16","@solana/wallet-adapter-react-ui":"^0.9.31","@solana/wallet-standard-wallet-adapter-react":"^1.0.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.1.0","chai":"^4.3.6","husky":"^8.0.1","mocha":"^9.2.2","sinon":"^14.0.0","ts-node":"^10.7.0","eslint_d":"^12.0.0","ts-mocha":"^10.0.0","sinon-chai":"^3.7.0","@types/chai":"^4.3.1","@types/jsdom":"^16.2.14","@types/mocha":"^9.1.0","@types/ramda":"^0.28.12","@types/sinon":"^10.0.11","@types/expect":"^24.3.0","tsconfig-paths":"^3.9.0","chai-as-promised":"^7.1.1","@types/sinon-chai":"^3.2.8","eslint-plugin-no-only-tests":"^3.1.0"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"_npmOperationalInternal":{"tmp":"tmp/multichain-wallet-connect_0.0.1-beta.10_1685435467154_0.2466566810230968","host":"s3://npm-registry-packages"}},"0.0.1-beta.11":{"name":"@civic/multichain-wallet-connect","version":"0.0.1-beta.11","author":{"name":"civic.com"},"license":"MIT","_id":"@civic/multichain-wallet-connect@0.0.1-beta.11","maintainers":[{"name":"ndrabins","email":"noah.drabinsky1@gmail.com"},{"name":"dmelosantos","email":"danielmelos@gmail.com"},{"name":"jp-civic","email":"jp@civic.com"},{"name":"chriteixeira","email":"chriteixeira@gmail.com"},{"name":"daneel","email":"daneel@civic.com"},{"name":"mitchcivic","email":"mitch@civic.com"},{"name":"dankelleher","email":"dankelleher@yahoo.com"},{"name":"jonthepilot","email":"jonathan@civic.com"},{"name":"rado0x54","email":"web@riedel-it.de"},{"name":"araptarchis","email":"alexis.raptarchis@googlemail.com"},{"name":"civicfinance","email":"camille@civic.com"},{"name":"kevinhcolgan","email":"kevin@civic.com"},{"name":"flippiescholtz","email":"flippie@civic.com"},{"name":"tyronemichael","email":"tyronemichael@gmail.com"},{"name":"lucmir","email":"luccmir@gmail.com"},{"name":"william-identity","email":"william@identity.org"}],"homepage":"https://github.com/civicteam/civic.me#readme","bugs":{"url":"https://github.com/civicteam/civic.me/issues"},"dist":{"shasum":"a87e698aa240f3cda05a5e9f6e41a2ce1755a381","tarball":"https://registry.npmjs.org/@civic/multichain-wallet-connect/-/multichain-wallet-connect-0.0.1-beta.11.tgz","fileCount":89,"integrity":"sha512-emFLLaqS7gNUDgKCT0PgCSLOmKHmFlvqHRoSklNFoOFkYJxCcZFzo2brX9ErCl9Cgg8I1LxHPFTCXnHscBpWOA==","signatures":[{"sig":"MEUCIAMJ7z8qAHXTDt2ktv7nVxPX0FYtFX/mTubX0EalX2QTAiEA3lJYrPsp4MXSaGP9c5pBDOGRqWjeNqoicrhY4esCDBk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":131182},"main":"./dist/umd/index.js","types":"./dist/typings/index.d.ts","module":"./dist/esm/index.js","readme":"## Library Specification: Multi-Chain Wallet Support\n\n### Overview\nThe library provides support for multiple chains by leveraging the [Wallet Standard](https://github.com/wallet-standard/wallet-standard). It enables the injection of wallets that conform to the wallet standard into Wallet Adapters. The Wallet Adapters serve as UI interfaces that allow users to select their preferred wallet for connecting to the dApp. The library currently supports the [Solana Wallet Adapter](https://github.com/solana-labs/wallet-adapter) and [Rainbowkit](https://www.rainbowkit.com), both of which implement the same interface. This design allows for easy switching between different Wallet Adapters.\n\n### Core Functionality\n1. Wallet Standard:\n   - The library uses the wallet standard defined [here](https://github.com/wallet-standard/wallet-standard).\n   - The standard interface includes common methods for connecting to a blockchain, signing transactions, and retrieving account information.\n\n2. Wallet Adapters:\n   - Wallet Adapters serve as UI interfaces for users to select their preferred wallet.\n   - The Wallet Adapters should be capable of handling multiple wallets, each conforming to the wallet standard.\n   - The library has implemented a mechanism for dynamically switching between different Wallet Adapters at runtime.\n   - A common interface has also been developed to allow the use of different wallet adapters.\n   - Currently, the library supports the [Solana Wallet Adapter](https://github.com/solana-labs/wallet-adapter) and [Rainbowkit](https://www.rainbowkit.com).\n\n3. Solana Wallet Adapter:\n   - Implements the Wallet Adapter interface specifically for the Solana blockchain.\n   - Integrates with Solana wallets that conform to the wallet standard.\n   - Provides a user-friendly interface for selecting and connecting to Solana wallets.\n   - Supports common operations such as transaction signing and account information retrieval for Solana.\n\n4. Rainbowkit Wallet Adapter:\n   - Implements the Wallet Adapter specifically for EVM-supported wallets.\n   - Integrates with the Rainbowkit wallet that conforms to the wallet standard.\n   - Provides a user-friendly interface for selecting and connecting to EVM-supported wallets.\n   - Supports common operations such as transaction signing and account information retrieval for Rainbowkit.\n\n### Extensibility and Switching Wallet Adapters\n1. Interface Consistency:\n   - Ensures that all Wallet Adapters conform to the same interface defined by the wallet standard.\n   - This allows for seamless switching between different Wallet Adapters without modifying the core library code.\n\n2. Future Wallet Adapters:\n   - The library is designed to be extensible, allowing for the addition of new Wallet Adapters in the future.\n   - New Wallet Adapters should conform to the wallet standard and integrate with the library's core functionality.\n   - Clear documentation and guidelines are provided for developers to create new Wallet Adapters.\n\n### Installation\n\nInstall the component using `yarn install @civic/multichain-wallet-connect` or `npm i -S @civic/multichain-wallet-connect`.\n\n### Architecture\n\nThe architecture can be viewed [here](https://mermaid.live/view#pako:eNqVVE1rwzAM_SvC5-0P5FAoHYzCxmCl9JKLGquNwbEzW17ZSv_77Ngt_abLyUh6T3rPcraisZJEJTx9BTINvShcO-xqA_Gbe3LPo9F8WsFHTwbkuO9LZhrj70GzmrSozMQaQw1XMDWKFWr1S7BR3IIPfW8dk4Qm1fmMvgBGsgVqTTyW2DO5EyJuCXIWSjpzb4aYj3lkaKxZWdcB26E-58AzGolO3m6btM1au0kEKQTLwGzNif4rOsvhDq9PKgbXOitR37PjdpsZ6TTTUHy71zUgW5ed8wPFvuPD_r9hME17hvZn95DZTpAH6Z_EwRlA0Moz2BXgNyqNS01HF0cQYjE0aA7-J59ObDkbrFiSOa4PcMWPMk1pEvUsjvD_9vRxmrPhX4kPQudTiBsLPi6fMusjzrK7N8zd72uBX8DiwpcdHvJS-VKSmuQa8SQ6ch0qGR_-NvWpRZTVUS2qeJS0wiilFrXZxVIMbGc_phEVu0BPIvQSef-fyMHdH73-g1Y).\n\n```mermaid\nsequenceDiagram\n    User->>UI: Open dApp\n    UI->>MultiChainConnect: Initialize with supported chains\n    MultiChainConnect->>WalletAdapter: Initialize the Wallet Adapter with wallets that conform to the wallet standard\n    MultiChainConnect->>UI: Show connect button\n    User->>MultiChainConnect: Connect\n    MultiChainConnect->>User: Open modal with supported chains\n    User->>MultiChainConnect: Select chain\n    MultiChainConnect->>MultiChainConnect: Store the selected chain\n    MultiChainConnect->>WalletAdapter: Launch selected chain's Wallet Adapter\n    WalletAdapter->>User: Return a list of available wallets the user can connect with\n    User->>WalletAdapter: Select wallet\n    WalletAdapter->>MultiChainConnect: Return connected Wallet\n    MultiChainConnect->>MultiChainConnect: Store the connected Wallet\n    MultiChainConnect->>WalletAdapter: Get connect UI for showing the connected wallet \n    WalletAdapter->>UI: Show UI for connected wallet and button for disconnecting wallet\n```\n\n### Example Usage\n\n1. Importing the Library:\n\n```javascript\nimport React from 'react';\nimport { MultichainWalletProvider, createChain } from '@civic/multichain-wallet-connect';\n\nconst ExampleComponent: React.FC = () => {\n  return (\n    <MultichainWalletProvider\n      chains={[createChain.ethereum('mainnet')]}\n    >\n      <MultichainConnectButton />\n    </MultichainWalletProvider>\n  );\n};\n\nexport default ExampleComponent;\n```\n\n### Custom button\n\n1. Creating your own button with custom styling:\n\n```javascript\n/* eslint-disable import/no-extraneous-dependencies */\nimport React from \"react\";\nimport styled from \"styled-components\";\nimport { MultichainConnectedButton, useWallet, useModal } from \"@civic/multichain-wallet-connect\";\n\n// Styled component named StyledButton\nconst StyledButton = styled.button`\n  display: inline-block;\n  border-radius: 20px;\n  padding: 0.5rem 0;\n  margin: 0.5rem 1rem;\n  width: 11rem;\n  border: 2px solid black;\n  background: white;\n  color: black;\n`;\n\nexport function MultichainConnectButton(): JSX.Element | null {\n  const { connected } = useWallet();\n  const { openConnectModal } = useModal();\n\n  return (\n    <>\n      {!connected && (\n        <StyledButton type=\"button\" onClick={openConnectModal}>\n          Connect\n        </StyledButton>\n      )}\n      <MultichainConnectedButton />\n    </>\n  );\n}\n```","engines":{"node":">=16"},"gitHead":"d1a0805dd083da785e840819caca4272b456f357","scripts":{"lint":"eslint -c .eslintrc.js '{src,test}/**/*.ts'","test":"yarn test:unit","build":"tsc -b tsconfig.build.json && tsc -b tsconfig.umd.json","lint:fix":"eslint -c .eslintrc.js --fix '{src,test}/**/*.ts'","test:unit":"STAGE=${STAGE:-local} FORCE_COLOR=1 LOG_LEVEL=error LOCAL=true  ts-mocha -p tsconfig.mocha.json --timeout 20000 --paths 'test/unit/**/*.ts'","test:mocha":"STAGE=${STAGE:-local} FORCE_COLOR=1 LOG_LEVEL=error LOCAL=true nyc --reporter=text --reporter=html mocha","test:watch":"ts-mocha -p tsconfig.mocha.json 'test/**/*.ts' -w --watch-files '**/**/*.ts'"},"_npmUser":{"name":"tyronemichael","email":"tyronemichael@gmail.com"},"repository":{"url":"git+ssh://git@github.com/civicteam/civic.me.git","type":"git"},"_npmVersion":"8.19.2","description":"A multichain wallet connect library","directories":{},"_nodeVersion":"18.12.1","dependencies":{"ramda":"^0.28.0","wagmi":"^0.12.13","ethers":"^5","@types/react":"^17.0.0","@solana/web3.js":"^1.76.0","@headlessui/react":"^1.7.14","styled-components":"^6.0.0-rc.2","@wallet-standard/app":"^1.0.1","@wallet-standard/core":"^1.0.3","@rainbow-me/rainbowkit":"^0.12.14","@wallet-standard/wallet":"^1.0.1","@civic/civic-chain-icons":"0.0.5-beta.0","@civic/civic-eth-provider":"0.0.8-beta.2","@solana/wallet-adapter-base":"^0.9.22","@wallet-standard/react-core":"^0.1.4","@solana/wallet-adapter-react":"^0.15.32","@solana/wallet-adapter-wallets":"^0.19.16","@solana/wallet-adapter-react-ui":"^0.9.31","@solana/wallet-standard-wallet-adapter-react":"^1.0.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.1.0","chai":"^4.3.6","husky":"^8.0.1","mocha":"^9.2.2","sinon":"^14.0.0","ts-node":"^10.7.0","eslint_d":"^12.0.0","ts-mocha":"^10.0.0","sinon-chai":"^3.7.0","@types/chai":"^4.3.1","@types/jsdom":"^16.2.14","@types/mocha":"^9.1.0","@types/ramda":"^0.28.12","@types/sinon":"^10.0.11","@types/expect":"^24.3.0","tsconfig-paths":"^3.9.0","chai-as-promised":"^7.1.1","@types/sinon-chai":"^3.2.8","eslint-plugin-no-only-tests":"^3.1.0"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"_npmOperationalInternal":{"tmp":"tmp/multichain-wallet-connect_0.0.1-beta.11_1685435879654_0.014538660352144017","host":"s3://npm-registry-packages"}},"0.0.1-beta.12":{"name":"@civic/multichain-wallet-connect","version":"0.0.1-beta.12","author":{"name":"civic.com"},"license":"MIT","_id":"@civic/multichain-wallet-connect@0.0.1-beta.12","maintainers":[{"name":"ndrabins","email":"noah.drabinsky1@gmail.com"},{"name":"dmelosantos","email":"danielmelos@gmail.com"},{"name":"jp-civic","email":"jp@civic.com"},{"name":"chriteixeira","email":"chriteixeira@gmail.com"},{"name":"daneel","email":"daneel@civic.com"},{"name":"mitchcivic","email":"mitch@civic.com"},{"name":"dankelleher","email":"dankelleher@yahoo.com"},{"name":"jonthepilot","email":"jonathan@civic.com"},{"name":"rado0x54","email":"web@riedel-it.de"},{"name":"araptarchis","email":"alexis.raptarchis@googlemail.com"},{"name":"civicfinance","email":"camille@civic.com"},{"name":"kevinhcolgan","email":"kevin@civic.com"},{"name":"flippiescholtz","email":"flippie@civic.com"},{"name":"tyronemichael","email":"tyronemichael@gmail.com"},{"name":"lucmir","email":"luccmir@gmail.com"},{"name":"william-identity","email":"william@identity.org"}],"homepage":"https://github.com/civicteam/civic.me#readme","bugs":{"url":"https://github.com/civicteam/civic.me/issues"},"dist":{"shasum":"30b1d1a53db56759b635e9d402249c6c89aec1d4","tarball":"https://registry.npmjs.org/@civic/multichain-wallet-connect/-/multichain-wallet-connect-0.0.1-beta.12.tgz","fileCount":89,"integrity":"sha512-LpQpnheWts4kxxVoEtj63UHm2Xprpz0W1pX5vaQwmCy+fQrU7mghdqpPr5dOCIodQmBWqD4mb80+BnBdR4yrnA==","signatures":[{"sig":"MEYCIQDVpkIrN3TdE/4v8Iye9hGlXCOEzLShRhlzBtmXqOh4BQIhALjfx3ovR0BtVtHqoboYhoB/WWbZ7HJ6hVIgQWrI6UCf","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":132018},"main":"./dist/umd/index.js","types":"./dist/typings/index.d.ts","module":"./dist/esm/index.js","readme":"## Library Specification: Multi-Chain Wallet Support\n\n### Overview\nThe library provides support for multiple chains by leveraging the [Wallet Standard](https://github.com/wallet-standard/wallet-standard). It enables the injection of wallets that conform to the wallet standard into Wallet Adapters. The Wallet Adapters serve as UI interfaces that allow users to select their preferred wallet for connecting to the dApp. The library currently supports the [Solana Wallet Adapter](https://github.com/solana-labs/wallet-adapter) and [Rainbowkit](https://www.rainbowkit.com), both of which implement the same interface. This design allows for easy switching between different Wallet Adapters.\n\n### Core Functionality\n1. Wallet Standard:\n   - The library uses the wallet standard defined [here](https://github.com/wallet-standard/wallet-standard).\n   - The standard interface includes common methods for connecting to a blockchain, signing transactions, and retrieving account information.\n\n2. Wallet Adapters:\n   - Wallet Adapters serve as UI interfaces for users to select their preferred wallet.\n   - The Wallet Adapters should be capable of handling multiple wallets, each conforming to the wallet standard.\n   - The library has implemented a mechanism for dynamically switching between different Wallet Adapters at runtime.\n   - A common interface has also been developed to allow the use of different wallet adapters.\n   - Currently, the library supports the [Solana Wallet Adapter](https://github.com/solana-labs/wallet-adapter) and [Rainbowkit](https://www.rainbowkit.com).\n\n3. Solana Wallet Adapter:\n   - Implements the Wallet Adapter interface specifically for the Solana blockchain.\n   - Integrates with Solana wallets that conform to the wallet standard.\n   - Provides a user-friendly interface for selecting and connecting to Solana wallets.\n   - Supports common operations such as transaction signing and account information retrieval for Solana.\n\n4. Rainbowkit Wallet Adapter:\n   - Implements the Wallet Adapter specifically for EVM-supported wallets.\n   - Integrates with the Rainbowkit wallet that conforms to the wallet standard.\n   - Provides a user-friendly interface for selecting and connecting to EVM-supported wallets.\n   - Supports common operations such as transaction signing and account information retrieval for Rainbowkit.\n\n### Extensibility and Switching Wallet Adapters\n1. Interface Consistency:\n   - Ensures that all Wallet Adapters conform to the same interface defined by the wallet standard.\n   - This allows for seamless switching between different Wallet Adapters without modifying the core library code.\n\n2. Future Wallet Adapters:\n   - The library is designed to be extensible, allowing for the addition of new Wallet Adapters in the future.\n   - New Wallet Adapters should conform to the wallet standard and integrate with the library's core functionality.\n   - Clear documentation and guidelines are provided for developers to create new Wallet Adapters.\n\n### Installation\n\nInstall the component using `yarn install @civic/multichain-wallet-connect` or `npm i -S @civic/multichain-wallet-connect`.\n\n### Architecture\n\nThe architecture can be viewed [here](https://mermaid.live/view#pako:eNqVVE1rwzAM_SvC5-0P5FAoHYzCxmCl9JKLGquNwbEzW17ZSv_77Ngt_abLyUh6T3rPcraisZJEJTx9BTINvShcO-xqA_Gbe3LPo9F8WsFHTwbkuO9LZhrj70GzmrSozMQaQw1XMDWKFWr1S7BR3IIPfW8dk4Qm1fmMvgBGsgVqTTyW2DO5EyJuCXIWSjpzb4aYj3lkaKxZWdcB26E-58AzGolO3m6btM1au0kEKQTLwGzNif4rOsvhDq9PKgbXOitR37PjdpsZ6TTTUHy71zUgW5ed8wPFvuPD_r9hME17hvZn95DZTpAH6Z_EwRlA0Moz2BXgNyqNS01HF0cQYjE0aA7-J59ObDkbrFiSOa4PcMWPMk1pEvUsjvD_9vRxmrPhX4kPQudTiBsLPi6fMusjzrK7N8zd72uBX8DiwpcdHvJS-VKSmuQa8SQ6ch0qGR_-NvWpRZTVUS2qeJS0wiilFrXZxVIMbGc_phEVu0BPIvQSef-fyMHdH73-g1Y).\n\n```mermaid\nsequenceDiagram\n    User->>UI: Open dApp\n    UI->>MultiChainConnect: Initialize with supported chains\n    MultiChainConnect->>WalletAdapter: Initialize the Wallet Adapter with wallets that conform to the wallet standard\n    MultiChainConnect->>UI: Show connect button\n    User->>MultiChainConnect: Connect\n    MultiChainConnect->>User: Open modal with supported chains\n    User->>MultiChainConnect: Select chain\n    MultiChainConnect->>MultiChainConnect: Store the selected chain\n    MultiChainConnect->>WalletAdapter: Launch selected chain's Wallet Adapter\n    WalletAdapter->>User: Return a list of available wallets the user can connect with\n    User->>WalletAdapter: Select wallet\n    WalletAdapter->>MultiChainConnect: Return connected Wallet\n    MultiChainConnect->>MultiChainConnect: Store the connected Wallet\n    MultiChainConnect->>WalletAdapter: Get connect UI for showing the connected wallet \n    WalletAdapter->>UI: Show UI for connected wallet and button for disconnecting wallet\n```\n\n### Example Usage\n\n1. Importing the Library:\n\n```javascript\nimport React from 'react';\nimport { MultichainWalletProvider, createChain } from '@civic/multichain-wallet-connect';\n\nconst ExampleComponent: React.FC = () => {\n  return (\n    <MultichainWalletProvider\n      chains={[createChain.ethereum('mainnet')]}\n    >\n      <MultichainConnectButton />\n    </MultichainWalletProvider>\n  );\n};\n\nexport default ExampleComponent;\n```\n\n### Custom button\n\n1. Creating your own button with custom styling:\n\n```javascript\n/* eslint-disable import/no-extraneous-dependencies */\nimport React from \"react\";\nimport styled from \"styled-components\";\nimport { MultichainConnectedButton, useWallet, useModal } from \"@civic/multichain-wallet-connect\";\n\n// Styled component named StyledButton\nconst StyledButton = styled.button`\n  display: inline-block;\n  border-radius: 20px;\n  padding: 0.5rem 0;\n  margin: 0.5rem 1rem;\n  width: 11rem;\n  border: 2px solid black;\n  background: white;\n  color: black;\n`;\n\nexport function MultichainConnectButton(): JSX.Element | null {\n  const { connected } = useWallet();\n  const { openConnectModal } = useModal();\n\n  return (\n    <>\n      {!connected && (\n        <StyledButton type=\"button\" onClick={openConnectModal}>\n          Connect\n        </StyledButton>\n      )}\n      <MultichainConnectedButton />\n    </>\n  );\n}\n```","engines":{"node":">=16"},"gitHead":"d1a0805dd083da785e840819caca4272b456f357","scripts":{"lint":"eslint -c .eslintrc.js '{src,test}/**/*.ts'","test":"yarn test:unit","build":"tsc -b tsconfig.build.json && tsc -b tsconfig.umd.json","lint:fix":"eslint -c .eslintrc.js --fix '{src,test}/**/*.ts'","test:unit":"STAGE=${STAGE:-local} FORCE_COLOR=1 LOG_LEVEL=error LOCAL=true  ts-mocha -p tsconfig.mocha.json --timeout 20000 --paths 'test/unit/**/*.ts'","test:mocha":"STAGE=${STAGE:-local} FORCE_COLOR=1 LOG_LEVEL=error LOCAL=true nyc --reporter=text --reporter=html mocha","test:watch":"ts-mocha -p tsconfig.mocha.json 'test/**/*.ts' -w --watch-files '**/**/*.ts'"},"_npmUser":{"name":"tyronemichael","email":"tyronemichael@gmail.com"},"repository":{"url":"git+ssh://git@github.com/civicteam/civic.me.git","type":"git"},"_npmVersion":"8.19.2","description":"A multichain wallet connect library","directories":{},"_nodeVersion":"18.12.1","dependencies":{"ramda":"^0.28.0","wagmi":"^0.12.13","ethers":"^5","@types/react":"^17.0.0","@solana/web3.js":"^1.76.0","@headlessui/react":"^1.7.14","styled-components":"^6.0.0-rc.2","@wallet-standard/app":"^1.0.1","@wallet-standard/core":"^1.0.3","@rainbow-me/rainbowkit":"^0.12.14","@wallet-standard/wallet":"^1.0.1","@civic/civic-chain-icons":"0.0.5-beta.0","@civic/civic-eth-provider":"0.0.8-beta.2","@solana/wallet-adapter-base":"^0.9.22","@wallet-standard/react-core":"^0.1.4","@solana/wallet-adapter-react":"^0.15.32","@solana/wallet-adapter-wallets":"^0.19.16","@solana/wallet-adapter-react-ui":"^0.9.31","@solana/wallet-standard-wallet-adapter-react":"^1.0.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.1.0","chai":"^4.3.6","husky":"^8.0.1","mocha":"^9.2.2","sinon":"^14.0.0","ts-node":"^10.7.0","eslint_d":"^12.0.0","ts-mocha":"^10.0.0","sinon-chai":"^3.7.0","@types/chai":"^4.3.1","@types/jsdom":"^16.2.14","@types/mocha":"^9.1.0","@types/ramda":"^0.28.12","@types/sinon":"^10.0.11","@types/expect":"^24.3.0","tsconfig-paths":"^3.9.0","chai-as-promised":"^7.1.1","@types/sinon-chai":"^3.2.8","eslint-plugin-no-only-tests":"^3.1.0"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"_npmOperationalInternal":{"tmp":"tmp/multichain-wallet-connect_0.0.1-beta.12_1685436173215_0.276962484510209","host":"s3://npm-registry-packages"}},"0.0.1-beta.13":{"name":"@civic/multichain-wallet-connect","version":"0.0.1-beta.13","author":{"name":"civic.com"},"license":"MIT","_id":"@civic/multichain-wallet-connect@0.0.1-beta.13","maintainers":[{"name":"ndrabins","email":"noah.drabinsky1@gmail.com"},{"name":"dmelosantos","email":"danielmelos@gmail.com"},{"name":"jp-civic","email":"jp@civic.com"},{"name":"chriteixeira","email":"chriteixeira@gmail.com"},{"name":"daneel","email":"daneel@civic.com"},{"name":"mitchcivic","email":"mitch@civic.com"},{"name":"dankelleher","email":"dankelleher@yahoo.com"},{"name":"jonthepilot","email":"jonathan@civic.com"},{"name":"rado0x54","email":"web@riedel-it.de"},{"name":"araptarchis","email":"alexis.raptarchis@googlemail.com"},{"name":"civicfinance","email":"camille@civic.com"},{"name":"kevinhcolgan","email":"kevin@civic.com"},{"name":"flippiescholtz","email":"flippie@civic.com"},{"name":"tyronemichael","email":"tyronemichael@gmail.com"},{"name":"lucmir","email":"luccmir@gmail.com"},{"name":"william-identity","email":"william@identity.org"}],"homepage":"https://github.com/civicteam/civic.me#readme","bugs":{"url":"https://github.com/civicteam/civic.me/issues"},"dist":{"shasum":"f62498c3df314eb04b47a488792ab528aba4b9e5","tarball":"https://registry.npmjs.org/@civic/multichain-wallet-connect/-/multichain-wallet-connect-0.0.1-beta.13.tgz","fileCount":89,"integrity":"sha512-IXPhh2qells/NwSlUtI4GkuWZPVDn9UKflZhJlFln+hUe7bWBPB0SC/9JyOK/2sj8y3OYCS5wbh7VrB/MgrcxQ==","signatures":[{"sig":"MEUCIF4pknp+EVhQ5gaEHwNCdCj1xmXFvLgdBJvDYJKmTaY4AiEA7QcoW2E+UgSkKyiGZXZD6g6hj++Y33h4Wi/xhOW2C8Q=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":132982},"main":"./dist/umd/index.js","types":"./dist/typings/index.d.ts","module":"./dist/esm/index.js","readme":"## Library Specification: Multi-Chain Wallet Support\n\n### Overview\nThe library provides support for multiple chains by leveraging the [Wallet Standard](https://github.com/wallet-standard/wallet-standard). It enables the injection of wallets that conform to the wallet standard into Wallet Adapters. The Wallet Adapters serve as UI interfaces that allow users to select their preferred wallet for connecting to the dApp. The library currently supports the [Solana Wallet Adapter](https://github.com/solana-labs/wallet-adapter) and [Rainbowkit](https://www.rainbowkit.com), both of which implement the same interface. This design allows for easy switching between different Wallet Adapters.\n\n### Core Functionality\n1. Wallet Standard:\n   - The library uses the wallet standard defined [here](https://github.com/wallet-standard/wallet-standard).\n   - The standard interface includes common methods for connecting to a blockchain, signing transactions, and retrieving account information.\n\n2. Wallet Adapters:\n   - Wallet Adapters serve as UI interfaces for users to select their preferred wallet.\n   - The Wallet Adapters should be capable of handling multiple wallets, each conforming to the wallet standard.\n   - The library has implemented a mechanism for dynamically switching between different Wallet Adapters at runtime.\n   - A common interface has also been developed to allow the use of different wallet adapters.\n   - Currently, the library supports the [Solana Wallet Adapter](https://github.com/solana-labs/wallet-adapter) and [Rainbowkit](https://www.rainbowkit.com).\n\n3. Solana Wallet Adapter:\n   - Implements the Wallet Adapter interface specifically for the Solana blockchain.\n   - Integrates with Solana wallets that conform to the wallet standard.\n   - Provides a user-friendly interface for selecting and connecting to Solana wallets.\n   - Supports common operations such as transaction signing and account information retrieval for Solana.\n\n4. Rainbowkit Wallet Adapter:\n   - Implements the Wallet Adapter specifically for EVM-supported wallets.\n   - Integrates with the Rainbowkit wallet that conforms to the wallet standard.\n   - Provides a user-friendly interface for selecting and connecting to EVM-supported wallets.\n   - Supports common operations such as transaction signing and account information retrieval for Rainbowkit.\n\n### Extensibility and Switching Wallet Adapters\n1. Interface Consistency:\n   - Ensures that all Wallet Adapters conform to the same interface defined by the wallet standard.\n   - This allows for seamless switching between different Wallet Adapters without modifying the core library code.\n\n2. Future Wallet Adapters:\n   - The library is designed to be extensible, allowing for the addition of new Wallet Adapters in the future.\n   - New Wallet Adapters should conform to the wallet standard and integrate with the library's core functionality.\n   - Clear documentation and guidelines are provided for developers to create new Wallet Adapters.\n\n### Installation\n\nInstall the component using `yarn install @civic/multichain-wallet-connect` or `npm i -S @civic/multichain-wallet-connect`.\n\n### Architecture\n\nThe architecture can be viewed [here](https://mermaid.live/view#pako:eNqVVE1rwzAM_SvC5-0P5FAoHYzCxmCl9JKLGquNwbEzW17ZSv_77Ngt_abLyUh6T3rPcraisZJEJTx9BTINvShcO-xqA_Gbe3LPo9F8WsFHTwbkuO9LZhrj70GzmrSozMQaQw1XMDWKFWr1S7BR3IIPfW8dk4Qm1fmMvgBGsgVqTTyW2DO5EyJuCXIWSjpzb4aYj3lkaKxZWdcB26E-58AzGolO3m6btM1au0kEKQTLwGzNif4rOsvhDq9PKgbXOitR37PjdpsZ6TTTUHy71zUgW5ed8wPFvuPD_r9hME17hvZn95DZTpAH6Z_EwRlA0Moz2BXgNyqNS01HF0cQYjE0aA7-J59ObDkbrFiSOa4PcMWPMk1pEvUsjvD_9vRxmrPhX4kPQudTiBsLPi6fMusjzrK7N8zd72uBX8DiwpcdHvJS-VKSmuQa8SQ6ch0qGR_-NvWpRZTVUS2qeJS0wiilFrXZxVIMbGc_phEVu0BPIvQSef-fyMHdH73-g1Y).\n\n```mermaid\nsequenceDiagram\n    User->>UI: Open dApp\n    UI->>MultiChainConnect: Initialize with supported chains\n    MultiChainConnect->>WalletAdapter: Initialize the Wallet Adapter with wallets that conform to the wallet standard\n    MultiChainConnect->>UI: Show connect button\n    User->>MultiChainConnect: Connect\n    MultiChainConnect->>User: Open modal with supported chains\n    User->>MultiChainConnect: Select chain\n    MultiChainConnect->>MultiChainConnect: Store the selected chain\n    MultiChainConnect->>WalletAdapter: Launch selected chain's Wallet Adapter\n    WalletAdapter->>User: Return a list of available wallets the user can connect with\n    User->>WalletAdapter: Select wallet\n    WalletAdapter->>MultiChainConnect: Return connected Wallet\n    MultiChainConnect->>MultiChainConnect: Store the connected Wallet\n    MultiChainConnect->>WalletAdapter: Get connect UI for showing the connected wallet \n    WalletAdapter->>UI: Show UI for connected wallet and button for disconnecting wallet\n```\n\n### Example Usage\n\n1. Importing the Library:\n\n```javascript\nimport React from 'react';\nimport { MultichainWalletProvider, createChain } from '@civic/multichain-wallet-connect';\n\nconst ExampleComponent: React.FC = () => {\n  return (\n    <MultichainWalletProvider\n      chains={[createChain.ethereum('mainnet')]}\n    >\n      <MultichainConnectButton />\n    </MultichainWalletProvider>\n  );\n};\n\nexport default ExampleComponent;\n```\n\n### Custom button\n\n1. Creating your own button with custom styling:\n\n```javascript\n/* eslint-disable import/no-extraneous-dependencies */\nimport React from \"react\";\nimport styled from \"styled-components\";\nimport { MultichainConnectedButton, useWallet, useModal } from \"@civic/multichain-wallet-connect\";\n\n// Styled component named StyledButton\nconst StyledButton = styled.button`\n  display: inline-block;\n  border-radius: 20px;\n  padding: 0.5rem 0;\n  margin: 0.5rem 1rem;\n  width: 11rem;\n  border: 2px solid black;\n  background: white;\n  color: black;\n`;\n\nexport function MultichainConnectButton(): JSX.Element | null {\n  const { connected } = useWallet();\n  const { openConnectModal } = useModal();\n\n  return (\n    <>\n      {!connected && (\n        <StyledButton type=\"button\" onClick={openConnectModal}>\n          Connect\n        </StyledButton>\n      )}\n      <MultichainConnectedButton />\n    </>\n  );\n}\n```","engines":{"node":">=16"},"gitHead":"d1a0805dd083da785e840819caca4272b456f357","scripts":{"lint":"eslint -c .eslintrc.js '{src,test}/**/*.ts'","test":"yarn test:unit","build":"tsc -b tsconfig.build.json && tsc -b tsconfig.umd.json","lint:fix":"eslint -c .eslintrc.js --fix '{src,test}/**/*.ts'","test:unit":"STAGE=${STAGE:-local} FORCE_COLOR=1 LOG_LEVEL=error LOCAL=true  ts-mocha -p tsconfig.mocha.json --timeout 20000 --paths 'test/unit/**/*.ts'","test:mocha":"STAGE=${STAGE:-local} FORCE_COLOR=1 LOG_LEVEL=error LOCAL=true nyc --reporter=text --reporter=html mocha","test:watch":"ts-mocha -p tsconfig.mocha.json 'test/**/*.ts' -w --watch-files '**/**/*.ts'"},"_npmUser":{"name":"tyronemichael","email":"tyronemichael@gmail.com"},"repository":{"url":"git+ssh://git@github.com/civicteam/civic.me.git","type":"git"},"_npmVersion":"8.19.2","description":"A multichain wallet connect library","directories":{},"_nodeVersion":"18.12.1","dependencies":{"ramda":"^0.28.0","wagmi":"^0.12.13","ethers":"^5","@types/react":"^17.0.0","@solana/web3.js":"^1.76.0","@headlessui/react":"^1.7.14","styled-components":"^6.0.0-rc.2","@wallet-standard/app":"^1.0.1","@wallet-standard/core":"^1.0.3","@rainbow-me/rainbowkit":"^0.12.14","@wallet-standard/wallet":"^1.0.1","@civic/civic-chain-icons":"0.0.5-beta.0","@civic/civic-eth-provider":"0.0.8-beta.2","@solana/wallet-adapter-base":"^0.9.22","@wallet-standard/react-core":"^0.1.4","@solana/wallet-adapter-react":"^0.15.32","@solana/wallet-adapter-wallets":"^0.19.16","@solana/wallet-adapter-react-ui":"^0.9.31","@solana/wallet-standard-wallet-adapter-react":"^1.0.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.1.0","chai":"^4.3.6","husky":"^8.0.1","mocha":"^9.2.2","sinon":"^14.0.0","ts-node":"^10.7.0","eslint_d":"^12.0.0","ts-mocha":"^10.0.0","sinon-chai":"^3.7.0","@types/chai":"^4.3.1","@types/jsdom":"^16.2.14","@types/mocha":"^9.1.0","@types/ramda":"^0.28.12","@types/sinon":"^10.0.11","@types/expect":"^24.3.0","tsconfig-paths":"^3.9.0","chai-as-promised":"^7.1.1","@types/sinon-chai":"^3.2.8","eslint-plugin-no-only-tests":"^3.1.0"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"_npmOperationalInternal":{"tmp":"tmp/multichain-wallet-connect_0.0.1-beta.13_1685441234432_0.36405092110845794","host":"s3://npm-registry-packages"}},"0.0.1-beta.14":{"name":"@civic/multichain-wallet-connect","version":"0.0.1-beta.14","author":{"name":"civic.com"},"license":"MIT","_id":"@civic/multichain-wallet-connect@0.0.1-beta.14","maintainers":[{"name":"ndrabins","email":"noah.drabinsky1@gmail.com"},{"name":"dmelosantos","email":"danielmelos@gmail.com"},{"name":"jp-civic","email":"jp@civic.com"},{"name":"chriteixeira","email":"chriteixeira@gmail.com"},{"name":"daneel","email":"daneel@civic.com"},{"name":"mitchcivic","email":"mitch@civic.com"},{"name":"dankelleher","email":"dankelleher@yahoo.com"},{"name":"jonthepilot","email":"jonathan@civic.com"},{"name":"rado0x54","email":"web@riedel-it.de"},{"name":"araptarchis","email":"alexis.raptarchis@googlemail.com"},{"name":"civicfinance","email":"camille@civic.com"},{"name":"kevinhcolgan","email":"kevin@civic.com"},{"name":"flippiescholtz","email":"flippie@civic.com"},{"name":"tyronemichael","email":"tyronemichael@gmail.com"},{"name":"lucmir","email":"luccmir@gmail.com"},{"name":"william-identity","email":"william@identity.org"}],"homepage":"https://github.com/civicteam/civic.me#readme","bugs":{"url":"https://github.com/civicteam/civic.me/issues"},"dist":{"shasum":"0afb77200085266cdef43f1b656797b7340a4d0c","tarball":"https://registry.npmjs.org/@civic/multichain-wallet-connect/-/multichain-wallet-connect-0.0.1-beta.14.tgz","fileCount":89,"integrity":"sha512-1MwnQJ9+KWTxhsfP1OvUKckouWmSCbDBRIPq5Al3GqBdx0f+gYsFEUY/ZfsvGUaKcQB4gnAnU1hlsDu0fdvjaQ==","signatures":[{"sig":"MEUCIQCU8l3wlILSrJ7TGD2+zhKFwYDoFRVIFjiiz1GwMmrlIwIgd4ttzdkUT6/pcFPCtx7cs4SWKDMPURf9cKC55dWhKcs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":132920},"main":"./dist/umd/index.js","types":"./dist/typings/index.d.ts","module":"./dist/esm/index.js","readme":"## Library Specification: Multi-Chain Wallet Support\n\n### Overview\nThe library provides support for multiple chains by leveraging the [Wallet Standard](https://github.com/wallet-standard/wallet-standard). It enables the injection of wallets that conform to the wallet standard into Wallet Adapters. The Wallet Adapters serve as UI interfaces that allow users to select their preferred wallet for connecting to the dApp. The library currently supports the [Solana Wallet Adapter](https://github.com/solana-labs/wallet-adapter) and [Rainbowkit](https://www.rainbowkit.com), both of which implement the same interface. This design allows for easy switching between different Wallet Adapters.\n\n### Core Functionality\n1. Wallet Standard:\n   - The library uses the wallet standard defined [here](https://github.com/wallet-standard/wallet-standard).\n   - The standard interface includes common methods for connecting to a blockchain, signing transactions, and retrieving account information.\n\n2. Wallet Adapters:\n   - Wallet Adapters serve as UI interfaces for users to select their preferred wallet.\n   - The Wallet Adapters should be capable of handling multiple wallets, each conforming to the wallet standard.\n   - The library has implemented a mechanism for dynamically switching between different Wallet Adapters at runtime.\n   - A common interface has also been developed to allow the use of different wallet adapters.\n   - Currently, the library supports the [Solana Wallet Adapter](https://github.com/solana-labs/wallet-adapter) and [Rainbowkit](https://www.rainbowkit.com).\n\n3. Solana Wallet Adapter:\n   - Implements the Wallet Adapter interface specifically for the Solana blockchain.\n   - Integrates with Solana wallets that conform to the wallet standard.\n   - Provides a user-friendly interface for selecting and connecting to Solana wallets.\n   - Supports common operations such as transaction signing and account information retrieval for Solana.\n\n4. Rainbowkit Wallet Adapter:\n   - Implements the Wallet Adapter specifically for EVM-supported wallets.\n   - Integrates with the Rainbowkit wallet that conforms to the wallet standard.\n   - Provides a user-friendly interface for selecting and connecting to EVM-supported wallets.\n   - Supports common operations such as transaction signing and account information retrieval for Rainbowkit.\n\n### Extensibility and Switching Wallet Adapters\n1. Interface Consistency:\n   - Ensures that all Wallet Adapters conform to the same interface defined by the wallet standard.\n   - This allows for seamless switching between different Wallet Adapters without modifying the core library code.\n\n2. Future Wallet Adapters:\n   - The library is designed to be extensible, allowing for the addition of new Wallet Adapters in the future.\n   - New Wallet Adapters should conform to the wallet standard and integrate with the library's core functionality.\n   - Clear documentation and guidelines are provided for developers to create new Wallet Adapters.\n\n### Installation\n\nInstall the component using `yarn install @civic/multichain-wallet-connect` or `npm i -S @civic/multichain-wallet-connect`.\n\n### Architecture\n\nThe architecture can be viewed [here](https://mermaid.live/view#pako:eNqVVE1rwzAM_SvC5-0P5FAoHYzCxmCl9JKLGquNwbEzW17ZSv_77Ngt_abLyUh6T3rPcraisZJEJTx9BTINvShcO-xqA_Gbe3LPo9F8WsFHTwbkuO9LZhrj70GzmrSozMQaQw1XMDWKFWr1S7BR3IIPfW8dk4Qm1fmMvgBGsgVqTTyW2DO5EyJuCXIWSjpzb4aYj3lkaKxZWdcB26E-58AzGolO3m6btM1au0kEKQTLwGzNif4rOsvhDq9PKgbXOitR37PjdpsZ6TTTUHy71zUgW5ed8wPFvuPD_r9hME17hvZn95DZTpAH6Z_EwRlA0Moz2BXgNyqNS01HF0cQYjE0aA7-J59ObDkbrFiSOa4PcMWPMk1pEvUsjvD_9vRxmrPhX4kPQudTiBsLPi6fMusjzrK7N8zd72uBX8DiwpcdHvJS-VKSmuQa8SQ6ch0qGR_-NvWpRZTVUS2qeJS0wiilFrXZxVIMbGc_phEVu0BPIvQSef-fyMHdH73-g1Y).\n\n```mermaid\nsequenceDiagram\n    User->>UI: Open dApp\n    UI->>MultiChainConnect: Initialize with supported chains\n    MultiChainConnect->>WalletAdapter: Initialize the Wallet Adapter with wallets that conform to the wallet standard\n    MultiChainConnect->>UI: Show connect button\n    User->>MultiChainConnect: Connect\n    MultiChainConnect->>User: Open modal with supported chains\n    User->>MultiChainConnect: Select chain\n    MultiChainConnect->>MultiChainConnect: Store the selected chain\n    MultiChainConnect->>WalletAdapter: Launch selected chain's Wallet Adapter\n    WalletAdapter->>User: Return a list of available wallets the user can connect with\n    User->>WalletAdapter: Select wallet\n    WalletAdapter->>MultiChainConnect: Return connected Wallet\n    MultiChainConnect->>MultiChainConnect: Store the connected Wallet\n    MultiChainConnect->>WalletAdapter: Get connect UI for showing the connected wallet \n    WalletAdapter->>UI: Show UI for connected wallet and button for disconnecting wallet\n```\n\n### Example Usage\n\n1. Importing the Library:\n\n```javascript\nimport React from 'react';\nimport { MultichainWalletProvider, createChain } from '@civic/multichain-wallet-connect';\n\nconst ExampleComponent: React.FC = () => {\n  return (\n    <MultichainWalletProvider\n      chains={[createChain.ethereum('mainnet')]}\n    >\n      <MultichainConnectButton />\n    </MultichainWalletProvider>\n  );\n};\n\nexport default ExampleComponent;\n```\n\n### Custom button\n\n1. Creating your own button with custom styling:\n\n```javascript\n/* eslint-disable import/no-extraneous-dependencies */\nimport React from \"react\";\nimport styled from \"styled-components\";\nimport { MultichainConnectedButton, useWallet, useModal } from \"@civic/multichain-wallet-connect\";\n\n// Styled component named StyledButton\nconst StyledButton = styled.button`\n  display: inline-block;\n  border-radius: 20px;\n  padding: 0.5rem 0;\n  margin: 0.5rem 1rem;\n  width: 11rem;\n  border: 2px solid black;\n  background: white;\n  color: black;\n`;\n\nexport function MultichainConnectButton(): JSX.Element | null {\n  const { connected } = useWallet();\n  const { openConnectModal } = useModal();\n\n  return (\n    <>\n      {!connected && (\n        <StyledButton type=\"button\" onClick={openConnectModal}>\n          Connect\n        </StyledButton>\n      )}\n      <MultichainConnectedButton />\n    </>\n  );\n}\n```","engines":{"node":">=16"},"gitHead":"f6c4b0c2f279e6a64f2cd011dc7b211bcb3277e7","scripts":{"lint":"eslint -c .eslintrc.js '{src,test}/**/*.ts'","test":"yarn test:unit","build":"tsc -b tsconfig.build.json && tsc -b tsconfig.umd.json","lint:fix":"eslint -c .eslintrc.js --fix '{src,test}/**/*.ts'","test:unit":"STAGE=${STAGE:-local} FORCE_COLOR=1 LOG_LEVEL=error LOCAL=true  ts-mocha -p tsconfig.mocha.json --timeout 20000 --paths 'test/unit/**/*.ts'","test:mocha":"STAGE=${STAGE:-local} FORCE_COLOR=1 LOG_LEVEL=error LOCAL=true nyc --reporter=text --reporter=html mocha","test:watch":"ts-mocha -p tsconfig.mocha.json 'test/**/*.ts' -w --watch-files '**/**/*.ts'"},"_npmUser":{"name":"tyronemichael","email":"tyronemichael@gmail.com"},"repository":{"url":"git+ssh://git@github.com/civicteam/civic.me.git","type":"git"},"_npmVersion":"8.19.2","description":"A multichain wallet connect library","directories":{},"_nodeVersion":"18.12.1","dependencies":{"ramda":"^0.28.0","wagmi":"^0.12.13","ethers":"^5","@types/react":"^17.0.0","@solana/web3.js":"^1.76.0","@headlessui/react":"^1.7.14","styled-components":"^6.0.0-rc.2","@wallet-standard/app":"^1.0.1","@wallet-standard/core":"^1.0.3","@rainbow-me/rainbowkit":"^0.12.14","@wallet-standard/wallet":"^1.0.1","@civic/civic-chain-icons":"0.0.5-beta.0","@civic/civic-eth-provider":"0.0.8-beta.2","@solana/wallet-adapter-base":"^0.9.20","@wallet-standard/react-core":"^0.1.4","@solana/wallet-adapter-react":"^0.15.22","@solana/wallet-adapter-wallets":"^0.19.16","@solana/wallet-adapter-react-ui":"^0.9.27"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.1.0","chai":"^4.3.6","husky":"^8.0.1","mocha":"^9.2.2","sinon":"^14.0.0","ts-node":"^10.7.0","eslint_d":"^12.0.0","ts-mocha":"^10.0.0","sinon-chai":"^3.7.0","@types/chai":"^4.3.1","@types/jsdom":"^16.2.14","@types/mocha":"^9.1.0","@types/ramda":"^0.28.12","@types/sinon":"^10.0.11","@types/expect":"^24.3.0","tsconfig-paths":"^3.9.0","chai-as-promised":"^7.1.1","@types/sinon-chai":"^3.2.8","eslint-plugin-no-only-tests":"^3.1.0"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"_npmOperationalInternal":{"tmp":"tmp/multichain-wallet-connect_0.0.1-beta.14_1685512584989_0.7380948772985358","host":"s3://npm-registry-packages"}},"0.0.1-beta.15":{"name":"@civic/multichain-wallet-connect","version":"0.0.1-beta.15","author":{"name":"civic.com"},"license":"MIT","_id":"@civic/multichain-wallet-connect@0.0.1-beta.15","maintainers":[{"name":"ndrabins","email":"noah.drabinsky1@gmail.com"},{"name":"dmelosantos","email":"danielmelos@gmail.com"},{"name":"jp-civic","email":"jp@civic.com"},{"name":"chriteixeira","email":"chriteixeira@gmail.com"},{"name":"daneel","email":"daneel@civic.com"},{"name":"mitchcivic","email":"mitch@civic.com"},{"name":"dankelleher","email":"dankelleher@yahoo.com"},{"name":"jonthepilot","email":"jonathan@civic.com"},{"name":"rado0x54","email":"web@riedel-it.de"},{"name":"araptarchis","email":"alexis.raptarchis@googlemail.com"},{"name":"civicfinance","email":"camille@civic.com"},{"name":"kevinhcolgan","email":"kevin@civic.com"},{"name":"flippiescholtz","email":"flippie@civic.com"},{"name":"tyronemichael","email":"tyronemichael@gmail.com"},{"name":"lucmir","email":"luccmir@gmail.com"},{"name":"william-identity","email":"william@identity.org"}],"homepage":"https://github.com/civicteam/civic.me#readme","bugs":{"url":"https://github.com/civicteam/civic.me/issues"},"dist":{"shasum":"295ce13994824722f7cd74fa80896fffd9f80504","tarball":"https://registry.npmjs.org/@civic/multichain-wallet-connect/-/multichain-wallet-connect-0.0.1-beta.15.tgz","fileCount":89,"integrity":"sha512-q35FWZtUPm9gDlJFfOfqaL0DA66VlAv5Ylqhaab+WN6P/z3CrFrD5LfNPwYPqrRUj+KLae83Xvj4q/zLyuE+VA==","signatures":[{"sig":"MEYCIQDg8ZJ+blx1UIUUCHgCl3YEFypKiQpYhmIx/D4a2Ot3/wIhAKPhn7bLRnp/VHR9qZP0RoiXhim9Jk5dP05CqbS//DNs","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":133010},"main":"./dist/umd/index.js","types":"./dist/typings/index.d.ts","module":"./dist/esm/index.js","readme":"## Library Specification: Multi-Chain Wallet Support\n\n### Overview\nThe library provides support for multiple chains by leveraging the [Wallet Standard](https://github.com/wallet-standard/wallet-standard). It enables the injection of wallets that conform to the wallet standard into Wallet Adapters. The Wallet Adapters serve as UI interfaces that allow users to select their preferred wallet for connecting to the dApp. The library currently supports the [Solana Wallet Adapter](https://github.com/solana-labs/wallet-adapter) and [Rainbowkit](https://www.rainbowkit.com), both of which implement the same interface. This design allows for easy switching between different Wallet Adapters.\n\n### Core Functionality\n1. Wallet Standard:\n   - The library uses the wallet standard defined [here](https://github.com/wallet-standard/wallet-standard).\n   - The standard interface includes common methods for connecting to a blockchain, signing transactions, and retrieving account information.\n\n2. Wallet Adapters:\n   - Wallet Adapters serve as UI interfaces for users to select their preferred wallet.\n   - The Wallet Adapters should be capable of handling multiple wallets, each conforming to the wallet standard.\n   - The library has implemented a mechanism for dynamically switching between different Wallet Adapters at runtime.\n   - A common interface has also been developed to allow the use of different wallet adapters.\n   - Currently, the library supports the [Solana Wallet Adapter](https://github.com/solana-labs/wallet-adapter) and [Rainbowkit](https://www.rainbowkit.com).\n\n3. Solana Wallet Adapter:\n   - Implements the Wallet Adapter interface specifically for the Solana blockchain.\n   - Integrates with Solana wallets that conform to the wallet standard.\n   - Provides a user-friendly interface for selecting and connecting to Solana wallets.\n   - Supports common operations such as transaction signing and account information retrieval for Solana.\n\n4. Rainbowkit Wallet Adapter:\n   - Implements the Wallet Adapter specifically for EVM-supported wallets.\n   - Integrates with the Rainbowkit wallet that conforms to the wallet standard.\n   - Provides a user-friendly interface for selecting and connecting to EVM-supported wallets.\n   - Supports common operations such as transaction signing and account information retrieval for Rainbowkit.\n\n### Extensibility and Switching Wallet Adapters\n1. Interface Consistency:\n   - Ensures that all Wallet Adapters conform to the same interface defined by the wallet standard.\n   - This allows for seamless switching between different Wallet Adapters without modifying the core library code.\n\n2. Future Wallet Adapters:\n   - The library is designed to be extensible, allowing for the addition of new Wallet Adapters in the future.\n   - New Wallet Adapters should conform to the wallet standard and integrate with the library's core functionality.\n   - Clear documentation and guidelines are provided for developers to create new Wallet Adapters.\n\n### Installation\n\nInstall the component using `yarn install @civic/multichain-wallet-connect` or `npm i -S @civic/multichain-wallet-connect`.\n\n### Architecture\n\nThe architecture can be viewed [here](https://mermaid.live/view#pako:eNqVVE1rwzAM_SvC5-0P5FAoHYzCxmCl9JKLGquNwbEzW17ZSv_77Ngt_abLyUh6T3rPcraisZJEJTx9BTINvShcO-xqA_Gbe3LPo9F8WsFHTwbkuO9LZhrj70GzmrSozMQaQw1XMDWKFWr1S7BR3IIPfW8dk4Qm1fmMvgBGsgVqTTyW2DO5EyJuCXIWSjpzb4aYj3lkaKxZWdcB26E-58AzGolO3m6btM1au0kEKQTLwGzNif4rOsvhDq9PKgbXOitR37PjdpsZ6TTTUHy71zUgW5ed8wPFvuPD_r9hME17hvZn95DZTpAH6Z_EwRlA0Moz2BXgNyqNS01HF0cQYjE0aA7-J59ObDkbrFiSOa4PcMWPMk1pEvUsjvD_9vRxmrPhX4kPQudTiBsLPi6fMusjzrK7N8zd72uBX8DiwpcdHvJS-VKSmuQa8SQ6ch0qGR_-NvWpRZTVUS2qeJS0wiilFrXZxVIMbGc_phEVu0BPIvQSef-fyMHdH73-g1Y).\n\n```mermaid\nsequenceDiagram\n    User->>UI: Open dApp\n    UI->>MultiChainConnect: Initialize with supported chains\n    MultiChainConnect->>WalletAdapter: Initialize the Wallet Adapter with wallets that conform to the wallet standard\n    MultiChainConnect->>UI: Show connect button\n    User->>MultiChainConnect: Connect\n    MultiChainConnect->>User: Open modal with supported chains\n    User->>MultiChainConnect: Select chain\n    MultiChainConnect->>MultiChainConnect: Store the selected chain\n    MultiChainConnect->>WalletAdapter: Launch selected chain's Wallet Adapter\n    WalletAdapter->>User: Return a list of available wallets the user can connect with\n    User->>WalletAdapter: Select wallet\n    WalletAdapter->>MultiChainConnect: Return connected Wallet\n    MultiChainConnect->>MultiChainConnect: Store the connected Wallet\n    MultiChainConnect->>WalletAdapter: Get connect UI for showing the connected wallet \n    WalletAdapter->>UI: Show UI for connected wallet and button for disconnecting wallet\n```\n\n### Example Usage\n\n1. Importing the Library:\n\n```javascript\nimport React from 'react';\nimport { MultichainWalletProvider, createChain } from '@civic/multichain-wallet-connect';\n\nconst ExampleComponent: React.FC = () => {\n  return (\n    <MultichainWalletProvider\n      chains={[createChain.ethereum('mainnet')]}\n    >\n      <MultichainConnectButton />\n    </MultichainWalletProvider>\n  );\n};\n\nexport default ExampleComponent;\n```\n\n### Custom button\n\n1. Creating your own button with custom styling:\n\n```javascript\n/* eslint-disable import/no-extraneous-dependencies */\nimport React from \"react\";\nimport styled from \"styled-components\";\nimport { MultichainConnectedButton, useWallet, useModal } from \"@civic/multichain-wallet-connect\";\n\n// Styled component named StyledButton\nconst StyledButton = styled.button`\n  display: inline-block;\n  border-radius: 20px;\n  padding: 0.5rem 0;\n  margin: 0.5rem 1rem;\n  width: 11rem;\n  border: 2px solid black;\n  background: white;\n  color: black;\n`;\n\nexport function MultichainConnectButton(): JSX.Element | null {\n  const { connected } = useWallet();\n  const { openConnectModal } = useModal();\n\n  return (\n    <>\n      {!connected && (\n        <StyledButton type=\"button\" onClick={openConnectModal}>\n          Connect\n        </StyledButton>\n      )}\n      <MultichainConnectedButton />\n    </>\n  );\n}\n```","engines":{"node":">=16"},"gitHead":"f6c4b0c2f279e6a64f2cd011dc7b211bcb3277e7","scripts":{"lint":"eslint -c .eslintrc.js '{src,test}/**/*.ts'","test":"yarn test:unit","build":"tsc -b tsconfig.build.json && tsc -b tsconfig.umd.json","lint:fix":"eslint -c .eslintrc.js --fix '{src,test}/**/*.ts'","test:unit":"STAGE=${STAGE:-local} FORCE_COLOR=1 LOG_LEVEL=error LOCAL=true  ts-mocha -p tsconfig.mocha.json --timeout 20000 --paths 'test/unit/**/*.ts'","test:mocha":"STAGE=${STAGE:-local} FORCE_COLOR=1 LOG_LEVEL=error LOCAL=true nyc --reporter=text --reporter=html mocha","test:watch":"ts-mocha -p tsconfig.mocha.json 'test/**/*.ts' -w --watch-files '**/**/*.ts'"},"_npmUser":{"name":"tyronemichael","email":"tyronemichael@gmail.com"},"repository":{"url":"git+ssh://git@github.com/civicteam/civic.me.git","type":"git"},"_npmVersion":"8.19.2","description":"A multichain wallet connect library","directories":{},"_nodeVersion":"18.12.1","dependencies":{"ramda":"^0.28.0","wagmi":"^0.12.13","ethers":"^5","@types/react":"^17.0.0","@solana/web3.js":"^1.76.0","@headlessui/react":"^1.7.14","styled-components":"^6.0.0-rc.2","@wallet-standard/app":"^1.0.1","@wallet-standard/core":"^1.0.3","@rainbow-me/rainbowkit":"^0.12.14","@wallet-standard/wallet":"^1.0.1","@civic/civic-chain-icons":"0.0.5-beta.0","@civic/civic-eth-provider":"0.0.8-beta.2","@solana/wallet-adapter-base":"^0.9.22","@wallet-standard/react-core":"^0.1.4","@solana/wallet-adapter-react":"^0.15.32","@solana/wallet-adapter-wallets":"^0.19.16","@solana/wallet-adapter-react-ui":"^0.9.31"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.1.0","chai":"^4.3.6","husky":"^8.0.1","mocha":"^9.2.2","sinon":"^14.0.0","ts-node":"^10.7.0","eslint_d":"^12.0.0","ts-mocha":"^10.0.0","sinon-chai":"^3.7.0","@types/chai":"^4.3.1","@types/jsdom":"^16.2.14","@types/mocha":"^9.1.0","@types/ramda":"^0.28.12","@types/sinon":"^10.0.11","@types/expect":"^24.3.0","tsconfig-paths":"^3.9.0","chai-as-promised":"^7.1.1","@types/sinon-chai":"^3.2.8","eslint-plugin-no-only-tests":"^3.1.0"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"_npmOperationalInternal":{"tmp":"tmp/multichain-wallet-connect_0.0.1-beta.15_1685513378353_0.4572835766457364","host":"s3://npm-registry-packages"}},"0.0.1-beta.16":{"name":"@civic/multichain-wallet-connect","version":"0.0.1-beta.16","author":{"name":"civic.com"},"license":"MIT","_id":"@civic/multichain-wallet-connect@0.0.1-beta.16","maintainers":[{"name":"ndrabins","email":"noah.drabinsky1@gmail.com"},{"name":"dmelosantos","email":"danielmelos@gmail.com"},{"name":"jp-civic","email":"jp@civic.com"},{"name":"chriteixeira","email":"chriteixeira@gmail.com"},{"name":"daneel","email":"daneel@civic.com"},{"name":"mitchcivic","email":"mitch@civic.com"},{"name":"dankelleher","email":"dankelleher@yahoo.com"},{"name":"jonthepilot","email":"jonathan@civic.com"},{"name":"rado0x54","email":"web@riedel-it.de"},{"name":"araptarchis","email":"alexis.raptarchis@googlemail.com"},{"name":"civicfinance","email":"camille@civic.com"},{"name":"kevinhcolgan","email":"kevin@civic.com"},{"name":"flippiescholtz","email":"flippie@civic.com"},{"name":"tyronemichael","email":"tyronemichael@gmail.com"},{"name":"lucmir","email":"luccmir@gmail.com"},{"name":"william-identity","email":"william@identity.org"}],"homepage":"https://github.com/civicteam/civic.me#readme","bugs":{"url":"https://github.com/civicteam/civic.me/issues"},"dist":{"shasum":"37e794fe4c8e084873785abdcb7a470324a65608","tarball":"https://registry.npmjs.org/@civic/multichain-wallet-connect/-/multichain-wallet-connect-0.0.1-beta.16.tgz","fileCount":89,"integrity":"sha512-unv5qzrxQa/gOF74XvctXGoRkoiTubRNBTRvfx0TDohWZ/EnmcAXuoggeGKbl6srRzPlbmvMYpu8114wxlrDqA==","signatures":[{"sig":"MEUCIQDoWtIX9GVKRQ1wysqXLmmfKnFqDUA4e8ydmAmGsD7onAIgMR0fbDdhOqjPi+c5c+RyD3KgI+jqg5zXenC/ND7A4sQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":133126},"main":"./dist/umd/index.js","types":"./dist/typings/index.d.ts","module":"./dist/esm/index.js","readme":"## Library Specification: Multi-Chain Wallet Support\n\n### Overview\nThe library provides support for multiple chains by leveraging the [Wallet Standard](https://github.com/wallet-standard/wallet-standard). It enables the injection of wallets that conform to the wallet standard into Wallet Adapters. The Wallet Adapters serve as UI interfaces that allow users to select their preferred wallet for connecting to the dApp. The library currently supports the [Solana Wallet Adapter](https://github.com/solana-labs/wallet-adapter) and [Rainbowkit](https://www.rainbowkit.com), both of which implement the same interface. This design allows for easy switching between different Wallet Adapters.\n\n### Core Functionality\n1. Wallet Standard:\n   - The library uses the wallet standard defined [here](https://github.com/wallet-standard/wallet-standard).\n   - The standard interface includes common methods for connecting to a blockchain, signing transactions, and retrieving account information.\n\n2. Wallet Adapters:\n   - Wallet Adapters serve as UI interfaces for users to select their preferred wallet.\n   - The Wallet Adapters should be capable of handling multiple wallets, each conforming to the wallet standard.\n   - The library has implemented a mechanism for dynamically switching between different Wallet Adapters at runtime.\n   - A common interface has also been developed to allow the use of different wallet adapters.\n   - Currently, the library supports the [Solana Wallet Adapter](https://github.com/solana-labs/wallet-adapter) and [Rainbowkit](https://www.rainbowkit.com).\n\n3. Solana Wallet Adapter:\n   - Implements the Wallet Adapter interface specifically for the Solana blockchain.\n   - Integrates with Solana wallets that conform to the wallet standard.\n   - Provides a user-friendly interface for selecting and connecting to Solana wallets.\n   - Supports common operations such as transaction signing and account information retrieval for Solana.\n\n4. Rainbowkit Wallet Adapter:\n   - Implements the Wallet Adapter specifically for EVM-supported wallets.\n   - Integrates with the Rainbowkit wallet that conforms to the wallet standard.\n   - Provides a user-friendly interface for selecting and connecting to EVM-supported wallets.\n   - Supports common operations such as transaction signing and account information retrieval for Rainbowkit.\n\n### Extensibility and Switching Wallet Adapters\n1. Interface Consistency:\n   - Ensures that all Wallet Adapters conform to the same interface defined by the wallet standard.\n   - This allows for seamless switching between different Wallet Adapters without modifying the core library code.\n\n2. Future Wallet Adapters:\n   - The library is designed to be extensible, allowing for the addition of new Wallet Adapters in the future.\n   - New Wallet Adapters should conform to the wallet standard and integrate with the library's core functionality.\n   - Clear documentation and guidelines are provided for developers to create new Wallet Adapters.\n\n### Installation\n\nInstall the component using `yarn install @civic/multichain-wallet-connect` or `npm i -S @civic/multichain-wallet-connect`.\n\n### Architecture\n\nThe architecture can be viewed [here](https://mermaid.live/view#pako:eNqVVE1rwzAM_SvC5-0P5FAoHYzCxmCl9JKLGquNwbEzW17ZSv_77Ngt_abLyUh6T3rPcraisZJEJTx9BTINvShcO-xqA_Gbe3LPo9F8WsFHTwbkuO9LZhrj70GzmrSozMQaQw1XMDWKFWr1S7BR3IIPfW8dk4Qm1fmMvgBGsgVqTTyW2DO5EyJuCXIWSjpzb4aYj3lkaKxZWdcB26E-58AzGolO3m6btM1au0kEKQTLwGzNif4rOsvhDq9PKgbXOitR37PjdpsZ6TTTUHy71zUgW5ed8wPFvuPD_r9hME17hvZn95DZTpAH6Z_EwRlA0Moz2BXgNyqNS01HF0cQYjE0aA7-J59ObDkbrFiSOa4PcMWPMk1pEvUsjvD_9vRxmrPhX4kPQudTiBsLPi6fMusjzrK7N8zd72uBX8DiwpcdHvJS-VKSmuQa8SQ6ch0qGR_-NvWpRZTVUS2qeJS0wiilFrXZxVIMbGc_phEVu0BPIvQSef-fyMHdH73-g1Y).\n\n```mermaid\nsequenceDiagram\n    User->>UI: Open dApp\n    UI->>MultiChainConnect: Initialize with supported chains\n    MultiChainConnect->>WalletAdapter: Initialize the Wallet Adapter with wallets that conform to the wallet standard\n    MultiChainConnect->>UI: Show connect button\n    User->>MultiChainConnect: Connect\n    MultiChainConnect->>User: Open modal with supported chains\n    User->>MultiChainConnect: Select chain\n    MultiChainConnect->>MultiChainConnect: Store the selected chain\n    MultiChainConnect->>WalletAdapter: Launch selected chain's Wallet Adapter\n    WalletAdapter->>User: Return a list of available wallets the user can connect with\n    User->>WalletAdapter: Select wallet\n    WalletAdapter->>MultiChainConnect: Return connected Wallet\n    MultiChainConnect->>MultiChainConnect: Store the connected Wallet\n    MultiChainConnect->>WalletAdapter: Get connect UI for showing the connected wallet \n    WalletAdapter->>UI: Show UI for connected wallet and button for disconnecting wallet\n```\n\n### Example Usage\n\n1. Importing the Library:\n\n```javascript\nimport React from 'react';\nimport { MultichainWalletProvider, createChain } from '@civic/multichain-wallet-connect';\n\nconst ExampleComponent: React.FC = () => {\n  return (\n    <MultichainWalletProvider\n      chains={[createChain.ethereum('mainnet')]}\n    >\n      <MultichainConnectButton />\n    </MultichainWalletProvider>\n  );\n};\n\nexport default ExampleComponent;\n```\n\n### Custom button\n\n1. Creating your own button with custom styling:\n\n```javascript\n/* eslint-disable import/no-extraneous-dependencies */\nimport React from \"react\";\nimport styled from \"styled-components\";\nimport { MultichainConnectedButton, useWallet, useModal } from \"@civic/multichain-wallet-connect\";\n\n// Styled component named StyledButton\nconst StyledButton = styled.button`\n  display: inline-block;\n  border-radius: 20px;\n  padding: 0.5rem 0;\n  margin: 0.5rem 1rem;\n  width: 11rem;\n  border: 2px solid black;\n  background: white;\n  color: black;\n`;\n\nexport function MultichainConnectButton(): JSX.Element | null {\n  const { connected } = useWallet();\n  const { openConnectModal } = useModal();\n\n  return (\n    <>\n      {!connected && (\n        <StyledButton type=\"button\" onClick={openConnectModal}>\n          Connect\n        </StyledButton>\n      )}\n      <MultichainConnectedButton />\n    </>\n  );\n}\n```","engines":{"node":">=16"},"gitHead":"a4a16abd081715453409baf7c43b6c00f616a507","scripts":{"lint":"eslint -c .eslintrc.js '{src,test}/**/*.ts'","test":"yarn test:unit","build":"tsc -b tsconfig.build.json && tsc -b tsconfig.umd.json","lint:fix":"eslint -c .eslintrc.js --fix '{src,test}/**/*.ts'","test:unit":"STAGE=${STAGE:-local} FORCE_COLOR=1 LOG_LEVEL=error LOCAL=true  ts-mocha -p tsconfig.mocha.json --timeout 20000 --paths 'test/unit/**/*.ts'","test:mocha":"STAGE=${STAGE:-local} FORCE_COLOR=1 LOG_LEVEL=error LOCAL=true nyc --reporter=text --reporter=html mocha","test:watch":"ts-mocha -p tsconfig.mocha.json 'test/**/*.ts' -w --watch-files '**/**/*.ts'"},"_npmUser":{"name":"tyronemichael","email":"tyronemichael@gmail.com"},"repository":{"url":"git+ssh://git@github.com/civicteam/civic.me.git","type":"git"},"_npmVersion":"8.19.2","description":"A multichain wallet connect library","directories":{},"_nodeVersion":"18.12.1","dependencies":{"ramda":"^0.28.0","wagmi":"^0.12.13","ethers":"^5","@types/react":"^17.0.0","@solana/web3.js":"^1.76.0","@headlessui/react":"^1.7.14","styled-components":"^6.0.0-rc.2","@wallet-standard/app":"^1.0.1","@wallet-standard/core":"^1.0.3","@rainbow-me/rainbowkit":"^0.12.14","@wallet-standard/wallet":"^1.0.1","@civic/civic-chain-icons":"0.0.5-beta.0","@civic/civic-eth-provider":"0.0.8-beta.2","@solana/wallet-adapter-base":"^0.9.22","@wallet-standard/react-core":"^0.1.4","@solana/wallet-adapter-react":"^0.15.32","@solana/wallet-adapter-wallets":"^0.19.16","@solana/wallet-adapter-react-ui":"^0.9.31"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.1.0","chai":"^4.3.6","husky":"^8.0.1","mocha":"^9.2.2","sinon":"^14.0.0","ts-node":"^10.7.0","eslint_d":"^12.0.0","ts-mocha":"^10.0.0","sinon-chai":"^3.7.0","@types/chai":"^4.3.1","@types/jsdom":"^16.2.14","@types/mocha":"^9.1.0","@types/ramda":"^0.28.12","@types/sinon":"^10.0.11","@types/expect":"^24.3.0","tsconfig-paths":"^3.9.0","chai-as-promised":"^7.1.1","@types/sinon-chai":"^3.2.8","eslint-plugin-no-only-tests":"^3.1.0"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"_npmOperationalInternal":{"tmp":"tmp/multichain-wallet-connect_0.0.1-beta.16_1685519197813_0.027338480934160136","host":"s3://npm-registry-packages"}},"0.0.1-beta.17":{"name":"@civic/multichain-wallet-connect","version":"0.0.1-beta.17","author":{"name":"civic.com"},"license":"MIT","_id":"@civic/multichain-wallet-connect@0.0.1-beta.17","maintainers":[{"name":"ndrabins","email":"noah.drabinsky1@gmail.com"},{"name":"dmelosantos","email":"danielmelos@gmail.com"},{"name":"jp-civic","email":"jp@civic.com"},{"name":"chriteixeira","email":"chriteixeira@gmail.com"},{"name":"daneel","email":"daneel@civic.com"},{"name":"mitchcivic","email":"mitch@civic.com"},{"name":"dankelleher","email":"dankelleher@yahoo.com"},{"name":"jonthepilot","email":"jonathan@civic.com"},{"name":"rado0x54","email":"web@riedel-it.de"},{"name":"araptarchis","email":"alexis.raptarchis@googlemail.com"},{"name":"civicfinance","email":"camille@civic.com"},{"name":"kevinhcolgan","email":"kevin@civic.com"},{"name":"flippiescholtz","email":"flippie@civic.com"},{"name":"tyronemichael","email":"tyronemichael@gmail.com"},{"name":"lucmir","email":"luccmir@gmail.com"},{"name":"william-identity","email":"william@identity.org"}],"homepage":"https://github.com/civicteam/civic.me#readme","bugs":{"url":"https://github.com/civicteam/civic.me/issues"},"dist":{"shasum":"ebd89bd2a131e26b6391174ab51db34835be1f47","tarball":"https://registry.npmjs.org/@civic/multichain-wallet-connect/-/multichain-wallet-connect-0.0.1-beta.17.tgz","fileCount":89,"integrity":"sha512-E7FG6IHJLB57B5LfuXcvRT6RU+8x3oesJesAPQAJc25RQs+F94AEliD150D0bfdxGSQCDZuAiCefHjtpJaWMgQ==","signatures":[{"sig":"MEUCIBVwbGlRjrrei0cEZaWvOx759MIJZGnYAldImQZraZOjAiEA6h4npoLnbJ9/FyepJgEFqUwwjU9dgVGpMLfzM8RWxpE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":133042},"main":"./dist/umd/index.js","types":"./dist/typings/index.d.ts","module":"./dist/esm/index.js","readme":"## Library Specification: Multi-Chain Wallet Support\n\n### Overview\nThe library provides support for multiple chains by leveraging the [Wallet Standard](https://github.com/wallet-standard/wallet-standard). It enables the injection of wallets that conform to the wallet standard into Wallet Adapters. The Wallet Adapters serve as UI interfaces that allow users to select their preferred wallet for connecting to the dApp. The library currently supports the [Solana Wallet Adapter](https://github.com/solana-labs/wallet-adapter) and [Rainbowkit](https://www.rainbowkit.com), both of which implement the same interface. This design allows for easy switching between different Wallet Adapters.\n\n### Core Functionality\n1. Wallet Standard:\n   - The library uses the wallet standard defined [here](https://github.com/wallet-standard/wallet-standard).\n   - The standard interface includes common methods for connecting to a blockchain, signing transactions, and retrieving account information.\n\n2. Wallet Adapters:\n   - Wallet Adapters serve as UI interfaces for users to select their preferred wallet.\n   - The Wallet Adapters should be capable of handling multiple wallets, each conforming to the wallet standard.\n   - The library has implemented a mechanism for dynamically switching between different Wallet Adapters at runtime.\n   - A common interface has also been developed to allow the use of different wallet adapters.\n   - Currently, the library supports the [Solana Wallet Adapter](https://github.com/solana-labs/wallet-adapter) and [Rainbowkit](https://www.rainbowkit.com).\n\n3. Solana Wallet Adapter:\n   - Implements the Wallet Adapter interface specifically for the Solana blockchain.\n   - Integrates with Solana wallets that conform to the wallet standard.\n   - Provides a user-friendly interface for selecting and connecting to Solana wallets.\n   - Supports common operations such as transaction signing and account information retrieval for Solana.\n\n4. Rainbowkit Wallet Adapter:\n   - Implements the Wallet Adapter specifically for EVM-supported wallets.\n   - Integrates with the Rainbowkit wallet that conforms to the wallet standard.\n   - Provides a user-friendly interface for selecting and connecting to EVM-supported wallets.\n   - Supports common operations such as transaction signing and account information retrieval for Rainbowkit.\n\n### Extensibility and Switching Wallet Adapters\n1. Interface Consistency:\n   - Ensures that all Wallet Adapters conform to the same interface defined by the wallet standard.\n   - This allows for seamless switching between different Wallet Adapters without modifying the core library code.\n\n2. Future Wallet Adapters:\n   - The library is designed to be extensible, allowing for the addition of new Wallet Adapters in the future.\n   - New Wallet Adapters should conform to the wallet standard and integrate with the library's core functionality.\n   - Clear documentation and guidelines are provided for developers to create new Wallet Adapters.\n\n### Installation\n\nInstall the component using `yarn install @civic/multichain-wallet-connect` or `npm i -S @civic/multichain-wallet-connect`.\n\n### Architecture\n\nThe architecture can be viewed [here](https://mermaid.live/view#pako:eNqVVE1rwzAM_SvC5-0P5FAoHYzCxmCl9JKLGquNwbEzW17ZSv_77Ngt_abLyUh6T3rPcraisZJEJTx9BTINvShcO-xqA_Gbe3LPo9F8WsFHTwbkuO9LZhrj70GzmrSozMQaQw1XMDWKFWr1S7BR3IIPfW8dk4Qm1fmMvgBGsgVqTTyW2DO5EyJuCXIWSjpzb4aYj3lkaKxZWdcB26E-58AzGolO3m6btM1au0kEKQTLwGzNif4rOsvhDq9PKgbXOitR37PjdpsZ6TTTUHy71zUgW5ed8wPFvuPD_r9hME17hvZn95DZTpAH6Z_EwRlA0Moz2BXgNyqNS01HF0cQYjE0aA7-J59ObDkbrFiSOa4PcMWPMk1pEvUsjvD_9vRxmrPhX4kPQudTiBsLPi6fMusjzrK7N8zd72uBX8DiwpcdHvJS-VKSmuQa8SQ6ch0qGR_-NvWpRZTVUS2qeJS0wiilFrXZxVIMbGc_phEVu0BPIvQSef-fyMHdH73-g1Y).\n\n```mermaid\nsequenceDiagram\n    User->>UI: Open dApp\n    UI->>MultiChainConnect: Initialize with supported chains\n    MultiChainConnect->>WalletAdapter: Initialize the Wallet Adapter with wallets that conform to the wallet standard\n    MultiChainConnect->>UI: Show connect button\n    User->>MultiChainConnect: Connect\n    MultiChainConnect->>User: Open modal with supported chains\n    User->>MultiChainConnect: Select chain\n    MultiChainConnect->>MultiChainConnect: Store the selected chain\n    MultiChainConnect->>WalletAdapter: Launch selected chain's Wallet Adapter\n    WalletAdapter->>User: Return a list of available wallets the user can connect with\n    User->>WalletAdapter: Select wallet\n    WalletAdapter->>MultiChainConnect: Return connected Wallet\n    MultiChainConnect->>MultiChainConnect: Store the connected Wallet\n    MultiChainConnect->>WalletAdapter: Get connect UI for showing the connected wallet \n    WalletAdapter->>UI: Show UI for connected wallet and button for disconnecting wallet\n```\n\n### Example Usage\n\n1. Importing the Library:\n\n```javascript\nimport React from 'react';\nimport { MultichainWalletProvider, createChain } from '@civic/multichain-wallet-connect';\n\nconst ExampleComponent: React.FC = () => {\n  return (\n    <MultichainWalletProvider\n      chains={[createChain.ethereum('mainnet')]}\n    >\n      <MultichainConnectButton />\n    </MultichainWalletProvider>\n  );\n};\n\nexport default ExampleComponent;\n```\n\n### Custom button\n\n1. Creating your own button with custom styling:\n\n```javascript\n/* eslint-disable import/no-extraneous-dependencies */\nimport React from \"react\";\nimport styled from \"styled-components\";\nimport { MultichainConnectedButton, useWallet, useModal } from \"@civic/multichain-wallet-connect\";\n\n// Styled component named StyledButton\nconst StyledButton = styled.button`\n  display: inline-block;\n  border-radius: 20px;\n  padding: 0.5rem 0;\n  margin: 0.5rem 1rem;\n  width: 11rem;\n  border: 2px solid black;\n  background: white;\n  color: black;\n`;\n\nexport function MultichainConnectButton(): JSX.Element | null {\n  const { connected } = useWallet();\n  const { openConnectModal } = useModal();\n\n  return (\n    <>\n      {!connected && (\n        <StyledButton type=\"button\" onClick={openConnectModal}>\n          Connect\n        </StyledButton>\n      )}\n      <MultichainConnectedButton />\n    </>\n  );\n}\n```","engines":{"node":">=16"},"gitHead":"a4a16abd081715453409baf7c43b6c00f616a507","scripts":{"lint":"eslint -c .eslintrc.js '{src,test}/**/*.ts'","test":"yarn test:unit","build":"tsc -b tsconfig.build.json && tsc -b tsconfig.umd.json","lint:fix":"eslint -c .eslintrc.js --fix '{src,test}/**/*.ts'","test:unit":"STAGE=${STAGE:-local} FORCE_COLOR=1 LOG_LEVEL=error LOCAL=true  ts-mocha -p tsconfig.mocha.json --timeout 20000 --paths 'test/unit/**/*.ts'","test:mocha":"STAGE=${STAGE:-local} FORCE_COLOR=1 LOG_LEVEL=error LOCAL=true nyc --reporter=text --reporter=html mocha","test:watch":"ts-mocha -p tsconfig.mocha.json 'test/**/*.ts' -w --watch-files '**/**/*.ts'"},"_npmUser":{"name":"tyronemichael","email":"tyronemichael@gmail.com"},"repository":{"url":"git+ssh://git@github.com/civicteam/civic.me.git","type":"git"},"_npmVersion":"8.19.2","description":"A multichain wallet connect library","directories":{},"_nodeVersion":"18.12.1","dependencies":{"ramda":"^0.28.0","wagmi":"^0.12.13","ethers":"^5","@types/react":"^17.0.0","@solana/web3.js":"^1.76.0","@headlessui/react":"^1.7.14","styled-components":"^6.0.0-rc.2","@wallet-standard/app":"^1.0.1","@wallet-standard/core":"^1.0.3","@rainbow-me/rainbowkit":"^0.12.14","@wallet-standard/wallet":"^1.0.1","@civic/civic-chain-icons":"0.0.5-beta.0","@civic/civic-eth-provider":"0.0.8-beta.2","@solana/wallet-adapter-base":"^0.9.22","@wallet-standard/react-core":"^0.1.4","@solana/wallet-adapter-react":"^0.15.32","@solana/wallet-adapter-wallets":"^0.19.16","@solana/wallet-adapter-react-ui":"^0.9.31"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.1.0","chai":"^4.3.6","husky":"^8.0.1","mocha":"^9.2.2","sinon":"^14.0.0","ts-node":"^10.7.0","eslint_d":"^12.0.0","ts-mocha":"^10.0.0","sinon-chai":"^3.7.0","@types/chai":"^4.3.1","@types/jsdom":"^16.2.14","@types/mocha":"^9.1.0","@types/ramda":"^0.28.12","@types/sinon":"^10.0.11","@types/expect":"^24.3.0","tsconfig-paths":"^3.9.0","chai-as-promised":"^7.1.1","@types/sinon-chai":"^3.2.8","eslint-plugin-no-only-tests":"^3.1.0"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"_npmOperationalInternal":{"tmp":"tmp/multichain-wallet-connect_0.0.1-beta.17_1685519425332_0.4376733177881569","host":"s3://npm-registry-packages"}}},"time":{"created":"2023-05-25T12:35:53.154Z","modified":"2026-05-10T06:05:24.063Z","0.0.1-beta.0":"2023-05-25T12:35:53.399Z","0.0.1-beta.1":"2023-05-26T11:48:20.450Z","0.0.1-beta.2":"2023-05-29T07:59:15.428Z","0.0.1-beta.3":"2023-05-29T08:08:20.405Z","0.0.1-beta.4":"2023-05-29T08:38:55.128Z","0.0.1-beta.5":"2023-05-29T11:31:22.259Z","0.0.1-beta.6":"2023-05-29T11:46:52.898Z","0.0.1-beta.7":"2023-05-29T11:58:38.676Z","0.0.1-beta.8":"2023-05-29T13:53:38.007Z","0.0.1-beta.9":"2023-05-30T08:28:56.030Z","0.0.1-beta.10":"2023-05-30T08:31:07.328Z","0.0.1-beta.11":"2023-05-30T08:37:59.804Z","0.0.1-beta.12":"2023-05-30T08:42:53.370Z","0.0.1-beta.13":"2023-05-30T10:07:14.598Z","0.0.1-beta.14":"2023-05-31T05:56:25.177Z","0.0.1-beta.15":"2023-05-31T06:09:38.502Z","0.0.1-beta.16":"2023-05-31T07:46:37.971Z","0.0.1-beta.17":"2023-05-31T07:50:25.554Z"},"bugs":{"url":"https://github.com/civicteam/civic.me/issues"},"author":{"name":"civic.com"},"license":"MIT","homepage":"https://github.com/civicteam/civic.me#readme","repository":{"url":"git+ssh://git@github.com/civicteam/civic.me.git","type":"git"},"description":"A multichain wallet connect library","maintainers":[{"email":"dankelleher@yahoo.com","name":"dankelleher"},{"email":"jonathan@civic.com","name":"jonthepilot"},{"email":"camille@civic.com","name":"civicfinance"},{"email":"kevin@civic.com","name":"kevinhcolgan"},{"email":"flippie@civic.com","name":"flippiescholtz"},{"email":"luccmir@gmail.com","name":"lucmir"},{"email":"chriteixeira@gmail.com","name":"chriteixeira"},{"email":"web@riedel-it.de","name":"rado0x54"}],"readme":"","readmeFilename":""}