From c5a2562a7b965b11889a60e485cc5048652c2a77 Mon Sep 17 00:00:00 2001 From: swrup Date: Sat, 28 Feb 2026 03:32:55 +0100 Subject: [PATCH] --- keys.json | 1 + src/amount.ml | 2 +- test/validate_response.ml | 5 +++++ 3 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 keys.json diff --git a/keys.json b/keys.json new file mode 100644 index 00000000..8cc41b8e --- /dev/null +++ b/keys.json @@ -0,0 +1 @@ +{"version":"31:0:0","base_url":"http://localhost:3434/","currency":"KUDOS","currency_specification":{"name":"Kudos","num_fractional_input_digits":2,"num_fractional_normal_digits":2,"num_fractional_trailing_zero_digits":2,"alt_unit_names":{"0":"ク","3":"kク"},"common_amounts":[]},"stefan_abs":"KUDOS:0.00","stefan_log":"KUDOS:0.00","stefan_lin":0,"asset_type":"fiat","accounts":[],"wire_fees":{"x-taler-bank":[{"wire_fee":"KUDOS:0.00","closing_fee":"KUDOS:0.00","start_date":{"t_s":0},"end_date":{"t_s":99999999},"sig":"2TX9ED5S21YPM88TVJGF8TMPH1D0A71MP1M5J5YB02CWBCT1BKQZE153WQP4H1W0A8Z85M77Q988RA1V1R001ZHA1BQKBNAYCW07P0R"}]},"wads":[],"kyc_enabled":false,"disable_direct_deposit":false,"master_public_key":"SJ0NYND22VQP3MP7FM754RDX8HCKVWAXTHY9SQNBTPRJZ2SPM2S0","reserve_closing_delay":{"d_us":32756645000000},"hard_limits":[],"zero_limits":[],"denominations":[{"cipher":"RSA","denoms":[],"value":"KUDOS:0.01","fee_withdraw":"KUDOS:0.00","fee_deposit":"KUDOS:0.00","fee_refresh":"KUDOS:0.00","fee_refund":"KUDOS:0.00"},{"cipher":"RSA","denoms":[],"value":"KUDOS:0.02","fee_withdraw":"KUDOS:0.00","fee_deposit":"KUDOS:0.00","fee_refresh":"KUDOS:0.00","fee_refund":"KUDOS:0.00"}],"exchange_sig":"8DCF99PV0552Y884K7CV3TDB9CT8N8HRD5EXNHAJKNG66AXAW2KCA8BNZRMJT4RKTTJSYHWAGFY0A2ZF0FB4D1370D7WS1D3N2NQM28","exchange_pub":"803S86SJEZGBS5K5XEHJ8D261FDYMT48ED57GQ92GK1WD7YQJPBG","recoup":[],"global_fees":[{"start_date":{"t_s":0},"end_date":{"t_s":99999999},"history_fee":"KUDOS:0.00","account_fee":"KUDOS:0.00","purse_fee":"KUDOS:0.00","history_expiration":{"d_us":9999999000000},"purse_account_limit":1,"purse_timeout":{"d_us":9999999000000},"master_sig":"70H0N9YTKJM605QCY7SCDNNJQXKDCXGVNV76CNAV85JA58B40ZGR81DM129EN2PD6DWHFBTYTCR5P1CZK480PEWXC91PHHT1HRFNY0R"}],"list_issue_date":{"t_s":0},"auditors":[],"signkeys":[{"key":"YPA71CDXAEWWGT55Q4BP0983Y125D9N1HXQP173F7N4FCPPN42A0","stamp_start":{"t_s":1783114617},"stamp_expire":{"t_s":1784932617},"stamp_end":{"t_s":1814650617},"master_sig":"YAG2E0DB8PDK9Z528HHWSA2AQADF524FEPZVPB6SP8BV8KAVYAEM58S29AAHEPT9AY5KFS75XR1MDD0MY7EXQ1BHK41ZNXG82G88W30"},{"key":"NX4DCNFK6W0312GH8A030FNKN8THSY2M12RFF8T8T4FJ4VFPNPGG","stamp_start":{"t_s":1781300217},"stamp_expire":{"t_s":1783118217},"stamp_end":{"t_s":1812836217},"master_sig":"P2QN7RKZCHC3HXGHBG7NW3XP606WFN0Q5221NJKKP0AGM090T9A2B5DNGT5TSMC4PNQ0V59GZY352HH7D06WQR3V5Z3172BZBVC1410"},{"key":"94DXH72884TF08HMKWNPP0ES89AA783PVWAYHQ3K61MBMQ9K4AEG","stamp_start":{"t_s":1775857017},"stamp_expire":{"t_s":1777675017},"stamp_end":{"t_s":1807393017},"master_sig":"0Y7EFWT043JPYN06RDV7KJ9YHJGFMQ90097QHTDG7V3K01JBNJ82YF6EEFW6PJFF225WH7X4K75SWRPW92AC4BQKZRHTZPQ8K9GEP3G"},{"key":"AA4ZXR1327BRNC385370NGC8VJATTDZW1GVFFE1M6RPZA6SZD9M0","stamp_start":{"t_s":1790372217},"stamp_expire":{"t_s":1792190217},"stamp_end":{"t_s":1821908217},"master_sig":"YAMGT1XPAY8EDM6KMQZ3KCV30SARAP51YWGV19MQBFNYRCDZJ6Z1W03F6ET84ZWS5SFQ5F4XNA9W3FX7NE4HYQEK2E7738B5EJBB000"},{"key":"5QTC5SRS3DQ65Q2YFDB5HPWFG6GVABHTSVE890YKKP73EMGKHK40","stamp_start":{"t_s":1779485817},"stamp_expire":{"t_s":1781303817},"stamp_end":{"t_s":1811021817},"master_sig":"E41EFGS95YD3Z9P6R5ZH3X27Z1WA2QTEK8F4EMBMM66TGWKDC8FS97ZBCQ3WAQ9232JPJFJF711B40R65FF82HE7YHJHQM3HS6ZYA28"},{"key":"803S86SJEZGBS5K5XEHJ8D261FDYMT48ED57GQ92GK1WD7YQJPBG","stamp_start":{"t_s":1772231817},"stamp_expire":{"t_s":1774046217},"stamp_end":{"t_s":1803767817},"master_sig":"GM9DZA9TP62EP0D4PTBQXVFRDZV9FDFMRV7KP3Y8AP766967YPSQQ3HZEQ8H3WPEE62SJ4KW9TB3P6EDCPWRY87WA9072JFWVQV7J08"},{"key":"H645DHZRFRQQK5AG0BS1XVTWW6R3AVVZ7A3D2NR0AQAEH2X73ZY0","stamp_start":{"t_s":1786743417},"stamp_expire":{"t_s":1788561417},"stamp_end":{"t_s":1818279417},"master_sig":"51Y5TBNQEFXTCJQSFKX2FCBP6B29HWYZS03D87PFQVTDFTAYG6AYA4KBEDJ3F21RXRWZYE9T803P7B0KG2DSJNZC7JE47TF711C5J30"},{"key":"A2QFH2W0Y3R97HRWGFQRA1GR53A9G54CB23HV6QAZ3KR8QTWBSEG","stamp_start":{"t_s":1792186617},"stamp_expire":{"t_s":1794004617},"stamp_end":{"t_s":1823722617},"master_sig":"1942W54E83YJCPSXMTC532HHC53BB9GEYPNCPNZT6S05Y38Z6S65G15HHRA3YZ4K9FST8BNEXCF0CSZPWJDW2KSRN11XDCC2ERZFW2G"},{"key":"FCMW417VT5F1KKR2W211QR0A41JNVMP7ANRMM7SWBTP25S8D8EBG","stamp_start":{"t_s":1795815417},"stamp_expire":{"t_s":1797633417},"stamp_end":{"t_s":1827351417},"master_sig":"ZB6XTZ3HFR28367GRPANCY3KXZ9DJ46JEDAYXJTMCYWV9XMW0VW64W1Z2YQYHQ76QVSH4TZPTTKR64TTTHX837HM4PSRNEQFC8P1M30"},{"key":"WPV0P8MSC2YRSFBXW0B07M164HJAMMK8HCBJMSD32GZ3YNH38KE0","stamp_start":{"t_s":1799444217},"stamp_expire":{"t_s":1801262217},"stamp_end":{"t_s":1830980217},"master_sig":"4064Z8T5RJMSWM5W4FD4XAY30VMPT8JGMMDMFJ5HGNP24M8ND81EDG38HNAZ0PQG03ZGP986ECBGJYBYKJXQ067YG0N0MEJRMEZRG18"},{"key":"D49EB4N3GT1ZWV8T4VSQAD0VG61JYPH617AYHA4EKTGVQC055MDG","stamp_start":{"t_s":1774042617},"stamp_expire":{"t_s":1775860617},"stamp_end":{"t_s":1805578617},"master_sig":"Y910SHGZAQ3DFQDM8TG5C7R0NN8RYQAV0D7X8H0EDNXJ0G70V07VTJDFGTQXP2ZTVF4D4VP5YN83C5M5NSJSYKM94E2AQDY0Z3NPE08"},{"key":"TY6HZ8R81F9WDJB2V73SABD6D3SGQYXAP9QX4AFECMYTFQAEXN1G","stamp_start":{"t_s":1777671417},"stamp_expire":{"t_s":1779489417},"stamp_end":{"t_s":1809207417},"master_sig":"PW8T58GKQ5MNR9B8RSAA9VCPBS58PFJ1Z1JMS8T4M8KTZCGDDFZMBVRF7SFF8S0HF52KHEDDVZDTRNTBVRYRQ1CCFW218WK7TKZSE00"},{"key":"N9648P9A2TWZ5VB5FKHTS9MC6Z6Q7QCXRMRPW1J24FSB68SA7HNG","stamp_start":{"t_s":1788557817},"stamp_expire":{"t_s":1790375817},"stamp_end":{"t_s":1820093817},"master_sig":"JCKQSQRY3P430T3BS6QTSR8FFDRHPK8PJDWXZFS9DS57GM1YE8ZK0Y8J78N79C4G2SJ1EYT9W9WBWSVH3X919XCF2HWK8NMWMJ10008"},{"key":"GGFKTSR49GGA44Y62AX61E07EP1HD4RA41SN4NAKSY7N3ZQFZKC0","stamp_start":{"t_s":1794001017},"stamp_expire":{"t_s":1795819017},"stamp_end":{"t_s":1825537017},"master_sig":"0H5ZCJKND8XZJMV1C9M2BB7PP9ETHY0AX4BCTWWNG8XT472PZP2FBXTQSNGASYSHFVGQDRB6TF2H517CCV8913BA52QH4ZVV0XBP61G"},{"key":"2CFGP7K0TVD6XYHER3WCZWCMV1JDC102JJXF6JGT4QWAFB2P68CG","stamp_start":{"t_s":1803073017},"stamp_expire":{"t_s":1804887417},"stamp_end":{"t_s":1834609017},"master_sig":"HN89HCDDWZ6K4BEYY1D8TKSPRYDTE4MSRZ0EK3T0SMKY9S7GQD899P3VX9RCPF1J0XX7N1B1KY370137A2JH1KHZPYT1V1HW3D2MM3R"},{"key":"4DZVWREGBWQ918YPGN53XGBKMS8ARF50DSRV68A0QJAYC2HJ39QG","stamp_start":{"t_s":1797629817},"stamp_expire":{"t_s":1799447817},"stamp_end":{"t_s":1829165817},"master_sig":"DY7QEQ0G0PYW7K8GMP8274SF64XW46335GADNSFG5RJ1EMR7AHKEF73TEQ085P1BV591BS687NRNGZFT511TNXKB0WGVE36Q6X18428"},{"key":"X5MNZXCXMYNTP6KQBT0VZKM07KYJPSMNZZ3AQJNNRPDKR9YH0DM0","stamp_start":{"t_s":1801258617},"stamp_expire":{"t_s":1803076617},"stamp_end":{"t_s":1832794617},"master_sig":"ZE02HPBAVT5QJ8706KBHA5GE5QT8SY6TZ3EMJT182XE61110RF3JE4J55CJMDRFX99077P3ESGD0GZSJ6YWRANAKNVN7VTM1F8BQM18"}]} \ No newline at end of file diff --git a/src/amount.ml b/src/amount.ml index 3d8f6508..9b8b34ff 100644 --- a/src/amount.ml +++ b/src/amount.ml @@ -113,6 +113,6 @@ let bin = let open Bin in record make_exn |+ field beint64 (fun t -> t.value) - |+ field beint32 (fun t -> t.fraction) + |+ field beint32 (fun t -> Int32.mul t.fraction 1_000_000_l) |+ field (bytes currency_len) (fun t -> pad_currency_string t.currency) |> sealr diff --git a/test/validate_response.ml b/test/validate_response.ml index 5b10b4fe..970a803f 100644 --- a/test/validate_response.ml +++ b/test/validate_response.ml @@ -75,6 +75,11 @@ let keys content = let* () = denom_l |> list_iter (fun dn -> + let open Denomination in + (*let to_int64 ts = ts |> Timestamp.to_s |> Option.get in*) + Fmt.pr "rsa_pub: %s@." (Crypto.RsaPublicKey.to_b32 dn.pub); + Fmt.pr "master_sig: %s@." (B32.encode @@ Obj.magic dn.master_sig); + (* amount bin fraction bad? *) let* () = Denomination.verify_denomination_key_validity ~key:v.master_public_key dn