mirror of
https://github.com/stakwork/sphinx-relay.git
synced 2026-08-13 12:33:24 +02:00
update: added recipient pubkey to bot pay api
This commit is contained in:
parent
70667d583d
commit
fbe3d5b294
5 changed files with 55 additions and 10 deletions
2
dist/src/controllers/botapi/index.js.map
vendored
2
dist/src/controllers/botapi/index.js.map
vendored
File diff suppressed because one or more lines are too long
28
dist/src/controllers/botapi/pay.js
vendored
28
dist/src/controllers/botapi/pay.js
vendored
|
|
@ -21,10 +21,10 @@ const rsa = require("../../crypto/rsa");
|
|||
const index_1 = require("./index");
|
||||
function pay(a) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
const { amount, bot_name, msg_uuid, reply_uuid, recipient_id, parent_id, content, } = a;
|
||||
const { amount, bot_name, msg_uuid, reply_uuid, recipient_id, parent_id, content, recipient_pubkey, } = a;
|
||||
logger_1.sphinxLogger.info(`=> BOT PAY ${JSON.stringify(a, null, 2)}`);
|
||||
if (!a.recipient_id)
|
||||
return logger_1.sphinxLogger.error(`no recipient_id`);
|
||||
if (!recipient_id && !recipient_pubkey)
|
||||
return logger_1.sphinxLogger.error(`no recipient detail`);
|
||||
const ret = yield (0, index_1.validateAction)(a);
|
||||
if (!ret)
|
||||
return;
|
||||
|
|
@ -35,6 +35,26 @@ function pay(a) {
|
|||
const encryptedForMeText = rsa.encrypt(owner.contactKey, content || '');
|
||||
const encryptedText = rsa.encrypt(chat.groupKey, content || '');
|
||||
const textMap = { chat: encryptedText };
|
||||
let recipient_detail;
|
||||
if (recipient_pubkey) {
|
||||
try {
|
||||
const user = (yield models_1.models.Contact.findOne({
|
||||
where: { tenant, publicKey: recipient_pubkey },
|
||||
}));
|
||||
if (!user) {
|
||||
logger_1.sphinxLogger.error(`=> RECIPIENT PUBKEY DOES NOT EXIST IN ADMIN RECORD`, logger_1.logging.Bots);
|
||||
return;
|
||||
}
|
||||
recipient_detail = user.id;
|
||||
}
|
||||
catch (error) {
|
||||
logger_1.sphinxLogger.error(`=> RECIPIENT PUBKEY ERROR ${error}`, logger_1.logging.Bots);
|
||||
return;
|
||||
}
|
||||
}
|
||||
else {
|
||||
recipient_detail = recipient_id;
|
||||
}
|
||||
const date = new Date();
|
||||
date.setMilliseconds(0);
|
||||
const msg = Object.assign({ chatId: chat.id, uuid: msg_uuid || short.generate(), type: reply_uuid
|
||||
|
|
@ -77,7 +97,7 @@ function pay(a) {
|
|||
return logger_1.sphinxLogger.error(e);
|
||||
}),
|
||||
isForwarded: true,
|
||||
realSatsContactId: recipient_id,
|
||||
realSatsContactId: recipient_detail,
|
||||
});
|
||||
});
|
||||
}
|
||||
|
|
|
|||
2
dist/src/controllers/botapi/pay.js.map
vendored
2
dist/src/controllers/botapi/pay.js.map
vendored
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"pay.js","sourceRoot":"","sources":["../../../../src/controllers/botapi/pay.ts"],"names":[],"mappings":"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"}
|
||||
{"version":3,"file":"pay.js","sourceRoot":"","sources":["../../../../src/controllers/botapi/pay.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,oCAAmC;AACnC,yCAAwC;AACxC,yCAA6D;AAC7D,8CAA6C;AAC7C,6CAA4C;AAC5C,+CAAuC;AACvC,+CAA0D;AAC1D,2DAAuD;AACvD,wCAAuC;AACvC,mCAAgD;AAEhD,SAA8B,GAAG,CAAC,CAAS;;QACzC,MAAM,EACJ,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,SAAS,EACT,OAAO,EACP,gBAAgB,GACjB,GAAG,CAAC,CAAA;QAEL,qBAAY,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAA;QAC7D,IAAI,CAAC,YAAY,IAAI,CAAC,gBAAgB;YACpC,OAAO,qBAAY,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAA;QAClD,MAAM,GAAG,GAAG,MAAM,IAAA,sBAAc,EAAC,CAAC,CAAC,CAAA;QACnC,IAAI,CAAC,GAAG;YAAE,OAAM;QAChB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,GAAG,CAAA;QAC3B,MAAM,MAAM,GAAW,KAAK,CAAC,EAAE,CAAA;QAC/B,MAAM,KAAK,GAAG,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAA;QACrC,MAAM,YAAY,GAAG,CAAC,CAAC,CAAA;QACvB,MAAM,kBAAkB,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,IAAI,EAAE,CAAC,CAAA;QACvE,MAAM,aAAa,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,IAAI,EAAE,CAAC,CAAA;QAC/D,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,CAAA;QACvC,IAAI,gBAAgB,CAAA;QAEpB,IAAI,gBAAgB,EAAE;YACpB,IAAI;gBACF,MAAM,IAAI,GAAG,CAAC,MAAM,eAAM,CAAC,OAAO,CAAC,OAAO,CAAC;oBACzC,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE;iBAC/C,CAAC,CAAkB,CAAA;gBACpB,IAAI,CAAC,IAAI,EAAE;oBACT,qBAAY,CAAC,KAAK,CAChB,oDAAoD,EACpD,gBAAO,CAAC,IAAI,CACb,CAAA;oBACD,OAAM;iBACP;gBACD,gBAAgB,GAAG,IAAI,CAAC,EAAE,CAAA;aAC3B;YAAC,OAAO,KAAK,EAAE;gBACd,qBAAY,CAAC,KAAK,CAAC,6BAA6B,KAAK,EAAE,EAAE,gBAAO,CAAC,IAAI,CAAC,CAAA;gBACtE,OAAM;aACP;SACF;aAAM;YACL,gBAAgB,GAAG,YAAY,CAAA;SAChC;QAED,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAA;QACvB,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;QACvB,MAAM,GAAG,mBACP,MAAM,EAAE,IAAI,CAAC,EAAE,EACf,IAAI,EAAE,QAAQ,IAAI,KAAK,CAAC,QAAQ,EAAE,EAClC,IAAI,EAAE,UAAU;gBACd,CAAC,CAAC,mBAAS,CAAC,aAAa,CAAC,KAAK;gBAC/B,CAAC,CAAC,mBAAS,CAAC,aAAa,CAAC,cAAc,EAC1C,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,MAAM,IAAI,CAAC,EACnB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,mBAAS,CAAC,QAAQ,CAAC,SAAS,EACpC,SAAS,EAAE,UAAU,IAAI,EAAE,EAC3B,SAAS,EAAE,IAAI,EACf,SAAS,EAAE,IAAI,EACf,WAAW,EAAE,KAAK,EAClB,MAAM,IACH,CAAC,UAAU;YACZ,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,cAAc,EAAE,kBAAkB;gBAClC,oBAAoB,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;aAC9C,CAAC,CACP,CAAA;QACD,IAAI,SAAS;YAAE,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAA;QACvC,MAAM,OAAO,GAAY,CAAC,MAAM,eAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAY,CAAA;QACtE,MAAM,CAAC,QAAQ,CACb;YACE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB;YAC7C,QAAQ,EAAE,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC;SACxD,EACD,MAAM,CACP,CAAA;QAED,MAAM,OAAO,CAAC,WAAW,CAAC;YACxB,IAAI,EAAE,IAAW;YACjB,MAAM,kCACD,KAAK,CAAC,UAAU,KACnB,KAAK,EACL,EAAE,EAAE,YAAY,EAChB,IAAI,EAAE,mBAAS,CAAC,UAAU,CAAC,KAAK,GACjC;YACD,OAAO,EAAE;gBACP,OAAO,EAAE,EAAE;gBACX,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,CAAC;aAChC;YACD,MAAM,EAAE,MAAM,IAAI,CAAC;YACnB,IAAI,EAAE,UAAU;gBACd,CAAC,CAAC,mBAAS,CAAC,aAAa,CAAC,KAAK;gBAC/B,CAAC,CAAC,mBAAS,CAAC,aAAa,CAAC,cAAc;YAC1C,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YAClC,OAAO,EAAE,CAAO,CAAC,EAAE,EAAE;gBACnB,MAAM,QAAQ,GAAG,IAAA,2BAAY,EAAC,CAAC,CAAC,CAAA;gBAChC,MAAM,OAAO,CAAC,MAAM,CAAC;oBACnB,YAAY,EAAE,QAAQ;oBACtB,MAAM,EAAE,mBAAS,CAAC,QAAQ,CAAC,MAAM;iBAClC,CAAC,CAAA;gBACF,OAAO,qBAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAC9B,CAAC,CAAA;YACD,WAAW,EAAE,IAAI;YACjB,iBAAiB,EAAE,gBAAgB;SACpC,CAAC,CAAA;IACJ,CAAC;CAAA;AAjHD,sBAiHC"}
|
||||
|
|
@ -49,6 +49,7 @@ export interface Action {
|
|||
only_owner?: boolean
|
||||
only_user?: number
|
||||
only_pubkey?: string
|
||||
recipient_pubkey?: string
|
||||
}
|
||||
|
||||
export async function processWebhook(req: Req, res: Res): Promise<void> {
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
import * as short from 'short-uuid'
|
||||
import * as network from '../../network'
|
||||
import { models, Message } from '../../models'
|
||||
import { models, Message, ContactRecord } from '../../models'
|
||||
import * as jsonUtils from '../../utils/json'
|
||||
import * as socket from '../../utils/socket'
|
||||
import constants from '../../constants'
|
||||
import { sphinxLogger } from '../../utils/logger'
|
||||
import { logging, sphinxLogger } from '../../utils/logger'
|
||||
import { errMsgString } from '../../utils/errMsgString'
|
||||
import * as rsa from '../../crypto/rsa'
|
||||
import { Action, validateAction } from './index'
|
||||
|
|
@ -18,10 +18,12 @@ export default async function pay(a: Action): Promise<void> {
|
|||
recipient_id,
|
||||
parent_id,
|
||||
content,
|
||||
recipient_pubkey,
|
||||
} = a
|
||||
|
||||
sphinxLogger.info(`=> BOT PAY ${JSON.stringify(a, null, 2)}`)
|
||||
if (!a.recipient_id) return sphinxLogger.error(`no recipient_id`)
|
||||
if (!recipient_id && !recipient_pubkey)
|
||||
return sphinxLogger.error(`no recipient detail`)
|
||||
const ret = await validateAction(a)
|
||||
if (!ret) return
|
||||
const { chat, owner } = ret
|
||||
|
|
@ -31,6 +33,28 @@ export default async function pay(a: Action): Promise<void> {
|
|||
const encryptedForMeText = rsa.encrypt(owner.contactKey, content || '')
|
||||
const encryptedText = rsa.encrypt(chat.groupKey, content || '')
|
||||
const textMap = { chat: encryptedText }
|
||||
let recipient_detail
|
||||
|
||||
if (recipient_pubkey) {
|
||||
try {
|
||||
const user = (await models.Contact.findOne({
|
||||
where: { tenant, publicKey: recipient_pubkey },
|
||||
})) as ContactRecord
|
||||
if (!user) {
|
||||
sphinxLogger.error(
|
||||
`=> RECIPIENT PUBKEY DOES NOT EXIST IN ADMIN RECORD`,
|
||||
logging.Bots
|
||||
)
|
||||
return
|
||||
}
|
||||
recipient_detail = user.id
|
||||
} catch (error) {
|
||||
sphinxLogger.error(`=> RECIPIENT PUBKEY ERROR ${error}`, logging.Bots)
|
||||
return
|
||||
}
|
||||
} else {
|
||||
recipient_detail = recipient_id
|
||||
}
|
||||
|
||||
const date = new Date()
|
||||
date.setMilliseconds(0)
|
||||
|
|
@ -96,6 +120,6 @@ export default async function pay(a: Action): Promise<void> {
|
|||
return sphinxLogger.error(e)
|
||||
},
|
||||
isForwarded: true,
|
||||
realSatsContactId: recipient_id,
|
||||
realSatsContactId: recipient_detail,
|
||||
})
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue