type fixes
This commit is contained in:
21
bbpay.ts
21
bbpay.ts
@@ -1,3 +1,4 @@
|
|||||||
|
import PrimusNetwork from '@primuslabs/network-core-sdk';
|
||||||
import dotenv from 'dotenv';
|
import dotenv from 'dotenv';
|
||||||
import express, { Request, Response } from 'express';
|
import express, { Request, Response } from 'express';
|
||||||
import cors from 'cors';
|
import cors from 'cors';
|
||||||
@@ -105,7 +106,7 @@ class BBPay {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class Register extends BBPay {
|
class BBRegister extends BBPay {
|
||||||
public async post(req: Request, res: Response): Promise<void> {
|
public async post(req: Request, res: Response): Promise<void> {
|
||||||
log('Registering participant...');
|
log('Registering participant...');
|
||||||
const data = req.body;
|
const data = req.body;
|
||||||
@@ -141,7 +142,7 @@ class Register extends BBPay {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class Request extends BBPay {
|
class BBRequest extends BBPay {
|
||||||
public async post(req: Request, res: Response): Promise<void> {
|
public async post(req: Request, res: Response): Promise<void> {
|
||||||
log('Creating request...');
|
log('Creating request...');
|
||||||
const data = req.body;
|
const data = req.body;
|
||||||
@@ -185,7 +186,7 @@ class Request extends BBPay {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class Release extends BBPay {
|
class BBRelease extends BBPay {
|
||||||
public async get(req: Request, res: Response): Promise<void> {
|
public async get(req: Request, res: Response): Promise<void> {
|
||||||
const numeroSolicitacao = req.params.numeroSolicitacao;
|
const numeroSolicitacao = req.params.numeroSolicitacao;
|
||||||
log(`Releasing request ${numeroSolicitacao}...`);
|
log(`Releasing request ${numeroSolicitacao}...`);
|
||||||
@@ -232,15 +233,15 @@ class Release extends BBPay {
|
|||||||
ethers.utils.hexZeroPad(pixTimestamp,32),
|
ethers.utils.hexZeroPad(pixTimestamp,32),
|
||||||
]);
|
]);
|
||||||
const signable = ethers.utils.keccak256(packed);
|
const signable = ethers.utils.keccak256(packed);
|
||||||
const wallet = new Wallet(process.env.PRIVATE_KEY);
|
const wallet = new Wallet(process.env.PRIVATE_KEY as string);
|
||||||
const signature = await wallet.signMessage(signable);
|
const signature = await wallet.signMessage(signable);
|
||||||
|
|
||||||
log('Request released successfully.');
|
log('Request released successfully.');
|
||||||
res.json({
|
res.json({
|
||||||
pixTarget: `${chainID}-${numeroParticipante}`,
|
pixTarget: `${chainID}-${numeroParticipante}`,
|
||||||
amount: valorSolicitacao.toString(),
|
amount: valorSolicitacao.toString(),
|
||||||
pixTimestamp: `0x${pixTimestamp.toString('hex')}`,
|
pixTimestamp: pixTimestamp,
|
||||||
signature: `0x${signature}`,
|
signature: signature,
|
||||||
});
|
});
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
log('Internal server error:', error);
|
log('Internal server error:', error);
|
||||||
@@ -251,7 +252,7 @@ class Release extends BBPay {
|
|||||||
|
|
||||||
// (CPF, nome, conta) -> participantID
|
// (CPF, nome, conta) -> participantID
|
||||||
// should be called before deposit
|
// should be called before deposit
|
||||||
const register = new Register();
|
const register = new BBRegister();
|
||||||
app.post('/register', async (req: Request, res: Response) => {
|
app.post('/register', async (req: Request, res: Response) => {
|
||||||
await register.init();
|
await register.init();
|
||||||
await register.post(req, res);
|
await register.post(req, res);
|
||||||
@@ -259,7 +260,7 @@ app.post('/register', async (req: Request, res: Response) => {
|
|||||||
|
|
||||||
// (amount,pixtarget) -> requestID, QRcodeText
|
// (amount,pixtarget) -> requestID, QRcodeText
|
||||||
// should be called after lock
|
// should be called after lock
|
||||||
const request = new Request();
|
const request = new BBRequest();
|
||||||
app.post('/request', async (req: Request, res: Response) => {
|
app.post('/request', async (req: Request, res: Response) => {
|
||||||
await request.init();
|
await request.init();
|
||||||
await request.post(req, res);
|
await request.post(req, res);
|
||||||
@@ -267,7 +268,7 @@ app.post('/request', async (req: Request, res: Response) => {
|
|||||||
|
|
||||||
// (requestID) -> sig(pixTarget, amount, pixTimestamp)
|
// (requestID) -> sig(pixTarget, amount, pixTimestamp)
|
||||||
// should be called before release
|
// should be called before release
|
||||||
const release = new Release();
|
const release = new BBRelease();
|
||||||
app.get('/release/:numeroSolicitacao', async (req: Request, res: Response) => {
|
app.get('/release/:numeroSolicitacao', async (req: Request, res: Response) => {
|
||||||
await release.init();
|
await release.init();
|
||||||
await release.get(req, res);
|
await release.get(req, res);
|
||||||
@@ -282,4 +283,4 @@ if (process.env.DEBUG) {
|
|||||||
server.listen(process.env.PORT || 5000, () => {
|
server.listen(process.env.PORT || 5000, () => {
|
||||||
log(`Server running on port ${process.env.PORT || 5000}`);
|
log(`Server running on port ${process.env.PORT || 5000}`);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
102
package-lock.json
generated
102
package-lock.json
generated
@@ -20,6 +20,9 @@
|
|||||||
"simple-oauth2": "^5.1.0",
|
"simple-oauth2": "^5.1.0",
|
||||||
"typescript": "^5.9.3",
|
"typescript": "^5.9.3",
|
||||||
"web3-utils": "^4.3.3"
|
"web3-utils": "^4.3.3"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@types/express": "^5.0.6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@babel/runtime": {
|
"node_modules/@babel/runtime": {
|
||||||
@@ -1051,6 +1054,17 @@
|
|||||||
"tslib": "^2.8.0"
|
"tslib": "^2.8.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@types/body-parser": {
|
||||||
|
"version": "1.19.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz",
|
||||||
|
"integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@types/connect": "*",
|
||||||
|
"@types/node": "*"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@types/connect": {
|
"node_modules/@types/connect": {
|
||||||
"version": "3.4.38",
|
"version": "3.4.38",
|
||||||
"resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz",
|
"resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz",
|
||||||
@@ -1069,6 +1083,38 @@
|
|||||||
"@types/ms": "*"
|
"@types/ms": "*"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@types/express": {
|
||||||
|
"version": "5.0.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.6.tgz",
|
||||||
|
"integrity": "sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@types/body-parser": "*",
|
||||||
|
"@types/express-serve-static-core": "^5.0.0",
|
||||||
|
"@types/serve-static": "^2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@types/express-serve-static-core": {
|
||||||
|
"version": "5.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.1.1.tgz",
|
||||||
|
"integrity": "sha512-v4zIMr/cX7/d2BpAEX3KNKL/JrT1s43s96lLvvdTmza1oEvDudCqK9aF/djc/SWgy8Yh0h30TZx5VpzqFCxk5A==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@types/node": "*",
|
||||||
|
"@types/qs": "*",
|
||||||
|
"@types/range-parser": "*",
|
||||||
|
"@types/send": "*"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@types/http-errors": {
|
||||||
|
"version": "2.0.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz",
|
||||||
|
"integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
"node_modules/@types/ms": {
|
"node_modules/@types/ms": {
|
||||||
"version": "2.1.0",
|
"version": "2.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz",
|
||||||
@@ -1076,11 +1122,49 @@
|
|||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/@types/node": {
|
"node_modules/@types/node": {
|
||||||
"version": "12.20.55",
|
"version": "25.0.10",
|
||||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz",
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-25.0.10.tgz",
|
||||||
"integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==",
|
"integrity": "sha512-zWW5KPngR/yvakJgGOmZ5vTBemDoSqF3AcV/LrO5u5wTWyEAVVh+IT39G4gtyAkh3CtTZs8aX/yRM82OfzHJRg==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"undici-types": "~7.16.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@types/qs": {
|
||||||
|
"version": "6.14.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.14.0.tgz",
|
||||||
|
"integrity": "sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
|
"node_modules/@types/range-parser": {
|
||||||
|
"version": "1.2.7",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz",
|
||||||
|
"integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
|
"node_modules/@types/send": {
|
||||||
|
"version": "1.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.1.tgz",
|
||||||
|
"integrity": "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@types/node": "*"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@types/serve-static": {
|
||||||
|
"version": "2.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-2.2.0.tgz",
|
||||||
|
"integrity": "sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@types/http-errors": "*",
|
||||||
|
"@types/node": "*"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@types/uuid": {
|
"node_modules/@types/uuid": {
|
||||||
"version": "8.3.4",
|
"version": "8.3.4",
|
||||||
"resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz",
|
"resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz",
|
||||||
@@ -2255,6 +2339,12 @@
|
|||||||
"node": ">=8"
|
"node": ">=8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/jayson/node_modules/@types/node": {
|
||||||
|
"version": "12.20.55",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz",
|
||||||
|
"integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==",
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
"node_modules/jayson/node_modules/commander": {
|
"node_modules/jayson/node_modules/commander": {
|
||||||
"version": "2.20.3",
|
"version": "2.20.3",
|
||||||
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
|
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
|
||||||
@@ -2916,6 +3006,12 @@
|
|||||||
"node": ">=14.17"
|
"node": ">=14.17"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/undici-types": {
|
||||||
|
"version": "7.16.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz",
|
||||||
|
"integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==",
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
"node_modules/unpipe": {
|
"node_modules/unpipe": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
|
||||||
|
|||||||
@@ -21,5 +21,8 @@
|
|||||||
"simple-oauth2": "^5.1.0",
|
"simple-oauth2": "^5.1.0",
|
||||||
"typescript": "^5.9.3",
|
"typescript": "^5.9.3",
|
||||||
"web3-utils": "^4.3.3"
|
"web3-utils": "^4.3.3"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@types/express": "^5.0.6"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user