Documentation
¶
Overview ¶
Package abi provides helpers for working with contract ABIs beyond what generated bindings offer: address auto-discovery via the FWSS root of trust, generic event extraction from receipts, and PieceCID <-> contract struct conversions.
Index ¶
- Variables
- func DecodePieceCID(raw pdpverifier.CidsCid) (cid.Cid, error)
- func DecodePieceCIDs(raw []pdpverifier.CidsCid) ([]cid.Cid, error)
- func EncodePieceCID(c cid.Cid) pdpverifier.CidsCid
- func EncodePieceCIDs(cids []cid.Cid) []pdpverifier.CidsCid
- func ExtractEvent(receipt *types.Receipt, contractABI *ethabi.ABI, eventName string, ...) error
- type Call3
- type ContractCaller
- type ResolvedAddresses
- type Result3
Constants ¶
This section is empty.
Variables ¶
var ErrEventNotFound = errors.New("event not found in receipt")
ErrEventNotFound is returned when the named event is not present in the receipt's logs.
Functions ¶
func DecodePieceCID ¶
func DecodePieceCID(raw pdpverifier.CidsCid) (cid.Cid, error)
DecodePieceCID parses a CidsCid back into a cid.Cid.
func DecodePieceCIDs ¶
func DecodePieceCIDs(raw []pdpverifier.CidsCid) ([]cid.Cid, error)
DecodePieceCIDs batches DecodePieceCID over a slice. Returns the first decoding error encountered.
func EncodePieceCID ¶
func EncodePieceCID(c cid.Cid) pdpverifier.CidsCid
EncodePieceCID converts a cid.Cid to the on-chain Cids.Cid struct shape (the bindings alias it as CidsCid). The stored bytes are the raw CID byte representation (cid.Bytes()).
func EncodePieceCIDs ¶
func EncodePieceCIDs(cids []cid.Cid) []pdpverifier.CidsCid
EncodePieceCIDs batches EncodePieceCID over a slice.
func ExtractEvent ¶
func ExtractEvent(receipt *types.Receipt, contractABI *ethabi.ABI, eventName string, emitter common.Address, dst any) error
ExtractEvent finds the first log in receipt matching the event named eventName in contractABI, emitted by the optional address filter (zero address = any emitter). Non-indexed fields are unpacked into dst, which must be a pointer to a compatible struct or slice as expected by go-ethereum's abi.UnpackIntoInterface. Indexed fields are not populated; use a typed bindings helper if you need indexed topic values.
Types ¶
type ContractCaller ¶
type ContractCaller interface {
CallContract(ctx context.Context, call ethereum.CallMsg, blockNumber *big.Int) ([]byte, error)
}
ContractCaller is the RPC surface used by address and multicall helpers.
type ResolvedAddresses ¶
type ResolvedAddresses struct {
FWSS common.Address
PDPVerifier common.Address
SPRegistry common.Address
USDFC common.Address
Payments common.Address
ViewContract common.Address
FilBeamBeneficiary common.Address
SessionKeyRegistry common.Address
}
ResolvedAddresses holds the set of contract addresses that FWSS points to, plus FWSS itself.
func ResolveAddresses ¶
func ResolveAddresses(ctx context.Context, caller ContractCaller, fwssAddr common.Address) (*ResolvedAddresses, error)
ResolveAddresses reads address pointers directly from the FWSS contract. fwssAddr must be non-zero. Any RPC or decoding failure returns an error.