Spectrum API running on Telos Mainnet
spectrum·@eostribe·
0.000 HBDSpectrum API running on Telos Mainnet
 ## EOS Tribe launched a beta version of it's web-socket streaming Spectrum API on Telos Mainnet (https://www.telosfoundation.io/). ### Telos Mainnet Spectrum API web-socket endpoint: wss://api.telos.eostribe.io #### This version currently supports subscriptions for *get_actions*, *get_transaction* and *get_blocks* streams. Here is the sample subscription message for *get_actions* endpoint: ``` { "apikey":"test-api-key", "event":"subscribe", "type":"get_actions", "data": { "account":"eostribeprod", “actions":[“transfer”,”buyram”] } } ``` ### Fields description for get_actions: * **event** - type of events, there are two variants: “subscribe” and “unsubscribe”. Required [String]. * **type** - type of endpoint. Required [String]. * **data** - Contents of this object depends on type argument. Required for get_actions. * **account** - name of account. Required [String]. * **actions** - List of actions name. [Object]. If actions are not specified - all actions will be matched. #### Endpoint *get_blocks* - subscribe on new block events: Request message format for *get_blocks* endpoint: ``` { "apikey":"test-api-key", "event":"subscribe", "type":"get_blocks" } ``` ### Fields description: * **apikey** - key for access and accounting, not using on testnet.[String] * **event** - type of event, there are two variants “subscribe” and “unsubscribe”. To subscribe necessary using "subscribe" * **value** - this field is mandatory. [String]. * **type** - type of endpoint. Required [String]. Below is the sample subscription message for *get_transaction* endpoint: ``` { "apikey":"test-api-key", "event":"subscribe", "type":"get_transaction", "data": {"account":"eosio"} } ``` ### Fields description for get_transaction: * **apikey** - key for access and accounting, not using on testnet.[String] * **event** - type of event, there are two variants “subscribe” and “unsubscribe”. To subscribe necessary using "subscribe" value . This field is mandatory. [String]. * **type** - type of endpoint. Required [String]. * **data** - Contents of this object depends on type argument. Required for get_transaction. * **account** - name of account. Required [String]. ### Sample JS web-socket client to subscribe for events: ``` <html> <head><title>Spectrum Web Sockets</title> <script> let socket = new WebSocket("wss://api.telos.eostribe.io/streaming"); # pick one of declarations: # 1. get_actions: var messageBody = { "apikey":"test-api-key", "event":"subscribe", "type":"get_actions", "data": {"account":"eosio"} }; #2. get_blocks: var messageBody = { "apikey":"test-api-key", "event":"subscribe", "type":"get_blocks" }; #3. get_transaction: var messageBody ={ "apikey":"test-api-key", "event":"subscribe", "type":"get_transaction", "data": {"account":"eosio"} }; socket.onopen = function(e) { console.log("[open] Connection established"); console.log("Sending to server: "+JSON.stringify(messageBody)); socket.send(JSON.stringify(messageBody)); }; socket.onmessage = function(event) { html_log("[message] Data received from server: "+event.data); }; socket.onclose = function(event) { if (event.wasClean) { html_log("[close] Connection closed cleanly, code=${event.code} reason=${event.reason}"); } else { html_log("[close] Connection died"); } }; socket.onerror = function(error) { html_log("[error] ${error.message}"); }; function html_log(data) { var divLog = document.getElementById("log"); divLog.innerHTML += "<p>"+data+"</p>"; } </script> </head> <body> <h2>Spectrum Web Sockets Test: Get Actions</h2> <div id="log"></div> </body></html> ``` #### Feel free to give it a try and provide your feedback at out Telegram channel: https://t.me/EOSTribe #### Original post describing Spectrum API architecture: https://steemit.com/eosio/@eostribe/introducing-spectrum-streaming-api-for-eosio #### EOS Tribe is committed to continue work on creating innovative solutions for EOSIO.
👍 bodget, twittering,