STRUCT - VAA_Data

Credits - lambdadelta#7856

The top numbers are the size of the data.

(todo) link example TX for VAA_DATA

    VERSION_POS = 0
    HEADER_LEN = 6
    LEN_SIGNATURE_POS = 5
    SIGNATURE_LEN = 66

    EMITTER_CHAIN_POS = 8
    PAYLOAD_POS = 51

    MSG_PAYLOAD_POS = 1
    AMOUNT_POS = 0
    AMOUNT_SIZE = 32
    TOKEN_ADDR_POS = 32
    TOKEN_ADDR_SIZE = 32
    FEE_POS = 100
    RECIPIENT_POS = 66
    RECIPIENT_SIZE = 32
    """
    WormholeMsg:
    Header
    byte        version                  (VAA Version)
    u32         guardian_set_index       (Indicates which guardian set is signing)
    u8          len_signatures           (Number of signatures stored)

    [][66]byte  signatures               (Collection of ecdsa signatures)
    
    Body:
    u32         timestamp
    u32         nonce
    u16         emitter_chain
    [32]byte    emitter_address
    u64         sequence
    u8          consistency_level
    []byte      payload

        Payload:
        u8 action
        [u8] payload

            Body:
            u256     amount
            [u8; 32] token_address
            u16      token_chain
            [u8; 40] recipient
            u16      recipient_chain
            u256     fee
    """

Tutorial

## using this as an example
AQAAAAENAEra1O4PWf+lCMPdVT2TYAlpnAV2Dj8nifMwPscQzl+nYIQ8cGMN5vjPLG+qTm3BqpOvAUW97w9E+SXdKqrnGi8BArpfKRD5hWvp189gixEn69I6U34PUprlv7nh7DUOBciiErfh3QLFpHGq8ssyb1Edl42Nsx/evZOCqOdXK0IKfPwBA9c9Ca3rW85YJxmstZ04KWw1CmiiO9/pLlmPvbNz7b8ZBjCNaSegivnCKOWeyc0TQKtpRDl5dYqclqX5oIK0/RsBBCXsyleTp6J6buhFKOiMr5bEZe8+wgihajG/vr0YwQLTF/RDjL8aG70gEcwEygFTftYzzIPZ4m0cXQ28+uauTaQABab4dhN6IEdivgYV3+26jdunU7l9AjUt4/XWxTCmeEKMaHDNm9cVm0Nmk4wns9+CYIYuScSjq+ct000RysJrZH4BBp1jNX7LZAWaFazQI77TnEFxqvXAJ6IDiveJPfV52+V9Y4PKrFtrBeNZvtawvVn9REEfjzCxdVv7WRHCq3xYMI0BBxlE7sYJQed9ljeQXFcPgdDqkolPlpRqHgxXJVO01Zv1DwReKpQqHgdQdkhgbpjl5zUN8+AG6NwTdUGs9tJNLsIACQ0rCpbulX7p1ErMDDOOi0sHyyg0AbTV86KZhtgir7tGZwA2PukQwmpa37Dd8Xf2R7Uy5RV+/FFIN1i1Kp9fZPgACvWKi3JAv2i6NJo3cu7etJwwuXlujatb+yzycJRcXNzOByrfBuRJDUj++7cV2mwKO2Ajvy0/nSCgxbpobSgCbLABC+qZ/z/SF3wEms2fOMjv3e7hFZczGyi6QRMBiVLcwS48C5zeKcyC1yokOBOjpEjOeFI+uNy90/vq0jrB/gjLigUADYBLCA8oET63Ox2fvY2mWNPu58Pjw23vbU09CejT80PsA1QTmfy2d/N5gdmEIbAY4jZ11nJn5Z9gM/GUdcTW/68BDze3EmYGdpc0PGipOMxPEaEQ8xuowrDy6tc5s3awskpvfdTReH5JrMyyUA3JlZ7wtrAPuz4rHxMI9Y/5g2vR9ZEAEPSooatTwT1FtnS86DpMdY6x0zLg0P9Nod1jkLCNUG3SA3qfTicZmc8oGGwUNLfOlslRQhTYIwM7F+Rs4ZmAXx4AYeKIvgABIS8AAexzcpldXMhzI5f7CtNcASHg6qkNJvgopTTKtUORs6T1AAAAAAAAw0wgAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmJaAxvp6877brTo9ZfNqq8l0MbG75MLS9uDkfKYCA0UvXWEAAQAAAAAAAAAAAAAAAFQvfd6bI2a9vqPzc4itfwciYQE2AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==

## use cyberchef to decode...
https://gchq.github.io/CyberChef/#recipe=From_Base64('A-Za-z0-9%2B/%3D',true)To_Hex('None',0)&input=QVFBQUFBRU5BRXJhMU80UFdmK2xDTVBkVlQyVFlBbHBuQVYyRGo4bmlmTXdQc2NRemwrbllJUThjR01ONXZqUExHK3FUbTNCcXBPdkFVVzk3dzlFK1NYZEtxcm5HaThCQXJwZktSRDVoV3ZwMTg5Z2l4RW42OUk2VTM0UFVwcmx2N25oN0RVT0JjaWlFcmZoM1FMRnBIR3E4c3N5YjFFZGw0Mk5zeC9ldlpPQ3FPZFhLMElLZlB3QkE5YzlDYTNyVzg1WUp4bXN0WjA0S1d3MUNtaWlPOS9wTGxtUHZiTno3YjhaQmpDTmFTZWdpdm5DS09XZXljMFRRS3RwUkRsNWRZcWNscVg1b0lLMC9Sc0JCQ1hzeWxlVHA2SjZidWhGS09pTXI1YkVaZTgrd2dpaGFqRy92cjBZd1FMVEYvUkRqTDhhRzcwZ0Vjd0V5Z0ZUZnRZenpJUFo0bTBjWFEyOCt1YXVUYVFBQmFiNGRoTjZJRWRpdmdZVjMrMjZqZHVuVTdsOUFqVXQ0L1hXeFRDbWVFS01hSERObTljVm0wTm1rNHduczkrQ1lJWXVTY1NqcStjdDAwMFJ5c0pyWkg0QkJwMWpOWDdMWkFXYUZhelFJNzdUbkVGeHF2WEFKNklEaXZlSlBmVjUyK1Y5WTRQS3JGdHJCZU5adnRhd3ZWbjlSRUVmanpDeGRWdjdXUkhDcTN4WU1JMEJCeGxFN3NZSlFlZDlsamVRWEZjUGdkRHFrb2xQbHBScUhneFhKVk8wMVp2MUR3UmVLcFFxSGdkUWRraGdicGpsNXpVTjgrQUc2TndUZFVHczl0Sk5Mc0lBQ1EwckNwYnVsWDdwMUVyTURET09pMHNIeXlnMEFiVFY4NktaaHRnaXI3dEdad0EyUHVrUXdtcGEzN0RkOFhmMlI3VXk1UlYrL0ZGSU4xaTFLcDlmWlBnQUN2V0tpM0pBdjJpNk5KbzNjdTdldEp3d3VYbHVqYXRiK3l6eWNKUmNYTnpPQnlyZkJ1UkpEVWorKzdjVjJtd0tPMkFqdnkwL25TQ2d4YnBvYlNnQ2JMQUJDK3FaL3ovU0Yzd0VtczJmT01qdjNlN2hGWmN6R3lpNlFSTUJpVkxjd1M0OEM1emVLY3lDMXlva09CT2pwRWpPZUZJK3VOeTkwL3ZxMGpyQi9nakxpZ1VBRFlCTENBOG9FVDYzT3gyZnZZMm1XTlB1NThQancyM3ZiVTA5Q2VqVDgwUHNBMVFUbWZ5MmQvTjVnZG1FSWJBWTRqWjExbkpuNVo5Z00vR1VkY1RXLzY4QkR6ZTNFbVlHZHBjMFBHaXBPTXhQRWFFUTh4dW93ckR5NnRjNXMzYXdza3B2ZmRUUmVINUpyTXl5VUEzSmxaN3d0ckFQdXo0ckh4TUk5WS81ZzJ2UjlaRUFFUFNvb2F0VHdUMUZ0blM4NkRwTWRZNngwekxnMFA5Tm9kMWprTENOVUczU0EzcWZUaWNabWM4b0dHd1VOTGZPbHNsUlFoVFlJd003RitSczRabUFYeDRBWWVLSXZnQUJJUzhBQWV4emNwbGRYTWh6STVmN0N0TmNBU0hnNnFrTkp2Z29wVFRLdFVPUnM2VDFBQUFBQUFBQXcwd2dBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBbUphQXh2cDY4NzdiclRvOVpmTnFxOGwwTWJHNzVNTFM5dURrZktZQ0EwVXZYV0VBQVFBQUFBQUFBQUFBQUFBQUFGUXZmZDZiSTJhOXZxUHpjNGl0ZndjaVlRRTJBQU1BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBPT0

01 -- byte version
00000001 -- guardian_set_index
0d -- len_signatures (13)
004adad4ee0f59ffa508c3dd553d936009699c05760e3f2789f3303ec710ce5fa760843c70630de6f8cf2c6faa4e6dc1aa93af0145bdef0f44f925dd2aaae71a2f01
02ba5f2910f9856be9d7cf608b1127ebd23a537e0f529ae5bfb9e1ec350e05c8a212b7e1dd02c5a471aaf2cb326f511d978d8db31fdebd9382a8e7572b420a7cfc01
03d73d09adeb5bce582719acb59d38296c350a68a23bdfe92e598fbdb373edbf1906308d6927a08af9c228e59ec9cd1340ab69443979758a9c96a5f9a082b4fd1b01
0425ecca5793a7a27a6ee84528e88caf96c465ef3ec208a16a31bfbebd18c102d317f4438cbf1a1bbd2011cc04ca01537ed633cc83d9e26d1c5d0dbcfae6ae4da400
05a6f876137a204762be0615dfedba8ddba753b97d02352de3f5d6c530a678428c6870cd9bd7159b4366938c27b3df8260862e49c4a3abe72dd34d11cac26b647e01
069d63357ecb64059a15acd023bed39c4171aaf5c027a2038af7893df579dbe57d6383caac5b6b05e359bed6b0bd59fd44411f8f30b1755bfb5911c2ab7c58308d01
071944eec60941e77d9637905c570f81d0ea92894f96946a1e0c572553b4d59bf50f045e2a942a1e07507648606e98e5e7350df3e006e8dc137541acf6d24d2ec200
090d2b0a96ee957ee9d44acc0c338e8b4b07cb283401b4d5f3a29986d822afbb466700363ee910c26a5adfb0ddf177f647b532e5157efc51483758b52a9f5f64f800
0af58a8b7240bf68ba349a3772eedeb49c30b9796e8dab5bfb2cf270945c5cdcce072adf06e4490d48fefbb715da6c0a3b6023bf2d3f9d20a0c5ba686d28026cb001
0bea99ff3fd2177c049acd9f38c8efddeee11597331b28ba4113018952dcc12e3c0b9cde29cc82d72a243813a3a448ce78523eb8dcbdd3fbead23ac1fe08cb8a0500
0d804b080f28113eb73b1d9fbd8da658d3eee7c3e3c36def6d4d3d09e8d3f343ec03541399fcb677f37981d98421b018e23675d67267e59f6033f19475c4d6ffaf01
0f37b71266067697343c68a938cc4f11a110f31ba8c2b0f2ead739b376b0b24a6f7dd4d1787e49acccb2500dc9959ef0b6b00fbb3e2b1f1308f58ff9836bd1f59100
10f4a8a1ab53c13d45b674bce83a4c758eb1d332e0d0ff4da1dd6390b08d506dd2037a9f4e271999cf28186c1434b7ce96c9514214d823033b17e46ce199805f1e00
61e288be -- timestamp
0001212f -- nonce
0001 -- emitter_chain (1 is solana)
ec7372995d5cc8732397fb0ad35c0121e0eaa90d26f828a534cab54391b3a4f5 -- emitter address 
000000000000c34c -- sequence
20 -- consistency_level
01 -- action
0000000000000000000000000000000000000000000000000000000000989680 -- amount
c6fa7af3bedbad3a3d65f36aabc97431b1bbe4c2d2f6e0e47ca60203452f5d61 -- token_address
0001 -- token_chain
000000000000000000000000542f7dde9b2366bdbea3f37388ad7f0722610136 -- recipient
0003 -- recipent_chain
0000000000000000000000000000000000000000000000000000000000000000 -- fee

Last updated