Skip to content

Instantly share code, notes, and snippets.

@nodlAndHodl
nodlAndHodl / contracts...Fundraiser.sol
Created February 21, 2022 22:27
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.4.26+commit.4563c3fc.js&optimize=false&runs=200&gist=
pragma solidity ^0.4.24;
contract Fundraiser {
mapping(address=>uint) balances;
// VULNERABLE
function withdrawCoins(){
uint withdrawAmount = balances[msg.sender];
Wallet wallet = Wallet(msg.sender);
wallet.payout.value(withdrawAmount)();
using NBitcoin;
using NBitcoin.Protocol;
public class LegacyPayToAddress
{
public static void Run()
{
//We will send the coins from this address mtdFu4Qb8why1t71zpUpKkXpsCfjbYbUKj to the one below and has the available output from
//the transaction with the hash 597ca9461b98b541f4d63e4679381947df7698c26750b1ad611bf08e947be2ac
Network network = Network.RegTest;
use std::thread;
use std::sync::Arc;
use std::sync::atomic::AtomicI32;
use std::sync::atomic::Ordering;
fn main() {
let total = add(46, -4);
println!("total = {};", total)
}
fn add(n1: i32, n2: i32) -> i32 {
use std::thread;
use std::sync::Arc;
use std::sync::Mutex;
struct Accumulator {
sum: i32,
operation_count: i32,
}
impl Accumulator {
use std::thread;
use std::sync::mpsc;
fn main() {
let total = add(46, -4);
println!("total = {};", total)
}
fn add(n1: i32, n2: i32) -> i32 {
let mut sum = n1;
let (count, increment) = if n2 > 0 {(n2, 1)} else {(-n2, -1)};