From 7f99cab6bcea7f465ea300614e40ea53bd99cb1f Mon Sep 17 00:00:00 2001 From: arnaudberger Date: Thu, 17 Oct 2024 20:08:59 -0400 Subject: [PATCH] fix starknet codegen --- starknet-events/contract.go | 24 ++++++++++----------- starknet-events/templates/src/lib.rs.gotmpl | 2 +- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/starknet-events/contract.go b/starknet-events/contract.go index 33af83a..4dbb38c 100644 --- a/starknet-events/contract.go +++ b/starknet-events/contract.go @@ -28,8 +28,6 @@ type Contract struct { Abi *ABI emptyABI bool abiFetchedInThisSession bool - - PaddedAddress string } func (c *Contract) Identifier() string { return c.Name } @@ -89,14 +87,14 @@ func (c *Contract) fetchABI(config *ChainConfig) (string, error) { } emptyField := felt.Felt{} - addressToFelt, err := emptyField.SetString(c.PaddedAddress) + addressToFelt, err := emptyField.SetString(c.AddressWithoutPrefix()) if err != nil { return "", fmt.Errorf("converting address to felt: %w", err) } classOutput, err := client.ClassAt(ctx, blockId, addressToFelt) if err != nil { - return "", fmt.Errorf("calling class at for adderss: %s : %w", c.PaddedAddress, err) + return "", fmt.Errorf("calling class at for adderss: %s : %w", c.AddressWithoutPrefix(), err) } var contractABI string @@ -116,19 +114,19 @@ func (c *Contract) fetchABI(config *ChainConfig) (string, error) { // In some explorers (Ex: Starkscan) the address is padded on 66 characters with the prefix 0x // The Contract is containing both, the padded address or the raw one without leading zeros... func (c *Contract) handleContractAddress(inputAddress string) { - // ADDRESS ALREADY PADDED + // Address padded if len(inputAddress) == 66 { - c.Address = inputAddress[0:2] + strings.TrimLeft(inputAddress[2:], "0") - c.PaddedAddress = inputAddress - + c.Address = inputAddress return } - // ADDRESS NOT PADDED - - c.Address = inputAddress - addressWithoutPrefix := inputAddress[2:] + // Address not padded + withoutPrefix := strings.TrimPrefix(inputAddress, "0x") + c.Address = "0x" + strings.Repeat("0", 64-len(withoutPrefix)) + withoutPrefix - c.PaddedAddress = strings.Repeat("0", 64-len(addressWithoutPrefix)) + addressWithoutPrefix return } + +func (c *Contract) AddressWithoutPrefix() string { + return strings.TrimPrefix(c.Address, "0x") +} diff --git a/starknet-events/templates/src/lib.rs.gotmpl b/starknet-events/templates/src/lib.rs.gotmpl index d8b1b3e..ecb06e0 100644 --- a/starknet-events/templates/src/lib.rs.gotmpl +++ b/starknet-events/templates/src/lib.rs.gotmpl @@ -26,7 +26,7 @@ fn map_{{ $contract.Identifier }}_events(transactions: Transactions) -> Result