InnerI commited on
Commit
269cbde
·
verified ·
1 Parent(s): 22bfd5b

Upload 3 files

Browse files
contracts/RevenueSplitter.sol ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity ^0.8.20;
3
+
4
+ contract RevenueSplitter {
5
+ address public daoTreasury;
6
+ address public creator; // Your 10% wallet
7
+
8
+ constructor(address _dao, address _creator) {
9
+ daoTreasury = _dao;
10
+ creator = _creator;
11
+ }
12
+
13
+ receive() external payable {
14
+ uint256 share = msg.value / 10; // 10%
15
+ payable(creator).transfer(share);
16
+ payable(daoTreasury).transfer(msg.value - share);
17
+ }
18
+ }
contracts/Treasury.sol ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity ^0.8.20;
3
+
4
+ interface ITrigger { function triggerActivated() external view returns (bool); }
5
+ interface IERC20 { function transfer(address to, uint256 amount) external returns (bool); }
6
+
7
+ contract Treasury {
8
+ address public trigger;
9
+ address public usdc = 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913; // Base USDC
10
+
11
+ constructor(address _trigger) { trigger = _trigger; }
12
+
13
+ function executeSwap() external {
14
+ require(ITrigger(trigger).triggerActivated(), "No trigger");
15
+ uint256 bal = IERC20(usdc).balanceOf(address(this));
16
+ // Real: Swap USDC -> WBTC via 1inch (add router)
17
+ // IERC20(usdc).transfer(router, bal); // Mock
18
+ }
19
+
20
+ // Fund: Anyone sends USDC → gets votes (pro-rata)
21
+ function fund(uint256 amount) external {
22
+ IERC20(usdc).transferFrom(msg.sender, address(this), amount);
23
+ // Emit votes = amount / 1e6
24
+ }
25
+ }
contracts/Trigger.sol ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity ^0.8.20;
3
+
4
+ contract Trigger {
5
+ bool public triggerActivated = false;
6
+ address public creator;
7
+
8
+ event TriggerActivated();
9
+
10
+ constructor(address _creator) { creator = _creator; }
11
+
12
+ function activate() external { // Call from oracle
13
+ require(msg.sender == creator, "Only creator");
14
+ triggerActivated = true;
15
+ emit TriggerActivated();
16
+ }
17
+ }