base
commit
48bb93dac1
@ -0,0 +1,4 @@
|
||||
out
|
||||
.env
|
||||
.venv
|
||||
lib
|
@ -0,0 +1,3 @@
|
||||
[submodule "lib/forge-std"]
|
||||
path = lib/forge-std
|
||||
url = https://github.com/foundry-rs/forge-std
|
@ -0,0 +1,6 @@
|
||||
[profile.default]
|
||||
src = 'src'
|
||||
out = 'out'
|
||||
libs = ['lib']
|
||||
|
||||
# See more config options https://github.com/foundry-rs/foundry/tree/master/config
|
@ -0,0 +1 @@
|
||||
Subproject commit eb980e1d4f0e8173ec27da77297ae411840c8ccb
|
@ -0,0 +1,12 @@
|
||||
// SPDX-License-Identifier: UNLICENSED
|
||||
pragma solidity ^0.8.13;
|
||||
|
||||
import "forge-std/Script.sol";
|
||||
|
||||
contract CounterScript is Script {
|
||||
function setUp() public {}
|
||||
|
||||
function run() public {
|
||||
vm.broadcast();
|
||||
}
|
||||
}
|
@ -0,0 +1,58 @@
|
||||
// SPDX-License-Identifier: UNLICENSED
|
||||
pragma solidity ^0.8.13;
|
||||
|
||||
// .02 or something for a unabomber + 2 bombs
|
||||
// unabomber alone is free
|
||||
// bomb has a 20% failure rate, when burned bomb
|
||||
// "explodes" a pfp by updating the img to an explosion over the pfp
|
||||
// well if its random
|
||||
// just have them burn it and if it blows up a pfp thats already blown up
|
||||
// then bomb wasted
|
||||
// might be more fun if its random
|
||||
// rather than targetted
|
||||
// cause then theres a chance u blow up your own
|
||||
// if random, we just need to let them know which unaboomer the exploded
|
||||
// cause thats a lot of the fun, knowing u blew up a rare
|
||||
// etc.
|
||||
// i think this time, learning from tulips, we need to push urgency
|
||||
// 10days has none?
|
||||
// maybe 3 days or 5 days?
|
||||
// or just say fuck it and go promothean
|
||||
// ppl keep buying bombs etc.
|
||||
// 30K collection, free mint, .01 per bomb
|
||||
// random "blow-up"
|
||||
// last 100 unabombers
|
||||
// get 25% of the contract funds
|
||||
// that way we sell SHIT TONS of bombs
|
||||
// the lower the number gets the more likely a bomb hits a blown-up pfp
|
||||
// ie sell moar bombs
|
||||
// or last 1K unabombers
|
||||
// bombs sales halt after we hit 1k
|
||||
// i think the logic here mite be to use your dual IPFS baseURI contract
|
||||
// we can do onchain but simplest way would be 2 baseURIs, one of the unabombers non blown up
|
||||
// and one with blown up
|
||||
// i can even make a lvl of "rarity" to the explosions
|
||||
// lol
|
||||
// then burn envelop = update the base uri of a random tokenid
|
||||
// if token id already on blown up unabomber
|
||||
// bomb is a dud
|
||||
// then no need to code a dud, duds will get more likely
|
||||
// as more unabombers blown up
|
||||
// so if u hit a rando tokenid thats already blown up = dud, u dont tell the user it hit an already blown up one
|
||||
// ujust say BOMB WAS DUD
|
||||
// cause unabomber mamed more ppl than killed its kinda funny he even mailed duds
|
||||
// lul
|
||||
// he was pissed his boms werent killin ppl fuckin psycho lul
|
||||
|
||||
|
||||
contract Unaboomer {
|
||||
uint256 public number;
|
||||
|
||||
function setNumber(uint256 newNumber) public {
|
||||
number = newNumber;
|
||||
}
|
||||
|
||||
function increment() public {
|
||||
number++;
|
||||
}
|
||||
}
|
@ -0,0 +1,24 @@
|
||||
// SPDX-License-Identifier: UNLICENSED
|
||||
pragma solidity ^0.8.13;
|
||||
|
||||
import "forge-std/Test.sol";
|
||||
import "../src/Counter.sol";
|
||||
|
||||
contract CounterTest is Test {
|
||||
Counter public counter;
|
||||
|
||||
function setUp() public {
|
||||
counter = new Counter();
|
||||
counter.setNumber(0);
|
||||
}
|
||||
|
||||
function testIncrement() public {
|
||||
counter.increment();
|
||||
assertEq(counter.number(), 1);
|
||||
}
|
||||
|
||||
function testSetNumber(uint256 x) public {
|
||||
counter.setNumber(x);
|
||||
assertEq(counter.number(), x);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue