Commit Graph

465 Commits

Author SHA1 Message Date
Reisen 654ccfaabf solana/migration: dont transfer dust into the pool
Change-Id: I1f7c5df4f959f1a084569ad92767b05264642ffe
2021-09-13 15:05:46 +00:00
Hendrik Hofstadt 88933d13e2 Build token migration program
Change-Id: I78b10931fb09f5bca457c1fb36095fdbcea9e65f
2021-09-13 14:01:16 +00:00
Reisen c116b3c813 solana/token_bridge: fix incorrect byte iterator
Change-Id: I4bcb3217c34fda24463886aa35de691238f8bdc4
2021-09-13 12:31:11 +00:00
Reisen 2beaada181 solana/token_bridge: allow invalid utf-8 metadata
Change-Id: Ifcc45d3a654cd7aa386089728c1f354352c5ebe2
2021-09-13 11:52:41 +00:00
Reisen 3a9264f6e4 solana/nft_bridge: allow invalid utf-8 metadata
Change-Id: If2fba5d394b8afab34ed0f12714851d0121a2924
2021-09-13 11:52:41 +00:00
Hendrik Hofstadt 47c5834e6f Cache NFT bridge build
Change-Id: Ib67a3780cd146edd570111cbc443c63bae6219ef
2021-09-13 12:49:40 +02:00
Reisen 20386593ed solana/bridge: fix tests to use bool sigcheck
Change-Id: I8d59016ae926e9cdcdc6114db8c640889fc5c9ee
2021-09-13 10:29:29 +00:00
Reisen ca509f2d73 solana/bridge: re-organize account data
Change-Id: Ia215c584e5d00145d8ad0250c303ca9503d8432a
2021-09-13 10:29:29 +00:00
Reisen 3714624fb0 solana/token-bridge: add original_decimal tracking
Change-Id: I0989e2f75e7f4d2b0cf2c2e9fb35c26d288a902b
2021-09-13 08:23:50 +00:00
Evan Gray 9ea0369ab0 nft_bridge fixes
Change-Id: I9420863384e752725cfc75c8b5a21f64be2792b1
2021-09-10 20:32:46 -04:00
Hendrik Hofstadt 6ff21f8d01 add ethereum NFT bridge
Change-Id: I5cc8cfe431f5f9b043adc7baf662760ffe9e7a35
2021-09-10 23:43:14 +00:00
Hendrik Hofstadt a2b3d111f4 add nft bridge skeleton
Change-Id: I69449e95415cd94b7de4528fe4002b241e1e6b95
2021-09-10 17:12:42 +00:00
David Paryente 8d15138d57 Revert "Allow Sollet asset migration"
This reverts commit 59e0e586ef.

Reason for revert: not supporting external mints

Change-Id: Ia3ca9ccc24e1ab20c7f8097aff0868d94e4bb7af
2021-09-10 13:24:17 +00:00
David Paryente 7a504108cd Revert "solana/token_bridge: sollet mints renamed to generic external"
This reverts commit 496d2385f5.

Reason for revert: not supporting external mints

Change-Id: I996f4fcbfb71a6539094f2d4a6adbff481fefb7d
2021-09-10 13:08:23 +00:00
David Paryente e6a6c39620 Revert "solana/token_bridge: test wrapped asset transfers"
Revert submission 1325

Reason for revert: not supporting external mints
Reverted Changes:
I2bf59ecd3:solana/token_bridge: calculate diff from original ...
I598373740:solana/token_bridge: check balance and truncation
I67c7a1c7a:solana/token_bridge: test wrapped asset transfers

Change-Id: I00d3c23c16fbb985457d841139fea25c5697dab1
2021-09-10 13:08:06 +00:00
David Paryente 08fcb1e9ec Revert "solana/token_bridge: check balance and truncation"
Revert submission 1325

Reason for revert: not supporting external mints
Reverted Changes:
I2bf59ecd3:solana/token_bridge: calculate diff from original ...
I598373740:solana/token_bridge: check balance and truncation
I67c7a1c7a:solana/token_bridge: test wrapped asset transfers

Change-Id: I05a950e3142e0386351a67fc7d051000f3481c8b
2021-09-10 13:08:06 +00:00
David Paryente 698091b2b1 Revert "solana/token_bridge: calculate diff from original mint"
Revert submission 1325

Reason for revert: not supporting external mints
Reverted Changes:
I2bf59ecd3:solana/token_bridge: calculate diff from original ...
I598373740:solana/token_bridge: check balance and truncation
I67c7a1c7a:solana/token_bridge: test wrapped asset transfers

Change-Id: I655694508774e40a489b810d7b4f9c17824ab5a3
2021-09-10 13:08:06 +00:00
Stan Drozd f24f86adf5 pyth2wormhole-client: Run an automated attestation script in Tilt
Change-Id: Id2e6def6c246862601a206084867c5f1b26a6673
2021-09-09 17:24:32 +02:00
Stan Drozd 78cd4ee437 pyth2wormhole: build + deploy program into local devnet
Change-Id: I82acc6755476229d97ad20e73f4ed08b27d98ecf
2021-09-09 14:39:31 +02:00
Reisen 8fb9caf606 solana/token_bridge: calculate diff from original mint
Change-Id: I2bf59ecd353e27de4dc3a947b87c738bdff320ea
2021-09-09 10:30:08 +00:00
Reisen 4865275d95 solana/token_bridge: check balance and truncation
Change-Id: I59837374067350885b70f4b090ac4ba7a1e37d3e
2021-09-09 10:30:08 +00:00
Reisen c1c1bb26bf solana/token_bridge: test wrapped asset transfers
Change-Id: I67c7a1c7a300972c5e8a1fd415d6a965f7bba607
2021-09-09 10:30:08 +00:00
Reisen 496d2385f5 solana/token_bridge: sollet mints renamed to generic external
Change-Id: Ib9269991d95982dc5cae03844906e1f826a95d6c
2021-09-07 13:59:45 +00:00
Jordan Sexton 59e0e586ef Allow Sollet asset migration
Change-Id: Id3fde0ef232fa2e8ed1435be34fe2b885ecd2ef7
2021-09-07 14:34:34 +02:00
Hendrik Hofstadt 94695ee125 More checks on amount and fees
Change-Id: If5a7f43faa0ea39e99138c0856756bad19a4b410
2021-09-07 12:18:06 +02:00
Hendrik Hofstadt 0702ee300f Require meta in complete transfer wrapped
Change-Id: Ie5a5af23c39db7e0d29f7311ea1df385f20decef
2021-09-07 09:30:07 +00:00
Stan Drozd 7d6db92c35 pyth2wormhole-client attestation call
Change-Id: I407734b5fcf919f437a0e0a32d2b35e7ec50b999
2021-09-03 17:18:38 +02:00
Stan Drozd 5dbd3ea722 pyth2wormhole: on-chain attestation call, update Pyth-facing types
This commit takes the selected Pyth Price struct account and after
serialization places them inside a PostMessage cross-program
call to Wormhole.

Change-Id: If04123705290f4749de318c0dfaa8f1d840ed349
2021-09-03 17:17:34 +02:00
Hendrik Hofstadt 9a4af890e3 Fix warnings in generated code
Change-Id: I30c0d149b07930a4bf437b74df586ec7f50a3b6a
2021-09-01 18:48:10 +00:00
Hendrik Hofstadt 48e8ae1555 Fix guardian set expiration
Change-Id: Ie92168305db2dcd69421f369078d118a011332e1
2021-09-01 18:48:10 +00:00
Hendrik Hofstadt 1a8bf4456e Fix initial guardian set expiration on mainnet
Change-Id: I41adacc68687d0c638e79c834b7441896dc4ed98
2021-09-01 18:48:10 +00:00
Hendrik Hofstadt 610bf76902 Don't store signatures on chain
This saves 0.01 SOL per Wormhole tx and we don't need it.

Change-Id: I947a20fcbae9822c11073ba83b4dc67f9dcee19c
2021-09-01 18:48:10 +00:00
Hendrik Hofstadt 855e1d6dfa Resolve compiler warnings
Change-Id: I73c560b90ce4318d3aeb37f3dc336141dfef0e94
2021-09-01 17:56:47 +00:00
Hendrik Hofstadt 086cd0d706 Request full finalization for token bridge messages
Change-Id: Ic4631e6d36c108cc01d49c9c99a86162b6129bc4
2021-09-01 17:56:47 +00:00
Hendrik Hofstadt af67e71bfb update wrapped asset naming on Solana
Change-Id: I0dc2eb3e64d27ee50808dd549a292505bdb8e721
2021-09-01 15:32:00 +02:00
Stan Drozd f7979ee8b1 solitaire: Mention invalid value in InvalidMutability
Change-Id: I240518737243eb7dabbf8ec31bd11148b4475832
2021-08-31 12:43:58 +00:00
Reisen a69d76494c devnet: add terra chain registrations
Change-Id: Icc45674147b42d462e6e4b89c8cd43f9d1ddb49e
2021-08-30 11:11:38 +00:00
Reisen bb7a67d4c7 token_bridge/client: add emitter derivation helper
Change-Id: I403e421ebf46b76561c59c6cdd2aac0442a3c8d6
2021-08-26 14:40:10 +00:00
Hendrik Hofstadt 4469df136e Correctly pad Solana asset meta
Change-Id: Id2630bbd546695be7901927331e220406647b6da
2021-08-26 14:19:19 +00:00
Hendrik Hofstadt 56d8aa5e39 Create token meta for Solana devnet tokens
Change-Id: Ic7e2bd4a808640e10b646ee85abf963f9c6c586d
2021-08-26 14:19:19 +00:00
Hendrik Hofstadt 50afa0fe9e Prefix wormhole token names
Change-Id: Ieea61ea2833f66c29a2fa0f52ae1a914a3956146
2021-08-26 14:19:19 +00:00
Hendrik Hofstadt a8a8cbe183 👿
if you like it then you should have put a box 'round it

Change-Id: I504dd476f53bb5d0dd101a5278f485e83b32bd08
2021-08-25 19:49:57 +00:00
Stan Drozd 5f52dc6d76 solitaire: Implement Keyed for Mut<T: Keyed>
Change-Id: I6680315db9ac2fe913a85b01b471572047cbe658
2021-08-25 14:51:46 +00:00
Leo aeb673a164 Add presubmit CI test that runs "tilt ci"
- Use "npm ci" instead of "npm install" in a couple of places.

- Migrate generate-wasm.sh to a Dockerfile so it can be cached.

- Disable namespace creation and explorer build in CI.

Change-Id: I2e6ee806438863ca81ada701e14684f9f4cc0a76
2021-08-24 17:08:36 +02:00
Reisen d884f7be17 solitaire: force deserialization into a new stack frame
Change-Id: I5ffe4ed6b831f4ddbad4e36fad31487fcd1765cd
2021-08-24 07:08:48 +00:00
Hendrik Hofstadt d95e38da47 Don't verify core bridge config in token bridge
This is checked when we do CPI calls and did not work since derive is using ctx.this as context address

Change-Id: Ie8fefedb40c3c5eb4966bb0b85f207a40e0fe3be
2021-08-23 18:02:12 +00:00
Hendrik Hofstadt 72477c46a4 Allow the emitter to be mutable
This is the case when the emitter is the fee payer.

Change-Id: Ib21658c6cbbbb246a7434057c0f03f24bec8c013
2021-08-23 13:54:07 +00:00
Reisen 254f1c8674 Use bridge config to decide fee payer.
Change-Id: I5eb7601737eb5cbc687dee07567a6fab4e5ca4c5
2021-08-23 13:54:03 +00:00
Hendrik Hofstadt 2437a76ad7 Implement fees in the solana token bridge
Change-Id: I0bc29ced7e14c37294d0bde7ada173a90b5fcae4
2021-08-23 08:35:59 +00:00
Hendrik Hofstadt f42453be45 Resolve rust compiler warnings
Change-Id: Iaac63d0fb44ecb7e03d68a10df7bddbb521c73a0
2021-08-23 09:51:31 +02:00
Hendrik Hofstadt a05017c043 Update rust dependencies
Change-Id: Ib587cf608255afc46dcb435a4168e0f8f8cfb8a8
2021-08-23 09:39:36 +02:00
Hendrik Hofstadt d242fd0fa4 Set bridge address via env variable
Change-Id: If301b31525dbe1d9f892f93ffbc1a35507be4625
2021-08-23 09:39:24 +02:00
Evan Gray d09abac78f devnet: fix eth addresses
Change-Id: I83bd59f35b65e87b14183410e49dd9aca6c62c85
2021-08-19 17:06:18 +00:00
Stan Drozd a97a34e174 Add a test pyth instance
Change-Id: Ifa5b50fb80f01f386fc8079eec3a0564df8072e1
2021-08-18 12:54:11 +02:00
Stan Drozd 163bfa1e24 Dockerfile.client, solana/Dockerfile: tune caching, add pinning
Change-Id: I779df6f5af215f9eabdda41b13282eafb95c496a
2021-08-18 07:46:49 +00:00
Evan Gray b9359aab87 misc: dockerignore all solana targets
Change-Id: I658b16ce266aadd375a6b2e47a85ec3e3f2db1bd
2021-08-13 14:54:25 +00:00
Hendrik Hofstadt 8e0560274e Fix decimal truncation on Solana
Change-Id: I4b8a90852f03ac03ecbd1e981aa8924a9d26c31f
2021-08-12 19:09:51 +02:00
Hendrik Hofstadt f3ef29c8fd Introduce MaybeMut
This fixes issues in places where an account is passed in multiple times both readable and writable

Change-Id: I9e75c6c273b894bf113c8d652a7dd7dcfa32b863
2021-08-12 18:41:36 +02:00
Hendrik Hofstadt 1f6b3ba323 Pack more signatures in the verification tx
Since we now use double hashing, this will work no matter how large the payload is

Change-Id: I79939e9a0698bd71602aae1135d4d40631bb4438
2021-08-12 13:23:53 +02:00
Hendrik Hofstadt 0f2d3b9f45 Fix decimal truncation on solana
Change-Id: I8bebdb13be96b03bbac22dc85281f2b96bbe0aff
2021-08-12 12:26:06 +02:00
Hendrik Hofstadt e59a36663a Initialize spl token metadata for new wrapped assets
Change-Id: Ic42f00a1e07db3a5b073f36c4453bef953a15fe8
2021-08-11 16:10:47 +02:00
Hendrik Hofstadt f5b6facec5 Fix message account derivation in token bridge wasm
Change-Id: I75b1729c130b325e61eac4b69e5f4aa003b033cc
2021-08-11 10:09:11 +00:00
Reisen c6764faddd Fix derivation program id for attest
Change-Id: I4975bb40248406334c1d368cdbb61c1ec644f303
2021-08-11 09:03:02 +00:00
Hendrik Hofstadt fae219e427 Make message a signer in CPI, improve attest ix signature
Change-Id: I5136a62d5b0b7617b4dc3e3e2a17614a68908f3f
2021-08-09 17:11:20 +00:00
Reisen eafa7e0500 Return to trace! on Dispatch log to undo stack issue
Change-Id: Ica665e89d27585eb6ecfa7df5339413c7703b3a9
2021-08-09 16:52:56 +00:00
Reisen f8a0184a1d Derive SplTokenMeta addresses
Change-Id: I4a988b0778c741c1405d096ea0d7aa67a2a31190
2021-08-09 16:43:07 +00:00
Hendrik Hofstadt 24e5406e84 Always log sequence
Change-Id: I0fe6e2f0f564f719b6207067b7824e395e91a65c
2021-08-09 12:51:23 +00:00
Reisen 2f8a73fdda Instruction symbol and error printing in prod builds
Change-Id: I3315c49272473ef3216f26b9dd21f5cfcce6e8ae
2021-08-09 12:33:59 +00:00
Hendrik Hofstadt add04e8755 Create different accounts for message posting and VAA posting
Change-Id: I88a3f74301aeecc16bb51ba693ea9523dc16b612
2021-08-09 13:51:25 +02:00
Hendrik Hofstadt 597aae7cd7 Automatically register eth and solana token bridges
Change-Id: I35efef8d53f999f85ca2e8c4f58cc6cbf8193b2d
2021-08-06 15:21:27 +00:00
Hendrik Hofstadt bedc96d887 Add token bridge client for eth and solana
Change-Id: I0f9af0ffc606aed58579f167fadf80d1964360c8
2021-08-06 15:21:27 +00:00
Hendrik Hofstadt 3fb493cb23 Remove hardcoded instances of the bridge pubkey in the program
Change-Id: I42bc36fa9db650b9cab6c6ac4c8e7c969487a40f
2021-08-06 12:25:01 +00:00
Hendrik Hofstadt 86cd27c919 Allow Solana VAAs to be posted even if the message account does not exist
This is needed for hand-crafted governance VAAs that originate from Solana

Change-Id: I50f75de9a83dd9640d960a7808c0a6605afc539d
2021-08-06 10:20:19 +00:00
Reisen 05aece1f7c Add Metadata to token bridge attestations
Change-Id: Ic1a10978c25fbd916a16bd08eab0b6937c67cd59
2021-08-06 08:24:37 +00:00
Stan Drozd cb719971fe solana/Dockerfile: Make sure we add everything from solana/
Change-Id: I864d769668865b010f630b2ebf8addcb7dcae545
2021-08-04 17:05:10 +02:00
Stan Drozd 952a9d9db9 solana: Use a central location for well-known keypairs
Change-Id: Ibed0044bee47063ec0caa4b0c12e9e7037ed7e3b
2021-08-04 10:52:27 +00:00
Hendrik Hofstadt 8f1e980b4c Add more wasm helpers to the token bridge
Change-Id: I484361ef4b0eb2cd52913e695cf83ddccb5bfe7e
2021-08-03 15:10:01 +00:00
Hendrik Hofstadt 24f7780883 Always log sequence
Change-Id: I7847b8993f1453cc0e9943d4004a3d6bf7d3f5d7
2021-08-03 15:10:01 +00:00
Hendrik Hofstadt 361adf9920 Add token bridge CLI
This also automatically initializes the token bridge in the devnet

Change-Id: I473a97da1ff55e7c9a104983087951268eb7a27d
2021-08-03 15:10:01 +00:00
Leo b02d782f1c solana/bridge: remove agent
Change-Id: I8fdf4e53172a422ee5d9d4dee13faf32ced1be08
2021-07-31 11:20:24 +02:00
Hendrik Hofstadt 8ab3b669d9 Address review comments
Change-Id: I4036e71f3df1dc419419930cfdffba302166e28d
2021-07-30 18:21:38 +00:00
Stan Drozd df5b86eded Solitaire: Say what value was passed as wrong instruction id
Change-Id: I4b79ba95ab5a43a197dfdd164b731d37b490a093
2021-07-30 14:00:35 +00:00
Reisen 0a669111dd Derive Wrapped Mint/Tokens
Change-Id: Ic530013e1932daef382cd89b9f14d1069c4006b0
2021-07-30 13:09:44 +00:00
Reisen 108a4a2ff9 Remove InstructionContext::verify. Verify in handlers
Change-Id: I661308951de261bff572398b6834523563906907
2021-07-30 13:09:44 +00:00
Hendrik Hofstadt dd5388a748 Add CPI proxy
Change-Id: Iba395084fe0cf5ebd4e1cd7bb3515c6c1f7e8756
2021-07-29 17:40:15 +02:00
Hendrik Hofstadt dfdf31dcce Implement WASM client for token bridge
Change-Id: I592cc0ece0553d55c50d87010783fefb7f9b5f2f
2021-07-29 17:27:54 +02:00
Hendrik Hofstadt f9eb8a2c0a Implement wasm client for the bridge core
Change-Id: I7931eef27d8b10eaeec00833ab3dc28a57257cdf
2021-07-29 17:27:45 +02:00
Hendrik Hofstadt d33738e179 Make the token bridge work
Change-Id: Ic34f87c09dfaa91d7bf5793e83da9f06abd2fa3f
2021-07-29 17:21:17 +02:00
Hendrik Hofstadt 897af148fc Implement a bridge stub for testing
Change-Id: Ide97a1df9d55658eeea79f7886a3a504a9108fda
2021-07-29 15:20:22 +00:00
Hendrik Hofstadt f6932bebca Set correct mutability on Transfer Native
Change-Id: I50a34645de34cd97b801015748331cfba7cdfac9
2021-07-29 15:20:09 +00:00
Hendrik Hofstadt 42c3040de1 Allow user provided signature set accounts to prevent DoS
With derived signature set accounts, an old guardian set could frontrun the creation of the account. Since the hash is persisted in the account, we don't need to encode it in the account address.

Change-Id: I49ca46611eb587c8234ac9b2c459263a2ace4219
2021-07-29 15:14:08 +00:00
Leo 7728b47659 devnet: fix Ready state delay by switching to readinessProbe
This works around an apparent k8s bug where startupProbe does not
respect periodSeconds.

Instead, use a readinessProbe.

Change-Id: I43251284db336ea5ade5b1735a867cf294a7b1c4
2021-07-28 14:59:48 +02:00
Leo 270bd78e98 solana: log sequence number
Untested: )
Change-Id: If6ff5b1b3b8199d6d8658aea8f3f0babc75b6989
2021-07-27 12:01:28 +00:00
Reisen db4c0f8f74 Handle Invalid Instructions
Change-Id: I8a6a15b7744e69c7eab88ef50295480bc5fb96ae
2021-07-26 16:09:01 +00:00
Reisen 28c0c3c195 Add Token Bridge test for initialize
Change-Id: Ia65c14b7a7bc6712e79db2b6f4244cb93f63093b
2021-07-26 16:09:01 +00:00
Reisen 191537ef8a Set correct mutability on Initialize
Change-Id: I102cb98678cc20fad6cb07da8835c1effa4973ea
2021-07-26 16:09:01 +00:00
Reisen f8174b7355 Set correct mutability on Attest
Change-Id: Ib9ead9dcc7c150292dcc00be60ac0a9b73935b48
2021-07-26 16:09:01 +00:00
Reisen 5f0707c75d Remove persistent from Bridge tests.
Change-Id: Id149bf38a9b3061964cd2ac2b539ba03c9af0c29
2021-07-26 16:09:01 +00:00
Reisen 64c1d86e4d Change serialize hierarchy for Governance
Change-Id: Id5581f84e9d325e1546f1690ba977b7470915491
2021-07-26 16:09:01 +00:00
Leo 052d922036 Clean up docs and packages for v2
Change-Id: I1020e648f4a8bd51412cf06196e78665308efdac
2021-07-21 19:46:10 +02:00
Hendrik Hofstadt c0228415f8 Fix devnet
Change-Id: I1d62e6323cc2169cce43581f9aeefb537bc84a76
2021-07-20 23:34:37 +02:00
Reisen 6ea55f8c25 Upgrade Contract Changes + Test
Change-Id: Iafa06cd7df6dddd514cd2032b7693188d8202c46
2021-07-20 20:56:38 +00:00
Hendrik Hofstadt d7b6281492 Fix governance action ids in Solana
Change-Id: I7e540ae7447ad9ff428fdd8215c21e9f394329af
2021-07-20 20:52:47 +00:00
Hendrik Hofstadt 80244ae0f3 Drop persistence options on Solana
Change-Id: Ia96672f3f80ec5daa0cce71ffbb69e2c059b3494
2021-07-20 21:00:42 +02:00
Hendrik Hofstadt b97a32df37 Fix formatting
Change-Id: I4aaa4ab6bb72d7645a12f0a28a99db71a183ad87
2021-07-20 19:47:42 +02:00
Hendrik Hofstadt 18134cce96 Fix compilation errors
Change-Id: I9d6f25b078a819331d498f918b972db64f17cbe6
2021-07-20 19:47:23 +02:00
Hendrik Hofstadt f9f461d78d Add upgrade authority command to cli
Change-Id: I58d617cbf19a8300a0915f317e63469c73e64c0f
2021-07-20 17:41:27 +00:00
Hendrik Hofstadt 953ca87162 Double hashing in Solana
Change-Id: I86769ae07cb28b38e00025b2f0bcf01919262c98
2021-07-20 17:37:16 +00:00
Reisen 99c3e40968 Fix Governance Headers
Change-Id: If2026ff4a6107327f69c5d0675a736e6ab87f1bd
2021-07-20 17:37:08 +00:00
Stan Drozd 54aadf5f5a pyth2wormhole-client: Fix warnings and the client feature
Change-Id: Ia74685f5e8e448c30678a4445c38f39f2f324a89
2021-07-20 17:06:02 +02:00
Stan Drozd b5463572be pyth2wormhole: Add Pyth data parsing with unit tests
Change-Id: I17e830f5a96342d3a520cc997529b5b865e36597
2021-07-20 17:06:02 +02:00
Stan Drozd 4fcc4f5674 pyth2wormhole: Add client with working initialize
Change-Id: Ie8d99373c4b7d91d1445f9697714493c32d2bd5a
2021-07-20 15:05:00 +00:00
Stan Drozd 2f4517e45a Initial pyth2wormhole skeleton with access verification
Change-Id: I5a9d73144797a2f8e091e91ded744fff7d4e370b
2021-07-20 15:05:00 +00:00
Reisen 1cc90e54db Deserialize only the discriminant in the entrypoint.
It would seem that Borsh, when deserializing an enum will consume a
large amount of stack space proportional to the number of discriminants.
This causes the entrypoint to trigger stack frame access violations
during the initial deserialization.

This change uses an enum represented by a u8 instead, and removes the
association between the discriminant and the data. Deserializing the
associated data is now pushed down to within the entrypoint match arms
instead.

Change-Id: I2dcb466bf7820b3344e175ad92988bb89f30cb15
2021-07-20 11:11:28 +00:00
Hendrik Hofstadt fb3d267a50 Correct governance header module
Change-Id: Ib2ebfeedab0bf40c466def0a58a6f3971db81dfc
2021-07-19 12:17:56 +00:00
Hendrik Hofstadt 8f4ed821ab Correct decimal data type
This was already correct in terra and eth but wrong in the design doc and solana

Change-Id: I6e3fcf710d81f3cb56868ff7ab73fb3aba1d95bf
2021-07-19 10:46:40 +00:00
Hendrik Hofstadt af4e29978d Add commitment level to VAAs
This allows requesting attestations for various commitment/confirmation levels. This is helpful for low-latency applications like Pyth.

Change-Id: Ib49ace163365106b227613d2f66b787b3e5f5461
2021-07-19 07:11:45 +00:00
Stanislaw Drozd 844a303b5b Revert "Solitaire: Extend Peel to support CPI re-wrapping"
Revert submission 693

Reason for revert: Moving away from CPI abstraction
Reverted Changes:
I8c252e137:bridge, token_bridge: Use Many<T>
I6a721e8a8:Solitaire: Add an explicit Many<T> type for nested...
Ibdc94b4c6:Solitaire: Serialize CPI accounts as an AccountMet...
Iefa59f5d4:Solitaire: Extend Peel to support CPI re-wrapping

Change-Id: Iab567aea6dca5be1a7bf7efd4b86e0be05d2753c
2021-07-15 13:22:50 +00:00
Stanislaw Drozd cbc5ae3ed1 Revert "Solitaire: Serialize CPI accounts as an AccountMeta vect..."
Revert submission 693

Reason for revert: Moving away from CPI abstraction
Reverted Changes:
I8c252e137:bridge, token_bridge: Use Many<T>
I6a721e8a8:Solitaire: Add an explicit Many<T> type for nested...
Ibdc94b4c6:Solitaire: Serialize CPI accounts as an AccountMet...
Iefa59f5d4:Solitaire: Extend Peel to support CPI re-wrapping

Change-Id: I01733d16862aeac79ad76dff4f58386641488b3e
2021-07-15 13:22:50 +00:00
Stanislaw Drozd f2490339de Revert "Solitaire: Add an explicit Many<T> type for nested structs"
Revert submission 693

Reason for revert: Moving away from CPI abstraction
Reverted Changes:
I8c252e137:bridge, token_bridge: Use Many<T>
I6a721e8a8:Solitaire: Add an explicit Many<T> type for nested...
Ibdc94b4c6:Solitaire: Serialize CPI accounts as an AccountMet...
Iefa59f5d4:Solitaire: Extend Peel to support CPI re-wrapping

Change-Id: I4455479e4a19007893d4cdaac06eece70abfa797
2021-07-15 13:22:50 +00:00
Stanislaw Drozd 24e3896582 Revert "bridge, token_bridge: Use Many<T>"
Revert submission 693

Reason for revert: Moving away from CPI abstraction
Reverted Changes:
I8c252e137:bridge, token_bridge: Use Many<T>
I6a721e8a8:Solitaire: Add an explicit Many<T> type for nested...
Ibdc94b4c6:Solitaire: Serialize CPI accounts as an AccountMet...
Iefa59f5d4:Solitaire: Extend Peel to support CPI re-wrapping

Change-Id: I94dc6f66b631f25fecf2c3b3a8b72302a706f0a2
2021-07-15 13:22:50 +00:00
Stan Drozd 0891d9e433 bridge, token_bridge: Use Many<T>
Change-Id: I8c252e137cd092144ec8af2c2a857c7b1247dbfc
2021-07-14 17:58:17 +02:00
Stan Drozd 6868cc7177 Solitaire: Add an explicit Many<T> type for nested structs
Change-Id: I6a721e8a88652f807f2317cfe4d82be9d629a849
2021-07-14 17:49:56 +02:00
Stan Drozd ee96b6b793 Solitaire: Serialize CPI accounts as an AccountMeta vector from Iter
Change-Id: Ibdc94b4c6359ffef78d3e2313bfee12eef93acc7
2021-07-14 17:41:19 +02:00
Stan Drozd 5827ba7b30 Solitaire: Extend Peel to support CPI re-wrapping
Change-Id: Iefa59f5d4fe36c9f9e2cd0fa997490eba0a1bb44
2021-07-14 17:41:08 +02:00
Reisen 18a6f429cb Move errors to their own file.
Change-Id: If76fc6096f2788e13dad15ea088202159793fb0b
2021-07-12 09:39:03 +00:00
Reisen 35bdef1f8b Check minimum rent exemption balance for transfers
Change-Id: I52b87ea601e9593763a22bc97fe4f4d475a1315f
2021-07-09 14:29:47 +00:00
Reisen 52b17b007a Check foreign message chain state is as expected
Change-Id: Idfdabe1aad843a58c38d8fcc52470058bf5b6b6b
2021-07-09 12:56:52 +00:00
Reisen 7aec992481 Guardian set change with invalid emitter fails
Change-Id: I5668c705c214b72c1b7b21f949b888fb4a2ce5cc
2021-07-09 12:56:51 +00:00
Reisen 69cdccc457 Check guardian set change succeeds at valid message signing
Change-Id: I72ff378d1b263d62fc0bd8fb3c0bc5b4d1280172
2021-07-09 12:56:51 +00:00
Reisen e69c464ba4 Check on chain state for message tests.
Change-Id: I82ca799431ba7bd9b5bb9e5d907c396c67b3d42a
2021-07-09 12:56:51 +00:00
Reisen 95decec044 Transferring larger than balance does nothing
Change-Id: I51d4954357e90a65ba09dc76bc3cf1bd1623606a
2021-07-09 12:40:50 +00:00
Reisen 2769fa2739 Transfer Governance action fails without correct emitter
Change-Id: I86ecbf57ae5b6e8cecd452c4f7a63a6177a460fe
2021-07-09 12:40:50 +00:00
Reisen b676339555 Bridge should still function when fees are free.
Change-Id: Ia0999299cdacab4df8ef3935b1c9f387f26c4ffa
2021-07-09 12:40:50 +00:00
Reisen 8770bf7997 Fees without governance key should fail
Change-Id: I0185db0e8f2c36c08973ca368b9a8ee176534117
2021-07-09 12:40:50 +00:00
Hendrik Hofstadt 2bfdc2fdc9 Add missing derivation checks
Change-Id: I615c5fc4fd737cdeb9bb4a118cdbfb8ef7abc5db
2021-07-08 19:50:56 +02:00
Reisen 3730ce30e3 Check the on-chain state for paid fees test
Change-Id: I85def349ba9888edb8d9e4264c7eb593c0e7c766
2021-07-07 11:46:46 +00:00
Reisen 4f5047f799 Check Duplicate messages fail to persist
Change-Id: Iefbb40ea9e703208d8192571d15630d28cb042f8
2021-07-07 11:46:46 +00:00
Reisen 704e8d6911 Confirm intentionally not signing emitter fails
Change-Id: I0e33303b3105321675295040d027d1b0df57f030
2021-07-07 11:46:46 +00:00
Reisen fc1a104ceb Test Persistent Messages
Change-Id: Ib956b4154d27a1aad5b32ad730783b2480050958
2021-07-07 11:46:46 +00:00
Reisen 0d637482d4 Add Sequence tracker and test initialize
Change-Id: I2ecb360f498fe056332690937c0556448bb286f1
2021-07-07 11:46:46 +00:00
Reisen 007098aaec Allow different commitment level through utilities
Change-Id: I7269e5c64c82dceaf1d70c74fbdfe6e44c247ec5
2021-07-07 11:46:46 +00:00
Reisen 768f768001 Use clock time for bridge initialization timestamp
Change-Id: I6121e7546f4c0590dff830572a843384a0470972
2021-07-07 11:46:46 +00:00
Reisen 7ab5a93b21 Verify emitter in all governance actions
Change-Id: Ib1fdbe9dc553e22a0e61d6f119eb45325d15861c
2021-07-07 11:46:46 +00:00
Reisen 387fcc48c0 Add Mut layer to accounts in bridge program.
Change-Id: I78dfb4568eaec4f597a6d0e1ac10a0f698bb5a61
2021-07-06 12:08:25 +00:00
Reisen 76066c8cc6 Add peel mutability checks for accounts.
Change-Id: Ic6a6fadd13a2b41d60a0c98f3b5d80d23ac263a6
2021-07-06 11:40:13 +00:00
Reisen 72951531f6 Add test for messages from foreign chains
Change-Id: Ic02554f74a84a002f1a211a7cf519394cae1f36a
2021-07-06 09:05:56 +00:00
Reisen 7b030aa59a Add governance transfer_fee tests
Change-Id: I55fe0ccad1447ee7c70b1cc5de6f88cf1a2dfd8a
2021-07-06 09:05:53 +00:00
Hendrik Hofstadt 7784e74725 Align behaviour of persistent message fees
Change-Id: Ic9c6c40dbac2399e0eaf3a861dff33254a828a18
2021-07-05 18:02:04 +00:00
Hendrik Hofstadt d9fde6d7cc Implement optional persistence in Solana wormhole
Also reformatted the token_bridge

Change-Id: I195d7e2e13295c8b28e2a0b63620e3d306dc07e6
2021-07-05 18:02:04 +00:00