Code Monkey home page Code Monkey logo

beet_api's Introduction

beet_api

An ElysiaJS based API for generating Bitshares Beet wallet deeplinks

First install Bun on your computer.

This API was developed using Linux on Windows via WSL.

Before running this Bitshares Beet API, you need to install the required packages:

bun upgrade
bun install

You then need to fetch the required data for the API to serve to the constructed UI.

You can either fetch it all in the one go (which might fail):

bun run refreshData

Or you can manually run each script:

For erasing existing data:

bun run eraseChainData

For fetching new data:

bun run fetchPools
bun run fetchAssets
bun run fetchDynamicData
bun run fetchIssuers
bun run fetchBitassetData
bun run fetchOffers
bun run fetchDeals
bun run fetchFees

With the required chain data in place, you can then fetch the example Astro UI for the public folder:

bun run constructUI

The above UI is optional, you can create your own application UI which queries the elysia server.

You can now run the dev server:

bun run dev

And you can now compile the beet_api into a linux executable:

bun run compile


Once the elysia server is running, navigate to:

http://localhost:8080/ to view the hosted web app


To run the compiled executable, run: ./beet_api in the WSL/Linux terminal.

beet_api's People

Contributors

grctest avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Forkers

technoshantoms

beet_api's Issues

bytebuffer incompatible with compiled bun runtime

 bun run compile
$ bun build --compile ./src/index.tsx --outfile beet_api --external bytebuffer
[1216ms]  bundle  176 modules
[451ms] compile  beet_api
./beet_api 


warn: Invalid source index value
/beet_api/node_modules/bytebuffer/dist/bytebuffer.js:1:0 1SyntaxError: Unexpected token '*'. import call expects one or two arguments.
      at /beet_api/node_modules/bytebuffer/dist/bytebuffer.js:3:11

TODO: Upgrade the data fetching scripts

At the moment, the data fetching scripts are run once before compiling the beet_api, however it's entirely possible for new blockchain data to be created after compilation and we'd be missing out on this info.

We should perhaps move away from solely pre-compilation data fetching, to during runtime scheduled data fetching.

We can use the following elysiajs package to schedule regularly fetching the data, if being run on a server for example.

https://github.com/elysiajs/elysia-cron

TODO: Factor in blocked account status in API responses

If an asset/offer/account which is associated with a blocked scam account is requested from the BEET API, we should consider responding either with a blank response, an error, or inject a field indicating the object is associated with a blocked account.

This way we can either avoid showing blocked user content entirely, or the UI can warn the user that they're interacting with a suspicious blockchain account.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.