Skip to content

Commit aa9642c

Browse files
committed
accounts/abi/bind/v2: add vanity pack/unpack methods for fallback and pack for receive. regenerate ABI and update bindings for testdata events contract (was stale for a long time).
1 parent 9b7dfc4 commit aa9642c

File tree

5 files changed

+179
-75
lines changed

5 files changed

+179
-75
lines changed

accounts/abi/bind/v2/internal/contracts/events/bindings.go

Lines changed: 2 additions & 72 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"contracts":{"contract.sol:C":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"data","type":"uint256"}],"name":"basic1","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bool","name":"flag","type":"bool"},{"indexed":false,"internalType":"uint256","name":"data","type":"uint256"}],"name":"basic2","type":"event"},{"inputs":[],"name":"DoSomethingWithManyArgs","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}],"internalType":"struct C.Point","name":"p","type":"tuple"}],"name":"DoSomethingWithPoint","outputs":[{"components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}],"internalType":"struct C.Point","name":"","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"EmitMulti","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"EmitOne","outputs":[],"stateMutability":"nonpayable","type":"function"}],"bin":"6080604052348015600e575f80fd5b5061042c8061001c5f395ff3fe608060405234801561000f575f80fd5b506004361061004a575f3560e01c80636fd8b9681461004e578063cb4937491461006f578063e8e49a7114610079578063edcdc89414610083575b5f80fd5b6100566100b3565b6040516100669493929190610244565b60405180910390f35b6100776100c9565b005b61008161017a565b005b61009d600480360381019061009891906102ad565b6101b6565b6040516100aa9190610364565b60405180910390f35b5f805f805f805f80935093509350935090919293565b60017f8f17dc823e2f9fcdf730b8182c935574691e811e7d46399fe0ff0087795cd20760026040516100fb919061037d565b60405180910390a260037f8f17dc823e2f9fcdf730b8182c935574691e811e7d46399fe0ff0087795cd2076004604051610135919061037d565b60405180910390a25f15157f3b29b9f6d15ba80d866afb3d70b7548ab1ffda3ef6e65f35f1cb05b0e2b29f4e6001604051610170919061037d565b60405180910390a2565b60017f8f17dc823e2f9fcdf730b8182c935574691e811e7d46399fe0ff0087795cd20760026040516101ac919061037d565b60405180910390a2565b366101bf6101fa565b6001835f01356101cf91906103c3565b815f018181525050600183602001356101e891906103c3565b81602001818152505082915050919050565b60405180604001604052805f81526020015f81525090565b5f819050919050565b61022481610212565b82525050565b5f8115159050919050565b61023e8161022a565b82525050565b5f6080820190506102575f83018761021b565b610264602083018661021b565b610271604083018561021b565b61027e6060830184610235565b95945050505050565b5f80fd5b5f80fd5b5f604082840312156102a4576102a361028b565b5b81905092915050565b5f604082840312156102c2576102c1610287565b5b5f6102cf8482850161028f565b91505092915050565b6102e181610212565b81146102eb575f80fd5b50565b5f813590506102fc816102d8565b92915050565b5f61031060208401846102ee565b905092915050565b61032181610212565b82525050565b604082016103375f830183610302565b6103435f850182610318565b506103516020830183610302565b61035e6020850182610318565b50505050565b5f6040820190506103775f830184610327565b92915050565b5f6020820190506103905f83018461021b565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6103cd82610212565b91506103d883610212565b92508282019050808211156103f0576103ef610396565b5b9291505056fea264697066735822122037c4a3caaa4ac1fad7bb712bf2dc85b5d19726dd357808a46ac3b90d2f03dff564736f6c634300081a0033"}},"version":"0.8.26+commit.8a97fa7a.Darwin.appleclang"}
1+
{"contracts":{"contract.sol:C":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"data","type":"uint256"}],"name":"basic1","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bool","name":"flag","type":"bool"},{"indexed":false,"internalType":"uint256","name":"data","type":"uint256"}],"name":"basic2","type":"event"},{"stateMutability":"nonpayable","type":"fallback"},{"inputs":[],"name":"EmitMulti","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"EmitOne","outputs":[],"stateMutability":"nonpayable","type":"function"}],"bin":"6080604052348015600e575f5ffd5b506101a38061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610038575f3560e01c8063cb4937491461003b578063e8e49a711461004557610039565b5b005b61004361004f565b005b61004d610100565b005b60017f8f17dc823e2f9fcdf730b8182c935574691e811e7d46399fe0ff0087795cd20760026040516100819190610154565b60405180910390a260037f8f17dc823e2f9fcdf730b8182c935574691e811e7d46399fe0ff0087795cd20760046040516100bb9190610154565b60405180910390a25f15157f3b29b9f6d15ba80d866afb3d70b7548ab1ffda3ef6e65f35f1cb05b0e2b29f4e60016040516100f69190610154565b60405180910390a2565b60017f8f17dc823e2f9fcdf730b8182c935574691e811e7d46399fe0ff0087795cd20760026040516101329190610154565b60405180910390a2565b5f819050919050565b61014e8161013c565b82525050565b5f6020820190506101675f830184610145565b9291505056fea2646970667358221220849e3d1e3b2b8dcbbcb464345f7acdcd0dba6afbd8092e9d6e09f503a06b98a764736f6c634300081c0033"}},"version":"0.8.28+commit.7893614a.Darwin.appleclang"}

accounts/abi/bind/v2/internal/contracts/events/contract.sol

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,4 +33,8 @@ contract C {
3333
constructor() {
3434
// do something with these
3535
}
36+
37+
fallback() external {
38+
39+
}
3640
}

accounts/abi/bind/v2/lib.go

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,3 +208,34 @@ func DefaultDeployer(opts *TransactOpts, backend ContractBackend) DeployFn {
208208
return addr, tx, nil
209209
}
210210
}
211+
212+
// PackReceive is a no-op function for crafting a call/transaction to the
213+
// receive function of a contract. When defined by the contract ABI, the
214+
// receive function is called when the calldata input is absent or is not
215+
// prepended with the function selector bytes of another function.
216+
//
217+
// This function simply returns an empty byte slice.
218+
func PackReceive() []byte {
219+
return []byte{}
220+
}
221+
222+
// PackFallback is used for crafting the input of a call/transaction to a
223+
// contract with a fallback method defined. Note: nil should be passed as the input
224+
// unless the target contract defines a fallback function that takes calldata
225+
// input.
226+
//
227+
// The input bytes to the fallback function are not ABI-encoded, so this
228+
// function simply returns the input slice.
229+
func PackFallback(input []byte) []byte {
230+
return input
231+
}
232+
233+
// UnpackFallback decodes the result of a call to a contract's fallback
234+
// function. It should only be used if the target contract defines a
235+
// fallback function that returns a result.
236+
//
237+
// The inputs/outputs to the fallback function are not ABI-encoded, so this
238+
// function simply returns the input slice.
239+
func UnpackFallback(input []byte) ([]byte, error) {
240+
return input, nil
241+
}

0 commit comments

Comments
 (0)