create-leo-app 0.9.3 → 0.9.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/template-extension/package.json +1 -1
- package/template-nextjs-ts/node_modules/@types/node/LICENSE +21 -0
- package/template-nextjs-ts/node_modules/@types/node/README.md +15 -0
- package/template-nextjs-ts/node_modules/@types/node/assert/strict.d.ts +8 -0
- package/template-nextjs-ts/node_modules/@types/node/assert.d.ts +1054 -0
- package/template-nextjs-ts/node_modules/@types/node/async_hooks.d.ts +603 -0
- package/template-nextjs-ts/node_modules/@types/node/buffer.buffer.d.ts +463 -0
- package/template-nextjs-ts/node_modules/@types/node/buffer.d.ts +1928 -0
- package/template-nextjs-ts/node_modules/@types/node/child_process.d.ts +1549 -0
- package/template-nextjs-ts/node_modules/@types/node/cluster.d.ts +579 -0
- package/template-nextjs-ts/node_modules/@types/node/compatibility/disposable.d.ts +14 -0
- package/template-nextjs-ts/node_modules/@types/node/compatibility/index.d.ts +9 -0
- package/template-nextjs-ts/node_modules/@types/node/compatibility/indexable.d.ts +20 -0
- package/template-nextjs-ts/node_modules/@types/node/compatibility/iterators.d.ts +20 -0
- package/template-nextjs-ts/node_modules/@types/node/console.d.ts +452 -0
- package/template-nextjs-ts/node_modules/@types/node/constants.d.ts +21 -0
- package/template-nextjs-ts/node_modules/@types/node/crypto.d.ts +4509 -0
- package/template-nextjs-ts/node_modules/@types/node/dgram.d.ts +599 -0
- package/template-nextjs-ts/node_modules/@types/node/diagnostics_channel.d.ts +578 -0
- package/template-nextjs-ts/node_modules/@types/node/dns/promises.d.ts +502 -0
- package/template-nextjs-ts/node_modules/@types/node/dns.d.ts +919 -0
- package/template-nextjs-ts/node_modules/@types/node/dom-events.d.ts +99 -0
- package/template-nextjs-ts/node_modules/@types/node/domain.d.ts +170 -0
- package/template-nextjs-ts/node_modules/@types/node/events.d.ts +930 -0
- package/template-nextjs-ts/node_modules/@types/node/fs/promises.d.ts +1273 -0
- package/template-nextjs-ts/node_modules/@types/node/fs.d.ts +4437 -0
- package/template-nextjs-ts/node_modules/@types/node/globals.d.ts +364 -0
- package/template-nextjs-ts/node_modules/@types/node/globals.typedarray.d.ts +21 -0
- package/template-nextjs-ts/node_modules/@types/node/http.d.ts +2061 -0
- package/template-nextjs-ts/node_modules/@types/node/http2.d.ts +2625 -0
- package/template-nextjs-ts/node_modules/@types/node/https.d.ts +545 -0
- package/template-nextjs-ts/node_modules/@types/node/index.d.ts +92 -0
- package/template-nextjs-ts/node_modules/@types/node/inspector.d.ts +4002 -0
- package/template-nextjs-ts/node_modules/@types/node/module.d.ts +867 -0
- package/template-nextjs-ts/node_modules/@types/node/net.d.ts +1035 -0
- package/template-nextjs-ts/node_modules/@types/node/os.d.ts +495 -0
- package/template-nextjs-ts/node_modules/@types/node/package.json +225 -0
- package/template-nextjs-ts/node_modules/@types/node/path.d.ts +200 -0
- package/template-nextjs-ts/node_modules/@types/node/perf_hooks.d.ts +970 -0
- package/template-nextjs-ts/node_modules/@types/node/process.d.ts +2061 -0
- package/template-nextjs-ts/node_modules/@types/node/punycode.d.ts +117 -0
- package/template-nextjs-ts/node_modules/@types/node/querystring.d.ts +152 -0
- package/template-nextjs-ts/node_modules/@types/node/readline/promises.d.ts +162 -0
- package/template-nextjs-ts/node_modules/@types/node/readline.d.ts +594 -0
- package/template-nextjs-ts/node_modules/@types/node/repl.d.ts +428 -0
- package/template-nextjs-ts/node_modules/@types/node/sea.d.ts +153 -0
- package/template-nextjs-ts/node_modules/@types/node/sqlite.d.ts +680 -0
- package/template-nextjs-ts/node_modules/@types/node/stream/consumers.d.ts +38 -0
- package/template-nextjs-ts/node_modules/@types/node/stream/promises.d.ts +90 -0
- package/template-nextjs-ts/node_modules/@types/node/stream/web.d.ts +618 -0
- package/template-nextjs-ts/node_modules/@types/node/stream.d.ts +1668 -0
- package/template-nextjs-ts/node_modules/@types/node/string_decoder.d.ts +67 -0
- package/template-nextjs-ts/node_modules/@types/node/test.d.ts +2175 -0
- package/template-nextjs-ts/node_modules/@types/node/timers/promises.d.ts +108 -0
- package/template-nextjs-ts/node_modules/@types/node/timers.d.ts +287 -0
- package/template-nextjs-ts/node_modules/@types/node/tls.d.ts +1259 -0
- package/template-nextjs-ts/node_modules/@types/node/trace_events.d.ts +197 -0
- package/template-nextjs-ts/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +460 -0
- package/template-nextjs-ts/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +19 -0
- package/template-nextjs-ts/node_modules/@types/node/ts5.6/index.d.ts +92 -0
- package/template-nextjs-ts/node_modules/@types/node/tty.d.ts +208 -0
- package/template-nextjs-ts/node_modules/@types/node/url.d.ts +972 -0
- package/template-nextjs-ts/node_modules/@types/node/util.d.ts +2596 -0
- package/template-nextjs-ts/node_modules/@types/node/v8.d.ts +922 -0
- package/template-nextjs-ts/node_modules/@types/node/vm.d.ts +1029 -0
- package/template-nextjs-ts/node_modules/@types/node/wasi.d.ts +181 -0
- package/template-nextjs-ts/node_modules/@types/node/worker_threads.d.ts +769 -0
- package/template-nextjs-ts/node_modules/@types/node/zlib.d.ts +670 -0
- package/template-nextjs-ts/node_modules/undici-types/LICENSE +21 -0
- package/template-nextjs-ts/node_modules/undici-types/README.md +6 -0
- package/template-nextjs-ts/node_modules/undici-types/agent.d.ts +31 -0
- package/template-nextjs-ts/node_modules/undici-types/api.d.ts +43 -0
- package/template-nextjs-ts/node_modules/undici-types/balanced-pool.d.ts +29 -0
- package/template-nextjs-ts/node_modules/undici-types/cache.d.ts +36 -0
- package/template-nextjs-ts/node_modules/undici-types/client.d.ts +108 -0
- package/template-nextjs-ts/node_modules/undici-types/connector.d.ts +34 -0
- package/template-nextjs-ts/node_modules/undici-types/content-type.d.ts +21 -0
- package/template-nextjs-ts/node_modules/undici-types/cookies.d.ts +28 -0
- package/template-nextjs-ts/node_modules/undici-types/diagnostics-channel.d.ts +66 -0
- package/template-nextjs-ts/node_modules/undici-types/dispatcher.d.ts +256 -0
- package/template-nextjs-ts/node_modules/undici-types/env-http-proxy-agent.d.ts +21 -0
- package/template-nextjs-ts/node_modules/undici-types/errors.d.ts +149 -0
- package/template-nextjs-ts/node_modules/undici-types/eventsource.d.ts +61 -0
- package/template-nextjs-ts/node_modules/undici-types/fetch.d.ts +209 -0
- package/template-nextjs-ts/node_modules/undici-types/file.d.ts +39 -0
- package/template-nextjs-ts/node_modules/undici-types/filereader.d.ts +54 -0
- package/template-nextjs-ts/node_modules/undici-types/formdata.d.ts +108 -0
- package/template-nextjs-ts/node_modules/undici-types/global-dispatcher.d.ts +9 -0
- package/template-nextjs-ts/node_modules/undici-types/global-origin.d.ts +7 -0
- package/template-nextjs-ts/node_modules/undici-types/handlers.d.ts +15 -0
- package/template-nextjs-ts/node_modules/undici-types/header.d.ts +4 -0
- package/template-nextjs-ts/node_modules/undici-types/index.d.ts +71 -0
- package/template-nextjs-ts/node_modules/undici-types/interceptors.d.ts +17 -0
- package/template-nextjs-ts/node_modules/undici-types/mock-agent.d.ts +50 -0
- package/template-nextjs-ts/node_modules/undici-types/mock-client.d.ts +25 -0
- package/template-nextjs-ts/node_modules/undici-types/mock-errors.d.ts +12 -0
- package/template-nextjs-ts/node_modules/undici-types/mock-interceptor.d.ts +93 -0
- package/template-nextjs-ts/node_modules/undici-types/mock-pool.d.ts +25 -0
- package/template-nextjs-ts/node_modules/undici-types/package.json +55 -0
- package/template-nextjs-ts/node_modules/undici-types/patch.d.ts +33 -0
- package/template-nextjs-ts/node_modules/undici-types/pool-stats.d.ts +19 -0
- package/template-nextjs-ts/node_modules/undici-types/pool.d.ts +39 -0
- package/template-nextjs-ts/node_modules/undici-types/proxy-agent.d.ts +28 -0
- package/template-nextjs-ts/node_modules/undici-types/readable.d.ts +65 -0
- package/template-nextjs-ts/node_modules/undici-types/retry-agent.d.ts +8 -0
- package/template-nextjs-ts/node_modules/undici-types/retry-handler.d.ts +116 -0
- package/template-nextjs-ts/node_modules/undici-types/util.d.ts +18 -0
- package/template-nextjs-ts/node_modules/undici-types/webidl.d.ts +228 -0
- package/template-nextjs-ts/node_modules/undici-types/websocket.d.ts +150 -0
- package/template-nextjs-ts/package.json +1 -1
- package/template-node/index.js +1 -1
- package/template-node/package.json +1 -1
- package/template-node-ts/package.json +1 -1
- package/template-node-ts/src/index.ts +1 -1
- package/template-offline-public-transaction-ts/package.json +1 -1
- package/template-react-leo/package.json +1 -1
- package/template-react-managed-worker/package.json +1 -1
- package/template-react-ts/node_modules/@types/node/LICENSE +21 -0
- package/template-react-ts/node_modules/@types/node/README.md +15 -0
- package/template-react-ts/node_modules/@types/node/assert/strict.d.ts +8 -0
- package/template-react-ts/node_modules/@types/node/assert.d.ts +1054 -0
- package/template-react-ts/node_modules/@types/node/async_hooks.d.ts +603 -0
- package/template-react-ts/node_modules/@types/node/buffer.buffer.d.ts +463 -0
- package/template-react-ts/node_modules/@types/node/buffer.d.ts +1928 -0
- package/template-react-ts/node_modules/@types/node/child_process.d.ts +1549 -0
- package/template-react-ts/node_modules/@types/node/cluster.d.ts +579 -0
- package/template-react-ts/node_modules/@types/node/compatibility/disposable.d.ts +14 -0
- package/template-react-ts/node_modules/@types/node/compatibility/index.d.ts +9 -0
- package/template-react-ts/node_modules/@types/node/compatibility/indexable.d.ts +20 -0
- package/template-react-ts/node_modules/@types/node/compatibility/iterators.d.ts +20 -0
- package/template-react-ts/node_modules/@types/node/console.d.ts +452 -0
- package/template-react-ts/node_modules/@types/node/constants.d.ts +21 -0
- package/template-react-ts/node_modules/@types/node/crypto.d.ts +4509 -0
- package/template-react-ts/node_modules/@types/node/dgram.d.ts +599 -0
- package/template-react-ts/node_modules/@types/node/diagnostics_channel.d.ts +578 -0
- package/template-react-ts/node_modules/@types/node/dns/promises.d.ts +502 -0
- package/template-react-ts/node_modules/@types/node/dns.d.ts +919 -0
- package/template-react-ts/node_modules/@types/node/dom-events.d.ts +99 -0
- package/template-react-ts/node_modules/@types/node/domain.d.ts +170 -0
- package/template-react-ts/node_modules/@types/node/events.d.ts +930 -0
- package/template-react-ts/node_modules/@types/node/fs/promises.d.ts +1273 -0
- package/template-react-ts/node_modules/@types/node/fs.d.ts +4437 -0
- package/template-react-ts/node_modules/@types/node/globals.d.ts +364 -0
- package/template-react-ts/node_modules/@types/node/globals.typedarray.d.ts +21 -0
- package/template-react-ts/node_modules/@types/node/http.d.ts +2061 -0
- package/template-react-ts/node_modules/@types/node/http2.d.ts +2625 -0
- package/template-react-ts/node_modules/@types/node/https.d.ts +545 -0
- package/template-react-ts/node_modules/@types/node/index.d.ts +92 -0
- package/template-react-ts/node_modules/@types/node/inspector.d.ts +4002 -0
- package/template-react-ts/node_modules/@types/node/module.d.ts +867 -0
- package/template-react-ts/node_modules/@types/node/net.d.ts +1035 -0
- package/template-react-ts/node_modules/@types/node/os.d.ts +495 -0
- package/template-react-ts/node_modules/@types/node/package.json +225 -0
- package/template-react-ts/node_modules/@types/node/path.d.ts +200 -0
- package/template-react-ts/node_modules/@types/node/perf_hooks.d.ts +970 -0
- package/template-react-ts/node_modules/@types/node/process.d.ts +2061 -0
- package/template-react-ts/node_modules/@types/node/punycode.d.ts +117 -0
- package/template-react-ts/node_modules/@types/node/querystring.d.ts +152 -0
- package/template-react-ts/node_modules/@types/node/readline/promises.d.ts +162 -0
- package/template-react-ts/node_modules/@types/node/readline.d.ts +594 -0
- package/template-react-ts/node_modules/@types/node/repl.d.ts +428 -0
- package/template-react-ts/node_modules/@types/node/sea.d.ts +153 -0
- package/template-react-ts/node_modules/@types/node/sqlite.d.ts +680 -0
- package/template-react-ts/node_modules/@types/node/stream/consumers.d.ts +38 -0
- package/template-react-ts/node_modules/@types/node/stream/promises.d.ts +90 -0
- package/template-react-ts/node_modules/@types/node/stream/web.d.ts +618 -0
- package/template-react-ts/node_modules/@types/node/stream.d.ts +1668 -0
- package/template-react-ts/node_modules/@types/node/string_decoder.d.ts +67 -0
- package/template-react-ts/node_modules/@types/node/test.d.ts +2175 -0
- package/template-react-ts/node_modules/@types/node/timers/promises.d.ts +108 -0
- package/template-react-ts/node_modules/@types/node/timers.d.ts +287 -0
- package/template-react-ts/node_modules/@types/node/tls.d.ts +1259 -0
- package/template-react-ts/node_modules/@types/node/trace_events.d.ts +197 -0
- package/template-react-ts/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +460 -0
- package/template-react-ts/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +19 -0
- package/template-react-ts/node_modules/@types/node/ts5.6/index.d.ts +92 -0
- package/template-react-ts/node_modules/@types/node/tty.d.ts +208 -0
- package/template-react-ts/node_modules/@types/node/url.d.ts +972 -0
- package/template-react-ts/node_modules/@types/node/util.d.ts +2596 -0
- package/template-react-ts/node_modules/@types/node/v8.d.ts +922 -0
- package/template-react-ts/node_modules/@types/node/vm.d.ts +1029 -0
- package/template-react-ts/node_modules/@types/node/wasi.d.ts +181 -0
- package/template-react-ts/node_modules/@types/node/worker_threads.d.ts +769 -0
- package/template-react-ts/node_modules/@types/node/zlib.d.ts +670 -0
- package/template-react-ts/node_modules/undici-types/LICENSE +21 -0
- package/template-react-ts/node_modules/undici-types/README.md +6 -0
- package/template-react-ts/node_modules/undici-types/agent.d.ts +31 -0
- package/template-react-ts/node_modules/undici-types/api.d.ts +43 -0
- package/template-react-ts/node_modules/undici-types/balanced-pool.d.ts +29 -0
- package/template-react-ts/node_modules/undici-types/cache.d.ts +36 -0
- package/template-react-ts/node_modules/undici-types/client.d.ts +108 -0
- package/template-react-ts/node_modules/undici-types/connector.d.ts +34 -0
- package/template-react-ts/node_modules/undici-types/content-type.d.ts +21 -0
- package/template-react-ts/node_modules/undici-types/cookies.d.ts +28 -0
- package/template-react-ts/node_modules/undici-types/diagnostics-channel.d.ts +66 -0
- package/template-react-ts/node_modules/undici-types/dispatcher.d.ts +256 -0
- package/template-react-ts/node_modules/undici-types/env-http-proxy-agent.d.ts +21 -0
- package/template-react-ts/node_modules/undici-types/errors.d.ts +149 -0
- package/template-react-ts/node_modules/undici-types/eventsource.d.ts +61 -0
- package/template-react-ts/node_modules/undici-types/fetch.d.ts +209 -0
- package/template-react-ts/node_modules/undici-types/file.d.ts +39 -0
- package/template-react-ts/node_modules/undici-types/filereader.d.ts +54 -0
- package/template-react-ts/node_modules/undici-types/formdata.d.ts +108 -0
- package/template-react-ts/node_modules/undici-types/global-dispatcher.d.ts +9 -0
- package/template-react-ts/node_modules/undici-types/global-origin.d.ts +7 -0
- package/template-react-ts/node_modules/undici-types/handlers.d.ts +15 -0
- package/template-react-ts/node_modules/undici-types/header.d.ts +4 -0
- package/template-react-ts/node_modules/undici-types/index.d.ts +71 -0
- package/template-react-ts/node_modules/undici-types/interceptors.d.ts +17 -0
- package/template-react-ts/node_modules/undici-types/mock-agent.d.ts +50 -0
- package/template-react-ts/node_modules/undici-types/mock-client.d.ts +25 -0
- package/template-react-ts/node_modules/undici-types/mock-errors.d.ts +12 -0
- package/template-react-ts/node_modules/undici-types/mock-interceptor.d.ts +93 -0
- package/template-react-ts/node_modules/undici-types/mock-pool.d.ts +25 -0
- package/template-react-ts/node_modules/undici-types/package.json +55 -0
- package/template-react-ts/node_modules/undici-types/patch.d.ts +33 -0
- package/template-react-ts/node_modules/undici-types/pool-stats.d.ts +19 -0
- package/template-react-ts/node_modules/undici-types/pool.d.ts +39 -0
- package/template-react-ts/node_modules/undici-types/proxy-agent.d.ts +28 -0
- package/template-react-ts/node_modules/undici-types/readable.d.ts +65 -0
- package/template-react-ts/node_modules/undici-types/retry-agent.d.ts +8 -0
- package/template-react-ts/node_modules/undici-types/retry-handler.d.ts +116 -0
- package/template-react-ts/node_modules/undici-types/util.d.ts +18 -0
- package/template-react-ts/node_modules/undici-types/webidl.d.ts +228 -0
- package/template-react-ts/node_modules/undici-types/websocket.d.ts +150 -0
- package/template-react-ts/package.json +1 -1
- package/template-vanilla/package.json +1 -1
- package/template-offline-public-transaction-ts/dist/index.js +0 -195
- package/template-offline-public-transaction-ts/dist/index.js.map +0 -1
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export namespace util {
|
|
2
|
+
/**
|
|
3
|
+
* Retrieves a header name and returns its lowercase value.
|
|
4
|
+
* @param value Header name
|
|
5
|
+
*/
|
|
6
|
+
export function headerNameToString(value: string | Buffer): string;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Receives a header object and returns the parsed value.
|
|
10
|
+
* @param headers Header object
|
|
11
|
+
* @param obj Object to specify a proxy object. Used to assign parsed values.
|
|
12
|
+
* @returns If `obj` is specified, it is equivalent to `obj`.
|
|
13
|
+
*/
|
|
14
|
+
export function parseHeaders(
|
|
15
|
+
headers: (Buffer | string | (Buffer | string)[])[],
|
|
16
|
+
obj?: Record<string, string | string[]>
|
|
17
|
+
): Record<string, string | string[]>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
// These types are not exported, and are only used internally
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Take in an unknown value and return one that is of type T
|
|
5
|
+
*/
|
|
6
|
+
type Converter<T> = (object: unknown) => T
|
|
7
|
+
|
|
8
|
+
type SequenceConverter<T> = (object: unknown, iterable?: IterableIterator<T>) => T[]
|
|
9
|
+
|
|
10
|
+
type RecordConverter<K extends string, V> = (object: unknown) => Record<K, V>
|
|
11
|
+
|
|
12
|
+
interface ConvertToIntOpts {
|
|
13
|
+
clamp?: boolean
|
|
14
|
+
enforceRange?: boolean
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
interface WebidlErrors {
|
|
18
|
+
exception (opts: { header: string, message: string }): TypeError
|
|
19
|
+
/**
|
|
20
|
+
* @description Throw an error when conversion from one type to another has failed
|
|
21
|
+
*/
|
|
22
|
+
conversionFailed (opts: {
|
|
23
|
+
prefix: string
|
|
24
|
+
argument: string
|
|
25
|
+
types: string[]
|
|
26
|
+
}): TypeError
|
|
27
|
+
/**
|
|
28
|
+
* @description Throw an error when an invalid argument is provided
|
|
29
|
+
*/
|
|
30
|
+
invalidArgument (opts: {
|
|
31
|
+
prefix: string
|
|
32
|
+
value: string
|
|
33
|
+
type: string
|
|
34
|
+
}): TypeError
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
interface WebidlUtil {
|
|
38
|
+
/**
|
|
39
|
+
* @see https://tc39.es/ecma262/#sec-ecmascript-data-types-and-values
|
|
40
|
+
*/
|
|
41
|
+
Type (object: unknown):
|
|
42
|
+
| 'Undefined'
|
|
43
|
+
| 'Boolean'
|
|
44
|
+
| 'String'
|
|
45
|
+
| 'Symbol'
|
|
46
|
+
| 'Number'
|
|
47
|
+
| 'BigInt'
|
|
48
|
+
| 'Null'
|
|
49
|
+
| 'Object'
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* @see https://webidl.spec.whatwg.org/#abstract-opdef-converttoint
|
|
53
|
+
*/
|
|
54
|
+
ConvertToInt (
|
|
55
|
+
V: unknown,
|
|
56
|
+
bitLength: number,
|
|
57
|
+
signedness: 'signed' | 'unsigned',
|
|
58
|
+
opts?: ConvertToIntOpts
|
|
59
|
+
): number
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* @see https://webidl.spec.whatwg.org/#abstract-opdef-converttoint
|
|
63
|
+
*/
|
|
64
|
+
IntegerPart (N: number): number
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Stringifies {@param V}
|
|
68
|
+
*/
|
|
69
|
+
Stringify (V: any): string
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Mark a value as uncloneable for Node.js.
|
|
73
|
+
* This is only effective in some newer Node.js versions.
|
|
74
|
+
*/
|
|
75
|
+
markAsUncloneable (V: any): void
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
interface WebidlConverters {
|
|
79
|
+
/**
|
|
80
|
+
* @see https://webidl.spec.whatwg.org/#es-DOMString
|
|
81
|
+
*/
|
|
82
|
+
DOMString (V: unknown, prefix: string, argument: string, opts?: {
|
|
83
|
+
legacyNullToEmptyString: boolean
|
|
84
|
+
}): string
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* @see https://webidl.spec.whatwg.org/#es-ByteString
|
|
88
|
+
*/
|
|
89
|
+
ByteString (V: unknown, prefix: string, argument: string): string
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* @see https://webidl.spec.whatwg.org/#es-USVString
|
|
93
|
+
*/
|
|
94
|
+
USVString (V: unknown): string
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* @see https://webidl.spec.whatwg.org/#es-boolean
|
|
98
|
+
*/
|
|
99
|
+
boolean (V: unknown): boolean
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* @see https://webidl.spec.whatwg.org/#es-any
|
|
103
|
+
*/
|
|
104
|
+
any <Value>(V: Value): Value
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* @see https://webidl.spec.whatwg.org/#es-long-long
|
|
108
|
+
*/
|
|
109
|
+
['long long'] (V: unknown): number
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* @see https://webidl.spec.whatwg.org/#es-unsigned-long-long
|
|
113
|
+
*/
|
|
114
|
+
['unsigned long long'] (V: unknown): number
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* @see https://webidl.spec.whatwg.org/#es-unsigned-long
|
|
118
|
+
*/
|
|
119
|
+
['unsigned long'] (V: unknown): number
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* @see https://webidl.spec.whatwg.org/#es-unsigned-short
|
|
123
|
+
*/
|
|
124
|
+
['unsigned short'] (V: unknown, opts?: ConvertToIntOpts): number
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* @see https://webidl.spec.whatwg.org/#idl-ArrayBuffer
|
|
128
|
+
*/
|
|
129
|
+
ArrayBuffer (V: unknown): ArrayBufferLike
|
|
130
|
+
ArrayBuffer (V: unknown, opts: { allowShared: false }): ArrayBuffer
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* @see https://webidl.spec.whatwg.org/#es-buffer-source-types
|
|
134
|
+
*/
|
|
135
|
+
TypedArray (
|
|
136
|
+
V: unknown,
|
|
137
|
+
TypedArray: NodeJS.TypedArray | ArrayBufferLike
|
|
138
|
+
): NodeJS.TypedArray | ArrayBufferLike
|
|
139
|
+
TypedArray (
|
|
140
|
+
V: unknown,
|
|
141
|
+
TypedArray: NodeJS.TypedArray | ArrayBufferLike,
|
|
142
|
+
opts?: { allowShared: false }
|
|
143
|
+
): NodeJS.TypedArray | ArrayBuffer
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* @see https://webidl.spec.whatwg.org/#es-buffer-source-types
|
|
147
|
+
*/
|
|
148
|
+
DataView (V: unknown, opts?: { allowShared: boolean }): DataView
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* @see https://webidl.spec.whatwg.org/#BufferSource
|
|
152
|
+
*/
|
|
153
|
+
BufferSource (
|
|
154
|
+
V: unknown,
|
|
155
|
+
opts?: { allowShared: boolean }
|
|
156
|
+
): NodeJS.TypedArray | ArrayBufferLike | DataView
|
|
157
|
+
|
|
158
|
+
['sequence<ByteString>']: SequenceConverter<string>
|
|
159
|
+
|
|
160
|
+
['sequence<sequence<ByteString>>']: SequenceConverter<string[]>
|
|
161
|
+
|
|
162
|
+
['record<ByteString, ByteString>']: RecordConverter<string, string>
|
|
163
|
+
|
|
164
|
+
[Key: string]: (...args: any[]) => unknown
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
export interface Webidl {
|
|
168
|
+
errors: WebidlErrors
|
|
169
|
+
util: WebidlUtil
|
|
170
|
+
converters: WebidlConverters
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* @description Performs a brand-check on {@param V} to ensure it is a
|
|
174
|
+
* {@param cls} object.
|
|
175
|
+
*/
|
|
176
|
+
brandCheck <Interface>(V: unknown, cls: Interface, opts?: { strict?: boolean }): asserts V is Interface
|
|
177
|
+
|
|
178
|
+
/**
|
|
179
|
+
* @see https://webidl.spec.whatwg.org/#es-sequence
|
|
180
|
+
* @description Convert a value, V, to a WebIDL sequence type.
|
|
181
|
+
*/
|
|
182
|
+
sequenceConverter <Type>(C: Converter<Type>): SequenceConverter<Type>
|
|
183
|
+
|
|
184
|
+
illegalConstructor (): never
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* @see https://webidl.spec.whatwg.org/#es-to-record
|
|
188
|
+
* @description Convert a value, V, to a WebIDL record type.
|
|
189
|
+
*/
|
|
190
|
+
recordConverter <K extends string, V>(
|
|
191
|
+
keyConverter: Converter<K>,
|
|
192
|
+
valueConverter: Converter<V>
|
|
193
|
+
): RecordConverter<K, V>
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* Similar to {@link Webidl.brandCheck} but allows skipping the check if third party
|
|
197
|
+
* interfaces are allowed.
|
|
198
|
+
*/
|
|
199
|
+
interfaceConverter <Interface>(cls: Interface): (
|
|
200
|
+
V: unknown,
|
|
201
|
+
opts?: { strict: boolean }
|
|
202
|
+
) => asserts V is typeof cls
|
|
203
|
+
|
|
204
|
+
// TODO(@KhafraDev): a type could likely be implemented that can infer the return type
|
|
205
|
+
// from the converters given?
|
|
206
|
+
/**
|
|
207
|
+
* Converts a value, V, to a WebIDL dictionary types. Allows limiting which keys are
|
|
208
|
+
* allowed, values allowed, optional and required keys. Auto converts the value to
|
|
209
|
+
* a type given a converter.
|
|
210
|
+
*/
|
|
211
|
+
dictionaryConverter (converters: {
|
|
212
|
+
key: string,
|
|
213
|
+
defaultValue?: () => unknown,
|
|
214
|
+
required?: boolean,
|
|
215
|
+
converter: (...args: unknown[]) => unknown,
|
|
216
|
+
allowedValues?: unknown[]
|
|
217
|
+
}[]): (V: unknown) => Record<string, unknown>
|
|
218
|
+
|
|
219
|
+
/**
|
|
220
|
+
* @see https://webidl.spec.whatwg.org/#idl-nullable-type
|
|
221
|
+
* @description allows a type, V, to be null
|
|
222
|
+
*/
|
|
223
|
+
nullableConverter <T>(
|
|
224
|
+
converter: Converter<T>
|
|
225
|
+
): (V: unknown) => ReturnType<typeof converter> | null
|
|
226
|
+
|
|
227
|
+
argumentLengthCheck (args: { length: number }, min: number, context: string): void
|
|
228
|
+
}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
|
|
3
|
+
import type { Blob } from 'buffer'
|
|
4
|
+
import type { MessagePort } from 'worker_threads'
|
|
5
|
+
import {
|
|
6
|
+
EventInit,
|
|
7
|
+
EventListenerOptions,
|
|
8
|
+
AddEventListenerOptions,
|
|
9
|
+
EventListenerOrEventListenerObject
|
|
10
|
+
} from './patch'
|
|
11
|
+
import Dispatcher from './dispatcher'
|
|
12
|
+
import { HeadersInit } from './fetch'
|
|
13
|
+
|
|
14
|
+
export type BinaryType = 'blob' | 'arraybuffer'
|
|
15
|
+
|
|
16
|
+
interface WebSocketEventMap {
|
|
17
|
+
close: CloseEvent
|
|
18
|
+
error: ErrorEvent
|
|
19
|
+
message: MessageEvent
|
|
20
|
+
open: Event
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
interface WebSocket extends EventTarget {
|
|
24
|
+
binaryType: BinaryType
|
|
25
|
+
|
|
26
|
+
readonly bufferedAmount: number
|
|
27
|
+
readonly extensions: string
|
|
28
|
+
|
|
29
|
+
onclose: ((this: WebSocket, ev: WebSocketEventMap['close']) => any) | null
|
|
30
|
+
onerror: ((this: WebSocket, ev: WebSocketEventMap['error']) => any) | null
|
|
31
|
+
onmessage: ((this: WebSocket, ev: WebSocketEventMap['message']) => any) | null
|
|
32
|
+
onopen: ((this: WebSocket, ev: WebSocketEventMap['open']) => any) | null
|
|
33
|
+
|
|
34
|
+
readonly protocol: string
|
|
35
|
+
readonly readyState: number
|
|
36
|
+
readonly url: string
|
|
37
|
+
|
|
38
|
+
close(code?: number, reason?: string): void
|
|
39
|
+
send(data: string | ArrayBufferLike | Blob | ArrayBufferView): void
|
|
40
|
+
|
|
41
|
+
readonly CLOSED: number
|
|
42
|
+
readonly CLOSING: number
|
|
43
|
+
readonly CONNECTING: number
|
|
44
|
+
readonly OPEN: number
|
|
45
|
+
|
|
46
|
+
addEventListener<K extends keyof WebSocketEventMap>(
|
|
47
|
+
type: K,
|
|
48
|
+
listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any,
|
|
49
|
+
options?: boolean | AddEventListenerOptions
|
|
50
|
+
): void
|
|
51
|
+
addEventListener(
|
|
52
|
+
type: string,
|
|
53
|
+
listener: EventListenerOrEventListenerObject,
|
|
54
|
+
options?: boolean | AddEventListenerOptions
|
|
55
|
+
): void
|
|
56
|
+
removeEventListener<K extends keyof WebSocketEventMap>(
|
|
57
|
+
type: K,
|
|
58
|
+
listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any,
|
|
59
|
+
options?: boolean | EventListenerOptions
|
|
60
|
+
): void
|
|
61
|
+
removeEventListener(
|
|
62
|
+
type: string,
|
|
63
|
+
listener: EventListenerOrEventListenerObject,
|
|
64
|
+
options?: boolean | EventListenerOptions
|
|
65
|
+
): void
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export declare const WebSocket: {
|
|
69
|
+
prototype: WebSocket
|
|
70
|
+
new (url: string | URL, protocols?: string | string[] | WebSocketInit): WebSocket
|
|
71
|
+
readonly CLOSED: number
|
|
72
|
+
readonly CLOSING: number
|
|
73
|
+
readonly CONNECTING: number
|
|
74
|
+
readonly OPEN: number
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
interface CloseEventInit extends EventInit {
|
|
78
|
+
code?: number
|
|
79
|
+
reason?: string
|
|
80
|
+
wasClean?: boolean
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
interface CloseEvent extends Event {
|
|
84
|
+
readonly code: number
|
|
85
|
+
readonly reason: string
|
|
86
|
+
readonly wasClean: boolean
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export declare const CloseEvent: {
|
|
90
|
+
prototype: CloseEvent
|
|
91
|
+
new (type: string, eventInitDict?: CloseEventInit): CloseEvent
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
interface MessageEventInit<T = any> extends EventInit {
|
|
95
|
+
data?: T
|
|
96
|
+
lastEventId?: string
|
|
97
|
+
origin?: string
|
|
98
|
+
ports?: (typeof MessagePort)[]
|
|
99
|
+
source?: typeof MessagePort | null
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
interface MessageEvent<T = any> extends Event {
|
|
103
|
+
readonly data: T
|
|
104
|
+
readonly lastEventId: string
|
|
105
|
+
readonly origin: string
|
|
106
|
+
readonly ports: ReadonlyArray<typeof MessagePort>
|
|
107
|
+
readonly source: typeof MessagePort | null
|
|
108
|
+
initMessageEvent(
|
|
109
|
+
type: string,
|
|
110
|
+
bubbles?: boolean,
|
|
111
|
+
cancelable?: boolean,
|
|
112
|
+
data?: any,
|
|
113
|
+
origin?: string,
|
|
114
|
+
lastEventId?: string,
|
|
115
|
+
source?: typeof MessagePort | null,
|
|
116
|
+
ports?: (typeof MessagePort)[]
|
|
117
|
+
): void;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
export declare const MessageEvent: {
|
|
121
|
+
prototype: MessageEvent
|
|
122
|
+
new<T>(type: string, eventInitDict?: MessageEventInit<T>): MessageEvent<T>
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
interface ErrorEventInit extends EventInit {
|
|
126
|
+
message?: string
|
|
127
|
+
filename?: string
|
|
128
|
+
lineno?: number
|
|
129
|
+
colno?: number
|
|
130
|
+
error?: any
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
interface ErrorEvent extends Event {
|
|
134
|
+
readonly message: string
|
|
135
|
+
readonly filename: string
|
|
136
|
+
readonly lineno: number
|
|
137
|
+
readonly colno: number
|
|
138
|
+
readonly error: any
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
export declare const ErrorEvent: {
|
|
142
|
+
prototype: ErrorEvent
|
|
143
|
+
new (type: string, eventInitDict?: ErrorEventInit): ErrorEvent
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
interface WebSocketInit {
|
|
147
|
+
protocols?: string | string[],
|
|
148
|
+
dispatcher?: Dispatcher,
|
|
149
|
+
headers?: HeadersInit
|
|
150
|
+
}
|
|
@@ -1,195 +0,0 @@
|
|
|
1
|
-
import { CREDITS_PROGRAM_KEYS, initThreadPool, Account, ProgramManager, ProvingKey, OfflineKeyProvider, OfflineQuery, OfflineSearchParams } from '@provablehq/sdk';
|
|
2
|
-
import { promises, writeFileSync } from 'fs';
|
|
3
|
-
import path from 'path';
|
|
4
|
-
import { fileURLToPath } from 'url';
|
|
5
|
-
|
|
6
|
-
async function downloadAndSaveKey(keyData, keysDirPath) {
|
|
7
|
-
const locatorParts = keyData.locator.split('/');
|
|
8
|
-
const fileName = locatorParts.pop();
|
|
9
|
-
const dirPath = path.join(keysDirPath, ...locatorParts);
|
|
10
|
-
await promises.mkdir(dirPath, { recursive: true });
|
|
11
|
-
const filePath = path.join(dirPath, `${fileName}.prover`);
|
|
12
|
-
try {
|
|
13
|
-
await promises.access(filePath);
|
|
14
|
-
return filePath;
|
|
15
|
-
}
|
|
16
|
-
catch (_a) {
|
|
17
|
-
const res = await fetch(keyData.prover);
|
|
18
|
-
const buffer = await res.arrayBuffer();
|
|
19
|
-
writeFileSync(filePath, new Uint8Array(buffer), { flag: 'wx' });
|
|
20
|
-
console.log(`Downloaded ${keyData.locator}.prover to ${filePath}`);
|
|
21
|
-
return filePath;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
async function preDownloadTransferKeys() {
|
|
25
|
-
const keyPaths = {};
|
|
26
|
-
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
27
|
-
const keysDirPath = path.join(__dirname, "keys");
|
|
28
|
-
await promises.mkdir(keysDirPath, { recursive: true });
|
|
29
|
-
for (const keyData of [CREDITS_PROGRAM_KEYS.transfer_public, CREDITS_PROGRAM_KEYS.fee_public, CREDITS_PROGRAM_KEYS.transfer_public_as_signer]) {
|
|
30
|
-
try {
|
|
31
|
-
keyPaths[keyData.locator] = await downloadAndSaveKey(keyData, keysDirPath);
|
|
32
|
-
}
|
|
33
|
-
catch (error) {
|
|
34
|
-
throw (`Failed to download ${keyData.locator} - ${error}`);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
return keyPaths;
|
|
38
|
-
}
|
|
39
|
-
async function preDownloadBondingKeys() {
|
|
40
|
-
const keyPaths = {};
|
|
41
|
-
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
42
|
-
const keysDirPath = path.join(__dirname, "keys");
|
|
43
|
-
await promises.mkdir(keysDirPath, { recursive: true });
|
|
44
|
-
for (const keyData of [CREDITS_PROGRAM_KEYS.bond_public, CREDITS_PROGRAM_KEYS.fee_public, CREDITS_PROGRAM_KEYS.unbond_public, CREDITS_PROGRAM_KEYS.claim_unbond_public]) {
|
|
45
|
-
try {
|
|
46
|
-
keyPaths[keyData.locator] = await downloadAndSaveKey(keyData, keysDirPath);
|
|
47
|
-
}
|
|
48
|
-
catch (error) {
|
|
49
|
-
throw (`Failed to download ${keyData.locator} - ${error}`);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
return keyPaths;
|
|
53
|
-
}
|
|
54
|
-
async function getLocalKey(filePath) {
|
|
55
|
-
try {
|
|
56
|
-
console.log("Reading key file:", filePath);
|
|
57
|
-
const buffer = await promises.readFile(filePath);
|
|
58
|
-
return new Uint8Array(buffer);
|
|
59
|
-
}
|
|
60
|
-
catch (error) {
|
|
61
|
-
console.error("Error reading file:", error);
|
|
62
|
-
throw error;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
await initThreadPool();
|
|
67
|
-
/// Build transfer public transaction without connection to the internet
|
|
68
|
-
async function buildTransferPublicTxOffline(recipientAddress, amount, latestStateRoot, keyPaths) {
|
|
69
|
-
// Create an offline program manager
|
|
70
|
-
const programManager = new ProgramManager();
|
|
71
|
-
// Create a temporary account for the execution of the program
|
|
72
|
-
const account = new Account();
|
|
73
|
-
programManager.setAccount(account);
|
|
74
|
-
// Create the proving keys from the key bytes on the offline machine
|
|
75
|
-
console.log("Creating proving keys from local key files");
|
|
76
|
-
const feePublicKeyBytes = await getLocalKey(keyPaths[CREDITS_PROGRAM_KEYS.fee_public.locator]);
|
|
77
|
-
const feePublicProvingKey = ProvingKey.fromBytes(feePublicKeyBytes);
|
|
78
|
-
const transferPublicProvingKey = ProvingKey.fromBytes(await getLocalKey(keyPaths[CREDITS_PROGRAM_KEYS.transfer_public.locator]));
|
|
79
|
-
// Create an offline key provider
|
|
80
|
-
console.log("Creating offline key provider");
|
|
81
|
-
const offlineKeyProvider = new OfflineKeyProvider();
|
|
82
|
-
// Insert the proving keys into the offline key provider. The key provider will automatically insert the verifying
|
|
83
|
-
// keys into the key manager.
|
|
84
|
-
console.log("Inserting proving keys into key provider");
|
|
85
|
-
offlineKeyProvider.insertFeePublicKeys(feePublicProvingKey);
|
|
86
|
-
try {
|
|
87
|
-
offlineKeyProvider.insertTransferPublicKeys(transferPublicProvingKey);
|
|
88
|
-
console.log("Successfully inserted proving key");
|
|
89
|
-
}
|
|
90
|
-
catch (err) {
|
|
91
|
-
console.error("Failed to insert proving key:", err);
|
|
92
|
-
}
|
|
93
|
-
// Create an offline query to complete the inclusion proof
|
|
94
|
-
let offlineQuery;
|
|
95
|
-
const blockHeight = 0;
|
|
96
|
-
// TODO this is a placeholder block height for now, which offlineQuery now requires
|
|
97
|
-
try {
|
|
98
|
-
const offlineQuery = new OfflineQuery(blockHeight, latestStateRoot);
|
|
99
|
-
console.log("Successfully created OfflineQuery", offlineQuery);
|
|
100
|
-
}
|
|
101
|
-
catch (err) {
|
|
102
|
-
console.error("Failed to create OfflineQuery:", err);
|
|
103
|
-
}
|
|
104
|
-
// Insert the key provider into the program manager
|
|
105
|
-
programManager.setKeyProvider(offlineKeyProvider);
|
|
106
|
-
// Build tne transfer_public transaction offline
|
|
107
|
-
console.log("Building transfer transaction offline");
|
|
108
|
-
return programManager.buildTransferPublicAsSignerTransaction(amount, recipientAddress.to_string(), 0.28, undefined, offlineQuery);
|
|
109
|
-
}
|
|
110
|
-
/// Build bonding and unbonding transactions without connection to the internet
|
|
111
|
-
async function buildBondingTxOffline(validatorAddress, withdrawalAddress, amount, latestStateRoot, keyPaths) {
|
|
112
|
-
// Create an offline program manager
|
|
113
|
-
const programManager = new ProgramManager();
|
|
114
|
-
// Create a temporary account for the execution of the program
|
|
115
|
-
const account = new Account();
|
|
116
|
-
programManager.setAccount(account);
|
|
117
|
-
// Create the proving keys from the key bytes on the offline machine
|
|
118
|
-
console.log("Creating proving keys from local key files");
|
|
119
|
-
const feePublicKeyBytes = await getLocalKey(keyPaths[CREDITS_PROGRAM_KEYS.fee_public.locator]);
|
|
120
|
-
const bondPublicKeyBytes = await getLocalKey(keyPaths[CREDITS_PROGRAM_KEYS.bond_public.locator]);
|
|
121
|
-
const unbondPublicKeyBytes = await getLocalKey(keyPaths[CREDITS_PROGRAM_KEYS.unbond_public.locator]);
|
|
122
|
-
const claimUnbondPublicKeyBytes = await getLocalKey(keyPaths[CREDITS_PROGRAM_KEYS.claim_unbond_public.locator]);
|
|
123
|
-
const feePublicProvingKey = ProvingKey.fromBytes(feePublicKeyBytes);
|
|
124
|
-
const bondPublicProvingKey = ProvingKey.fromBytes(bondPublicKeyBytes);
|
|
125
|
-
const unBondPublicProvingKey = ProvingKey.fromBytes(unbondPublicKeyBytes);
|
|
126
|
-
const claimUnbondPublicProvingKey = ProvingKey.fromBytes(claimUnbondPublicKeyBytes);
|
|
127
|
-
// Create an offline key provider to fetch keys without connection to the internet
|
|
128
|
-
console.log("Creating offline key provider");
|
|
129
|
-
const offlineKeyProvider = new OfflineKeyProvider();
|
|
130
|
-
// Insert the proving keys into the offline key provider
|
|
131
|
-
console.log("Inserting proving keys into key provider");
|
|
132
|
-
offlineKeyProvider.insertFeePublicKeys(feePublicProvingKey);
|
|
133
|
-
offlineKeyProvider.insertBondPublicKeys(bondPublicProvingKey);
|
|
134
|
-
offlineKeyProvider.insertUnbondPublicKeys(unBondPublicProvingKey);
|
|
135
|
-
offlineKeyProvider.insertClaimUnbondPublicKeys(claimUnbondPublicProvingKey);
|
|
136
|
-
// Insert the key provider into the program manager
|
|
137
|
-
programManager.setKeyProvider(offlineKeyProvider);
|
|
138
|
-
// Build the bonding transactions offline
|
|
139
|
-
console.log("Building a bond_public execution transaction offline");
|
|
140
|
-
const bondPublicOptions = {
|
|
141
|
-
keySearchParams: OfflineSearchParams.bondPublicKeyParams(),
|
|
142
|
-
offlineQuery: new OfflineQuery(0, latestStateRoot)
|
|
143
|
-
};
|
|
144
|
-
const bondTx = await programManager.buildBondPublicTransaction(validatorAddress.to_string(), withdrawalAddress.to_string(), amount, bondPublicOptions);
|
|
145
|
-
console.log("\nbond_public transaction built!\n");
|
|
146
|
-
const unbondPublicOptions = {
|
|
147
|
-
keySearchParams: OfflineSearchParams.unbondPublicKeyParams(),
|
|
148
|
-
offlineQuery: new OfflineQuery(0, latestStateRoot)
|
|
149
|
-
};
|
|
150
|
-
const unBondTx = await programManager.buildUnbondPublicTransaction(stakerAddress.to_string(), amount, unbondPublicOptions);
|
|
151
|
-
console.log("\nunbond_public transaction built!\n");
|
|
152
|
-
console.log("Building a claim_unbond_public transaction offline");
|
|
153
|
-
const claimUnbondPublicOptions = {
|
|
154
|
-
keySearchParams: OfflineSearchParams.claimUnbondPublicKeyParams(),
|
|
155
|
-
offlineQuery: new OfflineQuery(0, latestStateRoot)
|
|
156
|
-
};
|
|
157
|
-
const claimUnbondTx = await programManager.buildClaimUnbondPublicTransaction(stakerAddress.to_string(), claimUnbondPublicOptions);
|
|
158
|
-
console.log("\nclaim_unbond_public transaction built!\n");
|
|
159
|
-
return [bondTx, unBondTx, claimUnbondTx];
|
|
160
|
-
}
|
|
161
|
-
// -------------------ONLINE COMPONENT---------------------
|
|
162
|
-
// (Do this part on an internet connected machine)
|
|
163
|
-
// Download the needed keys for the functions we want to execute offline
|
|
164
|
-
const transferKeyPaths = await preDownloadTransferKeys();
|
|
165
|
-
const bondingKeyPaths = await preDownloadBondingKeys();
|
|
166
|
-
//---------------------------------------------------------
|
|
167
|
-
// ------------------OFFLINE COMPONENT---------------------
|
|
168
|
-
// (Do this part on an offline machine)
|
|
169
|
-
// Get the latest state root from an online machine and enter it into an offline machine
|
|
170
|
-
const latestStateRoot = "sr1p93gpsezrjzdhcd2wujznx5s07k8qa39t6vfcej35zew8vn2jyrs46te8q";
|
|
171
|
-
// Build a transfer_public transaction
|
|
172
|
-
const stakerAddress = new Account().address();
|
|
173
|
-
const validatorAddress = new Account().address();
|
|
174
|
-
const withdrawalAddress = new Account().address();
|
|
175
|
-
const transferTx = await buildTransferPublicTxOffline(stakerAddress, 10000, latestStateRoot, transferKeyPaths);
|
|
176
|
-
console.log("Transfer transaction built offline!");
|
|
177
|
-
console.log(`\n---------------transfer_public transaction---------------\n${transferTx}`);
|
|
178
|
-
console.log(`---------------------------------------------------------`);
|
|
179
|
-
// Build bonding & unbonding transactions
|
|
180
|
-
const bondTransactions = await buildBondingTxOffline(validatorAddress, withdrawalAddress, 100, latestStateRoot, bondingKeyPaths);
|
|
181
|
-
console.log("Bonding transactions built offline!");
|
|
182
|
-
console.log(`\n-----------------bond_public transaction-----------------\n${bondTransactions[0]}`);
|
|
183
|
-
console.log(`---------------------------------------------------------`);
|
|
184
|
-
console.log(`\n----------------unbond_public transaction:---------------\n${bondTransactions[1]}`);
|
|
185
|
-
console.log(`---------------------------------------------------------`);
|
|
186
|
-
console.log(`\n-----------------claim_unbond_public transaction:---------------\n${bondTransactions[2]}`);
|
|
187
|
-
console.log(`---------------------------------------------------------`);
|
|
188
|
-
//---------------------------------------------------------
|
|
189
|
-
// -------------------ONLINE COMPONENT---------------------
|
|
190
|
-
// (Do this part on an internet connected machine)
|
|
191
|
-
// ONLINE COMPONENT (Uncomment this part to send the transaction to the Aleo Network on an internet connected machine)
|
|
192
|
-
// Submit the transaction to the network
|
|
193
|
-
// const transferTxId = await networkClient.submitTransaction(transferTx);
|
|
194
|
-
//---------------------------------------------------------
|
|
195
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|