Awesome
StarMask
A blockchain wallet browser extension for Starcoin blockchain.
Initialize
yarn setup
cp .starmaskrc.dist .starmaskrc # change the values according to your needs
yarn start
Development
It is convenient to use yarn link @starcoin/xxx
for debugging in localhost,
but dont forget doing the following steps before next release:
yarn unlink @starcoin/xxx`
yarn add @starcoin/xxx
yarn setup:postinstall
How to transfer the old state in local storage to new state
- check the last_version_number in
app/scripts/migrations/index.js
- NEW_VERSION = last_version_number + 1
yarn generate:migration <NEW_VERSION>
to generateapp/scripts/migrations/<NEW_VERSION>.js
andapp/scripts/migrations/<NEW_VERSION>.test.js
- modify
transformState
inapp/scripts/migrations/<NEW_VERSION>.js
, add test cases inapp/scripts/migrations/<NEW_VERSION>.test.js
- add following line in
app/scripts/migrations/index.js
:
require('./<NEW_VERSION>').default,
- run
yarn start
or wait until it reloaded, then the old state will be migrated to the new state.
Tips:
-
check
054.js
and054.test.js
for demo of handling tokens. -
if you want to debug and re-run <NEW_VERSION>.js multi times, you can add following in
app/scripts/background.js
-> loadStateFromPersistence
versionedData.meta.version = <last_version_number>;
before this line:
const { TransactionController } = versionedData.data;
Add build to Chrome
- For security reason, highly reommand add a new profile:
- open Chrome
- At the top right
- click Profile
- Click Add. Choose a name, photo and color scheme.
- Open Settings > Extensions.
- Check "Developer mode".
- Alternatively, use the URL chrome://extensions/ in your address bar
- At the top, click Load Unpacked Extension.
- Navigate to
dist/chrome
folder - Click Select.
- Change to your locale via chrome://settings/languages
- Restart the browser and test the plugin in your locale
Publish
- change version in
app/manifest/_base.json
yarn dist
How to display custom tokens logo in Main network
- Maintain custom tokens in @starcoin/starmask-contract-metadata
- add token info in
contract-map.json
- add logo svg/png in folder
images
- update version in package.json
- in
starmask-extension
- update
@starcoin/starmask-contract-metadata
version to the latest one - copy and paste logo into folder
app/images/contract