Merge pull request #1 from austintgriffith/master

Update: Add uport, tokensubscription
This commit is contained in:
Pet3rpan 2018-09-14 21:50:17 +02:00 committed by GitHub
commit c16893743e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 105 additions and 4 deletions

View File

@ -4,7 +4,23 @@
Let's all post our meta transaction formats here in a digestible format. The TL;DR here is to communicate how someone else could execute your meta transaction for you.
### Format
## Implementations
[uport](https://github.com/austintgriffith/meta-transaction-format-share/blob/master/uport.org.md)
[tenzorum](https://github.com/austintgriffith/meta-transaction-format-share/blob/master/tenzorum.org.md)
[tokenubscription](https://github.com/austintgriffith/meta-transaction-format-share/blob/master/tokensubscription.com.md)
## Important problems to solve
[relay collisions](https://github.com/austintgriffith/meta-transaction-format-share/issues/3)
[dynamic gas rewards](https://github.com/austintgriffith/meta-transaction-format-share/issues/4)
## Format
```
{
This is the format of my meta transaction
@ -21,10 +37,8 @@ Let's all post our meta transaction formats here in a digestible format. The TL;
### Tx
```
{
Here is my (pseudo?)code for getting transactions on chain
Here is my (pseudo?)code for putting transactions on chain
}
```
### Example Implementation Links
[TokenSubscription](https://github.com/austintgriffith/meta-transaction-format-share/blob/master/tokensubscription.com)

48
tenzorum.org.md Normal file
View File

@ -0,0 +1,48 @@
# Tenzorum Gasless TXs
### Format
```
{
uint8 _v, bytes32 _r, bytes32 _s,
address _from, //the subscriber
address _to, //the publisher
uint _value, //wei value of transfer
bytes _data, //data input
address _rewardType, //reward relayers in tokens or ETH
uint _rewardAmount //amount to reward
}
```
### Rx
```
##Client SDK
HTTP POST https://login.tenzorum.app/execute + {payload}
GRAPHQL endpoint mutation ExecuteGaslessTx($from: $WalletAddress!, $to: $WalletAddress!, $amount: Int!) {
executeTransaction(from: $from, to: $to) {
amount
}
}
##Relay RPG
- Coming
```
### Tx
```
{
function execute(
uint8 _v, bytes32 _r, bytes32 _s,
address _from,
address _to,
uint _value,
bytes _data,
address _rewardType, uint _rewardAmount) public
}
```
### Example Implementation Links
- Coming
[Tenzorum](https://github.com/austintgriffith/meta-transaction-format-share/blob/master/tenzorum.org.md)

39
uport.org.md Normal file
View File

@ -0,0 +1,39 @@
### Format
```
{
uint8 sigV,
bytes32 sigR,
bytes32 sigS,
address destination,
bytes data,
address listOwner
}
```
### Rx
```
{
Coming Soon
}
```
### Tx
```
{
// only allow senders from the whitelist specified by the user,
// 0x0 means no whitelist.
require(listOwner == 0x0 || whitelist[listOwner][msg.sender]);
address claimedSender = getAddress(data);
// use EIP 191
// 0x19 :: version :: relay :: whitelistOwner :: nonce :: destination :: data
bytes32 h = keccak256(byte(0x19), byte(0), this, listOwner, nonce[claimedSender], destination, data);
address addressFromSig = ecrecover(h, sigV, sigR, sigS);
require(claimedSender == addressFromSig);
nonce[claimedSender]++; //if we are going to do tx, update nonce
require(destination.call(data));
}
```