Implement debug.stringify service (#125)

This commit is contained in:
Pavel 2022-02-17 14:01:12 +03:00 committed by GitHub
parent 25f63f0b0d
commit 5cb4c8974f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 33 additions and 0 deletions

View File

@ -5,6 +5,18 @@ import { KeyPair } from '../../internal/KeyPair';
import { Sig, defaultSigGuard, allowServiceFn } from '../../internal/builtins/Sig';
import { toUint8Array } from 'js-base64';
const a10b20 = `{
"a": 10,
"b": 20
}`;
const oneTwoThreeFour = `[
1,
2,
3,
4
]`;
describe('Tests for default handler', () => {
// prettier-ignore
each`
@ -48,6 +60,10 @@ describe('Tests for default handler', () => {
${'peer'} | ${'timeout'} | ${[200, ['test']]} | ${0} | ${['test']}}
${'peer'} | ${'timeout'} | ${[]} | ${1} | ${'timeout accepts exactly two arguments: timeout duration in ms and a message string'}}
${'peer'} | ${'timeout'} | ${[200, 'test', 1]} | ${1} | ${'timeout accepts exactly two arguments: timeout duration in ms and a message string'}}
${'debug'} | ${'stringify'} | ${[]} | ${0} | ${'"<empty argument list>"'}}
${'debug'} | ${'stringify'} | ${[{a: 10, b: 20}]} | ${0} | ${a10b20}}
${'debug'} | ${'stringify'} | ${[1, 2, 3, 4]} | ${0} | ${oneTwoThreeFour}}
`.test(
//

View File

@ -18,6 +18,7 @@ import { CallServiceResult } from '@fluencelabs/avm-runner-interface';
import { encode, decode } from 'bs58';
import { sha256 } from 'multiformats/hashes/sha2';
import { ResultCodes } from '../commonTypes';
import { jsonify } from '../utils'
import Buffer from '../Buffer';
const success = (result: any): CallServiceResult => {
@ -128,6 +129,22 @@ export const builtInServices = {
},
},
debug: {
stringify: (req) => {
let out;
if (req.args.length === 0) {
out = '<empty argument list>';
} else if (req.args.length === 1) {
out = req.args[0];
} else {
out = req.args;
}
return success(jsonify(out));
},
},
peer: {
timeout: (req) => {
if (req.args.length !== 2) {