Skip to content

Instantly share code, notes, and snippets.

@wesfloyd
Created November 21, 2021 15:28
Show Gist options
  • Save wesfloyd/63dde53fdf2eaf4741944d9d98e6216a to your computer and use it in GitHub Desktop.
Save wesfloyd/63dde53fdf2eaf4741944d9d98e6216a to your computer and use it in GitHub Desktop.
Created using remix-ide: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://remix.ethereum.org/#version=soljson-v0.8.7+commit.e28d00a7.js&optimize=false&runs=200&gist=
//SPDX-License-Identifier: Unlicense
pragma solidity ^0.8.0;
contract ComputeLease {
uint256 containerID;
address minerAddress;
address driverAddress;
string containerURL;
constructor(string memory _containerURL) {
containerURL = _containerURL;
}
receive() external payable {}
fallback() external payable {}
}
contract ComputeLeasePool {
struct Miner {
address minerAddress;
}
Miner[] minerStack;
address[] activeLeases;
address[] pendingLeases;
event LeaseCreated(address indexed newLease, string message);
function createLease(string memory _packageURL) public payable {
ComputeLease newLease = new ComputeLease(_packageURL);
pendingLeases.push(address(newLease));
(bool sent, bytes memory data) = newLease.call{value: msg.value}("");
require(sent, "Failed to send Ether");
emit("LEASE_CREATED," + address(newLease));
}
function acceptLease(address memory){}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment