UNPKG

stellar-wallet-js-sdk

Version:

> # :warning: Alpha version. Don't use in production.

135 lines (116 loc) 7.57 kB
/* In mock server following users exist: bartek@stellar.org ------------------ Password: 1234567890 TOTP key: no mainData: {"username":"bartek","server":{"trusted":true,"websocket_ip":"live.stellar.org","websocket_port":9001,"websocket_ssl":false},"gateways":{}} keychainData: {"authToken":"vNKkuhb9XuwK17kuXGH1Lr29WeyQOSgsPi8oDdO4vhc=","updateToken":"qmgCiXJmyLniKB+weqbxTCbgKRXhep+G2SPT6FDBmu8=","signingKeys":{"address":"gK1UXqXDKRANNFvmcHXHhxwM2KnqiszWSj","secret":"s32UsXsFwqXGxt8dvDTsCdNjBmhxKohdKoBHSWbGM4rBibXN1Fi","secretKey":"u5u/mMcUgKLMY4Er2h1J94Xf2cS+1w3hSK+kfwCGoqzV88+SyOraYvvn2rPvJvakfXIsWGlix9zBnXwKKfZZEQ==","publicKey":"1fPPksjq2mL759qz7yb2pH1yLFhpYsfcwZ18Cin2WRE="}} recoveryCode: Be6dkzayXgh7Zy6Z5TkYs4ob2trxSD36ayvPVB9SQRd8 jared@stellar.org ----------------- Password: 0987654321 TOTP key: yes (000000 is always correct key) mainData: {"username":"jared","server":{"trusted":true,"websocket_ip":"live.stellar.org","websocket_port":9001,"websocket_ssl":false},"gateways":{}} keychainData: {"authToken":"jLOpXT2Ja5s/pjZD0fL1vDw9ASLHYTspqI1FjvtRotM=","updateToken":"5BOutxvJQblinjfRKl2Gb/lAOYRoJmEDCyyTlwLLlxc=","signingKeys":{"address":"grdCvaWb6VXRdF6k1osi1LTUqjCyocK1m","secret":"sfR5yFoFqFFV5Em27DL7y2DihNyvPTVS43q7r7KJYHY98ERaLeq","secretKey":"JLBApQUe4QAsQkiaUOkJ94wgtMMmiyzcxP+DeFPynKnuxJAEX3ifUYzoxeEdeQLIXSZ0A6XUBJFktUdwIh+pOg==","publicKey":"7sSQBF94n1GM6MXhHXkCyF0mdAOl1ASRZLVHcCIfqTo="}} recoveryCode: no */ var express = require('express'); var bodyParser = require('body-parser'); var app = express(); app.use(bodyParser.json()); app.get('/v2/kdf_params', function(req, res) { res.status(200).send({ algorithm: 'scrypt', bits: 256, n: Math.pow(2,12), r: 8, p: 1, }); }); app.post('/v2/wallets/show_login_params', function(req, res) { switch (req.body.username) { case 'bartek@stellar.org': res.status(200).send({ username: "bartek@stellar.org", salt: "z4iAoiI1wXmZVjBHuYbiGg==", kdfParams: "{\"algorithm\":\"scrypt\",\"bits\":256,\"n\":4096,\"r\":8,\"p\":1}", totpRequired: false }); break; case 'jared@stellar.org': res.status(200).send({ username: "jared@stellar.org", salt: "4+CK44DKMPVSQBOnBg66CQ==", kdfParams: "{\"algorithm\":\"scrypt\",\"bits\":256,\"n\":4096,\"r\":8,\"p\":1}", totpRequired: true }); break; default: res.status(404).send({ "status": "fail", "code": "not_found" }); } }); app.post('/v2/wallets/show', function(req, res) { if (req.body.username === 'bartek@stellar.org' && req.body.walletId === '5wA25amh0hEaIaslzHngz6Ow2WuZmmvSmy66atdT588=') { res.status(200).send({ lockVersion: 0, mainData: "eyJJViI6InE3cThjNnE5VFdLYjBqZ3ciLCJjaXBoZXJUZXh0IjoiYTdHQ05vS092QVpabkNCQ0JOakRlS3B0SnJhUkQwY3lEeTN6eWZ5TXhGOUYydExQY2pzN3Y5UzJySkR2bW5FNDlOOFNvVVptN25Kc0FFbXE4QXZjRkEyU3c4YncreGZPWHZXYkwwV2ZpcXRHRnJ3eHpLWTdiMHFUZ2Y5Y0hBWkdXNDNpVjY0VmVRK1J6Nkw5NmlmVGtqRkR3ZGhhRUt3YldoejZVSTYxb2tHN3BQN1RBWlErdjJPNnh0dWMiLCJjaXBoZXJOYW1lIjoiYWVzIiwibW9kZU5hbWUiOiJnY20ifQ==", keychainData:"eyJJViI6IjBFVURINGRLa0FId2hoVnAiLCJjaXBoZXJUZXh0IjoiOFlYdTg3RnR3aHlvYzFtN3ZsTUZTRGgxNjlsb1REZklXMVNHdCtoVDM2bWtzU2FCWWN3dlhvcjFCaW1jNVRXSU5VdjZQTW5yWTBwbDlHRC92TmJGTnkxdGo5Ukk1aGlnRHhPR0JYdlhXY3pZR3hGaDhhVmNINlE0by9VdUdLMWtNYzVRaDdCek1oWG4vdXlvMmxvNGJQWGIxVnFocm5uMjBFOTgvS0UyZ1pGbXd3U05yWXBVaHhhMld4M1prWlNMSlRuNTM3NmFrUHYwU29GRW1DT2VaQ2RsL2dtRk1pRUFwK0lsVytZNnd1Vk5GMUdrdWYyRFpXMkdkalo5OEQ0OFhUc2RIWnVXSFVnUjhsZVRaTWtBMW14UTZBRlROWUp1MGE0RkNhWDh2ZFBKR1BrYnd0bHQ4OXRtZFhiZUMzVDVncktqR29qYlpRbTcwd2c2NlB3WmgvSGdORjJZZ01OL204UmVnUUdUT1hBMWFRWElXUXZXQWs3bHpJS3RuYVo5eGVaT3NnYXRvUnhMbTYycWQ3WnFIY3E5c2RkcDNaaTNkRjlzYVdZcWZ5eUJCL3Z6UmVINkI1RXVJa0xJaWxVWFV4c1ZwVmpVRlJHUUVLL25wUFhRZGNaY2djbGduM295YUE0eVhYNW9IWE9YSFhWS3NnTDBPSEtrYVA5SGNzb1pINnZpUUppdVhnZG02RUxXMlBJMkxBUFU3amoxRU9tRGdBejY2YkllWDRHY3BHQ3hYWDJmUGdNPSIsImNpcGhlck5hbWUiOiJhZXMiLCJtb2RlTmFtZSI6ImdjbSJ9" }); } else if (req.body.username === 'jared@stellar.org' && req.body.walletId === 'zl0+spNHwMMjXV6BBh6Zj2tTLX5b+FsLvMw6/8YWuZQ=' && req.body.totpCode === '000000') { res.status(200).send({ lockVersion: 1, mainData: "eyJJViI6IkpVcjJtalJsN2lmVVFwMmUiLCJjaXBoZXJUZXh0IjoiNHhVWEc2bkJ0S2xjNi9ndzd0SXgrcjFac3RyMXBNZ0hvNGswK2I3WFlrMDdCMjVHWklFOUhwdWlKVXpqV0IyeTZ6NXNCZWhLaHU1cHVkY0gxZ3BxQUZFOVIvRnl1WjdtM0J1WHVJazhYSDYwKzJVNGNPenpza1pnZm9lQjZQenN1TWlzNlUwVmRKKzFuSWk5SHZiallMZkg2V01DUCtIQ08wQ3YyV0l0VW9mUXZoR2xhWWU3WWxSOE9OST0iLCJjaXBoZXJOYW1lIjoiYWVzIiwibW9kZU5hbWUiOiJnY20ifQ==", keychainData: "eyJJViI6InVuVVNoTHI0TlpabnNjZk4iLCJjaXBoZXJUZXh0IjoiSWFOSVViMmJBRDNNc3BjZWU4QjFGbEw3WlV4S2YvSUU2aWlmQ1FqMVB3ZDFQaW5HUkptYzlHb1J2dDY1MVJGQ2c3cm05bnl2QW1KNnkvcndraXV1M1FaWGNwb3dMUTVaNXphM0MvNE9lN3pzd3pnK1ppOHAwYzhTNUhjcTY3YzNsSlBoVjh5UGh4Ym1nQ2xKNkRvRFdCRzVDMk1zRmd0U0JYV0MrUVZhdWRvRitkUExISmtyUi9UclNuMHIxOW8vNlQvME5nc1gzTDArZGlkTDh2QlZYb2xkdi90MXEzMFlQbVB1Z2ZCNVhaWUhCc1F5Q2tnVlJCbmNLejVreG0wZGJ3SHhiVDJIVnZocE0vaXpQSG42a2F1L3ZGUHQvbEdlbkZxem50S1JLN0VCRFRoSTk5eExjOEVnenhibVhCcU41ZmxrbnBQeHhiU3dNK0daL0hMejdtUmdvM0JycTdSclBNb29VOFM5S0JIZi9pRVlTQWdBbndjTVpWNkVrdnk0WjZUWVNoQ21OVkpvSlFPMnhPQVlyV3ZYVU9DQ3cveU9mdTZKZEMxMFNRTDEwSEtMNW5BSkQraVJYYlJ3UzRPdnhnckNHTUd5bURLUzg4RkNJUVl3Y3dtK1B5UWpmY0poU3hlTC9pR0NZdzBXT0xtb3paS2pHWnFFbXdjZ3ptSkVDOXk1QTBmU2JyKzFhT2hTR0p5RFBodHNaOGp2TDdsd3RqODZQUllnSHYwbzEveVEyU1JlZ2c9PSIsImNpcGhlck5hbWUiOiJhZXMiLCJtb2RlTmFtZSI6ImdjbSJ9" }); } else { res.status(403).send({status: "fail", code: "forbidden"}); } }); app.post('/v2/wallets/create', function(req, res) { if (req.body.username === 'new_user@stellar.org') { res.status(200).send({"status" : "success", "newLockVersion": 0}); } else { // Reject all other usernames res.status(400).send({"status": "fail", field:"username", code:"already_taken"}); } }); app.post('/v2/wallets/update', function(req, res) { res.status(200).send({"status" : "success", "newLockVersion": 0}); }); app.post('/v2/totp/enable', function(req, res) { if (req.body.totpCode === '000000') { res.status(200).send({"status":"success","newLockVersion":1}); } else { // Reject all other codes as invalid res.status(400).send({"status":"fail","code":"invalid_totp_code"}); } }); app.post('/v2/totp/disable', function(req, res) { if (req.body.totpCode === '000000') { res.status(200).send({"status":"success","newLockVersion":1}); } else { // Reject all other codes as invalid res.status(400).send({"status":"fail","code":"invalid_totp_code"}); } }); app.post('/v2/totp/disable_lost_device', function(req, res) { res.send({ "status": "success" }); }); app.post('/v2/wallets/recovery/enable', function(req, res) { res.status(200).send({"status" : "success", "newLockVersion": 1}); }); app.post('/v2/wallets/recovery/show', function(req, res) { if (req.body.username === 'bartek@stellar.org' && req.body.recoveryId === '59d2b0de2cc2bcd00d3fdea2ad3653db8177c473') { res.status(200).send({status: 'success', recoveryData: 'eyJJViI6InJGRmRaK0xvLzlYVEYwTWEiLCJjaXBoZXJUZXh0IjoiTmExVWw0SWgvMUZZNm9Vb2EyUGlzdExlTFFGY1piK2YrNnZVSGliRDJEUGRSMVF3dGtTK0ovcENtcDVrYkxnU0ovU3N4dEx2VElsSGNwNzIiLCJjaXBoZXJOYW1lIjoiYWVzIiwibW9kZU5hbWUiOiJnY20ifQ=='}) } else { res.status(403).send({ "status": "fail", "code": "forbidden" }); } }); app.use(express.static(__dirname + '/../')); var server = app.listen(process.env.ZUUL_PORT || 3000, function() { console.log('Mock server listening on port %d', server.address().port); }); module.exports = server;