agoralabs-sh / kibisis-web-extension Goto Github PK
View Code? Open in Web Editor NEWAn AVM wallet in your browser that goes beyond just DeFi.
Home Page: http://kibis.is
License: GNU Affero General Public License v3.0
An AVM wallet in your browser that goes beyond just DeFi.
Home Page: http://kibis.is
License: GNU Affero General Public License v3.0
After successfully connecting to WalletConnect, transactions sent from the dapp should be able to sign a transaction request.
Scenario 1: User signs some arbitrary data via WalletConnect
GIVEN a User has connected a dapp via WalletConnect
WHEN the dapp sends a request to sign the arbitrary data
THEN the wallet signs the arbitrary data
"Adding" an asset, ie. opt-in, should be initiated from the assets tab on the account page.
Scenario 1: User adds an ASA
GIVEN a User has added an account
WHEN the User presses "Add asset" on the asset tab of the accounts page
AND the User enters the ASA ID in the input field
THEN the User is shown a modal that informs them an ASA will require 0.001 native tokens to add
AND an opt-in transaction is signed and sent to the chain
The Edge add-on script that automates the upload and publish of the Edge add-on is not working correctly as seen here.
main
branchparse error: Invalid numeric literal at line 1, column 10
./bin/publish_to_microsoft_edge_add_ons.sh: line 109: [: ==: unary operator expected
When attempting to turn on the MainNet, the toggle does not turn on after confirming.
Uploading and publishing to the Edge add-on store should be initiated upon a release.
Scenario 1: deploy to Edge add-on store
GIVEN a release is tagged
WHEN GitHub actions tags the release
THEN the extension is packaged and published to the Edge add-on store
Until at least one WalletConnect signing method is implemented, disable the WalletConnect button as it remains redundant.
Scenario 1: User cannot see WalletConnect button
GIVEN a User opened Kibisis
WHEN the User opens the sidebar
THEN the WalletConnect button is no longer there
With the removal of the strong password policy document, the downloads
permission is no longer required.
Uploading and publishing to the Firefox add-on store should be initiated upon a release.
Scenario 1: deploy to Firefox add-on store
GIVEN a release is tagged
WHEN GitHub actions tags the release
THEN the extension is packaged, signed and deployed to the Firefox add-on store
UseWallet messages are timing out and are not being handled correctly.
A double forward slash appears on the send assets button in the sidebar.
WalletConnect sessions only last 7 days, but users may want to extend these sessions.
Scenario 1: User extends WalletConnect session
GIVEN a User connected using WalletConnect
WHEN the User goes to the "Manage Session" page
AND the User presses "Extend Session"
THEN the WalletConnect session is extended for another 7 days
In light of the shutdown of AlgoExplorer, from 1st January 2024, it must be removed from the list of block explorers on Algorand networks.
Scenario 1: AlgoExplorer is no longer available as a block explorer
GIVEN a User is on Algorand testnet
WHEN the User goes to the settings page
AND the selects "General Settings"
AND the User attempts to change the block explorer
THEN the list will display "No block explorers available" in the select
When a seed phrase is being copy and pasted, if the copied seed phrase uses commas for delimiters, they are also copied into the inputs.
For the main purposes of support and debug, it would be helpful for users to be able to see information about Kibisis, such as version.
Scenario 1: User checks Kibisis version
GIVEN a User wants to check the version of Kibisis
WHEN the User presses the settings button in the sidebar
AND the User selects "About"
THEN the version is displayed in the about settings page
The rename account input and edit buttons have a few styling issues, namely, the border radius doesn't apply to the button container and makes then square.
They also appear under the edit button if they are overlapping.
Adding an an ARC-200 is simpler than an ASA, as ARC-200 function much like ERC-20, in that they are an app that stores a map of Addresses and balances. This removes the need to "opt-in" to the asset.
Scenario 1: User adds an ARC-200 asset
GIVEN a User has added an account
WHEN the User presses "Add asset" on the asset tab of the accounts page
AND the User enters the app ID in the input field
THEN the ARC-200 asset is added and appears in the assets list
When sending assets, the number input doesn't allow inputs and does not pad zeroes.
With the introduction of ARC200 assets in #50, it should be possible to also send them like standard assets and native currency
Scenario 1: User sends an ARC200 asset
GIVEN a User has added an ARC200 asset
WHEN the User presses "Send" on the asset page
AND the User enters the address to send and the amount
AND the User presses send
THEN the ARC200 asset application (smart contract) is updated
When WalletConnect is ready, it will need to finally be submitted for review.
The react-markdown
package that is used to render the markdown files, namely the Strong Password policy, has some code that is not favourable for the Firefox submission. Therefore, all policies must be moved to the website and external links used.
Scenario 1: User views Strong Password policy upon registration
GIVEN a User is registering Kibisis for the first time
WHEN the User clicks the Strong Password policy link
THEN a new tab is open to the Strong Password policy on the website
Scenario 2: User views Strong Password policy after registration
GIVEN a User has already registered Kibisis
WHEN the User goes to the Security settings page
AND the User clicks "Change Password"
WHEN the User clicks the Strong Password policy link
THEN a new tab is open to the Strong Password policy on the website
The standard Chakra UI toast is a bit intrusive, but they do allow for customization. It will also be helpful users to be notified of any new transactions.
Scenario 1: User receives a notification of new transactions
GIVEN the active account has new transactions
WHEN the new transactions has been polled
THEN a notification shows the amount of new transactions
The minimum balance info incorrectly shows the native currency code in the tooltip caption for Voi networks.
Minimum balance is X voi. Based on the account configuration, this is the minimum balance needed to keep the account open.
Minimum balance is X algos. Based on the account configuration, this is the minimum balance needed to keep the account open.
A few dapps on the Algorand and Voi network utilize TxnLabs use-wallet SDK to connect to popular wallets. Opening a pull request on use-wallet to allow connection to Kibisis will help boost Kibisis' dapp compatibility.
The new connection rail through use-wallet, is a good chance to implement the ARC-0013 specification that is being proposed by @kieranroneill
Scenario 1: Dapp connects to Kibisis through use-wallet
GIVEN a Dapp uses use-wallet to connect to wallets
WHEN the Dapp chooses Kibisis as a wallet provider
AND the Dapp calls connect
THEN a session is created on Kibisis
Native currencies are not assets, but they are treated as a standard asset with an ID of "0". Any reference to ASA, should not apply to the native currency.
After successfully connecting to WalletConnect, transactions sent from the dapp should be able to sign a transaction request.
Scenario 1: User signs a WalletConnect transaction
GIVEN a User has connected a dapp via WalletConnect
WHEN the dapp sends a request to sign a transaction
THEN the wallet signs the transaction
Allowing a user to add their own node details will be vital in the step of making Kibisis useful for achieving decentralization.
Scenario 1: User adds their own node details
GIVEN a User has a custom node they would like to use
WHEN the User navigates to the Advanced settings page
AND the User selects "Nodes"
AND the User presses "Add Your Own Node"
AND the User enters the Algod & Indexer URLs and the optional API token
THEN the node is saved to settings
AND the node is used
When getting providers for the ARC-0027 request, all networks in the config are returned. This is not truly representative of the allowed networks. If the user has not allowed mainnet/betanet networks, they should be excluded from the list.
arc0027:get_providers:request
Voi testnet users are the current demographic and will help drive the KIbisis, it is therefore prudent to have Voi testnet as the default network choice.
Scenario 1: Voi testnet is the default network
GIVEN a User has imported a new account
WHEN a User presses the extension button
THEN Voi testnet is the default network
Deployment to the Chrome extension store should be initiated upon a release.
Scenario 1: deploy to Chrome extension store
GIVEN a release is tagged
WHEN GitHub actions tags the release
THEN the extension is packaged, uploaded and published to the Chrome extension store
A useful feature would be to bring the app window to the forefront, if it is in the background.
Scenario 1: User brings app window to focus
GIVEN a User opened the extension
AND the extension has lost focus and is put into the background
WHEN the User presses extension button on their browser
THEN the extension window is brought into focus
Once the scanning for the WalletConnect QR code is initiated, the setInterval
runs forever, if the user closes the modal.
See this hook for the every lasting interval.
Users are still reporting issues with importing an account upon registration. This is causing issues where users attempt to import again, but the account has already been imported.
Transactions are only updated when new transactions are added, so they may become stale.
Scenario 1: Transactions are polled
GIVEN a User has Kibisis open and idle
WHEN a User has made a transaction outside Kibisis
THEN the transaction will appear in the list
During the Voi hackathon, enable requests were not working when trying to connect to Kibisis via the background service worker.
Pera explorer have released their explorer for both mainnet and testnet.
Mainnet: https://explorer.perawallet.app/
Testnet: https://testnet.explorer.perawallet.app/
/tx/<txId>/
/tx/<transactionId>/inner-tx/1/
/asset/<assetId>/
/address/<address>/
/application/<appId>/
/block/<round>/
/tx-group/<groupID>/
Note that we use trailing slashes in all endpoints.
Scenario 1: User chooses Pera explorer
GIVEN a User has Allo explorer selected
WHEN the User goes to the Settings
AND selects the General settings
AND press selects Pera explorer
THEN the block explorer is changed to Pera explorer
ARC-200 asset holdings are disappearing when the extension is restarted.
On Chrome, when a dapp attempts to connect, nothing happens. This is likely due to the manifest v3 using service workers and the service worker becomes inactive and state is removed.
yarn start:chrome
To pre-emptively address a potential bug, when a poll for account information is invoked, there should be a check to see of the said account is already updating.
Scenario 1: Account is already being updated
GIVEN an account is being updated by adding an asset
WHEN the polled account update is invoked
AND the previous account update is still in progress
THEN the polled update should not run
Accounts can have a human readable name, but currently, this is only set during account import/create.
Scenario 1: User renames their account
GIVEN a User has added an account
WHEN the User presses the edit icon next to the account on the account page
AND the User types in a new name for the account
AND the User presses the confirm button
THEN the account is renamed
A feature of low hanging tasty fruit is that of being able to submit your password when pressing the "Enter" key.
Scenario 1: User presses enter to submit password
GIVEN a User wants to send an asset
AND is on the summary page
WHEN the User enters their password
AND the User presses "Enter"
THEN the password is submitted
When importing an account on registration, once "import" is clicked, the window remains open and no main app is launched until the window is closed and the app re-opened.
For the main purposes of support and debug, it would be helpful for users to see logging information in the console. Currently this is limited to development versions, but it would be helpful if user's could manually turn logging on.
Scenario 1: User turns on "Developer Mode"
GIVEN a User wants to see logging information in the console
WHEN the User presses the settings button in the sidebar
AND the User selects "Advanced"
AND the User toggles "Developer Mode"
THEN the logging will be enabled
Once an ARC-200 asset has been added, the User may not want to see the asset.
Scenario 1: User removes ARC-200 asset
GIVEN a User has added the ARC-200 asset
WHEN the User selects the asset
AND on the asset page they press "Remove Asset"
AND press confirm at the confirmation modal
THEN the ARC-200 asset is removed from the asset list
When a merge to main
happens, a new release is tagged and an action is executed that should automatically upload and publish the latest release to the Chrome Web Store. However, this is erroring due to the environment variables not being passed correctly.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.