* 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>
Added a `uint256 evmChainId` state variable to the Core, Token and NFT Bridge
contracts. `evmChainId` is compared to `block.chainid` in the `chainId`
function. When they don't match, a "bad fork" Chain ID is returned,
otherwise the Wormhole Chain ID is returned.
* Move quorum out of verifyVM
* Add stub out to demonstrate sol-based tests
* Remove unnecessary import
* Neaten up the quorum conditional
* Another iteration on figuring out the test logic
* Fix indentation
* Refactor quorum and setup unit-test cases
* fix return naming
* More variable name clean up
* Move length check inside loop structure
* Fix condition by wrapping
* Fix syntax error
* fix type definition for testCases
* Drop inline struct usage for simple 2d array
* Fix logic in quorum check
* Make test public and fully qualify quorum
* Make wormhole.sol fail
* Specify where to store testCases
* Define array directly
* Fix syntax error on array definition
* Fix variable name
* Move back to memory-based variable
* Add remove qualified quorum call
* Get really direct on quorum tests
* Simplify quorum logic
* Add test for 19 guardians
* 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
* Add comments to Ethereum Messages.sol contract
* Remove current language, as it's a bit misleading
* Change comment formatting
* Switch to NatSpec comments
* Clean up comments for expired GuardianSet checks
* Clean up comments for expired GuardianSet checks, again
* Fix assert typos
* Restructure data field and add comments
* Move magic hex into named variables
* Add README items for running tests
* Add make test to README
* Show work on core string generation
* Add action transfer fee
* Add more VM integration test cases
* 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>
* Add makefile to run ethereum tests
* Run tests on CI
* single rm in make clean
Co-authored-by: Jeff Schroeder <jeffschroeder@computer.org>
* Fix WETH address in bridge test
Change-Id: Idd7455cc873d2db86c2ccc130bd673b065311e67
* Don't kill ganache-cli if already running
Instead error the test
* eth: omit mainnet stuff from ci
Co-authored-by: Csongor Kiss <ckiss@jumptrading.com>
Co-authored-by: Jeff Schroeder <jeffschroeder@computer.org>
Co-authored-by: Drew Sterioti <asterioti@jumptrading.com>
Co-authored-by: Evan Gray <battledingo@gmail.com>
* ethereum: p2w contract -> p2w emitter, fill in essential envs
Change-Id: I6fa9364a96738d2cc02ec829a31fedba0586d8e8
commit-id:0a56f1f8
* Add p2w-relay, a p2w-sdk integration test
commit-id:6bfab639
* p2w-sdk: Expand README
Change-Id: I17cb547d6aaddc240588923561c26d11a787df2e
commit-id:6ebd6a22
* p2w-sdk: don't build ETH contracts, only the types
Change-Id: I7cbd18328227700635d7688aa24a9671e8919fcd
commit-id:adf079f7
* p2w: configurability and sane envs
commit-id:f10fd90e
* Solitaire: Implement Option<T> support in structs
commit-id:31aa12d6
* bridge/governance.rs: Stop pestering about EMITTER_ADDRESS
commit-id:d5bd7234
* p2w-attest: price batching
This commit introduces support for multiple Pyth product/price pairs
per call. The initial maximum batch size is 5 and is enforced using a
`P2W_MAX_BATCH_SIZE` constant.
solana/pyth2wormhole/program:
* On-chain batching logic
* Batch message parsing logic
solana/pyth2wormhole/client:
* Off-chain batching logic - divides any number of symbols into
largest possible batches
* Use a multi-symbol config file instead of CLI arguments
third_party/pyth/p2w-sdk:
* Expose batch parsing logic
third_party/pyth/p2w-relay:
* Comment out target chain calls until ETH contract supports batching
* Test the batch parsing function
third_party/pyth/p2w_autoattest.py:
* Generate and use the symbol config file with pyth2wormhole-client
third_party/pyth/pyth_publisher.py:
* Add a configurable number of mock Pyth symbols
* Adjust HTTP endpoint for multiple symbols
commit-id:73787a61
* p2w-attest: mention attestation size in batch
This commit ensures that no matter the attestation format, a batch
will never contain attestations of different sizes. This guarantee
enables forward compatibility by adding new constant-size fields at
the end of a batch at all times. An older implementation will simply
not consume the remaining newer values while respecting the stated
batch member alignment.
commit-id:210da230
* pyth2wormhole-client: use fresh blockhashes, harden batch errors
This commit makes sure we don't have to deal with expired transactions
due to stale blockhashes. The problem existed with larger symbol
configs as well as on Solana mainnet. Additionally, the attestation logic
now treats transaction errors as non-critical - a failure for a batch
does not prevent attestation attempts for batches farther in the queue
commit-id:5e704f8b
This allows requesting attestations for various commitment/confirmation levels. This is helpful for low-latency applications like Pyth.
Change-Id: Ib49ace163365106b227613d2f66b787b3e5f5461
This splits the Ethereum contract into a generic Wormhole and a
purpose-specific token transfer module that uses the main contract
for verification.
This acts as a draft for this structure.
Change-Id: I59e133dd7558d5e046045e464e4740241c696d5f
Ran `npm update`. This resolves a ganache crash.
We can't really use `npm ci` because it's intentionally incompatible
with our incremental development workflow. We'll want to use it for
production builds, though.
ghstack-source-id: c66c5d4647
Pull Request resolved: https://github.com/certusone/wormhole/pull/89