Смарт-контракты EOS работают на базе стековой виртуальной машины WebAssembly (WASM), которая компилирует высокоуровневые языки С/С++, Rust, Go, D, обеспечивая трансляцию в бинарный код.
Соответственно, написание смарт-контрактов для EOS возможно с помощью данных языков.
На практике чаще всего используют С++, официальная документация по созданию смарт-контрактов на нем также есть на сайте для разработчиков EOS:
https://eosio.github.io/eosio.cdt/1.5.0/
О написании на JS слышал, использовались трансляторы, но там было достаточно много ошибок и это крайне сырые решения, которые не рекомендую.
Пишите мне в чат на сайте:
itstepster.com или в
Telegram, бесплатно проконсультирую)