Welcome to SaTT Webservice endpoint, this backend provides webservice to SaTT WebWallet and advertising campaign manager : Wallet
It provides :
- Masterseed HD Wallet management for SaTT and other main cryptos.
- Transaction management
- Advertising campaign management
This projetct is build in JavaScript for NodeJS and these main npm modules :
- You can check all our differents smart contracts in contract folder:
- To Deploy smart contracts (token,campaign and oracle) in contract folder with Remix and Metamask or MEW:
**create your file on Remix and paste your code there
**Compile your file.sol and check
**To deploy your smart contract you should connect with your metamask account
- To create node, Web3 service provider with Geth,openethereum or Infura SaaS
**Create new Ethereum app
**Get node credentials from infura such as PROJECTID, PROJECT SECRET, and the endpoints that we can use to connect to infura node(https, wss)
WEB3_URL=process.env.WEB3_URL
You can also install Geth Node you can follow this Guide or Parity
- on campaign contract call modToken(<token_address>,true)
- on campaign contract call setOracle(<oracle_address>)
- on oracle contract call changeAsk(<campaign_address>,true)
To run SaTT API webservice Provider you will need NodeJS 14.0+ and npm Package manager
For development, you will only need Node.js and a node global package.
-
Just go on official Node.js website and download the installer. Also, be sure to have
git
available in your PATH,npm
might need it (You can find git here). -
You can install nodejs and npm easily with apt install, just run the following commands.
$ sudo apt install nodejs $ sudo apt install npm
node --version up to v14.x.x
npm --version up to 6.x.x
If the installation was successful, you should be able to run the following command. PM2 Process Manager, you can install it a described below :
npm install pm2 -g
- Clone the repo
git clone https://github.com/Atayen/node-satt.git
-
cd <project_name> npm install
3. Edit .env file with the right properties
4. Register and start PM2 service or install nodemon
```sh
pm2 start app.js
or
npm start
or
nodemon
After you run the project, you can navigate to https://localhost:3015/docs to see the full list of available endpoints.
The folder structure of this app is explained below:
Name | Description |
---|---|
node_modules | Contains all npm dependencies |
helpers | Contains all requirements and the cron job actions |
manager | Contains all the definitions of oracles |
conf | Contains all configuration for the blockChain part. |
controllers | Controllers define functions to serve various express routes. |
routes | Contain all express routes, separated by module/area of application . |
middlewares | Express middlewares which process the incoming requests before handling them down to the routes |
routes | Contain all express routes, separated by module/area of application |
app.js | Entry point to express app |
package.json | Contains npm dependencies as well as the scripts |
The swagger specification file is named as swagger.yaml. The file is located under definition folder. Example:
paths:
/hello:
get:
x-swagger-router-controller: helloWorldRoute
operationId: helloWorldGet
tags:
- /hello
description: >-
Returns the current weather for the requested location using the
requested unit.
parameters:
- name: greeting
in: query
description: Name of greeting
required: true
type: string
responses:
'200':
description: Successful request.
schema:
$ref: '#/definitions/Hello'
default:
description: Invalid request.
schema:
$ref: '#/definitions/Error'
definitions:
Hello:
properties:
msg:
type: string
required:
- msg
Error:
properties:
message:
type: string
required:
- message
-
/hello:
Specifies how users should be routed when they make a request to this endpoint.
-
x-swagger-router-controller: helloWorldRoute
Specifies which code file acts as the controller for this endpoint.
-
get:
Specifies the method being requested (GET, PUT, POST, etc.).
-
operationId: hello
Specifies the direct method to invoke for this endpoint within the controller/router
-
parameters:
This section defines the parameters of your endpoint. They can be defined as path, query, header, formData, or body.
-
definitions: This section defines the structure of objects used in responses or as parameters.
The project is using npm module swagger-tools
that provides middleware functions for metadata, security, validation and routing, and bundles Swagger UI into Express.
See the open issues for a list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
-
To create a Facebook app you should visit official developer.facebook.com website and respect the following steps:
PS: All this credentials refers to APPID,APP_SECRET,FB_GRAPH_VERSION in .env file
APPID=process.env.APPID
APP_SECRET=process.env.APP_SECRET
FB_GRAPH_VERSION=process.env.FB_GRAPH_VERSION
-
To create a google app you should visit official console.developers.google.com website and respect the following steps:
PS: All this credentials refers to GOOGLE_CLIENTID,GOOGLE_CLIENT_SECRET and GDA_TAP_API_KEY in .env file
GOOGLE_CLIENTID=process.env.GOOGLE_CLIENTID
GOOGLE_CLIENT_SECRET=process.env.GOOGLE_CLIENT_SECRET
GDA_TAP_API_KEY= process.env.GDA_TAP_API_KEY
-
To create a linkedin app you should visit official developer.linkedin.com website and respect the following steps:
PS: All this credentials refers to LINKEDIN_KEY and LINKEDIN_SECRET in .env file
LINKEDIN_KEY=process.env.LINKEDIN_KEY
LINKEDIN_SECRET=process.env.LINKEDIN_SECRET
-
To create a linkedin app you should visit official developers.twitter.com website and respect the following steps:
you can regenerate again your credentials with more options
PS: All this credentials refers to TWITTER_CONSUMER_KEY_ALT, TWILTTER_CONSUMER_SECRET_ALT,TWITTER_CONSUMER_SECRET_DEV,TWITTER_CONSUMER_KEY TWITTER_CONSUMER_SECRET,TWITTER_ACCESS_TOKEN_KEY and TWITTER_ACCESS_TOKEN_SECRET in .env file
TWITTER_CONSUMER_KEY_ALT=process.env.TWITTER_CONSUMER_KEY_ALT
TWILTTER_CONSUMER_SECRET_ALT=process.env.TWILTTER_CONSUMER_SECRET_ALT
TWITTER_CONSUMER_SECRET_DEV=process.env.TWITTER_CONSUMER_SECRET_DEV
TWITTER_CONSUMER_KEY=process.env.TWITTER_CONSUMER_KEY
TWITTER_CONSUMER_SECRET=process.env.TWITTER_CONSUMER_SECRET
TWITTER_ACCESS_TOKEN_KEY=process.env.TWITTER_ACCESS_TOKEN_KEY
TWITTER_ACCESS_TOKEN_SECRET=process.env.TWITTER_ACCESS_TOKEN_SECRET
-
To create a Telegram bot you should set it via mobile Telegram application:
PS: This credential refer to TELEGRAM_BOT_TOKEN in .env file
TELEGRAM_BOT_TOKEN=process.env.TELEGRAM_BOT_TOKEN
We get data refer tou Satt token from official coinmarketcap.com/api website and respect the following steps:
Distributed under the MIT License. See LICENSE
for more information.
For more information don't hesitate to contact us by email to dev@atayen.us