@subsquid/evm-codec 0.0.0
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/README.md +3 -0
- package/lib/codec.d.ts +20 -0
- package/lib/codec.d.ts.map +1 -0
- package/lib/codec.js +5 -0
- package/lib/codec.js.map +1 -0
- package/lib/codecs/array.d.ts +22 -0
- package/lib/codecs/array.d.ts.map +1 -0
- package/lib/codecs/array.js +78 -0
- package/lib/codecs/array.js.map +1 -0
- package/lib/codecs/primitives.d.ts +70 -0
- package/lib/codecs/primitives.d.ts.map +1 -0
- package/lib/codecs/primitives.js +204 -0
- package/lib/codecs/primitives.js.map +1 -0
- package/lib/codecs/struct.d.ts +15 -0
- package/lib/codecs/struct.d.ts.map +1 -0
- package/lib/codecs/struct.js +65 -0
- package/lib/codecs/struct.js.map +1 -0
- package/lib/index.d.ts +5 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +23 -0
- package/lib/index.js.map +1 -0
- package/lib/sink.d.ts +42 -0
- package/lib/sink.d.ts.map +1 -0
- package/lib/sink.js +194 -0
- package/lib/sink.js.map +1 -0
- package/lib/src.d.ts +30 -0
- package/lib/src.d.ts.map +1 -0
- package/lib/src.js +141 -0
- package/lib/src.js.map +1 -0
- package/package.json +26 -0
- package/src/codec.ts +21 -0
- package/src/codecs/array.ts +83 -0
- package/src/codecs/primitives.ts +225 -0
- package/src/codecs/struct.ts +74 -0
- package/src/index.ts +4 -0
- package/src/sink.ts +213 -0
- package/src/src.ts +158 -0
package/README.md
ADDED
package/lib/codec.d.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Sink } from './sink';
|
|
2
|
+
import type { Src } from './src';
|
|
3
|
+
export declare const WORD_SIZE = 32;
|
|
4
|
+
export interface Codec<T> {
|
|
5
|
+
encode(sink: Sink, val: T): void;
|
|
6
|
+
decode(src: Src): T;
|
|
7
|
+
isDynamic: boolean;
|
|
8
|
+
slotsCount?: number;
|
|
9
|
+
}
|
|
10
|
+
export type Struct = {
|
|
11
|
+
[key: string]: Codec<any>;
|
|
12
|
+
};
|
|
13
|
+
type Pretty<T> = {
|
|
14
|
+
[K in keyof T]: T[K];
|
|
15
|
+
} & unknown;
|
|
16
|
+
export type StructTypes<T extends Struct> = Pretty<{
|
|
17
|
+
[K in keyof T]: T[K] extends Codec<infer U> ? U : never;
|
|
18
|
+
}>;
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=codec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../src/codec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAClC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAEhC,eAAO,MAAM,SAAS,KAAK,CAAA;AAE3B,MAAM,WAAW,KAAK,CAAC,CAAC;IACtB,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,CAAA;IAChC,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAA;IACnB,SAAS,EAAE,OAAO,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,MAAM,MAAM,GAAG;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAA;CAC1B,CAAA;AAED,KAAK,MAAM,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,GAAG,OAAO,CAAA;AAEnD,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,IAAI,MAAM,CAAC;KAChD,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;CACxD,CAAC,CAAA"}
|
package/lib/codec.js
ADDED
package/lib/codec.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codec.js","sourceRoot":"","sources":["../src/codec.ts"],"names":[],"mappings":";;;AAGa,QAAA,SAAS,GAAG,EAAE,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Codec } from '../codec';
|
|
2
|
+
import { Sink } from '../sink';
|
|
3
|
+
import { Src } from '../src';
|
|
4
|
+
export declare class ArrayCodec<const T> implements Codec<readonly T[]> {
|
|
5
|
+
readonly item: Codec<T>;
|
|
6
|
+
readonly isDynamic = true;
|
|
7
|
+
constructor(item: Codec<T>);
|
|
8
|
+
encode(sink: Sink, val: T[]): void;
|
|
9
|
+
decode(src: Src): T[];
|
|
10
|
+
}
|
|
11
|
+
export declare class FixedSizeArrayCodec<const T> implements Codec<readonly T[]> {
|
|
12
|
+
readonly item: Codec<T>;
|
|
13
|
+
readonly size: number;
|
|
14
|
+
isDynamic: boolean;
|
|
15
|
+
slotsCount: number;
|
|
16
|
+
constructor(item: Codec<T>, size: number);
|
|
17
|
+
encode(sink: Sink, val: T[]): void;
|
|
18
|
+
private encodeDynamic;
|
|
19
|
+
decode(src: Src): T[];
|
|
20
|
+
private decodeDynamic;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=array.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../src/codecs/array.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAa,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAC9B,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA;AAE5B,qBAAa,UAAU,CAAC,KAAK,CAAC,CAAC,CAAE,YAAW,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;aAGjC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAF1C,SAAgB,SAAS,QAAO;gBAEJ,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAE1C,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE;IAS3B,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,EAAE;CActB;AAED,qBAAa,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAE,YAAW,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;aAG1C,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;aAAkB,IAAI,EAAE,MAAM;IAFjE,SAAS,EAAE,OAAO,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;gBACG,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAkB,IAAI,EAAE,MAAM;IAKxE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE;IAY3B,OAAO,CAAC,aAAa;IAQrB,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,EAAE;IAWrB,OAAO,CAAC,aAAa;CAStB"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FixedSizeArrayCodec = exports.ArrayCodec = void 0;
|
|
4
|
+
const codec_1 = require("../codec");
|
|
5
|
+
class ArrayCodec {
|
|
6
|
+
constructor(item) {
|
|
7
|
+
this.item = item;
|
|
8
|
+
this.isDynamic = true;
|
|
9
|
+
}
|
|
10
|
+
encode(sink, val) {
|
|
11
|
+
sink.newDynamicDataArea(val.length);
|
|
12
|
+
for (let i = 0; i < val.length; i++) {
|
|
13
|
+
this.item.encode(sink, val[i]);
|
|
14
|
+
}
|
|
15
|
+
sink.increaseCurrentDataAreaSize(codec_1.WORD_SIZE);
|
|
16
|
+
sink.endCurrentDataArea();
|
|
17
|
+
}
|
|
18
|
+
decode(src) {
|
|
19
|
+
const offset = src.u32();
|
|
20
|
+
src.safeJump(offset);
|
|
21
|
+
const len = src.u32();
|
|
22
|
+
const tmpSrc = src.slice(offset + codec_1.WORD_SIZE);
|
|
23
|
+
const val = new Array(len);
|
|
24
|
+
for (let i = 0; i < val.length; i++) {
|
|
25
|
+
val[i] = this.item.decode(tmpSrc);
|
|
26
|
+
}
|
|
27
|
+
src.jumpBack();
|
|
28
|
+
return val;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
exports.ArrayCodec = ArrayCodec;
|
|
32
|
+
class FixedSizeArrayCodec {
|
|
33
|
+
constructor(item, size) {
|
|
34
|
+
this.item = item;
|
|
35
|
+
this.size = size;
|
|
36
|
+
this.isDynamic = item.isDynamic && size > 0;
|
|
37
|
+
this.slotsCount = this.isDynamic ? 1 : size;
|
|
38
|
+
}
|
|
39
|
+
encode(sink, val) {
|
|
40
|
+
if (val.length !== this.size) {
|
|
41
|
+
throw new Error(`invalid array length: ${val.length}. Expected: ${this.size}`);
|
|
42
|
+
}
|
|
43
|
+
if (this.isDynamic) {
|
|
44
|
+
return this.encodeDynamic(sink, val);
|
|
45
|
+
}
|
|
46
|
+
for (let i = 0; i < this.size; i++) {
|
|
47
|
+
this.item.encode(sink, val[i]);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
encodeDynamic(sink, val) {
|
|
51
|
+
sink.newStaticDataArea(this.size);
|
|
52
|
+
for (let i = 0; i < val.length; i++) {
|
|
53
|
+
this.item.encode(sink, val[i]);
|
|
54
|
+
}
|
|
55
|
+
sink.endCurrentDataArea();
|
|
56
|
+
}
|
|
57
|
+
decode(src) {
|
|
58
|
+
if (this.isDynamic) {
|
|
59
|
+
return this.decodeDynamic(src);
|
|
60
|
+
}
|
|
61
|
+
let val = new Array(this.size);
|
|
62
|
+
for (let i = 0; i < val.length; i++) {
|
|
63
|
+
val[i] = this.item.decode(src);
|
|
64
|
+
}
|
|
65
|
+
return val;
|
|
66
|
+
}
|
|
67
|
+
decodeDynamic(src) {
|
|
68
|
+
const offset = src.u32();
|
|
69
|
+
const tmpSrc = src.slice(offset);
|
|
70
|
+
let val = new Array(this.size);
|
|
71
|
+
for (let i = 0; i < val.length; i++) {
|
|
72
|
+
val[i] = this.item.decode(tmpSrc);
|
|
73
|
+
}
|
|
74
|
+
return val;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
exports.FixedSizeArrayCodec = FixedSizeArrayCodec;
|
|
78
|
+
//# sourceMappingURL=array.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"array.js","sourceRoot":"","sources":["../../src/codecs/array.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { Codec } from '../codec';
|
|
2
|
+
import { Sink } from '../sink';
|
|
3
|
+
import { Src } from '../src';
|
|
4
|
+
import { StructCodec } from './struct';
|
|
5
|
+
export declare const bool: Codec<boolean>;
|
|
6
|
+
export declare const uint8: Codec<number>;
|
|
7
|
+
export declare const int8: Codec<number>;
|
|
8
|
+
export declare const uint16: Codec<number>;
|
|
9
|
+
export declare const int16: Codec<number>;
|
|
10
|
+
export declare const uint32: Codec<number>;
|
|
11
|
+
export declare const int32: Codec<number>;
|
|
12
|
+
export declare const uint64: Codec<bigint>;
|
|
13
|
+
export declare const int64: Codec<bigint>;
|
|
14
|
+
export declare const uint128: Codec<bigint>;
|
|
15
|
+
export declare const int128: Codec<bigint>;
|
|
16
|
+
export declare const uint256: Codec<bigint>;
|
|
17
|
+
export declare const int256: Codec<bigint>;
|
|
18
|
+
export declare const string: {
|
|
19
|
+
readonly encode: (sink: Sink, val: string) => void;
|
|
20
|
+
readonly decode: (src: Src) => string;
|
|
21
|
+
readonly isDynamic: true;
|
|
22
|
+
};
|
|
23
|
+
export declare const bytes: {
|
|
24
|
+
readonly encode: (sink: Sink, val: Uint8Array) => void;
|
|
25
|
+
readonly decode: (src: Src) => Uint8Array;
|
|
26
|
+
readonly isDynamic: true;
|
|
27
|
+
};
|
|
28
|
+
export declare const bytes0: Codec<Uint8Array>;
|
|
29
|
+
export declare const bytes1: Codec<Uint8Array>;
|
|
30
|
+
export declare const bytes2: Codec<Uint8Array>;
|
|
31
|
+
export declare const bytes3: Codec<Uint8Array>;
|
|
32
|
+
export declare const bytes4: Codec<Uint8Array>;
|
|
33
|
+
export declare const bytes5: Codec<Uint8Array>;
|
|
34
|
+
export declare const bytes6: Codec<Uint8Array>;
|
|
35
|
+
export declare const bytes7: Codec<Uint8Array>;
|
|
36
|
+
export declare const bytes8: Codec<Uint8Array>;
|
|
37
|
+
export declare const bytes9: Codec<Uint8Array>;
|
|
38
|
+
export declare const bytes10: Codec<Uint8Array>;
|
|
39
|
+
export declare const bytes11: Codec<Uint8Array>;
|
|
40
|
+
export declare const bytes12: Codec<Uint8Array>;
|
|
41
|
+
export declare const bytes13: Codec<Uint8Array>;
|
|
42
|
+
export declare const bytes14: Codec<Uint8Array>;
|
|
43
|
+
export declare const bytes15: Codec<Uint8Array>;
|
|
44
|
+
export declare const bytes16: Codec<Uint8Array>;
|
|
45
|
+
export declare const bytes17: Codec<Uint8Array>;
|
|
46
|
+
export declare const bytes18: Codec<Uint8Array>;
|
|
47
|
+
export declare const bytes19: Codec<Uint8Array>;
|
|
48
|
+
export declare const bytes20: Codec<Uint8Array>;
|
|
49
|
+
export declare const bytes21: Codec<Uint8Array>;
|
|
50
|
+
export declare const bytes22: Codec<Uint8Array>;
|
|
51
|
+
export declare const bytes23: Codec<Uint8Array>;
|
|
52
|
+
export declare const bytes24: Codec<Uint8Array>;
|
|
53
|
+
export declare const bytes25: Codec<Uint8Array>;
|
|
54
|
+
export declare const bytes26: Codec<Uint8Array>;
|
|
55
|
+
export declare const bytes27: Codec<Uint8Array>;
|
|
56
|
+
export declare const bytes28: Codec<Uint8Array>;
|
|
57
|
+
export declare const bytes29: Codec<Uint8Array>;
|
|
58
|
+
export declare const bytes30: Codec<Uint8Array>;
|
|
59
|
+
export declare const bytes31: Codec<Uint8Array>;
|
|
60
|
+
export declare const bytes32: Codec<Uint8Array>;
|
|
61
|
+
export declare const address: Codec<string>;
|
|
62
|
+
export declare const fixedSizeArray: <T>(item: Codec<T>, size: number) => Codec<T[]>;
|
|
63
|
+
export declare const array: <T>(item: Codec<T>) => Codec<T[]>;
|
|
64
|
+
type Struct = {
|
|
65
|
+
[key: string]: Codec<any>;
|
|
66
|
+
};
|
|
67
|
+
export declare const struct: <const T extends Struct>(components: T) => StructCodec<T>;
|
|
68
|
+
export declare const tuple: <const T extends Struct>(components: T) => StructCodec<T>;
|
|
69
|
+
export {};
|
|
70
|
+
//# sourceMappingURL=primitives.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../src/codecs/primitives.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAC9B,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA;AAE5B,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAEtC,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,OAAO,CAQ/B,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,CAQ/B,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,MAAM,CAQ9B,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,MAAM,CAQhC,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,CAQ/B,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,MAAM,CAQhC,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,CAQ/B,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,MAAM,CAQhC,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,CAQ/B,CAAA;AAED,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,MAAM,CAQjC,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,MAAM,CAQhC,CAAA;AAED,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,MAAM,CAQjC,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,MAAM,CAQhC,CAAA;AAED,eAAO,MAAM,MAAM;4BACJ,IAAI,OAAO,MAAM;2BAKlB,GAAG,KAAG,MAAM;;CAIzB,CAAA;AAED,eAAO,MAAM,KAAK;4BACH,IAAI,OAAO,UAAU;2BAKtB,GAAG,KAAG,UAAU;;CAI7B,CAAA;AAYD,eAAO,MAAM,MAAM,mBAAY,CAAA;AAC/B,eAAO,MAAM,MAAM,mBAAY,CAAA;AAC/B,eAAO,MAAM,MAAM,mBAAY,CAAA;AAC/B,eAAO,MAAM,MAAM,mBAAY,CAAA;AAC/B,eAAO,MAAM,MAAM,mBAAY,CAAA;AAC/B,eAAO,MAAM,MAAM,mBAAY,CAAA;AAC/B,eAAO,MAAM,MAAM,mBAAY,CAAA;AAC/B,eAAO,MAAM,MAAM,mBAAY,CAAA;AAC/B,eAAO,MAAM,MAAM,mBAAY,CAAA;AAC/B,eAAO,MAAM,MAAM,mBAAY,CAAA;AAC/B,eAAO,MAAM,OAAO,mBAAa,CAAA;AACjC,eAAO,MAAM,OAAO,mBAAa,CAAA;AACjC,eAAO,MAAM,OAAO,mBAAa,CAAA;AACjC,eAAO,MAAM,OAAO,mBAAa,CAAA;AACjC,eAAO,MAAM,OAAO,mBAAa,CAAA;AACjC,eAAO,MAAM,OAAO,mBAAa,CAAA;AACjC,eAAO,MAAM,OAAO,mBAAa,CAAA;AACjC,eAAO,MAAM,OAAO,mBAAa,CAAA;AACjC,eAAO,MAAM,OAAO,mBAAa,CAAA;AACjC,eAAO,MAAM,OAAO,mBAAa,CAAA;AACjC,eAAO,MAAM,OAAO,mBAAa,CAAA;AACjC,eAAO,MAAM,OAAO,mBAAa,CAAA;AACjC,eAAO,MAAM,OAAO,mBAAa,CAAA;AACjC,eAAO,MAAM,OAAO,mBAAa,CAAA;AACjC,eAAO,MAAM,OAAO,mBAAa,CAAA;AACjC,eAAO,MAAM,OAAO,mBAAa,CAAA;AACjC,eAAO,MAAM,OAAO,mBAAa,CAAA;AACjC,eAAO,MAAM,OAAO,mBAAa,CAAA;AACjC,eAAO,MAAM,OAAO,mBAAa,CAAA;AACjC,eAAO,MAAM,OAAO,mBAAa,CAAA;AACjC,eAAO,MAAM,OAAO,mBAAa,CAAA;AACjC,eAAO,MAAM,OAAO,mBAAa,CAAA;AACjC,eAAO,MAAM,OAAO,mBAAa,CAAA;AAEjC,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,MAAM,CAQjC,CAAA;AAED,eAAO,MAAM,cAAc,4BAA6B,MAAM,eAAoD,CAAA;AAElH,eAAO,MAAM,KAAK,mCAA0D,CAAA;AAE5E,KAAK,MAAM,GAAG;IACZ,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAA;CAC1B,CAAA;AAED,eAAO,MAAM,MAAM,2DAA4E,CAAA;AAE/F,eAAO,MAAM,KAAK,2DAAS,CAAA"}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fixedSizeArray = exports.address = exports.bytes32 = exports.bytes31 = exports.bytes30 = exports.bytes29 = exports.bytes28 = exports.bytes27 = exports.bytes26 = exports.bytes25 = exports.bytes24 = exports.bytes23 = exports.bytes22 = exports.bytes21 = exports.bytes20 = exports.bytes19 = exports.bytes18 = exports.bytes17 = exports.bytes16 = exports.bytes15 = exports.bytes14 = exports.bytes13 = exports.bytes12 = exports.bytes11 = exports.bytes10 = exports.bytes9 = exports.bytes8 = exports.bytes7 = exports.bytes6 = exports.bytes5 = exports.bytes4 = exports.bytes3 = exports.bytes2 = exports.bytes1 = exports.bytes0 = exports.bytes = exports.string = exports.int256 = exports.uint256 = exports.int128 = exports.uint128 = exports.int64 = exports.uint64 = exports.int32 = exports.uint32 = exports.int16 = exports.uint16 = exports.int8 = exports.uint8 = exports.bool = void 0;
|
|
4
|
+
exports.tuple = exports.struct = exports.array = void 0;
|
|
5
|
+
const array_1 = require("./array");
|
|
6
|
+
const struct_1 = require("./struct");
|
|
7
|
+
exports.bool = {
|
|
8
|
+
encode: function (sink, val) {
|
|
9
|
+
sink.bool(val);
|
|
10
|
+
},
|
|
11
|
+
decode(src) {
|
|
12
|
+
return src.bool();
|
|
13
|
+
},
|
|
14
|
+
isDynamic: false,
|
|
15
|
+
};
|
|
16
|
+
exports.uint8 = {
|
|
17
|
+
encode(sink, val) {
|
|
18
|
+
sink.u8(val);
|
|
19
|
+
},
|
|
20
|
+
decode(src) {
|
|
21
|
+
return src.u8();
|
|
22
|
+
},
|
|
23
|
+
isDynamic: false,
|
|
24
|
+
};
|
|
25
|
+
exports.int8 = {
|
|
26
|
+
encode(sink, val) {
|
|
27
|
+
sink.i8(val);
|
|
28
|
+
},
|
|
29
|
+
decode(src) {
|
|
30
|
+
return src.i8();
|
|
31
|
+
},
|
|
32
|
+
isDynamic: false,
|
|
33
|
+
};
|
|
34
|
+
exports.uint16 = {
|
|
35
|
+
encode(sink, val) {
|
|
36
|
+
sink.u16(val);
|
|
37
|
+
},
|
|
38
|
+
decode(src) {
|
|
39
|
+
return src.u16();
|
|
40
|
+
},
|
|
41
|
+
isDynamic: false,
|
|
42
|
+
};
|
|
43
|
+
exports.int16 = {
|
|
44
|
+
encode(sink, val) {
|
|
45
|
+
sink.i16(val);
|
|
46
|
+
},
|
|
47
|
+
decode(src) {
|
|
48
|
+
return src.i16();
|
|
49
|
+
},
|
|
50
|
+
isDynamic: false,
|
|
51
|
+
};
|
|
52
|
+
exports.uint32 = {
|
|
53
|
+
encode(sink, val) {
|
|
54
|
+
sink.u32(val);
|
|
55
|
+
},
|
|
56
|
+
decode(src) {
|
|
57
|
+
return src.u32();
|
|
58
|
+
},
|
|
59
|
+
isDynamic: false,
|
|
60
|
+
};
|
|
61
|
+
exports.int32 = {
|
|
62
|
+
encode(sink, val) {
|
|
63
|
+
sink.i32(val);
|
|
64
|
+
},
|
|
65
|
+
decode(src) {
|
|
66
|
+
return src.i32();
|
|
67
|
+
},
|
|
68
|
+
isDynamic: false,
|
|
69
|
+
};
|
|
70
|
+
exports.uint64 = {
|
|
71
|
+
encode(sink, val) {
|
|
72
|
+
sink.u64(val);
|
|
73
|
+
},
|
|
74
|
+
decode(src) {
|
|
75
|
+
return src.u64();
|
|
76
|
+
},
|
|
77
|
+
isDynamic: false,
|
|
78
|
+
};
|
|
79
|
+
exports.int64 = {
|
|
80
|
+
encode(sink, val) {
|
|
81
|
+
sink.i64(val);
|
|
82
|
+
},
|
|
83
|
+
decode(src) {
|
|
84
|
+
return src.i64();
|
|
85
|
+
},
|
|
86
|
+
isDynamic: false,
|
|
87
|
+
};
|
|
88
|
+
exports.uint128 = {
|
|
89
|
+
encode(sink, val) {
|
|
90
|
+
sink.u128(val);
|
|
91
|
+
},
|
|
92
|
+
decode(src) {
|
|
93
|
+
return src.u128();
|
|
94
|
+
},
|
|
95
|
+
isDynamic: false,
|
|
96
|
+
};
|
|
97
|
+
exports.int128 = {
|
|
98
|
+
encode(sink, val) {
|
|
99
|
+
sink.i128(val);
|
|
100
|
+
},
|
|
101
|
+
decode(src) {
|
|
102
|
+
return src.i128();
|
|
103
|
+
},
|
|
104
|
+
isDynamic: false,
|
|
105
|
+
};
|
|
106
|
+
exports.uint256 = {
|
|
107
|
+
encode(sink, val) {
|
|
108
|
+
sink.u256(val);
|
|
109
|
+
},
|
|
110
|
+
decode(src) {
|
|
111
|
+
return src.u256();
|
|
112
|
+
},
|
|
113
|
+
isDynamic: false,
|
|
114
|
+
};
|
|
115
|
+
exports.int256 = {
|
|
116
|
+
encode(sink, val) {
|
|
117
|
+
sink.i256(val);
|
|
118
|
+
},
|
|
119
|
+
decode(src) {
|
|
120
|
+
return src.i256();
|
|
121
|
+
},
|
|
122
|
+
isDynamic: false,
|
|
123
|
+
};
|
|
124
|
+
exports.string = {
|
|
125
|
+
encode(sink, val) {
|
|
126
|
+
sink.newStaticDataArea();
|
|
127
|
+
sink.string(val);
|
|
128
|
+
sink.endCurrentDataArea();
|
|
129
|
+
},
|
|
130
|
+
decode(src) {
|
|
131
|
+
return src.string();
|
|
132
|
+
},
|
|
133
|
+
isDynamic: true,
|
|
134
|
+
};
|
|
135
|
+
exports.bytes = {
|
|
136
|
+
encode(sink, val) {
|
|
137
|
+
sink.newStaticDataArea();
|
|
138
|
+
sink.bytes(val);
|
|
139
|
+
sink.endCurrentDataArea();
|
|
140
|
+
},
|
|
141
|
+
decode(src) {
|
|
142
|
+
return src.bytes();
|
|
143
|
+
},
|
|
144
|
+
isDynamic: true,
|
|
145
|
+
};
|
|
146
|
+
const bytesN = (size) => ({
|
|
147
|
+
encode(sink, val) {
|
|
148
|
+
sink.staticBytes(size, val);
|
|
149
|
+
},
|
|
150
|
+
decode(src) {
|
|
151
|
+
return src.staticBytes(size);
|
|
152
|
+
},
|
|
153
|
+
isDynamic: false,
|
|
154
|
+
});
|
|
155
|
+
exports.bytes0 = bytesN(0);
|
|
156
|
+
exports.bytes1 = bytesN(1);
|
|
157
|
+
exports.bytes2 = bytesN(2);
|
|
158
|
+
exports.bytes3 = bytesN(3);
|
|
159
|
+
exports.bytes4 = bytesN(4);
|
|
160
|
+
exports.bytes5 = bytesN(5);
|
|
161
|
+
exports.bytes6 = bytesN(6);
|
|
162
|
+
exports.bytes7 = bytesN(7);
|
|
163
|
+
exports.bytes8 = bytesN(8);
|
|
164
|
+
exports.bytes9 = bytesN(9);
|
|
165
|
+
exports.bytes10 = bytesN(10);
|
|
166
|
+
exports.bytes11 = bytesN(11);
|
|
167
|
+
exports.bytes12 = bytesN(12);
|
|
168
|
+
exports.bytes13 = bytesN(13);
|
|
169
|
+
exports.bytes14 = bytesN(14);
|
|
170
|
+
exports.bytes15 = bytesN(15);
|
|
171
|
+
exports.bytes16 = bytesN(16);
|
|
172
|
+
exports.bytes17 = bytesN(17);
|
|
173
|
+
exports.bytes18 = bytesN(18);
|
|
174
|
+
exports.bytes19 = bytesN(19);
|
|
175
|
+
exports.bytes20 = bytesN(20);
|
|
176
|
+
exports.bytes21 = bytesN(21);
|
|
177
|
+
exports.bytes22 = bytesN(22);
|
|
178
|
+
exports.bytes23 = bytesN(23);
|
|
179
|
+
exports.bytes24 = bytesN(24);
|
|
180
|
+
exports.bytes25 = bytesN(25);
|
|
181
|
+
exports.bytes26 = bytesN(26);
|
|
182
|
+
exports.bytes27 = bytesN(27);
|
|
183
|
+
exports.bytes28 = bytesN(28);
|
|
184
|
+
exports.bytes29 = bytesN(29);
|
|
185
|
+
exports.bytes30 = bytesN(30);
|
|
186
|
+
exports.bytes31 = bytesN(31);
|
|
187
|
+
exports.bytes32 = bytesN(32);
|
|
188
|
+
exports.address = {
|
|
189
|
+
encode(sink, val) {
|
|
190
|
+
sink.address(val);
|
|
191
|
+
},
|
|
192
|
+
decode(src) {
|
|
193
|
+
return src.address();
|
|
194
|
+
},
|
|
195
|
+
isDynamic: false,
|
|
196
|
+
};
|
|
197
|
+
const fixedSizeArray = (item, size) => new array_1.FixedSizeArrayCodec(item, size);
|
|
198
|
+
exports.fixedSizeArray = fixedSizeArray;
|
|
199
|
+
const array = (item) => new array_1.ArrayCodec(item);
|
|
200
|
+
exports.array = array;
|
|
201
|
+
const struct = (components) => new struct_1.StructCodec(components);
|
|
202
|
+
exports.struct = struct;
|
|
203
|
+
exports.tuple = exports.struct;
|
|
204
|
+
//# sourceMappingURL=primitives.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"primitives.js","sourceRoot":"","sources":["../../src/codecs/primitives.ts"],"names":[],"mappings":"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CAAC,CAAA;AAClB,QAAA,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;AAClB,QAAA,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;AAClB,QAAA,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;AAClB,QAAA,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;AAClB,QAAA,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;AAClB,QAAA,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;AAClB,QAAA,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AACpB,QAAA,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AACpB,QAAA,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AACpB,QAAA,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AACpB,QAAA,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AACpB,QAAA,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AACpB,QAAA,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AACpB,QAAA,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AACpB,QAAA,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AACpB,QAAA,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AACpB,QAAA,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AACpB,QAAA,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AACpB,QAAA,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AACpB,QAAA,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AACpB,QAAA,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AACpB,QAAA,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AACpB,QAAA,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AACpB,QAAA,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AACpB,QAAA,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AACpB,QAAA,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AACpB,QAAA,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AACpB,QAAA,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AACpB,QAAA,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AAEpB,QAAA,OAAO,GAAkB;IACpC,MAAM,CAAC,IAAU,EAAE,GAAW;QAC5B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACnB,CAAC;IACD,MAAM,CAAC,GAAQ;QACb,OAAO,GAAG,CAAC,OAAO,EAAE,CAAA;IACtB,CAAC;IACD,SAAS,EAAE,KAAK;CACjB,CAAA;AAEM,MAAM,cAAc,GAAG,CAAI,IAAc,EAAE,IAAY,EAAc,EAAE,CAAC,IAAI,2BAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;AAArG,QAAA,cAAc,kBAAuF;AAE3G,MAAM,KAAK,GAAG,CAAI,IAAc,EAAc,EAAE,CAAC,IAAI,kBAAU,CAAC,IAAI,CAAC,CAAA;AAA/D,QAAA,KAAK,SAA0D;AAMrE,MAAM,MAAM,GAAG,CAAyB,UAAa,EAAE,EAAE,CAAC,IAAI,oBAAW,CAAI,UAAU,CAAC,CAAA;AAAlF,QAAA,MAAM,UAA4E;AAElF,QAAA,KAAK,GAAG,cAAM,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Codec, Struct, StructTypes } from '../codec';
|
|
2
|
+
import { Sink } from '../sink';
|
|
3
|
+
import { Src } from '../src';
|
|
4
|
+
export declare class StructCodec<const T extends Struct> implements Codec<StructTypes<T>> {
|
|
5
|
+
readonly isDynamic: boolean;
|
|
6
|
+
readonly slotsCount: number;
|
|
7
|
+
private readonly childrenSlotsCount;
|
|
8
|
+
private readonly components;
|
|
9
|
+
constructor(components: T);
|
|
10
|
+
encode(sink: Sink, val: StructTypes<T>): void;
|
|
11
|
+
private encodeDynamic;
|
|
12
|
+
decode(src: Src): StructTypes<T>;
|
|
13
|
+
private decodeDynamic;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=struct.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"struct.d.ts","sourceRoot":"","sources":["../../src/codecs/struct.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAC9B,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA;AAU5B,qBAAa,WAAW,CAAC,KAAK,CAAC,CAAC,SAAS,MAAM,CAAE,YAAW,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAC/E,SAAgB,SAAS,EAAE,OAAO,CAAA;IAClC,SAAgB,UAAU,EAAE,MAAM,CAAA;IAClC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAQ;IAC3C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAG;gBAElB,UAAU,EAAE,CAAC;IAYlB,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI;IAWpD,OAAO,CAAC,aAAa;IASd,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC;IAYvC,OAAO,CAAC,aAAa;CAWtB"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StructCodec = void 0;
|
|
4
|
+
function slotsCount(codecs) {
|
|
5
|
+
let count = 0;
|
|
6
|
+
for (const codec of codecs) {
|
|
7
|
+
count += codec.slotsCount ?? 1;
|
|
8
|
+
}
|
|
9
|
+
return count;
|
|
10
|
+
}
|
|
11
|
+
class StructCodec {
|
|
12
|
+
constructor(components) {
|
|
13
|
+
this.components = components;
|
|
14
|
+
const codecs = Object.values(components);
|
|
15
|
+
this.isDynamic = codecs.some((codec) => codec.isDynamic);
|
|
16
|
+
this.childrenSlotsCount = slotsCount(codecs);
|
|
17
|
+
if (this.isDynamic) {
|
|
18
|
+
this.slotsCount = 1;
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
this.slotsCount = this.childrenSlotsCount;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
encode(sink, val) {
|
|
25
|
+
if (this.isDynamic) {
|
|
26
|
+
this.encodeDynamic(sink, val);
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
for (let i in this.components) {
|
|
30
|
+
let prop = this.components[i];
|
|
31
|
+
prop.encode(sink, val[i]);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
encodeDynamic(sink, val) {
|
|
35
|
+
sink.newStaticDataArea(this.childrenSlotsCount);
|
|
36
|
+
for (let i in this.components) {
|
|
37
|
+
let prop = this.components[i];
|
|
38
|
+
prop.encode(sink, val[i]);
|
|
39
|
+
}
|
|
40
|
+
sink.endCurrentDataArea();
|
|
41
|
+
}
|
|
42
|
+
decode(src) {
|
|
43
|
+
if (this.isDynamic) {
|
|
44
|
+
return this.decodeDynamic(src);
|
|
45
|
+
}
|
|
46
|
+
let result = {};
|
|
47
|
+
for (let i in this.components) {
|
|
48
|
+
let prop = this.components[i];
|
|
49
|
+
result[i] = prop.decode(src);
|
|
50
|
+
}
|
|
51
|
+
return result;
|
|
52
|
+
}
|
|
53
|
+
decodeDynamic(src) {
|
|
54
|
+
let result = {};
|
|
55
|
+
const offset = src.u32();
|
|
56
|
+
const tmpSrc = src.slice(offset);
|
|
57
|
+
for (let i in this.components) {
|
|
58
|
+
let prop = this.components[i];
|
|
59
|
+
result[i] = prop.decode(tmpSrc);
|
|
60
|
+
}
|
|
61
|
+
return result;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
exports.StructCodec = StructCodec;
|
|
65
|
+
//# sourceMappingURL=struct.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"struct.js","sourceRoot":"","sources":["../../src/codecs/struct.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AACzD,cAAc,qBAAqB,CAAA"}
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.Sink = exports.Src = void 0;
|
|
18
|
+
var src_1 = require("./src");
|
|
19
|
+
Object.defineProperty(exports, "Src", { enumerable: true, get: function () { return src_1.Src; } });
|
|
20
|
+
var sink_1 = require("./sink");
|
|
21
|
+
Object.defineProperty(exports, "Sink", { enumerable: true, get: function () { return sink_1.Sink; } });
|
|
22
|
+
__exportStar(require("./codecs/primitives"), exports);
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6BAA2B;AAAlB,0FAAA,GAAG,OAAA;AACZ,+BAA6B;AAApB,4FAAA,IAAI,OAAA;AAEb,sDAAmC"}
|
package/lib/sink.d.ts
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
export declare class Sink {
|
|
3
|
+
#private;
|
|
4
|
+
private pos;
|
|
5
|
+
private buf;
|
|
6
|
+
private view;
|
|
7
|
+
private stack;
|
|
8
|
+
constructor(fields: number, capacity?: number);
|
|
9
|
+
result(): Buffer;
|
|
10
|
+
toString(): string;
|
|
11
|
+
reserve(additional: number): void;
|
|
12
|
+
size(): number;
|
|
13
|
+
private _allocate;
|
|
14
|
+
u8(val: number): void;
|
|
15
|
+
i8(val: number): void;
|
|
16
|
+
u16(val: number): void;
|
|
17
|
+
i16(val: number): void;
|
|
18
|
+
u32(val: number): void;
|
|
19
|
+
i32(val: number): void;
|
|
20
|
+
u64(val: bigint): void;
|
|
21
|
+
i64(val: bigint): void;
|
|
22
|
+
u128(val: bigint): void;
|
|
23
|
+
i128(val: bigint): void;
|
|
24
|
+
u256(val: bigint): void;
|
|
25
|
+
i256(val: bigint): void;
|
|
26
|
+
bytes(val: Uint8Array): void;
|
|
27
|
+
staticBytes(len: number, val: Uint8Array): void;
|
|
28
|
+
address(val: string): void;
|
|
29
|
+
string(val: string): void;
|
|
30
|
+
bool(val: boolean): void;
|
|
31
|
+
/**
|
|
32
|
+
* @example
|
|
33
|
+
* @link [Solidity docs](https://docs.soliditylang.org/en/latest/abi-spec.html#use-of-dynamic-types)
|
|
34
|
+
*/
|
|
35
|
+
newStaticDataArea(slotsCount?: number): void;
|
|
36
|
+
newDynamicDataArea(slotsCount: number): void;
|
|
37
|
+
private currentDataAreaStart;
|
|
38
|
+
increaseCurrentDataAreaSize(amount: number): void;
|
|
39
|
+
private pushDataArea;
|
|
40
|
+
endCurrentDataArea(): void;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=sink.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sink.d.ts","sourceRoot":"","sources":["../src/sink.ts"],"names":[],"mappings":";AAGA,qBAAa,IAAI;;IACf,OAAO,CAAC,GAAG,CAAI;IACf,OAAO,CAAC,GAAG,CAAQ;IACnB,OAAO,CAAC,IAAI,CAAU;IACtB,OAAO,CAAC,KAAK,CAA6D;gBAC9D,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAa;IAUnD,MAAM,IAAI,MAAM;IAKhB,QAAQ;IAIR,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAMjC,IAAI;IAIJ,OAAO,CAAC,SAAS;IAQjB,EAAE,CAAC,GAAG,EAAE,MAAM;IAOd,EAAE,CAAC,GAAG,EAAE,MAAM;IAId,GAAG,CAAC,GAAG,EAAE,MAAM;IAOf,GAAG,CAAC,GAAG,EAAE,MAAM;IAIf,GAAG,CAAC,GAAG,EAAE,MAAM;IAOf,GAAG,CAAC,GAAG,EAAE,MAAM;IAIf,GAAG,CAAC,GAAG,EAAE,MAAM;IAOf,GAAG,CAAC,GAAG,EAAE,MAAM;IASf,IAAI,CAAC,GAAG,EAAE,MAAM;IAOhB,IAAI,CAAC,GAAG,EAAE,MAAM;IAUhB,IAAI,CAAC,GAAG,EAAE,MAAM;IAMhB,IAAI,CAAC,GAAG,EAAE,MAAM;IAMhB,KAAK,CAAC,GAAG,EAAE,UAAU;IAWrB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU;IAaxC,OAAO,CAAC,GAAG,EAAE,MAAM;IAInB,MAAM,CAAC,GAAG,EAAE,MAAM;IAWlB,IAAI,CAAC,GAAG,EAAE,OAAO;IAIjB;;;OAGG;IACH,iBAAiB,CAAC,UAAU,SAAI;IAShC,kBAAkB,CAAC,UAAU,EAAE,MAAM;IASrC,OAAO,CAAC,oBAAoB;IAIrB,2BAA2B,CAAC,MAAM,EAAE,MAAM;IAIjD,OAAO,CAAC,YAAY;IAUb,kBAAkB;CAM1B"}
|