diff --git a/README.md b/README.md index b00b76f..be4036c 100755 --- a/README.md +++ b/README.md @@ -48,6 +48,30 @@ RUSTFLAGS="-C target-cpu=native" cargo run --profile maxperf {"name":"Avail Bridge API"} ``` + * To get information of the bridge details: + + * Request + + `GET /info` + + ```bash + # curl + curl http://localhost:8080/info + ``` + + * Response + + ```json + { + "availChainName": "hex", + "bridgeContractAddress": "0x1369A4C9391cF90D393b40fAeAD521b0F7019dc5", + "vectorXChainId": "11155111", + "vectorXContractAddress": "0x570f6a1936386a4e060C2Daebbd0b6f5C091e13f" + } + ``` + + + ### Get current Ethereum head * To get the latest Ethereum block number, query: @@ -61,7 +85,11 @@ RUSTFLAGS="-C target-cpu=native" cargo run --profile maxperf * Response ```json - {"slot":4454752,"timestamp":1709191840,"timestampDiff":1716} + { + "slot":4454752, + "timestamp":1709191840, + "timestampDiff":1716 + } ``` ### Get current Avail head @@ -77,7 +105,12 @@ RUSTFLAGS="-C target-cpu=native" cargo run --profile maxperf * Response ```json - {"data":{"end":512738,"start":488581}} + { + "data":{ + "end":512738, + "start":488581 + } + } ``` ### Generate Merkle Proof @@ -91,46 +124,51 @@ RUSTFLAGS="-C target-cpu=native" cargo run --profile maxperf ```bash # curl "/eth/proof/?index=" - curl "http://localhost:8080/eth/proof/0x9f9cc9b3af8a753f769dfa6c9fe4ab13c089a37e602f4e0496aa25534c1baba1?index=1" + curl "http://localhost:8080/eth/proof/0x5bc7bd3a4793132007d6d0d9c55dc2ded2fe721a49bd771c1d290e6a3c6ec237?index=5" ``` - * Response + * Response - ```json - { - "blobRoot":"0x0000000000000000000000000000000000000000000000000000000000000000", - "blockHash":"0x9f9cc9b3af8a753f769dfa6c9fe4ab13c089a37e602f4e0496aa25534c1baba1", - "bridgeRoot":"0x7130a7ba8991180769a183c1239d8914ab8700af39273d52d88f0c06dbbdd310", - "dataRoot":"0x214f632dde190c7fa8a8fe8225c7a1f9f1dfa21e0b2cd7dadeef3f95ebec8c6a", - "dataRootCommitment":"0x6a8da698b22f1fb55a16b5899be7d192caa81f7489221243c11e267ed0e1377b", - "dataRootIndex":71, - "dataRootProof":[ - "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5", - "0x51f84e7279cdf6acb81af77aec64f618f71029b7d9c6d37c035c37134e517af2", - "0x69c8458dd62d27ea9abd40586ce53e5220d43b626c27f76468a57e94347f0d6b", - "0x5a021e65ea5c6b76469b68db28c7a390836e22c21c6f95cdef4d3408eb6b8050", - "0xfd4cd11dc8da59a673fcf1a061350f63ef7214a328fe48927486c9df8804ecc0", - "0x83aeb54660d9c6158085a50947e76e4ac01c95fd9b30e6d3bc865810ba6e73c4", - "0xe51e1602448430542788cabb952ab87348561d146fe366b2525e581c0530c77e", - "0xa8fe638d4e60df885487b457c6c6141f02b42bc84cf67a656e71b41a1ce7edb9" - ], - "leaf":"0x7130a7ba8991180769a183c1239d8914ab8700af39273d52d88f0c06dbbdd310", - "leafIndex":0, - "leafProof":[ - - ], - "message":{ - "data":[49, 50, 49, 50], - "destinationDomain":2, - "from":"0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d", - "id":93, - "messageType":"arbitraryMessage", - "originDomain":1, - "to":"0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "rangeHash":"0x2ad99bcda44fea1f7ee7c7006f03365ae0bdc9686d9eda549e99a9953b371d80" - } - ``` + ```json + { + "blobRoot": "0x511030804f9768c9d5c4826cdc7eba25ba0fd8e73ea32467e5fad547397620f8", + "blockHash": "0x5bc7bd3a4793132007d6d0d9c55dc2ded2fe721a49bd771c1d290e6a3c6ec237", + "bridgeRoot": "0xf6c807bc73a637957a61d620bd5e4ef8c7dd234e5fc96dfb6d6041bbe2947782", + "dataRoot": "0x2179e18ee112b080794b40f2239d77041c715ad7392d9fce054b7c10eacd4ebc", + "dataRootCommitment": "0x41cfe14b2e229cc5b4ee0cb7c3c909e1f78ae9e32f986e7496bfd4e007e06519", + "dataRootIndex": 48, + "dataRootProof": [ + "0x0395f21560a9ccc1f2aa972601250256fbdb20fd936e1723397ff8d5e4f07b5d", + "0x1e91eb5ce2802373a583ce83898e8b4c1bb648e3c76bad87820a197b73b6d23b", + "0xd49b33b5754aa6c9549e9677e4c646bd4e7d500a2ab9761cffff5363f4608ac7", + "0x575858cb3bb948af2d8c4582310f951eb798281f71e913e044c6c415031f58a3", + "0x353fe475ab9b0e00c3bfae8598fef61ac2921a7928b21ad45b6594c023611156", + "0x4cb574d05c6606d2509ec6849e0cb53d04c5eead1cdbed4704018da938df5460", + "0xd88ddfeed400a8755596b21942c1497e114c302e6118290f91e6772976041fa1", + "0x87eb0ddba57e35f6d286673802a4af5975e22506c7cf4c64bb6be5ee11527f2c" + ], + "leaf": "0xe17de7631392427460102691ba8a22adf5fb410548e50d6c636bf1f96840c3c3", + "leafIndex": 0, + "leafProof": [ + "0x00017cadd87ec12039f98d646afaa33ed843056ad12f5e971cc81be15d00c26f", + "0xd046caabde74922f9d69e9fd33de6d3b9ee0f5c536183c4f4259f078afda538a" + ], + "message": { + "destinationDomain": 2, + "from": "0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d", + "id": 256491151949829, + "message": { + "fungibleToken": { + "amount": 5000000000000000, + "asset_id": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + }, + "originDomain": 1, + "to": "0x0000000000000000000000000000000000000000000000000000000000000000" + }, + "rangeHash": "0x21c402a3ccf8df26cb720c6d2fb409f04c809adef7a9a852e463cca83588f4fb" + } + ``` ### Get Account/Storage proofs @@ -149,22 +187,23 @@ RUSTFLAGS="-C target-cpu=native" cargo run --profile maxperf ```json { - "accountProof":[ - "0xf90211a0d82a1a6e4b71bef93f5815bdf67bdeaa34df3daa774bbe36102383832139b105a0ef290d48d47b459f17a29fd9819d1cbf6de5ef93f0b16d41a226304d5b1038e0a00a7fb2ce24c8c32391c872cc4982d30778c3f2ed6502dd9eb845dbc42cffdabba026619f27ead8de859af55f45b9da7dae18097b9e6b9ac0e7b8c11d4365f94a92a068decdc2e8e5ebfd28daa4c3846272ddb4f89dc5232db0f40eb309ef334e459ea014e5ca1fe814136250533e63efa6d3629f9a62b5ee1441a10b264fcf7a9d909ba0dee7bd2e76cf85a2dc570be9fcb016d2cbd739bb831316958531e769cc81ad3fa020c0923882f63805265ccf325a18b74dc13a0847001bfc220fb1271c07556f50a0d858656224d15f74d9f534e8b596ff8d42d1b157d2ebaf1f9bc3c1cdea23569da0ee0522cdd09d809f59280cc3ade7034172434155639f2c383328e9fc29c51b12a0fa774385c61c0eaa01636bb20f341cb8b98248dfc2a7d5c37a7e0b381ee73e13a01881328179b5763c97acca9c93a48efdb0a37788bc4065f94a300c7a03a97b90a0d1873665bba49ce440022dd6b7f5e64622b95b0324284d1d1eeb17c3bcc73936a09f66e6b7545b3afce5d71a42d581f740a9559389ffe218ad7a133e6c82c71b78a0168cd79444e86de07c23231e3610b72934cc3ce64cc307d1c5313621c70bafe3a0e6e1028c5ad4253809fb37962ee3398d5dd54d6818f60f6473c1a54a1f78bec680", - "0xf90211a0aa96d7f21382769b2d696d25a26ae2d32a9bb886e33d1277d99745107f1b4453a0509cb3989898c5e230e23ce57e3d8c2824ff9147948aabc87f5fa2ad24ec911da0079c1ef016e517e426605354346bc6d158abb3202e7ce3cf8a420775a7d19ccaa07acd5dfbdf2151f5ea829ee3a4e13a7ba009df85f85d0071923f6f58aaec197fa03bdf5d044ab85ffb8b844717aaa92dbdbea36a3977aa821ad9c69623effa01d7a0e8ca6a93b790c277cee3c3748669196d6d02ba7ffdb01779d94694a9e7fa317da0ace444f5cdec4e8c149025c52009ad5185d488e66c51c6d33f34e8785ebb8c01a07deb76b38b850fdcc81a784ffeff3f67ee509e94c257666cc01412db0386fdfca0b51c7f5dee17fc0dc892cb02cbf14d99613067d69754ad95ef5cd25e7cdec1e0a08bcfbf4a22c23897744033bc11901803c05709ebe9a075dd29ad21bca38be0f5a0e495250d43952775190d3e9190a4c9f99729a0754fd7d19fe395740ea5ad1846a0f54660d3a1af3fef02ed50c6b1f76fa2527fab689d72cb53e584fcd810a3d757a09df31fdcf798b15dee3d26495f5d5219160f1952994f29cbf7d1ca2d9ab5d799a0cfed40cabaec692529da27ccfc09bec74fa8028ea128832cbb93b2d850dff777a02f28f7d9d1d8ef16d2ffe7962f7b329763e1c82dccd810ff7d5cd897ea79c8a0a0ac192760935c5dc2345419eb34322b2280709e883b6d085ceb3b07ef7683b11e80", - "0xf90211a091204c60d60c1b7e204d7af46451a89d3042ed9cadde7800ed3e2cd65353099ea0bb985c2a60ebe03cfedd0bea2d20178952ad99ce25a382cf649d9d8a41613fb7a01af16d89d96f0449932166fe2ef470252ee22154b80978ea23c1ef7761f1352da0966abe128e0ea22edf1f81027c4d7481e68d225fe125edb07264d23efad53d53a0c2ac8b17ce9c565a2860bb0e44cd53b6739d484c1c6a41214db25aa288b58a46a0a069b99ab2c03280cf6774905aac0c50c70cf1a48d2603da8667716de2088dd7a03dccef174f44e775cd9e4faad1de8abafbe21e49b6633c0eec6f1d647c2247f9a03ddfc273df3e7d4a8b55ab12b76a818f3bee444f8ada10509e05dfcb9d67b397a083dabdda6e483a7bf9b67b1f302943174898d38fc390f7988edb856d30dfffe0a028af290f1879de05a0da530f1b938e3b1ac0130918db47848c837beef5598cfea0deb62dbf9acd4da197e47214dc09684542c0da33f4acf29f0d45f6cb35dfcf3ba01bc06cc9130098fd8ae7909f64c158478ae02ba700f9599235b758c2c183d5a9a0d4d6d64d16c45f44f8162f40c3fad90b5f2ea0bebf3e17dd57d59ebc69c14edea0ed83eb3f5e6838ee6a0f8f90e360d841aa7284b43d10fe217db925f5526b3e58a03fbe4faf61e6164b320021980816d5706a39548c1e4eb005668020a1354dc92ca01b80a56fbb4b23d8a2b501a70f7ff5c5ee78aa3b0cae4937f43d0d875f3c6de180", - "0xf90211a0848146b2c2f2fce024033a40d0b2f3e521ffdb7b62af886858d5de9c5eac4f22a0e592e29735464b2889865598e81f60762f63595f69c7a6f4be4e4016d4f64c12a07edc45f867ecb17a03dc5f8ce66769874284e64c77cb221c9af07e92462a5c67a0fc02752d0dff6b068605d977f2552a9a3bb1dbc91fd2a9ac8688c8899f48c8c0a026485194771d80adc1201913bd35f8913df62a8737eabb011c75f17b85deeb82a07a0866b6d01fe4526d9c65672c351c92f48f8ef4798395400f9b7b84d88cc624a0dba0f4bfa5728f7ed18f7528d768ea331a5d36b7c82ae437063531f5c1cb71dba0c02aee3cb0f304214468420e978ed8d955915f24f99d15c7a3b0ce4841779766a09d42d7078281ccd075f51cc77dc673c49653edf0c5dc6a6a4b899727d990af01a0cf0dba571efa765ac43e3f737e967fca47149edf8a162208b8f6568ef3ee9c5ea02cceec332d0d2d05849e98cc85cc3b1bf10effafe4623824c58641606f40e55ea0202e89449e81d8c9db7f432787f0b4a95e3336511b0bcef96d25e35b9327b4c6a0918bbf22e656e37f43d2764faaebcf5a11ce61b1e8a810433d4a0b2c5ea2bdbaa0510435ca2f44b50c2b42d2a0ee4bfe6f3a277ced3dff898b35e7646681b2ac9ba0c9b0d0ed10e6b2768ea363d23a7ba9fd410cff56b7f1aafd7bc7f71ad0c316dea07b4bd2dbfa5d9a133c3d5f366f95f93afe380b3c76a7ff672fba8e992b9737bb80", - "0xf90211a093f15515ca2da221e39815c217c927b09b7bf6d6857d295b3d8015671dd139dca09f10a1e15f1ee0eaa0b5fa585dab17e7ffabea140a782908ce695f3363fb546fa0f4a360baae79155c719611cb56c0660e65be7ad6ccd526e31cfdf1358e5fab2da0b4ee2eb1a4dd70ac949671fca564d3593182e919d1333458fa5fb959afa6dd1da05b0b56d1c1f08097716f21eb8924391b4ee9417970f7ff4a6a2acccba683fbc2a0851d2ab5d0001d600946be31a2a9447bd2abd9a1b1ab87e0528e6275b0a01b66a02e52c23cf7278e1baf5744541a4aac94b7665bc2aebf1409b6e6f8cc5bc6c70fa0fe5e0a807afe4aa32af01160d81d195087bc55ddefa823094a0bffb81b716e40a03e37b59ee99194ab2ee1a0645cf8b9d8181c2e8b59f2579ed2f28566f9a0fc2ba04d4e36088935aed10afba45cf11a4164527b850a15399c4385cf908974c1433aa057852fc04f5b128e7cb33bc26a4dbc85504fdefe06d1376bce737752109e504fa095dab9ca0ac2a64da4d7f183eae49a61279513e61a70e6a03d0e48f400e6ffc9a0a5d56cd6c4e182c73ba1be43e92faf75e15b3237367fa6bcad16d0d65a8d344aa0696927bd0008122307c7d7c3d1330421ffd74447b15c05ab02232337b830c5aea0d8222b8d6d92b7ef208d436332d3d95d1f1032cc1db964f33550ab6f45d9056ba06fdcfbcf19215c60f7cbe5a8a24b002d47b8c4df8e4647cc508f5d5be115438480", - "0xf901f1a0d1f6c19278ea0a4ad8b483a97dd8e18bacfb8fff5e50f86f5f1cb64889e97d3aa016a23ac6d4741388d3b773d7ed99944765952978e05ee15c1aaae78b8f09df5fa0c64ce3b92621fc9c8c3f4a0eb4def93897b85ba0e6ec798640cfddaf3aa5d741a05783102f562cb9e28d1619b282283739824d0d0192a565472cfad1022dbec8cea0df0225d43fcc8aa62fbdfcfe30dda1cc71f3ff5e6dd1ea43aecd516783716420a0530c282b562e69b6d2e173cbeaff55d13cbc5a5e47f6484e4ce02e29c3842650a03edc7b920b93f5c5b83a49fa871c078b0c3bdca2dbeca03d5ac81f7194bc3b05a04cf0321ada23135412107cc0d1efc54dfbf9dfa4d9e0b8875264c441ad1f469580a079553af90b9c9525213a7645d789e5b7f07b2facccf6230c2be4f021bc29428ca020d369ed6d163fb72ecdd3327997ff34571b3507a42043ad194023b8926a1078a0e9ef8a45efffe4d48c2efac05189d959acc094b9e42c268e52348905b18199b5a09c497667d40309527642c1a0305e61893e5ea045ab280611ede9f633a98fc1a0a03c7064c1a1938d52d4411adb48a2662339537b1622e18f6645e6f555e21491d6a004bef343aeb46fc5f2b87ce46a42d753828211142a34c7737f9253a817f6ff31a0cde2c6f3d07d865d08ea2f3860944612121bd6911383a26b6dbdbd859380f11f80", - "0xf891a0701700b4bfcbe400300b1f9ac96f8eb11fa54ff98556eaea24939f704570163f80a016ca462a06b115edf2fc878a1b4e55d3489441a7ddb7d15ed5fcfc35cefced9080808080808080a0e44ba3f62abf6a48603e8b844d1159c3fb59b99aed16531178a1d959db59ff4380808080a0203ff2df5a1c23f3a39cc4ff65a2f2bec349e86b99a23a9eb3798bcf1854979580", - "0xf8669d3926213ae00cb4839ad4802822dc00efee94c8495aa23633b3f5dd6299b846f8440280a0c2cf7c0200ca6b40f60bacc94fdfc3a05ac93774caa9fb8d73f9a8fe6b7e4611a0faf8cfbc249f506e086ff4e8b24ef6dffff173ed61bc0be21e7fdc94387c29ec" - ], - "storageProof":[ - "0xf90191a0bea0a7fbf9c78bfb8664188eeed2b9436918ee5a33a1d7261f48cf18751fd16da009e1e394deef5b45cfafd89ba5a26c5c526c7291953463df1931a7818e5621ea808080a014e7cb190268fb890bc9ba105fa0a7124fffdaeac4c665f7cef50a35bc58dd25a0e789e81a13043a275e311b497289f011060a9e170fd51772bb0bee4beae5de45a0ffd803e4dd13cf44a40cef45bbcb6901c416e3631f092033997b48c2b3be5971a054d6b2d67cd7073869ead7a704fce7d8d1c898770e527544a5d21391d604c677a073dea50c486220cc8ac56eb1c1ebffe1aefa87b61fa800eb25ca6f5e9f71f25ba0bacb2c9831ee80021162f753ab440c1d98365188291be2b9772a5e6b51551d3680a0c8582290badc2c5d689dfb985eb158bce48110562cad785e5b603b39b148f364a034cb746025a322fd37c92085994d82b7d37ae6003ba5645eb62846863adeba2ba079866ac4ff54c3062d8fbd4fa347961e9a905b4114a2ed9785e22a5c03f4ffb8a0e5147e363e3eed76b3fdc69df1563c4f86b396ddd8cf666aae067b1dcf3a39dc80", - "0xf843a036b32740ad8041bcc3b909c72d7e1afe60094ec55e3cde329b4b3a28501d826ca1a032df0037f470676cb92955248a2fa07795d2003440d13e44692134b8dfc94773" - ] - - } + "accountProof": [ + "0xf90211a04ea3386c3564d92c70c842f4fe40a382ab0c0915bd52f1cfdf515e7df40f6365a05fd188dd610941144f5367487b343528f30b6fe1713e14c489a925d31b76de8ea081a4596748d2119583d96af1f6459bfc4d4cf48e5cf9f4171bb0f15b54bfc705a0934bf30f9e4643c1e8cabd31b65867d5dce6702ff922d5d5f88edd77c16eddf8a020c236a887760702595f069baa5c20a5d7f7ff56e99e4f2291e6c383ec2f1376a0a4c5d6569cf6acb8b7b744bdb847ee84c7a250a05858f21c4b71e892e0f6368ca0431a25d2f4d04d92b7f663f91b65029bd2a443fdcd71d6a5d1cd2bad5f937da5a09d5da24c3c97ebd7ed4897206e30464414bdaf91fb633ef6e5aa61ec4573b829a0e1850f0a51e6f8fb4e7b7d0a592a478e4fd4f55132faad2e05c774f2c5bf3722a0e437d19bee3cdd31e6a54da59dd1730d20ad59b1e816ba304b0f8cf89fa62697a07c9058190b5603de7af44f45d2654832a5e5186db18b28514101f5df81287a27a08637a03272d24e7d380f3d68a38525d0348cce5fe90ae32f2b51149badd96f75a0d45f94f513a8918bafb074ac20f951e6ddd59cfa414550ea7af155ea7530e386a03dc457251a135a4002731a17ee72e722897a64509dd108eeb729bb1d9a84bf3ca0e1834ab71a27a983540fee14db56a40c26e3936db6b76d950a117acd5d2a03fea053388d24ffe072f62c6ed5dc8d8e286e167648a5bed4f9a1445df2b2581a589880", + "0xf90211a05f1dfe6f285811ddc2b5c1b2e0b4c9715586274627a60885abf66fe60f58f39ea098709a8cac54a765fa8b09b12849171bc2aadece08d4d21e2631efb92e422a72a09456842fb2f41eeaad70f98549983ec28ac5cc97b2bacd325a341bf8fecbd3fda012f6579824d8706f219fab4e6209270b3c5a7f9b9b10434422173bee004ebf87a0cad660f5066719c1e57fa895b385aedb678d89843f93fa9d284137cce585d912a08aee33972b41bd2c81bb805877f91b5c720c518551071c8c7b7b5035fc855dcaa0fe78af4efca09613a5b166012ad59ce6450d8f612d872010b8cb2cfce5171e01a0ed34274b556d95bc83b368a313d81e2418c84435e094626f568294de2c6adda3a0c4a8516496de7bd739485f7f0ea764e5f1e64f18ea24d5c2662df9321ad476b0a0c3ac05b241ad4ce2e59c05d280a56cdcaa38b8d974d0086a517ea0e71f47dbbba0c786b94bc71965e950e2cddbc6dc3d20b9527f14ac6720dffd93531f58cbb2caa0db4936424a52afb5f811937e21c36dbfc115f36167f57ea0f0770ba5b2b01509a08bfc560bf436ebfd1b9b2a16b38c37fdef7b27b5c5facf3d8487034100e04da3a0d19c58734f31adc98c08131a3f441d4945c63a569d381265517fb270d149fcd9a0a49a515f1d226b9a55079dd09128e8d068ce4473fc2afc7ce83ca73b4a4aeca8a039f4a70c5da7a6f9a75ccfbfa4e4660f367d83ed133633a09d8d85f3b81619b080", + "0xf90211a013013c8d88c90029dae1eb17e9fde9d31aa12a845f977d5b05edfbb836490ed1a08313217b9700aa20e3f2bca060da9c6986794e32e39ee8378c5fc090ea3900c4a0bb6f74f7517cc6d53e1ac28cda4b7492460eac8ad25dae2e6f5dd83054975f5aa06591f5961ce401397d1b7ca8ace8c514f0711029a4804afc5dff746535f4b310a0acb9ff577f6e255b1739bdca46b3fca567678334cef7a7c3459110d398117ca0a0ca52f676d720f2148ea17a8949d8456043eca88e500c0455de24bd5f97c4574ba043f8dbbd691453a0601664d5a35b89b7980c679924f93427d446ccb4b8f54bfba0429ee0cf4db61c968b343ade1502260068beaa87dc31e673c3abeaad60dbe7a5a03e27446763b24c289f918b1710dd069019fb95cd822997fb6fbc1db75ac8b0eca0fdf20b9898a99a2378bb653195060908595370eb56d905306ca1d1260d5c4120a0c63d1fb8a5be22724ea48117eab3b87f9a2ff76c6dec7f3568ddc16098f31b68a0e527b82ba67b4d9299c0e11f48362894ff615bf39e36ccde2d4e13b636262833a008b21c1e3dc4c5938833ed344842aff4a75297019736e1b66820a959d3092561a02bcb48ab6bf1b0b426008ab0919010b847473a3710806632bed77f05d10b2f5ca09b61c79db573dcc92d61a101051e2cffc43389cbffb39cba671fd5a706c26cd1a030051e73e7a062b2812459e8cd4c2db94c408f2dc706fc16ed632cda8707f3bd80", + "0xf90211a007df9be996660f9f91495c59b998832068088ae9034c5b04639694168b9571e6a0aa1dc52398e74cf48729ec879a6ee91c2e73cc73c076f953dda4dfe580ff05e3a0afc1d0a6d1d8723d5c16d5b25673eb3f4d05ef1466612ee9182781bbe987611ea038064f5d9c62106631b05c606352db759e3b535cdafeafb16638c9515731a7cba06800f0958bb61b89dd4bb02eb3da4bf6c14ad00b4a48a66019b0e6d15cc84ee1a08c149b7166f15e51a524ee32ea212f60d6df6a800e01d4fa22ffede5a39ee9e5a093922185d4bdbe12d5e5c62194739038e89b01d67f476acc8865817ac7ed9008a016d39ae51fad6e0f060d8653d173460ed52a823010a29db6edbc042b21e78fbca0f2c153d9c2c2b50644bc8098925dbb3ed618fa7e82ebb94e40965b2c977b6811a01f01669c56000db9ac524e334dace75e9f082db5c95ed9075caacc99165abc76a04ced0f74f50c438075f4d18fe1a0bbafa324e4a5a0d5fb7865acb35c72533e4ba0c8053b16343a4f4dd43ab76abb1cac2f8e791fdb3fa9121014cf7a42151860d3a06961b3a4f6ca879e0377f734d66f930af3258e1492be0c693d395c84a311a644a0a38ea23af3ce3d1d5b485a5c264f9cffaabe184e362466de6bf6e634062f5548a062843d42cff1c276a0e11cc1c6921151b7e84b8de41a2834c0beac97f6a07de3a0609f8c69b1fc2754e2d08946285d80a5a319647acef900dd97a62d21258a035880", + "0xf90211a0aec1c4685e2c3b64c256d10b3135ef48b013524839f8373dbd0bc0eac8d7ba1fa05ab97dd3b415869a2674d9dd1744abfb45de8dffc2c302b05c1336d40c80cf14a07ad83ef3d645503b9afcf48de32fb677beef8b637aa120e6624acea518eb5b3fa030775e5e8230f409c292e2d4033a7530f83656cb67148acc599d37f782f8ef8ba013f3d308779aeb8958a612b37a07807a1783b0f99e1e5f76303fb7c3c44d622ca06e7b7e9dcfc4c24c702aef326848015731a4e20f0d8a02a401197e99c62ca1d7a0ae60461c17040fd1475fceac5e5f5528d2b972b084b4d5413f8cfb41f1ac7075a029a319fc16340bb5889952869c0184a1fc1d0427aa488dd597909671c9b41b6ca03abb30bb5daf1a503a65f2e7979f61ed288f163937406758e2a44ed7a751d216a04e9cfefe88b368b66e1da951909d6e6ce639845c19690778f6e316c9dc902d52a0c7eb14d0cf6465626d7834f200810b009aeb7b13f384c096ebe3ec503b75f4faa0ad3c0d202e74be0f188316e4e466ae7fca89b6a20994b22747b2f95febf5a449a0692d63a3756a510f8467f7da09e97da406265b4201fa4fe3577cbb887045cd6ea093b71eb86d53ddf8d13df0e7c446867dbacf096455045a2bd9690c56a443b4c3a0e712c0b14d1130db6db7edd7a93af2fc1a06d2e5793c4e54dcacca98b4cc6997a0bcc85c28e9f209b9b419e66f87bce37fbb42ba8416880935275c377d2fcebcc180", + "0xf90191a0deb916373640a76bb6056aa37e9d548908c92fb5d3ea1fc69a1c99ddeb40eb24a029b4cdce0d4f7eed71cf6f6d21f4d27ef510b3e36c7c67587e84a08b8b288de380a0cd92c24f26cec2802437f2f8e56cdd35e47ed3edc4c806540740f5bf83f1c5ffa0aadf083c80930dee9f09d295708b24f31d2f41f50e1442e32ecbf03eb5b4a707a0f5335f3280d3be255686e95e46a353a1562a8008919a0051a46fb3fcce7c53caa07f9373bba9b4111e6d4ef57fecd16526497cdeaceccdb26ae09c526b834c83c3a0d000e75b89a65aedb850451d369e3ac5bf4d7ff0d71ec5e837417c0eaf074135a0a994cad72a8a641c62979d6f94ea0087a14770876869de76ff0aba4c51b7cfc480a094b7d0ec3e0de0f4135fed0b225c1a5f09fd8660e37fa7ee3d47cdf774fe4940a06e2c53738e77dd7b3c06aada2fcd6035a8435f8edbd40e0e9856439024502a2fa000e7bef9cf8c6301c9d0aba5e61136a898292f1cbde8861987d0999358f5505f80a0c232ad4a9e338ea79c8f86fc6a83952f212b4477a031a3c24d98d5aac8ef1fac8080", + "0xf87180808080a038eace52a35a1cb3ba4dfc5a7dd4fd884d999c017dd48546779e9b1ceee867f3a07564257a73fdfa4e290ad21fe914294174996ac87095b5730370371f5ea133e980808080a0d51dbe737bf6d8c5b89bcf7724074067d2a4986c4180a5016a8bebfbc92f56e1808080808080", + "0xf8669d38b7b6c4749ee47ec3483ea3325831ccd2fbcbbbcf7cb559ed13d35a14b846f8440280a0927826564770fb917bb1bc72e196fcf2fe2601c838c744106d1691a9da45b795a0fc50d62823735da871a4b45630e8f4a5aef99c18855869762b05d4f7fac4a859" + ], + "storageProof": [ + "0xf90211a02b61c0a3f1012b0c3fe640d90daf8f756f30665e9763d97c2809e683f57418bca0ca985e3b14af8741416d7c735fcc856c510138e8a82edd8506e49d8cac71258ca0bfebf2d2da505708433ec9e6d7d6f5f5706b502435ad98b8429f04f497f1e79ca0481bcb4d57a33e6fdd2d824b3f0bea708c76f437b114d043da26a9b019220552a01e5139fa355fc9ab10b4901bb0a1aee4b97b21441f3a6c2ecccadd2009b6e34fa05806452c1672d430087e3aac3e49901fe6788e8d5e2db17140ed49d3e4a6e262a00bc15c11195738ae6967054b12acc80948f99d852b3a05b2572407c67e98dfaca028fa67ddfd82c094d593d0001f099cff4f5bdad51cf0d77f4e5d15243c23701fa06ddefc9d483203b04420fc19c1de59664c839a726edb7cd6d519f63444293567a0fa38292ed34577ba490dfb1335d9ee2871bf64a498d8af13eb665516bc122fc8a03b6f3c05d6c9151aa3f552d3088d12e80ab70d78ef046ddf4d311dc35fd89699a02bbf18d484d22ce32d8efb9ad5236ca770f34ca46093a062c9fd0c00fce179b1a093e4702951798f5331327b8a6a613307e12edc789dc1ddb21ba4ef185122cedda091b0434eedf92e47d68213d40c2ead10fb94f7ce34845d9b85ddc255a5586f98a0b6a8a018fe45d5a78c237915cdc4db38a151c2078e9fd72ed53481072e816366a0c4a7126e02988de7caae8abdd299cf6fbde0eb2adc9be75ded86e8ea8388dead80", + "0xf90151a0401fa10b5959532f16179be0bd2506e7f849495298c2de8fd5b8c4d63b1f2c1ca01dcc18ed03ed3183fe26600b23afedbebdd947d6b5019cc010ea359e0234afe0a050030a57a0878bb51bbd0c62d3ba0c2b782ebc5d6ec012a7a1bd0f20917558b6a0db69566205faf59c73db049a04d81f63db7d2dbafbe66ed91557e511ed0938d780a0e6114e00cb6c2aa9cf632cb93e5ccad1b4c9af79c769950743a647fe829c602ca0bcb35466c5b4c32c509da47141cb7b9c3dddff0ebcd0ea050bad4d398e2fb25f808080a054876fae9e71b3585d4e83ee48c65b366f6f13a3c1b9e2749918145eabd1c46da004531fc338c340e676badc1a99cad6ece2da3d08945f806cb7063bf3343d35f48080a0c68fcd91600b226b6c847f28d2f6ca3f60c55b1009b26e59f4d1087bb5d6fcc0a06c5aec8aa331b1f04b26a06cb64c5a6d63616d717f236d31106751bbea0d666880", + "0xf871a08eccb5e838d7d0699e06d85c472bb097d8012c44d790e5d15c5b8465c7abb88180a02581c4c4535083ecd9ea1a314216bbe948f27bccb2e997c7796a9eec8f4c3df0a0c453ceda114a9775f135a7a2687f75e753c6f814789528fb73bb8cb5dec7eac680808080808080808080808080", + "0xf8429f31265685397ec9fa17535b5603e86e2b01a583b71373e1b2cbfac2a5bff58fa1a0eb70a047920b4aa1f3a418b52e455694d4e1a2362fd7fbcf16fe53d798311beb" + ] + } ``` ### Map slot to Ethereum block number @@ -183,5 +222,8 @@ RUSTFLAGS="-C target-cpu=native" cargo run --profile maxperf * Response ```json - {"blockHash":"0x5282299b298fe1d7238f1a48aa0f5e7cc19ccbcdeeba020b610db78abeb0d52b","blockNumber":5380093} + { + "blockHash":"0x5282299b298fe1d7238f1a48aa0f5e7cc19ccbcdeeba020b610db78abeb0d52b", + "blockNumber":5380093 + } ``` diff --git a/src/main.rs b/src/main.rs index 7831d2d..f1f82c0 100755 --- a/src/main.rs +++ b/src/main.rs @@ -174,6 +174,16 @@ async fn alive() -> Result, StatusCode> { Ok(Json(json!({ "name": "Avail Bridge API" }))) } +#[inline(always)] +async fn info(State(state): State>) -> Result, StatusCode> { + Ok(Json(json!({ + "vectorXContractAddress": state.contract_address, + "vectorXChainId": state.contract_chain_id, + "bridgeContractAddress" : state.bridge_contract_address, + "availChainName": state.avail_chain_name, + }))) +} + #[inline(always)] async fn get_eth_proof( Path(block_hash): Path, @@ -555,6 +565,7 @@ async fn main() { let app = Router::new() .route("/", get(alive)) + .route("/info", get(info)) .route("/eth/proof/:block_hash", get(get_eth_proof)) .route("/eth/head", get(get_eth_head)) .route("/avl/head", get(get_avl_head))