From 84507c0a0471ec5c55cf7e1d4625d7d7d3129e84 Mon Sep 17 00:00:00 2001 From: Christine Eun Date: Wed, 19 Oct 2022 07:24:37 +0000 Subject: [PATCH] cloud_functions: Added Aptos and Xpla support --- .../cloud_functions/external-data.go | 5 +++ event_database/cloud_functions/go.mod | 2 +- event_database/cloud_functions/go.sum | 2 ++ .../cloud_functions/process-transfer.go | 14 ++++++++ event_database/cloud_functions/process-vaa.go | 34 ++++++++++--------- event_database/cloud_functions/shared.go | 6 +++- .../token-allowlist-mainnet.json | 6 ++++ 7 files changed, 51 insertions(+), 18 deletions(-) diff --git a/event_database/cloud_functions/external-data.go b/event_database/cloud_functions/external-data.go index 083840ff6..168ae568f 100644 --- a/event_database/cloud_functions/external-data.go +++ b/event_database/cloud_functions/external-data.go @@ -78,6 +78,7 @@ func fetchCoinGeckoCoins() map[string][]CoinGeckoCoin { } func chainIdToCoinGeckoPlatform(chain vaa.ChainID) string { + // used when symbol not found in cg's coins/list switch chain { case vaa.ChainIDSolana: return "solana" @@ -113,6 +114,10 @@ func chainIdToCoinGeckoPlatform(chain vaa.ChainID) string { return "moonbeam" case vaa.ChainIDTerra2: return "" // TODO + case vaa.ChainIDAptos: + return "" // TODO: not currently supported + case vaa.ChainIDXpla: + return "" // TODO: not currently supported case vaa.ChainIDEthereumRopsten: return "ethereum" } diff --git a/event_database/cloud_functions/go.mod b/event_database/cloud_functions/go.mod index 53bc6291b..0e0fd9b84 100644 --- a/event_database/cloud_functions/go.mod +++ b/event_database/cloud_functions/go.mod @@ -11,7 +11,7 @@ require ( github.com/cosmos/cosmos-sdk v0.44.5 github.com/gagliardetto/solana-go v1.0.2 github.com/holiman/uint256 v1.2.0 - github.com/wormhole-foundation/wormhole/sdk v0.0.0-20220927161925-37ee5cf4a476 + github.com/wormhole-foundation/wormhole/sdk v0.0.0-20221018051913-c289bd9f57e0 ) replace github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1 diff --git a/event_database/cloud_functions/go.sum b/event_database/cloud_functions/go.sum index e6e1592a1..b728673c6 100644 --- a/event_database/cloud_functions/go.sum +++ b/event_database/cloud_functions/go.sum @@ -1475,6 +1475,8 @@ github.com/whyrusleeping/timecache v0.0.0-20160911033111-cfcb2f1abfee/go.mod h1: github.com/willf/bitset v1.1.3/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= github.com/wormhole-foundation/wormhole/sdk v0.0.0-20220927161925-37ee5cf4a476 h1:bDWDrECFHiIArs5A0ugQnAG0tTWXDGV835smsqBXOz8= github.com/wormhole-foundation/wormhole/sdk v0.0.0-20220927161925-37ee5cf4a476/go.mod h1:Vg7Cbb370S+JihB+of1rWm9Aaxzf0GPPvKszPeSb7AE= +github.com/wormhole-foundation/wormhole/sdk v0.0.0-20221018051913-c289bd9f57e0 h1:MMBGWGmGZGVgPeshIyeoW5MjC2Sj4w58HB4SPJ4fxwY= +github.com/wormhole-foundation/wormhole/sdk v0.0.0-20221018051913-c289bd9f57e0/go.mod h1:Vg7Cbb370S+JihB+of1rWm9Aaxzf0GPPvKszPeSb7AE= github.com/wsddn/go-ecdh v0.0.0-20161211032359-48726bab9208/go.mod h1:IotVbo4F+mw0EzQ08zFqg7pK3FebNXpaMsRy2RT+Ees= github.com/x-cray/logrus-prefixed-formatter v0.5.2/go.mod h1:2duySbKsL6M18s5GU7VPsoEPHyzalCE06qoARUCeBBE= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= diff --git a/event_database/cloud_functions/process-transfer.go b/event_database/cloud_functions/process-transfer.go index e226d0733..a49d56239 100644 --- a/event_database/cloud_functions/process-transfer.go +++ b/event_database/cloud_functions/process-transfer.go @@ -30,6 +30,8 @@ var tokenAddressExceptions = map[string]string{ "67499b7b8f58eaeb3cd81aea1d1ce9f7f722fd7750ceb2bed13e255073c25e2a": "token.sweat", // terra2 "01fa6c6fbc36d8c245b0a852a43eb5d644e8b4c477b27bfab9537c10945939da": "uluna", + // xpla + "017ce8aec5af3bb3ac0158d49771d4c8feba2e54a614fa2a1c0c95e9c4c37185": "axpla", } // returns a pair of dates before and after the input time. @@ -96,6 +98,18 @@ func transformHexAddressToNative(chain vaa.ChainID, address string) string { } // TODO for now use hex/wormhole address string, we'll need to do a contract query to get the native address return address + case vaa.ChainIDAptos: + if val, ok := tokenAddressExceptions[address]; ok { + return val + } + // TODO for now use hex/wormhole address string, we'll need to do a contract query to get the native address + return address + case vaa.ChainIDXpla: + if val, ok := tokenAddressExceptions[address]; ok { + return val + } + // TODO for now use hex/wormhole address string, we'll need to do a contract query to get the native address + return address default: log.Println("cannot process address for unknown chain: ", chain) return "" diff --git a/event_database/cloud_functions/process-vaa.go b/event_database/cloud_functions/process-vaa.go index 85da59f02..c6f34465c 100644 --- a/event_database/cloud_functions/process-vaa.go +++ b/event_database/cloud_functions/process-vaa.go @@ -54,22 +54,24 @@ var NFTEmitters = map[string]string{} var tokenTransferEmitters = map[string]string{ // mainnet - "ec7372995d5cc8732397fb0ad35c0121e0eaa90d26f828a534cab54391b3a4f5": "wormDTUJ6AWPNvk59vGQbDvGJmqbDTdgWgAqcLBCgUb", // solana - "0000000000000000000000003ee18b2214aff97000d974cf647e7c347e8fa585": "0x3ee18B2214AFF97000D974cf647E7C347E8fa585", // ethereum - "0000000000000000000000007cf7b764e38a0a5e967972c1df77d432510564e2": "terra10nmmwe8r3g99a9newtqa7a75xfgs2e8z87r2sf", // terra - "000000000000000000000000b6f6d86a8f9879a9c87f643768d9efc38c1da6e7": "0xB6F6D86a8f9879A9c87f643768d9efc38c1Da6E7", // bsc - "0000000000000000000000005a58505a96d1dbf8df91cb21b54419fc36e93fde": "0x5a58505a96d1dbf8df91cb21b54419fc36e93fde", // polygon - "0000000000000000000000000e082f06ff657d94310cb8ce8b0d9a04541d8052": "0x0e082F06FF657D94310cB8cE8B0D9a04541d8052", // avalanche - "0000000000000000000000005848c791e09901b40a9ef749f2a6735b418d7564": "0x5848c791e09901b40a9ef749f2a6735b418d7564", // oasis - "0000000000000000000000007c9fc5741288cdfdd83ceb07f3ea7e22618d79d2": "0x7c9fc5741288cdfdd83ceb07f3ea7e22618d79d2", // fantom - "00000000000000000000000051b5123a7b0F9b2bA265f9c4C8de7D78D52f510F": "0x51b5123a7b0F9b2bA265f9c4C8de7D78D52f510F", // aurora - "000000000000000000000000ae9d7fe007b3327AA64A32824Aaac52C42a6E624": "0xae9d7fe007b3327AA64A32824Aaac52C42a6E624", // acala & karura - "0000000000000000000000005b08ac39EAED75c0439FC750d9FE7E1F9dD0193F": "0x5b08ac39EAED75c0439FC750d9FE7E1F9dD0193F", // klaytn - "000000000000000000000000796Dff6D74F3E27060B71255Fe517BFb23C93eed": "0x796Dff6D74F3E27060B71255Fe517BFb23C93eed", // celo - "148410499d3fcda4dcfd68a1ebfcdddda16ab28326448d4aae4d2f0465cdfcb7": "contract.portalbridge.near", // near - "000000000000000000000000B1731c586ca89a23809861c6103F0b96B3F57D92": "0xB1731c586ca89a23809861c6103F0b96B3F57D92", // moonbeam - "a463ad028fb79679cfc8ce1efba35ac0e77b35080a1abe9bebe83461f176b0a3": "terra153366q50k7t8nn7gec00hg66crnhkdggpgdtaxltaq6xrutkkz3s992fw9", // terra2 - "67e93fa6c8ac5c819990aa7340c0c16b508abb1178be9b30d024b8ac25193d45": "842126029", // algorand + "ec7372995d5cc8732397fb0ad35c0121e0eaa90d26f828a534cab54391b3a4f5": "wormDTUJ6AWPNvk59vGQbDvGJmqbDTdgWgAqcLBCgUb", // solana + "0000000000000000000000003ee18b2214aff97000d974cf647e7c347e8fa585": "0x3ee18B2214AFF97000D974cf647E7C347E8fa585", // ethereum + "0000000000000000000000007cf7b764e38a0a5e967972c1df77d432510564e2": "terra10nmmwe8r3g99a9newtqa7a75xfgs2e8z87r2sf", // terra + "000000000000000000000000b6f6d86a8f9879a9c87f643768d9efc38c1da6e7": "0xB6F6D86a8f9879A9c87f643768d9efc38c1Da6E7", // bsc + "0000000000000000000000005a58505a96d1dbf8df91cb21b54419fc36e93fde": "0x5a58505a96d1dbf8df91cb21b54419fc36e93fde", // polygon + "0000000000000000000000000e082f06ff657d94310cb8ce8b0d9a04541d8052": "0x0e082F06FF657D94310cB8cE8B0D9a04541d8052", // avalanche + "0000000000000000000000005848c791e09901b40a9ef749f2a6735b418d7564": "0x5848c791e09901b40a9ef749f2a6735b418d7564", // oasis + "0000000000000000000000007c9fc5741288cdfdd83ceb07f3ea7e22618d79d2": "0x7c9fc5741288cdfdd83ceb07f3ea7e22618d79d2", // fantom + "00000000000000000000000051b5123a7b0F9b2bA265f9c4C8de7D78D52f510F": "0x51b5123a7b0F9b2bA265f9c4C8de7D78D52f510F", // aurora + "000000000000000000000000ae9d7fe007b3327AA64A32824Aaac52C42a6E624": "0xae9d7fe007b3327AA64A32824Aaac52C42a6E624", // acala & karura + "0000000000000000000000005b08ac39EAED75c0439FC750d9FE7E1F9dD0193F": "0x5b08ac39EAED75c0439FC750d9FE7E1F9dD0193F", // klaytn + "000000000000000000000000796Dff6D74F3E27060B71255Fe517BFb23C93eed": "0x796Dff6D74F3E27060B71255Fe517BFb23C93eed", // celo + "148410499d3fcda4dcfd68a1ebfcdddda16ab28326448d4aae4d2f0465cdfcb7": "contract.portalbridge.near", // near + "000000000000000000000000B1731c586ca89a23809861c6103F0b96B3F57D92": "0xB1731c586ca89a23809861c6103F0b96B3F57D92", // moonbeam + "a463ad028fb79679cfc8ce1efba35ac0e77b35080a1abe9bebe83461f176b0a3": "terra153366q50k7t8nn7gec00hg66crnhkdggpgdtaxltaq6xrutkkz3s992fw9", // terra2 + "67e93fa6c8ac5c819990aa7340c0c16b508abb1178be9b30d024b8ac25193d45": "842126029", // algorand + "0000000000000000000000000000000000000000000000000000000000000001": "0x576410486a2da45eee6c949c995670112ddf2fbeedab20350d506328eefc9d4f", // aptos + "8f9cf727175353b17a5f574270e370776123d90fd74956ae4277962b4fdee24c": "xpla137w0wfch2dfmz7jl2ap8pcmswasj8kg06ay4dtjzw7tzkn77ufxqfw7acv", //xpla // devnet "c69a1b1a65dd336bf1df6a77afb501fc25db7fc0938cb08595a9ef473265cb4f": "B6RHG3mfcckmrYN1UhmJzyS1XX3fZKbkeUcpJe9Sy3FE", // solana diff --git a/event_database/cloud_functions/shared.go b/event_database/cloud_functions/shared.go index b82410687..1cee9d7d8 100644 --- a/event_database/cloud_functions/shared.go +++ b/event_database/cloud_functions/shared.go @@ -239,7 +239,7 @@ type ( // ChainIDs to compute TVL/stats for // Useful to exclude chains we don't want to compute TVL for which can improve performance // (notably PythNet is excluded, ChainID 26) -var tvlChainIDs = []vaa.ChainID{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18} +var tvlChainIDs = []vaa.ChainID{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 22, 28} func chainIdStringToType(chainId string) vaa.ChainID { switch chainId { @@ -277,6 +277,10 @@ func chainIdStringToType(chainId string) vaa.ChainID { return vaa.ChainIDMoonbeam case "18": return vaa.ChainIDTerra2 + case "22": + return vaa.ChainIDAptos + case "28": + return vaa.ChainIDXpla case "10001": return vaa.ChainIDEthereumRopsten } diff --git a/event_database/cloud_functions/token-allowlist-mainnet.json b/event_database/cloud_functions/token-allowlist-mainnet.json index 9eb5f9d40..40132a650 100644 --- a/event_database/cloud_functions/token-allowlist-mainnet.json +++ b/event_database/cloud_functions/token-allowlist-mainnet.json @@ -170,5 +170,11 @@ }, "18": { "uluna": "terra-luna-2" + }, + "22": { + "a867703f5395cb2965feb7ebff5cdf39b771fc6156085da3ae4147a00be91b38": "aptos" + }, + "28": { + "axpla": "xpla" } }