mirror of
https://github.com/fluencelabs/eip712-validation-node
synced 2025-05-21 12:11:21 +00:00
cleanup
This commit is contained in:
parent
f5ae7af91e
commit
e2d774640e
43
air-scripts/demo_validation.get_all_validations.air
Normal file
43
air-scripts/demo_validation.get_all_validations.air
Normal file
@ -0,0 +1,43 @@
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
(call %init_peer_id% ("getDataSrv" "node") [] node)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "relay") [] relay)
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(call relay ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(call node ("DataProvider" "get_records") [] res)
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(call relay ("op" "noop") [])
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
)
|
||||
)
|
||||
(call relay ("op" "noop") [])
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(call %init_peer_id% ("callbackSrv" "response") [res])
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
|
||||
)
|
46
air-scripts/demo_validation.get_record.air
Normal file
46
air-scripts/demo_validation.get_record.air
Normal file
@ -0,0 +1,46 @@
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
(call %init_peer_id% ("getDataSrv" "snapshot_id") [] snapshot_id)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "node") [] node)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "relay") [] relay)
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(call relay ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(call node ("DataProvider" "get_record") [snapshot_id] res)
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(call relay ("op" "noop") [])
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
)
|
||||
)
|
||||
(call relay ("op" "noop") [])
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(call %init_peer_id% ("callbackSrv" "response") [res])
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
|
||||
)
|
43
air-scripts/demo_validation.get_record_count.air
Normal file
43
air-scripts/demo_validation.get_record_count.air
Normal file
@ -0,0 +1,43 @@
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
(call %init_peer_id% ("getDataSrv" "node") [] node)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "relay") [] relay)
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(call relay ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(call node ("DataProvider" "get_record_count") [] res)
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(call relay ("op" "noop") [])
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
)
|
||||
)
|
||||
(call relay ("op" "noop") [])
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(call %init_peer_id% ("callbackSrv" "response") [res])
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
|
||||
)
|
43
air-scripts/demo_validation.get_records.air
Normal file
43
air-scripts/demo_validation.get_records.air
Normal file
@ -0,0 +1,43 @@
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
(call %init_peer_id% ("getDataSrv" "node") [] node)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "relay") [] relay)
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(call relay ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(call node ("DataProvider" "get_records") [] res)
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(call relay ("op" "noop") [])
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
)
|
||||
)
|
||||
(call relay ("op" "noop") [])
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(call %init_peer_id% ("callbackSrv" "response") [res])
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
|
||||
)
|
46
air-scripts/demo_validation.get_validation.air
Normal file
46
air-scripts/demo_validation.get_validation.air
Normal file
@ -0,0 +1,46 @@
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
(call %init_peer_id% ("getDataSrv" "snapshot_id") [] snapshot_id)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "node") [] node)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "relay") [] relay)
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(call relay ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(call node ("DataProvider" "get_record") [snapshot_id] res)
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(call relay ("op" "noop") [])
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
)
|
||||
)
|
||||
(call relay ("op" "noop") [])
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(call %init_peer_id% ("callbackSrv" "response") [res])
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
|
||||
)
|
400
air-scripts/demo_validation.ts
Normal file
400
air-scripts/demo_validation.ts
Normal file
@ -0,0 +1,400 @@
|
||||
/**
|
||||
*
|
||||
* This file is auto-generated. Do not edit manually: changes may be erased.
|
||||
* Generated by Aqua compiler: https://github.com/fluencelabs/aqua/.
|
||||
* If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues
|
||||
* Aqua version: 0.4.0-235
|
||||
*
|
||||
*/
|
||||
import { Fluence, FluencePeer } from '@fluencelabs/fluence';
|
||||
import {
|
||||
CallParams,
|
||||
callFunction,
|
||||
registerService,
|
||||
} from '@fluencelabs/fluence/dist/internal/compilerSupport/v2';
|
||||
|
||||
|
||||
// Services
|
||||
|
||||
export interface ProVoValidationDef {
|
||||
eip712_validation_string: (eip_str: string, peer_id: string, callParams: CallParams<'eip_str' | 'peer_id'>) => string | Promise<string>;
|
||||
eip712_validation_url: (eip_str: string, peer_id: string, callParams: CallParams<'eip_str' | 'peer_id'>) => string | Promise<string>;
|
||||
}
|
||||
export function registerProVoValidation(service: ProVoValidationDef): void;
|
||||
export function registerProVoValidation(serviceId: string, service: ProVoValidationDef): void;
|
||||
export function registerProVoValidation(peer: FluencePeer, service: ProVoValidationDef): void;
|
||||
export function registerProVoValidation(peer: FluencePeer, serviceId: string, service: ProVoValidationDef): void;
|
||||
|
||||
|
||||
export function registerProVoValidation(...args: any) {
|
||||
registerService(
|
||||
args,
|
||||
{
|
||||
"defaultServiceId" : "EIPValidator",
|
||||
"functions" : [
|
||||
{
|
||||
"functionName" : "eip712_validation_string",
|
||||
"argDefs" : [
|
||||
{
|
||||
"name" : "eip_str",
|
||||
"argType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name" : "peer_id",
|
||||
"argType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
}
|
||||
],
|
||||
"returnType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
},
|
||||
{
|
||||
"functionName" : "eip712_validation_url",
|
||||
"argDefs" : [
|
||||
{
|
||||
"name" : "eip_str",
|
||||
"argType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name" : "peer_id",
|
||||
"argType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
}
|
||||
],
|
||||
"returnType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
|
||||
export interface DataProviderDef {
|
||||
get_record: (snapshot_id: number, callParams: CallParams<'snapshot_id'>) => { snapshot_id: number; } | Promise<{ snapshot_id: number; }>;
|
||||
get_records: (callParams: CallParams<null>) => { snapshot_id: number; }[] | Promise<{ snapshot_id: number; }[]>;
|
||||
}
|
||||
export function registerDataProvider(service: DataProviderDef): void;
|
||||
export function registerDataProvider(serviceId: string, service: DataProviderDef): void;
|
||||
export function registerDataProvider(peer: FluencePeer, service: DataProviderDef): void;
|
||||
export function registerDataProvider(peer: FluencePeer, serviceId: string, service: DataProviderDef): void;
|
||||
|
||||
|
||||
export function registerDataProvider(...args: any) {
|
||||
registerService(
|
||||
args,
|
||||
{
|
||||
"defaultServiceId" : "DataProvider",
|
||||
"functions" : [
|
||||
{
|
||||
"functionName" : "get_record",
|
||||
"argDefs" : [
|
||||
{
|
||||
"name" : "snapshot_id",
|
||||
"argType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
}
|
||||
],
|
||||
"returnType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
},
|
||||
{
|
||||
"functionName" : "get_records",
|
||||
"argDefs" : [
|
||||
],
|
||||
"returnType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
// Functions
|
||||
|
||||
|
||||
export function validate(eip712_url: string, node: string, relay: string, config?: {ttl?: number}): Promise<string>;
|
||||
export function validate(peer: FluencePeer, eip712_url: string, node: string, relay: string, config?: {ttl?: number}): Promise<string>;
|
||||
export function validate(...args: any) {
|
||||
|
||||
let script = `
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
(call %init_peer_id% ("getDataSrv" "eip712_url") [] eip712_url)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "node") [] node)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "relay") [] relay)
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(call relay ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(call node ("EIPValidator" "eip712_validation_url") [eip712_url node] res)
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(call relay ("op" "noop") [])
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
)
|
||||
)
|
||||
(call relay ("op" "noop") [])
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(call %init_peer_id% ("callbackSrv" "response") [res])
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
|
||||
)
|
||||
`
|
||||
return callFunction(
|
||||
args,
|
||||
{
|
||||
"functionName" : "validate",
|
||||
"returnType" : {
|
||||
"tag" : "primitive"
|
||||
},
|
||||
"argDefs" : [
|
||||
{
|
||||
"name" : "eip712_url",
|
||||
"argType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name" : "node",
|
||||
"argType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name" : "relay",
|
||||
"argType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
}
|
||||
],
|
||||
"names" : {
|
||||
"relay" : "-relay-",
|
||||
"getDataSrv" : "getDataSrv",
|
||||
"callbackSrv" : "callbackSrv",
|
||||
"responseSrv" : "callbackSrv",
|
||||
"responseFnName" : "response",
|
||||
"errorHandlingSrv" : "errorHandlingSrv",
|
||||
"errorFnName" : "error"
|
||||
}
|
||||
},
|
||||
script
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
|
||||
export function get_all_validations(node: string, relay: string, config?: {ttl?: number}): Promise<{ snapshot_id: number; }[]>;
|
||||
export function get_all_validations(peer: FluencePeer, node: string, relay: string, config?: {ttl?: number}): Promise<{ snapshot_id: number; }[]>;
|
||||
export function get_all_validations(...args: any) {
|
||||
|
||||
let script = `
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
(call %init_peer_id% ("getDataSrv" "node") [] node)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "relay") [] relay)
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(call relay ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(call node ("DataProvider" "get_records") [] res)
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(call relay ("op" "noop") [])
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
)
|
||||
)
|
||||
(call relay ("op" "noop") [])
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(call %init_peer_id% ("callbackSrv" "response") [res])
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
|
||||
)
|
||||
`
|
||||
return callFunction(
|
||||
args,
|
||||
{
|
||||
"functionName" : "get_all_validations",
|
||||
"returnType" : {
|
||||
"tag" : "primitive"
|
||||
},
|
||||
"argDefs" : [
|
||||
{
|
||||
"name" : "node",
|
||||
"argType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name" : "relay",
|
||||
"argType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
}
|
||||
],
|
||||
"names" : {
|
||||
"relay" : "-relay-",
|
||||
"getDataSrv" : "getDataSrv",
|
||||
"callbackSrv" : "callbackSrv",
|
||||
"responseSrv" : "callbackSrv",
|
||||
"responseFnName" : "response",
|
||||
"errorHandlingSrv" : "errorHandlingSrv",
|
||||
"errorFnName" : "error"
|
||||
}
|
||||
},
|
||||
script
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
export type Get_validationResult = { snapshot_id: number; }
|
||||
export function get_validation(snapshot_id: number, node: string, relay: string, config?: {ttl?: number}): Promise<Get_validationResult>;
|
||||
export function get_validation(peer: FluencePeer, snapshot_id: number, node: string, relay: string, config?: {ttl?: number}): Promise<Get_validationResult>;
|
||||
export function get_validation(...args: any) {
|
||||
|
||||
let script = `
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
(call %init_peer_id% ("getDataSrv" "snapshot_id") [] snapshot_id)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "node") [] node)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "relay") [] relay)
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(call relay ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(call node ("DataProvider" "get_record") [snapshot_id] res)
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(call relay ("op" "noop") [])
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
)
|
||||
)
|
||||
(call relay ("op" "noop") [])
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(call %init_peer_id% ("callbackSrv" "response") [res])
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
|
||||
)
|
||||
`
|
||||
return callFunction(
|
||||
args,
|
||||
{
|
||||
"functionName" : "get_validation",
|
||||
"returnType" : {
|
||||
"tag" : "primitive"
|
||||
},
|
||||
"argDefs" : [
|
||||
{
|
||||
"name" : "snapshot_id",
|
||||
"argType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name" : "node",
|
||||
"argType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name" : "relay",
|
||||
"argType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
}
|
||||
],
|
||||
"names" : {
|
||||
"relay" : "-relay-",
|
||||
"getDataSrv" : "getDataSrv",
|
||||
"callbackSrv" : "callbackSrv",
|
||||
"responseSrv" : "callbackSrv",
|
||||
"responseFnName" : "response",
|
||||
"errorHandlingSrv" : "errorHandlingSrv",
|
||||
"errorFnName" : "error"
|
||||
}
|
||||
},
|
||||
script
|
||||
)
|
||||
}
|
46
air-scripts/demo_validation.validate.air
Normal file
46
air-scripts/demo_validation.validate.air
Normal file
@ -0,0 +1,46 @@
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
(call %init_peer_id% ("getDataSrv" "eip712_url") [] eip712_url)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "node") [] node)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "relay") [] relay)
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(call relay ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(call node ("EIPValidator" "eip712_validation_url") [eip712_url node] res)
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(call relay ("op" "noop") [])
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
)
|
||||
)
|
||||
(call relay ("op" "noop") [])
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(call %init_peer_id% ("callbackSrv" "response") [res])
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
|
||||
)
|
43
air-scripts/snapshot.get_count.air
Normal file
43
air-scripts/snapshot.get_count.air
Normal file
@ -0,0 +1,43 @@
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
(call %init_peer_id% ("getDataSrv" "relay") [] relay)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "peer") [] peer)
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(call relay ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(call peer ("snapshot" "get_record_count") [] result)
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(call relay ("op" "noop") [])
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
)
|
||||
)
|
||||
(call relay ("op" "noop") [])
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(call %init_peer_id% ("callbackSrv" "response") [result])
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
|
||||
)
|
46
air-scripts/snapshot.get_record.air
Normal file
46
air-scripts/snapshot.get_record.air
Normal file
@ -0,0 +1,46 @@
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
(call %init_peer_id% ("getDataSrv" "relay") [] relay)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "peer") [] peer)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "snapshot_id") [] snapshot_id)
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(call relay ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(call peer ("snapshot" "get_record") [snapshot_id] result)
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(call relay ("op" "noop") [])
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
)
|
||||
)
|
||||
(call relay ("op" "noop") [])
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(call %init_peer_id% ("callbackSrv" "response") [result])
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
|
||||
)
|
43
air-scripts/snapshot.get_records.air
Normal file
43
air-scripts/snapshot.get_records.air
Normal file
@ -0,0 +1,43 @@
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
(call %init_peer_id% ("getDataSrv" "relay") [] relay)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "peer") [] peer)
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(call relay ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(call peer ("snapshot" "get_records") [] result)
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(call relay ("op" "noop") [])
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
)
|
||||
)
|
||||
(call relay ("op" "noop") [])
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(call %init_peer_id% ("callbackSrv" "response") [result])
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
|
||||
)
|
46
air-scripts/snapshot.validate.air
Normal file
46
air-scripts/snapshot.validate.air
Normal file
@ -0,0 +1,46 @@
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
(call %init_peer_id% ("getDataSrv" "relay") [] relay)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "peer") [] peer)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "eip712_json") [] eip712_json)
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(call relay ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(call peer ("snapshot" "eip712_validation_string") [eip712_json peer] result)
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(call relay ("op" "noop") [])
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
)
|
||||
)
|
||||
(call relay ("op" "noop") [])
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(call %init_peer_id% ("callbackSrv" "response") [result])
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
|
||||
)
|
46
air-scripts/snapshot.validate_from_url.air
Normal file
46
air-scripts/snapshot.validate_from_url.air
Normal file
@ -0,0 +1,46 @@
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
(call %init_peer_id% ("getDataSrv" "relay") [] relay)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "peer") [] peer)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "eip712_url") [] eip712_url)
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(call relay ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(call peer ("snapshot" "eip712_validation_url") [eip712_url peer] result)
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(call relay ("op" "noop") [])
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
)
|
||||
)
|
||||
(call relay ("op" "noop") [])
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(call %init_peer_id% ("callbackSrv" "response") [result])
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
|
||||
)
|
@ -1,32 +1,52 @@
|
||||
data PVResponse:
|
||||
data DBRecord:
|
||||
snapshot_id: u64
|
||||
event_address: string
|
||||
event_signature: string
|
||||
eip712_doc: string
|
||||
peer_id: string
|
||||
timestamp: u64
|
||||
eip_validation: bool
|
||||
ts_validation: bool
|
||||
signed_response: string
|
||||
|
||||
data DBResponse:
|
||||
snapshot_id: u64
|
||||
data DBResult:
|
||||
stderr: string
|
||||
stdout: []DBRecord
|
||||
|
||||
service ProVoValidation("EIPValidator"):
|
||||
service EIPValidator("EIPValidator"):
|
||||
eip712_validation_string(eip_str: string, peer_id: string) -> string
|
||||
eip712_validation_url(eip_str: string, peer_id: string) -> string
|
||||
|
||||
service DataProvider("DataProvider"):
|
||||
get_records() -> []DBResponse
|
||||
get_record(snapshot_id: u64) -> DBResponse
|
||||
get_records() -> DBResult
|
||||
get_record(snapshot_id: u64) -> DBResult
|
||||
get_record_count() -> u64
|
||||
clear_table(password: string) -> DBResult
|
||||
|
||||
|
||||
func validate(eip712_url: string, node: string, relay:string) -> string:
|
||||
on node via relay:
|
||||
res <- ProVoValidation.eip712_validation_url(eip712_url, node)
|
||||
res <- EIPValidator.eip712_validation_url(eip712_url, node)
|
||||
<- res
|
||||
|
||||
func get_all_validations(node: string, relay:string) -> []DBResponse:
|
||||
func get_records(node: string, relay:string) -> DBResult:
|
||||
on node via relay:
|
||||
res <- DataProvider.get_records()
|
||||
<- res
|
||||
|
||||
func get_validation(snapshot_id: u64, node: string, relay:string) -> DBResponse:
|
||||
func get_record(snapshot_id: u64, node: string, relay:string) -> DBResult:
|
||||
on node via relay:
|
||||
res <- DataProvider.get_record(snapshot_id)
|
||||
<- res
|
||||
<- res
|
||||
|
||||
func get_record_count(node: string, relay:string) -> u64:
|
||||
on node via relay:
|
||||
res <- DataProvider.get_record_count()
|
||||
<- res
|
||||
|
||||
func delete_rows(password: string, node: string, relay:string) -> DBResult:
|
||||
on node via relay:
|
||||
result <- DataProvider.clear_table(password)
|
||||
<- result
|
||||
|
||||
|
||||
|
@ -27,7 +27,8 @@ service EIPValidator("snapshot"):
|
||||
service DataProvider("snapshot"):
|
||||
get_records() -> DBResult
|
||||
get_record(snapshot_id: u64) -> DBResult
|
||||
|
||||
get_record_count() -> u64
|
||||
clear_table(password: string) -> DBResult
|
||||
|
||||
func validate(relay: string, peer:string, eip712_json: string) -> string:
|
||||
on peer via relay:
|
||||
@ -51,4 +52,12 @@ func get_records(relay:string, peer:string) -> DBResult:
|
||||
result <- DataProvider.get_records()
|
||||
<- result
|
||||
|
||||
func get_count(relay:string, peer:string) -> u64:
|
||||
on peer via relay:
|
||||
result <- DataProvider.get_record_count()
|
||||
<- result
|
||||
|
||||
func delete_rows(passwd: string, peer: string, relay:string) -> DBResult:
|
||||
on peer via relay:
|
||||
result <- DataProvider.clear_table(passwd)
|
||||
<- result
|
@ -16,17 +16,17 @@ import {
|
||||
|
||||
// Services
|
||||
|
||||
export interface ProVoValidationDef {
|
||||
export interface EIPValidatorDef {
|
||||
eip712_validation_string: (eip_str: string, peer_id: string, callParams: CallParams<'eip_str' | 'peer_id'>) => string | Promise<string>;
|
||||
eip712_validation_url: (eip_str: string, peer_id: string, callParams: CallParams<'eip_str' | 'peer_id'>) => string | Promise<string>;
|
||||
}
|
||||
export function registerProVoValidation(service: ProVoValidationDef): void;
|
||||
export function registerProVoValidation(serviceId: string, service: ProVoValidationDef): void;
|
||||
export function registerProVoValidation(peer: FluencePeer, service: ProVoValidationDef): void;
|
||||
export function registerProVoValidation(peer: FluencePeer, serviceId: string, service: ProVoValidationDef): void;
|
||||
export function registerEIPValidator(service: EIPValidatorDef): void;
|
||||
export function registerEIPValidator(serviceId: string, service: EIPValidatorDef): void;
|
||||
export function registerEIPValidator(peer: FluencePeer, service: EIPValidatorDef): void;
|
||||
export function registerEIPValidator(peer: FluencePeer, serviceId: string, service: EIPValidatorDef): void;
|
||||
|
||||
|
||||
export function registerProVoValidation(...args: any) {
|
||||
export function registerEIPValidator(...args: any) {
|
||||
registerService(
|
||||
args,
|
||||
{
|
||||
@ -80,8 +80,10 @@ export function registerProVoValidation(...args: any) {
|
||||
|
||||
|
||||
export interface DataProviderDef {
|
||||
get_record: (snapshot_id: number, callParams: CallParams<'snapshot_id'>) => { snapshot_id: number; } | Promise<{ snapshot_id: number; }>;
|
||||
get_records: (callParams: CallParams<null>) => { snapshot_id: number; }[] | Promise<{ snapshot_id: number; }[]>;
|
||||
clear_table: (password: string, callParams: CallParams<'password'>) => { stderr: string; stdout: { eip712_doc: string; eip_validation: boolean; event_address: string; event_signature: string; peer_id: string; signed_response: string; snapshot_id: number; timestamp: number; ts_validation: boolean; }[]; } | Promise<{ stderr: string; stdout: { eip712_doc: string; eip_validation: boolean; event_address: string; event_signature: string; peer_id: string; signed_response: string; snapshot_id: number; timestamp: number; ts_validation: boolean; }[]; }>;
|
||||
get_record: (snapshot_id: number, callParams: CallParams<'snapshot_id'>) => { stderr: string; stdout: { eip712_doc: string; eip_validation: boolean; event_address: string; event_signature: string; peer_id: string; signed_response: string; snapshot_id: number; timestamp: number; ts_validation: boolean; }[]; } | Promise<{ stderr: string; stdout: { eip712_doc: string; eip_validation: boolean; event_address: string; event_signature: string; peer_id: string; signed_response: string; snapshot_id: number; timestamp: number; ts_validation: boolean; }[]; }>;
|
||||
get_record_count: (callParams: CallParams<null>) => number | Promise<number>;
|
||||
get_records: (callParams: CallParams<null>) => { stderr: string; stdout: { eip712_doc: string; eip_validation: boolean; event_address: string; event_signature: string; peer_id: string; signed_response: string; snapshot_id: number; timestamp: number; ts_validation: boolean; }[]; } | Promise<{ stderr: string; stdout: { eip712_doc: string; eip_validation: boolean; event_address: string; event_signature: string; peer_id: string; signed_response: string; snapshot_id: number; timestamp: number; ts_validation: boolean; }[]; }>;
|
||||
}
|
||||
export function registerDataProvider(service: DataProviderDef): void;
|
||||
export function registerDataProvider(serviceId: string, service: DataProviderDef): void;
|
||||
@ -95,6 +97,20 @@ export function registerDataProvider(...args: any) {
|
||||
{
|
||||
"defaultServiceId" : "DataProvider",
|
||||
"functions" : [
|
||||
{
|
||||
"functionName" : "clear_table",
|
||||
"argDefs" : [
|
||||
{
|
||||
"name" : "password",
|
||||
"argType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
}
|
||||
],
|
||||
"returnType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
},
|
||||
{
|
||||
"functionName" : "get_record",
|
||||
"argDefs" : [
|
||||
@ -109,6 +125,14 @@ export function registerDataProvider(...args: any) {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
},
|
||||
{
|
||||
"functionName" : "get_record_count",
|
||||
"argDefs" : [
|
||||
],
|
||||
"returnType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
},
|
||||
{
|
||||
"functionName" : "get_records",
|
||||
"argDefs" : [
|
||||
@ -124,6 +148,196 @@ export function registerDataProvider(...args: any) {
|
||||
|
||||
// Functions
|
||||
|
||||
export type Delete_rowsResult = { stderr: string; stdout: { eip712_doc: string; eip_validation: boolean; event_address: string; event_signature: string; peer_id: string; signed_response: string; snapshot_id: number; timestamp: number; ts_validation: boolean; }[]; }
|
||||
export function delete_rows(password: string, node: string, relay: string, config?: {ttl?: number}): Promise<Delete_rowsResult>;
|
||||
export function delete_rows(peer: FluencePeer, password: string, node: string, relay: string, config?: {ttl?: number}): Promise<Delete_rowsResult>;
|
||||
export function delete_rows(...args: any) {
|
||||
|
||||
let script = `
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
(call %init_peer_id% ("getDataSrv" "password") [] password)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "node") [] node)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "relay") [] relay)
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(call relay ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(call node ("DataProvider" "clear_table") [password] result)
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(call relay ("op" "noop") [])
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
)
|
||||
)
|
||||
(call relay ("op" "noop") [])
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(call %init_peer_id% ("callbackSrv" "response") [result])
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
|
||||
)
|
||||
`
|
||||
return callFunction(
|
||||
args,
|
||||
{
|
||||
"functionName" : "delete_rows",
|
||||
"returnType" : {
|
||||
"tag" : "primitive"
|
||||
},
|
||||
"argDefs" : [
|
||||
{
|
||||
"name" : "password",
|
||||
"argType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name" : "node",
|
||||
"argType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name" : "relay",
|
||||
"argType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
}
|
||||
],
|
||||
"names" : {
|
||||
"relay" : "-relay-",
|
||||
"getDataSrv" : "getDataSrv",
|
||||
"callbackSrv" : "callbackSrv",
|
||||
"responseSrv" : "callbackSrv",
|
||||
"responseFnName" : "response",
|
||||
"errorHandlingSrv" : "errorHandlingSrv",
|
||||
"errorFnName" : "error"
|
||||
}
|
||||
},
|
||||
script
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
export type Get_recordResult = { stderr: string; stdout: { eip712_doc: string; eip_validation: boolean; event_address: string; event_signature: string; peer_id: string; signed_response: string; snapshot_id: number; timestamp: number; ts_validation: boolean; }[]; }
|
||||
export function get_record(snapshot_id: number, node: string, relay: string, config?: {ttl?: number}): Promise<Get_recordResult>;
|
||||
export function get_record(peer: FluencePeer, snapshot_id: number, node: string, relay: string, config?: {ttl?: number}): Promise<Get_recordResult>;
|
||||
export function get_record(...args: any) {
|
||||
|
||||
let script = `
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
(call %init_peer_id% ("getDataSrv" "snapshot_id") [] snapshot_id)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "node") [] node)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "relay") [] relay)
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(call relay ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(call node ("DataProvider" "get_record") [snapshot_id] res)
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(call relay ("op" "noop") [])
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
)
|
||||
)
|
||||
(call relay ("op" "noop") [])
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(call %init_peer_id% ("callbackSrv" "response") [res])
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
|
||||
)
|
||||
`
|
||||
return callFunction(
|
||||
args,
|
||||
{
|
||||
"functionName" : "get_record",
|
||||
"returnType" : {
|
||||
"tag" : "primitive"
|
||||
},
|
||||
"argDefs" : [
|
||||
{
|
||||
"name" : "snapshot_id",
|
||||
"argType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name" : "node",
|
||||
"argType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name" : "relay",
|
||||
"argType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
}
|
||||
],
|
||||
"names" : {
|
||||
"relay" : "-relay-",
|
||||
"getDataSrv" : "getDataSrv",
|
||||
"callbackSrv" : "callbackSrv",
|
||||
"responseSrv" : "callbackSrv",
|
||||
"responseFnName" : "response",
|
||||
"errorHandlingSrv" : "errorHandlingSrv",
|
||||
"errorFnName" : "error"
|
||||
}
|
||||
},
|
||||
script
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
|
||||
export function validate(eip712_url: string, node: string, relay: string, config?: {ttl?: number}): Promise<string>;
|
||||
export function validate(peer: FluencePeer, eip712_url: string, node: string, relay: string, config?: {ttl?: number}): Promise<string>;
|
||||
@ -220,9 +434,95 @@ export function validate(...args: any) {
|
||||
|
||||
|
||||
|
||||
export function get_all_validations(node: string, relay: string, config?: {ttl?: number}): Promise<{ snapshot_id: number; }[]>;
|
||||
export function get_all_validations(peer: FluencePeer, node: string, relay: string, config?: {ttl?: number}): Promise<{ snapshot_id: number; }[]>;
|
||||
export function get_all_validations(...args: any) {
|
||||
export function get_record_count(node: string, relay: string, config?: {ttl?: number}): Promise<number>;
|
||||
export function get_record_count(peer: FluencePeer, node: string, relay: string, config?: {ttl?: number}): Promise<number>;
|
||||
export function get_record_count(...args: any) {
|
||||
|
||||
let script = `
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
(call %init_peer_id% ("getDataSrv" "node") [] node)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "relay") [] relay)
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(call relay ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(call node ("DataProvider" "get_record_count") [] res)
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(call relay ("op" "noop") [])
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
)
|
||||
)
|
||||
(call relay ("op" "noop") [])
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(call %init_peer_id% ("callbackSrv" "response") [res])
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
|
||||
)
|
||||
`
|
||||
return callFunction(
|
||||
args,
|
||||
{
|
||||
"functionName" : "get_record_count",
|
||||
"returnType" : {
|
||||
"tag" : "primitive"
|
||||
},
|
||||
"argDefs" : [
|
||||
{
|
||||
"name" : "node",
|
||||
"argType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name" : "relay",
|
||||
"argType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
}
|
||||
],
|
||||
"names" : {
|
||||
"relay" : "-relay-",
|
||||
"getDataSrv" : "getDataSrv",
|
||||
"callbackSrv" : "callbackSrv",
|
||||
"responseSrv" : "callbackSrv",
|
||||
"responseFnName" : "response",
|
||||
"errorHandlingSrv" : "errorHandlingSrv",
|
||||
"errorFnName" : "error"
|
||||
}
|
||||
},
|
||||
script
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
export type Get_recordsResult = { stderr: string; stdout: { eip712_doc: string; eip_validation: boolean; event_address: string; event_signature: string; peer_id: string; signed_response: string; snapshot_id: number; timestamp: number; ts_validation: boolean; }[]; }
|
||||
export function get_records(node: string, relay: string, config?: {ttl?: number}): Promise<Get_recordsResult>;
|
||||
export function get_records(peer: FluencePeer, node: string, relay: string, config?: {ttl?: number}): Promise<Get_recordsResult>;
|
||||
export function get_records(...args: any) {
|
||||
|
||||
let script = `
|
||||
(xor
|
||||
@ -272,7 +572,7 @@ export function get_all_validations(...args: any) {
|
||||
return callFunction(
|
||||
args,
|
||||
{
|
||||
"functionName" : "get_all_validations",
|
||||
"functionName" : "get_records",
|
||||
"returnType" : {
|
||||
"tag" : "primitive"
|
||||
},
|
||||
@ -303,98 +603,3 @@ export function get_all_validations(...args: any) {
|
||||
script
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
export type Get_validationResult = { snapshot_id: number; }
|
||||
export function get_validation(snapshot_id: number, node: string, relay: string, config?: {ttl?: number}): Promise<Get_validationResult>;
|
||||
export function get_validation(peer: FluencePeer, snapshot_id: number, node: string, relay: string, config?: {ttl?: number}): Promise<Get_validationResult>;
|
||||
export function get_validation(...args: any) {
|
||||
|
||||
let script = `
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
(call %init_peer_id% ("getDataSrv" "snapshot_id") [] snapshot_id)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "node") [] node)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "relay") [] relay)
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(call relay ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(call node ("DataProvider" "get_record") [snapshot_id] res)
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(call relay ("op" "noop") [])
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
)
|
||||
)
|
||||
(call relay ("op" "noop") [])
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(call %init_peer_id% ("callbackSrv" "response") [res])
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
|
||||
)
|
||||
`
|
||||
return callFunction(
|
||||
args,
|
||||
{
|
||||
"functionName" : "get_validation",
|
||||
"returnType" : {
|
||||
"tag" : "primitive"
|
||||
},
|
||||
"argDefs" : [
|
||||
{
|
||||
"name" : "snapshot_id",
|
||||
"argType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name" : "node",
|
||||
"argType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name" : "relay",
|
||||
"argType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
}
|
||||
],
|
||||
"names" : {
|
||||
"relay" : "-relay-",
|
||||
"getDataSrv" : "getDataSrv",
|
||||
"callbackSrv" : "callbackSrv",
|
||||
"responseSrv" : "callbackSrv",
|
||||
"responseFnName" : "response",
|
||||
"errorHandlingSrv" : "errorHandlingSrv",
|
||||
"errorFnName" : "error"
|
||||
}
|
||||
},
|
||||
script
|
||||
)
|
||||
}
|
||||
|
@ -80,7 +80,9 @@ export function registerEIPValidator(...args: any) {
|
||||
|
||||
|
||||
export interface DataProviderDef {
|
||||
get_record: (snapshot_id: number, callParams: CallParams<'snapshot_id'>) => { stderr: string; stdout: { eip712_doc: string; eip_validation: boolean; event_address: string; event_signature: string; peer_id: string; signed_response: string; snapshot_id: number; timestamp: number; ts_validation: boolean; }[]; } | Promise<{ stderr: string; stdout: { eip712_doc: string; eip_validation: boolean; event_address: string; event_signature: string; peer_id: string; signed_response: string; snapshot_id: number; timestamp: number; ts_validation: boolean; }[]; }>;
|
||||
clear_table: (password: string, callParams: CallParams<'password'>) => { stderr: string; stdout: { eip712_doc: string; eip_validation: boolean; event_address: string; event_signature: string; peer_id: string; signed_response: string; snapshot_id: number; timestamp: number; ts_validation: boolean; }[]; } | Promise<{ stderr: string; stdout: { eip712_doc: string; eip_validation: boolean; event_address: string; event_signature: string; peer_id: string; signed_response: string; snapshot_id: number; timestamp: number; ts_validation: boolean; }[]; }>;
|
||||
get_record: (snapshot_id: number, callParams: CallParams<'snapshot_id'>) => { stderr: string; stdout: { eip712_doc: string; eip_validation: boolean; event_address: string; event_signature: string; peer_id: string; signed_response: string; snapshot_id: number; timestamp: number; ts_validation: boolean; }[]; } | Promise<{ stderr: string; stdout: { eip712_doc: string; eip_validation: boolean; event_address: string; event_signature: string; peer_id: string; signed_response: string; snapshot_id: number; timestamp: number; ts_validation: boolean; }[]; }>;
|
||||
get_record_count: (callParams: CallParams<null>) => number | Promise<number>;
|
||||
get_records: (callParams: CallParams<null>) => { stderr: string; stdout: { eip712_doc: string; eip_validation: boolean; event_address: string; event_signature: string; peer_id: string; signed_response: string; snapshot_id: number; timestamp: number; ts_validation: boolean; }[]; } | Promise<{ stderr: string; stdout: { eip712_doc: string; eip_validation: boolean; event_address: string; event_signature: string; peer_id: string; signed_response: string; snapshot_id: number; timestamp: number; ts_validation: boolean; }[]; }>;
|
||||
}
|
||||
export function registerDataProvider(service: DataProviderDef): void;
|
||||
@ -95,6 +97,20 @@ export function registerDataProvider(...args: any) {
|
||||
{
|
||||
"defaultServiceId" : "snapshot",
|
||||
"functions" : [
|
||||
{
|
||||
"functionName" : "clear_table",
|
||||
"argDefs" : [
|
||||
{
|
||||
"name" : "password",
|
||||
"argType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
}
|
||||
],
|
||||
"returnType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
},
|
||||
{
|
||||
"functionName" : "get_record",
|
||||
"argDefs" : [
|
||||
@ -109,6 +125,14 @@ export function registerDataProvider(...args: any) {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
},
|
||||
{
|
||||
"functionName" : "get_record_count",
|
||||
"argDefs" : [
|
||||
],
|
||||
"returnType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
},
|
||||
{
|
||||
"functionName" : "get_records",
|
||||
"argDefs" : [
|
||||
@ -124,10 +148,10 @@ export function registerDataProvider(...args: any) {
|
||||
|
||||
// Functions
|
||||
|
||||
|
||||
export function validate(relay: string, peer_: string, eip712_json: string, config?: {ttl?: number}): Promise<string>;
|
||||
export function validate(peer: FluencePeer, relay: string, peer_: string, eip712_json: string, config?: {ttl?: number}): Promise<string>;
|
||||
export function validate(...args: any) {
|
||||
export type Delete_rowsResult = { stderr: string; stdout: { eip712_doc: string; eip_validation: boolean; event_address: string; event_signature: string; peer_id: string; signed_response: string; snapshot_id: number; timestamp: number; ts_validation: boolean; }[]; }
|
||||
export function delete_rows(passwd: string, peer_: string, relay: string, config?: {ttl?: number}): Promise<Delete_rowsResult>;
|
||||
export function delete_rows(peer: FluencePeer, passwd: string, peer_: string, relay: string, config?: {ttl?: number}): Promise<Delete_rowsResult>;
|
||||
export function delete_rows(...args: any) {
|
||||
|
||||
let script = `
|
||||
(xor
|
||||
@ -141,18 +165,18 @@ export function validate(...args: any) {
|
||||
(seq
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
(call %init_peer_id% ("getDataSrv" "relay") [] relay)
|
||||
(call %init_peer_id% ("getDataSrv" "passwd") [] passwd)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "peer") [] peer)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "eip712_json") [] eip712_json)
|
||||
(call %init_peer_id% ("getDataSrv" "relay") [] relay)
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(call relay ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(call peer ("snapshot" "eip712_validation_string") [eip712_json peer] result)
|
||||
(call peer ("snapshot" "clear_table") [passwd] result)
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
@ -180,13 +204,13 @@ export function validate(...args: any) {
|
||||
return callFunction(
|
||||
args,
|
||||
{
|
||||
"functionName" : "validate",
|
||||
"functionName" : "delete_rows",
|
||||
"returnType" : {
|
||||
"tag" : "primitive"
|
||||
},
|
||||
"argDefs" : [
|
||||
{
|
||||
"name" : "relay",
|
||||
"name" : "passwd",
|
||||
"argType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
@ -198,7 +222,7 @@ export function validate(...args: any) {
|
||||
}
|
||||
},
|
||||
{
|
||||
"name" : "eip712_json",
|
||||
"name" : "relay",
|
||||
"argType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
@ -314,6 +338,92 @@ export function validate_from_url(...args: any) {
|
||||
}
|
||||
|
||||
|
||||
|
||||
export function get_count(relay: string, peer_: string, config?: {ttl?: number}): Promise<number>;
|
||||
export function get_count(peer: FluencePeer, relay: string, peer_: string, config?: {ttl?: number}): Promise<number>;
|
||||
export function get_count(...args: any) {
|
||||
|
||||
let script = `
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
(call %init_peer_id% ("getDataSrv" "relay") [] relay)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "peer") [] peer)
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(call relay ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(call peer ("snapshot" "get_record_count") [] result)
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(call relay ("op" "noop") [])
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
)
|
||||
)
|
||||
(call relay ("op" "noop") [])
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(call %init_peer_id% ("callbackSrv" "response") [result])
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
|
||||
)
|
||||
`
|
||||
return callFunction(
|
||||
args,
|
||||
{
|
||||
"functionName" : "get_count",
|
||||
"returnType" : {
|
||||
"tag" : "primitive"
|
||||
},
|
||||
"argDefs" : [
|
||||
{
|
||||
"name" : "relay",
|
||||
"argType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name" : "peer",
|
||||
"argType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
}
|
||||
],
|
||||
"names" : {
|
||||
"relay" : "-relay-",
|
||||
"getDataSrv" : "getDataSrv",
|
||||
"callbackSrv" : "callbackSrv",
|
||||
"responseSrv" : "callbackSrv",
|
||||
"responseFnName" : "response",
|
||||
"errorHandlingSrv" : "errorHandlingSrv",
|
||||
"errorFnName" : "error"
|
||||
}
|
||||
},
|
||||
script
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
export type Get_recordResult = { stderr: string; stdout: { eip712_doc: string; eip_validation: boolean; event_address: string; event_signature: string; peer_id: string; signed_response: string; snapshot_id: number; timestamp: number; ts_validation: boolean; }[]; }
|
||||
export function get_record(relay: string, peer_: string, snapshot_id: number, config?: {ttl?: number}): Promise<Get_recordResult>;
|
||||
export function get_record(peer: FluencePeer, relay: string, peer_: string, snapshot_id: number, config?: {ttl?: number}): Promise<Get_recordResult>;
|
||||
@ -409,6 +519,101 @@ export function get_record(...args: any) {
|
||||
}
|
||||
|
||||
|
||||
|
||||
export function validate(relay: string, peer_: string, eip712_json: string, config?: {ttl?: number}): Promise<string>;
|
||||
export function validate(peer: FluencePeer, relay: string, peer_: string, eip712_json: string, config?: {ttl?: number}): Promise<string>;
|
||||
export function validate(...args: any) {
|
||||
|
||||
let script = `
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
(call %init_peer_id% ("getDataSrv" "relay") [] relay)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "peer") [] peer)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "eip712_json") [] eip712_json)
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(call relay ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(call peer ("snapshot" "eip712_validation_string") [eip712_json peer] result)
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(call relay ("op" "noop") [])
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
)
|
||||
)
|
||||
(call relay ("op" "noop") [])
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(call %init_peer_id% ("callbackSrv" "response") [result])
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
|
||||
)
|
||||
`
|
||||
return callFunction(
|
||||
args,
|
||||
{
|
||||
"functionName" : "validate",
|
||||
"returnType" : {
|
||||
"tag" : "primitive"
|
||||
},
|
||||
"argDefs" : [
|
||||
{
|
||||
"name" : "relay",
|
||||
"argType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name" : "peer",
|
||||
"argType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name" : "eip712_json",
|
||||
"argType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
}
|
||||
],
|
||||
"names" : {
|
||||
"relay" : "-relay-",
|
||||
"getDataSrv" : "getDataSrv",
|
||||
"callbackSrv" : "callbackSrv",
|
||||
"responseSrv" : "callbackSrv",
|
||||
"responseFnName" : "response",
|
||||
"errorHandlingSrv" : "errorHandlingSrv",
|
||||
"errorFnName" : "error"
|
||||
}
|
||||
},
|
||||
script
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
export type Get_recordsResult = { stderr: string; stdout: { eip712_doc: string; eip_validation: boolean; event_address: string; event_signature: string; peer_id: string; signed_response: string; snapshot_id: number; timestamp: number; ts_validation: boolean; }[]; }
|
||||
export function get_records(relay: string, peer_: string, config?: {ttl?: number}): Promise<Get_recordsResult>;
|
||||
export function get_records(peer: FluencePeer, relay: string, peer_: string, config?: {ttl?: number}): Promise<Get_recordsResult>;
|
||||
|
48
src/index.ts
48
src/index.ts
@ -1,34 +1,25 @@
|
||||
import { Fluence, KeyPair } from "@fluencelabs/fluence";
|
||||
import { krasnodar } from "@fluencelabs/fluence-network-environment";
|
||||
import { registerEIPValidator, EIPValidatorDef, registerDataProvider, DataProviderDef } from "./_aqua/snapshot";
|
||||
import { ethers } from "ethers";
|
||||
import { TypedDataUtils } from 'ethers-eip712'; // https://github.com/0xsequence/ethers-eip712
|
||||
import { eip_validation, Response } from "./eip_processor";
|
||||
import { get_db, create_table, insert_event, DBRecord, DBResult, select_events, select_event } from './local_db';
|
||||
import { get_db, create_table, insert_event, DBRecord, DBResult, select_events, select_event, select_count } from './local_db';
|
||||
import got from 'got';
|
||||
import { base64 } from "ethers/lib/utils";
|
||||
import { ethers } from "ethers";
|
||||
import { create_wallet, sign_response } from "./utils";
|
||||
|
||||
|
||||
// Arbitrary secret key that could be read from file, CLI arg or db
|
||||
// We derive both the PeerId and the (ethers) wallet from this key
|
||||
const SecretKey = "0x0123456789012345678901234567890123456789012345678901234567890123";
|
||||
|
||||
// SQLite path
|
||||
const DB_PATH = "./data/snapshot.db";
|
||||
|
||||
|
||||
function create_wallet(sk: string): ethers.Wallet {
|
||||
return new ethers.Wallet(sk);
|
||||
}
|
||||
|
||||
function sign_response(wallet: ethers.Wallet, response: Response): Promise<string> {
|
||||
const signed_msg = wallet.signMessage(JSON.stringify(response));
|
||||
return signed_msg;
|
||||
}
|
||||
|
||||
// class exposed as service `EIPValidation` in snapshot.aqua
|
||||
class EIPValidator implements EIPValidatorDef {
|
||||
|
||||
async eip712_validation_string(eip712_json: string): Promise<string> {
|
||||
// todo: need to fix this to use local peer key
|
||||
// todo: pre-create wallet and read from file. there should be one static wallet for the life of the client node
|
||||
const wallet = create_wallet(SecretKey);
|
||||
let response = eip_validation(eip712_json, wallet.address);
|
||||
|
||||
@ -80,18 +71,32 @@ class EIPValidator implements EIPValidatorDef {
|
||||
}
|
||||
// class exposed as service `DataProviderDef` in snapshot.aqua
|
||||
class DataProvider implements DataProviderDef {
|
||||
|
||||
// record by snapshot_id
|
||||
async get_record(snapshot_id: number): Promise<any> {
|
||||
return select_event(snapshot_id);
|
||||
|
||||
}
|
||||
|
||||
// get all records. currently limited to 100 rows max.
|
||||
// todo: add paginaton
|
||||
async get_records(): Promise<any> {
|
||||
// todo: add pagination
|
||||
const result = await select_events();
|
||||
console.log("get records: ", result);
|
||||
return result;
|
||||
}
|
||||
|
||||
// row count; if err doing so, return value is -1
|
||||
async get_record_count(): Promise<number> {
|
||||
const result = await select_count();
|
||||
console.log("get records: ", result);
|
||||
return result;
|
||||
}
|
||||
|
||||
// clear table -- illustrative purposes only
|
||||
async clear_table(password: string): Promise<any> {
|
||||
return this.clear_table(password);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -123,14 +128,7 @@ async function main() {
|
||||
|
||||
registerEIPValidator("EIPValidator", new EIPValidator());
|
||||
registerDataProvider("DataProvider", new DataProvider);
|
||||
|
||||
// const eip_doc: any = await got('https://ipfs.fleek.co/ipfs/QmWGzSQFm57ohEq2ATw4UNHWmYU2HkMjtedcNLodYywpmS').json();
|
||||
// console.log("eip json obj: ", eip_doc);
|
||||
|
||||
// let obj = new EIPValidator();
|
||||
// let result = obj.eip712_validation_url(JSON.stringify(eip_doc));
|
||||
// console.log("result: ", result);
|
||||
|
||||
console.log("crtl-c to exit");
|
||||
// await Fluence.stop();
|
||||
}
|
||||
|
||||
|
@ -8,6 +8,7 @@ const sqlite3 = sqlite.verbose();
|
||||
import { Response } from './eip_processor';
|
||||
|
||||
const DB_PATH = './data/snapshot.db';
|
||||
const PWD_HASH = "bad really bad";
|
||||
|
||||
export interface DBRecord {
|
||||
snapshot_id: number;
|
||||
@ -44,7 +45,6 @@ export function get_db(db_path: string): sqlite.Database {
|
||||
|
||||
}
|
||||
|
||||
|
||||
export async function create_table(db: sqlite.Database) {
|
||||
const stmt = `create table if not exists snapshot (
|
||||
snapshot_id integer unique,
|
||||
@ -88,28 +88,27 @@ export async function insert_event(db: sqlite.Database, eip_obj: any, response_o
|
||||
export async function select_event(snapshot_id: number): Promise<DBResult> {
|
||||
var db = get_db(DB_PATH);
|
||||
let result: DBResult = {} as DBResult;
|
||||
const stmt = 'select * from snapshot where snapshot_id=?'
|
||||
const stmt = 'select * from snapshot where snapshot_id=?';
|
||||
return new Promise((resolve) => {
|
||||
db.get(stmt, [snapshot_id], (err, row) => {
|
||||
db.close();
|
||||
if (err) {
|
||||
result.stderr = err.message;
|
||||
result.stdout = [];
|
||||
resolve(result)
|
||||
}
|
||||
else {
|
||||
result.stderr = "";
|
||||
const response_arr = new Array<DBRecord>();
|
||||
response_arr.push(row);
|
||||
result.stdout = response_arr;
|
||||
resolve(result);
|
||||
}
|
||||
resolve(result)
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
// todo: add pagination
|
||||
export function select_events(): Promise<DBResult> {
|
||||
export async function select_events(): Promise<DBResult> {
|
||||
var db = get_db(DB_PATH);
|
||||
const stmt = "select * from snapshot limit ?";
|
||||
let result: DBResult = {} as DBResult;
|
||||
@ -131,4 +130,54 @@ export function select_events(): Promise<DBResult> {
|
||||
resolve(result);
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export async function select_count(): Promise<number> {
|
||||
var db = get_db(DB_PATH);
|
||||
const stmt = 'select count(*) as count from snapshot';
|
||||
let result: number;
|
||||
return new Promise((resolve) => {
|
||||
db.get(stmt, [], (err, row) => {
|
||||
db.close();
|
||||
if (err) {
|
||||
result = -1;
|
||||
}
|
||||
else {
|
||||
console.log("count: ", row);
|
||||
result = row.count;
|
||||
}
|
||||
resolve(result);
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
export async function clear_table(pwd_hash: string): Promise<DBResult> {
|
||||
let result: DBResult = {} as DBResult;
|
||||
// todo: you know what to do
|
||||
if (pwd_hash === PWD_HASH) {
|
||||
result.stderr = "invalid password";
|
||||
result.stdout = [];
|
||||
resolveProperties(result);
|
||||
}
|
||||
|
||||
var db = get_db(DB_PATH);
|
||||
const stmt = 'delete from snapshot'
|
||||
return new Promise((resolve) => {
|
||||
db.get(stmt, [], (err, row) => {
|
||||
db.close();
|
||||
if (err) {
|
||||
result.stderr = err.message;
|
||||
result.stdout = [];
|
||||
}
|
||||
else {
|
||||
console.log("count: ", row);
|
||||
result.stderr = "";
|
||||
const response_arr = new Array<DBRecord>();
|
||||
response_arr.push(row);
|
||||
result.stdout = response_arr;
|
||||
}
|
||||
resolve(result);
|
||||
});
|
||||
});
|
||||
};
|
11
src/utils.ts
Normal file
11
src/utils.ts
Normal file
@ -0,0 +1,11 @@
|
||||
import { ethers } from "ethers";
|
||||
// import { base64 } from "ethers/lib/utils";
|
||||
|
||||
export function create_wallet(sk: string): ethers.Wallet {
|
||||
return new ethers.Wallet(sk);
|
||||
}
|
||||
|
||||
export async function sign_response(wallet: ethers.Wallet, response: Response): Promise<string> {
|
||||
const signed_msg = wallet.signMessage(JSON.stringify(response));
|
||||
return signed_msg;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user