Skip to content

Commit

Permalink
internal/fourbyte: added more funcs
Browse files Browse the repository at this point in the history
  • Loading branch information
lmittmann committed Sep 20, 2024
1 parent c8ac4f6 commit 62a2eab
Show file tree
Hide file tree
Showing 3 changed files with 184 additions and 3 deletions.
87 changes: 87 additions & 0 deletions internal/fourbyte/funcs.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

87 changes: 87 additions & 0 deletions internal/fourbyte/funcs.txt
Original file line number Diff line number Diff line change
@@ -1 +1,88 @@
accumulateReward(uint32 currTimestamp)
admin() address
allowance(address owner, address spender) uint256
approve(address spender, uint256 amount) bool success
balanceOf(address) uint256
burn(uint256)
coins(uint256 i) address
crossLmTick(int24 tick, bool zeroForOne)
decimals() uint8
decreaseAllowance(address spender, uint256 subtractedValue) bool success
deposit()
Error(string)
exchange(int128 i,int128 j, uint256 dx, uint256 min_dy)
exchange(uint256 i, uint256 j, uint256 dx, uint256 min_dy, bool use_eth)
exchange_underlying(int128 i, int128 j, uint256 dx, uint256 min_dy)
execute(bytes commands, bytes[] inputs)
execute(bytes commands, bytes[] inputs, uint256 deadline)
factory() address
fee() uint24
feeGrowthGlobal0X128() uint256
feeGrowthGlobal1X128() uint256
flash(address recipient, uint256 amount0, uint256 amount1, bytes data)
get_address(uint256 idx) address
get_dy(int128 i, int128 j, uint256 amount) uint256
get_dy_underlying(int128 i, int128 j, uint256 amount) uint256
get_registry() address
getApproved(uint256 tokenId) address operator
getReserves() uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast
getRoleAdmin(bytes32 role) bytes32
getRoleMember(bytes32 role, uint256 index) address
getRoleMemberCount(bytes32 role) uint256
grantRole(bytes32 role, address account)
hasRole(bytes32 role, address account) bool
implementation() address
increaseAllowance(address spender, uint256 addedValue) bool success
initialize(address token0, address token1)
isApprovedForAll(address owner, address operator) bool
isSolver(address) bool
isValidSignature(bytes32 hash, bytes data) bytes4
liquidity() uint128
lmPool() address
mint()
mint(uint256)
name() string
onERC721Received(address operator, address from, uint256 tokenId, bytes data) bytes4
owner() address
ownerOf(uint256 tokenId) address
pancakeV3SwapCallback(int256 amount0Delta, int256 amount1Delta, bytes data)
paused() bool
permit(address owner, address spender, uint256 amount, uint256 deadline, uint8 v, bytes32 r, bytes32 s)
renounceOwnership()
renounceRole(bytes32 role, address account)
revokeRole(bytes32 role, address account)
safeTransferFrom(address from, address to, uint256 tokenId)
safeTransferFrom(address from, address to, uint256 tokenId, bytes data)
setApprovalForAll(address operator, bool approved)
settle(address[] tokens, uint256[] clearingPrices, (uint256 sellTokenIndex, uint256 buyTokenIndex, address receiver, uint256 sellAmount, uint256 buyAmount, uint32 validTo, bytes32 appData, uint256 feeAmount, uint256 flags, uint256 executedAmount, bytes signature)[] trades, (address target, uint256 value, bytes callData)[][3] interactions)
skim(address to)
supportsInterface(bytes4) bool
swap(address recipient, bool zeroForOne, int256 amountSpecified, uint160 sqrtPriceLimitX96) int256 amount0, int256 amount1
swap(address recipient, bool zeroForOne, int256 amountSpecified, uint160 sqrtPriceLimitX96, bytes data) int256 amount0, int256 amount1
swap(address recipient, bool zeroForOne, int256 amountSpecified, uint160 sqrtPriceLimitX96, bytes data, uint256 trackingCode) int256 amount0, int256 amount1
swap(address recipient, bool zeroForOne, int256 amountSpecified, uint160 sqrtPriceLimitX96, uint256 amountLimit, uint256 deadline) int256 amount0, int256 amount1
swap(address recipient, bool zeroForOne, int256 amountSpecified, uint160 sqrtPriceLimitX96, uint256 amountLimit, uint256 deadline, bytes data) int256 amount0, int256 amount1
swap(address recipient, bool zeroForOne, int256 amountSpecified, uint160 sqrtPriceLimitX96, uint256 amountLimit, uint256 deadline, bytes data, uint256 trackingCode) int256 amount0, int256 amount1
swap(address recipient, bool zeroForOne, int256 amountSpecified, uint160 sqrtPriceLimitX96, uint256 amountLimit, uint256 deadline, uint256 trackingCode) int256 amount0, int256 amount1
swap(address recipient, bool zeroForOne, int256 amountSpecified, uint160 sqrtPriceLimitX96, uint256 trackingCode) int256 amount0, int256 amount1
swap(uint256 amount0Out, uint256 amount1Out, address to, bytes data)
swapExactTokensForTokens(uint256 amountIn, uint256 amountOutMin, address[] path, address to, uint256 deadline) uint256[] amounts
symbol() string
sync()
tickSpacing() int24
token() address
token0() address
token1() address
tokenURI(uint256 tokenId) string
totalShares() uint256
totalSupply() uint256
transfer(address to, uint256 amount) bool success
transferFrom(address from, address to, uint160 amount, address token)
transferFrom(address from, address to, uint256 amount) bool success
transferFromAccounts((address account, address token, uint256 amount, bytes32 balance)[])
transferOwnership(address newOwner)
uniswapV3Swap(uint256 amount, uint256 minReturn, uint256[] pools) uint256 returnAmount
uniswapV3SwapCallback(int256 amount0Delta, int256 amount1Delta, bytes data)
WETH() address
withdraw(uint256)
wrapAll()
13 changes: 10 additions & 3 deletions internal/fourbyte/gen.go
Original file line number Diff line number Diff line change
Expand Up @@ -53,22 +53,29 @@ func genFuncs(fn, goFn string) error {

// parse function definitions from file
var functions []function
knownIdentifiers := make(map[[4]byte]struct{})

scanner := bufio.NewScanner(f)
for i := 0; scanner.Scan(); i++ {
tokens := strings.Split(scanner.Text(), "\t")
line := scanner.Text()
tokens := strings.Split(line, "\t")
if len(tokens) == 1 && strings.HasSuffix(tokens[0], ")") {
tokens = append(tokens, "") // no returns
}
if len(tokens) != 2 {
return fmt.Errorf("line %d: invalid line %q", i, scanner.Text())
return fmt.Errorf("line %d: invalid line %q", i, line)
}

fn, err := w3.NewFunc(tokens[0], tokens[1])
if err != nil {
return fmt.Errorf("line %d: %v", i, err)
return fmt.Errorf("line %d: %v (%q)", i, err, line)
}

if _, ok := knownIdentifiers[fn.Selector]; ok {
return fmt.Errorf("line %d: duplicate function selector %q", i, line)
}
knownIdentifiers[fn.Selector] = struct{}{}

functions = append(functions, function{
Selector: fn.Selector,
Signature: tokens[0],
Expand Down

0 comments on commit 62a2eab

Please sign in to comment.