type fixes

This commit is contained in:
hueso
2026-01-23 14:08:06 -03:00
parent 0432329d41
commit fcc34a83d5
3 changed files with 113 additions and 13 deletions

View File

@@ -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
View File

@@ -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",

View File

@@ -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"
} }
} }