Releases: polymorpher/one-wallet
Developer preview: Swap 100+ tokens inside 1wallet
Contract call, verifiable signatures (EIP-1271), advanced integrations, and more
- 1wallet now supports arbitrary external function calls
- Calls can be initiated by (1) A call request from a third-party app, through
/auth/call
route; (2)/show/[address]/call
route, provided that dev mode is activated (by visiting/dev
route to toggle) - 1wallet now supports EIP-127 smart contract signature verification
- Signing can be performed by (1) a signing request from a third-party app, through
/auth/sign
route; (2)/show/[address]/sign
route, provided that dev mode is activated (by visiting/dev
route to toggle) - Internally, 1wallet contract has spun out more components:
CommitManager
for managing commit states and performing various verification tasksSignatureManager
for managing signatures
- 1wallet core libraries are now providing more utilities:
- calldata and function signature encoding utility
- eth signed message utility
- commit-reveal flow with dynamically computed commit and reveal arguments (passing in a function, that takes eotp, index, and neighbor as parameters)
- see more in pull request #113
Documentation for sign
and call
integrations is available at https://github.com/polymorpher/one-wallet/wiki/App-Integration
Redirect integrations
This release enables redirect integrations for viewing 1wallet address and sending payments. See https://github.com/polymorpher/one-wallet/wiki/App-Integration/19c3ee7498a277c5c8d54b3077f0d9aeeb5e79a6
See #73 for more discussions on redirect integrations, and pull request #100
A demo is provided at https://onewallet-integration.web.app/
Wallet graphs, upgradable wallet, domain names, address book, and other improvements
For more information, see issues: #78 #76 #75
Wallet Graphs
1wallets can now be back linked and forward linked, forming a graph. A 1wallet will forward all assets to the forward-linked address. A 1wallet can control and issue command to any 1wallet at any back linked address, provided the back linked address made corresponding forward link. This has many implications and interesting use cases, which will be documented in the wiki, for example: SaaS subscriptions, enterprise department account management, payroll, and many others. Upgradable Wallet (see below) is one of the first use cases.
Upgradable Wallet
From version v0.9.1, 1wallet can be upgraded. When it is upgraded, a new wallet is generated with identical parameters. The old wallet is linked to the new wallet. All assets from the old wallet will be transferred to the new wallet (subject to recovery address approval for high value wallets). Assets sent to the old wallet will be forwarded to the new wallet. The new wallet can command linked wallets (e.g. the old wallet) to do anything the wallet could do, e.g. transfer a domain, sign transactions, and others.
Wallets below v0.9.1 cannot be upgraded
Domain Names
You can purchase domain names for your wallets. Domain names can be automatically looked up and resolved when you type in an address.
Address Book
Addresses used will be automatically saved and displayed as options in address input box, along with other known wallets.
Others
Address Utilities
Addresses are now displayed with three helper buttons: copy, explorer link, and format toggle. They are also displayed in abbreviated formats when appropriate. The buttons are displayed only on hover (or by clicking the address itself)
Audit Reports and Links
v0.2 is released for both web and CLI
- New feature: sending 1.0 ONE from the recovery address to a wallet would trigger the recovery process, causing all funds in the wallet to be transferred to the recovery address. The recovery address can be either an externally owned account, or any contract address. If the recovery address is a ONE Wallet contract address, the wallet must be created using v0.2 version or above (such that its major version no less than 3). This is because previous versions of the ONE Wallet contract does not provide enough gas when it sends funds elsewhere.
- Fixed a bug in CLI which shows incorrect recovery address in detailed wallet information
- Web client is now compatible with mobile screens
- Various stability and performance improvements
- Binary is now available for macOS M1
Recovery feature step-by-step guide
- We start with ~15.9 ONE in our in-browser ONE wallet
- We created another ONE Wallet in CLI (gadget-leopard-analyst) with recovery address set to the address of the in-browser wallet (Wrap)
- The CLI wallet has 0 balance
- We send 10 ONE from in-browser wallet to CLI wallet
- Now we see CLI wallet has 10 ONE
- And in-browser wallet has 5.9 ONE left
- We trigger the recovery process by sending 1.0 ONE from in-browser wallet to CLI wallet
- As soon as the transaction is completed, the in-browser wallet now has 15.9 ONE, because it recovered everything it sent to CLI wallet.
- The CLI wallet now has 0 ONE.
CLI v0.1
Here are the binaries for 1wallet CLI. I haven't optimized dependencies and imports, so the resulting binaries are a lot larger than it needs to be. To see a list of commands, run 1wallet help
.
See https://www.youtube.com/watch?v=WqpZPKNcspU for a demo
For example, I renamed 1wallet-macos
to 1wallet
in my system and added it to PATH. Here is the output:
Initial release with complete functionalities
Issues and TODOs are identified in #5