Skip to content

Instantly share code, notes, and snippets.

@wschae
wschae / HelloWorld.cs
Created February 27, 2021 20:46
Hello World for NEO Smart Contract
using Neo.SmartContract.Framework;
using Neo.SmartContract.Framework.Services.Neo;
// [assembly: ContractTitle("optional contract title")]
// [assembly: ContractDescription("optional contract description")]
// [assembly: ContractVersion("optional contract version")]
// [assembly: ContractAuthor("optional contract author")]
// [assembly: ContractEmail("optional contract email")]
[assembly: Features(ContractPropertyState.HasStorage)]
@wschae
wschae / Student.sol
Created February 26, 2021 17:04
Student Contract with Events
pragma solidity >=0.4.22 <0.8.0;
contract Student {
string firstName;
string lastName;
string dateOfBirth;
function setStudent(string memory fname,
string memory lname,
string memory dob) public {
@wschae
wschae / StudentEnrollment.cs
Last active February 27, 2021 20:43
NEO Smart Contract for Student Enrollment
using Neo.SmartContract.Framework;
using Neo.SmartContract.Framework.Services.Neo;
[assembly: ContractTitle("Student Enrollment")]
[assembly: Features(ContractPropertyState.HasStorage)]
public class StudentEnrollment : SmartContract
{
public static object Main(string operation, params string[] args)
{
@wschae
wschae / mydetector.py
Created February 4, 2021 07:23
Build Custom Analyzer
import sys
from slither import Slither
slither = Slither('uninitialized.sol')
for contract in slither.contracts:
print(f'Contract: {contract.name}')
for function in contract.functions:
print(f'\t{function.full_name}')
print(f'\t\tVisibility{function.visibility}')
@wschae
wschae / Token.sol
Created February 4, 2021 07:20
Issues with Integers
pragma solidity ^0.4.22;
contract Token {
mapping (address => uint) public balances;
function sendToken(address receiver, uint amount) public payable {
require(balances[msg.sender] - amount > 0);
balances[msg.sender] -= amount;
balances[receiver] += amount;
}
@wschae
wschae / Integer.sol
Created February 4, 2021 07:16
Integer Test
pragma solidity ^0.4.22;
contract IntegerTest {
function Sub(uint8 x, uint8 y) public pure returns(uint8) {
return x - y;
}
}
@wschae
wschae / BadPartner2.sol
Created February 4, 2021 07:14
Example for Bad Partner (2)
pragma solidity ^0.4.22;
import "./TrustFund3.sol";
contract BadPartner {
TrustFund public fund;
constructor(address fundAddress) public {
fund = TrustFund(fundAddress);
}
@wschae
wschae / TrustFund3.sol
Created February 4, 2021 07:11
Example for Trust Fund (3)
pragma solidity ^0.4.22;
contract TrustFund {
address[3] partners;
uint totalFunding;
uint[3] withdrawn;
uint[3] distribution = [2, 4, 4];
constructor(address[3] _partners) public {
partners = _partners;
@wschae
wschae / TrustFund.sol
Last active February 4, 2021 07:06
Example for Trust Fund
pragma solidity ^0.4.22;
contract TrustFund {
address[3] partners;
constructor(address[3] _partners) public {
partners = _partners;
}
function updateAddress(uint partner, address newAddress) public {
@wschae
wschae / SimpleLottery.sol
Created February 4, 2021 07:00
Simple Lottery Contract
pragma solidity >=0.4.0 <0.7.0;
contract SimpleLottery {
uint ticketingCloses;
address[] public tickets;
address public winner;
constructor(uint duration) public {
ticketingCloses = now + duration + 1 days;
}