Commit Graph

68 Commits

Author SHA1 Message Date
Daniel Chew cf7987f4c5
feat(target_chains/fuel): add governance contract (#1518)
* add governance contract

* add fuel ci

* add rust-toolchain

* add executes_governance_instruction test

* add test for SetValidPeriod

* add test for AuthorizeGovernanceDataSourceTransfer

* remove SetWormholeAddress

* add test for SetDataSources

* remove WormholeAddressSetEvent

* remove SetWormholeAddress

* remove SetWormholeAddressPayload

* remove SetWormholeAddressPayload and SetWormholeAddress imports

* remove GovernanceAction::SetWormholeAddress

* address comments

* refactor test

* add comments
2024-05-09 17:42:28 +01:00
guibescos 344f8a9e47
feat: add anchor to pythnet sdk (#1531)
* add anchor to pythnet sdk

* bump

* bump

* bump

* please work

* Solve
2024-05-01 14:39:17 +01:00
guibescos 866b6a5b4b
feat: pyth pull-based push oracle (#1370)
* feat: implement oracle instance

* Go

* Remove key

* Go

* Add instance id, fix conditional deser

* Go

* Rename

* Revert changes to cli

* Checkpoint

* Cleanup deps

* Refactor tests

* Cleanup deps

* Write test

* Fix comment

* Shard id

* ADd tests

* Extract common test utils

* Fix test

* Better name

* Cleanup

* Instance -> shard

* Update test

* Make shard id a u16
2024-04-01 14:43:47 +01:00
guibescos 0e6484daca
perf: use solana hash precompile (#1400) 2024-03-27 15:39:43 +00:00
guibescos 495a2e96b8
chore: add licenses before publishing (#1379) 2024-03-21 19:00:37 +00:00
guibescos 4ffeb9f265
chore: use published version of wormhole packages (#1375)
* Go

* 0.1.0
2024-03-20 20:18:04 +00:00
guibescos 98f83efcbd
fix: typos (#1335)
* Update SECURITY.md

* Update message_buffer.ts

* Update ser.rs

* Let's see

---------

Co-authored-by: Pioua <136521243+dzizazda@users.noreply.github.com>
2024-03-01 23:05:39 +00:00
guibescos 1871ca1bf3
[Solana] More tests (#1263)
* Checkpoint

* Checkpoint

* Cleanup

* Checkpoint, debug

* Go

* Checkpoint

* Fix

* Add new error and test

* Cleanup

* Add another test

* Keep adding errors

* Another test

* Add comment

* More

* Do it

* Again

* Nice (#1265)

* Test governance

* Fix
2024-01-31 16:53:48 +00:00
guibescos b0c6497fca
[solana] Solana tests 2 (#1255)
* Checkpoint

* Checkpoint

* Cleanup

* Checkpoint, debug

* Go

* update comment

* Add ci

* Update solana workflow

* Rename create_guardians

* Signatures

* Add some randomness

* Add randomness

* More randomness

* Do it

* Fix some clippies

* Change trim signatures
2024-01-30 13:55:23 +00:00
guibescos e1db4aad65
[rust] Remove serde_wormhole patch (#1249)
* Do it

* Do it
2024-01-25 20:05:07 +00:00
guibescos 9697fad077
[solana/cosmwasm/near] Rust tests refactor (#1238)
* Try

* Near

* revert

* Try to add CI

* Cleanup

* Cleanup

* Fmt

* cleanup

* Fix CI

* Cleanup

* Cleanup

* Cleanup rust toolchains

* Pin to tag

* Rename to test-utils

* Add deps

* Checkpoint

* Checkpoint

* Checkpoint

* Fix wormhole stub

* Checkpoint

* Start debugging

* Green

* More green

* Cleanup

* More cleanup

* Cleanup

* Factor create_dummy_price_feed_message

* Format

* Cleanup imports

* Cleanup

* Near cleanup:

* Format

* Refactor constants

* cleanup

* More refactor

* Cleanup more magic numbers

* Remove magic numbers

* Cleanup

* Format

* Remove magic numnber
2024-01-25 18:25:07 +00:00
guibescos 6c45ed81ad
Fix pythnet-sdk ci (#1213)
* Fix CI

* Does this work?
2024-01-08 18:09:31 +00:00
guibescos a60279a2cc
[solana-receiver] Post price update (#1189)
* Do it

* Remove keypairs

* add check comment

* Works

* Cleanup deps

* Next

* Add better docs
2023-12-18 11:46:45 +07:00
guibescos 178ad4cb0e
[pythnet-sdk] Bump borsh add borsh to MerklePriceUpdate (#1186)
* Add borsh

* Bump borsh

* Cleanup

* Try

* Cleanup

* Do it

* Add a test
2023-12-15 10:47:22 +07:00
Ali Behjati 7dc0cb80bf feat(hermes): add benchmarks for histroical data 2023-09-08 15:35:58 +02:00
Reisen 7c037ed6fb fix: avoid EnumAccess deserialization paths 2023-06-26 14:12:55 +01:00
Mohammad Amin Khashkhashi Moghaddam 955c81b1cc
Make AccumulatorUpdateData deserialization accept minor version bumps (#909)
* Make AccumulatorUpdateData deserialization accept minor version increases

* Add test for additional bytes at the end of the message
2023-06-23 14:04:05 +01:00
Ali Behjati d07cc9d1ea
[hermes] Add storage tests + refactor (#907)
* [hermes] Add storage tests + refactor

* Bump pythnet_sdk version + update cosmwasm

* Address review feedbacks
2023-06-22 14:38:56 +01:00
Ali Behjati b596090bd8
[hermes] Switch to message structs in pythnet_sdk (#897) 2023-06-19 18:21:39 +02:00
swimricky 9adc340f1d
feat(message-buffer): add .env.pythnet for message buffer init script (#889) 2023-06-14 08:03:02 -07:00
Mohammad Amin Khashkhashi Moghaddam 211bf02450
Implement accumulator updates for cosmwasm (#880)
* Implement accumulator updates for cosmwasm

* Update fee calculation logic for accumulator messages

The fee for accumulator messages is base fee times the number of messages
but the logic remains the same for the batch method
2023-06-13 12:59:29 +02:00
Mohammad Amin Khashkhashi Moghaddam 6014400205
Move message structures from pyth-client repo to pythnet-sdk (#867)
* Move message structures from pyth-client repo to pythnet-sdk

All rust based smart contracts could leverage these structures for deserializing
pyth messages. But having them in pyth-client makes all the smart contracts packages
depend on irrelevant packages such as solana libraries which caused dependency conflicts
With these structs moved here it would be easier to reuse them in other places

The custom (de)serialization logic remains in pyth-client since it was only to reduce binary size of the program deployed on mainnet/pythnet, therefore not necessary to be exposed here.

* Put arbitrary implementations behind quickcheck feature flag

* Expose magic variables and define them once
2023-06-12 19:34:08 +02:00
Ali Behjati 91ce66d19b
[pythnet-sdk] Update wh seq address comment (#879) 2023-06-12 12:57:47 -04:00
Mohammad Amin Khashkhashi Moghaddam e9aae684b1
Add support for 128bit numbers serde (#871)
* Add support for 128bit numbers serde

* Add comment for future plans on large integer serialization
2023-06-12 12:18:09 +02:00
swimricky 91ccaee57c
[message-buffer] improve logging for setup message buffer script (#872)
* chore: better loggging for init script

* fix: change init-buffer script to use npx
2023-06-09 13:44:33 -07:00
Ali Behjati 183081cc20
Expose pythnet message buffer idls (#865) 2023-06-09 14:10:28 +02:00
Reisen 624222e0c8
[pythnet-sdk] Allow as_bytes()/to_bytes() for MerkleRoot/MerklePath (#866)
* feat: allow as_bytes() for MerkleRoot

* feat: add borsh serialization to merkle types
2023-06-08 18:16:25 +01:00
Ali Behjati 7847a79b6a
Update rustfmt (#864) 2023-06-08 15:07:15 +02:00
Reisen 0b7805f285 fix: expose MerkleTree as a real interface that is accumulator friendly 2023-06-08 12:16:50 +01:00
Ali Behjati 0330c9d387
[ci] Fix pre-commit (#863) 2023-06-08 09:45:14 +02:00
guibescos e39db174d0
[pythnet-sdk] Add merkleRoot (#858)
* Add merkleRoot

* Restore file
2023-06-07 12:09:34 +01:00
Mohammad Amin Khashkhashi Moghaddam f764fc8411
Bugfix for magic value check and additional serde test (#860) 2023-06-07 12:50:24 +02:00
Ali Behjati c19f519839 Implement useful methods on PrefixedVec 2023-06-05 15:19:48 +01:00
Reisen 065fba29b1 feat: correct wire format definitions 2023-06-05 15:19:48 +01:00
Reisen a1dff0f5ac feat: add serializers for pyth formats
feat: use pythnet serialization in hermes

Fix vaa validation

Clippy

Update config names

Wrap Store with Arc

Store works perfectly without Arc as all it's elements are behind an Arc
or something similar to that, however a developer might make
mistake to add a field and missing it.

Improve error handling

Update metadata struct

Add metadata

Update Eth listener

Pin wormhole to a version

Fix ws dispatcher

fix: blocking in go recv corrupts tokio runtime

Make network <> store message passing non-blocking

Update logs and revert debug changes
2023-06-05 15:19:48 +01:00
Ali Behjati 866eace744 Add initial version 2023-06-05 15:19:48 +01:00
Reisen af2d7b6e38 feat: add serializers for pyth formats 2023-05-31 16:20:49 +01:00
swimricky 3e5b4bb095
test(pythnet-sdk): add hardcoded expected pythtest accumulator sequence unit test (#846) 2023-05-30 11:17:46 -07:00
swimricky e670f57f89
feat(message-buffer): add init msg buffer pda to script, fix msg buffer pid (#845) 2023-05-26 11:37:06 -07:00
swimricky 8eba51d51b
build(pythnet-sdk): pin wormhole-sdk & serde_wormhole tag (#835) 2023-05-23 12:59:26 -04:00
Ali Behjati 5a75653969
[message-buffer] Fix setup message buffer command (#828) 2023-05-23 09:30:52 -04:00
Reisen 5ee1f20e73
[pythnet] Update serialization for MerkelPath/MerkleAccumulator (#830)
* feat: update serialization for MerkelPath/MerkleAccumulator

* Fix incorrect variable name.
2023-05-22 18:31:54 +01:00
swimricky c23fc8dbad
[message-buffer 17/x] separate payer from admin (#819)
* feat(message-buffer): add payer to all contexts requiring lamports for rent

separate admin from payer of account creation/resize/deletion

* test(message-buffer): add test for same admin & payer

* feat(message-buffer/scripts): keep payer & admin the same in init-buffer script for simplicity
2023-05-16 13:57:09 -04:00
swimricky a115d88b09
[message-buffer 16/x] - integration repo scripts (#818)
* feat(message-buffer/scripts): add init-buffer script for integration repo

* feat(message-buffer/scripts): fix init-buffer scrtips
2023-05-16 12:33:45 -04:00
swimricky f0888549d7
[message-buffer 15/x] - audit fixes (#817)
* fix(message-buffer): set payer as admin in initialize (TOB-PYTH-5)

* fix(message-buffer/delete_buffer): remove auth validation in delete_buffer & add test (TOB-PYTH-7)

* fix(message-buffer): fix non-security-related findings

use constant for seeds, cap max target size, add more tests

* refactor(message-buffer): use seed consts in initialize, remove unused errors

* refactor(message-buffer): address PR comments

refactor missed consts, make initialize more readable
2023-05-16 12:08:36 -04:00
swimricky 78d3c5c4ca
[message-buffer 14/x] - Message buffer/zero copy fixes (#811)
* test(message-buffer): add rust integration tests

add rust-toolchain.toml to pin rust version, add integration tests, update cpi caller auth seeds

* refactor(message-buffer): remove unused test ix

* chore(message-buffer): clean up

* refactor(message-buffer): simple refactor

* test(message-buffer): refactor integration test structure

* refactor(message-buffer): rename

* fix(message-buffer): fix min size check when shrinking msg buffer

* chore(message-buffer): cleanup

* fix(message-buffer): resize borrow bug fix

* test(message-buffer): refactor test util methods into MessageBufferTestContext for less duplication

* test(message-buffer): resolve merge conflicts from repo restructure

* chore(message-buffer): delete commented out code

* feat(message-buffer): use AccountLoader for zero-copy for resize/delete & put_all

* chore(message-buffer): clean up

* style(message-buffer): clean up

* fix(message-buffer): address PR feedback

revert to old put_all impl of using bytemuck for deserializing header, update tests add back old
check

* chore(message-buffer): clean up
2023-05-09 17:18:40 -04:00
swimricky 2e32a22725
[message-buffer 13/x] Rust Integration Tests (#794)
* test(message-buffer): add rust integration tests

add rust-toolchain.toml to pin rust version, add integration tests, update cpi caller auth seeds

* refactor(message-buffer): remove unused test ix

* chore(message-buffer): clean up

* refactor(message-buffer): simple refactor

* test(message-buffer): refactor integration test structure

* refactor(message-buffer): rename

* fix(message-buffer): fix min size check when shrinking msg buffer

* chore(message-buffer): cleanup

* fix(message-buffer): resize borrow bug fix

* test(message-buffer): refactor test util methods into MessageBufferTestContext for less duplication

* test(message-buffer): resolve merge conflicts from repo restructure

* chore(message-buffer): delete commented out code
2023-05-09 13:57:55 -04:00
swimricky 16baae6c99
fix(pythnet-sdk): fix modifiers (#809) 2023-05-09 09:22:12 -04:00
swimricky dab04d639b
[pythnet-sdk]: fix addresses & programIds in pythnet-sdk (#808)
* fix(pythnet-sdk): fix addresses & programIds in pythnet-sdk

* fix(pythnet-sdk): pin solana dev-dependency versions, fix visibility
2023-05-08 15:02:57 -04:00
Reisen 1902dbaa30
pythnet: replace pythnet_sdk with the right files (#803) 2023-05-05 21:04:49 +01:00