// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;
import "@openzeppelin/contracts/access/Ownable.sol";
contract BulletConfig is Ownable {
address public bulletFeeReceiver;
address public mintManagerAddress;
address public swapManagerAddress;
address public feeConverterAddress;
event ManagerAddressesSet(address indexed mintManager, address indexed swapManager);
event FeeConverterSet(address indexed feeConverter);
event BulletFeeReceiverSet(address indexed receiver);
constructor(address _bulletFeeReceiver) {
require(_bulletFeeReceiver != address(0), "Invalid fee receiver.");
bulletFeeReceiver = _bulletFeeReceiver;
}
function setManagerAddresses(address _mintManagerAddress, address _swapManagerAddress) public onlyOwner {
require(
_mintManagerAddress != address(0) &&
_swapManagerAddress != address(0) &&
_mintManagerAddress.code.length > 0 &&
_swapManagerAddress.code.length > 0,
"Invalid manager address."
);
mintManagerAddress = _mintManagerAddress;
swapManagerAddress = _swapManagerAddress;
emit ManagerAddressesSet(_mintManagerAddress, _swapManagerAddress);
}
function setBulletFeeReceiver(address _bulletFeeReceiver) public onlyOwner {
require(_bulletFeeReceiver != address(0), "Invalid fee receiver.");
bulletFeeReceiver = _bulletFeeReceiver;
emit BulletFeeReceiverSet(_bulletFeeReceiver);
}
function setFeeConverterAddress(address _feeConverterAddress) public onlyOwner {
require(
_feeConverterAddress != address(0) &&
_feeConverterAddress.code.length > 0,
"Invalid fee converter."
);
feeConverterAddress = _feeConverterAddress;
emit FeeConverterSet(_feeConverterAddress);
}
}[
{
"type": "constructor",
"inputs": [
{
"name": "_bulletFeeReceiver",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "nonpayable"
},
{
"name": "BulletFeeReceiverSet",
"type": "event",
"inputs": [
{
"name": "receiver",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "FeeConverterSet",
"type": "event",
"inputs": [
{
"name": "feeConverter",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "ManagerAddressesSet",
"type": "event",
"inputs": [
{
"name": "mintManager",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "swapManager",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "OwnershipTransferred",
"type": "event",
"inputs": [
{
"name": "previousOwner",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "newOwner",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "bulletFeeReceiver",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "feeConverterAddress",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "mintManagerAddress",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "owner",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "renounceOwnership",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setBulletFeeReceiver",
"type": "function",
"inputs": [
{
"name": "_bulletFeeReceiver",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setFeeConverterAddress",
"type": "function",
"inputs": [
{
"name": "_feeConverterAddress",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setManagerAddresses",
"type": "function",
"inputs": [
{
"name": "_mintManagerAddress",
"type": "address",
"internalType": "address"
},
{
"name": "_swapManagerAddress",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "swapManagerAddress",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "transferOwnership",
"type": "function",
"inputs": [
{
"name": "newOwner",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
}
]0x608060405234801561001057600080fd5b5060405161070138038061070183398101604081905261002f91610107565b610038336100b7565b6001600160a01b0381166100925760405162461bcd60e51b815260206004820152601560248201527f496e76616c6964206665652072656365697665722e0000000000000000000000604482015260640160405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055610137565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561011957600080fd5b81516001600160a01b038116811461013057600080fd5b9392505050565b6105bb806101466000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c80638da5cb5b116100665780638da5cb5b14610115578063c808ce6a14610126578063cfdfb12914610139578063f161f54b1461014c578063f2fde38b1461015f57600080fd5b806303059f87146100a35780632b5f54b7146100d25780634b8be8aa146100e55780634f6f7eec146100fa578063715018a61461010d575b600080fd5b6004546100b6906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b6001546100b6906001600160a01b031681565b6100f86100f3366004610530565b610172565b005b6100f8610108366004610552565b61021f565b6100f861031d565b6000546001600160a01b03166100b6565b6003546100b6906001600160a01b031681565b6002546100b6906001600160a01b031681565b6100f861015a366004610530565b610331565b6100f861016d366004610530565b6103f1565b61017a61046a565b6001600160a01b0381166101d55760405162461bcd60e51b815260206004820152601560248201527f496e76616c6964206665652072656365697665722e000000000000000000000060448201526064015b60405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040517f2c81a4f2a2a7637ed08f656ca92a76e263c272d08bf94d85ac3854d750da66c090600090a250565b61022761046a565b6001600160a01b0382161580159061024757506001600160a01b03811615155b801561025d57506000826001600160a01b03163b115b801561027357506000816001600160a01b03163b115b6102bf5760405162461bcd60e51b815260206004820152601860248201527f496e76616c6964206d616e6167657220616464726573732e000000000000000060448201526064016101cc565b600280546001600160a01b03199081166001600160a01b03858116918217909355600380549092169284169283179091556040517ff059f5da427eec0e9d58d3fd5fcb18c5d1167d4d870f9c743a5cf2352a2cfca990600090a35050565b61032561046a565b61032f60006104c4565b565b61033961046a565b6001600160a01b0381161580159061035b57506000816001600160a01b03163b115b6103a75760405162461bcd60e51b815260206004820152601660248201527f496e76616c69642066656520636f6e7665727465722e0000000000000000000060448201526064016101cc565b600480546001600160a01b0319166001600160a01b0383169081179091556040517faacdcc03be3e3551764842aa3c0acc3d5bd9ac6e134cfb1736f64c6c0a5c2f8a90600090a250565b6103f961046a565b6001600160a01b03811661045e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016101cc565b610467816104c4565b50565b6000546001600160a01b0316331461032f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016101cc565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b038116811461052b57600080fd5b919050565b60006020828403121561054257600080fd5b61054b82610514565b9392505050565b6000806040838503121561056557600080fd5b61056e83610514565b915061057c60208401610514565b9050925092905056fea264697066735822122030a012f9a60f469026bf9f035222143fab4a662e283968e9dd47ef8317af8d2864736f6c63430008110033000000000000000000000000f1c08acddae00c36cff07d29be82c8a43f7bcee5
0x608060405234801561001057600080fd5b506004361061009e5760003560e01c80638da5cb5b116100665780638da5cb5b14610115578063c808ce6a14610126578063cfdfb12914610139578063f161f54b1461014c578063f2fde38b1461015f57600080fd5b806303059f87146100a35780632b5f54b7146100d25780634b8be8aa146100e55780634f6f7eec146100fa578063715018a61461010d575b600080fd5b6004546100b6906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b6001546100b6906001600160a01b031681565b6100f86100f3366004610530565b610172565b005b6100f8610108366004610552565b61021f565b6100f861031d565b6000546001600160a01b03166100b6565b6003546100b6906001600160a01b031681565b6002546100b6906001600160a01b031681565b6100f861015a366004610530565b610331565b6100f861016d366004610530565b6103f1565b61017a61046a565b6001600160a01b0381166101d55760405162461bcd60e51b815260206004820152601560248201527f496e76616c6964206665652072656365697665722e000000000000000000000060448201526064015b60405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040517f2c81a4f2a2a7637ed08f656ca92a76e263c272d08bf94d85ac3854d750da66c090600090a250565b61022761046a565b6001600160a01b0382161580159061024757506001600160a01b03811615155b801561025d57506000826001600160a01b03163b115b801561027357506000816001600160a01b03163b115b6102bf5760405162461bcd60e51b815260206004820152601860248201527f496e76616c6964206d616e6167657220616464726573732e000000000000000060448201526064016101cc565b600280546001600160a01b03199081166001600160a01b03858116918217909355600380549092169284169283179091556040517ff059f5da427eec0e9d58d3fd5fcb18c5d1167d4d870f9c743a5cf2352a2cfca990600090a35050565b61032561046a565b61032f60006104c4565b565b61033961046a565b6001600160a01b0381161580159061035b57506000816001600160a01b03163b115b6103a75760405162461bcd60e51b815260206004820152601660248201527f496e76616c69642066656520636f6e7665727465722e0000000000000000000060448201526064016101cc565b600480546001600160a01b0319166001600160a01b0383169081179091556040517faacdcc03be3e3551764842aa3c0acc3d5bd9ac6e134cfb1736f64c6c0a5c2f8a90600090a250565b6103f961046a565b6001600160a01b03811661045e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016101cc565b610467816104c4565b50565b6000546001600160a01b0316331461032f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016101cc565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b038116811461052b57600080fd5b919050565b60006020828403121561054257600080fd5b61054b82610514565b9392505050565b6000806040838503121561056557600080fd5b61056e83610514565b915061057c60208401610514565b9050925092905056fea264697066735822122030a012f9a60f469026bf9f035222143fab4a662e283968e9dd47ef8317af8d2864736f6c63430008110033
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| no token holdings | ||||
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x719314…6a0b17 | setManagerAddresses | 14,091,215 | 28 days agoSun, 19 Jul 2026 19:27:35 UTC | 0xf1c0…cee5 | IN | BulletConfig | $0.000 ETH | 0.00000235 | |
| 0x645ba1…acfdd0 | setManagerAddresses | 13,973,024 | 28 days agoSun, 19 Jul 2026 16:09:56 UTC | 0xf1c0…cee5 | IN | BulletConfig | $0.000 ETH | 0.00000230 | |
| 0x0222be…069c5e | setManagerAddresses | 12,430,426 | 29 days agoFri, 17 Jul 2026 21:08:26 UTC | 0xf1c0…cee5 | IN | BulletConfig | $0.000 ETH | 0.00000309 | |
| 0x9aa3fc…712869 | setManagerAddresses | 12,353,748 | 30 days agoFri, 17 Jul 2026 19:00:19 UTC | 0xf1c0…cee5 | IN | BulletConfig | $0.000 ETH | 0.00000316 | |
| 0xdd4de8…67f3c3 | setFeeConverterAddress | 11,579,734 | 30 days agoThu, 16 Jul 2026 21:26:26 UTC | 0xf1c0…cee5 | IN | BulletConfig | $0.000 ETH | 0.00000396 | |
| 0x736288…eed7e5 | setManagerAddresses | 11,579,719 | 30 days agoThu, 16 Jul 2026 21:26:24 UTC | 0xf1c0…cee5 | IN | BulletConfig | $0.000 ETH | 0.00000580 |
| Transaction Hash | Method | Block | Age | From | To | Amount | Token | ||
|---|---|---|---|---|---|---|---|---|---|
| no token transfers for this address yet | |||||||||
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| no internal transactions found for this address yet (traced blocks + on-demand) | ||||||||
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0x719314…6a0b17 | 28 days agoSun, 19 Jul 2026 19:27:35 UTC | 0xf059f5…fca9 | [0] 0x000000000000…f25193d2 [1] 0x000000000000…22bc7271 |
| 0x645ba1…acfdd0 | 28 days agoSun, 19 Jul 2026 16:09:56 UTC | 0xf059f5…fca9 | [0] 0x000000000000…6c7ce256 [1] 0x000000000000…8981c9dc |
| 0x0222be…069c5e | 29 days agoFri, 17 Jul 2026 21:08:26 UTC | 0xf059f5…fca9 | [0] 0x000000000000…8f56ed52 [1] 0x000000000000…797001dc |
| 0x9aa3fc…712869 | 30 days agoFri, 17 Jul 2026 19:00:19 UTC | 0xf059f5…fca9 | [0] 0x000000000000…67d2a098 [1] 0x000000000000…66912240 |
| 0xdd4de8…67f3c3 | 30 days agoThu, 16 Jul 2026 21:26:26 UTC | 0xaacdcc…2f8a | [0] 0x000000000000…ae3e870c |
| 0x736288…eed7e5 | 30 days agoThu, 16 Jul 2026 21:26:24 UTC | 0xf059f5…fca9 | [0] 0x000000000000…6c7ce256 [1] 0x000000000000…8981c9dc |
| 0xdc97eb…6d4799 | 30 days agoThu, 16 Jul 2026 21:24:11 UTC | 0x8be007…57e0 | [0] 0x000000000000…00000000 [1] 0x000000000000…3f7bcee5 |
| Type | Age | Block | Details |
|---|---|---|---|
| no cross-chain L1↔L2 transactions for this address | |||
| Transaction Hash | Method | Block | Age | From | To | Type | Item | ||
|---|---|---|---|---|---|---|---|---|---|
| no NFT transfers for this address yet | |||||||||