This commit is contained in:
boneyard93501 2021-10-24 12:32:30 -05:00
parent f5ae7af91e
commit e2d774640e
19 changed files with 1548 additions and 160 deletions

View 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])
)

View 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])
)

View 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])
)

View 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])
)

View 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])
)

View 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
)
}

View 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])
)

View 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])
)

View 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])
)

View 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])
)

View 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])
)

View 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])
)

View File

@ -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

View File

@ -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

View File

@ -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
)
}

View File

@ -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>;

View File

@ -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();
}

View File

@ -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
View 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;
}