From d96afca105323bb0eb6f4a25e1b05bea28f49aca Mon Sep 17 00:00:00 2001 From: Kevin Peters Date: Thu, 10 Mar 2022 22:14:40 +0000 Subject: [PATCH] cloud_functions: use lowercase emitter addresses --- event_database/cloud_functions/process-vaa.go | 27 ++++++++++++++++--- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/event_database/cloud_functions/process-vaa.go b/event_database/cloud_functions/process-vaa.go index ce4c843c0..f7b35f9a9 100644 --- a/event_database/cloud_functions/process-vaa.go +++ b/event_database/cloud_functions/process-vaa.go @@ -7,6 +7,7 @@ import ( "encoding/hex" "fmt" "log" + "strings" "cloud.google.com/go/bigtable" "cloud.google.com/go/pubsub" @@ -20,7 +21,7 @@ type PubSubMessage struct { // The keys are emitterAddress hex values, so that we can quickly check a message against the index to see if it // meets the criteria for saving payload info: if it is a token transfer, or an NFT transfer. -var NFTEmitters = map[string]string{ +var nftEmitters = map[string]string{ // mainnet "0def15a24423e1edd1a5ab16f557b9060303ddbab8c803d2ee48f4b78a1cfd6b": "WnFt12ZrnzZrFZkt2xsNsaNWoQribnuQ5B5FrDbwDhD", // solana "0000000000000000000000006ffd7ede62328b3af38fcd61461bbfc52f5651fe": "0x6FFd7EdE62328b3Af38FCD61461Bbfc52F5651fE", // ethereum @@ -41,7 +42,11 @@ var NFTEmitters = map[string]string{ "0000000000000000000000002b048Da40f69c8dc386a56705915f8E966fe1eba": "0x2b048Da40f69c8dc386a56705915f8E966fe1eba", // ethereum ropesten // TODO "": "", // fantom } -var TokenTransferEmitters = map[string]string{ + +// NFTEmitters will be populated with lowercase addresses +var NFTEmitters = map[string]string{} + +var tokenTransferEmitters = map[string]string{ // mainnet "ec7372995d5cc8732397fb0ad35c0121e0eaa90d26f828a534cab54391b3a4f5": "wormDTUJ6AWPNvk59vGQbDvGJmqbDTdgWgAqcLBCgUb", // solana "0000000000000000000000003ee18b2214aff97000d974cf647e7c347e8fa585": "0x3ee18B2214AFF97000D974cf647E7C347E8fa585", // ethereum @@ -50,7 +55,7 @@ var TokenTransferEmitters = map[string]string{ "0000000000000000000000005a58505a96d1dbf8df91cb21b54419fc36e93fde": "0x5a58505a96d1dbf8df91cb21b54419fc36e93fde", // polygon "0000000000000000000000000e082f06ff657d94310cb8ce8b0d9a04541d8052": "0x0e082F06FF657D94310cB8cE8B0D9a04541d8052", // avalanche "0000000000000000000000005848c791e09901b40a9ef749f2a6735b418d7564": "0x5848c791e09901b40a9ef749f2a6735b418d7564", // oasis - "0000000000000000000000007C9Fc5741288cDFdD83CeB07f3ea7e22618D79D2": "0x7C9Fc5741288cDFdD83CeB07f3ea7e22618D79D2", // fantom + "0000000000000000000000007c9fc5741288cdfdd83ceb07f3ea7e22618d79d2": "0x7c9fc5741288cdfdd83ceb07f3ea7e22618d79d2", // fantom // devnet "c69a1b1a65dd336bf1df6a77afb501fc25db7fc0938cb08595a9ef473265cb4f": "B6RHG3mfcckmrYN1UhmJzyS1XX3fZKbkeUcpJe9Sy3FE", // solana @@ -64,6 +69,9 @@ var TokenTransferEmitters = map[string]string{ // TODO "": "", // fantom } +// TokenTransferEmitters will be populated with lowercase addresses +var TokenTransferEmitters = map[string]string{} + // this address is an emitter for BSC and Polygon. var sharedEmitterAddress = "0000000000000000000000005a58505a96d1dbf8df91cb21b54419fc36e93fde" @@ -250,6 +258,17 @@ func addReceiverAddressToMutation(mut *bigtable.Mutation, ts bigtable.Timestamp, // ProcessVAA is triggered by a PubSub message, emitted after row is saved to BigTable by guardiand func ProcessVAA(ctx context.Context, m PubSubMessage) error { + if len(NFTEmitters) == 0 { + for k, v := range nftEmitters { + NFTEmitters[strings.ToLower(k)] = strings.ToLower(v) + } + } + if len(TokenTransferEmitters) == 0 { + for k, v := range tokenTransferEmitters { + TokenTransferEmitters[strings.ToLower(k)] = strings.ToLower(v) + } + } + data := string(m.Data) if data == "" { return fmt.Errorf("no data to process in message") @@ -263,7 +282,7 @@ func ProcessVAA(ctx context.Context, m PubSubMessage) error { // create the bigtable identifier from the VAA data rowKey := makeRowKey(signedVaa.EmitterChain, signedVaa.EmitterAddress, signedVaa.Sequence) - emitterHex := signedVaa.EmitterAddress.String() + emitterHex := strings.ToLower(signedVaa.EmitterAddress.String()) payloadId := int(signedVaa.Payload[0]) // BSC and Polygon have the same contract address: "0x5a58505a96d1dbf8df91cb21b54419fc36e93fde".