Commit Graph

99 Commits

Author SHA1 Message Date
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
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
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 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
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 a05017c043 Update rust dependencies
Change-Id: Ib587cf608255afc46dcb435a4168e0f8f8cfb8a8
2021-08-23 09:39:36 +02: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 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 f8a0184a1d Derive SplTokenMeta addresses
Change-Id: I4a988b0778c741c1405d096ea0d7aa67a2a31190
2021-08-09 16:43:07 +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
Reisen 05aece1f7c Add Metadata to token bridge attestations
Change-Id: Ic1a10978c25fbd916a16bd08eab0b6937c67cd59
2021-08-06 08:24:37 +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 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
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 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 f6932bebca Set correct mutability on Transfer Native
Change-Id: I50a34645de34cd97b801015748331cfba7cdfac9
2021-07-29 15:20:09 +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
Hendrik Hofstadt b97a32df37 Fix formatting
Change-Id: I4aaa4ab6bb72d7645a12f0a28a99db71a183ad87
2021-07-20 19:47:42 +02:00
Reisen 99c3e40968 Fix Governance Headers
Change-Id: If2026ff4a6107327f69c5d0675a736e6ab87f1bd
2021-07-20 17:37:08 +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 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
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
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
Hendrik Hofstadt 049177db37 use sequence as seed for persisted VAAs from foreign chains
Without the additional seed, messages with identical (emitter_chain, emitter_address, nonce, payload) but different sequence could fail to be persisted.

Change-Id: I6786f7be33bcc6da7289f54fc62c7a5b10821594
2021-07-02 16:51:26 +00:00
Stan Drozd 5e7e4d4e48 Solitaire: Enforce the "client" feature in dependees
Change-Id: I55da10bde41f84e91c5754a89eb4239967117e67
2021-06-29 15:35:14 +00:00
Stan Drozd 79d82d1226 Solitaire: use "client" as superset of "no-entrypoint", logging
Change-Id: Ie846b9abd783fe041f2cfa9aeda962003ffe1441
2021-06-28 13:01:43 +02:00
Hendrik Hofstadt d84b61fda5 Implement token bridge
Change-Id: Ibb9cdf6ed5a18a576691bcad96b4fe6dfd72b981
2021-06-07 09:04:23 +02:00