Secure Dollar Wallet
Contract • TX & Block RLP • API • JS Lib • Swift Lib • Block Explorer • Web App • iOS App
Laptop + Chrome + MetaMask + Private key
) binding.The solution that we BUIDL:
We are using Swiftlit along with Travis in our project, so you should better have swiftlint installed locally on your machine before contributing. Don't be afraid, it's really simple to install. Just run brew install swiftlint
. If you don't have homebrew installed - run ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
firstly.
In order to manually run autocorrection, print swiftlint autocorrect
in the project folder via terminal. However, every time you build the project this command will be called automatically.
"ethereum:0xaaf3A96b8f5E663Fc47bCc19f14e10A3FD9c414B@4/pay?uint256=100000&value=1000&gasPrice=700000&gasLimit=27500"
Here pay
is just a method on smart contract with the given address and @4
specifies network id(which is Rinkeby in that case).
uint256=1000000
is a parameter for the given method, uint256
is a type of the parameter and 1000000
is a value of that parameter.
value=1000
is amount in Wei to send to smart contract. 1 ETH = 10^18 Wei.
//following by EIP-681:
let urlString = "ethereum:0xaaf3A96b8f5E663Fc47bCc19f14e10A3FD9c414B/pay?uint256=100000&value=1000"
UIApplication.shared.open(URL(string: urlString)!, options: [:], completionHandler: nil)
We have done it in PR: Peepeth client PR
Pull request, that contains helper functions to work with ethereum links according to eip-681
pragma solidity ^0.4.23;
contract Shop {
mapping(uint256 => bool) invoices;
event InvoicePayed(uint256 invoice);
function pay(uint256 _invoice) public payable {
require (!invoices[_invoice] && msg.value > 0);
invoices[_invoice] = true;
emit InvoicePayed(_invoice);
}
}
String to encode into QR: "ethereum:0xaaf3A96b8f5E663Fc47bCc19f14e10A3FD9c414B/pay?uint256=100000&value=1000"
During the hackathon, we have covered the whole iOS infrastructure (cross-app transaction signing and sign via QR-code for the calls outside of the phone). Meanwhile, we want to continue working on that idea and adapt it to the whole Ethereum ecosystem, i.e., BUIDL set of the libraries to full reference of FinTech ecosystem::
All in all, with all those things that will be implemented we will make payments easy, secure and fast