Skip to content

Commit

Permalink
initial commit adding xrpl.js and switching to typescript.
Browse files Browse the repository at this point in the history
  • Loading branch information
ckniffen committed Jul 14, 2023
1 parent 364b244 commit a1a8e61
Show file tree
Hide file tree
Showing 10 changed files with 3,186 additions and 158 deletions.
14 changes: 6 additions & 8 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -23,22 +23,16 @@ coverage
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# Bower dependency directory (https://bower.io/)
bower_components

# node-waf configuration
.lock-wscript

# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Ignore dist folder, built from tsc
dist

# Dependency directories
node_modules/
jspm_packages/

# TypeScript v1 declaration files
typings/

# Optional npm cache directory
.npm

Expand Down Expand Up @@ -71,3 +65,7 @@ typings/

# Serverless directories
.serverless

# Ignore IntelliJ files
.idea
*.iml
45 changes: 12 additions & 33 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ const express = require('express')
const cors = require('cors')
const app = express()
const port = process.env['PORT']
const RippleAPI = require('ripple-lib').RippleAPI
const addressCodec = require('ripple-address-codec')
const { BigQuery } = require("@google-cloud/bigquery");

const {classicAddressToXAddress, isValidClassicAddress, xAddressToClassicAddress} = require('ripple-address-codec')
const xrpl = require('xrpl')

const rippledUri = process.env['RIPPLED_URI']
const address = process.env['FUNDING_ADDRESS']
Expand Down Expand Up @@ -51,7 +51,7 @@ function createRippleAPI() {
return
}

api = new RippleAPI({
api = new xrpl.Client({
server: rippledUri
})

Expand All @@ -60,16 +60,6 @@ function createRippleAPI() {
console.log(error)
})

if (api.connection._ws) {
console.log('setting _ws error handler')
api.connection._ws.on('error', error => {
console.log('_ws error: ' + error)
console.log(error)
})
} else {
console.log('no _ws yet')
}

api.on('error', (errorCode, errorMessage) => {
console.log('RippleAPI error: ' + errorCode + ': ' + errorMessage)
})
Expand Down Expand Up @@ -106,18 +96,18 @@ app.post('/accounts', (req, res) => {
createRippleAPI()
let account
if (req.body.destination) {
if (api.isValidAddress(req.body.destination)) {
if (isValidClassicAddress(req.body.destination)) {
let xAddress
let classicAddress
let tag

if (req.body.destination.startsWith('T')) {
const t = addressCodec.xAddressToClassicAddress(req.body.destination)
const t = xAddressToClassicAddress(req.body.destination)
xAddress = req.body.destination
classicAddress = t.classicAddress
tag = t.tag
} else {
xAddress = addressCodec.classicAddressToXAddress(req.body.destination, false, true)
xAddress = classicAddressToXAddress(req.body.destination, false, true)
classicAddress = req.body.destination
}
account = {
Expand Down Expand Up @@ -169,20 +159,9 @@ app.post('/accounts', (req, res) => {
}).then(sequence => {
console.log(`${reqId}| Preparing payment with destination=${account.address}, sequence: ${sequence}`)
const payment = {
source: {
address: address,
maxAmount: {
value: amount,
currency: 'XRP'
}
},
destination: {
address: account.address,
amount: {
value: amount,
currency: 'XRP'
}
},
Account: address,
Amount: amount,
destination: account.address,
memos: req.body.memos ? [...req.body.memos] : [],
}
if (account.tag) payment.destination.tag = account.tag
Expand Down Expand Up @@ -213,7 +192,7 @@ app.post('/accounts', (req, res) => {
memos: memos,
account: account.xAddress,
amount: amount,
sequence: sequence,
sequence: sequence,
},
];
const bigquery = new BigQuery(
Expand All @@ -238,7 +217,7 @@ app.post('/accounts', (req, res) => {
});
console.log("inserted big query")
}

/// prepare res
if (!req.body.destination) {
response.balance = Number(amount)
Expand Down Expand Up @@ -459,4 +438,4 @@ setInterval(() => {
console.log(`[TPS] success=${txCount}, tps=${(txCount / 60).toFixed(1)}, peak=${peak}, requests=${txRequestCount}, rps=${(txRequestCount / 60).toFixed(1)}, peakRequests=${peakRequests}, success%=${((txCount / txRequestCount) * 100).toFixed(1)}%, success_peak/request_peak=${((peak / peakRequests) * 100).toFixed(1)}%`)
txCount = 0
txRequestCount = 0
}, 60 * 1000)
}, 60 * 1000)
Loading

0 comments on commit a1a8e61

Please sign in to comment.