Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
Helper
Compiler Version
v0.8.29+commit.ab55807c
Optimization Enabled:
No with 200 runs
Other Settings:
cancun EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.24;
interface IAuction {
function getReserves() external view returns (uint dolaReserve, uint dbrReserve);
function buyDbr(uint exactDolaIn, uint exactDbrOut, address to) external;
}
interface IERC20 {
function approve(address,uint) external returns (bool);
function transferFrom(address,address,uint) external returns (bool);
}
contract Helper {
IAuction public immutable auction;
IERC20 public immutable dola;
constructor(
address _auction,
address _dola
) {
auction = IAuction(_auction);
dola = IERC20(_dola);
dola.approve(_auction, type(uint).max);
}
function getDbrOut(uint dolaIn) public view returns (uint dbrOut) {
require(dolaIn > 0, "dolaIn must be positive");
(uint dolaReserve, uint dbrReserve) = auction.getReserves();
uint numerator = dolaIn * dbrReserve;
uint denominator = dolaReserve + dolaIn;
dbrOut = numerator / denominator;
}
function getDolaIn(uint dbrOut) public view returns (uint dolaIn) {
require(dbrOut > 0, "dbrOut must be positive");
(uint dolaReserve, uint dbrReserve) = auction.getReserves();
uint numerator = dbrOut * dolaReserve;
uint denominator = dbrReserve - dbrOut;
dolaIn = (numerator / denominator) + 1;
}
function swapExactDolaForDbr(uint dolaIn, uint dbrOutMin) external returns (uint dbrOut) {
dbrOut = getDbrOut(dolaIn);
require(dbrOut >= dbrOutMin, "dbrOut must be greater than dbrOutMin");
dola.transferFrom(msg.sender, address(this), dolaIn);
auction.buyDbr(dolaIn, dbrOut, msg.sender);
}
function swapDolaForExactDbr(uint dbrOut, uint dolaInMax) external returns (uint dolaIn) {
dolaIn = getDolaIn(dbrOut);
require(dolaIn <= dolaInMax, "dolaIn must be less than dolaInMax");
dola.transferFrom(msg.sender, address(this), dolaIn);
auction.buyDbr(dolaIn, dbrOut, msg.sender);
}
}{
"remappings": [
"ds-test/=lib/solmate/lib/ds-test/src/",
"forge-std/=lib/forge-std/src/",
"solmate/=lib/solmate/src/"
],
"optimizer": {
"enabled": false,
"runs": 200
},
"metadata": {
"useLiteralContent": false,
"bytecodeHash": "ipfs",
"appendCBOR": true
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"evmVersion": "cancun",
"viaIR": false
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_auction","type":"address"},{"internalType":"address","name":"_dola","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"auction","outputs":[{"internalType":"contract IAuction","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dola","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"dolaIn","type":"uint256"}],"name":"getDbrOut","outputs":[{"internalType":"uint256","name":"dbrOut","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"dbrOut","type":"uint256"}],"name":"getDolaIn","outputs":[{"internalType":"uint256","name":"dolaIn","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"dbrOut","type":"uint256"},{"internalType":"uint256","name":"dolaInMax","type":"uint256"}],"name":"swapDolaForExactDbr","outputs":[{"internalType":"uint256","name":"dolaIn","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"dolaIn","type":"uint256"},{"internalType":"uint256","name":"dbrOutMin","type":"uint256"}],"name":"swapExactDolaForDbr","outputs":[{"internalType":"uint256","name":"dbrOut","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
60c060405234801561000f575f5ffd5b50604051610fc8380380610fc88339818101604052810190610031919061019c565b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff168152505060a05173ffffffffffffffffffffffffffffffffffffffff1663095ea7b3837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016100f6929190610201565b6020604051808303815f875af1158015610112573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610136919061025d565b505050610288565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61016b82610142565b9050919050565b61017b81610161565b8114610185575f5ffd5b50565b5f8151905061019681610172565b92915050565b5f5f604083850312156101b2576101b161013e565b5b5f6101bf85828601610188565b92505060206101d085828601610188565b9150509250929050565b6101e381610161565b82525050565b5f819050919050565b6101fb816101e9565b82525050565b5f6040820190506102145f8301856101da565b61022160208301846101f2565b9392505050565b5f8115159050919050565b61023c81610228565b8114610246575f5ffd5b50565b5f8151905061025781610233565b92915050565b5f602082840312156102725761027161013e565b5b5f61027f84828501610249565b91505092915050565b60805160a051610cf56102d35f395f81816101d501528181610419015261059601525f818161016201528181610273015281816103480152818161048201526106340152610cf55ff3fe608060405234801561000f575f5ffd5b5060043610610060575f3560e01c80637d9f6db514610064578063a1d33b4a14610082578063d18bdaad146100b2578063ea0593e4146100e2578063f002a44814610100578063f2f5b5f714610130575b5f5ffd5b61006c610160565b604051610079919061073c565b60405180910390f35b61009c6004803603810190610097919061078c565b610184565b6040516100a991906107d9565b60405180910390f35b6100cc60048036038101906100c791906107f2565b610301565b6040516100d991906107d9565b60405180910390f35b6100ea610417565b6040516100f7919061083d565b60405180910390f35b61011a600480360381019061011591906107f2565b61043b565b60405161012791906107d9565b60405180910390f35b61014a6004803603810190610145919061078c565b610545565b60405161015791906107d9565b60405180910390f35b7f000000000000000000000000000000000000000000000000000000000000000081565b5f61018e83610301565b9050818111156101d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101ca906108d6565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b815260040161023093929190610914565b6020604051808303815f875af115801561024c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610270919061097e565b507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16633510a8908285336040518463ffffffff1660e01b81526004016102ce939291906109a9565b5f604051808303815f87803b1580156102e5575f5ffd5b505af11580156102f7573d5f5f3e3d5ffd5b5050505092915050565b5f5f8211610344576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161033b90610a28565b60405180910390fd5b5f5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b81526004016040805180830381865afa1580156103ae573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103d29190610a5a565b915091505f82856103e39190610ac5565b90505f85836103f29190610b06565b9050600181836104029190610b66565b61040c9190610b96565b945050505050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f5f821161047e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047590610c13565b60405180910390fd5b5f5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b81526004016040805180830381865afa1580156104e8573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061050c9190610a5a565b915091505f818561051d9190610ac5565b90505f858461052c9190610b96565b9050808261053a9190610b66565b945050505050919050565b5f61054f8361043b565b905081811015610594576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058b90610ca1565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166323b872dd3330866040518463ffffffff1660e01b81526004016105f193929190610914565b6020604051808303815f875af115801561060d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610631919061097e565b507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16633510a8908483336040518463ffffffff1660e01b815260040161068f939291906109a9565b5f604051808303815f87803b1580156106a6575f5ffd5b505af11580156106b8573d5f5f3e3d5ffd5b5050505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f6107046106ff6106fa846106c2565b6106e1565b6106c2565b9050919050565b5f610715826106ea565b9050919050565b5f6107268261070b565b9050919050565b6107368161071c565b82525050565b5f60208201905061074f5f83018461072d565b92915050565b5f5ffd5b5f819050919050565b61076b81610759565b8114610775575f5ffd5b50565b5f8135905061078681610762565b92915050565b5f5f604083850312156107a2576107a1610755565b5b5f6107af85828601610778565b92505060206107c085828601610778565b9150509250929050565b6107d381610759565b82525050565b5f6020820190506107ec5f8301846107ca565b92915050565b5f6020828403121561080757610806610755565b5b5f61081484828501610778565b91505092915050565b5f6108278261070b565b9050919050565b6108378161081d565b82525050565b5f6020820190506108505f83018461082e565b92915050565b5f82825260208201905092915050565b7f646f6c61496e206d757374206265206c657373207468616e20646f6c61496e4d5f8201527f6178000000000000000000000000000000000000000000000000000000000000602082015250565b5f6108c0602283610856565b91506108cb82610866565b604082019050919050565b5f6020820190508181035f8301526108ed816108b4565b9050919050565b5f6108fe826106c2565b9050919050565b61090e816108f4565b82525050565b5f6060820190506109275f830186610905565b6109346020830185610905565b61094160408301846107ca565b949350505050565b5f8115159050919050565b61095d81610949565b8114610967575f5ffd5b50565b5f8151905061097881610954565b92915050565b5f6020828403121561099357610992610755565b5b5f6109a08482850161096a565b91505092915050565b5f6060820190506109bc5f8301866107ca565b6109c960208301856107ca565b6109d66040830184610905565b949350505050565b7f6462724f7574206d75737420626520706f7369746976650000000000000000005f82015250565b5f610a12601783610856565b9150610a1d826109de565b602082019050919050565b5f6020820190508181035f830152610a3f81610a06565b9050919050565b5f81519050610a5481610762565b92915050565b5f5f60408385031215610a7057610a6f610755565b5b5f610a7d85828601610a46565b9250506020610a8e85828601610a46565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610acf82610759565b9150610ada83610759565b9250828202610ae881610759565b91508282048414831517610aff57610afe610a98565b5b5092915050565b5f610b1082610759565b9150610b1b83610759565b9250828203905081811115610b3357610b32610a98565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610b7082610759565b9150610b7b83610759565b925082610b8b57610b8a610b39565b5b828204905092915050565b5f610ba082610759565b9150610bab83610759565b9250828201905080821115610bc357610bc2610a98565b5b92915050565b7f646f6c61496e206d75737420626520706f7369746976650000000000000000005f82015250565b5f610bfd601783610856565b9150610c0882610bc9565b602082019050919050565b5f6020820190508181035f830152610c2a81610bf1565b9050919050565b7f6462724f7574206d7573742062652067726561746572207468616e206462724f5f8201527f75744d696e000000000000000000000000000000000000000000000000000000602082015250565b5f610c8b602583610856565b9150610c9682610c31565b604082019050919050565b5f6020820190508181035f830152610cb881610c7f565b905091905056fea26469706673582212203b6d7f2822ceb5319576ad70aeb09d31e57a6d0d833d04d6060253cc3291a45764736f6c634300081d00330000000000000000000000005bacafbe2788b0ec837eb95f05938daf49224f54000000000000000000000000b45ad160634c528cc3d2926d9807104fa3157305
Deployed Bytecode
0x608060405234801561000f575f5ffd5b5060043610610060575f3560e01c80637d9f6db514610064578063a1d33b4a14610082578063d18bdaad146100b2578063ea0593e4146100e2578063f002a44814610100578063f2f5b5f714610130575b5f5ffd5b61006c610160565b604051610079919061073c565b60405180910390f35b61009c6004803603810190610097919061078c565b610184565b6040516100a991906107d9565b60405180910390f35b6100cc60048036038101906100c791906107f2565b610301565b6040516100d991906107d9565b60405180910390f35b6100ea610417565b6040516100f7919061083d565b60405180910390f35b61011a600480360381019061011591906107f2565b61043b565b60405161012791906107d9565b60405180910390f35b61014a6004803603810190610145919061078c565b610545565b60405161015791906107d9565b60405180910390f35b7f0000000000000000000000005bacafbe2788b0ec837eb95f05938daf49224f5481565b5f61018e83610301565b9050818111156101d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101ca906108d6565b60405180910390fd5b7f000000000000000000000000b45ad160634c528cc3d2926d9807104fa315730573ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b815260040161023093929190610914565b6020604051808303815f875af115801561024c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610270919061097e565b507f0000000000000000000000005bacafbe2788b0ec837eb95f05938daf49224f5473ffffffffffffffffffffffffffffffffffffffff16633510a8908285336040518463ffffffff1660e01b81526004016102ce939291906109a9565b5f604051808303815f87803b1580156102e5575f5ffd5b505af11580156102f7573d5f5f3e3d5ffd5b5050505092915050565b5f5f8211610344576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161033b90610a28565b60405180910390fd5b5f5f7f0000000000000000000000005bacafbe2788b0ec837eb95f05938daf49224f5473ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b81526004016040805180830381865afa1580156103ae573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103d29190610a5a565b915091505f82856103e39190610ac5565b90505f85836103f29190610b06565b9050600181836104029190610b66565b61040c9190610b96565b945050505050919050565b7f000000000000000000000000b45ad160634c528cc3d2926d9807104fa315730581565b5f5f821161047e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047590610c13565b60405180910390fd5b5f5f7f0000000000000000000000005bacafbe2788b0ec837eb95f05938daf49224f5473ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b81526004016040805180830381865afa1580156104e8573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061050c9190610a5a565b915091505f818561051d9190610ac5565b90505f858461052c9190610b96565b9050808261053a9190610b66565b945050505050919050565b5f61054f8361043b565b905081811015610594576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058b90610ca1565b60405180910390fd5b7f000000000000000000000000b45ad160634c528cc3d2926d9807104fa315730573ffffffffffffffffffffffffffffffffffffffff166323b872dd3330866040518463ffffffff1660e01b81526004016105f193929190610914565b6020604051808303815f875af115801561060d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610631919061097e565b507f0000000000000000000000005bacafbe2788b0ec837eb95f05938daf49224f5473ffffffffffffffffffffffffffffffffffffffff16633510a8908483336040518463ffffffff1660e01b815260040161068f939291906109a9565b5f604051808303815f87803b1580156106a6575f5ffd5b505af11580156106b8573d5f5f3e3d5ffd5b5050505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f6107046106ff6106fa846106c2565b6106e1565b6106c2565b9050919050565b5f610715826106ea565b9050919050565b5f6107268261070b565b9050919050565b6107368161071c565b82525050565b5f60208201905061074f5f83018461072d565b92915050565b5f5ffd5b5f819050919050565b61076b81610759565b8114610775575f5ffd5b50565b5f8135905061078681610762565b92915050565b5f5f604083850312156107a2576107a1610755565b5b5f6107af85828601610778565b92505060206107c085828601610778565b9150509250929050565b6107d381610759565b82525050565b5f6020820190506107ec5f8301846107ca565b92915050565b5f6020828403121561080757610806610755565b5b5f61081484828501610778565b91505092915050565b5f6108278261070b565b9050919050565b6108378161081d565b82525050565b5f6020820190506108505f83018461082e565b92915050565b5f82825260208201905092915050565b7f646f6c61496e206d757374206265206c657373207468616e20646f6c61496e4d5f8201527f6178000000000000000000000000000000000000000000000000000000000000602082015250565b5f6108c0602283610856565b91506108cb82610866565b604082019050919050565b5f6020820190508181035f8301526108ed816108b4565b9050919050565b5f6108fe826106c2565b9050919050565b61090e816108f4565b82525050565b5f6060820190506109275f830186610905565b6109346020830185610905565b61094160408301846107ca565b949350505050565b5f8115159050919050565b61095d81610949565b8114610967575f5ffd5b50565b5f8151905061097881610954565b92915050565b5f6020828403121561099357610992610755565b5b5f6109a08482850161096a565b91505092915050565b5f6060820190506109bc5f8301866107ca565b6109c960208301856107ca565b6109d66040830184610905565b949350505050565b7f6462724f7574206d75737420626520706f7369746976650000000000000000005f82015250565b5f610a12601783610856565b9150610a1d826109de565b602082019050919050565b5f6020820190508181035f830152610a3f81610a06565b9050919050565b5f81519050610a5481610762565b92915050565b5f5f60408385031215610a7057610a6f610755565b5b5f610a7d85828601610a46565b9250506020610a8e85828601610a46565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610acf82610759565b9150610ada83610759565b9250828202610ae881610759565b91508282048414831517610aff57610afe610a98565b5b5092915050565b5f610b1082610759565b9150610b1b83610759565b9250828203905081811115610b3357610b32610a98565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610b7082610759565b9150610b7b83610759565b925082610b8b57610b8a610b39565b5b828204905092915050565b5f610ba082610759565b9150610bab83610759565b9250828201905080821115610bc357610bc2610a98565b5b92915050565b7f646f6c61496e206d75737420626520706f7369746976650000000000000000005f82015250565b5f610bfd601783610856565b9150610c0882610bc9565b602082019050919050565b5f6020820190508181035f830152610c2a81610bf1565b9050919050565b7f6462724f7574206d7573742062652067726561746572207468616e206462724f5f8201527f75744d696e000000000000000000000000000000000000000000000000000000602082015250565b5f610c8b602583610856565b9150610c9682610c31565b604082019050919050565b5f6020820190508181035f830152610cb881610c7f565b905091905056fea26469706673582212203b6d7f2822ceb5319576ad70aeb09d31e57a6d0d833d04d6060253cc3291a45764736f6c634300081d0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000005bacafbe2788b0ec837eb95f05938daf49224f54000000000000000000000000b45ad160634c528cc3d2926d9807104fa3157305
-----Decoded View---------------
Arg [0] : _auction (address): 0x5BaCAfBe2788b0EC837eB95f05938DAf49224f54
Arg [1] : _dola (address): 0xb45ad160634c528Cc3D2926d9807104FA3157305
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000005bacafbe2788b0ec837eb95f05938daf49224f54
Arg [1] : 000000000000000000000000b45ad160634c528cc3d2926d9807104fa3157305
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.