Initial commit of message-tributes branch
This commit is contained in:
commit
4d862684ea
|
@ -0,0 +1,68 @@
|
|||
pragma solidity ^0.4.17;
|
||||
|
||||
|
||||
/*
|
||||
Inspired by one of Satoshi Nakamoto’s original suggested use cases for Bitcoin,
|
||||
we will be introducing an economics-based anti-spam filter, in our case for
|
||||
receiving messages and “cold” contact requests from users.
|
||||
SNT is deposited, and transferred from stakeholders to recipients upon receiving
|
||||
a reply from the recipient.
|
||||
*/
|
||||
|
||||
// Uses:
|
||||
|
||||
/*
|
||||
// B will request 100SNT from everyone for messages
|
||||
feeCatalog[B_ADDRESS][address(0)] = 100
|
||||
*/
|
||||
|
||||
/*
|
||||
// A wants to send a message to B
|
||||
// B requires that A pays 100SNT
|
||||
feeCatalog[B_ADDRESS][A_ADDRESS] = 100;
|
||||
---------------------------------------
|
||||
// A will check if B has a fee set up
|
||||
bool hasFee = feeCatalog[B_ADDRESS][address(0)] > 0 || feeCatalog[B_ADDRESS][A_ADDRESS] > 0
|
||||
if(hasFee){
|
||||
uint256 fee = feeCatalog[B_ADDRESS][address(0)];
|
||||
if(feeCatalog[B_ADDRESS][A_ADDRESS] > fee)
|
||||
fee = feeCatalog[B_ADDRESS][A_ADDRESS];
|
||||
}
|
||||
---------------------------------------
|
||||
A will pay or decide to not send the message
|
||||
|
||||
---------------------------------------
|
||||
|
||||
// B wants a non permanent fee for A
|
||||
// After he pays for the first message,
|
||||
// All following messages will be free
|
||||
permanentFee[B_ADDRESS][A_ADDRESS] = false;
|
||||
|
||||
Then after applying fee, we should set:
|
||||
feeCatalog[B_ADDRESS][A_ADDRESS] = 0;
|
||||
|
||||
---------------------------------------
|
||||
|
||||
// B wants a permanent fee for A
|
||||
permanentFee[B_ADDRESS][A_ADDRESS] = true;
|
||||
|
||||
*/
|
||||
contract MessageTribute {
|
||||
|
||||
struct Request {
|
||||
address from;
|
||||
address to;
|
||||
uint256 timestamp;
|
||||
}
|
||||
|
||||
mapping(address => mapping(address => uint256)) feeCatalog;
|
||||
mapping(address => mapping(address => bool)) permanentFee;
|
||||
|
||||
function MessageTribute() public {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
Loading…
Reference in New Issue