文件 1 的 2:BrightID.sol
pragma solidity ^0.6.3;
abstract contract BrightID {
function addContext(bytes32 context) virtual public;
function addContextOwner(bytes32 context, address owner) virtual public;
function addNodeToContext(bytes32 context, address nodeAddress) virtual public;
function register(bytes32 context, bytes32[] memory cIds, uint8 v, bytes32 r, bytes32 s) virtual public;
function removeContextOwner(bytes32 context, address owner) virtual public;
function removeNodeToContext(bytes32 context, address nodeAddress) virtual public;
function sponsor(bytes32 context, bytes32 contextid) virtual public;
function isContext(bytes32 context) virtual public view returns(bool);
function isContextOwner(bytes32 context, address owner) virtual public view returns(bool);
function isNodeContext(bytes32 context, address nodeAddress) virtual public view returns(bool);
function isUniqueHuman(address nodeAddress, bytes32 context) virtual public view returns(bool);
}
文件 2 的 2:Sponsor.sol
pragma solidity ^0.6.4;
import "./BrightID.sol";
contract Sponsor {
BrightID public brightID;
bytes32 public context;
constructor(BrightID _brightID, bytes32 _context) public {
brightID = _brightID;
context = _context;
}
fallback() external payable {
sponsor(msg.sender);
}
receive() external payable {
sponsor(msg.sender);
}
function sponsor(address add) public {
brightID.sponsor(context, bytes32(uint(add)));
}
}
{
"compilationTarget": {
"Sponsor.sol": "Sponsor"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
}
[{"inputs":[{"internalType":"contract BrightID","name":"_brightID","type":"address"},{"internalType":"bytes32","name":"_context","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"brightID","outputs":[{"internalType":"contract BrightID","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"context","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"add","type":"address"}],"name":"sponsor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]