// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
import {CollectionToken} from "../market/CollectionToken.sol";
import {TokenEscrowReserve} from "../market/TokenEscrowReserve.sol";
import {NFTAMMVault} from "../vaults/NFTAMMVault.sol";
import {ERC1155AMMVault} from "../vaults/ERC1155AMMVault.sol";
import {NFTStakingVault} from "../vaults/NFTStakingVault.sol";
import {LoanVault} from "../vaults/LoanVault.sol";
import {MarketGovernor} from "../governance/MarketGovernor.sol";
contract CollectionTokenDeployer {
function deploy(string calldata name, string calldata symbol, uint256 totalSupply, address initialHolder)
external
returns (address)
{
return address(new CollectionToken(name, symbol, totalSupply, initialHolder));
}
}
contract TokenEscrowDeployer {
function deploy(address token, uint256 ammCap, uint256 loanCap, uint256 rewardCap, address admin)
external
returns (address)
{
return address(new TokenEscrowReserve(token, ammCap, loanCap, rewardCap, admin));
}
}
contract NFTStakingVaultDeployer {
function deploy(address token, address collection, uint256 cooldownPeriod, address admin) external returns (address) {
return address(new NFTStakingVault(token, collection, cooldownPeriod, admin));
}
}
contract NFTAMMVaultDeployer {
function deploy(
address token,
address collection,
address escrow,
address treasury,
address burnWallet,
address stakingVault,
uint256 tokensPerNFT,
uint16 randomFeeBps,
uint16 specificFeeBps
) external returns (address) {
NFTAMMVault vault = new NFTAMMVault(
token,
collection,
escrow,
treasury,
burnWallet,
stakingVault,
tokensPerNFT,
randomFeeBps,
specificFeeBps
);
vault.grantRole(vault.DEFAULT_ADMIN_ROLE(), msg.sender);
vault.grantRole(vault.PAUSER_ROLE(), msg.sender);
vault.renounceRole(vault.DEFAULT_ADMIN_ROLE(), address(this));
return address(vault);
}
}
contract LoanVaultDeployer {
function deploy(
address token,
address collection,
address escrow,
address ammVault,
address stakingVault,
uint256 tokensPerNFT,
uint16 borrowAPYBps,
uint64 minDuration,
uint64 maxDuration,
uint64 gracePeriod,
uint16 liquidationIncentiveBps,
uint8 maxActiveLoansPerWallet,
address admin
) external returns (address) {
return address(
new LoanVault(
token,
collection,
escrow,
ammVault,
stakingVault,
tokensPerNFT,
borrowAPYBps,
minDuration,
maxDuration,
gracePeriod,
liquidationIncentiveBps,
maxActiveLoansPerWallet,
admin
)
);
}
}
contract ERC1155AMMVaultDeployer {
function deploy(
address token,
address collection,
address escrow,
address treasury,
address stakingVault,
uint256 tokensPerNFT,
uint16 randomFeeBps,
uint16 specificFeeBps
) external returns (address) {
ERC1155AMMVault vault = new ERC1155AMMVault(
token,
collection,
escrow,
treasury,
stakingVault,
tokensPerNFT,
randomFeeBps,
specificFeeBps
);
vault.grantRole(vault.DEFAULT_ADMIN_ROLE(), msg.sender);
vault.grantRole(vault.PAUSER_ROLE(), msg.sender);
vault.renounceRole(vault.DEFAULT_ADMIN_ROLE(), address(this));
return address(vault);
}
}
contract MarketGovernorDeployer {
function deploy(address token, address governedContract, address treasury, uint256 proposalFee, address admin)
external
returns (address)
{
return address(new MarketGovernor(token, governedContract, treasury, proposalFee, admin));
}
}[
{
"name": "deploy",
"type": "function",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
},
{
"name": "collection",
"type": "address",
"internalType": "address"
},
{
"name": "escrow",
"type": "address",
"internalType": "address"
},
{
"name": "treasury",
"type": "address",
"internalType": "address"
},
{
"name": "burnWallet",
"type": "address",
"internalType": "address"
},
{
"name": "stakingVault",
"type": "address",
"internalType": "address"
},
{
"name": "tokensPerNFT",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "randomFeeBps",
"type": "uint16",
"internalType": "uint16"
},
{
"name": "specificFeeBps",
"type": "uint16",
"internalType": "uint16"
}
],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "nonpayable"
}
]0x60808060405234601557612b2a908161001a8239f35b5f80fdfe6080806040526004361015610012575f80fd5b5f905f3560e01c63778b4d6214610027575f80fd5b346102b7576101203660031901126102b7576004356001600160a01b038116908190036102b7576024356001600160a01b038116908190036102b7576044356001600160a01b03811691908290036102b7576064356001600160a01b038116908190036102b7576084356001600160a01b038116908190036102b75760a4356001600160a01b038116908190036102b75760e4359161ffff83168093036102b757610104359361ffff85168095036102b75761275496878a01968a881067ffffffffffffffff89111761036a57610120998b996103a18b398852602088015260408701526060860152608085015260a084015260c43560c084015260e08301526101008201520301905ff0801561032d5760405163a217fddf60e01b81526001600160a01b039190911690602081600481855afa90811561032d575f91610338575b50813b156102b757604051632f2ff15d60e01b815260048101919091523360248201525f8160448183865af1801561032d57610318575b5060405163e63ab1e960e01b81528290602081600481865afa9081156102d85782916102e3575b50823b1561027b57604051632f2ff15d60e01b81526004810191909152336024820152818160448183875af180156102d8576102c3575b505060405163a217fddf60e01b8152602081600481855afa90811561027f57839161028d575b5082823b1561028a57604051631b2b455f60e11b815260048101929092523060248301528160448183865af1801561027f57610266575b602082604051908152f35b61027183809261037e565b61027b578161025b565b5080fd5b6040513d85823e3d90fd5b80fd5b90506020813d6020116102bb575b816102a86020938361037e565b810103126102b757515f610224565b5f80fd5b3d915061029b565b816102cd9161037e565b61027b57815f6101fe565b6040513d84823e3d90fd5b9150506020813d602011610310575b816102ff6020938361037e565b810103126102b7578290515f6101c7565b3d91506102f2565b6103259192505f9061037e565b5f905f6101a0565b6040513d5f823e3d90fd5b90506020813d602011610362575b816103536020938361037e565b810103126102b757515f610169565b3d9150610346565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff82111761036a5760405256fe6101a03461031557601f61275438819003918201601f19168301916001600160401b038311848410176103195780849261012094604052833981010312610315576100498161032d565b906100566020820161032d565b6100626040830161032d565b61006e6060840161032d565b61007a6080850161032d565b9061008760a0860161032d565b9260c0860151946100a76101006100a060e08a01610341565b9801610341565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055976001600160a01b03169687158015610304575b80156102f3575b80156102e2575b80156102d1575b6102905761ffff16966105dc88116102c25761ffff89166105dc81116102b35788116102b3576080526001600160a01b0390811660a0521660c05260e052466121050361029f576001600160a01b0381161561029057600a61016052602861018052610100525b610120526101405263ffff00006002549260101b169163ffffffff1916171760025561018633610350565b50610190336103c6565b5060405161229a908161045a823960805181818161025901528181610359015281816109bd01528181610f81015281816119b801528181611dcc01528181611e1701528181611e690152611ebb015260a051818181610398015281816108a301528181610ba801528181610fbb01526113f5015260c0518181816105110152818161092b0152611986015260e051818181610c9101528181611df60152611e4801526101005181818161129f0152611dab01526101205181818161116a0152611e95015261014051818181610d180152818161189701528181611c9f015261211d015261016051816102a60152610180518181816110d60152611d590152f35b63d92e233d60e01b5f5260045ffd5b6032610160525f610180526101005261015b565b63de15b9d760e01b5f5260045ffd5b63d4cdb40560e01b5f5260045ffd5b506001600160a01b038616156100f4565b506001600160a01b038416156100ed565b506001600160a01b038316156100e6565b506001600160a01b038216156100df565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820361031557565b519061ffff8216820361031557565b6001600160a01b0381165f9081525f80516020612714833981519152602052604090205460ff166103c1576001600160a01b03165f8181525f8051602061271483398151915260205260408120805460ff191660011790553391905f805160206126f48339815191528180a4600190565b505f90565b6001600160a01b0381165f9081525f80516020612734833981519152602052604090205460ff166103c1576001600160a01b03165f8181525f8051602061273483398151915260205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a905f805160206126f48339815191529080a460019056fe6080806040526004361015610012575f80fd5b5f905f3560e01c90816301ffc9a7146112f25750806304bfe0e4146112ce578063062287491461128a57806314ab78d01461126d578063150b7a02146111df5780631d4f1045146111c4578063248a9ca31461119957806324e7964a146111555780632768cf221461113a5780632f2ff15d146110fa57806333945c66146110bc5780633559952b14610f3057806336568abe14610eeb5780633f4ba83a14610e545780634272ee1814610e2557806349db9b1314610d8d5780634fef2dcf14610ce25780635854863614610d3b5780635afcc2f514610d005780635b98c83d14610ce25780635c975abb14610cc057806361d027b314610c7b5780636a068acd14610c5f578063722a094114610c1c57806377accfcb14610bd75780637de1e53614610b9257806380fa02f714610b755780638456cb5914610aac5780638702cab614610a8a5780638b913b4914610a6c57806391a48a1e1461087e57806391d148541461083457806391e8b63f146108055780639ef833d4146106d25780639f7b2f0b146106b3578063a217fddf14610697578063aef6b09914610668578063b3da098a1461062d578063b78fcec11461060f578063ccc57490146105d4578063d062b2ea146105a5578063d547741f1461055d578063d55be8c614610540578063e2fdcc17146104fb578063e63ab1e9146104c0578063e690ea6e1461049d578063e7a8304a14610310578063f3ca5d4d146102ca578063f41d0d4f1461028b5763fc0c546a14610244575f80fd5b346102885780600319360112610288576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b80fd5b5034610288578060031936011261028857602060405161ffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b503461028857806003193601126102885760c06102e561211b565b91906008549160065493604051958652602086015260408501526060840152608083015260a0820152f35b506020366003190112610288576103256115be565b61032d6115f6565b6103356116ae565b6008541561048e5761034561211b565b929190600435831161047f5761037d8330337f00000000000000000000000000000000000000000000000000000000000000006118f2565b610388818386611984565b6006549361039585611a37565b857f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561047b57604051632142170760e11b8152306004820152336024820152604481018890529082908290606490829084905af1801561047057610457575b50506040519384526020840152604083015260608201528260808201527fb5efbeab556b17cacd1e111b6dee840d9d3bfeabc055edb46ce2b991b8c5867360a03392a360015f805160206122458339815191525580f35b8161046191611371565b61046c57855f610400565b8580fd5b6040513d84823e3d90fd5b5080fd5b638199f5f360e01b8552600485fd5b63c5144d6560e01b8152600490fd5b503461028857806003193601126102885760206104b86114e0565b604051908152f35b503461028857806003193601126102885760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b50346102885780600319360112610288576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b503461028857806003193601126102885760206040516105dc8152f35b5034610288576040366003190112610288576105a160043561057d61135b565b9061059c610597825f526001602052600160405f20015490565b6114f8565b611b59565b5080f35b5034610288578060031936011261028857602060405173038a7f4e4e89448ad74e044337c9ac25c11e726b8152f35b503461028857806003193601126102885760206040517f7935bd0ae54bc31f548c14dba4d37c5c64b3f8ca900cb468fb8abd54d5894f558152f35b50346102885780600319360112610288576020600654604051908152f35b503461028857806003193601126102885760206040517f87c306c89c065519d253b8920dd3ee1da03dd54df2b529e2429a9d59a22423b18152f35b50346102885780600319360112610288576020604051736091e64eb7138eef066a80fd3a0d7427b91f27218152f35b5034610288578060031936011261028857602090604051908152f35b50346102885780600319360112610288576020604051630bebc2008152f35b50346102885760403660031901126102885760043561ffff811680910361047b5760243561ffff811690818103610801577f7935bd0ae54bc31f548c14dba4d37c5c64b3f8ca900cb468fb8abd54d5894f558452600160209081526040808620335f908152925290205460ff16156107ca576105dc83116107bb576105dc82116107ac578282106107ac578263ffff00006002549260101b169163ffffffff1916171760025560405191825260208201527ff44d9b22cdd87e55b71b9245548303c18d17a3c912a4e0b135ea1330351a1fc160403092a280f35b63de15b9d760e01b8452600484fd5b63d4cdb40560e01b8452600484fd5b63e2517d3f60e01b8452336004527f7935bd0ae54bc31f548c14dba4d37c5c64b3f8ca900cb468fb8abd54d5894f55602452604484fd5b8380fd5b5034610288578060031936011261028857602060405173b668382cf44038a3e8140e789060f6a809787cda8152f35b503461028857604036600319011261028857604061085061135b565b9160043581526001602052209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b50610888366113c3565b6108906115be565b6108986115f6565b6108a06116ae565b827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561047b57604051632142170760e11b8152336004820152306024820152604481018590529082908290606490829084905af1801561047057610a53575b505061091682611bdd565b61091e611c9d565b919092938110610a4457857f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561047b5781809160646040518094819363e41e0f8f60e01b83523060048401528b60248401528160448401525af1801561047057610a2f575b5050610a187ff6ba9b3ae5ce11a745e929565d46b19f01279e1f49a3faca1d6c1e608151c494936109e183337f0000000000000000000000000000000000000000000000000000000000000000611cf6565b6109ea84611d4e565b6109f381611e8d565b6040519384933397859094939260609260808301968352602083015260408201520152565b0390a360015f805160206122458339815191525580f35b81610a3991611371565b61046c57855f61098f565b638199f5f360e01b8652600486fd5b81610a5d91611371565b610a6857825f61090b565b8280fd5b50346102885780600319360112610288576020600754604051908152f35b5034610288578060031936011261028857602061ffff60025416604051908152f35b50346102885780600319360112610288577f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152600160209081526040808320335f908152925290205460ff1615610b3e57610b066115f6565b600160ff198254161781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b63e2517d3f60e01b8152336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a602452604490fd5b503461028857806003193601126102885760206040516112378152f35b50346102885780600319360112610288576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5034610288578060031936011261028857610c18610bf3611c9d565b6040805193845260208401949094529282015260608101919091529081906080820190565b0390f35b503461028857602036600319011261028857602090600435815260048252604081205480155f14610c505750604051908152f35b610c5a915061167f565b6104b8565b50346102885780600319360112610288576020604051600a8152f35b50346102885780600319360112610288576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b503461028857806003193601126102885760ff60209154166040519015158152f35b50346102885780600319360112610288576020600854604051908152f35b503461028857806003193601126102885760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b50346102885760203660031901126102885760a090610d58611895565b6004929192358552600360205260ff604086205416936040519550855260208501526040840152606083015215156080820152f35b5034610288576020366003190112610288577f87c306c89c065519d253b8920dd3ee1da03dd54df2b529e2429a9d59a22423b18152600160209081526040808320335f908152925290205460ff1615610dee57610deb6004356113d9565b80f35b63e2517d3f60e01b8152336004527f87c306c89c065519d253b8920dd3ee1da03dd54df2b529e2429a9d59a22423b1602452604490fd5b50346102885760203660031901126102885760ff60406020926004358152600384522054166040519015158152f35b5034610288578060031936011261028857808052600160209081526040808320335f908152925290205460ff1615610ed357805460ff811615610ec45760ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b63e2517d3f60e01b8152336004526024819052604490fd5b503461028857604036600319011261028857610f0561135b565b336001600160a01b03821603610f21576105a190600435611b59565b63334bd91960e11b8252600482fd5b50610f3a366113c3565b610f426115be565b610f4a6115f6565b610f526116ae565b815f52600360205260ff60405f205416156110ad57610f6f611895565b90919293841161109e57610fa58430337f00000000000000000000000000000000000000000000000000000000000000006118f2565b610fb0828483611984565b610fb985611a37565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561109a57604051632142170760e11b815230600482015233602482015260448101879052905f908290606490829084905af1801561108f5761107a575b50604051938452602084015260408301526060820152600160808201527fb5efbeab556b17cacd1e111b6dee840d9d3bfeabc055edb46ce2b991b8c5867360a03392a360015f805160206122458339815191525580f35b6110879196505f90611371565b5f945f611023565b6040513d5f823e3d90fd5b5f80fd5b638199f5f360e01b5f5260045ffd5b631544738d60e21b5f5260045ffd5b3461109a575f36600319011261109a57602060405161ffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461109a57604036600319011261109a5761113860043561111961135b565b90611133610597825f526001602052600160405f20015490565b611532565b005b3461109a575f36600319011261109a57602060405160288152f35b3461109a575f36600319011261109a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461109a57602036600319011261109a5760206104b86004355f526001602052600160405f20015490565b3461109a575f36600319011261109a57602060405160328152f35b3461109a57608036600319011261109a576111f8611345565b5061120161135b565b5060643567ffffffffffffffff811161109a573660238201121561109a5780600401359061122e826113a7565b9161123c6040519384611371565b808352366024828401011161109a575f928160246020940184830137010152604051630a85bd0160e11b8152602090f35b3461109a575f36600319011261109a5760206040516202a3008152f35b3461109a575f36600319011261109a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461109a575f36600319011261109a57602061ffff60025460101c16604051908152f35b3461109a57602036600319011261109a576004359063ffffffff60e01b821680920361109a57602091637965db0b60e01b8114908115611334575b5015158152f35b6301ffc9a760e01b1490508361132d565b600435906001600160a01b038216820361109a57565b602435906001600160a01b038216820361109a57565b90601f8019910116810190811067ffffffffffffffff82111761139357604052565b634e487b7160e01b5f52604160045260245ffd5b67ffffffffffffffff811161139357601f01601f191660200190565b604090600319011261109a576004359060243590565b6040516331a9108f60e11b8152600481018290526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561108f575f9161149e575b50306001600160a01b039091160361146157805f52600360205260ff60405f20541661145e5761145c90611bdd565b565b50565b60405162461bcd60e51b8152602060048201526015602482015274139195081b9bdd081a195b1908189e481d985d5b1d605a1b6044820152606490fd5b90506020813d6020116114d8575b816114b960209383611371565b8101031261109a57516001600160a01b038116810361109a575f61142d565b3d91506114ac565b61123746036114f4576114f1611f4e565b90565b5f90565b5f81815260016020908152604080832033845290915290205460ff161561151c5750565b63e2517d3f60e01b5f523360045260245260445ffd5b5f8181526001602090815260408083206001600160a01b038616845290915290205460ff166115b8575f8181526001602081815260408084206001600160a01b0396909616808552959091528220805460ff19169091179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b50505f90565b60025f8051602061224583398151915254146115e75760025f8051602061224583398151915255565b633ee5aeb560e01b5f5260045ffd5b60ff5f541661160157565b63d93c066560e01b5f5260045ffd5b3d1561163a573d90611621826113a7565b9161162f6040519384611371565b82523d5f602084013e565b606090565b1561164657565b60405162461bcd60e51b8152602060048201526011602482015270199959481c99599d5b990819985a5b1959607a1b6044820152606490fd5b5f1981019190821161168d57565b634e487b7160e01b5f52601160045260245ffd5b9190820391821161168d57565b6112374603611837576116bf611f4e565b803410611828578060011c5f8080806116d885876116a1565b9473b668382cf44038a3e8140e789060f6a809787cda5af16116f8611610565b50156117ed575f8080809373038a7f4e4e89448ad74e044337c9ac25c11e726b5af1611722611610565b50156117b3576117929060405181815273b668382cf44038a3e8140e789060f6a809787cda602082015273038a7f4e4e89448ad74e044337c9ac25c11e726b60408201527f5b3759dffc4fa0cd2f11bb4bb0a11122abc82c62464f79a53ef203a71475140460603392a2346116a1565b8061179a5750565b5f80808061145c94335af16117ad611610565b5061163f565b60405162461bcd60e51b8152602060048201526012602482015271189bdbdcdd195c881999594819985a5b195960721b6044820152606490fd5b60405162461bcd60e51b81526020600482015260136024820152721d1c99585cdd5c9e481999594819985a5b1959606a1b6044820152606490fd5b636a5a00d160e11b5f5260045ffd5b3461183e57565b61145c5f80808034335af16117ad611610565b9060328202918083046032149015171561168d57565b8181029291811591840414171561168d57565b906001820180921161168d57565b9190820180921161168d57565b7f00000000000000000000000000000000000000000000000000000000000000006127106118cc61ffff60025460101c1683611867565b04906127106118da82611851565b04906118ef826118ea8584611888565b611888565b93565b6040516323b872dd60e01b5f9081526001600160a01b039384166004529290931660245260449390935260209060648180865af19060015f5114821615611963575b6040525f606052156119435750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b90600181151661197b57823b15153d15161690611934565b503d5f823e3d90fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169291906119dc81857f000000000000000000000000000000000000000000000000000000000000000061214f565b833b1561109a575f936044859260405196879384926339b2097760e21b845260048401528160248401525af190811561108f5761145c93611a2292611a27575b50611e8d565b611d4e565b5f611a3191611371565b5f611a1c565b805f52600360205260ff60405f205416156110ad57805f52600560205260405f2054815f52600460205260405f2054811591821590821590811590835f14611b5157611a829061167f565b935b8115611b4957611a939061167f565b945b15611b235750836006555b15611afa5750600755505b5f9081526005602090815260408083208390556004825280832083905560039091529020805460ff191690556008545f19810190811161168d578060085515611af057565b5f6006555f600755565b15611b1b57611b089061187a565b905b5f52600560205260405f2055611aab565b505f90611b0a565b15611b4357611b318461187a565b835f52600460205260405f2055611aa0565b5f611b31565b505f94611a95565b505f93611a84565b5f8181526001602090815260408083206001600160a01b038616845290915290205460ff16156115b8575f8181526001602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b805f52600360205260ff60405f205416611c66575f818152600360205260409020805460ff19166001179055600854611c2b57806006556007555b6008546001810180911161168d57600855565b611c348161187a565b6007545f52600460205260405f20556007546001810180911161168d57815f52600560205260405f2055600755611c18565b60405162461bcd60e51b815260206004820152600f60248201526e185b1c9958591e481d1c9858dad959608a1b6044820152606490fd5b7f000000000000000000000000000000000000000000000000000000000000000090612710611cd261ffff6002541684611867565b04612710611cdf84611851565b04611cf381611cee84876116a1565b6116a1565b92565b916040519163a9059cbb60e01b5f5260018060a01b031660045260245260205f60448180865af19060015f5114821615611d36575b604052156119435750565b90600181151661197b57823b15153d15161690611d2b565b801561145e5761ffff7f0000000000000000000000000000000000000000000000000000000000000000168015611e41576032611d8e611d969284611867565b0480926116a1565b80611df0575b5080611da55750565b61145c907f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000611cf6565b611e3b907f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000611cf6565b5f611d9c565b5061145c907f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000611cf6565b801561145e577f0000000000000000000000000000000000000000000000000000000000000000611edf82827f000000000000000000000000000000000000000000000000000000000000000061214f565b6001600160a01b031690813b1561109a575f91602483926040519485938492630b32e9c760e31b845260048401525af1801561108f57611f1c5750565b5f61145c91611371565b519069ffffffffffffffffffff8216820361109a57565b60ff16604d811161168d57600a0a90565b604051633fabe5a360e21b815260a081600481736091e64eb7138eef066a80fd3a0d7427b91f27215afa801561108f575f915f916120c7575b505f8213156120b9576202a300810180911161168d5742116120aa5760405163313ce56760e01b815290602082600481736091e64eb7138eef066a80fd3a0d7427b91f27215afa91821561108f575f9261206c575b509060ff16816007198201612018575b50508015612004576aa56fa5b99019a5c80000000490565b634e487b7160e01b5f52601260045260245ffd5b600882111561204757506007190160ff811161168d5761203790611f3d565b90811561200457045b5f80611fec565b91506008039060ff821161168d5761206161206792611f3d565b90611867565b612040565b9091506020813d6020116120a2575b8161208860209383611371565b8101031261109a575160ff8116810361109a57905f611fdc565b3d915061207b565b630cd5fa0760e11b5f5260045ffd5b62bfc92160e01b5f5260045ffd5b91505060a0813d60a011612113575b816120e360a09383611371565b8101031261109a576120f481611f26565b50602081015161210b608060608401519301611f26565b50905f611f87565b3d91506120d6565b7f00000000000000000000000000000000000000000000000000000000000000006127106118cc61ffff6002541683611867565b916040519163095ea7b360e01b5f5260018060a01b031691826004528160245260205f60448180885af19060015f5114821615612235575b6040521561219457505050565b60405163095ea7b360e01b5f52826004525f60245260205f60448180885af19060015f511482161561221d575b604052156121ff576040519163095ea7b360e01b5f5260045260245260205f60448180865af19060015f5114821615611d3657604052156119435750565b635274afe760e01b5f9081526001600160a01b038416600452602490fd5b90600181151661197b57843b15153d151616906121c1565b90843b15153d1516169061218756fe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a2646970667358221220b0189add462bc87af0c94d7748754c2b1a0261bcbd67ee2f2fc7cd441efb194a64736f6c634300081a00332f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0da6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49b9cbbae02fe941283ec0eefd7b121e3bc7f89fae077b27bdd75a7fd4cf1543a8a2646970667358221220ed718629b43adca2674240a4c5c400e4c04f85b43ef784d584f6a759267744b864736f6c634300081a0033
0x6080806040526004361015610012575f80fd5b5f905f3560e01c63778b4d6214610027575f80fd5b346102b7576101203660031901126102b7576004356001600160a01b038116908190036102b7576024356001600160a01b038116908190036102b7576044356001600160a01b03811691908290036102b7576064356001600160a01b038116908190036102b7576084356001600160a01b038116908190036102b75760a4356001600160a01b038116908190036102b75760e4359161ffff83168093036102b757610104359361ffff85168095036102b75761275496878a01968a881067ffffffffffffffff89111761036a57610120998b996103a18b398852602088015260408701526060860152608085015260a084015260c43560c084015260e08301526101008201520301905ff0801561032d5760405163a217fddf60e01b81526001600160a01b039190911690602081600481855afa90811561032d575f91610338575b50813b156102b757604051632f2ff15d60e01b815260048101919091523360248201525f8160448183865af1801561032d57610318575b5060405163e63ab1e960e01b81528290602081600481865afa9081156102d85782916102e3575b50823b1561027b57604051632f2ff15d60e01b81526004810191909152336024820152818160448183875af180156102d8576102c3575b505060405163a217fddf60e01b8152602081600481855afa90811561027f57839161028d575b5082823b1561028a57604051631b2b455f60e11b815260048101929092523060248301528160448183865af1801561027f57610266575b602082604051908152f35b61027183809261037e565b61027b578161025b565b5080fd5b6040513d85823e3d90fd5b80fd5b90506020813d6020116102bb575b816102a86020938361037e565b810103126102b757515f610224565b5f80fd5b3d915061029b565b816102cd9161037e565b61027b57815f6101fe565b6040513d84823e3d90fd5b9150506020813d602011610310575b816102ff6020938361037e565b810103126102b7578290515f6101c7565b3d91506102f2565b6103259192505f9061037e565b5f905f6101a0565b6040513d5f823e3d90fd5b90506020813d602011610362575b816103536020938361037e565b810103126102b757515f610169565b3d9150610346565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff82111761036a5760405256fe6101a03461031557601f61275438819003918201601f19168301916001600160401b038311848410176103195780849261012094604052833981010312610315576100498161032d565b906100566020820161032d565b6100626040830161032d565b61006e6060840161032d565b61007a6080850161032d565b9061008760a0860161032d565b9260c0860151946100a76101006100a060e08a01610341565b9801610341565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055976001600160a01b03169687158015610304575b80156102f3575b80156102e2575b80156102d1575b6102905761ffff16966105dc88116102c25761ffff89166105dc81116102b35788116102b3576080526001600160a01b0390811660a0521660c05260e052466121050361029f576001600160a01b0381161561029057600a61016052602861018052610100525b610120526101405263ffff00006002549260101b169163ffffffff1916171760025561018633610350565b50610190336103c6565b5060405161229a908161045a823960805181818161025901528181610359015281816109bd01528181610f81015281816119b801528181611dcc01528181611e1701528181611e690152611ebb015260a051818181610398015281816108a301528181610ba801528181610fbb01526113f5015260c0518181816105110152818161092b0152611986015260e051818181610c9101528181611df60152611e4801526101005181818161129f0152611dab01526101205181818161116a0152611e95015261014051818181610d180152818161189701528181611c9f015261211d015261016051816102a60152610180518181816110d60152611d590152f35b63d92e233d60e01b5f5260045ffd5b6032610160525f610180526101005261015b565b63de15b9d760e01b5f5260045ffd5b63d4cdb40560e01b5f5260045ffd5b506001600160a01b038616156100f4565b506001600160a01b038416156100ed565b506001600160a01b038316156100e6565b506001600160a01b038216156100df565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820361031557565b519061ffff8216820361031557565b6001600160a01b0381165f9081525f80516020612714833981519152602052604090205460ff166103c1576001600160a01b03165f8181525f8051602061271483398151915260205260408120805460ff191660011790553391905f805160206126f48339815191528180a4600190565b505f90565b6001600160a01b0381165f9081525f80516020612734833981519152602052604090205460ff166103c1576001600160a01b03165f8181525f8051602061273483398151915260205260408120805460ff191660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a905f805160206126f48339815191529080a460019056fe6080806040526004361015610012575f80fd5b5f905f3560e01c90816301ffc9a7146112f25750806304bfe0e4146112ce578063062287491461128a57806314ab78d01461126d578063150b7a02146111df5780631d4f1045146111c4578063248a9ca31461119957806324e7964a146111555780632768cf221461113a5780632f2ff15d146110fa57806333945c66146110bc5780633559952b14610f3057806336568abe14610eeb5780633f4ba83a14610e545780634272ee1814610e2557806349db9b1314610d8d5780634fef2dcf14610ce25780635854863614610d3b5780635afcc2f514610d005780635b98c83d14610ce25780635c975abb14610cc057806361d027b314610c7b5780636a068acd14610c5f578063722a094114610c1c57806377accfcb14610bd75780637de1e53614610b9257806380fa02f714610b755780638456cb5914610aac5780638702cab614610a8a5780638b913b4914610a6c57806391a48a1e1461087e57806391d148541461083457806391e8b63f146108055780639ef833d4146106d25780639f7b2f0b146106b3578063a217fddf14610697578063aef6b09914610668578063b3da098a1461062d578063b78fcec11461060f578063ccc57490146105d4578063d062b2ea146105a5578063d547741f1461055d578063d55be8c614610540578063e2fdcc17146104fb578063e63ab1e9146104c0578063e690ea6e1461049d578063e7a8304a14610310578063f3ca5d4d146102ca578063f41d0d4f1461028b5763fc0c546a14610244575f80fd5b346102885780600319360112610288576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b80fd5b5034610288578060031936011261028857602060405161ffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b503461028857806003193601126102885760c06102e561211b565b91906008549160065493604051958652602086015260408501526060840152608083015260a0820152f35b506020366003190112610288576103256115be565b61032d6115f6565b6103356116ae565b6008541561048e5761034561211b565b929190600435831161047f5761037d8330337f00000000000000000000000000000000000000000000000000000000000000006118f2565b610388818386611984565b6006549361039585611a37565b857f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561047b57604051632142170760e11b8152306004820152336024820152604481018890529082908290606490829084905af1801561047057610457575b50506040519384526020840152604083015260608201528260808201527fb5efbeab556b17cacd1e111b6dee840d9d3bfeabc055edb46ce2b991b8c5867360a03392a360015f805160206122458339815191525580f35b8161046191611371565b61046c57855f610400565b8580fd5b6040513d84823e3d90fd5b5080fd5b638199f5f360e01b8552600485fd5b63c5144d6560e01b8152600490fd5b503461028857806003193601126102885760206104b86114e0565b604051908152f35b503461028857806003193601126102885760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b50346102885780600319360112610288576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b503461028857806003193601126102885760206040516105dc8152f35b5034610288576040366003190112610288576105a160043561057d61135b565b9061059c610597825f526001602052600160405f20015490565b6114f8565b611b59565b5080f35b5034610288578060031936011261028857602060405173038a7f4e4e89448ad74e044337c9ac25c11e726b8152f35b503461028857806003193601126102885760206040517f7935bd0ae54bc31f548c14dba4d37c5c64b3f8ca900cb468fb8abd54d5894f558152f35b50346102885780600319360112610288576020600654604051908152f35b503461028857806003193601126102885760206040517f87c306c89c065519d253b8920dd3ee1da03dd54df2b529e2429a9d59a22423b18152f35b50346102885780600319360112610288576020604051736091e64eb7138eef066a80fd3a0d7427b91f27218152f35b5034610288578060031936011261028857602090604051908152f35b50346102885780600319360112610288576020604051630bebc2008152f35b50346102885760403660031901126102885760043561ffff811680910361047b5760243561ffff811690818103610801577f7935bd0ae54bc31f548c14dba4d37c5c64b3f8ca900cb468fb8abd54d5894f558452600160209081526040808620335f908152925290205460ff16156107ca576105dc83116107bb576105dc82116107ac578282106107ac578263ffff00006002549260101b169163ffffffff1916171760025560405191825260208201527ff44d9b22cdd87e55b71b9245548303c18d17a3c912a4e0b135ea1330351a1fc160403092a280f35b63de15b9d760e01b8452600484fd5b63d4cdb40560e01b8452600484fd5b63e2517d3f60e01b8452336004527f7935bd0ae54bc31f548c14dba4d37c5c64b3f8ca900cb468fb8abd54d5894f55602452604484fd5b8380fd5b5034610288578060031936011261028857602060405173b668382cf44038a3e8140e789060f6a809787cda8152f35b503461028857604036600319011261028857604061085061135b565b9160043581526001602052209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b50610888366113c3565b6108906115be565b6108986115f6565b6108a06116ae565b827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561047b57604051632142170760e11b8152336004820152306024820152604481018590529082908290606490829084905af1801561047057610a53575b505061091682611bdd565b61091e611c9d565b919092938110610a4457857f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561047b5781809160646040518094819363e41e0f8f60e01b83523060048401528b60248401528160448401525af1801561047057610a2f575b5050610a187ff6ba9b3ae5ce11a745e929565d46b19f01279e1f49a3faca1d6c1e608151c494936109e183337f0000000000000000000000000000000000000000000000000000000000000000611cf6565b6109ea84611d4e565b6109f381611e8d565b6040519384933397859094939260609260808301968352602083015260408201520152565b0390a360015f805160206122458339815191525580f35b81610a3991611371565b61046c57855f61098f565b638199f5f360e01b8652600486fd5b81610a5d91611371565b610a6857825f61090b565b8280fd5b50346102885780600319360112610288576020600754604051908152f35b5034610288578060031936011261028857602061ffff60025416604051908152f35b50346102885780600319360112610288577f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152600160209081526040808320335f908152925290205460ff1615610b3e57610b066115f6565b600160ff198254161781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b63e2517d3f60e01b8152336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a602452604490fd5b503461028857806003193601126102885760206040516112378152f35b50346102885780600319360112610288576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5034610288578060031936011261028857610c18610bf3611c9d565b6040805193845260208401949094529282015260608101919091529081906080820190565b0390f35b503461028857602036600319011261028857602090600435815260048252604081205480155f14610c505750604051908152f35b610c5a915061167f565b6104b8565b50346102885780600319360112610288576020604051600a8152f35b50346102885780600319360112610288576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b503461028857806003193601126102885760ff60209154166040519015158152f35b50346102885780600319360112610288576020600854604051908152f35b503461028857806003193601126102885760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b50346102885760203660031901126102885760a090610d58611895565b6004929192358552600360205260ff604086205416936040519550855260208501526040840152606083015215156080820152f35b5034610288576020366003190112610288577f87c306c89c065519d253b8920dd3ee1da03dd54df2b529e2429a9d59a22423b18152600160209081526040808320335f908152925290205460ff1615610dee57610deb6004356113d9565b80f35b63e2517d3f60e01b8152336004527f87c306c89c065519d253b8920dd3ee1da03dd54df2b529e2429a9d59a22423b1602452604490fd5b50346102885760203660031901126102885760ff60406020926004358152600384522054166040519015158152f35b5034610288578060031936011261028857808052600160209081526040808320335f908152925290205460ff1615610ed357805460ff811615610ec45760ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b63e2517d3f60e01b8152336004526024819052604490fd5b503461028857604036600319011261028857610f0561135b565b336001600160a01b03821603610f21576105a190600435611b59565b63334bd91960e11b8252600482fd5b50610f3a366113c3565b610f426115be565b610f4a6115f6565b610f526116ae565b815f52600360205260ff60405f205416156110ad57610f6f611895565b90919293841161109e57610fa58430337f00000000000000000000000000000000000000000000000000000000000000006118f2565b610fb0828483611984565b610fb985611a37565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561109a57604051632142170760e11b815230600482015233602482015260448101879052905f908290606490829084905af1801561108f5761107a575b50604051938452602084015260408301526060820152600160808201527fb5efbeab556b17cacd1e111b6dee840d9d3bfeabc055edb46ce2b991b8c5867360a03392a360015f805160206122458339815191525580f35b6110879196505f90611371565b5f945f611023565b6040513d5f823e3d90fd5b5f80fd5b638199f5f360e01b5f5260045ffd5b631544738d60e21b5f5260045ffd5b3461109a575f36600319011261109a57602060405161ffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461109a57604036600319011261109a5761113860043561111961135b565b90611133610597825f526001602052600160405f20015490565b611532565b005b3461109a575f36600319011261109a57602060405160288152f35b3461109a575f36600319011261109a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461109a57602036600319011261109a5760206104b86004355f526001602052600160405f20015490565b3461109a575f36600319011261109a57602060405160328152f35b3461109a57608036600319011261109a576111f8611345565b5061120161135b565b5060643567ffffffffffffffff811161109a573660238201121561109a5780600401359061122e826113a7565b9161123c6040519384611371565b808352366024828401011161109a575f928160246020940184830137010152604051630a85bd0160e11b8152602090f35b3461109a575f36600319011261109a5760206040516202a3008152f35b3461109a575f36600319011261109a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461109a575f36600319011261109a57602061ffff60025460101c16604051908152f35b3461109a57602036600319011261109a576004359063ffffffff60e01b821680920361109a57602091637965db0b60e01b8114908115611334575b5015158152f35b6301ffc9a760e01b1490508361132d565b600435906001600160a01b038216820361109a57565b602435906001600160a01b038216820361109a57565b90601f8019910116810190811067ffffffffffffffff82111761139357604052565b634e487b7160e01b5f52604160045260245ffd5b67ffffffffffffffff811161139357601f01601f191660200190565b604090600319011261109a576004359060243590565b6040516331a9108f60e11b8152600481018290526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561108f575f9161149e575b50306001600160a01b039091160361146157805f52600360205260ff60405f20541661145e5761145c90611bdd565b565b50565b60405162461bcd60e51b8152602060048201526015602482015274139195081b9bdd081a195b1908189e481d985d5b1d605a1b6044820152606490fd5b90506020813d6020116114d8575b816114b960209383611371565b8101031261109a57516001600160a01b038116810361109a575f61142d565b3d91506114ac565b61123746036114f4576114f1611f4e565b90565b5f90565b5f81815260016020908152604080832033845290915290205460ff161561151c5750565b63e2517d3f60e01b5f523360045260245260445ffd5b5f8181526001602090815260408083206001600160a01b038616845290915290205460ff166115b8575f8181526001602081815260408084206001600160a01b0396909616808552959091528220805460ff19169091179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b50505f90565b60025f8051602061224583398151915254146115e75760025f8051602061224583398151915255565b633ee5aeb560e01b5f5260045ffd5b60ff5f541661160157565b63d93c066560e01b5f5260045ffd5b3d1561163a573d90611621826113a7565b9161162f6040519384611371565b82523d5f602084013e565b606090565b1561164657565b60405162461bcd60e51b8152602060048201526011602482015270199959481c99599d5b990819985a5b1959607a1b6044820152606490fd5b5f1981019190821161168d57565b634e487b7160e01b5f52601160045260245ffd5b9190820391821161168d57565b6112374603611837576116bf611f4e565b803410611828578060011c5f8080806116d885876116a1565b9473b668382cf44038a3e8140e789060f6a809787cda5af16116f8611610565b50156117ed575f8080809373038a7f4e4e89448ad74e044337c9ac25c11e726b5af1611722611610565b50156117b3576117929060405181815273b668382cf44038a3e8140e789060f6a809787cda602082015273038a7f4e4e89448ad74e044337c9ac25c11e726b60408201527f5b3759dffc4fa0cd2f11bb4bb0a11122abc82c62464f79a53ef203a71475140460603392a2346116a1565b8061179a5750565b5f80808061145c94335af16117ad611610565b5061163f565b60405162461bcd60e51b8152602060048201526012602482015271189bdbdcdd195c881999594819985a5b195960721b6044820152606490fd5b60405162461bcd60e51b81526020600482015260136024820152721d1c99585cdd5c9e481999594819985a5b1959606a1b6044820152606490fd5b636a5a00d160e11b5f5260045ffd5b3461183e57565b61145c5f80808034335af16117ad611610565b9060328202918083046032149015171561168d57565b8181029291811591840414171561168d57565b906001820180921161168d57565b9190820180921161168d57565b7f00000000000000000000000000000000000000000000000000000000000000006127106118cc61ffff60025460101c1683611867565b04906127106118da82611851565b04906118ef826118ea8584611888565b611888565b93565b6040516323b872dd60e01b5f9081526001600160a01b039384166004529290931660245260449390935260209060648180865af19060015f5114821615611963575b6040525f606052156119435750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b90600181151661197b57823b15153d15161690611934565b503d5f823e3d90fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169291906119dc81857f000000000000000000000000000000000000000000000000000000000000000061214f565b833b1561109a575f936044859260405196879384926339b2097760e21b845260048401528160248401525af190811561108f5761145c93611a2292611a27575b50611e8d565b611d4e565b5f611a3191611371565b5f611a1c565b805f52600360205260ff60405f205416156110ad57805f52600560205260405f2054815f52600460205260405f2054811591821590821590811590835f14611b5157611a829061167f565b935b8115611b4957611a939061167f565b945b15611b235750836006555b15611afa5750600755505b5f9081526005602090815260408083208390556004825280832083905560039091529020805460ff191690556008545f19810190811161168d578060085515611af057565b5f6006555f600755565b15611b1b57611b089061187a565b905b5f52600560205260405f2055611aab565b505f90611b0a565b15611b4357611b318461187a565b835f52600460205260405f2055611aa0565b5f611b31565b505f94611a95565b505f93611a84565b5f8181526001602090815260408083206001600160a01b038616845290915290205460ff16156115b8575f8181526001602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b805f52600360205260ff60405f205416611c66575f818152600360205260409020805460ff19166001179055600854611c2b57806006556007555b6008546001810180911161168d57600855565b611c348161187a565b6007545f52600460205260405f20556007546001810180911161168d57815f52600560205260405f2055600755611c18565b60405162461bcd60e51b815260206004820152600f60248201526e185b1c9958591e481d1c9858dad959608a1b6044820152606490fd5b7f000000000000000000000000000000000000000000000000000000000000000090612710611cd261ffff6002541684611867565b04612710611cdf84611851565b04611cf381611cee84876116a1565b6116a1565b92565b916040519163a9059cbb60e01b5f5260018060a01b031660045260245260205f60448180865af19060015f5114821615611d36575b604052156119435750565b90600181151661197b57823b15153d15161690611d2b565b801561145e5761ffff7f0000000000000000000000000000000000000000000000000000000000000000168015611e41576032611d8e611d969284611867565b0480926116a1565b80611df0575b5080611da55750565b61145c907f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000611cf6565b611e3b907f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000611cf6565b5f611d9c565b5061145c907f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000611cf6565b801561145e577f0000000000000000000000000000000000000000000000000000000000000000611edf82827f000000000000000000000000000000000000000000000000000000000000000061214f565b6001600160a01b031690813b1561109a575f91602483926040519485938492630b32e9c760e31b845260048401525af1801561108f57611f1c5750565b5f61145c91611371565b519069ffffffffffffffffffff8216820361109a57565b60ff16604d811161168d57600a0a90565b604051633fabe5a360e21b815260a081600481736091e64eb7138eef066a80fd3a0d7427b91f27215afa801561108f575f915f916120c7575b505f8213156120b9576202a300810180911161168d5742116120aa5760405163313ce56760e01b815290602082600481736091e64eb7138eef066a80fd3a0d7427b91f27215afa91821561108f575f9261206c575b509060ff16816007198201612018575b50508015612004576aa56fa5b99019a5c80000000490565b634e487b7160e01b5f52601260045260245ffd5b600882111561204757506007190160ff811161168d5761203790611f3d565b90811561200457045b5f80611fec565b91506008039060ff821161168d5761206161206792611f3d565b90611867565b612040565b9091506020813d6020116120a2575b8161208860209383611371565b8101031261109a575160ff8116810361109a57905f611fdc565b3d915061207b565b630cd5fa0760e11b5f5260045ffd5b62bfc92160e01b5f5260045ffd5b91505060a0813d60a011612113575b816120e360a09383611371565b8101031261109a576120f481611f26565b50602081015161210b608060608401519301611f26565b50905f611f87565b3d91506120d6565b7f00000000000000000000000000000000000000000000000000000000000000006127106118cc61ffff6002541683611867565b916040519163095ea7b360e01b5f5260018060a01b031691826004528160245260205f60448180885af19060015f5114821615612235575b6040521561219457505050565b60405163095ea7b360e01b5f52826004525f60245260205f60448180885af19060015f511482161561221d575b604052156121ff576040519163095ea7b360e01b5f5260045260245260205f60448180865af19060015f5114821615611d3657604052156119435750565b635274afe760e01b5f9081526001600160a01b038416600452602490fd5b90600181151661197b57843b15153d151616906121c1565b90843b15153d1516169061218756fe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a2646970667358221220b0189add462bc87af0c94d7748754c2b1a0261bcbd67ee2f2fc7cd441efb194a64736f6c634300081a00332f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0da6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49b9cbbae02fe941283ec0eefd7b121e3bc7f89fae077b27bdd75a7fd4cf1543a8a2646970667358221220ed718629b43adca2674240a4c5c400e4c04f85b43ef784d584f6a759267744b864736f6c634300081a0033
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| no token holdings | ||||
| Type | Age | Block | Details |
|---|---|---|---|
| no cross-chain L1↔L2 transactions for this address | |||
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| no event logs emitted by this address | |||
| Transaction Hash | Method | Block | Age | From | To | Type | Item | ||
|---|---|---|---|---|---|---|---|---|---|
| no NFT transfers for this address yet | |||||||||
| Transaction Hash | Method | Block | Age | From | To | Amount | Token | ||
|---|---|---|---|---|---|---|---|---|---|
| no token transfers for this address yet | |||||||||
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x04ed0b…dd0f38 | deploy | 34,043,242 | 6 days agoTue, 11 Aug 2026 23:03:31 UTC | 0xcd66…f47a | IN | NFTAMMVaultDeployer | $0.000 ETH | 0.00006309 | |
| 0xcf87a3…546ac7 | deploy | 33,898,951 | 6 days agoTue, 11 Aug 2026 19:03:27 UTC | 0x0394…4297 | IN | NFTAMMVaultDeployer | $0.000 ETH | 0.00005839 | |
| 0xb9ec3e…2cbabc | deploy | 31,383,216 | 9 days agoSat, 08 Aug 2026 21:05:18 UTC | 0x4cd6…2b7c | IN | NFTAMMVaultDeployer | $0.000 ETH | 0.00005825 |
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| 36,664,894 | 3 days agoFri, 14 Aug 2026 23:56:30 UTC | 0xbe37f9…59b44b | CREATE | 0x61032060 | 0x76c5…3549 | OUT | 0x6109…b349 | 0 ETH |
| 36,284,984 | 3 days agoFri, 14 Aug 2026 13:22:20 UTC | 0xd2f87f…a29ea2 | CREATE | createMarket | 0x76c5…3549 | OUT | 0x26c4…9ac4 | 0 ETH |
| 36,132,267 | 4 days agoFri, 14 Aug 2026 09:07:08 UTC | 0x4a299d…f059cd | CREATE | createMarket | 0x76c5…3549 | OUT | 0xf29a…acb4 | 0 ETH |
| 35,943,331 | 4 days agoFri, 14 Aug 2026 03:51:44 UTC | 0xee790e…2ed845 | CREATE | createMarket | 0x76c5…3549 | OUT | 0xdd59…9379 | 0 ETH |
| 35,614,141 | 4 days agoThu, 13 Aug 2026 18:42:05 UTC | 0x98a273…d32845 | CREATE | createMarket | 0x76c5…3549 | OUT | 0x5bdf…1f45 | 0 ETH |
| 35,499,019 | 4 days agoThu, 13 Aug 2026 15:29:50 UTC | 0x872c53…24a8f2 | CREATE | createMarket | 0x76c5…3549 | OUT | 0x492d…8ef6 | 0 ETH |
| 34,802,893 | 5 days agoWed, 12 Aug 2026 20:06:23 UTC | 0x33054a…6e0cb3 | CREATE | createMarket | 0x76c5…3549 | OUT | 0xe6fa…e920 | 0 ETH |
| 34,689,661 | 5 days agoWed, 12 Aug 2026 16:57:26 UTC | 0x74e3c0…266c40 | CREATE | createMarket | 0x76c5…3549 | OUT | 0x147e…4b32 | 0 ETH |
| 34,206,141 | 6 days agoWed, 12 Aug 2026 03:33:04 UTC | 0x5d67db…62d9c0 | CREATE | 0x61018060 | 0x76c5…3549 | OUT | 0x2079…5da2 | 0 ETH |
| 34,043,242 | 6 days agoTue, 11 Aug 2026 23:03:31 UTC | 0x04ed0b…dd0f38 | CREATE | deploy | 0x76c5…3549 | OUT | 0x74f1…63ce | 0 ETH |
| 34,041,145 | 6 days agoTue, 11 Aug 2026 23:00:01 UTC | 0x97866b…d46985 | CREATE | createMarket | 0x76c5…3549 | OUT | 0xfe0b…00e6 | 0 ETH |
| 33,898,951 | 6 days agoTue, 11 Aug 2026 19:03:27 UTC | 0xcf87a3…546ac7 | CREATE | deploy | 0x76c5…3549 | OUT | 0x5312…bfe3 | 0 ETH |
| 32,893,179 | 7 days agoMon, 10 Aug 2026 15:06:32 UTC | 0x60eb47…daa4a7 | CREATE | createMarket | 0x76c5…3549 | OUT | 0x714a…29a1 | 0 ETH |
| 31,383,216 | 9 days agoSat, 08 Aug 2026 21:05:18 UTC | 0xb9ec3e…2cbabc | CREATE | deploy | 0x76c5…3549 | OUT | 0x3003…4766 | 0 ETH |
| 31,227,038 | 9 days agoSat, 08 Aug 2026 16:44:48 UTC | 0xa20434…0f9432 | CREATE | createMarket | 0x76c5…3549 | OUT | 0x4e07…8451 | 0 ETH |
| 30,788,515 | 10 days agoSat, 08 Aug 2026 04:32:15 UTC | 0xd97705…d7e59d | CREATE | createMarket | 0x76c5…3549 | OUT | 0xd920…b360 | 0 ETH |
| 29,738,819 | 11 days agoThu, 06 Aug 2026 23:19:47 UTC | 0x9a6d78…2eb340 | CREATE | createMarket | 0x76c5…3549 | OUT | 0x2554…40fe | 0 ETH |
| 28,835,651 | 12 days agoWed, 05 Aug 2026 22:11:44 UTC | 0xac66f1…5b94d6 | CREATE | createMarket | 0x76c5…3549 | OUT | 0x8076…0aa7 | 0 ETH |
| 28,820,559 | 12 days agoWed, 05 Aug 2026 21:46:34 UTC | 0xcf65e5…7c9e67 | CREATE | createMarket | 0x76c5…3549 | OUT | 0x3c03…a8e6 | 0 ETH |
| 28,805,826 | 12 days agoWed, 05 Aug 2026 21:22:02 UTC | 0x788999…aba4a4 | CREATE | createMarket | 0x76c5…3549 | OUT | 0x3cc2…b575 | 0 ETH |
| 28,775,989 | 12 days agoWed, 05 Aug 2026 20:32:13 UTC | 0xadc0e2…8fd33f | CREATE | createMarket | 0x76c5…3549 | OUT | 0xd22a…9842 | 0 ETH |
| 28,620,299 | 12 days agoWed, 05 Aug 2026 16:13:13 UTC | 0xd1d0fc…dbbbaf | CREATE | createMarket | 0x76c5…3549 | OUT | 0x6453…2a59 | 0 ETH |
| 28,539,312 | 12 days agoWed, 05 Aug 2026 13:57:57 UTC | 0x553f78…8fc1dd | CREATE | 0xa95ca4d3 | 0x76c5…3549 | OUT | 0xeb68…e528 | 0 ETH |
| 28,511,748 | 12 days agoWed, 05 Aug 2026 13:11:55 UTC | 0x23c886…81e9ed | CREATE | createMarket | 0x76c5…3549 | OUT | 0x8c5a…1d5d | 0 ETH |
| 28,495,016 | 12 days agoWed, 05 Aug 2026 12:43:58 UTC | 0xabdba8…41d3a9 | CREATE | createMarket | 0x76c5…3549 | OUT | 0x172e…83a9 | 0 ETH |