mirror of
https://github.com/fluencelabs/eip712-validation-node
synced 2025-05-28 15:41:18 +00:00
update return struct
This commit is contained in:
parent
108f4ab804
commit
2c59a94479
@ -21,7 +21,7 @@ service DataProvider("DataProvider"):
|
||||
get_records() -> DBResult
|
||||
get_record(snapshot_id: u64) -> DBResult
|
||||
get_record_count() -> u64
|
||||
clear_table(password: string) -> DBResult
|
||||
delete_records(password: string) -> DBResult
|
||||
|
||||
|
||||
func validate(eip712_url: string, node: string, relay:string) -> string:
|
||||
@ -44,9 +44,9 @@ func get_record_count(node: string, relay:string) -> u64:
|
||||
res <- DataProvider.get_record_count()
|
||||
<- res
|
||||
|
||||
func delete_rows(password: string, node: string, relay:string) -> DBResult:
|
||||
func delete_records(password: string, node: string, relay:string) -> DBResult:
|
||||
on node via relay:
|
||||
result <- DataProvider.clear_table(password)
|
||||
result <- DataProvider.delete_records(password)
|
||||
<- result
|
||||
|
||||
|
||||
|
156
client-peer/package-lock.json
generated
156
client-peer/package-lock.json
generated
@ -16,7 +16,8 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@fluencelabs/aqua": "^0.4.0-235",
|
||||
"typescript": "^4.0.0"
|
||||
"ts-node": "^9.1.1",
|
||||
"typescript": "^4.2.4"
|
||||
}
|
||||
},
|
||||
"node_modules/@chainsafe/libp2p-noise": {
|
||||
@ -443,6 +444,12 @@
|
||||
"native-abort-controller": "^1.0.3"
|
||||
}
|
||||
},
|
||||
"node_modules/arg": {
|
||||
"version": "4.1.3",
|
||||
"resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
|
||||
"integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/asn1": {
|
||||
"version": "0.2.4",
|
||||
"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
|
||||
@ -632,6 +639,12 @@
|
||||
"ieee754": "^1.1.13"
|
||||
}
|
||||
},
|
||||
"node_modules/buffer-from": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
|
||||
"integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/caseless": {
|
||||
"version": "0.12.0",
|
||||
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
|
||||
@ -688,6 +701,12 @@
|
||||
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
|
||||
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
|
||||
},
|
||||
"node_modules/create-require": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
|
||||
"integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/cross-spawn": {
|
||||
"version": "7.0.3",
|
||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
|
||||
@ -747,6 +766,15 @@
|
||||
"node": ">=0.4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/diff": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
|
||||
"integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=0.3.1"
|
||||
}
|
||||
},
|
||||
"node_modules/dns-over-http-resolver": {
|
||||
"version": "1.2.3",
|
||||
"resolved": "https://registry.npmjs.org/dns-over-http-resolver/-/dns-over-http-resolver-1.2.3.tgz",
|
||||
@ -1817,6 +1845,12 @@
|
||||
"multiaddr": "^10.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/make-error": {
|
||||
"version": "1.3.6",
|
||||
"resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
|
||||
"integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/merge-options": {
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz",
|
||||
@ -2565,6 +2599,25 @@
|
||||
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz",
|
||||
"integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ=="
|
||||
},
|
||||
"node_modules/source-map": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/source-map-support": {
|
||||
"version": "0.5.20",
|
||||
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz",
|
||||
"integrity": "sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"buffer-from": "^1.0.0",
|
||||
"source-map": "^0.6.0"
|
||||
}
|
||||
},
|
||||
"node_modules/sprintf-js": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz",
|
||||
@ -2665,6 +2718,32 @@
|
||||
"utf8-byte-length": "^1.0.1"
|
||||
}
|
||||
},
|
||||
"node_modules/ts-node": {
|
||||
"version": "9.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz",
|
||||
"integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"arg": "^4.1.0",
|
||||
"create-require": "^1.1.0",
|
||||
"diff": "^4.0.1",
|
||||
"make-error": "^1.1.1",
|
||||
"source-map-support": "^0.5.17",
|
||||
"yn": "3.1.1"
|
||||
},
|
||||
"bin": {
|
||||
"ts-node": "dist/bin.js",
|
||||
"ts-node-script": "dist/bin-script.js",
|
||||
"ts-node-transpile-only": "dist/bin-transpile.js",
|
||||
"ts-script": "dist/bin-script-deprecated.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"typescript": ">=2.7"
|
||||
}
|
||||
},
|
||||
"node_modules/ts-pattern": {
|
||||
"version": "3.3.3",
|
||||
"resolved": "https://registry.npmjs.org/ts-pattern/-/ts-pattern-3.3.3.tgz",
|
||||
@ -2840,6 +2919,15 @@
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/xsalsa20/-/xsalsa20-1.1.0.tgz",
|
||||
"integrity": "sha512-zd3ytX2cm+tcSndRU+krm0eL4TMMpZE7evs5hLRAoOy6gviqLfe3qOlkjF3i5SeAkQUCeJk0lJZrEU56kHRfWw=="
|
||||
},
|
||||
"node_modules/yn": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
|
||||
"integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
@ -3240,6 +3328,12 @@
|
||||
"native-abort-controller": "^1.0.3"
|
||||
}
|
||||
},
|
||||
"arg": {
|
||||
"version": "4.1.3",
|
||||
"resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
|
||||
"integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
|
||||
"dev": true
|
||||
},
|
||||
"asn1": {
|
||||
"version": "0.2.4",
|
||||
"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
|
||||
@ -3380,6 +3474,12 @@
|
||||
"ieee754": "^1.1.13"
|
||||
}
|
||||
},
|
||||
"buffer-from": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
|
||||
"integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
|
||||
"dev": true
|
||||
},
|
||||
"caseless": {
|
||||
"version": "0.12.0",
|
||||
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
|
||||
@ -3425,6 +3525,12 @@
|
||||
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
|
||||
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
|
||||
},
|
||||
"create-require": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
|
||||
"integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
|
||||
"dev": true
|
||||
},
|
||||
"cross-spawn": {
|
||||
"version": "7.0.3",
|
||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
|
||||
@ -3464,6 +3570,12 @@
|
||||
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
|
||||
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
|
||||
},
|
||||
"diff": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
|
||||
"integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
|
||||
"dev": true
|
||||
},
|
||||
"dns-over-http-resolver": {
|
||||
"version": "1.2.3",
|
||||
"resolved": "https://registry.npmjs.org/dns-over-http-resolver/-/dns-over-http-resolver-1.2.3.tgz",
|
||||
@ -4336,6 +4448,12 @@
|
||||
"multiaddr": "^10.0.0"
|
||||
}
|
||||
},
|
||||
"make-error": {
|
||||
"version": "1.3.6",
|
||||
"resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
|
||||
"integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
|
||||
"dev": true
|
||||
},
|
||||
"merge-options": {
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz",
|
||||
@ -4902,6 +5020,22 @@
|
||||
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz",
|
||||
"integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ=="
|
||||
},
|
||||
"source-map": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
||||
"dev": true
|
||||
},
|
||||
"source-map-support": {
|
||||
"version": "0.5.20",
|
||||
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz",
|
||||
"integrity": "sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"buffer-from": "^1.0.0",
|
||||
"source-map": "^0.6.0"
|
||||
}
|
||||
},
|
||||
"sprintf-js": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz",
|
||||
@ -4989,6 +5123,20 @@
|
||||
"utf8-byte-length": "^1.0.1"
|
||||
}
|
||||
},
|
||||
"ts-node": {
|
||||
"version": "9.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz",
|
||||
"integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"arg": "^4.1.0",
|
||||
"create-require": "^1.1.0",
|
||||
"diff": "^4.0.1",
|
||||
"make-error": "^1.1.1",
|
||||
"source-map-support": "^0.5.17",
|
||||
"yn": "3.1.1"
|
||||
}
|
||||
},
|
||||
"ts-pattern": {
|
||||
"version": "3.3.3",
|
||||
"resolved": "https://registry.npmjs.org/ts-pattern/-/ts-pattern-3.3.3.tgz",
|
||||
@ -5118,6 +5266,12 @@
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/xsalsa20/-/xsalsa20-1.1.0.tgz",
|
||||
"integrity": "sha512-zd3ytX2cm+tcSndRU+krm0eL4TMMpZE7evs5hLRAoOy6gviqLfe3qOlkjF3i5SeAkQUCeJk0lJZrEU56kHRfWw=="
|
||||
},
|
||||
"yn": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
|
||||
"integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -19,7 +19,7 @@
|
||||
"it-all": "^1.0.5"
|
||||
},
|
||||
"scripts": {
|
||||
"start": "node dist/src/index.js",
|
||||
"start": "node -r ts-node/register src/index.ts",
|
||||
"compile-aqua": "aqua -i aqua -o src/_aqua/",
|
||||
"watch-aqua": "chokidar \"**/*.aqua\" -c \"npm run compile-aqua\""
|
||||
},
|
||||
@ -39,6 +39,7 @@
|
||||
"homepage": "git+https://github.com/fluencelabs/eip712-validation-node/blob/main/README.md",
|
||||
"devDependencies": {
|
||||
"@fluencelabs/aqua": "^0.4.0-235",
|
||||
"typescript": "^4.0.0"
|
||||
"typescript": "^4.2.4",
|
||||
"ts-node": "^9.1.1"
|
||||
}
|
||||
}
|
||||
|
@ -80,7 +80,7 @@ export function registerEIPValidator(...args: any) {
|
||||
|
||||
|
||||
export interface DataProviderDef {
|
||||
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; }[]; }>;
|
||||
delete_records: (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; }[]; }>;
|
||||
@ -98,7 +98,7 @@ export function registerDataProvider(...args: any) {
|
||||
"defaultServiceId" : "DataProvider",
|
||||
"functions" : [
|
||||
{
|
||||
"functionName" : "clear_table",
|
||||
"functionName" : "delete_records",
|
||||
"argDefs" : [
|
||||
{
|
||||
"name" : "password",
|
||||
@ -148,101 +148,6 @@ 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>;
|
||||
@ -338,6 +243,101 @@ export function get_record(...args: any) {
|
||||
}
|
||||
|
||||
|
||||
export type Delete_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 delete_records(password: string, node: string, relay: string, config?: {ttl?: number}): Promise<Delete_recordsResult>;
|
||||
export function delete_records(peer: FluencePeer, password: string, node: string, relay: string, config?: {ttl?: number}): Promise<Delete_recordsResult>;
|
||||
export function delete_records(...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" "delete_records") [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_records",
|
||||
"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 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>;
|
||||
|
@ -16,15 +16,18 @@
|
||||
|
||||
import { Fluence, setLogLevel, FluencePeer } from "@fluencelabs/fluence";
|
||||
import { krasnodar, Node } from "@fluencelabs/fluence-network-environment";
|
||||
import { validate, get_record, get_records, get_record_count } from "./_aqua/demo_validation";
|
||||
import { validate, get_record, get_records, get_record_count, delete_records } from "./_aqua/demo_validation";
|
||||
|
||||
|
||||
const NODE_DB_PWD = "bad really bad"; const PWD_HASH = "bad really bad";
|
||||
const EIP712_URL = "https://ipfs.fleek.co/ipfs/QmWGzSQFm57ohEq2ATw4UNHWmYU2HkMjtedcNLodYywpmS";
|
||||
|
||||
interface NodeTuple {
|
||||
node_id: string;
|
||||
relay_id: string
|
||||
}
|
||||
|
||||
// PoC node parameters
|
||||
let poc_topologies: Array<NodeTuple> = [
|
||||
{
|
||||
"node_id": "12D3KooWFCY8xqebtZqNeiA5took71bUNAedzCCDuCuM1QTdTbWT",
|
||||
@ -34,17 +37,33 @@ let poc_topologies: Array<NodeTuple> = [
|
||||
|
||||
|
||||
async function main() {
|
||||
|
||||
|
||||
console.log("Welcome to Snapshot PoC demo.");
|
||||
// setLogLevel('DEBUG');
|
||||
|
||||
await Fluence.start({ connectTo: krasnodar[2] });
|
||||
console.log(
|
||||
"created a Fluence client %s with relay %s",
|
||||
"Created Fluence client with\npeer id: %s\nrelay id %s\n",
|
||||
Fluence.getStatus().peerId,
|
||||
Fluence.getStatus().relayPeerId
|
||||
);
|
||||
|
||||
console.log("\nRoundtrip Validation demo.\n");
|
||||
|
||||
console.log("Let's check the node db and clear all records if need be:");
|
||||
let rec_count = await get_record_count(poc_topologies[0].node_id, poc_topologies[0].relay_id);
|
||||
if (rec_count > 0) {
|
||||
console.log("deleting %s records", rec_count);
|
||||
let _res = await delete_records(NODE_DB_PWD, poc_topologies[0].node_id, poc_topologies[0].relay_id);
|
||||
}
|
||||
|
||||
console.log("Lets validate proposal %s, which is old and should fail.", EIP712_URL);
|
||||
let doc_val = await validate(EIP712_URL, poc_topologies[0].node_id, poc_topologies[0].relay_id);
|
||||
// if (doc_val.stderr.length > 0) {}
|
||||
console.log("doc val: ", doc_val);
|
||||
|
||||
rec_count = await get_record_count(poc_topologies[0].node_id, poc_topologies[0].relay_id);
|
||||
console.log("record count: ", rec_count);
|
||||
|
||||
let records = await get_records(poc_topologies[0].node_id, poc_topologies[0].relay_id);
|
||||
@ -56,6 +75,11 @@ async function main() {
|
||||
}
|
||||
|
||||
|
||||
// verify test
|
||||
// const address = ethers.utils.verifyMessage(resp_str, signed_response);
|
||||
// console.log("verify signature. peer_id: ", peer_id, " verified addr: ", address, " equal: ", peer_id === address);
|
||||
|
||||
// console.log(resp_str);
|
||||
|
||||
|
||||
return;
|
||||
|
@ -1,9 +1,17 @@
|
||||
data PVResponse:
|
||||
data Response:
|
||||
peer_id: string
|
||||
timestamp: u64
|
||||
eip_validation: bool
|
||||
ts_validation: bool
|
||||
|
||||
data EipResponse:
|
||||
signature: string
|
||||
validation: Response
|
||||
|
||||
data ValidationResult:
|
||||
stderr: string
|
||||
stdout: EipResponse
|
||||
|
||||
|
||||
data DBRecord:
|
||||
snapshot_id: u64
|
||||
@ -21,32 +29,30 @@ data DBResult:
|
||||
stdout: []DBRecord
|
||||
|
||||
service EIPValidator("snapshot"):
|
||||
eip712_validation_string(eip_str: string, peer_id: string) -> string
|
||||
eip712_validation_url(eip_str: string, peer_id: string) -> string
|
||||
eip712_validation_string(eip_str: string, peer_id: string) -> ValidationResult
|
||||
eip712_validation_url(eip_str: string, peer_id: string) -> ValidationResult
|
||||
|
||||
service DataProvider("snapshot"):
|
||||
get_records() -> DBResult
|
||||
get_record(snapshot_id: u64) -> DBResult
|
||||
get_record_count() -> u64
|
||||
clear_table(password: string) -> DBResult
|
||||
delete_records(password: string) -> DBResult
|
||||
|
||||
func validate(relay: string, peer:string, eip712_json: string) -> string:
|
||||
func validate(relay: string, peer:string, eip712_json: string) -> ValidationResult:
|
||||
on peer via relay:
|
||||
result <- EIPValidator.eip712_validation_string(eip712_json, peer)
|
||||
<- result
|
||||
|
||||
func validate_from_url(relay: string, peer:string, eip712_url: string) -> string:
|
||||
func validate_from_url(relay: string, peer:string, eip712_url: string) -> ValidationResult:
|
||||
on peer via relay:
|
||||
result <- EIPValidator.eip712_validation_url(eip712_url, peer)
|
||||
<- result
|
||||
|
||||
|
||||
func get_record(relay:string, peer:string, snapshot_id: u64) -> DBResult:
|
||||
on peer via relay:
|
||||
result <- DataProvider.get_record(snapshot_id)
|
||||
<- result
|
||||
|
||||
|
||||
func get_records(relay:string, peer:string) -> DBResult:
|
||||
on peer via relay:
|
||||
result <- DataProvider.get_records()
|
||||
@ -57,7 +63,7 @@ func get_count(relay:string, peer:string) -> u64:
|
||||
result <- DataProvider.get_record_count()
|
||||
<- result
|
||||
|
||||
func delete_rows(passwd: string, peer: string, relay:string) -> DBResult:
|
||||
func delete_records(passwd: string, peer: string, relay:string) -> DBResult:
|
||||
on peer via relay:
|
||||
result <- DataProvider.clear_table(passwd)
|
||||
result <- DataProvider.delete_records(passwd)
|
||||
<- result
|
Binary file not shown.
@ -5,7 +5,7 @@
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"start": "node -r ts-node/register src/index.ts",
|
||||
"compile-aqua": "aqua --import . -i ./aqua/ -o ./src/_aqua",
|
||||
"compile-aqua": "aqua -i aqua/ -o src/_aqua",
|
||||
"watch-aqua": "chokidar \"**/*.aqua\" -c \"npm run compile-aqua\""
|
||||
},
|
||||
"author": "",
|
||||
|
@ -1,605 +0,0 @@
|
||||
/**
|
||||
*
|
||||
* 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 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 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 registerEIPValidator(...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 {
|
||||
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;
|
||||
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" : "clear_table",
|
||||
"argDefs" : [
|
||||
{
|
||||
"name" : "password",
|
||||
"argType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
}
|
||||
],
|
||||
"returnType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
},
|
||||
{
|
||||
"functionName" : "get_record",
|
||||
"argDefs" : [
|
||||
{
|
||||
"name" : "snapshot_id",
|
||||
"argType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
}
|
||||
],
|
||||
"returnType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
},
|
||||
{
|
||||
"functionName" : "get_record_count",
|
||||
"argDefs" : [
|
||||
],
|
||||
"returnType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
},
|
||||
{
|
||||
"functionName" : "get_records",
|
||||
"argDefs" : [
|
||||
],
|
||||
"returnType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
// 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>;
|
||||
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_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
|
||||
(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_records",
|
||||
"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
|
||||
)
|
||||
}
|
@ -17,8 +17,8 @@ import {
|
||||
// Services
|
||||
|
||||
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>;
|
||||
eip712_validation_string: (eip_str: string, peer_id: string, callParams: CallParams<'eip_str' | 'peer_id'>) => { stderr: string; stdout: { signature: string; validation: { eip_validation: boolean; peer_id: string; timestamp: number; ts_validation: boolean; }; }; } | Promise<{ stderr: string; stdout: { signature: string; validation: { eip_validation: boolean; peer_id: string; timestamp: number; ts_validation: boolean; }; }; }>;
|
||||
eip712_validation_url: (eip_str: string, peer_id: string, callParams: CallParams<'eip_str' | 'peer_id'>) => { stderr: string; stdout: { signature: string; validation: { eip_validation: boolean; peer_id: string; timestamp: number; ts_validation: boolean; }; }; } | Promise<{ stderr: string; stdout: { signature: string; validation: { eip_validation: boolean; peer_id: string; timestamp: number; ts_validation: boolean; }; }; }>;
|
||||
}
|
||||
export function registerEIPValidator(service: EIPValidatorDef): void;
|
||||
export function registerEIPValidator(serviceId: string, service: EIPValidatorDef): void;
|
||||
@ -80,7 +80,7 @@ export function registerEIPValidator(...args: any) {
|
||||
|
||||
|
||||
export interface DataProviderDef {
|
||||
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; }[]; }>;
|
||||
delete_records: (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; }[]; }>;
|
||||
@ -98,7 +98,7 @@ export function registerDataProvider(...args: any) {
|
||||
"defaultServiceId" : "snapshot",
|
||||
"functions" : [
|
||||
{
|
||||
"functionName" : "clear_table",
|
||||
"functionName" : "delete_records",
|
||||
"argDefs" : [
|
||||
{
|
||||
"name" : "password",
|
||||
@ -148,104 +148,9 @@ 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(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
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(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" "relay") [] relay)
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(call relay ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(call peer ("snapshot" "clear_table") [passwd] 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" : "passwd",
|
||||
"argType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name" : "peer",
|
||||
"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_from_url(relay: string, peer_: string, eip712_url: string, config?: {ttl?: number}): Promise<string>;
|
||||
export function validate_from_url(peer: FluencePeer, relay: string, peer_: string, eip712_url: string, config?: {ttl?: number}): Promise<string>;
|
||||
export type Validate_from_urlResult = { stderr: string; stdout: { signature: string; validation: { eip_validation: boolean; peer_id: string; timestamp: number; ts_validation: boolean; }; }; }
|
||||
export function validate_from_url(relay: string, peer_: string, eip712_url: string, config?: {ttl?: number}): Promise<Validate_from_urlResult>;
|
||||
export function validate_from_url(peer: FluencePeer, relay: string, peer_: string, eip712_url: string, config?: {ttl?: number}): Promise<Validate_from_urlResult>;
|
||||
export function validate_from_url(...args: any) {
|
||||
|
||||
let script = `
|
||||
@ -519,9 +424,104 @@ export function get_record(...args: any) {
|
||||
}
|
||||
|
||||
|
||||
export type Delete_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 delete_records(passwd: string, peer_: string, relay: string, config?: {ttl?: number}): Promise<Delete_recordsResult>;
|
||||
export function delete_records(peer: FluencePeer, passwd: string, peer_: string, relay: string, config?: {ttl?: number}): Promise<Delete_recordsResult>;
|
||||
export function delete_records(...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>;
|
||||
let script = `
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(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" "relay") [] relay)
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(call relay ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(call peer ("snapshot" "delete_records") [passwd] 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_records",
|
||||
"returnType" : {
|
||||
"tag" : "primitive"
|
||||
},
|
||||
"argDefs" : [
|
||||
{
|
||||
"name" : "passwd",
|
||||
"argType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name" : "peer",
|
||||
"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 ValidateResult = { stderr: string; stdout: { signature: string; validation: { eip_validation: boolean; peer_id: string; timestamp: number; ts_validation: boolean; }; }; }
|
||||
export function validate(relay: string, peer_: string, eip712_json: string, config?: {ttl?: number}): Promise<ValidateResult>;
|
||||
export function validate(peer: FluencePeer, relay: string, peer_: string, eip712_json: string, config?: {ttl?: number}): Promise<ValidateResult>;
|
||||
export function validate(...args: any) {
|
||||
|
||||
let script = `
|
||||
|
@ -1,495 +0,0 @@
|
||||
/**
|
||||
*
|
||||
* 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" : "snapshot",
|
||||
"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" : "snapshot",
|
||||
"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(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 function validate_from_url(relay: string, peer_: string, eip712_url: string, config?: {ttl?: number}): Promise<string>;
|
||||
export function validate_from_url(peer: FluencePeer, relay: string, peer_: string, eip712_url: string, config?: {ttl?: number}): Promise<string>;
|
||||
export function validate_from_url(...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_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])
|
||||
)
|
||||
`
|
||||
return callFunction(
|
||||
args,
|
||||
{
|
||||
"functionName" : "validate_from_url",
|
||||
"returnType" : {
|
||||
"tag" : "primitive"
|
||||
},
|
||||
"argDefs" : [
|
||||
{
|
||||
"name" : "relay",
|
||||
"argType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name" : "peer",
|
||||
"argType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name" : "eip712_url",
|
||||
"argType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
}
|
||||
],
|
||||
"names" : {
|
||||
"relay" : "-relay-",
|
||||
"getDataSrv" : "getDataSrv",
|
||||
"callbackSrv" : "callbackSrv",
|
||||
"responseSrv" : "callbackSrv",
|
||||
"responseFnName" : "response",
|
||||
"errorHandlingSrv" : "errorHandlingSrv",
|
||||
"errorFnName" : "error"
|
||||
}
|
||||
},
|
||||
script
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
export type Get_recordResult = { snapshot_id: number; }
|
||||
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>;
|
||||
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" "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])
|
||||
)
|
||||
`
|
||||
return callFunction(
|
||||
args,
|
||||
{
|
||||
"functionName" : "get_record",
|
||||
"returnType" : {
|
||||
"tag" : "primitive"
|
||||
},
|
||||
"argDefs" : [
|
||||
{
|
||||
"name" : "relay",
|
||||
"argType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name" : "peer",
|
||||
"argType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name" : "snapshot_id",
|
||||
"argType" : {
|
||||
"tag" : "primitive"
|
||||
}
|
||||
}
|
||||
],
|
||||
"names" : {
|
||||
"relay" : "-relay-",
|
||||
"getDataSrv" : "getDataSrv",
|
||||
"callbackSrv" : "callbackSrv",
|
||||
"responseSrv" : "callbackSrv",
|
||||
"responseFnName" : "response",
|
||||
"errorHandlingSrv" : "errorHandlingSrv",
|
||||
"errorFnName" : "error"
|
||||
}
|
||||
},
|
||||
script
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
|
||||
export function get_records(relay: string, peer_: string, config?: {ttl?: number}): Promise<{ snapshot_id: number; }[]>;
|
||||
export function get_records(peer: FluencePeer, relay: string, peer_: string, config?: {ttl?: number}): Promise<{ snapshot_id: number; }[]>;
|
||||
export function get_records(...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_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])
|
||||
)
|
||||
`
|
||||
return callFunction(
|
||||
args,
|
||||
{
|
||||
"functionName" : "get_records",
|
||||
"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
|
||||
)
|
||||
}
|
@ -25,7 +25,6 @@ function ts_comp(peer_ts: number, snapshot_ts: number, ts_delta: number): boolea
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
function check_signature(eip_obj: any): boolean {
|
||||
const signing_addr = ethers.utils.verifyTypedData(eip_obj.data.domain, eip_obj.data.types, eip_obj.data.message, eip_obj.sig);
|
||||
|
||||
@ -34,7 +33,6 @@ function check_signature(eip_obj: any): boolean {
|
||||
return sig_assert;
|
||||
}
|
||||
|
||||
|
||||
// export async function eip_validation(eip_str: string, peer_id: string): Promise<Response> {
|
||||
export function eip_validation(eip_str: string, peer_id: string): Response {
|
||||
|
||||
|
@ -1,11 +1,12 @@
|
||||
import { Fluence, KeyPair } from "@fluencelabs/fluence";
|
||||
import { krasnodar } from "@fluencelabs/fluence-network-environment";
|
||||
import { registerEIPValidator, EIPValidatorDef, registerDataProvider, DataProviderDef } from "./_aqua/snapshot";
|
||||
import { eip_validation, Response } from "./eip_processor";
|
||||
import { get_db, create_table, insert_event, DBRecord, DBResult, select_events, select_event, select_count } from './local_db';
|
||||
import { eip_validation, Response as EIPResponse } from "./eip_processor";
|
||||
import { get_db, create_table, delete_records, insert_event, DBRecord, DBResult, select_events, select_event, select_count } from './local_db';
|
||||
import got from 'got';
|
||||
import { ethers } from "ethers";
|
||||
import { create_wallet, sign_response } from "./utils";
|
||||
import { ResultCodes } from "@fluencelabs/fluence/dist/internal/commonTypes";
|
||||
|
||||
|
||||
// Arbitrary secret key that could be read from file, CLI arg or db
|
||||
@ -15,10 +16,18 @@ const SecretKey = "0x01234567890123456789012345678901234567890123456789012345678
|
||||
// SQLite path
|
||||
const DB_PATH = "./data/snapshot.db";
|
||||
|
||||
export interface ValidationResponse {
|
||||
signature: string;
|
||||
validation: EIPResponse;
|
||||
}
|
||||
interface ValidationResult {
|
||||
stderr: string;
|
||||
stdout: ValidationResponse;
|
||||
}
|
||||
// class exposed as service `EIPValidation` in snapshot.aqua
|
||||
class EIPValidator implements EIPValidatorDef {
|
||||
|
||||
async eip712_validation_string(eip712_json: string): Promise<string> {
|
||||
async eip712_validation_string(eip712_json: string): Promise<ValidationResult> {
|
||||
// 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);
|
||||
@ -27,45 +36,43 @@ class EIPValidator implements EIPValidatorDef {
|
||||
console.log("eip validation response: ", resp_str);
|
||||
|
||||
const signed_response = await wallet.signMessage(resp_str);
|
||||
console.log("signed response: ", signed_response);
|
||||
let obj: ValidationResponse = { "signature": signed_response, "validation": response };
|
||||
|
||||
// verify test
|
||||
// const address = ethers.utils.verifyMessage(resp_str, signed_response);
|
||||
// console.log("verify signature. peer_id: ", peer_id, " verified addr: ", address, " equal: ", peer_id === address);
|
||||
// commit to local sqlite
|
||||
let db = get_db(DB_PATH);
|
||||
await create_table(db);
|
||||
await insert_event(db, JSON.parse(resp_str), response, signed_response);
|
||||
|
||||
// console.log(resp_str);
|
||||
let obj = { "signature": signed_response, "validation": response };
|
||||
let result = {} as ValidationResult;
|
||||
result.stderr = "";
|
||||
result.stdout = obj;
|
||||
|
||||
return JSON.stringify(obj);
|
||||
return result;
|
||||
}
|
||||
|
||||
async eip712_validation_url(eip712_url: string): Promise<string> {
|
||||
async eip712_validation_url(eip712_url: string): Promise<ValidationResult> {
|
||||
|
||||
const eip = await got.get('https://ipfs.fleek.co/ipfs/QmWGzSQFm57ohEq2ATw4UNHWmYU2HkMjtedcNLodYywpmS');
|
||||
const eip = await got.get(eip712_url);
|
||||
const eip_json = eip.body;
|
||||
|
||||
// todo: need to fix this to use local peer key
|
||||
const wallet = create_wallet(SecretKey);
|
||||
let response = eip_validation(eip_json, wallet.address);
|
||||
|
||||
const resp_str = JSON.stringify(response);
|
||||
const signed_response = await wallet.signMessage(resp_str);
|
||||
|
||||
|
||||
// verify test
|
||||
// const address = ethers.utils.verifyMessage(resp_str, signed_response);
|
||||
// console.log("verify signature. peer_id: ", peer_id, " verified addr: ", address, " equal: ", peer_id === address);
|
||||
|
||||
// console.log(resp_str);
|
||||
|
||||
let obj = { "signature": signed_response, "validation": response };
|
||||
let obj: ValidationResponse = { "signature": signed_response, "validation": response };
|
||||
|
||||
// commit to local sqlite
|
||||
let db = get_db(DB_PATH);
|
||||
await create_table(db);
|
||||
await insert_event(db, JSON.parse(eip_json), response, signed_response);
|
||||
|
||||
return JSON.stringify(obj);
|
||||
let result = {} as ValidationResult;
|
||||
result.stderr = "";
|
||||
result.stdout = obj;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
@ -93,8 +100,8 @@ class DataProvider implements DataProviderDef {
|
||||
}
|
||||
|
||||
// clear table -- illustrative purposes only
|
||||
async clear_table(password: string): Promise<any> {
|
||||
return this.clear_table(password);
|
||||
async delete_records(password: string): Promise<any> {
|
||||
return await delete_records(password);
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -1,137 +0,0 @@
|
||||
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 got from 'got';
|
||||
import { base64 } from "ethers/lib/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";
|
||||
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
|
||||
const wallet = create_wallet(SecretKey);
|
||||
let response = eip_validation(eip712_json, wallet.address);
|
||||
|
||||
const resp_str = JSON.stringify(response);
|
||||
console.log("eip validation response: ", resp_str);
|
||||
|
||||
const signed_response = await wallet.signMessage(resp_str);
|
||||
console.log("signed response: ", signed_response);
|
||||
|
||||
// verify test
|
||||
// const address = ethers.utils.verifyMessage(resp_str, signed_response);
|
||||
// console.log("verify signature. peer_id: ", peer_id, " verified addr: ", address, " equal: ", peer_id === address);
|
||||
|
||||
// console.log(resp_str);
|
||||
let obj = { "signature": signed_response, "validation": response };
|
||||
|
||||
return JSON.stringify(obj);
|
||||
}
|
||||
|
||||
async eip712_validation_url(eip712_url: string): Promise<string> {
|
||||
|
||||
const eip = await got.get('https://ipfs.fleek.co/ipfs/QmWGzSQFm57ohEq2ATw4UNHWmYU2HkMjtedcNLodYywpmS');
|
||||
const eip_json = eip.body;
|
||||
|
||||
// todo: need to fix this to use local peer key
|
||||
const wallet = create_wallet(SecretKey);
|
||||
let response = eip_validation(eip_json, wallet.address);
|
||||
|
||||
const resp_str = JSON.stringify(response);
|
||||
const signed_response = await wallet.signMessage(resp_str);
|
||||
|
||||
|
||||
// verify test
|
||||
// const address = ethers.utils.verifyMessage(resp_str, signed_response);
|
||||
// console.log("verify signature. peer_id: ", peer_id, " verified addr: ", address, " equal: ", peer_id === address);
|
||||
|
||||
// console.log(resp_str);
|
||||
|
||||
let obj = { "signature": signed_response, "validation": response };
|
||||
|
||||
// commit to local sqlite
|
||||
let db = get_db(DB_PATH);
|
||||
await create_table(db);
|
||||
await insert_event(db, JSON.parse(eip_json), response, signed_response);
|
||||
|
||||
return JSON.stringify(obj);
|
||||
}
|
||||
|
||||
}
|
||||
// class exposed as service `DataProviderDef` in snapshot.aqua
|
||||
class DataProvider implements DataProviderDef {
|
||||
|
||||
async get_record(snapshot_id: number): Promise<any> {
|
||||
return select_event(snapshot_id);
|
||||
|
||||
}
|
||||
|
||||
async get_records(): Promise<any> {
|
||||
// todo: add pagination
|
||||
const result = await select_events();
|
||||
console.log("get records: ", result);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
async function startFluencePeer(skBytes: Uint8Array): Promise<void> {
|
||||
await Fluence.start({
|
||||
connectTo: krasnodar[0],
|
||||
KeyPair: await KeyPair.fromEd25519SK(skBytes)
|
||||
});
|
||||
}
|
||||
|
||||
async function main() {
|
||||
|
||||
let wallet = new ethers.Wallet(SecretKey);
|
||||
console.log("wallet from sk: ", wallet.address);
|
||||
console.log("wallet pk: ", wallet.publicKey);
|
||||
|
||||
const skBytes: Uint8Array = ethers.utils.arrayify(SecretKey);
|
||||
console.log("arrayify: ", skBytes);
|
||||
|
||||
await startFluencePeer(skBytes);
|
||||
|
||||
|
||||
console.log("PeerId: ", Fluence.getStatus().peerId);
|
||||
console.log("Relay id: ", Fluence.getStatus().relayPeerId);
|
||||
|
||||
// let peer = Fluence.getPeer();
|
||||
// console.log(peer);
|
||||
// console.log(Fluence.KeyPair);
|
||||
|
||||
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);
|
||||
|
||||
// await Fluence.stop();
|
||||
}
|
||||
|
||||
main();
|
@ -151,8 +151,7 @@ export async function select_count(): Promise<number> {
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
export async function clear_table(pwd_hash: string): Promise<DBResult> {
|
||||
export async function delete_records(pwd_hash: string): Promise<DBResult> {
|
||||
let result: DBResult = {} as DBResult;
|
||||
// todo: you know what to do
|
||||
if (pwd_hash === PWD_HASH) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user