@xyo-network/xl1-protocol-sdk 1.15.13 → 1.15.14
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/dist/neutral/block/hydrate/hydrateBlock.d.ts +1 -4
- package/dist/neutral/block/hydrate/hydrateBlock.d.ts.map +1 -1
- package/dist/neutral/block/primitives/index.d.ts +0 -1
- package/dist/neutral/block/primitives/index.d.ts.map +1 -1
- package/dist/neutral/block/primitives/model.d.ts +4 -20
- package/dist/neutral/block/primitives/model.d.ts.map +1 -1
- package/dist/neutral/block/primitives/payloads/index.d.ts +0 -3
- package/dist/neutral/block/primitives/payloads/index.d.ts.map +1 -1
- package/dist/neutral/block/primitives/transfers/transfersStepSummaryFromRange.d.ts +2 -2
- package/dist/neutral/block/primitives/transfers/transfersStepSummaryFromRange.d.ts.map +1 -1
- package/dist/neutral/block/primitives/transfers/transfersSummary.d.ts +1 -1
- package/dist/neutral/block/primitives/transfers/transfersSummary.d.ts.map +1 -1
- package/dist/neutral/eip-712/Payload.d.ts +24 -0
- package/dist/neutral/eip-712/Payload.d.ts.map +1 -0
- package/dist/neutral/eip-712/Types.d.ts +10 -0
- package/dist/neutral/eip-712/Types.d.ts.map +1 -0
- package/dist/neutral/eip-712/index.d.ts +5 -0
- package/dist/neutral/eip-712/index.d.ts.map +1 -0
- package/dist/neutral/eip-712/sign.d.ts +4 -0
- package/dist/neutral/eip-712/sign.d.ts.map +1 -0
- package/dist/neutral/eip-712/spec/fixtures.d.ts +4 -0
- package/dist/neutral/eip-712/spec/fixtures.d.ts.map +1 -0
- package/dist/neutral/eip-712/spec/signAndVerify.spec.d.ts +2 -0
- package/dist/neutral/eip-712/spec/signAndVerify.spec.d.ts.map +1 -0
- package/dist/neutral/eip-712/verify.d.ts +4 -0
- package/dist/neutral/eip-712/verify.d.ts.map +1 -0
- package/dist/neutral/index.d.ts +2 -1
- package/dist/neutral/index.d.ts.map +1 -1
- package/dist/neutral/index.mjs +421 -380
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/neutral/map/MapType.d.ts +3 -1
- package/dist/neutral/map/MapType.d.ts.map +1 -1
- package/dist/neutral/model/index.d.ts +1 -0
- package/dist/neutral/model/index.d.ts.map +1 -1
- package/dist/neutral/model/summary.d.ts +24 -0
- package/dist/neutral/model/summary.d.ts.map +1 -0
- package/dist/neutral/payloads/AddressPairPayload.d.ts.map +1 -0
- package/dist/neutral/{payload → payloads}/index.d.ts +1 -0
- package/dist/neutral/payloads/index.d.ts.map +1 -0
- package/dist/neutral/payloads/netBalancesForPayloads.d.ts.map +1 -0
- package/dist/neutral/payloads/netTransfersForPayloads.d.ts.map +1 -0
- package/dist/neutral/{block/primitives/payloads → payloads/summary}/BalancesStepSummary.d.ts +1 -1
- package/dist/neutral/payloads/summary/BalancesStepSummary.d.ts.map +1 -0
- package/dist/neutral/payloads/summary/StepSummary.d.ts.map +1 -0
- package/dist/neutral/{block/primitives/payloads → payloads/summary}/TransfersSummary.d.ts +1 -1
- package/dist/neutral/payloads/summary/TransfersSummary.d.ts.map +1 -0
- package/dist/neutral/payloads/summary/index.d.ts +4 -0
- package/dist/neutral/payloads/summary/index.d.ts.map +1 -0
- package/dist/neutral/primitives/index.d.ts +2 -0
- package/dist/neutral/primitives/index.d.ts.map +1 -1
- package/dist/neutral/primitives/readPayloadMapFromStore.d.ts +5 -0
- package/dist/neutral/primitives/readPayloadMapFromStore.d.ts.map +1 -0
- package/dist/neutral/{block/primitives → primitives/summary}/balances/balancesStepSummaryFromRange.d.ts +2 -2
- package/dist/neutral/primitives/summary/balances/balancesStepSummaryFromRange.d.ts.map +1 -0
- package/dist/neutral/{block/primitives → primitives/summary}/balances/balancesSummary.d.ts +1 -1
- package/dist/neutral/primitives/summary/balances/balancesSummary.d.ts.map +1 -0
- package/dist/neutral/primitives/summary/balances/index.d.ts.map +1 -0
- package/dist/neutral/primitives/summary/index.d.ts +3 -0
- package/dist/neutral/primitives/summary/index.d.ts.map +1 -0
- package/dist/neutral/primitives/summary/transfers/index.d.ts +3 -0
- package/dist/neutral/primitives/summary/transfers/index.d.ts.map +1 -0
- package/dist/neutral/primitives/summary/transfers/transfersStepSummaryFromRange.d.ts +6 -0
- package/dist/neutral/primitives/summary/transfers/transfersStepSummaryFromRange.d.ts.map +1 -0
- package/dist/neutral/primitives/summary/transfers/transfersSummary.d.ts +4 -0
- package/dist/neutral/primitives/summary/transfers/transfersSummary.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/block/hydrate/hydrateBlock.ts +1 -22
- package/src/block/primitives/index.ts +0 -1
- package/src/block/primitives/model.ts +9 -21
- package/src/block/primitives/payloads/index.ts +0 -3
- package/src/block/primitives/transfers/transfersStepSummaryFromRange.ts +3 -3
- package/src/block/primitives/transfers/transfersSummary.ts +1 -1
- package/src/eip-712/Payload.ts +31 -0
- package/src/eip-712/Types.ts +11 -0
- package/src/eip-712/index.ts +4 -0
- package/src/eip-712/sign.ts +15 -0
- package/src/eip-712/spec/fixtures.ts +27 -0
- package/src/eip-712/spec/signAndVerify.spec.ts +27 -0
- package/src/eip-712/verify.ts +12 -0
- package/src/index.ts +2 -1
- package/src/map/MapType.ts +5 -1
- package/src/model/index.ts +1 -0
- package/src/model/summary.ts +26 -0
- package/src/{payload → payloads}/index.ts +1 -0
- package/src/{block/primitives/payloads → payloads/summary}/BalancesStepSummary.ts +1 -1
- package/src/{block/primitives/payloads → payloads/summary}/TransfersSummary.ts +1 -1
- package/src/payloads/summary/index.ts +3 -0
- package/src/primitives/index.ts +2 -0
- package/src/primitives/readPayloadMapFromStore.ts +24 -0
- package/src/{block/primitives → primitives/summary}/balances/balancesStepSummaryFromRange.ts +7 -6
- package/src/{block/primitives → primitives/summary}/balances/balancesSummary.ts +2 -2
- package/src/primitives/summary/index.ts +2 -0
- package/src/primitives/summary/transfers/index.ts +2 -0
- package/src/primitives/summary/transfers/transfersStepSummaryFromRange.ts +96 -0
- package/src/primitives/summary/transfers/transfersSummary.ts +36 -0
- package/dist/neutral/block/primitives/balances/balancesStepSummaryFromRange.d.ts.map +0 -1
- package/dist/neutral/block/primitives/balances/balancesSummary.d.ts.map +0 -1
- package/dist/neutral/block/primitives/balances/index.d.ts.map +0 -1
- package/dist/neutral/block/primitives/payloads/BalancesStepSummary.d.ts.map +0 -1
- package/dist/neutral/block/primitives/payloads/StepSummary.d.ts.map +0 -1
- package/dist/neutral/block/primitives/payloads/TransfersSummary.d.ts.map +0 -1
- package/dist/neutral/payload/AddressPairPayload.d.ts.map +0 -1
- package/dist/neutral/payload/index.d.ts.map +0 -1
- package/dist/neutral/payload/netBalancesForPayloads.d.ts.map +0 -1
- package/dist/neutral/payload/netTransfersForPayloads.d.ts.map +0 -1
- /package/dist/neutral/{payload → payloads}/AddressPairPayload.d.ts +0 -0
- /package/dist/neutral/{payload → payloads}/netBalancesForPayloads.d.ts +0 -0
- /package/dist/neutral/{payload → payloads}/netTransfersForPayloads.d.ts +0 -0
- /package/dist/neutral/{block/primitives/payloads → payloads/summary}/StepSummary.d.ts +0 -0
- /package/dist/neutral/{block/primitives → primitives/summary}/balances/index.d.ts +0 -0
- /package/src/{payload → payloads}/AddressPairPayload.ts +0 -0
- /package/src/{payload → payloads}/netBalancesForPayloads.ts +0 -0
- /package/src/{payload → payloads}/netTransfersForPayloads.ts +0 -0
- /package/src/{block/primitives/payloads → payloads/summary}/StepSummary.ts +0 -0
- /package/src/{block/primitives → primitives/summary}/balances/index.ts +0 -0
|
@@ -2,5 +2,7 @@ import type { AsynchronousMapRead, AsynchronousMapWrite } from './AsynchronousMa
|
|
|
2
2
|
import type { SynchronousMapRead, SynchronousMapWrite } from './SynchronousMap.ts';
|
|
3
3
|
export type MapTypeWrite<TId, TData> = SynchronousMapWrite<TId, TData> | AsynchronousMapWrite<TId, TData>;
|
|
4
4
|
export type MapTypeRead<TId, TData> = SynchronousMapRead<TId, TData> | AsynchronousMapRead<TId, TData>;
|
|
5
|
-
export type
|
|
5
|
+
export type AsynchronousMapType<TId, TData> = AsynchronousMapRead<TId, TData> & AsynchronousMapWrite<TId, TData>;
|
|
6
|
+
export type SynchronousMapType<TId, TData> = SynchronousMapRead<TId, TData> & SynchronousMapWrite<TId, TData>;
|
|
7
|
+
export type MapType<TId, TData> = AsynchronousMapType<TId, TData> | SynchronousMapType<TId, TData>;
|
|
6
8
|
//# sourceMappingURL=MapType.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MapType.d.ts","sourceRoot":"","sources":["../../../src/map/MapType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AACrF,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAElF,MAAM,MAAM,YAAY,CAAC,GAAG,EAAE,KAAK,IAAI,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,oBAAoB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;AAEzG,MAAM,MAAM,WAAW,CAAC,GAAG,EAAE,KAAK,IAAI,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;AAEtG,MAAM,MAAM,OAAO,CAAC,GAAG,EAAE,KAAK,IAAI,
|
|
1
|
+
{"version":3,"file":"MapType.d.ts","sourceRoot":"","sources":["../../../src/map/MapType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AACrF,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAElF,MAAM,MAAM,YAAY,CAAC,GAAG,EAAE,KAAK,IAAI,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,oBAAoB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;AAEzG,MAAM,MAAM,WAAW,CAAC,GAAG,EAAE,KAAK,IAAI,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;AAEtG,MAAM,MAAM,mBAAmB,CAAC,GAAG,EAAE,KAAK,IAAI,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,oBAAoB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;AAEhH,MAAM,MAAM,kBAAkB,CAAC,GAAG,EAAE,KAAK,IAAI,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;AAE7G,MAAM,MAAM,OAAO,CAAC,GAAG,EAAE,KAAK,IAAI,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/model/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AACvC,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/model/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AACvC,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { Payload } from '@xyo-network/payload-model';
|
|
2
|
+
import type { Semaphore } from 'async-mutex';
|
|
3
|
+
import type { MapTypeRead, MapTypeWrite } from '../map/index.ts';
|
|
4
|
+
import type { BalancesStepSummary, TransfersStepSummary } from '../payloads/summary/index.ts';
|
|
5
|
+
import type { ChainContextRead } from './index.ts';
|
|
6
|
+
export interface ChainSummaryContextBase<TPayload extends Payload, T extends (MapTypeRead<string, TPayload> | MapTypeWrite<string, TPayload>)> {
|
|
7
|
+
stepSemaphores: Semaphore[];
|
|
8
|
+
summaryMap: T;
|
|
9
|
+
windowSize?: number;
|
|
10
|
+
}
|
|
11
|
+
export interface ChainSummaryContextRead<T extends Payload> extends ChainSummaryContextBase<T, MapTypeRead<string, T>>, ChainContextRead {
|
|
12
|
+
}
|
|
13
|
+
export interface ChainSummaryContextWrite<T extends Payload> extends ChainSummaryContextBase<T, MapTypeWrite<string, T>>, ChainContextRead {
|
|
14
|
+
}
|
|
15
|
+
export type ChainSummaryContext<T extends Payload> = ChainSummaryContextRead<T> & ChainSummaryContextWrite<T>;
|
|
16
|
+
export interface BalanceStepSummaryContextRead extends ChainSummaryContextRead<BalancesStepSummary> {
|
|
17
|
+
}
|
|
18
|
+
export interface BalanceStepSummaryContext extends ChainSummaryContext<BalancesStepSummary> {
|
|
19
|
+
}
|
|
20
|
+
export interface TransfersStepSummaryContextRead extends ChainSummaryContextRead<TransfersStepSummary> {
|
|
21
|
+
}
|
|
22
|
+
export interface TransfersStepSummaryContext extends ChainSummaryContext<TransfersStepSummary> {
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=summary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"summary.d.ts","sourceRoot":"","sources":["../../../src/model/summary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE5C,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAC7F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAElD,MAAM,WAAW,uBAAuB,CAAC,QAAQ,SAAS,OAAO,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC3I,cAAc,EAAE,SAAS,EAAE,CAAA;IAC3B,UAAU,EAAE,CAAC,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,uBAAuB,CAAC,CAAC,SAAS,OAAO,CAAE,SAAQ,uBAAuB,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,gBAAgB;CAAG;AAE3I,MAAM,WAAW,wBAAwB,CAAC,CAAC,SAAS,OAAO,CAAE,SAAQ,uBAAuB,CAAC,CAAC,EAAE,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,gBAAgB;CAAG;AAE7I,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,OAAO,IAAI,uBAAuB,CAAC,CAAC,CAAC,GAAG,wBAAwB,CAAC,CAAC,CAAC,CAAA;AAE7G,MAAM,WAAW,6BAA8B,SAAQ,uBAAuB,CAAC,mBAAmB,CAAC;CAAG;AAEtG,MAAM,WAAW,yBAA0B,SAAQ,mBAAmB,CAAC,mBAAmB,CAAC;CAAG;AAE9F,MAAM,WAAW,+BAAgC,SAAQ,uBAAuB,CAAC,oBAAoB,CAAC;CAAG;AAEzG,MAAM,WAAW,2BAA4B,SAAQ,mBAAmB,CAAC,oBAAoB,CAAC;CAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AddressPairPayload.d.ts","sourceRoot":"","sources":["../../../src/payloads/AddressPairPayload.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAE1C,OAAO,EAAyB,KAAK,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEhF,eAAO,MAAM,iBAAiB,EAAG,0BAAmC,CAAA;AACpE,MAAM,MAAM,iBAAiB,GAAG,OAAO,iBAAiB,CAAA;AAExD,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;CAC9B;AAED,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAA;AAE1E;;GAEG;AACH,eAAO,MAAM,oBAAoB,iDAA+D,CAAA;AAChG,eAAO,MAAM,oBAAoB,6DAA+C,CAAA;AAChF,eAAO,MAAM,4BAA4B,oFAAuD,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/payloads/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AACvC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,oBAAoB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"netBalancesForPayloads.d.ts","sourceRoot":"","sources":["../../../src/payloads/netBalancesForPayloads.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAGzD,eAAO,MAAM,sBAAsB,GAAI,UAAU,OAAO,EAAE;;;;WAczD,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"netTransfersForPayloads.d.ts","sourceRoot":"","sources":["../../../src/payloads/netTransfersForPayloads.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACb,MAAM,aAAa,CAAA;AAEpB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAIzD,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAgBrG"}
|
package/dist/neutral/{block/primitives/payloads → payloads/summary}/BalancesStepSummary.d.ts
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Address } from '@xylabs/hex';
|
|
2
2
|
import type { Schema, WithStorageMeta } from '@xyo-network/payload-model';
|
|
3
|
-
import type { SignedBigInt } from '
|
|
3
|
+
import type { SignedBigInt } from '../../SignedBigInt.ts';
|
|
4
4
|
import type { StepSummary } from './StepSummary.ts';
|
|
5
5
|
export declare const BalancesStepSummarySchema: Schema;
|
|
6
6
|
export type BalancesStepSummarySchema = typeof BalancesStepSummarySchema;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BalancesStepSummary.d.ts","sourceRoot":"","sources":["../../../../src/payloads/summary/BalancesStepSummary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAE1C,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAGzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAEnD,eAAO,MAAM,yBAAyB,EAAE,MAA4C,CAAA;AACpF,MAAM,MAAM,yBAAyB,GAAG,OAAO,yBAAyB,CAAA;AAExE,MAAM,MAAM,mBAAmB,GAAG,WAAW,CAAC;IAC5C,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;CACxC,EAAE,yBAAyB,CAAC,CAAA;AAE7B;;GAEG;AACH,eAAO,MAAM,qBAAqB,kDAAwE,CAAA;AAC1G,eAAO,MAAM,qBAAqB,8DAAqE,CAAA;AAEvG;;GAEG;AACH,eAAO,MAAM,oCAAoC,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,eAAe,CAAC,mBAAmB,CAEjH,CAAA;AACD,eAAO,MAAM,oCAAoC,+EAAqG,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StepSummary.d.ts","sourceRoot":"","sources":["../../../../src/payloads/summary/StepSummary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAEjE,eAAO,MAAM,iBAAiB,EAAE,MAAmC,CAAA;AACnE,MAAM,MAAM,iBAAiB,GAAG,OAAO,iBAAiB,CAAA;AAExD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,IAAI,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,MAAM,WAAW,CAAC,iBAAiB,SAAS,WAAW,GAAG,IAAI,GAAG,IAAI,EACzE,OAAO,SAAS,MAAM,GAAG,IAAI,GAAG,IAAI,IAAI,OAAO,CAAC,iBAAiB,SAAS,IAAI,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,iBAAiB,EAC1I,OAAO,SAAS,IAAI,GAAG,iBAAiB,GAAG,OAAO,CAAC,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Address } from '@xylabs/hex';
|
|
2
2
|
import type { Schema, WithStorageMeta } from '@xyo-network/payload-model';
|
|
3
|
-
import type { SignedBigInt } from '
|
|
3
|
+
import type { SignedBigInt } from '../../SignedBigInt.ts';
|
|
4
4
|
import type { StepSummary } from './StepSummary.ts';
|
|
5
5
|
export declare const TransfersStepSummarySchema: Schema;
|
|
6
6
|
export type TransfersStepSummarySchema = typeof TransfersStepSummarySchema;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TransfersSummary.d.ts","sourceRoot":"","sources":["../../../../src/payloads/summary/TransfersSummary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAE1C,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAGzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAEnD,eAAO,MAAM,0BAA0B,EAAE,MAA4C,CAAA;AACrF,MAAM,MAAM,0BAA0B,GAAG,OAAO,0BAA0B,CAAA;AAE1E,MAAM,MAAM,oBAAoB,GAAG,WAAW,CAAC;IAC7C,SAAS,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAA;CAC1D,EAAE,0BAA0B,CAAC,CAAA;AAE9B;;GAEG;AACH,eAAO,MAAM,sBAAsB,mDAA0E,CAAA;AAC7G,eAAO,MAAM,sBAAsB,+DAAuE,CAAA;AAE1G;;GAEG;AACH,eAAO,MAAM,qCAAqC,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,eAAe,CAAC,oBAAoB,CAEnH,CAAA;AACD,eAAO,MAAM,qCAAqC,gFACsD,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/payloads/summary/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA;AACxC,cAAc,kBAAkB,CAAA;AAChC,cAAc,uBAAuB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/primitives/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,wBAAwB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/primitives/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAA;AAC5C,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,wBAAwB,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ReadArchivist } from '@xyo-network/archivist-model';
|
|
2
|
+
import type { Payload } from '@xyo-network/payload-model';
|
|
3
|
+
import type { PayloadMapRead } from '../model/index.ts';
|
|
4
|
+
export declare function readPayloadMapFromStore<T extends Payload>(store: ReadArchivist<T> | PayloadMapRead<T>): PayloadMapRead<T>;
|
|
5
|
+
//# sourceMappingURL=readPayloadMapFromStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readPayloadMapFromStore.d.ts","sourceRoot":"","sources":["../../../src/primitives/readPayloadMapFromStore.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AACjE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAGzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAEvD,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,OAAO,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAezH"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { WithStorageMeta } from '@xyo-network/payload-model';
|
|
2
2
|
import type { XL1BlockRange } from '@xyo-network/xl1-protocol';
|
|
3
|
-
import type { BalanceStepSummaryContext } from '
|
|
4
|
-
import {
|
|
3
|
+
import type { BalanceStepSummaryContext } from '../../../model/index.ts';
|
|
4
|
+
import type { BalancesStepSummary } from '../../../payloads/index.ts';
|
|
5
5
|
export declare function balancesStepSummaryFromRange(context: BalanceStepSummaryContext, range: XL1BlockRange): Promise<WithStorageMeta<BalancesStepSummary>>;
|
|
6
6
|
//# sourceMappingURL=balancesStepSummaryFromRange.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"balancesStepSummaryFromRange.d.ts","sourceRoot":"","sources":["../../../../../src/primitives/summary/balances/balancesStepSummaryFromRange.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAEjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAO9D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AACxE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAMrE,wBAAsB,4BAA4B,CAChD,OAAO,EAAE,yBAAyB,EAClC,KAAK,EAAE,aAAa,GACnB,OAAO,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC,CA+D/C"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { Address } from '@xylabs/hex';
|
|
2
|
-
import type { BalanceStepSummaryContext } from '
|
|
2
|
+
import type { BalanceStepSummaryContext } from '../../../model/index.ts';
|
|
3
3
|
export declare function balancesSummary(context: BalanceStepSummaryContext): Promise<Partial<Record<Address, bigint>>>;
|
|
4
4
|
//# sourceMappingURL=balancesSummary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"balancesSummary.d.ts","sourceRoot":"","sources":["../../../../../src/primitives/summary/balances/balancesSummary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAO1C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AAIxE,wBAAsB,eAAe,CACnC,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAiB3C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/primitives/summary/balances/index.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAA;AACjD,cAAc,sBAAsB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/primitives/summary/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/primitives/summary/transfers/index.ts"],"names":[],"mappings":"AAAA,cAAc,oCAAoC,CAAA;AAClD,cAAc,uBAAuB,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { WithStorageMeta } from '@xyo-network/payload-model';
|
|
2
|
+
import type { XL1BlockRange } from '@xyo-network/xl1-protocol';
|
|
3
|
+
import type { TransfersStepSummaryContext } from '../../../model/index.ts';
|
|
4
|
+
import type { TransfersStepSummary } from '../../../payloads/index.ts';
|
|
5
|
+
export declare function transfersStepSummaryFromRange(context: TransfersStepSummaryContext, range: XL1BlockRange): Promise<WithStorageMeta<TransfersStepSummary>>;
|
|
6
|
+
//# sourceMappingURL=transfersStepSummaryFromRange.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transfersStepSummaryFromRange.d.ts","sourceRoot":"","sources":["../../../../../src/primitives/summary/transfers/transfersStepSummaryFromRange.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAEjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAO9D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAA;AAC1E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AAMtE,wBAAsB,6BAA6B,CACjD,OAAO,EAAE,2BAA2B,EACpC,KAAK,EAAE,aAAa,GACnB,OAAO,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC,CAwEhD"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Address } from '@xylabs/hex';
|
|
2
|
+
import type { TransfersStepSummaryContext } from '../../../model/index.ts';
|
|
3
|
+
export declare function transfersSummary(context: TransfersStepSummaryContext): Promise<Partial<Record<Address, Partial<Record<Address, bigint>>>>>;
|
|
4
|
+
//# sourceMappingURL=transfersSummary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transfersSummary.d.ts","sourceRoot":"","sources":["../../../../../src/primitives/summary/transfers/transfersSummary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAO1C,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAA;AAK1E,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAqBrE"}
|
package/package.json
CHANGED
|
@@ -1,32 +1,11 @@
|
|
|
1
1
|
import { assertEx } from '@xylabs/assert'
|
|
2
2
|
import type { Hash } from '@xylabs/hex'
|
|
3
|
-
import { isDefined } from '@xylabs/typeof'
|
|
4
|
-
import { type ReadArchivist } from '@xyo-network/archivist-model'
|
|
5
|
-
import type { Payload } from '@xyo-network/payload-model'
|
|
6
3
|
import type { HydratedBlock } from '@xyo-network/xl1-protocol'
|
|
7
4
|
import { asBlockBoundWitnessWithStorageMeta, isTransactionBoundWitnessWithStorageMeta } from '@xyo-network/xl1-protocol'
|
|
8
5
|
|
|
9
|
-
import type { ChainStoreRead
|
|
10
|
-
import { isReadArchivist } from '../primitives/index.ts'
|
|
6
|
+
import type { ChainStoreRead } from '../../model/index.ts'
|
|
11
7
|
import { allHashesPresent } from './allHashesPresent.ts'
|
|
12
8
|
|
|
13
|
-
export function readPayloadMapFromStore<T extends Payload>(store: ReadArchivist<T> | PayloadMapRead<T>): PayloadMapRead<T> {
|
|
14
|
-
if (isReadArchivist(store)) {
|
|
15
|
-
return {
|
|
16
|
-
get: async (hash: Hash): Promise<T | undefined> => {
|
|
17
|
-
return (await store.get([hash]))[0]
|
|
18
|
-
},
|
|
19
|
-
getMany: async (hashes: Hash[]): Promise<T[]> => {
|
|
20
|
-
return (await store.get(hashes))
|
|
21
|
-
},
|
|
22
|
-
has: async (hash: Hash): Promise<boolean> => {
|
|
23
|
-
return isDefined((await store.get([hash]))[0])
|
|
24
|
-
},
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
return store
|
|
28
|
-
}
|
|
29
|
-
|
|
30
9
|
export const hydrateBlock = async (
|
|
31
10
|
{ chainMap }: ChainStoreRead,
|
|
32
11
|
hash: Hash,
|
|
@@ -1,27 +1,15 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import type {
|
|
2
|
+
ReadArchivist, ReadWriteArchivist, WriteArchivist,
|
|
3
|
+
} from '@xyo-network/archivist-model'
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
import type { BalancesStepSummary, TransfersStepSummary } from './payloads/index.ts'
|
|
8
|
-
|
|
9
|
-
export function isReadArchivist(obj: unknown): obj is ReadArchivist {
|
|
10
|
-
return (obj as ReadArchivist).get !== undefined && (obj as ReadArchivist).next !== undefined
|
|
5
|
+
export function isReadArchivist(value: unknown): value is ReadArchivist {
|
|
6
|
+
return (value as ReadArchivist).get !== undefined && (value as ReadArchivist).next !== undefined
|
|
11
7
|
}
|
|
12
8
|
|
|
13
|
-
export
|
|
14
|
-
|
|
15
|
-
summaryMap: MapTypeRead<string, T>
|
|
16
|
-
windowSize?: number
|
|
9
|
+
export function isWriteArchivist(value: unknown): value is WriteArchivist {
|
|
10
|
+
return (value as WriteArchivist).insert !== undefined
|
|
17
11
|
}
|
|
18
12
|
|
|
19
|
-
export
|
|
20
|
-
|
|
13
|
+
export function isReadWriteArchivist(value: unknown): value is ReadWriteArchivist {
|
|
14
|
+
return isReadArchivist(value) && isWriteArchivist(value)
|
|
21
15
|
}
|
|
22
|
-
|
|
23
|
-
export type ChainSummaryContext<T extends Payload> = ChainSummaryContextRead<T> & ChainSummaryContextWrite<T>
|
|
24
|
-
|
|
25
|
-
export interface BalanceStepSummaryContext extends ChainSummaryContext<BalancesStepSummary> {}
|
|
26
|
-
|
|
27
|
-
export interface TransfersStepSummaryContext extends ChainSummaryContext<TransfersStepSummary> {}
|
|
@@ -7,15 +7,15 @@ import { isAnyPayload } from '@xyo-network/payload-model'
|
|
|
7
7
|
import type { XL1BlockRange } from '@xyo-network/xl1-protocol'
|
|
8
8
|
import { StepSizes } from '@xyo-network/xl1-protocol'
|
|
9
9
|
|
|
10
|
-
import {
|
|
10
|
+
import type { TransfersStepSummaryContext } from '../../../model/index.ts'
|
|
11
|
+
import type { TransfersStepSummary } from '../../../payloads/index.ts'
|
|
12
|
+
import { netTransfersForPayloads, TransfersStepSummarySchema } from '../../../payloads/index.ts'
|
|
11
13
|
import {
|
|
12
14
|
parseSignedBigInt, type SignedBigInt, toSignedBigInt,
|
|
13
15
|
} from '../../../SignedBigInt.ts'
|
|
14
16
|
import { hydrateBlock } from '../../hydrate/index.ts'
|
|
15
17
|
import { deepCalculateFramesFromRange } from '../frames/index.ts'
|
|
16
18
|
import { hashFromBlockNumber } from '../hashFromBlockNumber.ts'
|
|
17
|
-
import type { TransfersStepSummaryContext } from '../model.ts'
|
|
18
|
-
import { type TransfersStepSummary, TransfersStepSummarySchema } from '../payloads/index.ts'
|
|
19
19
|
|
|
20
20
|
export async function transfersStepSummaryFromRange(
|
|
21
21
|
context: TransfersStepSummaryContext,
|
|
@@ -4,9 +4,9 @@ import { spanRootAsync } from '@xylabs/telemetry'
|
|
|
4
4
|
import { isDefined } from '@xylabs/typeof'
|
|
5
5
|
import { asBlockBoundWitnessWithStorageMeta, asXL1BlockNumber } from '@xyo-network/xl1-protocol'
|
|
6
6
|
|
|
7
|
+
import type { TransfersStepSummaryContext } from '../../../model/index.ts'
|
|
7
8
|
import { parseSignedBigInt } from '../../../SignedBigInt.ts'
|
|
8
9
|
import { deepCalculateFramesFromRange } from '../frames/index.ts'
|
|
9
|
-
import type { TransfersStepSummaryContext } from '../model.ts'
|
|
10
10
|
import { transfersStepSummaryFromRange } from './transfersStepSummaryFromRange.ts'
|
|
11
11
|
|
|
12
12
|
// the summary of amount of rewards claimed from the step reward pool by addresses
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { Hash } from '@xylabs/hex'
|
|
2
|
+
import type { TypedDataDomain } from 'ethers/hash'
|
|
3
|
+
|
|
4
|
+
import type { TypedDataTypes, TypedDataValues } from './Types.ts'
|
|
5
|
+
|
|
6
|
+
export interface EIP712PayloadFields<T extends TypedDataTypes = TypedDataTypes, V extends TypedDataValues = TypedDataValues> {
|
|
7
|
+
domain: TypedDataDomain
|
|
8
|
+
types: T
|
|
9
|
+
values: V
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export const EIP712PayloadSchema = 'network.xyo.chains.ethereum.eip712.payload' as const
|
|
13
|
+
export type EIP712PayloadSchema = typeof EIP712PayloadSchema
|
|
14
|
+
|
|
15
|
+
export type EIP712Payload = EIP712PayloadFields & {
|
|
16
|
+
schema: EIP712PayloadSchema
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export interface EIP712SignaturePayloadFields {
|
|
20
|
+
address: string
|
|
21
|
+
// the hash of the EIP712Payload
|
|
22
|
+
hash: Hash
|
|
23
|
+
signature: string
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export const EIP712SignaturePayloadSchema = 'network.xyo.chains.ethereum.eip712.signaturePayload' as const
|
|
27
|
+
export type EIP712SignaturePayloadSchema = typeof EIP712SignaturePayloadSchema
|
|
28
|
+
|
|
29
|
+
export type EIP712SignaturePayload = EIP712SignaturePayloadFields & {
|
|
30
|
+
schema: EIP712SignaturePayloadSchema
|
|
31
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Signer } from 'ethers/providers'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Typed Data Types
|
|
5
|
+
* Re-exposing the types from ethers for convenience and to ensure
|
|
6
|
+
* we can fix in one place if they change
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
export type TypedDataDomain = Parameters<Signer['signTypedData']>[0]
|
|
10
|
+
export type TypedDataTypes = Parameters<Signer['signTypedData']>[1]
|
|
11
|
+
export type TypedDataValues = Parameters<Signer['signTypedData']>[2]
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { PayloadBuilder } from '@xyo-network/payload-builder'
|
|
2
|
+
import type { Signer } from 'ethers/providers'
|
|
3
|
+
|
|
4
|
+
import {
|
|
5
|
+
type EIP712Payload, type EIP712SignaturePayload, EIP712SignaturePayloadSchema,
|
|
6
|
+
} from './Payload.ts'
|
|
7
|
+
|
|
8
|
+
export const signEIP712Message = async (signer: Signer, data: EIP712Payload): Promise<EIP712SignaturePayload> => {
|
|
9
|
+
const { schema, ...fields } = data
|
|
10
|
+
const signature = await signer.signTypedData(fields.domain, fields.types, fields.values)
|
|
11
|
+
const hash = await PayloadBuilder.hash(data)
|
|
12
|
+
return {
|
|
13
|
+
address: await signer.getAddress(), signature, schema: EIP712SignaturePayloadSchema, hash,
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Wallet } from 'ethers/wallet'
|
|
2
|
+
|
|
3
|
+
import type { EIP712Payload } from '../Payload.ts'
|
|
4
|
+
import { EIP712PayloadSchema } from '../Payload.ts'
|
|
5
|
+
|
|
6
|
+
const mnemonic = 'test test test test test test test test test test test junk'
|
|
7
|
+
|
|
8
|
+
export const wallet = Wallet.fromPhrase(mnemonic)
|
|
9
|
+
|
|
10
|
+
export const samplePayload: EIP712Payload = {
|
|
11
|
+
schema: EIP712PayloadSchema,
|
|
12
|
+
domain: {
|
|
13
|
+
name: 'MyDApp',
|
|
14
|
+
version: '1',
|
|
15
|
+
chainId: 1,
|
|
16
|
+
},
|
|
17
|
+
types: {
|
|
18
|
+
Payload: [
|
|
19
|
+
{ name: 'hash', type: 'string' },
|
|
20
|
+
{ name: 'schema', type: 'string' },
|
|
21
|
+
],
|
|
22
|
+
},
|
|
23
|
+
values: {
|
|
24
|
+
hash: '0x1234567890abcdef',
|
|
25
|
+
schema: EIP712PayloadSchema,
|
|
26
|
+
},
|
|
27
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import {
|
|
2
|
+
describe, expect, it,
|
|
3
|
+
} from 'vitest'
|
|
4
|
+
|
|
5
|
+
import { EIP712SignaturePayloadSchema } from '../Payload.ts'
|
|
6
|
+
import { signEIP712Message } from '../sign.ts'
|
|
7
|
+
import { verifyEIP712Message } from '../verify.ts'
|
|
8
|
+
import { samplePayload, wallet } from './fixtures.ts'
|
|
9
|
+
|
|
10
|
+
describe('signEIP712Message', () => {
|
|
11
|
+
it('should sign an EIP-712 message and return the correct payload', async () => {
|
|
12
|
+
const payload = await signEIP712Message(wallet, samplePayload)
|
|
13
|
+
|
|
14
|
+
expect(payload.address).toEqual(await wallet.getAddress())
|
|
15
|
+
expect(payload.signature).toBeDefined()
|
|
16
|
+
expect(payload.schema).toEqual(EIP712SignaturePayloadSchema)
|
|
17
|
+
expect(payload.hash).toBeDefined()
|
|
18
|
+
})
|
|
19
|
+
|
|
20
|
+
it('should verify the signature of an EIP-712 message', async () => {
|
|
21
|
+
const payload = await signEIP712Message(wallet, samplePayload)
|
|
22
|
+
|
|
23
|
+
const isValidSignature = await verifyEIP712Message(samplePayload, payload)
|
|
24
|
+
|
|
25
|
+
expect(isValidSignature).toBe(true)
|
|
26
|
+
})
|
|
27
|
+
})
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Promisable } from '@xylabs/promise'
|
|
2
|
+
import { verifyTypedData } from 'ethers/hash'
|
|
3
|
+
|
|
4
|
+
import type { EIP712Payload, EIP712SignaturePayload } from './Payload.ts'
|
|
5
|
+
|
|
6
|
+
export const verifyEIP712Message = (data: EIP712Payload, sig: EIP712SignaturePayload): Promisable<boolean> => {
|
|
7
|
+
const { address, signature } = sig
|
|
8
|
+
const { schema, ...fields } = data
|
|
9
|
+
|
|
10
|
+
const recoveredAddress = verifyTypedData(fields.domain, fields.types, fields.values, signature)
|
|
11
|
+
return recoveredAddress.toLowerCase() === address.toLowerCase()
|
|
12
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -3,11 +3,12 @@ export * from './ChainServiceCollection.ts'
|
|
|
3
3
|
export * from './ChainServiceCollectionV2.ts'
|
|
4
4
|
export * from './config/index.ts'
|
|
5
5
|
export * from './constants.ts'
|
|
6
|
+
export * from './eip-712/index.ts'
|
|
6
7
|
export * from './instances/index.ts'
|
|
7
8
|
export * from './map/index.ts'
|
|
8
9
|
export * from './model/index.ts'
|
|
9
10
|
export * from './multipliers.ts'
|
|
10
|
-
export * from './
|
|
11
|
+
export * from './payloads/index.ts'
|
|
11
12
|
export * from './primitives/index.ts'
|
|
12
13
|
export * from './primitives/index.ts'
|
|
13
14
|
export * from './SignedBigInt.ts'
|
package/src/map/MapType.ts
CHANGED
|
@@ -5,4 +5,8 @@ export type MapTypeWrite<TId, TData> = SynchronousMapWrite<TId, TData> | Asynchr
|
|
|
5
5
|
|
|
6
6
|
export type MapTypeRead<TId, TData> = SynchronousMapRead<TId, TData> | AsynchronousMapRead<TId, TData>
|
|
7
7
|
|
|
8
|
-
export type
|
|
8
|
+
export type AsynchronousMapType<TId, TData> = AsynchronousMapRead<TId, TData> & AsynchronousMapWrite<TId, TData>
|
|
9
|
+
|
|
10
|
+
export type SynchronousMapType<TId, TData> = SynchronousMapRead<TId, TData> & SynchronousMapWrite<TId, TData>
|
|
11
|
+
|
|
12
|
+
export type MapType<TId, TData> = AsynchronousMapType<TId, TData> | SynchronousMapType<TId, TData>
|
package/src/model/index.ts
CHANGED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Payload } from '@xyo-network/payload-model'
|
|
2
|
+
import type { Semaphore } from 'async-mutex'
|
|
3
|
+
|
|
4
|
+
import type { MapTypeRead, MapTypeWrite } from '../map/index.ts'
|
|
5
|
+
import type { BalancesStepSummary, TransfersStepSummary } from '../payloads/summary/index.ts'
|
|
6
|
+
import type { ChainContextRead } from './index.ts'
|
|
7
|
+
|
|
8
|
+
export interface ChainSummaryContextBase<TPayload extends Payload, T extends (MapTypeRead<string, TPayload> | MapTypeWrite<string, TPayload>)> {
|
|
9
|
+
stepSemaphores: Semaphore[]
|
|
10
|
+
summaryMap: T
|
|
11
|
+
windowSize?: number
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export interface ChainSummaryContextRead<T extends Payload> extends ChainSummaryContextBase<T, MapTypeRead<string, T>>, ChainContextRead {}
|
|
15
|
+
|
|
16
|
+
export interface ChainSummaryContextWrite<T extends Payload> extends ChainSummaryContextBase<T, MapTypeWrite<string, T>>, ChainContextRead {}
|
|
17
|
+
|
|
18
|
+
export type ChainSummaryContext<T extends Payload> = ChainSummaryContextRead<T> & ChainSummaryContextWrite<T>
|
|
19
|
+
|
|
20
|
+
export interface BalanceStepSummaryContextRead extends ChainSummaryContextRead<BalancesStepSummary> {}
|
|
21
|
+
|
|
22
|
+
export interface BalanceStepSummaryContext extends ChainSummaryContext<BalancesStepSummary> {}
|
|
23
|
+
|
|
24
|
+
export interface TransfersStepSummaryContextRead extends ChainSummaryContextRead<TransfersStepSummary> {}
|
|
25
|
+
|
|
26
|
+
export interface TransfersStepSummaryContext extends ChainSummaryContext<TransfersStepSummary> {}
|
|
@@ -3,7 +3,7 @@ import { AsObjectFactory } from '@xylabs/object'
|
|
|
3
3
|
import type { Schema, WithStorageMeta } from '@xyo-network/payload-model'
|
|
4
4
|
import { isPayloadOfSchemaType, isStorageMeta } from '@xyo-network/payload-model'
|
|
5
5
|
|
|
6
|
-
import type { SignedBigInt } from '
|
|
6
|
+
import type { SignedBigInt } from '../../SignedBigInt.ts'
|
|
7
7
|
import type { StepSummary } from './StepSummary.ts'
|
|
8
8
|
|
|
9
9
|
export const BalancesStepSummarySchema: Schema = 'network.xyo.step.summary.balances'
|
|
@@ -3,7 +3,7 @@ import { AsObjectFactory } from '@xylabs/object'
|
|
|
3
3
|
import type { Schema, WithStorageMeta } from '@xyo-network/payload-model'
|
|
4
4
|
import { isPayloadOfSchemaType, isStorageMeta } from '@xyo-network/payload-model'
|
|
5
5
|
|
|
6
|
-
import type { SignedBigInt } from '
|
|
6
|
+
import type { SignedBigInt } from '../../SignedBigInt.ts'
|
|
7
7
|
import type { StepSummary } from './StepSummary.ts'
|
|
8
8
|
|
|
9
9
|
export const TransfersStepSummarySchema: Schema = 'network.xyo.step.summary.transfer'
|
package/src/primitives/index.ts
CHANGED