@xyo-network/xl1-protocol-sdk 1.15.13 → 1.15.15

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.
Files changed (115) hide show
  1. package/dist/neutral/block/hydrate/hydrateBlock.d.ts +1 -4
  2. package/dist/neutral/block/hydrate/hydrateBlock.d.ts.map +1 -1
  3. package/dist/neutral/block/primitives/index.d.ts +0 -1
  4. package/dist/neutral/block/primitives/index.d.ts.map +1 -1
  5. package/dist/neutral/block/primitives/model.d.ts +4 -20
  6. package/dist/neutral/block/primitives/model.d.ts.map +1 -1
  7. package/dist/neutral/block/primitives/payloads/index.d.ts +0 -3
  8. package/dist/neutral/block/primitives/payloads/index.d.ts.map +1 -1
  9. package/dist/neutral/block/primitives/transfers/transfersStepSummaryFromRange.d.ts +2 -2
  10. package/dist/neutral/block/primitives/transfers/transfersStepSummaryFromRange.d.ts.map +1 -1
  11. package/dist/neutral/block/primitives/transfers/transfersSummary.d.ts +1 -1
  12. package/dist/neutral/block/primitives/transfers/transfersSummary.d.ts.map +1 -1
  13. package/dist/neutral/eip-712/Payload.d.ts +24 -0
  14. package/dist/neutral/eip-712/Payload.d.ts.map +1 -0
  15. package/dist/neutral/eip-712/Types.d.ts +10 -0
  16. package/dist/neutral/eip-712/Types.d.ts.map +1 -0
  17. package/dist/neutral/eip-712/index.d.ts +5 -0
  18. package/dist/neutral/eip-712/index.d.ts.map +1 -0
  19. package/dist/neutral/eip-712/sign.d.ts +4 -0
  20. package/dist/neutral/eip-712/sign.d.ts.map +1 -0
  21. package/dist/neutral/eip-712/spec/fixtures.d.ts +4 -0
  22. package/dist/neutral/eip-712/spec/fixtures.d.ts.map +1 -0
  23. package/dist/neutral/eip-712/spec/signAndVerify.spec.d.ts +2 -0
  24. package/dist/neutral/eip-712/spec/signAndVerify.spec.d.ts.map +1 -0
  25. package/dist/neutral/eip-712/verify.d.ts +4 -0
  26. package/dist/neutral/eip-712/verify.d.ts.map +1 -0
  27. package/dist/neutral/index.d.ts +2 -1
  28. package/dist/neutral/index.d.ts.map +1 -1
  29. package/dist/neutral/index.mjs +421 -380
  30. package/dist/neutral/index.mjs.map +1 -1
  31. package/dist/neutral/map/MapType.d.ts +3 -1
  32. package/dist/neutral/map/MapType.d.ts.map +1 -1
  33. package/dist/neutral/model/index.d.ts +1 -0
  34. package/dist/neutral/model/index.d.ts.map +1 -1
  35. package/dist/neutral/model/summary.d.ts +24 -0
  36. package/dist/neutral/model/summary.d.ts.map +1 -0
  37. package/dist/neutral/payloads/AddressPairPayload.d.ts.map +1 -0
  38. package/dist/neutral/{payload → payloads}/index.d.ts +1 -0
  39. package/dist/neutral/payloads/index.d.ts.map +1 -0
  40. package/dist/neutral/payloads/netBalancesForPayloads.d.ts.map +1 -0
  41. package/dist/neutral/payloads/netTransfersForPayloads.d.ts.map +1 -0
  42. package/dist/neutral/{block/primitives/payloads → payloads/summary}/BalancesStepSummary.d.ts +1 -1
  43. package/dist/neutral/payloads/summary/BalancesStepSummary.d.ts.map +1 -0
  44. package/dist/neutral/payloads/summary/StepSummary.d.ts.map +1 -0
  45. package/dist/neutral/{block/primitives/payloads → payloads/summary}/TransfersSummary.d.ts +1 -1
  46. package/dist/neutral/payloads/summary/TransfersSummary.d.ts.map +1 -0
  47. package/dist/neutral/payloads/summary/index.d.ts +4 -0
  48. package/dist/neutral/payloads/summary/index.d.ts.map +1 -0
  49. package/dist/neutral/primitives/index.d.ts +2 -0
  50. package/dist/neutral/primitives/index.d.ts.map +1 -1
  51. package/dist/neutral/primitives/readPayloadMapFromStore.d.ts +5 -0
  52. package/dist/neutral/primitives/readPayloadMapFromStore.d.ts.map +1 -0
  53. package/dist/neutral/{block/primitives → primitives/summary}/balances/balancesStepSummaryFromRange.d.ts +2 -2
  54. package/dist/neutral/primitives/summary/balances/balancesStepSummaryFromRange.d.ts.map +1 -0
  55. package/dist/neutral/{block/primitives → primitives/summary}/balances/balancesSummary.d.ts +1 -1
  56. package/dist/neutral/primitives/summary/balances/balancesSummary.d.ts.map +1 -0
  57. package/dist/neutral/primitives/summary/balances/index.d.ts.map +1 -0
  58. package/dist/neutral/primitives/summary/index.d.ts +3 -0
  59. package/dist/neutral/primitives/summary/index.d.ts.map +1 -0
  60. package/dist/neutral/primitives/summary/transfers/index.d.ts +3 -0
  61. package/dist/neutral/primitives/summary/transfers/index.d.ts.map +1 -0
  62. package/dist/neutral/primitives/summary/transfers/transfersStepSummaryFromRange.d.ts +6 -0
  63. package/dist/neutral/primitives/summary/transfers/transfersStepSummaryFromRange.d.ts.map +1 -0
  64. package/dist/neutral/primitives/summary/transfers/transfersSummary.d.ts +4 -0
  65. package/dist/neutral/primitives/summary/transfers/transfersSummary.d.ts.map +1 -0
  66. package/package.json +1 -1
  67. package/src/block/hydrate/hydrateBlock.ts +1 -22
  68. package/src/block/primitives/index.ts +0 -1
  69. package/src/block/primitives/model.ts +9 -21
  70. package/src/block/primitives/payloads/index.ts +0 -3
  71. package/src/block/primitives/transfers/transfersStepSummaryFromRange.ts +3 -3
  72. package/src/block/primitives/transfers/transfersSummary.ts +1 -1
  73. package/src/eip-712/Payload.ts +31 -0
  74. package/src/eip-712/Types.ts +11 -0
  75. package/src/eip-712/index.ts +4 -0
  76. package/src/eip-712/sign.ts +15 -0
  77. package/src/eip-712/spec/fixtures.ts +27 -0
  78. package/src/eip-712/spec/signAndVerify.spec.ts +27 -0
  79. package/src/eip-712/verify.ts +12 -0
  80. package/src/index.ts +2 -1
  81. package/src/map/MapType.ts +5 -1
  82. package/src/model/index.ts +1 -0
  83. package/src/model/summary.ts +26 -0
  84. package/src/{payload → payloads}/index.ts +1 -0
  85. package/src/{block/primitives/payloads → payloads/summary}/BalancesStepSummary.ts +1 -1
  86. package/src/{block/primitives/payloads → payloads/summary}/TransfersSummary.ts +1 -1
  87. package/src/payloads/summary/index.ts +3 -0
  88. package/src/primitives/index.ts +2 -0
  89. package/src/primitives/readPayloadMapFromStore.ts +24 -0
  90. package/src/{block/primitives → primitives/summary}/balances/balancesStepSummaryFromRange.ts +7 -6
  91. package/src/{block/primitives → primitives/summary}/balances/balancesSummary.ts +2 -2
  92. package/src/primitives/summary/index.ts +2 -0
  93. package/src/primitives/summary/transfers/index.ts +2 -0
  94. package/src/primitives/summary/transfers/transfersStepSummaryFromRange.ts +96 -0
  95. package/src/primitives/summary/transfers/transfersSummary.ts +36 -0
  96. package/dist/neutral/block/primitives/balances/balancesStepSummaryFromRange.d.ts.map +0 -1
  97. package/dist/neutral/block/primitives/balances/balancesSummary.d.ts.map +0 -1
  98. package/dist/neutral/block/primitives/balances/index.d.ts.map +0 -1
  99. package/dist/neutral/block/primitives/payloads/BalancesStepSummary.d.ts.map +0 -1
  100. package/dist/neutral/block/primitives/payloads/StepSummary.d.ts.map +0 -1
  101. package/dist/neutral/block/primitives/payloads/TransfersSummary.d.ts.map +0 -1
  102. package/dist/neutral/payload/AddressPairPayload.d.ts.map +0 -1
  103. package/dist/neutral/payload/index.d.ts.map +0 -1
  104. package/dist/neutral/payload/netBalancesForPayloads.d.ts.map +0 -1
  105. package/dist/neutral/payload/netTransfersForPayloads.d.ts.map +0 -1
  106. /package/dist/neutral/{payload → payloads}/AddressPairPayload.d.ts +0 -0
  107. /package/dist/neutral/{payload → payloads}/netBalancesForPayloads.d.ts +0 -0
  108. /package/dist/neutral/{payload → payloads}/netTransfersForPayloads.d.ts +0 -0
  109. /package/dist/neutral/{block/primitives/payloads → payloads/summary}/StepSummary.d.ts +0 -0
  110. /package/dist/neutral/{block/primitives → primitives/summary}/balances/index.d.ts +0 -0
  111. /package/src/{payload → payloads}/AddressPairPayload.ts +0 -0
  112. /package/src/{payload → payloads}/netBalancesForPayloads.ts +0 -0
  113. /package/src/{payload → payloads}/netTransfersForPayloads.ts +0 -0
  114. /package/src/{block/primitives/payloads → payloads/summary}/StepSummary.ts +0 -0
  115. /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 MapType<TId, TData> = MapTypeRead<TId, TData> & MapTypeWrite<TId, TData>;
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,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA"}
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"}
@@ -5,4 +5,5 @@ export * from './ChainStake/index.ts';
5
5
  export * from './ChainStore.ts';
6
6
  export * from './PayloadMap.ts';
7
7
  export * from './StakeEvents.ts';
8
+ export * from './summary.ts';
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -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"}
@@ -1,4 +1,5 @@
1
1
  export * from './AddressPairPayload.ts';
2
2
  export * from './netBalancesForPayloads.ts';
3
3
  export * from './netTransfersForPayloads.ts';
4
+ export * from './summary/index.ts';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -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"}
@@ -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 '../../../SignedBigInt.ts';
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 '../../../SignedBigInt.ts';
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,4 @@
1
+ export * from './BalancesStepSummary.ts';
2
+ export * from './StepSummary.ts';
3
+ export * from './TransfersSummary.ts';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -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,3 +1,5 @@
1
+ export * from './readPayloadMapFromStore.ts';
1
2
  export * from './step/index.ts';
3
+ export * from './summary/index.ts';
2
4
  export * from './transaction/index.ts';
3
5
  //# sourceMappingURL=index.d.ts.map
@@ -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 '../model.ts';
4
- import { type BalancesStepSummary } from '../payloads/index.ts';
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 '../model.ts';
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,3 @@
1
+ export * from './balances/index.ts';
2
+ export * from './balances/index.ts';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -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,3 @@
1
+ export * from './transfersStepSummaryFromRange.ts';
2
+ export * from './transfersSummary.ts';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -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,7 +1,7 @@
1
1
  {
2
2
  "$schema": "http://json.schemastore.org/package.json",
3
3
  "name": "@xyo-network/xl1-protocol-sdk",
4
- "version": "1.15.13",
4
+ "version": "1.15.15",
5
5
  "description": "XYO Layer One SDK Protocol",
6
6
  "homepage": "https://xylabs.com",
7
7
  "bugs": {
@@ -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, PayloadMapRead } from '../../model/index.ts'
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,4 +1,3 @@
1
- export * from './balances/index.ts'
2
1
  export * from './blockFromBlockNumber.ts'
3
2
  export * from './frames/index.ts'
4
3
  export * from './hashFromBlockNumber.ts'
@@ -1,27 +1,15 @@
1
- import type { ReadArchivist } from '@xyo-network/archivist-model'
2
- import type { Payload } from '@xyo-network/payload-model'
3
- import type { Semaphore } from 'async-mutex'
1
+ import type {
2
+ ReadArchivist, ReadWriteArchivist, WriteArchivist,
3
+ } from '@xyo-network/archivist-model'
4
4
 
5
- import type { MapTypeRead, MapTypeWrite } from '../../map/index.ts'
6
- import type { ChainContextRead } from '../../model/index.ts'
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 interface ChainSummaryContextRead<T extends Payload> extends ChainContextRead {
14
- stepSemaphores: Semaphore[]
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 interface ChainSummaryContextWrite<T extends Payload> extends ChainContextRead {
20
- summaryMap: MapTypeWrite<string, T>
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> {}
@@ -1,4 +1 @@
1
- export * from './BalancesStepSummary.ts'
2
1
  export * from './ChainWindow.ts'
3
- export * from './StepSummary.ts'
4
- export * from './TransfersSummary.ts'
@@ -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 { netTransfersForPayloads } from '../../../payload/index.ts'
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,4 @@
1
+ export * from './Payload.ts'
2
+ export * from './sign.ts'
3
+ export * from './Types.ts'
4
+ export * from './verify.ts'
@@ -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 './payload/index.ts'
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'
@@ -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 MapType<TId, TData> = MapTypeRead<TId, TData> & MapTypeWrite<TId, TData>
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>
@@ -5,3 +5,4 @@ export * from './ChainStake/index.ts'
5
5
  export * from './ChainStore.ts'
6
6
  export * from './PayloadMap.ts'
7
7
  export * from './StakeEvents.ts'
8
+ export * from './summary.ts'
@@ -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> {}
@@ -1,3 +1,4 @@
1
1
  export * from './AddressPairPayload.ts'
2
2
  export * from './netBalancesForPayloads.ts'
3
3
  export * from './netTransfersForPayloads.ts'
4
+ export * from './summary/index.ts'
@@ -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 '../../../SignedBigInt.ts'
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 '../../../SignedBigInt.ts'
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'
@@ -0,0 +1,3 @@
1
+ export * from './BalancesStepSummary.ts'
2
+ export * from './StepSummary.ts'
3
+ export * from './TransfersSummary.ts'
@@ -1,2 +1,4 @@
1
+ export * from './readPayloadMapFromStore.ts'
1
2
  export * from './step/index.ts'
3
+ export * from './summary/index.ts'
2
4
  export * from './transaction/index.ts'