Skip to content

massbitprotocol/scalar-relayer

Repository files navigation

scalar-relayer

Relayer for Scalar https://docs.axelar.dev/resources/testnet

#References https://github.com/axelarnetwork/axelar-cgp-solidity/tree/main/contracts https://docs.axelar.dev/dev/general-message-passing/overview https://docs.axelar.dev/validator/setup/overview

Crypto

https://cryptobook.nakov.com/digital-signatures/ecdsa-sign-verify-examples

Public key

https://github.com/ethereum/eth-keys/blob/master/README.md ECDSA pubkey has 2 formats: 65 bytes lenth, started with byte 0x04 anh compressed form started with byte 0x02 or 0x03

Log from node

{
  "log": "Serialized transaction 0x02f9052d052c8459682f008459682f1682cfe4941577875dd69f5276aeeabe3540b1f7c64690b3f880b9050409c5eabe000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004c0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000002e000000000000000000000000000000000000000000000000000000000000002800000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000001cecce1a2e9fd648d0228ef25a5f99d31a68c8c18fc370f893e091bc19e6f61470000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000147472616e736665724f70657261746f72736869700000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000046a4cad7a08062f5a67c5bc4aa6d8c8816eff2470000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000010000000000000000000000002f467c697798c24788086e327b0bfd25952105fe000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000414aaeab55123571f2fae033d6d95b814975601c91470bdaf0c5c73c67cc22098d0b03cffdd2b0df7fb329a48bd80679ea17a78f992de05101f996afa169bbe0471c00000000000000000000000000000000000000000000000000000000000000c0"
}
{
  "log": "Hash tx 0x4518b1230d3f3021043f8faaa26870d13f24ec938d748b7925cda017c1702414"
}
{
  "log": "Signature"
}
{
  "r": "0x17d4b0603b7e63924d69fb1ef1fa62df1a51f22f1b60a1e6bbecbe85284ac741",
  "s": "0x6609510c7934ef41a6851a2e94cb58288b1b29a106ec8b864a80464a4811d635",
  "_vs": "0x6609510c7934ef41a6851a2e94cb58288b1b29a106ec8b864a80464a4811d635",
  "recoveryParam": 0,
  "v": 27,
  "yParityAndS": "0x6609510c7934ef41a6851a2e94cb58288b1b29a106ec8b864a80464a4811d635",
  "compact": "0x17d4b0603b7e63924d69fb1ef1fa62df1a51f22f1b60a1e6bbecbe85284ac7416609510c7934ef41a6851a2e94cb58288b1b29a106ec8b864a80464a4811d635"
}
{
  "log": "signedTx"
}
"0x02f90570052c8459682f008459682f1682cfe4941577875dd69f5276aeeabe3540b1f7c64690b3f880b9050409c5eabe000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004c0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000002e000000000000000000000000000000000000000000000000000000000000002800000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000001cecce1a2e9fd648d0228ef25a5f99d31a68c8c18fc370f893e091bc19e6f61470000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000147472616e736665724f70657261746f72736869700000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000046a4cad7a08062f5a67c5bc4aa6d8c8816eff2470000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000010000000000000000000000002f467c697798c24788086e327b0bfd25952105fe000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000414aaeab55123571f2fae033d6d95b814975601c91470bdaf0c5c73c67cc22098d0b03cffdd2b0df7fb329a48bd80679ea17a78f992de05101f996afa169bbe0471c00000000000000000000000000000000000000000000000000000000000000c080a017d4b0603b7e63924d69fb1ef1fa62df1a51f22f1b60a1e6bbecbe85284ac741a06609510c7934ef41a6851a2e94cb58288b1b29a106ec8b864a80464a4811d635"

Rust rlp decode

Transaction Eip1559(Eip1559TransactionRequest { from: Some(0x2f467c697798c24788086e327b0bfd25952105fe), to: Some(Address(0x1577875dd69f5276aeeabe3540b1f7c64690b3f8)), gas: Some(53220), value: Some(0), data: Some(Bytes(0x09c5eabe000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004c0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000002e000000000000000000000000000000000000000000000000000000000000002800000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000001cecce1a2e9fd648d0228ef25a5f99d31a68c8c18fc370f893e091bc19e6f61470000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000147472616e736665724f70657261746f72736869700000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000046a4cad7a08062f5a67c5bc4aa6d8c8816eff2470000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000010000000000000000000000002f467c697798c24788086e327b0bfd25952105fe000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000414aaeab55123571f2fae033d6d95b814975601c91470bdaf0c5c73c67cc22098d0b03cffdd2b0df7fb329a48bd80679ea17a78f992de05101f996afa169bbe0471c00000000000000000000000000000000000000000000000000000000000000)), nonce: Some(44), access_list: AccessList([]), max_priority_fee_per_gas: Some(1500000000), max_fee_per_gas: Some(1500000022), chain_id: Some(5) })