https://github.com/aptos-labs/wallet-adapter-plugin-template
https://github.com/aptos-labs/wallet-adapter-plugin-template
aptos aptos-wallet blockchain-wallet wallet
Last synced: 18 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/aptos-labs/wallet-adapter-plugin-template
- Owner: aptos-labs
- License: apache-2.0
- Created: 2022-12-07T02:57:09.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-07-17T21:05:25.000Z (about 1 year ago)
- Last Synced: 2025-01-11T13:56:49.798Z (9 months ago)
- Topics: aptos, aptos-wallet, blockchain-wallet, wallet
- Language: TypeScript
- Homepage:
- Size: 58.6 KB
- Stars: 26
- Watchers: 6
- Forks: 51
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# WARNING - This template is outdated
Follow the instructions [here](https://aptos.dev/integration/wallet-adapter-for-wallets/#aip-62-wallet-standard) to implement an [AIP-62](https://github.com/aptos-foundation/AIPs/blob/main/aips/aip-62.md) wallet adapter plugin.Implementing an AIP-62 standard wallet adapter plugin is backwards compatible with this legacy version. Implementing the above AIP-62 standard makes it simple for dapps to include your Wallet as an option by updating the version of the wallet-adapter package.
This legacy plugin template required dapps to manually look for new wallets to include from a README which was easier to miss.
# Legacy Instructions
## Aptos wallet plugin template for wallet builders to interact with the Aptos Wallet Adapter
This repo provides wallet builders a pre-made class with all required wallet functionality following the [wallet standard](https://aptos.dev/standards/wallets) for easy and fast development to interact with the [Aptos Wallet Adapter](https://github.com/aptos-labs/aptos-wallet-adapter)
---
### Usage
- `fork` this repo
- run `npm install` or `yarn install`
- Open `src/index.ts`
- Change all `AptosWindow` appereances to `Window`
- Change `AptosWalletName` to be `WalletName`
- Change `url` to match your website url
- Change `icon` to your wallet icon (pay attention to the required format)- Change `window.aptos` to be `window.`
> **_NOTE:_** Ensure the `name` prop is the same as the `window.`. The adapter will look for the matching name when detecting a wallet. For example, if your wallet's name prop is `Petra`, then the window should be `window.petra`.
> **_NOTE2_** window object key (i.e `window.`) has to be lowercase exact match (`petra`). Wallet name prop can have capitalization (`Petra` / `PetraWallet`)
- Make sure the `Window Interface` has `` as a key (instead of `aptos`)
- Open `__tests/index.test.tsx` and change `AptosWallet` to `Wallet`
- Run tests with `npm run test` - all tests should passAt this point, you have a ready wallet class with all required properties and functions to integrate with the Aptos Wallet Adapter.
### Publish as a Package
Next step is to publish your wallet as a npm package so dapps can install it as a dependency.
- Make sure to update `package.json` name, description, author and any other properties.
- Run `npm install` then `npm run build` - a `dist` folder should be available
- (optional) Run `npm publish --dry-run` to see what would get published (make sure there is a `dist` folder)Creating and publishing scoped public packages
https://docs.npmjs.com/creating-and-publishing-scoped-public-packagesCreating and publishing unscoped public packages
https://docs.npmjs.com/creating-and-publishing-unscoped-public-packages### Add your name to the wallets list
Once the package is published, you can create a PR against the [aptos-wallet-adapter](https://github.com/aptos-labs/aptos-wallet-adapter) repo and add your wallet name as a url to the npm package to the [supported wallet list](https://github.com/aptos-labs/aptos-wallet-adapter#supported-wallet-packages) on the README file.
---
> **_Note:_** if your wallet provides function that is not included, you should open a PR against [aptos-wallet-adapter](https://github.com/aptos-labs/aptos-wallet-adapter) in the [core package](https://github.com/aptos-labs/aptos-wallet-adapter/blob/main/packages/wallet-adapter-core/src/WalletCore.ts) so it would support this functionality.
> You can take a look at the `signTransaction` on the wallet [core package](https://github.com/aptos-labs/aptos-wallet-adapter/blob/main/packages/wallet-adapter-core/src/WalletCore.ts)