* sdk/js: Added repairVaa & test
* fixed unnecessary comments
* Separated rpc call from base repairVaa function. removed console logs and added throws
* removed unncessary else statement
* removed unnecessary async
* Skipping rpc call test for current guardian set
* Clean up minor formatting
* Optimism mainnet deploy
* node: added OP token to manual_tokens
* Add to readiness
* File should not have been committed
* Remove readiness since it goes with watcher
* Allow optimism watcher in mainnet
* Add to devnet config
Co-authored-by: Christine Eun <ceun@jumptrading.com>
* go sdk - BatchVAA structs
* make VAA body unmarshaling DRY
* implement binary encoding interfaces for VAAs
* validate observation length before unmarshaling
* move shared VerifySignatures logic to new function
* make SigningMsg a delegate call
* normalize ID of vaa types
* add BatchVAA version to signingBody
* add Attestation interface with shared VAA methods
* add data integrity checks to batchVAA unmarshal
* sdk/js: aptos
* sdk/aptos: change api interface to be more flexible
sdk/aptos: add attestToken
sdk/aptos: added createdWrapped
sdk/aptos: add getForeignAsset
sdk/aptos: stricter sanity check for fully qualified type
sdk/aptos: ensure addresses are left padded
sdk/aptos: check if asset exists in getForeignAsset
sdk/aptos: stricter sanity check - hex prefix can't be capital
sdk/aptos: add updatewrapped
sdk/aptos: update readme with token attestation example
sdk/aptos: added transfer
sdk/aptos: add getIsTransferCompleted
sdk/aptos: add isWrappedAsset and getOriginalAsset
sdk/aptos: add redeem
sdk/aptos: make init tokenbridge entry func
* sdk/aptos: separated signing/submitting txs from creating raw txs
* clients/js: hash aptos fully qualified type to get address
* sdk/aptos: return payload from api instead of rawtx
* sdk/aptos: derive token info from vaa
* sdk/aptos: fix getAssetFullyQualifiedType for native asset
* sdk/aptos: add min gas price
* sdk/aptos: bump aptos version
* sdk/aptos: dont require 0x in front of addresses
* sdk/aptos: progress on e2e tests
* sdk/aptos: upgrade resource address derivation
This was changed recently
25696fd266/aptos-move/framework/aptos-framework/sources/account.move (L90-L95)
* sdk/js: fix getForeignAssetAptos
* sdk/js: update testnet aptos address
* sdk/js: update aptos entry functions
* sdk/aptos: fix parsesequencefromlog
* sdk/aptos: throw errors instead of string literal
* sdk/aptos: update testnet/mainnet addresses
* sdk/aptos: fix completeTransfer and getOriginalAsset
* sdk/aptos: update transferTokens to take in type and remove wormholeFee param
* sdk/aptos: add typeToExternalAddress utility
* sdk/js: update parseSequenceFromLogAptos
* sdk/js: test version bump again
* sdk/aptos: make transfer param type consistent
* sdk/aptos: test transfer to another chain test done
* sdk/aptos: use completeTransferAndRegister
* sdk/aptos: allow tryNativeToHexString to take in account addresses
* sdk/aptos: finish e2e tests
* sdk/aptos: test all apis
* sdk/aptos: add registerCoin utility
* sdk/js: utility to submit script bytecode to chain
* sdk/aptos: update test to be idempotent
* sdk/aptos: stricter check on aptos type
* clients/js: remove unused imports from rebase
* sdk/aptos: change node and faucet urls in ci
Co-authored-by: aki <akshath@live.com>
Co-authored-by: Evan Gray <battledingo@gmail.com>
* Prepare to deploy Xpla to mainnet
* Update SDK version
* Fix messed up error message
* Allow tests to pass with no XPLA tokens
* Make deploy script support testnet
* Update token bridge addresses after redeploy
* ethereum: add optimism testnet
* sdk/js: add optimism testnet
* ethereum: put back network id
* Revert "ethereum: put back network id"
This reverts commit 71f68c50d2.
* ethereum: put back network id
* ethereum: file cleanup
* node: eth publish immediately
Change-Id: I242f02d0ed5bcced5ed366a512c07d5757b300e8
* testing: immediate publish test
* Move magic number to the sdk
Change-Id: I806f73d4442af4736aa6e5fc1c8e48e434c4a6d4
Co-authored-by: Evan Gray <battledingo@gmail.com>
* near-sdk-refactor: Fix attest
: Fix missing function calls
: make near on near
: renamed tryHexToNativeStringNear
* near-sdk-refactor: bumped near-sdk-js version
Co-authored-by: Josh Siegel <jsiegel@jumptrading.com>
The wormhole sdk is a new go module in the sdk/ directory. This
initially contains the *_consts.go files from the common package in the
top-level sdk package and the entire vaa package as a sub-package.
For go reasons this needs to be in the sdk directory itself (rather than
a sdk/go subdir). To prevent the go tooling from looking into the other
non-go subdirs, add an empty go.mod file in each one. See
golang issue 42965 for more details on why we can't have nice
things (I'm deliberately not linking to stop github from spamming that
issue).
This does not require a transaction simulation, and should serve as the
basis for future cosmwasm sdk functions in the `getIsTransferCompleted*`
family.
Before this check, users were able to lose funds by sending money to an
address that's shorter than 32 bytes.
This commit is essentially a backport of the fix from the new cosmwasm contract.
`canonicalAddress` and `humanAddress` are useful functions for all
cosmos chains so move it into a new cosmos package. This also means we
need to stop hardcoding "terra" in `humanAddress` and take the human
readable part as a parameter instead.
* solana: Add "msg.sender" and remove fee from payload3
* solana: update payload3 instruction to include the sender account
* solana: allow sending payload 3s to program ids directly
Co-authored-by: Csongor Kiss <ckiss@jumptrading.com>
* algo - add stuff to tilt
* terra: fix terra test (#1231)
* terra: fix terra test
* Update terra git bits
Co-authored-by: Jeff Schroeder <jeffschroeder@computer.org>
* algo - add stuff to tilt
Co-authored-by: Evan Gray <56235822+evan-gray@users.noreply.github.com>
Co-authored-by: Jeff Schroeder <jeffschroeder@computer.org>
2) Add tests for payload3
3) Change the contract API for payload3 so that the destination is the appId instead of the app address
and no longer part of the data
4) add a testApp into devnet
* sdk/js: improve type safety + add documentation
* sdk/js: add support for chain names
* sdk/js: fix boolean conditional bug in transferFromSolana
* sdk/js: remove unsafe ChainId coercions in sdk
* sdk/js: Chain id 0
This is a legit chain id that some governance VAAs target
* sdk/js: Add mainnet and testnet contract addresses
* sdk/js: bump version to 0.3.0
* sdk/js: limit minor version changes
* sdk/js: update contracts and add devnet
Co-authored-by: Csongor Kiss <ckiss@jumptrading.com>
Co-authored-by: Evan Gray <battledingo@gmail.com>
* algo/tests: enable relayer test
* algo/tests: increase timeout
* algo/tests: split tests into unit and integration
* algo/tests: move tests around
* algo/tests: remove file
* algo/tests: make it not optimize in dev mode @ gusc1a-ossdev-jsl5
* algo/tests: another test fix @ gusc1a-ossdev-jsl5
Co-authored-by: Josh Siegel <jsiegel@jumptrading.com>
* Initial Celo support
Change-Id: Iee98ee29a8b09af9ca76945792b750d96a170702
* Watcher support
* Fix high level make file
* Remove node binary committed by mistake
* Port change from EthWatcher to CeloWatcher
* Use docker to build ABIs
* Refactor watcher to eliminate massive redunancy
* Fix lint-and-tests to handle multiple defs on link
* Minor code cleanup
* Celo should use ganache in devnet
* Prep for mainnet deploy
* Code review rework
* Remove celo from sdk package.json
The terra tests had bit rotted quite terribly. It seems no one has run
them in almost a year because the API changed with the 0.14 release of
cosmwasm_vm in April, 2021.
Completely remove cosmwasm_vm from dev-dependencies. The tests aren't
doing anything that requires interacting with the wasm code and can just
test the relevant functions directly.
Once this goes in the tests should be running in the CI so hopefully no
one will be able to push any more breaking changes.
commit-id:537d95e6
* Klaytn support for testnet
Change-Id: Id0647fd6c603ab298f860c2cae20481555467315
* token_bridge client changes
Change-Id: If49ba994a67041044bdec054f19e69b4cfc2785b
* Get rid of special handling
* More cleanup
* Need to add Klaytn to structs tests
* Update SDK version
* Add SDK version
* fix klaytn bridge chain id
Co-authored-by: Evan Gray <battledingo@gmail.com>
* initial spy-relayer
* Update spy_relayer Dockerfile
* added example mainnet config files
* split out private keys into its own ENV variable
* Update spy relayer supportedChains.json
To remove the `walletPrivateKey` entries. All of the private keys have
been split out into their own json file.
* fixed evm private key env parse
* missing solana accounts report 0 balance, rather than error
* wallet address is logged in debug
* spy_relayer: enabled prometheus default metrics
Also set a prefix of `relayer_`
* spy_relayer: updates to the prometheus bits
* Use a single metric registry
* Use a simpler metric name and add labels for individual wallets
* spy_relayer: human readable app mode in the metrics
[ listener | relayer | both ]
* spy_relayer: unify metrics
* remove the collection of default metrics
* hardcode the `spy_relayer_` prefix on all custom metrics
* fixed dep arrays, nullable terra token/balance info
* attempt stack debug
* debug pullTerraBalance
* provider http or ws
* update sdk
* logging for tokenAddress is 0
* fix foreign address calc
* fix calcLocalAddressesTerra
* relayer/spy_relayer: update prometheus helpers
Add / url handler for the ingress-gce stupid load balancer that
doesn't support custom url healthchecks unless you make a BackendConfig
custom resource definition.
* logging refinement
* use chain name in prometheus
* adjust retry timeout calculation
* spy_relayer: update prometheus bits
* improved error handling
* relayer ui improvements
* prep sdk release
* use latest sdk, manual redeem button
* relaying ux improvements
* gas price fix
* shortened terra success log
* use gh base relayer list
* fix prometheus urls
* Update prometheus metric name
* only show TPS warning on mainnet
* show relayer fee in source preview
* fix unwrap check
* add native bool to balance metric
* logging improvements
* add feeRecipientAddress to redeemOnSolana
* gather solana fees
* remove relayer ws support
* add nativeCurrencySymbol to ChainConfigInfo
* fix solana native symbol
* demoteWorking option, logger contexts
* scoped logging
* bridge_ui: unwrap native
* add evm wallet monitor test
* solana vaa parsing fix
* add monitorRedis
* make Jeff's brain happy
* log demoting keys
* register redisQueue metric
* human readable redisQueue metric
* fix timestamp inconsistency
* use scopedLogger for the first level of workers
* pull wallet balances in parallel
* more scoped logging
* pick a solana fee
* moving keys log improvement
* update eth gas calculations based on recent txs
* use postVaaSolanaWithRetry
* split success and failures by chain
* fix using terraCoin
* check prom every 10s
* batch getting evm token balances
* batch calcLocalAddressesEVM
* debug worker logging
* log retry number
* support Polygon?
* reset status on demotion
* enhance!
* update avax fee
Co-authored-by: Chase Moran <chasemoran45@gmail.com>
Co-authored-by: Kevin Peters <kpeters@jumptrading.com>
Co-authored-by: Evan Gray <battledingo@gmail.com>
* tests run in tilt / ci
* changed bridge_ui test process
* tests use kube proxy when in ci
* fix: allTests.sh permission
* fix: bridge_ui dockerfile sha for amd64
* fix: bridge_ui should use cra test
* fix: ci tests
Co-authored-by: Evan Gray <battledingo@gmail.com>
* Stub out algorand support in wormhole
1) Introduce the algorand chain constant in all the appropriate places
2) Deploy pyth/hernandc algorand smart contracts into devnet
3) Fund all the correct contracts for devnet testing
Change-Id: I6e4402b5b21223b32ea89653f8c7606f5c7f2843
* pr/jsiegel/algorand-v1: ALGORAND is not a EVM chain @ gusc1a-ossdev-jsl1
* pr/jsiegel/algorand-v1: fix lint @ gusc1a-ossdev-jsl1
* pr/jsiegel/algorand-v1: put the requirements into the image @ gusc1a-ossdev-jsl1
* jsiegel/algorand: make the watcher hang forever @ gusc1a-ossdev-jsl1
* jsiegel/algorand: comment these out @ gusc1a-ossdev-jsl1
* jsiegel/algorand: put this back in @ gusc1a-ossdev-jsl1
* jsiegel/algorand: fix guardian example @ gusc1a-ossdev-jsl1
* Generate teal source code
commit-id:a537a109
* jsiegel/algorand: it builds @ gusc1a-ossdev-jsl1
* pr/jsiegel/algorand-v1: add Dockerfile.teal @ gusc1a-ossdev-jsl1
* jsiegel/algorand: improve the dependencies @ gusc1a-ossdev-jsl1
* pr/jsiegel/algorand-v1: Fix up build @ gusc1a-ossdev-jsl1
* dead file
* pr/jsiegel/algorand-v1: remove more stuff @ gusc1a-ossdev-jsl1
* pr/jsiegel/algorand-v1: fix build @ gusc1a-ossdev-jsl1
* pr/jsiegel/algorand-v1: freeze the requirements @ gusc1a-ossdev-jsl1
* pr/jsiegel/algorand-v1: Fix teal to use pipenv @ gusc1a-ossdev-jsl1
* pr/jsiegel/algorand-v1: fix miss-merge @ gusc1a-ossdev-jsl1
Co-authored-by: Leo <leo@certus.one>
Passing the strict lint checks requires a number of backwards-
incompatible changes:
- Rename the NodePrivileged service to NodePrivilegedService.
This is only used in CLI tooling, which are upgraded at the same
time as the server binary.
- The Publicrpc service was renamed to PublicRPCService.
- The EmitterChain type is renamed to ChainID.
- The default value for the ChainID type is renamed to
CHAIN_ID_UNSPECIFIED. This value wasn't referenced anywhere.
- The response and request types for GetLastHeartbeats were updated
to match the rpc method name.
Change-Id: I3954130d3b25ab1f859390407bba3d3c02ffe03c