vaa_verify.teal 758 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. #pragma version 6
  2. txn RekeyTo
  3. global ZeroAddress
  4. ==
  5. assert
  6. txn Fee
  7. int 0
  8. ==
  9. assert
  10. txn TypeEnum
  11. int appl
  12. ==
  13. assert
  14. txna ApplicationArgs 1
  15. txna ApplicationArgs 3
  16. txna ApplicationArgs 2
  17. callsub sigcheck_0
  18. assert
  19. int 1
  20. return
  21. // sig_check
  22. sigcheck_0:
  23. store 2
  24. store 1
  25. store 0
  26. byte ""
  27. store 240
  28. byte ""
  29. store 241
  30. load 0
  31. len
  32. store 5
  33. int 0
  34. store 3
  35. int 0
  36. store 4
  37. sigcheck_0_l1:
  38. load 3
  39. load 5
  40. <
  41. bz sigcheck_0_l3
  42. load 1
  43. load 0
  44. load 3
  45. int 65
  46. +
  47. int 1
  48. extract3
  49. btoi
  50. load 0
  51. load 3
  52. int 1
  53. +
  54. int 32
  55. extract3
  56. load 0
  57. load 3
  58. int 33
  59. +
  60. int 32
  61. extract3
  62. ecdsa_pk_recover Secp256k1
  63. store 241
  64. store 240
  65. load 2
  66. load 4
  67. int 20
  68. extract3
  69. load 240
  70. load 241
  71. concat
  72. keccak256
  73. extract 12 20
  74. ==
  75. assert
  76. load 3
  77. int 66
  78. +
  79. store 3
  80. load 4
  81. int 20
  82. +
  83. store 4
  84. b sigcheck_0_l1
  85. sigcheck_0_l3:
  86. int 1
  87. retsub