Commit Graph

172 Commits

Author SHA1 Message Date
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 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
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 24e5406e84 Always log sequence
Change-Id: I0fe6e2f0f564f719b6207067b7824e395e91a65c
2021-08-09 12:51:23 +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 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
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
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 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 270bd78e98 solana: log sequence number
Untested: )
Change-Id: If6ff5b1b3b8199d6d8658aea8f3f0babc75b6989
2021-07-27 12:01:28 +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
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 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 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 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 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