Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update response of bridge api #7

Merged
merged 9 commits into from
Mar 5, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ AVAIL_CLIENT_URL=https://couscous-devnet.avail.tools/api
SUCCINCT_URL=https://beaconapi.succinct.xyz/api/integrations/vectorx
AVAIL_CHAIN_NAME=couscous
CONTRACT_CHAIN_ID=11155111
CONTRACT_ADDRESS=0xD528DdCd659D380DFDe96c8fa3e03BaAa03cb51A
VECTORX_CONTRACT_ADDRESS=0xD528DdCd659D380DFDe96c8fa3e03BaAa03cb51A
BRIDGE_CONTRACT_ADDRESS=0x75545225C83B985f3A517bF61f316266057bb13b
ETHEREUM_CLIENT_URL=https://ethereum-sepolia.publicnode.com
BEACONCHAIN_URL=https://sepolia.beaconcha.in/api/v1/slot
Expand Down
52 changes: 27 additions & 25 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -125,34 +125,36 @@ RUSTFLAGS="-C target-cpu=native" cargo run --profile maxperf

* To get a proof, simply query the `/avl/proof/:message_id` endpoint with the message id:

* Request
* Request

`GET /avl/proof/:messageId`
`GET /avl/proof/:block_hash/:messageId`

```bash
# curl "<endpoint URL>/avl/proof/<messageId>"
curl "http://localhost:8080/avl/proof/1"
```
```bash
# curl "<endpoint URL>/avl/proof/<blockhash>/<messageId>"
curl "http://localhost:8080/avl/proof/0x7963d8403d137cb5560e2436df07c233d18030b5f3f0c61b85083e2a8f2b5e55/1"
```

* Response
* Response

```json
{
"accountProof": [
"0xf90211a0d71128955385a996e69dc034c49faa1a5ea16c3e9b49c75e3190fa7064368bf3a08b643fd3188594193a31af8852229d8b3d99f0044233b0f5fef2cb24a2034612a0d34e4a13c57e2b48c45893c4d74605d4875be1042416ec39bfeb0baef9a55bc2a00717485f8c420c6dda510df64e7cfaf850a06a42cdecf0cac5081307669d5dada0dd6f6a770d8db561aaf01874dbe218bb293ce7ac5d31e92c5ce441e24b0d9b5ca0c7adb6999b7a578a8859e91f17b1c9d5de1e6701e04d327438af5a72d636b86aa058e513e2cc186ac8182aa9c0b3fd0449704f6f7cf8143310e818321a704ffd88a05b60127bb0b82a45730180c07c82d2fe9cb97539e6ea8f39e18859a30a24b3cca024f59ca8820068f177980eadab1b902122d9406ab1d637bbfab668caa376ad02a0244994e81bcf4994fb6e5bb10e5971b5f40b34a7809d3ecf6bb65f93c449e463a0b660ec6605b80f257887c086d45dfb9ed0c6f1476725c1c484b202e23b59f85da072c20edc507ac36f7c092770a45c710cb678ed307569482700a8f7bb01149d09a0beb134ebf0f2a6999f66896d54ae03690a661b7931acebf83acf46d0f58f7af6a0bedd781f98b11996167ebd7a55f6d6860603cde37ca4cccc18e54907b2ab7227a016821791d1dcd70f4c041856dc9f98427b2f667433cda5d9ba2f328686c74334a003a42e9a646f5ae41a669ca79eb2dcedb0c642a3e179cca9075117aec62ec54980",
"0xf90211a011db1d6200d4693fd1286eed061eb7da6486c95436458d585e5bcdd10fe6c2b4a085ff32ff8c62614a08df478d496959bdc624d5c865fc70e35437debbfa5f500aa09b30be94eb5bf434640817df16034b76384e487232b55edcb2ac35ae3ba69721a048b694b684e4c3e7272864cfb7eae4e65d67c17934bbb2d07b536b5edbf487dea00783663c68cbd05877c2b5f57aff3da672e25b37a70c815faafc96679eaaafcda05f991c76a7aa6d1fc5fd921ca6702b5734f33ddb183812b0a4b50261311c1824a05036b93b9cef1e8472d292fa5dad443f8c5d2d9f313e89921d7972f089702344a04693c40dcc8e789892926f266538f8ca5a64bdc1a1cd5df4fa9c38397f4fe933a03650a3cca2182e05a8b9e8a3acd287958fc8f94747b279e58fcf4f3ed52207b9a07cc490d6b284735776c75cc965038ece8ab86c9541a0515bcfdea6ebe644e252a0419b90f546dbce34359261f5dc9758dc4a07ff70910195ea8e6d698eeefdd98ea04740c3529d5db08d87949681534ad7f0d47e88d69930762f4d691ca926a6d57ea04d4ab6b44335560cb3c99d7b094e034e26b806fa976b9cabe46b5d201a0e6675a0c757b0a786f7733cf2c27ffb87f410903f41f39f490c464e74ee52db8eedb5e8a01148e8b3133ca1bb4f0864e25368a5457d42b082f861522a26502c7d495f1d2ba0821e19579f54cd679e9e9343fc12daf3d7e914eeac6aafd9d4537aae6c72e5c180",
"0xf90211a0bcc9cb508af5f1ece305f25b646033e2836f00d64e4d8d99ba2e0ead3a3c142aa033016b7a6e32ef23580e936f606517c9890c94780ed3803bca113562511b2725a0015c152d93a275a868ab1de77982a772bb17b9c31f8e3c6535920e27b2ad691ea0e3772a969fa342f8e575ac4133ab64dd44c2f95334b467734d8ebb5911ee4623a07b47dc5a9531aad63fea49e101ebb35081b9146a3c382cc320070a71908e456ea020f0624d5075eea63ad13b1eb9fe5d36312a45315da9ff7b007ef2b994977ad9a034238bf9346eb5437042832a8afa97b50451f1083161340188ef2c483d941b4ba02a626328a031090870d7959e5b40d9d903ecdc9bad390bd4974ab9113ff518f3a0893c5babe5b86cb7cb32a7712439f925ea10571786d70865e3cc334472593864a06fc90c294f2dac25e6bfb5e9b101e1281c97c8229a3e291b539d760026f895b9a09d911728e92446ac2efb2cd31a683431e876a4955b4c22c907f71af28a9d6fc8a0514bf1fdae988ca731ab397b67c85fe049c776c1185e23e25846644057f1aaeca025a52dbeff1ce02625f46b97849a9040c3666301676c0d5bc6a21889e9a648c9a0456509e4fcac6ff02ed91d071771a007785b17ca6f60cc40421e667714a3ad80a06a6c8bf77f8a2e62b81cc2033ca3bfa5c60490e7f0f43ca1a6f293b47032f74ca0e1298dcc8c1a811793766eb7e7106b97f7ff978957d73cab0d5406bff79e88ba80",
"0xf90211a0453a58b9b230737ee8aa629ee5aced2f04027e874074eacc354bd5727bdac050a0a8a2cebeeb6b63f05c790cac0e1eb767503b6b0bb952d1f941ea4d967bc031e0a0e06404847fd9f8eea8b478850cda2b41c9228f1da1b791315b4e9255a7183869a0e1c65c5fa5ff313849b6c7d7f538c78f15c21a036452c2ec15890652463f8184a0cc9e649eab801e4e6a96c8f3a94c5570c8050953cf0d6c9815b9f14d5761c716a0d5e083579fb0f00730ddca7718850573aa1078524e8d2d605c8444c8638bc1fda076099e62259f3a72d58b3403dc011fc700900c937f2c44da7e378d829f7834b0a00083f8e2da8f6ac4de7f6b49ff807bca69db05061447ee9436b6b422c3eec564a0375e94ee653abb2062e704e953c1ba26edc569f901725bb8b32bbb20c725b1a9a05096be20c017e7830d39cb26e672f41a0ad4ef0e502935983191783cb1da2f4da0c493f6b1b2c6e11c7c6b580f3fd723a8dd6ebe99adacbcb379649520b6db9bc1a0892670cf61716e3d2177c7fe715a6b7bb9fd77533c1a237d31842738709bdd15a04dff26f34637ec85d5c87d7110f21bd86eb41078ac66f1aec8e57f7ccca6e3daa01adb37fb6e266de1e407160490597db51dd5e35deffb8b61b3cbf98b03e8ddeca0e07addd5c6b4482270ea4dded91213b974db9e8df29ea2ee49d7c575749a9289a073551d91f2a2ecb9de694d59ceccd112d6205cc822d84a6fa9863e416e0873f880",
"0xf90211a02994eee918b83f44b0ef8fd984687d8238981f2dd0acf2f1748e7387c4cc1ad8a0eb0813f93256145fef162b9dd3facfe66e4dc8ab6af06e40aa09223e96c24075a04b96866754918f8cbb6d56f1ecc491ad10d805de0f2907240f79b9d8eb1f3020a062d2f1c3a188a0a9864d408eacae4948c0303a698f7010d848d6f63fdc20be37a03ea56e5e77062a3d674863086d66ab9d1ac10c91437deeab7bcf7fb0af2c2ef1a00f19e169093d4cdf6c77576e20261e3635e72f091fba237c60bee95133e9529ba06439fd86d88c693fad88439c3cb9781786a60a9b4897f14ac97d959dcc145fdba03d4bbdd9b6be519cbe684df64fc11c38fcb572c16f8de92676bab7113bf89109a08947a5210863f90607e66529624c15ce4a0564b3b7702d85f2fdd6a1c12f6b0ca0cab289c7db03b8fd7b613bef1c9e50f929f63a180d8e9fa7f28780be5058b89aa02f4b38922e15321e94ccb241f8e7cb4ab5d74eab9a8c07e48249f9d83c7d6f2da07ecf190a86d417734d31c9bd655112f01cda22cca43e8343b773fa197c3007f5a09acc17f9d7260602cf51aaa8d2d8bc9ee3f699b34d03f51ccb34548d61b51e5ea0a34f826e57c7fbce32b47e87cc3b2a52d548a388e1a908d9ecfeabcd5935cc5ca05578757fc6ea40bdddef901823bbf46fb357e825e208bb83bec85bae7d88d8f5a08110a321fe60d2ad02283f9dd5878b3b6ad101483f18cb6b6021ca359f34699e80",
"0xf901b180a012d4abe8e0be9f1ca3024c8c734d5201d4312415207baa191632aaaa22f877a780a0d7e0b129d1581066c1ad75df317f8f362bccbb9de3bfff562bba3e8797eb5538a0398b1d9a44c778bd0f658f430097347d57b9f64ce5943e06c8930d060445e666a0c9e721ebdeeefe03348a6dba6c789b25ad60c7e6d739e143bc0101bd888519bca0c49cb31cd553fc7d54c9e2e8335465a7607377c5844c424790cfdfb82060cf7aa0c1bacefdab5cd03d4e1ed4e829ad092d9b6a920f6f4e90a64a9692cc880e4cfea0044c45cabab3dc0d4669326119b78dca51316bf704837ac712739c73464831c8a0855ec46da10e0b04fcc94f2b54795b35f71891802ef5599afb92e3d2909a0ea5a004c86802b3e15cf748062ace9ce5e02acd0131ed86e30f12e6edf9fe0ab4fd6fa010c903eabf207c4f03cd97b3377ca35127e657bedd80991ed3015ca6d13c3553a00d3a77a656914bbddfa583e3841296c1a65a6977b6c4c0cda6bc34fc8bdbdb9580a0b04bed9588468743c5271a0a2ee90116911db7297e3165fa9513d8da9edd3b40a09fec2225beb9bacdcb4dfb5a186e412b7017c5bc41aefb2bc7604018b46c5c7280",
"0xf851808080808080808080a0e505cae6797de2705a3a65c77ea7c9948f0f8930c14cf7b8e5679504de51062fa038a3cecdf51a92be5c24f16c7776211bf79a7a3bab9d0b9178b00eca71ddd76a808080808080",
"0xf8669d3cdcf5995402ae9b130ce74b48fec0dff98226c7106c2618b3923cf8c4b846f8440201a07f9340d34eb810527d82b795d1ce74ee9fc8a727f5dbab7ad1399ff2ffe8fc87a0c95cf5b2451d3c325fc0b238248ce5d59c59374241561d45b7042b3189e4c413"
],
"storageProof": [
"0xf901318080a006a2e0d8e156dfbe4422b119dedc75f489184d9016e2608b4a5311416cdb51c080a09ddd70915eb71e1c868c88a5e19e1b60b8f7c12727c5db3829b5e38d770661aba0b15cf01f62cbd104e15831a1d5a4ee37093c493251983f17be2c773ec03760af80a053d7827419966e58ff537e3188131e441342bed0f491cbce461183c2cc94b507a01e2f406ae757e5ad8854495c415a87688cb69fbe6560af8e14fa31fc2dcd44b88080a09943ce5c17ce69fe140a111cc8436dd434034352c4dbefa7623d48593eae2987a013674f92f711a51bfd038a63208ef702497ccbf468405a9ad9378a57e03ab67ba005af7977817c87942f8cd44f542cf831671b8bc88763dc3fd3efb10c41497b02a079866ac4ff54c3062d8fbd4fa347961e9a905b4114a2ed9785e22a5c03f4ffb88080"
]
}
```
```json
{
"accountProof":[
"0xf90211a0d82a1a6e4b71bef93f5815bdf67bdeaa34df3daa774bbe36102383832139b105a0ef290d48d47b459f17a29fd9819d1cbf6de5ef93f0b16d41a226304d5b1038e0a00a7fb2ce24c8c32391c872cc4982d30778c3f2ed6502dd9eb845dbc42cffdabba026619f27ead8de859af55f45b9da7dae18097b9e6b9ac0e7b8c11d4365f94a92a068decdc2e8e5ebfd28daa4c3846272ddb4f89dc5232db0f40eb309ef334e459ea014e5ca1fe814136250533e63efa6d3629f9a62b5ee1441a10b264fcf7a9d909ba0dee7bd2e76cf85a2dc570be9fcb016d2cbd739bb831316958531e769cc81ad3fa020c0923882f63805265ccf325a18b74dc13a0847001bfc220fb1271c07556f50a0d858656224d15f74d9f534e8b596ff8d42d1b157d2ebaf1f9bc3c1cdea23569da0ee0522cdd09d809f59280cc3ade7034172434155639f2c383328e9fc29c51b12a0fa774385c61c0eaa01636bb20f341cb8b98248dfc2a7d5c37a7e0b381ee73e13a01881328179b5763c97acca9c93a48efdb0a37788bc4065f94a300c7a03a97b90a0d1873665bba49ce440022dd6b7f5e64622b95b0324284d1d1eeb17c3bcc73936a09f66e6b7545b3afce5d71a42d581f740a9559389ffe218ad7a133e6c82c71b78a0168cd79444e86de07c23231e3610b72934cc3ce64cc307d1c5313621c70bafe3a0e6e1028c5ad4253809fb37962ee3398d5dd54d6818f60f6473c1a54a1f78bec680",
"0xf90211a0aa96d7f21382769b2d696d25a26ae2d32a9bb886e33d1277d99745107f1b4453a0509cb3989898c5e230e23ce57e3d8c2824ff9147948aabc87f5fa2ad24ec911da0079c1ef016e517e426605354346bc6d158abb3202e7ce3cf8a420775a7d19ccaa07acd5dfbdf2151f5ea829ee3a4e13a7ba009df85f85d0071923f6f58aaec197fa03bdf5d044ab85ffb8b844717aaa92dbdbea36a3977aa821ad9c69623effa01d7a0e8ca6a93b790c277cee3c3748669196d6d02ba7ffdb01779d94694a9e7fa317da0ace444f5cdec4e8c149025c52009ad5185d488e66c51c6d33f34e8785ebb8c01a07deb76b38b850fdcc81a784ffeff3f67ee509e94c257666cc01412db0386fdfca0b51c7f5dee17fc0dc892cb02cbf14d99613067d69754ad95ef5cd25e7cdec1e0a08bcfbf4a22c23897744033bc11901803c05709ebe9a075dd29ad21bca38be0f5a0e495250d43952775190d3e9190a4c9f99729a0754fd7d19fe395740ea5ad1846a0f54660d3a1af3fef02ed50c6b1f76fa2527fab689d72cb53e584fcd810a3d757a09df31fdcf798b15dee3d26495f5d5219160f1952994f29cbf7d1ca2d9ab5d799a0cfed40cabaec692529da27ccfc09bec74fa8028ea128832cbb93b2d850dff777a02f28f7d9d1d8ef16d2ffe7962f7b329763e1c82dccd810ff7d5cd897ea79c8a0a0ac192760935c5dc2345419eb34322b2280709e883b6d085ceb3b07ef7683b11e80",
"0xf90211a091204c60d60c1b7e204d7af46451a89d3042ed9cadde7800ed3e2cd65353099ea0bb985c2a60ebe03cfedd0bea2d20178952ad99ce25a382cf649d9d8a41613fb7a01af16d89d96f0449932166fe2ef470252ee22154b80978ea23c1ef7761f1352da0966abe128e0ea22edf1f81027c4d7481e68d225fe125edb07264d23efad53d53a0c2ac8b17ce9c565a2860bb0e44cd53b6739d484c1c6a41214db25aa288b58a46a0a069b99ab2c03280cf6774905aac0c50c70cf1a48d2603da8667716de2088dd7a03dccef174f44e775cd9e4faad1de8abafbe21e49b6633c0eec6f1d647c2247f9a03ddfc273df3e7d4a8b55ab12b76a818f3bee444f8ada10509e05dfcb9d67b397a083dabdda6e483a7bf9b67b1f302943174898d38fc390f7988edb856d30dfffe0a028af290f1879de05a0da530f1b938e3b1ac0130918db47848c837beef5598cfea0deb62dbf9acd4da197e47214dc09684542c0da33f4acf29f0d45f6cb35dfcf3ba01bc06cc9130098fd8ae7909f64c158478ae02ba700f9599235b758c2c183d5a9a0d4d6d64d16c45f44f8162f40c3fad90b5f2ea0bebf3e17dd57d59ebc69c14edea0ed83eb3f5e6838ee6a0f8f90e360d841aa7284b43d10fe217db925f5526b3e58a03fbe4faf61e6164b320021980816d5706a39548c1e4eb005668020a1354dc92ca01b80a56fbb4b23d8a2b501a70f7ff5c5ee78aa3b0cae4937f43d0d875f3c6de180",
"0xf90211a0848146b2c2f2fce024033a40d0b2f3e521ffdb7b62af886858d5de9c5eac4f22a0e592e29735464b2889865598e81f60762f63595f69c7a6f4be4e4016d4f64c12a07edc45f867ecb17a03dc5f8ce66769874284e64c77cb221c9af07e92462a5c67a0fc02752d0dff6b068605d977f2552a9a3bb1dbc91fd2a9ac8688c8899f48c8c0a026485194771d80adc1201913bd35f8913df62a8737eabb011c75f17b85deeb82a07a0866b6d01fe4526d9c65672c351c92f48f8ef4798395400f9b7b84d88cc624a0dba0f4bfa5728f7ed18f7528d768ea331a5d36b7c82ae437063531f5c1cb71dba0c02aee3cb0f304214468420e978ed8d955915f24f99d15c7a3b0ce4841779766a09d42d7078281ccd075f51cc77dc673c49653edf0c5dc6a6a4b899727d990af01a0cf0dba571efa765ac43e3f737e967fca47149edf8a162208b8f6568ef3ee9c5ea02cceec332d0d2d05849e98cc85cc3b1bf10effafe4623824c58641606f40e55ea0202e89449e81d8c9db7f432787f0b4a95e3336511b0bcef96d25e35b9327b4c6a0918bbf22e656e37f43d2764faaebcf5a11ce61b1e8a810433d4a0b2c5ea2bdbaa0510435ca2f44b50c2b42d2a0ee4bfe6f3a277ced3dff898b35e7646681b2ac9ba0c9b0d0ed10e6b2768ea363d23a7ba9fd410cff56b7f1aafd7bc7f71ad0c316dea07b4bd2dbfa5d9a133c3d5f366f95f93afe380b3c76a7ff672fba8e992b9737bb80",
"0xf90211a093f15515ca2da221e39815c217c927b09b7bf6d6857d295b3d8015671dd139dca09f10a1e15f1ee0eaa0b5fa585dab17e7ffabea140a782908ce695f3363fb546fa0f4a360baae79155c719611cb56c0660e65be7ad6ccd526e31cfdf1358e5fab2da0b4ee2eb1a4dd70ac949671fca564d3593182e919d1333458fa5fb959afa6dd1da05b0b56d1c1f08097716f21eb8924391b4ee9417970f7ff4a6a2acccba683fbc2a0851d2ab5d0001d600946be31a2a9447bd2abd9a1b1ab87e0528e6275b0a01b66a02e52c23cf7278e1baf5744541a4aac94b7665bc2aebf1409b6e6f8cc5bc6c70fa0fe5e0a807afe4aa32af01160d81d195087bc55ddefa823094a0bffb81b716e40a03e37b59ee99194ab2ee1a0645cf8b9d8181c2e8b59f2579ed2f28566f9a0fc2ba04d4e36088935aed10afba45cf11a4164527b850a15399c4385cf908974c1433aa057852fc04f5b128e7cb33bc26a4dbc85504fdefe06d1376bce737752109e504fa095dab9ca0ac2a64da4d7f183eae49a61279513e61a70e6a03d0e48f400e6ffc9a0a5d56cd6c4e182c73ba1be43e92faf75e15b3237367fa6bcad16d0d65a8d344aa0696927bd0008122307c7d7c3d1330421ffd74447b15c05ab02232337b830c5aea0d8222b8d6d92b7ef208d436332d3d95d1f1032cc1db964f33550ab6f45d9056ba06fdcfbcf19215c60f7cbe5a8a24b002d47b8c4df8e4647cc508f5d5be115438480",
"0xf901f1a0d1f6c19278ea0a4ad8b483a97dd8e18bacfb8fff5e50f86f5f1cb64889e97d3aa016a23ac6d4741388d3b773d7ed99944765952978e05ee15c1aaae78b8f09df5fa0c64ce3b92621fc9c8c3f4a0eb4def93897b85ba0e6ec798640cfddaf3aa5d741a05783102f562cb9e28d1619b282283739824d0d0192a565472cfad1022dbec8cea0df0225d43fcc8aa62fbdfcfe30dda1cc71f3ff5e6dd1ea43aecd516783716420a0530c282b562e69b6d2e173cbeaff55d13cbc5a5e47f6484e4ce02e29c3842650a03edc7b920b93f5c5b83a49fa871c078b0c3bdca2dbeca03d5ac81f7194bc3b05a04cf0321ada23135412107cc0d1efc54dfbf9dfa4d9e0b8875264c441ad1f469580a079553af90b9c9525213a7645d789e5b7f07b2facccf6230c2be4f021bc29428ca020d369ed6d163fb72ecdd3327997ff34571b3507a42043ad194023b8926a1078a0e9ef8a45efffe4d48c2efac05189d959acc094b9e42c268e52348905b18199b5a09c497667d40309527642c1a0305e61893e5ea045ab280611ede9f633a98fc1a0a03c7064c1a1938d52d4411adb48a2662339537b1622e18f6645e6f555e21491d6a004bef343aeb46fc5f2b87ce46a42d753828211142a34c7737f9253a817f6ff31a0cde2c6f3d07d865d08ea2f3860944612121bd6911383a26b6dbdbd859380f11f80",
"0xf891a0701700b4bfcbe400300b1f9ac96f8eb11fa54ff98556eaea24939f704570163f80a016ca462a06b115edf2fc878a1b4e55d3489441a7ddb7d15ed5fcfc35cefced9080808080808080a0e44ba3f62abf6a48603e8b844d1159c3fb59b99aed16531178a1d959db59ff4380808080a0203ff2df5a1c23f3a39cc4ff65a2f2bec349e86b99a23a9eb3798bcf1854979580",
"0xf8669d3926213ae00cb4839ad4802822dc00efee94c8495aa23633b3f5dd6299b846f8440280a0c2cf7c0200ca6b40f60bacc94fdfc3a05ac93774caa9fb8d73f9a8fe6b7e4611a0faf8cfbc249f506e086ff4e8b24ef6dffff173ed61bc0be21e7fdc94387c29ec"
],
"storageProof":[
"0xf90191a0bea0a7fbf9c78bfb8664188eeed2b9436918ee5a33a1d7261f48cf18751fd16da009e1e394deef5b45cfafd89ba5a26c5c526c7291953463df1931a7818e5621ea808080a014e7cb190268fb890bc9ba105fa0a7124fffdaeac4c665f7cef50a35bc58dd25a0e789e81a13043a275e311b497289f011060a9e170fd51772bb0bee4beae5de45a0ffd803e4dd13cf44a40cef45bbcb6901c416e3631f092033997b48c2b3be5971a054d6b2d67cd7073869ead7a704fce7d8d1c898770e527544a5d21391d604c677a073dea50c486220cc8ac56eb1c1ebffe1aefa87b61fa800eb25ca6f5e9f71f25ba0bacb2c9831ee80021162f753ab440c1d98365188291be2b9772a5e6b51551d3680a0c8582290badc2c5d689dfb985eb158bce48110562cad785e5b603b39b148f364a034cb746025a322fd37c92085994d82b7d37ae6003ba5645eb62846863adeba2ba079866ac4ff54c3062d8fbd4fa347961e9a905b4114a2ed9785e22a5c03f4ffb8a0e5147e363e3eed76b3fdc69df1563c4f86b396ddd8cf666aae067b1dcf3a39dc80",
"0xf843a036b32740ad8041bcc3b909c72d7e1afe60094ec55e3cde329b4b3a28501d826ca1a032df0037f470676cb92955248a2fa07795d2003440d13e44692134b8dfc94773"
]

}
```

### Map slot to Ethereum block number

Expand All @@ -170,5 +172,5 @@ RUSTFLAGS="-C target-cpu=native" cargo run --profile maxperf
* Response

```json
{"blockNumber":5380093}
{"blockHash":"0x5282299b298fe1d7238f1a48aa0f5e7cc19ccbcdeeba020b610db78abeb0d52b","blockNumber":5380093}
```
22 changes: 16 additions & 6 deletions src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,14 @@ struct BeaconAPIResponseData {
epoch: u32,
slot: u32,
exec_state_root: B256,
exec_block_hash: B256,
}

#[derive(Serialize)]
#[serde(rename_all = "camelCase")]
struct SlotMappingResponse {
block_hash: B256,
block_number: u32,
}

#[derive(Deserialize)]
Expand Down Expand Up @@ -275,7 +283,7 @@ async fn get_eth_proof(

#[inline(always)]
async fn get_avl_proof(
Path(message_id): Path<U256>,
Path((block_hash, message_id)): Path<(B256, U256)>,
State(state): State<Arc<AppState>>,
) -> impl IntoResponse {
let mut hasher = Keccak256::new();
Expand All @@ -294,10 +302,11 @@ async fn get_avl_proof(
rpc_params![
state.bridge_contract_address.as_str(),
[B256::from_slice(&result[..]).to_string()],
"finalized"
block_hash
moraesjeremias marked this conversation as resolved.
Show resolved Hide resolved
],
)
.await;

match proof {
Ok(mut resp) => (
StatusCode::OK,
Expand Down Expand Up @@ -339,8 +348,9 @@ async fn get_beacon_slot(
(
StatusCode::OK,
[("Cache-Control", "public, max-age=31536000")],
Json(json!({
"blockNumber": rsp_data.data.exec_block_number
Json(json!(SlotMappingResponse {
block_number: rsp_data.data.exec_block_number,
block_hash: rsp_data.data.exec_block_hash
})),
)
} else {
Expand Down Expand Up @@ -522,7 +532,7 @@ async fn main() {
.unwrap_or("https://beaconapi.succinct.xyz/api/integrations/vectorx".to_owned()),
beaconchain_base_url: env::var("BEACONCHAIN_URL")
.unwrap_or("https://sepolia.beaconcha.in/api/v1/slot".to_owned()),
contract_address: env::var("CONTRACT_ADDRESS")
contract_address: env::var("VECTORX_CONTRACT_ADDRESS")
.unwrap_or("0x169e50f09A50F3509777cEf63EC59Eeb2aAcd201".to_owned()),
contract_chain_id: env::var("CONTRACT_CHAIN_ID").unwrap_or("11155111".to_owned()),
avail_chain_name: env::var("AVAIL_CHAIN_NAME").unwrap_or("goldberg".to_owned()),
Expand All @@ -535,7 +545,7 @@ async fn main() {
.route("/eth/proof/:block_hash", get(get_eth_proof))
.route("/eth/head", get(get_eth_head))
.route("/avl/head", get(get_avl_head))
.route("/avl/proof/:message_id", get(get_avl_proof))
.route("/avl/proof/:block_hash/:message_id", get(get_avl_proof))
.route("/beacon/slot/:slot_number", get(get_beacon_slot))
.layer(TraceLayer::new_for_http())
.layer(CompressionLayer::new())
Expand Down
Loading