Skip to content

Instantly share code, notes, and snippets.

pragma solidity ^0.5.0;
contract PaymentSharer {
mapping(uint => uint) splits;
mapping(uint => uint) deposits;
mapping(uint => address payable) first;
mapping(uint => address payable) second;
function init(uint id, address payable _first, address payable _second) public {
require(first[id] == address(0) && second[id] == address(0));
pragma solidity ^0.4.24;
contract A {
uint256 public a;
uint256 public b;
}
contract B {
uint256 public c;
uint256 public d;
pragma solidity ^0.4.24;
contract D {
function callSetN(address _e, uint _n) public {
_e.call.value(10).gas(6712353)(bytes4(keccak256("setN(uint256)")), _n);
// E's storage is set, D is not modified
}
function callcodeSetN(address _e, uint _n) public {
_e.callcode.value(10).gas(6712353)(bytes4(keccak256("setN(uint256)")), _n);
pragma solidity ^0.4.24;
contract A {
address public sender;
function setMsgSender() public {
sender = msg.sender;
}
}
pragma solidity ^0.4.24;
contract A {
uint256 public n = 1;
function setN(uint256 _n) public {
n = _n;
}
}
pragma solidity ^0.4.24;
/**
* @title SafeMath
* @dev Math operations with safety checks that throw on error
*/
library SafeMath {
/**
pragma solidity ^0.4.21;
import './Proxy.sol';
/**
* @title UpgradeabilityProxy
* @dev This contract represents a proxy where the implementation address to which it will delegate can be upgraded
*/
contract UpgradeabilityProxy is Proxy {
/**
pragma solidity ^0.4.18;
/**
* @title EternalStorage
* @dev This contract holds all the necessary state variables to carry out the storage of any contract.
*/
contract EternalStorage {
mapping(bytes32 => uint256) internal uintStorage;
mapping(bytes32 => string) internal stringStorage;
// handle access control/permission
contract ProxyStorage {
address public implementation;
}
contract Proxy is ProxyStorage {
constructor(address _impl) public {
// check that its valid before setting the address
implementation = _impl;
}