test(api): update rpc mock api
This commit is contained in:
parent
2fb5d2683d
commit
2e501e98ab
|
@ -6,6 +6,8 @@ import createTestServer from 'create-test-server';
|
|||
|
||||
const transactions = [];
|
||||
|
||||
const sleep = (time: number) => new Promise(resolve => setTimeout(resolve, time));
|
||||
|
||||
createTestServer({
|
||||
httpPort: '18232',
|
||||
}).then(async (server) => {
|
||||
|
@ -15,12 +17,13 @@ createTestServer({
|
|||
res.send('Zcash RPC');
|
||||
});
|
||||
|
||||
server.post('/', (req, res) => {
|
||||
server.post('/', async (req, res) => {
|
||||
const { method } = req.body;
|
||||
|
||||
switch (method) {
|
||||
case 'getinfo':
|
||||
return res.send({ result: { version: 1.0 } });
|
||||
sleep(1500).then(() => res.send({ result: { version: 1.0 } }));
|
||||
break;
|
||||
case 'getblockchaininfo':
|
||||
return res.send({ result: { verificationprogress: 0.5 } });
|
||||
case 'z_gettotalbalance':
|
||||
|
@ -29,9 +32,7 @@ createTestServer({
|
|||
});
|
||||
case 'z_listaddresses':
|
||||
return res.send({
|
||||
result: [
|
||||
'zs1z7rejlpsa98s2rrrfkwmaxu53e4ue0ulcrw0h4x5g8jl04tak0d3mm47vdtahatqrlkngh9sly',
|
||||
],
|
||||
result: ['zs1z7rejlpsa98s2rrrfkwmaxu53e4ue0ulcrw0h4x5g8jl04tak0d3mm47vdtahatqrlkngh9sly'],
|
||||
});
|
||||
case 'getaddressesbyaccount':
|
||||
return res.send({
|
||||
|
@ -43,31 +44,56 @@ createTestServer({
|
|||
});
|
||||
case 'z_sendmany':
|
||||
// eslint-disable-next-line
|
||||
const [from, [obj], minconf, fee] = req.body.params;
|
||||
sleep(2000).then(() => {
|
||||
const [, [obj], amount, fee] = req.body.params;
|
||||
|
||||
if (obj.address[0] === 'z' || obj.address[0] === 't') {
|
||||
transactions.push({
|
||||
account: '',
|
||||
address: obj.address,
|
||||
category: 'send',
|
||||
amount: obj.amount,
|
||||
vout: 0,
|
||||
fee,
|
||||
confirmations: 10,
|
||||
blockhash: 20,
|
||||
blockindex: 10,
|
||||
txid: `operation-id-${transactions.length + 1}`,
|
||||
time: Date.now(),
|
||||
timereceived: Date.now(),
|
||||
comment: '',
|
||||
otheraccount: '',
|
||||
size: 10,
|
||||
});
|
||||
if ((obj.address[0] === 'z' || obj.address[0] === 't') && amount > 0) {
|
||||
transactions.push({
|
||||
account: '',
|
||||
address: obj.address,
|
||||
category: 'send',
|
||||
amount: obj.amount,
|
||||
vout: 0,
|
||||
fee,
|
||||
confirmations: 10,
|
||||
blockhash: 20,
|
||||
blockindex: 10,
|
||||
txid: `operation-id-${transactions.length + 1}`,
|
||||
time: Date.now(),
|
||||
timereceived: Date.now(),
|
||||
comment: '',
|
||||
otheraccount: '',
|
||||
size: 10,
|
||||
});
|
||||
|
||||
return res.send({ result: 'operation-id-1' });
|
||||
return res.send({ result: 'operation-id-1' });
|
||||
}
|
||||
|
||||
return res.status(500).send({ error: { message: 'Invalid address!' } });
|
||||
});
|
||||
break;
|
||||
case 'z_validateaddress':
|
||||
// eslint-disable-next-line
|
||||
const [zAd] = req.body.params;
|
||||
|
||||
if (zAd[0] === 'z' || zAd[0] === 't') {
|
||||
return res.send({ result: { isvalid: true } });
|
||||
}
|
||||
|
||||
return res.status(500).send({ error: { message: 'Invalid address!' } });
|
||||
return res.send({ result: { isvalid: false } });
|
||||
case 'validateaddress':
|
||||
// eslint-disable-next-line
|
||||
const [tAd] = req.body.params;
|
||||
|
||||
if (tAd[0] === 'z' || tAd[0] === 't') {
|
||||
return res.send({ result: { isvalid: true } });
|
||||
}
|
||||
|
||||
return res.send({ result: { isvalid: false } });
|
||||
case 'z_getoperationstatus':
|
||||
return res.send({
|
||||
result: [{ id: 'operation-id-1', status: 'success', result: { txid: 'txid-1' } }],
|
||||
});
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue