wallet-core: rename p2p requests to something more sensible

This commit is contained in:
Florian Dold 2023-02-20 01:16:31 +01:00
parent 30b3949d2b
commit 1747d3ac18
No known key found for this signature in database
GPG Key ID: D2E4F00F29D02A4B
6 changed files with 141 additions and 110 deletions

View File

@ -71,7 +71,7 @@ export async function runAgeRestrictionsPeerTest(t: GlobalTestState) {
);
const initResp = await wallet.client.call(
WalletApiOperation.InitiatePeerPushPayment,
WalletApiOperation.InitiatePeerPushDebit,
{
partialContractTerms: {
summary: "Hello, World",
@ -84,13 +84,13 @@ export async function runAgeRestrictionsPeerTest(t: GlobalTestState) {
await wallet.runUntilDone();
const checkResp = await walletTwo.client.call(
WalletApiOperation.CheckPeerPushPayment,
WalletApiOperation.PreparePeerPushCredit,
{
talerUri: initResp.talerUri,
},
);
await walletTwo.client.call(WalletApiOperation.AcceptPeerPushPayment, {
await walletTwo.client.call(WalletApiOperation.ConfirmPeerPushCredit, {
peerPushPaymentIncomingId: checkResp.peerPushPaymentIncomingId,
});

View File

@ -53,7 +53,7 @@ export async function runPeerToPeerPullTest(t: GlobalTestState) {
);
const resp = await wallet1.client.call(
WalletApiOperation.InitiatePeerPullPayment,
WalletApiOperation.InitiatePeerPullCredit,
{
exchangeBaseUrl: exchange.baseUrl,
partialContractTerms: {
@ -69,7 +69,7 @@ export async function runPeerToPeerPullTest(t: GlobalTestState) {
await wallet1.runPending();
const checkResp = await wallet2.client.call(
WalletApiOperation.CheckPeerPullPayment,
WalletApiOperation.PreparePeerPullDebit,
{
talerUri: resp.talerUri,
},
@ -78,7 +78,7 @@ export async function runPeerToPeerPullTest(t: GlobalTestState) {
console.log(`checkResp: ${j2s(checkResp)}`);
const acceptResp = await wallet2.client.call(
WalletApiOperation.AcceptPeerPullPayment,
WalletApiOperation.ConfirmPeerPullDebit,
{
peerPullPaymentIncomingId: checkResp.peerPullPaymentIncomingId,
},

View File

@ -56,7 +56,7 @@ export async function runPeerToPeerPushTest(t: GlobalTestState) {
{
const resp = await wallet1.client.call(
WalletApiOperation.InitiatePeerPushPayment,
WalletApiOperation.InitiatePeerPushDebit,
{
partialContractTerms: {
summary: "Hello World 😁😇",
@ -69,7 +69,7 @@ export async function runPeerToPeerPushTest(t: GlobalTestState) {
console.log(resp);
}
const resp = await wallet1.client.call(
WalletApiOperation.InitiatePeerPushPayment,
WalletApiOperation.InitiatePeerPushDebit,
{
partialContractTerms: {
summary: "Hello World 🥺",
@ -82,7 +82,7 @@ export async function runPeerToPeerPushTest(t: GlobalTestState) {
console.log(resp);
const checkResp = await wallet2.client.call(
WalletApiOperation.CheckPeerPushPayment,
WalletApiOperation.PreparePeerPushCredit,
{
talerUri: resp.talerUri,
},
@ -91,7 +91,7 @@ export async function runPeerToPeerPushTest(t: GlobalTestState) {
console.log(checkResp);
const acceptResp = await wallet2.client.call(
WalletApiOperation.AcceptPeerPushPayment,
WalletApiOperation.ConfirmPeerPushCredit,
{
peerPushPaymentIncomingId: checkResp.peerPushPaymentIncomingId,
},
@ -115,7 +115,7 @@ export async function runPeerToPeerPushTest(t: GlobalTestState) {
console.log(`txn2: ${j2s(txn2)}`);
const ex1 = await t.assertThrowsTalerErrorAsync(async () => {
await wallet1.client.call(WalletApiOperation.InitiatePeerPushPayment, {
await wallet1.client.call(WalletApiOperation.InitiatePeerPushDebit, {
partialContractTerms: {
summary: "(this will fail)",
amount: "TESTKUDOS:15",

View File

@ -925,13 +925,32 @@ depositCli
});
});
const advancedCli = walletCli.subcommand("advancedArgs", "advanced", {
help: "Subcommands for advanced operations (only use if you know what you're doing!).",
const peerCli = walletCli.subcommand("peerArgs", "p2p", {
help: "Subcommands for peer-to-peer payments.",
});
advancedCli
.subcommand("checkPayPull", "check-pay-pull", {
help: "Check fees for a peer-pull payment initiation.",
peerCli
.subcommand("checkPayPush", "check-push-debit", {
help: "Check fees for starting a peer-push debit transaction.",
})
.requiredArgument("amount", clk.STRING, {
help: "Amount to pay",
})
.action(async (args) => {
await withWallet(args, async (wallet) => {
const resp = await wallet.client.call(
WalletApiOperation.CheckPeerPushDebit,
{
amount: args.checkPayPush.amount,
},
);
console.log(JSON.stringify(resp, undefined, 2));
});
});
peerCli
.subcommand("checkPayPull", "check-pull-credit", {
help: "Check fees for a starting peer-pull credit transaction.",
})
.requiredArgument("amount", clk.STRING, {
help: "Amount to request",
@ -939,7 +958,7 @@ advancedCli
.action(async (args) => {
await withWallet(args, async (wallet) => {
const resp = await wallet.client.call(
WalletApiOperation.PreparePeerPullPayment,
WalletApiOperation.CheckPeerPullCredit,
{
amount: args.checkPayPull.amount,
},
@ -948,13 +967,13 @@ advancedCli
});
});
advancedCli
.subcommand("prepareIncomingPayPull", "prepare-incoming-pay-pull")
peerCli
.subcommand("prepareIncomingPayPull", "prepare-pull-debit")
.requiredArgument("talerUri", clk.STRING)
.action(async (args) => {
await withWallet(args, async (wallet) => {
const resp = await wallet.client.call(
WalletApiOperation.CheckPeerPullPayment,
WalletApiOperation.PreparePeerPullDebit,
{
talerUri: args.prepareIncomingPayPull.talerUri,
},
@ -963,13 +982,13 @@ advancedCli
});
});
advancedCli
.subcommand("confirmIncomingPayPull", "confirm-incoming-pay-pull")
peerCli
.subcommand("confirmIncomingPayPull", "confirm-pull-debit")
.requiredArgument("peerPullPaymentIncomingId", clk.STRING)
.action(async (args) => {
await withWallet(args, async (wallet) => {
const resp = await wallet.client.call(
WalletApiOperation.AcceptPeerPullPayment,
WalletApiOperation.ConfirmPeerPullDebit,
{
peerPullPaymentIncomingId:
args.confirmIncomingPayPull.peerPullPaymentIncomingId,
@ -979,8 +998,24 @@ advancedCli
});
});
advancedCli
.subcommand("initiatePayPull", "initiate-pay-pull", {
peerCli
.subcommand("confirmIncomingPayPush", "confirm-push-credit")
.requiredArgument("peerPushPaymentIncomingId", clk.STRING)
.action(async (args) => {
await withWallet(args, async (wallet) => {
const resp = await wallet.client.call(
WalletApiOperation.ConfirmPeerPushCredit,
{
peerPushPaymentIncomingId:
args.confirmIncomingPayPush.peerPushPaymentIncomingId,
},
);
console.log(JSON.stringify(resp, undefined, 2));
});
});
peerCli
.subcommand("initiatePayPull", "initiate-pull-credit", {
help: "Initiate a peer-pull payment.",
})
.requiredArgument("amount", clk.STRING, {
@ -993,7 +1028,7 @@ advancedCli
.action(async (args) => {
await withWallet(args, async (wallet) => {
const resp = await wallet.client.call(
WalletApiOperation.InitiatePeerPullPayment,
WalletApiOperation.InitiatePeerPullCredit,
{
exchangeBaseUrl: args.initiatePayPull.exchangeBaseUrl,
partialContractTerms: {
@ -1013,27 +1048,23 @@ advancedCli
});
});
advancedCli
.subcommand("checkPayPush", "check-pay-push", {
help: "Check fees for a peer-push payment.",
})
.requiredArgument("amount", clk.STRING, {
help: "Amount to pay",
})
peerCli
.subcommand("preparePushCredit", "prepare-push-credit")
.requiredArgument("talerUri", clk.STRING)
.action(async (args) => {
await withWallet(args, async (wallet) => {
const resp = await wallet.client.call(
WalletApiOperation.PreparePeerPushPayment,
WalletApiOperation.PreparePeerPushCredit,
{
amount: args.checkPayPush.amount,
talerUri: args.preparePushCredit.talerUri,
},
);
console.log(JSON.stringify(resp, undefined, 2));
});
});
advancedCli
.subcommand("payPush", "initiate-pay-push", {
peerCli
.subcommand("payPush", "initiate-push-debit", {
help: "Initiate a peer-push payment.",
})
.requiredArgument("amount", clk.STRING, {
@ -1045,7 +1076,7 @@ advancedCli
.action(async (args) => {
await withWallet(args, async (wallet) => {
const resp = await wallet.client.call(
WalletApiOperation.InitiatePeerPushPayment,
WalletApiOperation.InitiatePeerPushDebit,
{
partialContractTerms: {
amount: args.payPush.amount,
@ -1064,6 +1095,10 @@ advancedCli
});
});
const advancedCli = walletCli.subcommand("advancedArgs", "advanced", {
help: "Subcommands for advanced operations (only use if you know what you're doing!).",
});
advancedCli
.subcommand("serve", "serve", {
help: "Serve the wallet API via a unix domain socket.",

View File

@ -29,8 +29,8 @@ import {
AcceptExchangeTosRequest,
AcceptManualWithdrawalRequest,
AcceptManualWithdrawalResult,
AcceptPeerPullPaymentRequest,
AcceptPeerPushPaymentRequest,
AcceptPeerPullPaymentRequest as ConfirmPeerPullDebitRequest,
AcceptPeerPushPaymentRequest as ConfirmPeerPushCreditRequest,
AcceptTipRequest,
AcceptTipResponse,
AcceptWithdrawalResponse,
@ -42,8 +42,8 @@ import {
ApplyRefundResponse,
BackupRecovery,
BalancesResponse,
CheckPeerPullPaymentRequest,
CheckPeerPullPaymentResponse,
CheckPeerPullPaymentRequest as PreparePeerPullDebitRequest,
CheckPeerPullPaymentResponse as PreparePeerPullDebitResponse,
CheckPeerPushPaymentRequest,
CheckPeerPushPaymentResponse,
CoinDumpJson,
@ -64,8 +64,8 @@ import {
GetFeeForDepositRequest,
GetWithdrawalDetailsForAmountRequest,
GetWithdrawalDetailsForUriRequest,
InitiatePeerPullPaymentRequest,
InitiatePeerPullPaymentResponse,
InitiatePeerPullPaymentRequest as InitiatePeerPullCreditRequest,
InitiatePeerPullPaymentResponse as InitiatePeerPullCreditResponse,
InitiatePeerPushPaymentRequest,
InitiatePeerPushPaymentResponse,
InitRequest,
@ -79,10 +79,10 @@ import {
PreparePayRequest,
PreparePayResult,
PreparePayTemplateRequest,
PreparePeerPullPaymentRequest,
PreparePeerPullPaymentResponse,
PreparePeerPushPaymentRequest,
PreparePeerPushPaymentResponse,
PreparePeerPullPaymentRequest as CheckPeerPullCreditRequest,
PreparePeerPullPaymentResponse as CheckPeerPullCreditResponse,
PreparePeerPushPaymentRequest as CheckPeerPushDebitRequest,
PreparePeerPushPaymentResponse as CheckPeerPushDebitResponse,
PrepareRefundRequest,
PrepareRefundResult,
PrepareTipRequest,
@ -183,14 +183,22 @@ export enum WalletApiOperation {
WithdrawFakebank = "withdrawFakebank",
ImportDb = "importDb",
ExportDb = "exportDb",
PreparePeerPushPayment = "preparePeerPushPayment",
InitiatePeerPushPayment = "initiatePeerPushPayment",
CheckPeerPushPayment = "checkPeerPushPayment",
AcceptPeerPushPayment = "acceptPeerPushPayment",
PreparePeerPullPayment = "preparePeerPullPayment",
InitiatePeerPullPayment = "initiatePeerPullPayment",
CheckPeerPullPayment = "checkPeerPullPayment",
AcceptPeerPullPayment = "acceptPeerPullPayment",
// FIXME: Also rename enum value
CheckPeerPushDebit = "preparePeerPushPayment",
// FIXME: Also rename enum value
InitiatePeerPushDebit = "initiatePeerPushPayment",
// FIXME: Also rename enum value
PreparePeerPushCredit = "checkPeerPushPayment",
// FIXME: Also rename enum value
ConfirmPeerPushCredit = "acceptPeerPushPayment",
// FIXME: Also rename enum value
CheckPeerPullCredit = "preparePeerPullPayment",
// FIXME: Also rename enum value
InitiatePeerPullCredit = "initiatePeerPullPayment",
// FIXME: Also rename enum value
PreparePeerPullDebit = "checkPeerPullPayment",
// FIXME: Also rename enum value
ConfirmPeerPullDebit = "acceptPeerPullPayment",
ClearDb = "clearDb",
Recycle = "recycle",
SetDevMode = "setDevMode",
@ -593,85 +601,73 @@ export type ExportBackupPlainOp = {
/**
* Check if initiating a peer push payment is possible
* based on the funds in the wallet.
*
* FIXME: Rename to CheckPeerPushPaymentInitiation
*/
export type PreparePeerPushPaymentOp = {
op: WalletApiOperation.PreparePeerPushPayment;
request: PreparePeerPushPaymentRequest;
response: PreparePeerPushPaymentResponse;
export type CheckPeerPushDebitOp = {
op: WalletApiOperation.CheckPeerPushDebit;
request: CheckPeerPushDebitRequest;
response: CheckPeerPushDebitResponse;
};
/**
* Initiate an outgoing peer push payment.
*/
export type InitiatePeerPushPaymentOp = {
op: WalletApiOperation.InitiatePeerPushPayment;
export type InitiatePeerPushDebitOp = {
op: WalletApiOperation.InitiatePeerPushDebit;
request: InitiatePeerPushPaymentRequest;
response: InitiatePeerPushPaymentResponse;
};
/**
* Check an incoming peer push payment.
*
* FIXME: Rename to "PrepareIncomingPeerPushPayment"
*/
export type CheckPeerPushPaymentOp = {
op: WalletApiOperation.CheckPeerPushPayment;
export type PreparePeerPushCreditOp = {
op: WalletApiOperation.PreparePeerPushCredit;
request: CheckPeerPushPaymentRequest;
response: CheckPeerPushPaymentResponse;
};
/**
* Accept an incoming peer push payment.
*
* FIXME: Rename to ConfirmIncomingPeerPushPayment
*/
export type AcceptPeerPushPaymentOp = {
op: WalletApiOperation.AcceptPeerPushPayment;
request: AcceptPeerPushPaymentRequest;
export type ConfirmPeerPushCreditOp = {
op: WalletApiOperation.ConfirmPeerPushCredit;
request: ConfirmPeerPushCreditRequest;
response: EmptyObject;
};
/**
* Initiate an outgoing peer pull payment.
*
* FIXME: This does not check anything, so rename to CheckPeerPullPaymentInitiation
* Check fees for an outgoing peer pull payment.
*/
export type PreparePeerPullPaymentOp = {
op: WalletApiOperation.PreparePeerPullPayment;
request: PreparePeerPullPaymentRequest;
response: PreparePeerPullPaymentResponse;
export type CheckPeerPullCreditOp = {
op: WalletApiOperation.CheckPeerPullCredit;
request: CheckPeerPullCreditRequest;
response: CheckPeerPullCreditResponse;
};
/**
* Initiate an outgoing peer pull payment.
*/
export type InitiatePeerPullPaymentOp = {
op: WalletApiOperation.InitiatePeerPullPayment;
request: InitiatePeerPullPaymentRequest;
response: InitiatePeerPullPaymentResponse;
export type InitiatePeerPullCreditOp = {
op: WalletApiOperation.InitiatePeerPullCredit;
request: InitiatePeerPullCreditRequest;
response: InitiatePeerPullCreditResponse;
};
/**
* Prepare for an incoming peer pull payment.
*
* FIXME: Rename to "PrepareIncomingPeerPullPayment"
*/
export type CheckPeerPullPaymentOp = {
op: WalletApiOperation.CheckPeerPullPayment;
request: CheckPeerPullPaymentRequest;
response: CheckPeerPullPaymentResponse;
export type PreparePeerPullDebitOp = {
op: WalletApiOperation.PreparePeerPullDebit;
request: PreparePeerPullDebitRequest;
response: PreparePeerPullDebitResponse;
};
/**
* Accept an incoming peer pull payment (i.e. pay the other party).
*
* FIXME: Rename to ConfirmIncomingPeerPullPayment
*/
export type AcceptPeerPullPaymentOp = {
op: WalletApiOperation.AcceptPeerPullPayment;
request: AcceptPeerPullPaymentRequest;
export type ConfirmPeerPullDebitOp = {
op: WalletApiOperation.ConfirmPeerPullDebit;
request: ConfirmPeerPullDebitRequest;
response: EmptyObject;
};
@ -915,14 +911,14 @@ export type WalletOperations = {
[WalletApiOperation.TestPay]: TestPayOp;
[WalletApiOperation.ExportDb]: ExportDbOp;
[WalletApiOperation.ImportDb]: ImportDbOp;
[WalletApiOperation.PreparePeerPushPayment]: PreparePeerPushPaymentOp;
[WalletApiOperation.InitiatePeerPushPayment]: InitiatePeerPushPaymentOp;
[WalletApiOperation.CheckPeerPushPayment]: CheckPeerPushPaymentOp;
[WalletApiOperation.AcceptPeerPushPayment]: AcceptPeerPushPaymentOp;
[WalletApiOperation.PreparePeerPullPayment]: PreparePeerPullPaymentOp;
[WalletApiOperation.InitiatePeerPullPayment]: InitiatePeerPullPaymentOp;
[WalletApiOperation.CheckPeerPullPayment]: CheckPeerPullPaymentOp;
[WalletApiOperation.AcceptPeerPullPayment]: AcceptPeerPullPaymentOp;
[WalletApiOperation.CheckPeerPushDebit]: CheckPeerPushDebitOp;
[WalletApiOperation.InitiatePeerPushDebit]: InitiatePeerPushDebitOp;
[WalletApiOperation.PreparePeerPushCredit]: PreparePeerPushCreditOp;
[WalletApiOperation.ConfirmPeerPushCredit]: ConfirmPeerPushCreditOp;
[WalletApiOperation.CheckPeerPullCredit]: CheckPeerPullCreditOp;
[WalletApiOperation.InitiatePeerPullCredit]: InitiatePeerPullCreditOp;
[WalletApiOperation.PreparePeerPullDebit]: PreparePeerPullDebitOp;
[WalletApiOperation.ConfirmPeerPullDebit]: ConfirmPeerPullDebitOp;
[WalletApiOperation.ClearDb]: ClearDbOp;
[WalletApiOperation.Recycle]: RecycleOp;
[WalletApiOperation.ApplyDevExperiment]: ApplyDevExperimentOp;

View File

@ -1432,31 +1432,31 @@ async function dispatchRequestInternal<Op extends WalletApiOperation>(
const req = codecForPreparePeerPushPaymentRequest().decode(payload);
return await preparePeerPushPayment(ws, req);
}
case WalletApiOperation.InitiatePeerPushPayment: {
case WalletApiOperation.InitiatePeerPushDebit: {
const req = codecForInitiatePeerPushPaymentRequest().decode(payload);
return await initiatePeerPushPayment(ws, req);
}
case WalletApiOperation.CheckPeerPushPayment: {
case WalletApiOperation.PreparePeerPushCredit: {
const req = codecForCheckPeerPushPaymentRequest().decode(payload);
return await preparePeerPushCredit(ws, req);
}
case WalletApiOperation.AcceptPeerPushPayment: {
case WalletApiOperation.ConfirmPeerPushCredit: {
const req = codecForAcceptPeerPushPaymentRequest().decode(payload);
return await acceptPeerPushPayment(ws, req);
}
case WalletApiOperation.PreparePeerPullPayment: {
case WalletApiOperation.CheckPeerPullCredit: {
const req = codecForPreparePeerPullPaymentRequest().decode(payload);
return await checkPeerPullPaymentInitiation(ws, req);
}
case WalletApiOperation.InitiatePeerPullPayment: {
case WalletApiOperation.InitiatePeerPullCredit: {
const req = codecForInitiatePeerPullPaymentRequest().decode(payload);
return await initiatePeerPullPayment(ws, req);
}
case WalletApiOperation.CheckPeerPullPayment: {
case WalletApiOperation.PreparePeerPullDebit: {
const req = codecForCheckPeerPullPaymentRequest().decode(payload);
return await preparePeerPullCredit(ws, req);
}
case WalletApiOperation.AcceptPeerPullPayment: {
case WalletApiOperation.ConfirmPeerPullDebit: {
const req = codecForAcceptPeerPullPaymentRequest().decode(payload);
return await acceptIncomingPeerPullPayment(ws, req);
}