From 59ff44214d8da4920cbfa8d48497953a9acf62a7 Mon Sep 17 00:00:00 2001 From: alfred-mk Date: Tue, 20 Aug 2024 15:09:02 +0300 Subject: [PATCH] save the recipient to the user data --- cmd/main.go | 78 +++++++++++++++++++-- services/registration/amount | 2 + services/registration/amount.vis | 6 ++ services/registration/amount_swa | 0 services/registration/invalid_recipient | 2 +- services/registration/invalid_recipient.vis | 2 +- services/registration/invalid_recipient_swa | 2 +- services/registration/send.vis | 6 +- 8 files changed, 88 insertions(+), 10 deletions(-) create mode 100644 services/registration/amount create mode 100644 services/registration/amount.vis create mode 100644 services/registration/amount_swa diff --git a/cmd/main.go b/cmd/main.go index 22ba037..7824218 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -313,19 +313,88 @@ func (fsd *fsData) checkBalance(ctx context.Context, sym string, input []byte) ( return res, nil } -func(fsd *fsData) send_transaction(ctx context.Context, sym string, input []byte) (resource.Result, error) { +func(fsd *fsData) validate_recipient(ctx context.Context, sym string, input []byte) (resource.Result, error) { res := resource.Result{} recipient := string(input) - res.FlagSet = []uint32{invalidRecipient} - res.Content = recipient + res.FlagReset = []uint32{invalidRecipient} + res.FlagReset = []uint32{invalidRecipientWithInvite} + + fp := fsd.path + "_data" + + jsonData, err := os.ReadFile(fp) + if err != nil { + return res, err + } + + var accountData map[string]string + err = json.Unmarshal(jsonData, &accountData) + if err != nil { + return res, err + } + + // mimic invalid number check + if recipient == "000" { + res.FlagSet = []uint32{invalidRecipient} + res.Content = recipient + + return res, nil + } + + accountData["Recipient"] = recipient + + updatedJsonData, err := json.Marshal(accountData) + if err != nil { + return res, err + } + + err = os.WriteFile(fp, updatedJsonData, 0644) + if err != nil { + return res, err + } return res, nil } func(fsd *fsData) transaction_reset(ctx context.Context, sym string, input []byte) (resource.Result, error) { res := resource.Result{} + fp := fsd.path + "_data" + + jsonData, err := os.ReadFile(fp) + if err != nil { + return res, err + } + + var accountData map[string]string + err = json.Unmarshal(jsonData, &accountData) + if err != nil { + return res, err + } + + // reset the recipient + accountData["Recipient"] = "" + + updatedJsonData, err := json.Marshal(accountData) + if err != nil { + return res, err + } + + err = os.WriteFile(fp, updatedJsonData, 0644) + if err != nil { + return res, err + } + res.FlagReset = []uint32{invalidRecipient} + res.FlagReset = []uint32{invalidRecipientWithInvite} + return res, nil +} + +func(fsd *fsData) max_amount(ctx context.Context, sym string, input []byte) (resource.Result, error) { + res := resource.Result{} + + // mimic a max amount + res.Content = "10.00" + return res, nil } @@ -394,8 +463,9 @@ func main() { rfs.AddLocalFunc("unlock_account", fs.unlock) rfs.AddLocalFunc("quit",fs.quit) rfs.AddLocalFunc("check_balance", fs.checkBalance) - rfs.AddLocalFunc("send_transaction", fs.send_transaction) + rfs.AddLocalFunc("validate_recipient", fs.validate_recipient) rfs.AddLocalFunc("transaction_reset", fs.transaction_reset) + rfs.AddLocalFunc("max_amount", fs.max_amount) cont, err := en.Init(ctx) if err != nil { diff --git a/services/registration/amount b/services/registration/amount new file mode 100644 index 0000000..9142aba --- /dev/null +++ b/services/registration/amount @@ -0,0 +1,2 @@ +Maximum amount: {{.max_amount}} +Enter amount: \ No newline at end of file diff --git a/services/registration/amount.vis b/services/registration/amount.vis new file mode 100644 index 0000000..4923a89 --- /dev/null +++ b/services/registration/amount.vis @@ -0,0 +1,6 @@ +LOAD max_amount 0 +MAP max_amount +MOUT back 0 +HALT +INCMP ^ 0 +INCMP quit * diff --git a/services/registration/amount_swa b/services/registration/amount_swa new file mode 100644 index 0000000..e69de29 diff --git a/services/registration/invalid_recipient b/services/registration/invalid_recipient index 6231e76..0be78bd 100644 --- a/services/registration/invalid_recipient +++ b/services/registration/invalid_recipient @@ -1 +1 @@ -{{.send_transaction}} is not registered or invalid, please try again: \ No newline at end of file +{{.validate_recipient}} is not registered or invalid, please try again: \ No newline at end of file diff --git a/services/registration/invalid_recipient.vis b/services/registration/invalid_recipient.vis index 87454cf..6f4e6b5 100644 --- a/services/registration/invalid_recipient.vis +++ b/services/registration/invalid_recipient.vis @@ -1,4 +1,4 @@ -MAP send_transaction +MAP validate_recipient LOAD transaction_reset 0 MOUT retry 1 MOUT quit 9 diff --git a/services/registration/invalid_recipient_swa b/services/registration/invalid_recipient_swa index b19e53f..39e7804 100644 --- a/services/registration/invalid_recipient_swa +++ b/services/registration/invalid_recipient_swa @@ -1 +1 @@ -{{.send_transaction}} haijasajiliwa au sio sahihi, tafadhali weka tena: \ No newline at end of file +{{.validate_recipient}} haijasajiliwa au sio sahihi, tafadhali weka tena: \ No newline at end of file diff --git a/services/registration/send.vis b/services/registration/send.vis index 2e1479b..a3b79d9 100644 --- a/services/registration/send.vis +++ b/services/registration/send.vis @@ -2,6 +2,6 @@ LOAD transaction_reset 0 MOUT back 0 HALT INCMP ^ 0 -LOAD send_transaction 0 -MAP send_transaction -MOVE invalid_recipient +LOAD validate_recipient 0 +MAP validate_recipient +MOVE amount