@proto-kit/protocol 0.1.1-develop.2024 → 0.1.1-develop.2137

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 (29) hide show
  1. package/dist/settlement/ContractArgsRegistry.d.ts +1 -1
  2. package/dist/settlement/ContractArgsRegistry.d.ts.map +1 -1
  3. package/dist/settlement/ContractArgsRegistry.js +6 -1
  4. package/dist/settlement/ContractArgsRegistry.js.map +1 -1
  5. package/dist/settlement/contracts/BridgeContract.d.ts +2 -7
  6. package/dist/settlement/contracts/BridgeContract.d.ts.map +1 -1
  7. package/dist/settlement/contracts/BridgeContract.js +28 -27
  8. package/dist/settlement/contracts/BridgeContract.js.map +1 -1
  9. package/dist/settlement/contracts/TokenBridgeTree.d.ts +2 -2
  10. package/dist/settlement/contracts/TokenBridgeTree.d.ts.map +1 -1
  11. package/dist/settlement/contracts/TokenBridgeTree.js +4 -4
  12. package/dist/settlement/contracts/TokenBridgeTree.js.map +1 -1
  13. package/dist/settlement/messages/OutgoingMessageArgument.d.ts +109 -15
  14. package/dist/settlement/messages/OutgoingMessageArgument.d.ts.map +1 -1
  15. package/dist/settlement/messages/OutgoingMessageArgument.js +3 -1
  16. package/dist/settlement/messages/OutgoingMessageArgument.js.map +1 -1
  17. package/dist/settlement/modularity/OutgoingMessageProcessor.d.ts +4 -1
  18. package/dist/settlement/modularity/OutgoingMessageProcessor.d.ts.map +1 -1
  19. package/dist/settlement/modularity/OutgoingMessageProcessor.js +11 -2
  20. package/dist/settlement/modularity/OutgoingMessageProcessor.js.map +1 -1
  21. package/dist/state/WitnessBlockContext.js +12 -6
  22. package/dist/state/WitnessBlockContext.js.map +1 -1
  23. package/package.json +2 -2
  24. package/src/settlement/ContractArgsRegistry.ts +6 -2
  25. package/src/settlement/contracts/BridgeContract.ts +31 -33
  26. package/src/settlement/contracts/TokenBridgeTree.ts +17 -4
  27. package/src/settlement/messages/OutgoingMessageArgument.ts +10 -1
  28. package/src/settlement/modularity/OutgoingMessageProcessor.ts +15 -2
  29. package/src/state/WitnessBlockContext.ts +10 -6
@@ -7,7 +7,7 @@ export type NaiveObjectSchema<Obj> = {
7
7
  export declare class ContractArgsRegistry {
8
8
  args: Record<string, any>;
9
9
  addArgs<Type>(name: string, addition: Partial<Type>): void;
10
- resetArgs(name: string): void;
10
+ resetArgs(name?: string): void;
11
11
  getArgs<Type>(name: string, schema: NaiveObjectSchema<Type>): Type;
12
12
  }
13
13
  //# sourceMappingURL=ContractArgsRegistry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContractArgsRegistry.d.ts","sourceRoot":"","sources":["../../src/settlement/ContractArgsRegistry.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,4BAA4B,CAAC,IAAI;IAChD,qBAAqB,IAAI,IAAI,CAAC;CAC/B;AAED,MAAM,MAAM,iBAAiB,CAAC,GAAG,IAAI;KAClC,GAAG,IAAI,MAAM,GAAG,GAAG,SAAS,SAAS,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU,GAAG,UAAU;CACzE,CAAC;AAcF,qBAEa,oBAAoB;IAC/B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAM;IAExB,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC;IAMnD,SAAS,CAAC,IAAI,EAAE,MAAM;IAItB,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC,GAAG,IAAI;CAqB1E"}
1
+ {"version":3,"file":"ContractArgsRegistry.d.ts","sourceRoot":"","sources":["../../src/settlement/ContractArgsRegistry.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,4BAA4B,CAAC,IAAI;IAChD,qBAAqB,IAAI,IAAI,CAAC;CAC/B;AAED,MAAM,MAAM,iBAAiB,CAAC,GAAG,IAAI;KAClC,GAAG,IAAI,MAAM,GAAG,GAAG,SAAS,SAAS,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU,GAAG,UAAU;CACzE,CAAC;AAcF,qBAEa,oBAAoB;IAC/B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAM;IAExB,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC;IAMnD,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM;IAQvB,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC,GAAG,IAAI;CAqB1E"}
@@ -27,7 +27,12 @@ export let ContractArgsRegistry = class ContractArgsRegistry {
27
27
  this.args[name] = merge(args, addition);
28
28
  }
29
29
  resetArgs(name) {
30
- delete this.args[name];
30
+ if (name !== undefined) {
31
+ delete this.args[name];
32
+ }
33
+ else {
34
+ this.args = {};
35
+ }
31
36
  }
32
37
  getArgs(name, schema) {
33
38
  // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
@@ -1 +1 @@
1
- {"version":3,"file":"ContractArgsRegistry.js","sourceRoot":"","sources":["../../src/settlement/ContractArgsRegistry.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,KAAK,MAAM,cAAc,CAAC;AAUjC;;;;;;;;;;EAUE;AAIK,WAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAA1B;QACL,SAAI,GAAwB,EAAE,CAAC;IAiCjC,CAAC;IA/BQ,OAAO,CAAO,IAAY,EAAE,QAAuB;QACxD,mEAAmE;QACnE,MAAM,IAAI,GAAkB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAClD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAEM,SAAS,CAAC,IAAY;QAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAEM,OAAO,CAAO,IAAY,EAAE,MAA+B;QAChE,mEAAmE;QACnE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAEnC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAA0B,MAAM,CAAC,CAAC,MAAM,CACpE,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;YACd,0DAA0D;YAC1D,OAAO,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC;QACxD,CAAC,CACF,CAAC;QAEF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACtB,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;YAChD,MAAM,IAAI,KAAK,CACb,qBAAqB,IAAI,qBAAqB,WAAW,cAAc,CACxE,CAAC;SACH;aAAM;YACL,yEAAyE;YACzE,OAAO,IAAY,CAAC;SACrB;IACH,CAAC;CACF,CAAA;AAlCY,oBAAoB;IAFhC,UAAU,EAAE;IACZ,SAAS,EAAE;GACC,oBAAoB,CAkChC"}
1
+ {"version":3,"file":"ContractArgsRegistry.js","sourceRoot":"","sources":["../../src/settlement/ContractArgsRegistry.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,KAAK,MAAM,cAAc,CAAC;AAUjC;;;;;;;;;;EAUE;AAIK,WAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAA1B;QACL,SAAI,GAAwB,EAAE,CAAC;IAqCjC,CAAC;IAnCQ,OAAO,CAAO,IAAY,EAAE,QAAuB;QACxD,mEAAmE;QACnE,MAAM,IAAI,GAAkB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAClD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAEM,SAAS,CAAC,IAAa;QAC5B,IAAI,IAAI,KAAK,SAAS,EAAE;YACtB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACxB;aAAM;YACL,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;SAChB;IACH,CAAC;IAEM,OAAO,CAAO,IAAY,EAAE,MAA+B;QAChE,mEAAmE;QACnE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAEnC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAA0B,MAAM,CAAC,CAAC,MAAM,CACpE,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;YACd,0DAA0D;YAC1D,OAAO,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC;QACxD,CAAC,CACF,CAAC;QAEF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACtB,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;YAChD,MAAM,IAAI,KAAK,CACb,qBAAqB,IAAI,qBAAqB,WAAW,cAAc,CACxE,CAAC;SACH;aAAM;YACL,yEAAyE;YACzE,OAAO,IAAY,CAAC;SACrB;IACH,CAAC;CACF,CAAA;AAtCY,oBAAoB;IAFhC,UAAU,EAAE;IACZ,SAAS,EAAE;GACC,oBAAoB,CAsChC"}
@@ -67,13 +67,8 @@ declare const OutgoingMessageKey_base: (new (value: {
67
67
  };
68
68
  export declare class OutgoingMessageKey extends OutgoingMessageKey_base {
69
69
  }
70
- export declare class BridgeContractContext {
71
- data: {
72
- messageInputs: any[][];
73
- };
74
- }
75
70
  export interface BridgeContractArgs {
76
- SettlementContract: TypedClass<BridgingSettlementContractType> & typeof SmartContract;
71
+ SettlementContract: TypedClass<Pick<BridgingSettlementContractType, "assertStateRoot">> & typeof SmartContract;
77
72
  messageProcessors: OutgoingMessageProcessor<unknown>[];
78
73
  batchSize?: number;
79
74
  }
@@ -95,7 +90,7 @@ export declare abstract class BridgeContractBase extends TokenContract implement
95
90
  updateStateRootBase(root: Field): Promise<void>;
96
91
  private batchSize;
97
92
  private executeProcessors;
98
- processMessage(batchIndex: number, args: OutgoingMessageArgument, isDummy: Bool): {
93
+ processMessage(args: OutgoingMessageArgument, isDummy: Bool): {
99
94
  messageType: import("o1js/dist/node/lib/provable/field").Field;
100
95
  result: {
101
96
  accountUpdates: AccountUpdate[];
@@ -1 +1 @@
1
- {"version":3,"file":"BridgeContract.d.ts","sourceRoot":"","sources":["../../../src/settlement/contracts/BridgeContract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BridgeContract.d.ts","sourceRoot":"","sources":["../../../src/settlement/contracts/BridgeContract.ts"],"names":[],"mappings":"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"}
@@ -7,9 +7,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
- import { AccountUpdate, Bool, Experimental, Field, method, Poseidon, Provable, PublicKey, State, state, Struct, TokenContract, TokenId, } from "o1js";
10
+ import { AccountUpdate, Bool, Field, method, Poseidon, Provable, PublicKey, State, state, Struct, TokenContract, TokenId, } from "o1js";
11
11
  import { noop, range } from "@proto-kit/common";
12
- import { container, injectable, singleton } from "tsyringe";
12
+ import { container } from "tsyringe";
13
13
  import { OUTGOING_MESSAGE_BATCH_SIZE, OutgoingMessageArgumentBatch, createMessageStruct, } from "../messages/OutgoingMessageArgument";
14
14
  import { Path } from "../../model/Path";
15
15
  import { PROTOKIT_FIELD_PREFIXES } from "../../hashing/protokit-prefixes";
@@ -20,15 +20,6 @@ export class OutgoingMessageKey extends Struct({
20
20
  tokenId: Field,
21
21
  }) {
22
22
  }
23
- export let BridgeContractContext = class BridgeContractContext {
24
- constructor() {
25
- this.data = { messageInputs: [] };
26
- }
27
- };
28
- BridgeContractContext = __decorate([
29
- injectable(),
30
- singleton()
31
- ], BridgeContractContext);
32
23
  export const BridgeContractArgsSchema = {
33
24
  batchSize: "Optional",
34
25
  SettlementContract: "Required",
@@ -90,32 +81,42 @@ export class BridgeContractBase extends TokenContract {
90
81
  batchSize() {
91
82
  return (this.getInitializationArgs().batchSize ?? OUTGOING_MESSAGE_BATCH_SIZE);
92
83
  }
93
- executeProcessors(batchIndex, args) {
84
+ executeProcessors(args) {
94
85
  const { messageProcessors } = this.getInitializationArgs();
95
86
  return messageProcessors.map((processor, j) => {
96
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
97
- const value = Experimental.memoizeWitness(processor.type, () => {
98
- return container.resolve(BridgeContractContext).data.messageInputs[batchIndex][j];
87
+ const messageType = processor.getMessageType();
88
+ // Create the message struct from unconstrained message argument Field[]
89
+ const value = Provable.witness(processor.type, () => {
90
+ if (args.messageType.toString() === messageType.toString()) {
91
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
92
+ const fieldData = args.data.get();
93
+ return processor.type.fromFields(fieldData);
94
+ }
95
+ else {
96
+ return processor.dummy();
97
+ }
99
98
  });
100
99
  const MessageType = createMessageStruct(processor.type);
101
100
  const message = new MessageType({
102
- messageType: args.messageType,
101
+ messageType,
103
102
  value,
104
103
  });
104
+ const result = processor.processMessage(value, {
105
+ bridgeContract: {
106
+ publicKey: this.address,
107
+ tokenId: this.tokenId,
108
+ },
109
+ });
105
110
  return {
106
- messageType: args.messageType,
107
- result: processor.processMessage(value, {
108
- bridgeContract: {
109
- publicKey: this.address,
110
- tokenId: this.tokenId,
111
- },
112
- }),
111
+ // messageType is authenticated via the hash, which is checked again
112
+ messageType,
113
+ result,
113
114
  hash: Poseidon.hash(MessageType.toFields(message)),
114
115
  };
115
116
  });
116
117
  }
117
- processMessage(batchIndex, args, isDummy) {
118
- const results = this.executeProcessors(batchIndex, args);
118
+ processMessage(args, isDummy) {
119
+ const results = this.executeProcessors(args);
119
120
  const maxAccountUpdates = Math.max(0, ...results.map(({ result: { accountUpdates } }) => accountUpdates.length));
120
121
  const AccountUpdateArray = Provable.Array(AccountUpdate, maxAccountUpdates);
121
122
  const dummyMessageType = PROTOKIT_FIELD_PREFIXES.OUTGOING_MESSAGE_DUMMY_TYPE;
@@ -170,7 +171,7 @@ export class BridgeContractBase extends TokenContract {
170
171
  for (let i = 0; i < this.batchSize(); i++) {
171
172
  const args = batch.arguments[i];
172
173
  const isDummy = batch.isDummys[i];
173
- const message = this.processMessage(i, args, isDummy);
174
+ const message = this.processMessage(args, isDummy);
174
175
  // Check witness
175
176
  const path = Path.fromKey(PROTOKIT_FIELD_PREFIXES.OUTGOING_MESSAGE_BASE_PATH, OutgoingMessageKey, {
176
177
  index: counter,
@@ -192,7 +193,7 @@ export class BridgeContractBase extends TokenContract {
192
193
  const isNew = accountUpdate.account.isNew.getAndRequireEquals();
193
194
  return Provable.if(isNew, Field(1), Field(0));
194
195
  })
195
- .reduce((a, b) => a.add(b));
196
+ .reduce((a, b) => a.add(b), Field(0));
196
197
  accountCreationFeePaid = accountCreationFeePaid.add(newAccounts);
197
198
  }
198
199
  this.outgoingMessageCursor.set(counter);
@@ -1 +1 @@
1
- {"version":3,"file":"BridgeContract.js","sourceRoot":"","sources":["../../../src/settlement/contracts/BridgeContract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BridgeContract.js","sourceRoot":"","sources":["../../../src/settlement/contracts/BridgeContract.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Field, PublicKey, SmartContract } from "o1js";
1
+ import { Field, PublicKey, SmartContract, UInt32 } from "o1js";
2
2
  declare const TokenBridgeTree_base: import("@proto-kit/common").AbstractMerkleTreeClass;
3
3
  /**
4
4
  * Merkle tree that contains all the deployed token bridges as a mapping of
@@ -17,7 +17,7 @@ export declare class TokenBridgeTree extends TokenBridgeTree_base {
17
17
  events: {
18
18
  "token-bridge-added": typeof TokenBridgeTreeAddition;
19
19
  };
20
- }): Promise<TokenBridgeTree>;
20
+ }, endHeight?: UInt32): Promise<TokenBridgeTree>;
21
21
  getIndex(tokenId: Field): bigint;
22
22
  }
23
23
  export declare class TokenBridgeTreeWitness extends TokenBridgeTree.WITNESS {
@@ -1 +1 @@
1
- {"version":3,"file":"TokenBridgeTree.d.ts","sourceRoot":"","sources":["../../../src/settlement/contracts/TokenBridgeTree.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,EAAY,SAAS,EAAE,aAAa,EAAU,MAAM,MAAM,CAAC;;AAEzE;;;;;;GAMG;AACH,qBAAa,eAAgB,SAAQ,oBAAqB;IACjD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IAE5C;;;OAGG;WACiB,mBAAmB,CACrC,QAAQ,EAAE,aAAa,GAAG;QACxB,MAAM,EAAE;YAAE,oBAAoB,EAAE,OAAO,uBAAuB,CAAA;SAAE,CAAC;KAClE;IAwBI,QAAQ,CAAC,OAAO,EAAE,KAAK,GAAG,MAAM;CAGxC;AAED,qBAAa,sBAAuB,SAAQ,eAAe,CAAC,OAAO;CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEtE,qBAAa,gBAAiB,SAAQ,qBAGpC;IACO,IAAI;CAGZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAED,qBAAa,sBAAuB,SAAQ,2BAG1C;CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEL,qBAAa,uBAAwB,SAAQ,4BAG3C;CAAG"}
1
+ {"version":3,"file":"TokenBridgeTree.d.ts","sourceRoot":"","sources":["../../../src/settlement/contracts/TokenBridgeTree.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,KAAK,EAEL,SAAS,EACT,aAAa,EAEb,MAAM,EACP,MAAM,MAAM,CAAC;;AAEd;;;;;;GAMG;AACH,qBAAa,eAAgB,SAAQ,oBAAqB;IACjD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IAE5C;;;OAGG;WACiB,mBAAmB,CACrC,QAAQ,EAAE,aAAa,GAAG;QACxB,MAAM,EAAE;YAAE,oBAAoB,EAAE,OAAO,uBAAuB,CAAA;SAAE,CAAC;KAClE,EACD,SAAS,CAAC,EAAE,MAAM;IA6Bb,QAAQ,CAAC,OAAO,EAAE,KAAK,GAAG,MAAM;CAGxC;AAED,qBAAa,sBAAuB,SAAQ,eAAe,CAAC,OAAO;CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEtE,qBAAa,gBAAiB,SAAQ,qBAGpC;IACO,IAAI;CAGZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAED,qBAAa,sBAAuB,SAAQ,2BAG1C;CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEL,qBAAa,uBAAwB,SAAQ,4BAG3C;CAAG"}
@@ -1,5 +1,5 @@
1
1
  import { createMerkleTree, InMemoryMerkleTreeStorage, log, } from "@proto-kit/common";
2
- import { Field, Poseidon, PublicKey, Struct } from "o1js";
2
+ import { Field, Poseidon, PublicKey, Struct, UInt32, } from "o1js";
3
3
  /**
4
4
  * Merkle tree that contains all the deployed token bridges as a mapping of
5
5
  * tokenId => PublicKey
@@ -16,9 +16,9 @@ export class TokenBridgeTree extends createMerkleTree(256) {
16
16
  * Initializes and fills the tree based on all on-chain events that have been
17
17
  * emitted by every emit
18
18
  */
19
- static async buildTreeFromEvents(contract) {
20
- const events = await contract.fetchEvents();
21
- log.debug(`Found ${events.length} token bridge add events`);
19
+ static async buildTreeFromEvents(contract, endHeight) {
20
+ const events = await contract.fetchEvents(UInt32.from(0), endHeight?.add(1));
21
+ log.debug(`Found ${events.length} token bridge add events (height: ${endHeight?.toString() ?? "open end"})`);
22
22
  const tree = new TokenBridgeTree(new InMemoryMerkleTreeStorage());
23
23
  const indizes = {};
24
24
  events.forEach(({ type, event }) => {
@@ -1 +1 @@
1
- {"version":3,"file":"TokenBridgeTree.js","sourceRoot":"","sources":["../../../src/settlement/contracts/TokenBridgeTree.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,yBAAyB,EACzB,GAAG,GACJ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAiB,MAAM,EAAE,MAAM,MAAM,CAAC;AAEzE;;;;;;GAMG;AACH,MAAM,OAAO,eAAgB,SAAQ,gBAAgB,CAAC,GAAG,CAAC;IAA1D;;QACS,YAAO,GAA2B,EAAE,CAAC;IAoC9C,CAAC;IAlCC;;;OAGG;IACI,MAAM,CAAC,KAAK,CAAC,mBAAmB,CACrC,QAEC;QAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC;QAE5C,GAAG,CAAC,KAAK,CAAC,SAAS,MAAM,CAAC,MAAM,0BAA0B,CAAC,CAAC;QAE5D,MAAM,IAAI,GAAG,IAAI,eAAe,CAAC,IAAI,yBAAyB,EAAE,CAAC,CAAC;QAClE,MAAM,OAAO,GAA2B,EAAE,CAAC;QAE3C,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;YACjC,IAAI,IAAI,KAAK,oBAAoB,EAAE;gBACjC,MAAM,QAAQ;gBACZ,yEAAyE;gBACzE,KAAK,CAAC,IAA0C,CAAC;gBAEnD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;gBAE/D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;aACxE;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,QAAQ,CAAC,OAAc;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF;AAED,MAAM,OAAO,sBAAuB,SAAQ,eAAe,CAAC,OAAO;CAAG;AAEtE,MAAM,OAAO,gBAAiB,SAAQ,MAAM,CAAC;IAC3C,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,KAAK;CACf,CAAC;IACO,IAAI;QACT,OAAO,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACxD,CAAC;CACF;AAED,MAAM,OAAO,sBAAuB,SAAQ,MAAM,CAAC;IACjD,OAAO,EAAE,sBAAsB;IAC/B,KAAK,EAAE,KAAK;CACb,CAAC;CAAG;AAEL,MAAM,OAAO,uBAAwB,SAAQ,MAAM,CAAC;IAClD,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,gBAAgB;CACxB,CAAC;CAAG"}
1
+ {"version":3,"file":"TokenBridgeTree.js","sourceRoot":"","sources":["../../../src/settlement/contracts/TokenBridgeTree.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,yBAAyB,EACzB,GAAG,GACJ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,KAAK,EACL,QAAQ,EACR,SAAS,EAET,MAAM,EACN,MAAM,GACP,MAAM,MAAM,CAAC;AAEd;;;;;;GAMG;AACH,MAAM,OAAO,eAAgB,SAAQ,gBAAgB,CAAC,GAAG,CAAC;IAA1D;;QACS,YAAO,GAA2B,EAAE,CAAC;IA0C9C,CAAC;IAxCC;;;OAGG;IACI,MAAM,CAAC,KAAK,CAAC,mBAAmB,CACrC,QAEC,EACD,SAAkB;QAElB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,WAAW,CACvC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EACd,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,CAClB,CAAC;QAEF,GAAG,CAAC,KAAK,CACP,SAAS,MAAM,CAAC,MAAM,qCAAqC,SAAS,EAAE,QAAQ,EAAE,IAAI,UAAU,GAAG,CAClG,CAAC;QAEF,MAAM,IAAI,GAAG,IAAI,eAAe,CAAC,IAAI,yBAAyB,EAAE,CAAC,CAAC;QAClE,MAAM,OAAO,GAA2B,EAAE,CAAC;QAE3C,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;YACjC,IAAI,IAAI,KAAK,oBAAoB,EAAE;gBACjC,MAAM,QAAQ;gBACZ,yEAAyE;gBACzE,KAAK,CAAC,IAA0C,CAAC;gBAEnD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;gBAE/D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;aACxE;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,QAAQ,CAAC,OAAc;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF;AAED,MAAM,OAAO,sBAAuB,SAAQ,eAAe,CAAC,OAAO;CAAG;AAEtE,MAAM,OAAO,gBAAiB,SAAQ,MAAM,CAAC;IAC3C,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,KAAK;CACf,CAAC;IACO,IAAI;QACT,OAAO,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACxD,CAAC;CACF;AAED,MAAM,OAAO,sBAAuB,SAAQ,MAAM,CAAC;IACjD,OAAO,EAAE,sBAAsB;IAC/B,KAAK,EAAE,KAAK;CACb,CAAC;CAAG;AAEL,MAAM,OAAO,uBAAwB,SAAQ,MAAM,CAAC;IAClD,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,gBAAgB;CACxB,CAAC;CAAG"}
@@ -1,4 +1,4 @@
1
- import { FlexibleProvablePure } from "o1js";
1
+ import { FlexibleProvablePure, Provable, Unconstrained } from "o1js";
2
2
  import { LinkedMerkleTreeReadWitness } from "@proto-kit/common";
3
3
  export declare const OUTGOING_MESSAGE_BATCH_SIZE = 1;
4
4
  export declare function createMessageStruct<T>(type: FlexibleProvablePure<T>): {
@@ -278,14 +278,17 @@ export declare function createMessageStruct<T>(type: FlexibleProvablePure<T>): {
278
278
  declare const OutgoingMessageArgument_base: (new (value: {
279
279
  witness: LinkedMerkleTreeReadWitness;
280
280
  messageType: import("o1js/dist/node/lib/provable/field").Field;
281
+ data: Unconstrained<any>;
281
282
  }) => {
282
283
  witness: LinkedMerkleTreeReadWitness;
283
284
  messageType: import("o1js/dist/node/lib/provable/field").Field;
285
+ data: Unconstrained<any>;
284
286
  }) & {
285
287
  _isStruct: true;
286
- } & Omit<import("o1js/dist/node/lib/provable/types/provable-intf").Provable<{
288
+ } & Provable<{
287
289
  witness: LinkedMerkleTreeReadWitness;
288
290
  messageType: import("o1js/dist/node/lib/provable/field").Field;
291
+ data: Unconstrained<any>;
289
292
  }, {
290
293
  witness: {
291
294
  leaf: {
@@ -299,12 +302,8 @@ declare const OutgoingMessageArgument_base: (new (value: {
299
302
  };
300
303
  };
301
304
  messageType: bigint;
302
- }>, "fromFields"> & {
303
- fromFields: (fields: import("o1js/dist/node/lib/provable/field").Field[]) => {
304
- witness: LinkedMerkleTreeReadWitness;
305
- messageType: import("o1js/dist/node/lib/provable/field").Field;
306
- };
307
- } & {
305
+ data: any;
306
+ }> & {
308
307
  fromValue: (value: {
309
308
  witness: LinkedMerkleTreeReadWitness | {
310
309
  leaf: import("@proto-kit/common").LinkedLeafStruct | {
@@ -329,13 +328,16 @@ declare const OutgoingMessageArgument_base: (new (value: {
329
328
  };
330
329
  };
331
330
  messageType: string | number | bigint | import("o1js/dist/node/lib/provable/field").Field;
331
+ data: any;
332
332
  }) => {
333
333
  witness: LinkedMerkleTreeReadWitness;
334
334
  messageType: import("o1js/dist/node/lib/provable/field").Field;
335
+ data: Unconstrained<any>;
335
336
  };
336
337
  toInput: (x: {
337
338
  witness: LinkedMerkleTreeReadWitness;
338
339
  messageType: import("o1js/dist/node/lib/provable/field").Field;
340
+ data: Unconstrained<any>;
339
341
  }) => {
340
342
  fields?: import("o1js/dist/node/lib/provable/field").Field[] | undefined;
341
343
  packed?: [import("o1js/dist/node/lib/provable/field").Field, number][] | undefined;
@@ -343,6 +345,7 @@ declare const OutgoingMessageArgument_base: (new (value: {
343
345
  toJSON: (x: {
344
346
  witness: LinkedMerkleTreeReadWitness;
345
347
  messageType: import("o1js/dist/node/lib/provable/field").Field;
348
+ data: Unconstrained<any>;
346
349
  }) => {
347
350
  witness: {
348
351
  leaf: {
@@ -356,6 +359,29 @@ declare const OutgoingMessageArgument_base: (new (value: {
356
359
  };
357
360
  };
358
361
  messageType: string;
362
+ data: {
363
+ prototype: {
364
+ get: {};
365
+ set: {};
366
+ setTo: {};
367
+ updateAsProver: {};
368
+ };
369
+ from: {};
370
+ witness: {};
371
+ provable: {
372
+ toFields: {};
373
+ toAuxiliary: {};
374
+ fromFields: {};
375
+ sizeInFields: {};
376
+ check: {};
377
+ toValue: {};
378
+ fromValue: {};
379
+ toCanonical?: {} | null | undefined;
380
+ toInput: {};
381
+ empty: {};
382
+ };
383
+ withEmpty: {};
384
+ };
359
385
  };
360
386
  fromJSON: (x: {
361
387
  witness: {
@@ -370,13 +396,38 @@ declare const OutgoingMessageArgument_base: (new (value: {
370
396
  };
371
397
  };
372
398
  messageType: string;
399
+ data: {
400
+ prototype: {
401
+ get: {};
402
+ set: {};
403
+ setTo: {};
404
+ updateAsProver: {};
405
+ };
406
+ from: {};
407
+ witness: {};
408
+ provable: {
409
+ toFields: {};
410
+ toAuxiliary: {};
411
+ fromFields: {};
412
+ sizeInFields: {};
413
+ check: {};
414
+ toValue: {};
415
+ fromValue: {};
416
+ toCanonical?: {} | null | undefined;
417
+ toInput: {};
418
+ empty: {};
419
+ };
420
+ withEmpty: {};
421
+ };
373
422
  }) => {
374
423
  witness: LinkedMerkleTreeReadWitness;
375
424
  messageType: import("o1js/dist/node/lib/provable/field").Field;
425
+ data: Unconstrained<any>;
376
426
  };
377
427
  empty: () => {
378
428
  witness: LinkedMerkleTreeReadWitness;
379
429
  messageType: import("o1js/dist/node/lib/provable/field").Field;
430
+ data: Unconstrained<any>;
380
431
  };
381
432
  };
382
433
  export declare class OutgoingMessageArgument extends OutgoingMessageArgument_base {
@@ -390,7 +441,7 @@ declare const OutgoingMessageArgumentBatch_base: (new (value: {
390
441
  isDummys: import("o1js/dist/node/lib/provable/bool").Bool[];
391
442
  }) & {
392
443
  _isStruct: true;
393
- } & Omit<import("o1js/dist/node/lib/provable/types/provable-intf").Provable<{
444
+ } & Provable<{
394
445
  arguments: OutgoingMessageArgument[];
395
446
  isDummys: import("o1js/dist/node/lib/provable/bool").Bool[];
396
447
  }, {
@@ -407,14 +458,10 @@ declare const OutgoingMessageArgumentBatch_base: (new (value: {
407
458
  };
408
459
  };
409
460
  messageType: bigint;
461
+ data: any;
410
462
  }[];
411
463
  isDummys: boolean[];
412
- }>, "fromFields"> & {
413
- fromFields: (fields: import("o1js/dist/node/lib/provable/field").Field[]) => {
414
- arguments: OutgoingMessageArgument[];
415
- isDummys: import("o1js/dist/node/lib/provable/bool").Bool[];
416
- };
417
- } & {
464
+ }> & {
418
465
  fromValue: (value: {
419
466
  arguments: OutgoingMessageArgument[] | {
420
467
  witness: {
@@ -429,6 +476,7 @@ declare const OutgoingMessageArgumentBatch_base: (new (value: {
429
476
  };
430
477
  };
431
478
  messageType: bigint;
479
+ data: any;
432
480
  }[];
433
481
  isDummys: import("o1js/dist/node/lib/provable/bool").Bool[] | boolean[];
434
482
  }) => {
@@ -459,6 +507,29 @@ declare const OutgoingMessageArgumentBatch_base: (new (value: {
459
507
  };
460
508
  };
461
509
  messageType: string;
510
+ data: {
511
+ prototype: {
512
+ get: {};
513
+ set: {};
514
+ setTo: {};
515
+ updateAsProver: {};
516
+ };
517
+ from: {};
518
+ witness: {};
519
+ provable: {
520
+ toFields: {};
521
+ toAuxiliary: {};
522
+ fromFields: {};
523
+ sizeInFields: {};
524
+ check: {};
525
+ toValue: {};
526
+ fromValue: {};
527
+ toCanonical?: {} | null | undefined;
528
+ toInput: {};
529
+ empty: {};
530
+ };
531
+ withEmpty: {};
532
+ };
462
533
  }[];
463
534
  isDummys: boolean[];
464
535
  };
@@ -476,6 +547,29 @@ declare const OutgoingMessageArgumentBatch_base: (new (value: {
476
547
  };
477
548
  };
478
549
  messageType: string;
550
+ data: {
551
+ prototype: {
552
+ get: {};
553
+ set: {};
554
+ setTo: {};
555
+ updateAsProver: {};
556
+ };
557
+ from: {};
558
+ witness: {};
559
+ provable: {
560
+ toFields: {};
561
+ toAuxiliary: {};
562
+ fromFields: {};
563
+ sizeInFields: {};
564
+ check: {};
565
+ toValue: {};
566
+ fromValue: {};
567
+ toCanonical?: {} | null | undefined;
568
+ toInput: {};
569
+ empty: {};
570
+ };
571
+ withEmpty: {};
572
+ };
479
573
  }[];
480
574
  isDummys: boolean[];
481
575
  }) => {
@@ -1 +1 @@
1
- {"version":3,"file":"OutgoingMessageArgument.d.ts","sourceRoot":"","sources":["../../../src/settlement/messages/OutgoingMessageArgument.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,oBAAoB,EAAoB,MAAM,MAAM,CAAC;AAC3E,OAAO,EAEL,2BAA2B,EAC5B,MAAM,mBAAmB,CAAC;AAK3B,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAE7C,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAED,qBAAa,uBAAwB,SAAQ,4BAG3C;WACc,KAAK,IAAI,uBAAuB;CAM/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAED,qBAAa,4BAA6B,SAAQ,iCAOhD;WACc,YAAY,CAAC,iBAAiB,EAAE,uBAAuB,EAAE;CAcxE"}
1
+ {"version":3,"file":"OutgoingMessageArgument.d.ts","sourceRoot":"","sources":["../../../src/settlement/messages/OutgoingMessageArgument.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,oBAAoB,EACpB,QAAQ,EAER,aAAa,EACd,MAAM,MAAM,CAAC;AACd,OAAO,EAEL,2BAA2B,EAC5B,MAAM,mBAAmB,CAAC;AAK3B,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAE7C,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAED,qBAAa,uBAAwB,SAAQ,4BAI3C;WACc,KAAK,IAAI,uBAAuB;CAO/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAED,qBAAa,4BAA6B,SAAQ,iCAOhD;WACc,YAAY,CAAC,iBAAiB,EAAE,uBAAuB,EAAE;CAcxE"}
@@ -1,4 +1,4 @@
1
- import { Bool, Field, Provable, Struct } from "o1js";
1
+ import { Bool, Field, Provable, Struct, Unconstrained, } from "o1js";
2
2
  import { LinkedMerkleTree, LinkedMerkleTreeReadWitness, } from "@proto-kit/common";
3
3
  // TODO Make that dynamic based on processors configured
4
4
  export const OUTGOING_MESSAGE_BATCH_SIZE = 1;
@@ -12,11 +12,13 @@ export function createMessageStruct(type) {
12
12
  export class OutgoingMessageArgument extends Struct({
13
13
  witness: LinkedMerkleTreeReadWitness,
14
14
  messageType: Field,
15
+ data: (Unconstrained),
15
16
  }) {
16
17
  static dummy() {
17
18
  return new OutgoingMessageArgument({
18
19
  witness: LinkedMerkleTree.dummyReadWitness(),
19
20
  messageType: Field(0),
21
+ data: Unconstrained.from([]),
20
22
  });
21
23
  }
22
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"OutgoingMessageArgument.js","sourceRoot":"","sources":["../../../src/settlement/messages/OutgoingMessageArgument.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAwB,QAAQ,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC3E,OAAO,EACL,gBAAgB,EAChB,2BAA2B,GAC5B,MAAM,mBAAmB,CAAC;AAI3B,wDAAwD;AACxD,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC;AAE7C,MAAM,UAAU,mBAAmB,CAAI,IAA6B;IAClE,OAAO,MAAM,aAAc,SAAQ,MAAM,CAAC;QACxC,KAAK,EAAE,IAAI;QACX,WAAW,EAAE,KAAK;KACnB,CAAC;KAAsD,CAAC;AAC3D,CAAC;AAED,MAAM,OAAO,uBAAwB,SAAQ,MAAM,CAAC;IAClD,OAAO,EAAE,2BAA2B;IACpC,WAAW,EAAE,KAAK;CACnB,CAAC;IACO,MAAM,CAAC,KAAK;QACjB,OAAO,IAAI,uBAAuB,CAAC;YACjC,OAAO,EAAE,gBAAgB,CAAC,gBAAgB,EAAE;YAC5C,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;SACtB,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,OAAO,4BAA6B,SAAQ,MAAM,CAAC;IACvD,SAAS,EAAE,QAAQ,CAAC,KAAK,CACvB,uBAAuB,EACvB,2BAA2B,CAC5B;IAED,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,2BAA2B,CAAC;CAC5D,CAAC;IACO,MAAM,CAAC,YAAY,CAAC,iBAA4C;QACrE,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,CAAC;QACxC,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAE9C,OAAO,KAAK,CAAC,MAAM,GAAG,2BAA2B,EAAE;YACjD,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAC,CAAC;YAC5C,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SAC3B;QAED,OAAO,IAAI,4BAA4B,CAAC;YACtC,SAAS,EAAE,KAAK;YAChB,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"OutgoingMessageArgument.js","sourceRoot":"","sources":["../../../src/settlement/messages/OutgoingMessageArgument.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,KAAK,EAEL,QAAQ,EACR,MAAM,EACN,aAAa,GACd,MAAM,MAAM,CAAC;AACd,OAAO,EACL,gBAAgB,EAChB,2BAA2B,GAC5B,MAAM,mBAAmB,CAAC;AAI3B,wDAAwD;AACxD,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC;AAE7C,MAAM,UAAU,mBAAmB,CAAI,IAA6B;IAClE,OAAO,MAAM,aAAc,SAAQ,MAAM,CAAC;QACxC,KAAK,EAAE,IAAI;QACX,WAAW,EAAE,KAAK;KACnB,CAAC;KAAsD,CAAC;AAC3D,CAAC;AAED,MAAM,OAAO,uBAAwB,SAAQ,MAAM,CAAC;IAClD,OAAO,EAAE,2BAA2B;IACpC,WAAW,EAAE,KAAK;IAClB,IAAI,EAAE,CAAA,aAAsB,CAAA;CAC7B,CAAC;IACO,MAAM,CAAC,KAAK;QACjB,OAAO,IAAI,uBAAuB,CAAC;YACjC,OAAO,EAAE,gBAAgB,CAAC,gBAAgB,EAAE;YAC5C,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;YACrB,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;SAC7B,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,OAAO,4BAA6B,SAAQ,MAAM,CAAC;IACvD,SAAS,EAAE,QAAQ,CAAC,KAAK,CACvB,uBAAuB,EACvB,2BAA2B,CAC5B;IAED,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,2BAA2B,CAAC;CAC5D,CAAC;IACO,MAAM,CAAC,YAAY,CAAC,iBAA4C;QACrE,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,CAAC;QACxC,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAE9C,OAAO,KAAK,CAAC,MAAM,GAAG,2BAA2B,EAAE;YACjD,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAC,CAAC;YAC5C,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SAC3B;QAED,OAAO,IAAI,4BAA4B,CAAC;YACtC,SAAS,EAAE,KAAK;YAChB,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -17,7 +17,10 @@ export declare abstract class OutgoingMessageProcessor<T, Config = NoConfig> ext
17
17
  status: Bool;
18
18
  statusMessage?: string;
19
19
  };
20
- abstract type: FlexibleProvablePure<T>;
20
+ getMessageType(): Field;
21
+ abstract type: FlexibleProvablePure<T> & {
22
+ name: string;
23
+ };
21
24
  abstract messageType: string;
22
25
  abstract dummy(): T;
23
26
  abstract process(message: T, args: MessageProcessorArgs): AccountUpdate[];
@@ -1 +1 @@
1
- {"version":3,"file":"OutgoingMessageProcessor.d.ts","sourceRoot":"","sources":["../../../src/settlement/modularity/OutgoingMessageProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,IAAI,EACJ,KAAK,EACL,oBAAoB,EACpB,SAAS,EACV,MAAM,MAAM,CAAC;AACd,OAAO,EAAa,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,wBAAgB,wBAAwB,sEAEvC;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,cAAc,EAAE;QACd,SAAS,EAAE,SAAS,CAAC;QACrB,OAAO,EAAE,KAAK,CAAC;KAChB,CAAC;CACH,CAAC;AAEF,8BAAsB,wBAAwB,CAC5C,CAAC,EACD,MAAM,GAAG,QAAQ,CACjB,SAAQ,cAAc,CAAC,MAAM,CAAC;IAC9B,OAAO,CAAC,MAAM,CAAqB;IAEnC,OAAO,CAAC,aAAa,CAAC,CAAqB;IAEpC,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,MAAM;IAOvC,cAAc,CACZ,OAAO,EAAE,CAAC,EACV,IAAI,EAAE,oBAAoB,GACzB;QACD,cAAc,EAAE,aAAa,EAAE,CAAC;QAChC,MAAM,EAAE,IAAI,CAAC;QACb,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB;IAaD,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC;IAEvC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,QAAQ,CAAC,KAAK,IAAI,CAAC;IAEnB,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,oBAAoB,GAAG,aAAa,EAAE;CAC1E"}
1
+ {"version":3,"file":"OutgoingMessageProcessor.d.ts","sourceRoot":"","sources":["../../../src/settlement/modularity/OutgoingMessageProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,IAAI,EACJ,KAAK,EACL,oBAAoB,EAEpB,SAAS,EACV,MAAM,MAAM,CAAC;AACd,OAAO,EAAa,QAAQ,EAAiB,MAAM,mBAAmB,CAAC;AAEvE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,wBAAgB,wBAAwB,sEAEvC;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,cAAc,EAAE;QACd,SAAS,EAAE,SAAS,CAAC;QACrB,OAAO,EAAE,KAAK,CAAC;KAChB,CAAC;CACH,CAAC;AAEF,8BAAsB,wBAAwB,CAC5C,CAAC,EACD,MAAM,GAAG,QAAQ,CACjB,SAAQ,cAAc,CAAC,MAAM,CAAC;IAC9B,OAAO,CAAC,MAAM,CAAqB;IAEnC,OAAO,CAAC,aAAa,CAAC,CAAqB;IAEpC,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,MAAM;IAOvC,cAAc,CACZ,OAAO,EAAE,CAAC,EACV,IAAI,EAAE,oBAAoB,GACzB;QACD,cAAc,EAAE,aAAa,EAAE,CAAC;QAChC,MAAM,EAAE,IAAI,CAAC;QACb,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB;IAaM,cAAc,IAAI,KAAK;IAY9B,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAE1D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,QAAQ,CAAC,KAAK,IAAI,CAAC;IAEnB,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,oBAAoB,GAAG,aAAa,EAAE;CAC1E"}
@@ -1,5 +1,5 @@
1
- import { Bool, } from "o1js";
2
- import { implement } from "@proto-kit/common";
1
+ import { Bool, Poseidon, } from "o1js";
2
+ import { implement, prefixToField } from "@proto-kit/common";
3
3
  import { ProtocolModule } from "../../protocol/ProtocolModule";
4
4
  export function outgoingMessageProcessor() {
5
5
  return implement("OutgoingMessageProcessor");
@@ -26,5 +26,14 @@ export class OutgoingMessageProcessor extends ProtocolModule {
26
26
  statusMessage: this.statusMessage,
27
27
  };
28
28
  }
29
+ getMessageType() {
30
+ // TODO static salt/prefix
31
+ // This executes the bigint poseidon behind the scenes, therefore creates a constant
32
+ const messageType = Poseidon.hash([prefixToField(this.messageType)]);
33
+ if (!messageType.isConstant()) {
34
+ throw new Error("Underlying poseidon implementation has changed and doesn't create a constant anymore");
35
+ }
36
+ return messageType;
37
+ }
29
38
  }
30
39
  //# sourceMappingURL=OutgoingMessageProcessor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OutgoingMessageProcessor.js","sourceRoot":"","sources":["../../../src/settlement/modularity/OutgoingMessageProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,IAAI,GAIL,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,SAAS,EAAY,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,MAAM,UAAU,wBAAwB;IACtC,OAAO,SAAS,CAAC,0BAA0B,CAAC,CAAC;AAC/C,CAAC;AASD,MAAM,OAAgB,wBAGpB,SAAQ,cAAsB;IAHhC;;QAIU,WAAM,GAAS,IAAI,CAAC,KAAK,CAAC,CAAC;QAE3B,kBAAa,GAAY,SAAS,CAAC;IAoC7C,CAAC;IAlCQ,UAAU,CAAC,CAAO,EAAE,GAAY;QACrC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE;YACpC,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;SAC1B;IACH,CAAC;IAED,cAAc,CACZ,OAAU,EACV,IAA0B;QAM1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;QAE/B,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAEnD,OAAO;YACL,cAAc;YACd,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,aAAa,EAAE,IAAI,CAAC,aAAa;SAClC,CAAC;IACJ,CAAC;CASF"}
1
+ {"version":3,"file":"OutgoingMessageProcessor.js","sourceRoot":"","sources":["../../../src/settlement/modularity/OutgoingMessageProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,IAAI,EAGJ,QAAQ,GAET,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,SAAS,EAAY,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,MAAM,UAAU,wBAAwB;IACtC,OAAO,SAAS,CAAC,0BAA0B,CAAC,CAAC;AAC/C,CAAC;AASD,MAAM,OAAgB,wBAGpB,SAAQ,cAAsB;IAHhC;;QAIU,WAAM,GAAS,IAAI,CAAC,KAAK,CAAC,CAAC;QAE3B,kBAAa,GAAY,SAAS,CAAC;IAgD7C,CAAC;IA9CQ,UAAU,CAAC,CAAO,EAAE,GAAY;QACrC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE;YACpC,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;SAC1B;IACH,CAAC;IAED,cAAc,CACZ,OAAU,EACV,IAA0B;QAM1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;QAE/B,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAEnD,OAAO;YACL,cAAc;YACd,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,aAAa,EAAE,IAAI,CAAC,aAAa;SAClC,CAAC;IACJ,CAAC;IAEM,cAAc;QACnB,0BAA0B;QAC1B,oFAAoF;QACpF,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE;YAC7B,MAAM,IAAI,KAAK,CACb,sFAAsF,CACvF,CAAC;SACH;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;CASF"}
@@ -21,18 +21,24 @@ const asyncProxyWitnessFunction = (originalFuncDef) => {
21
21
  return async (...args) => {
22
22
  const context = container.resolve(WitnessBlockContext);
23
23
  context.witnessBlockDepth += 1;
24
- const ret = await originalFuncDef(...args);
25
- context.witnessBlockDepth -= 1;
26
- return ret;
24
+ try {
25
+ return await originalFuncDef(...args);
26
+ }
27
+ finally {
28
+ context.witnessBlockDepth -= 1;
29
+ }
27
30
  };
28
31
  };
29
32
  const proxySyncWitnessFunction = (originalFuncDef) => {
30
33
  return (...args) => {
31
34
  const context = container.resolve(WitnessBlockContext);
32
35
  context.witnessBlockDepth += 1;
33
- const ret = originalFuncDef(...args);
34
- context.witnessBlockDepth -= 1;
35
- return ret;
36
+ try {
37
+ return originalFuncDef(...args);
38
+ }
39
+ finally {
40
+ context.witnessBlockDepth -= 1;
41
+ }
36
42
  };
37
43
  };
38
44
  Provable.witnessAsync = asyncProxyWitnessFunction(Provable.witnessAsync);
@@ -1 +1 @@
1
- {"version":3,"file":"WitnessBlockContext.js","sourceRoot":"","sources":["../../src/state/WitnessBlockContext.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAGzB,WAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAAzB;QACE,sBAAiB,GAAW,CAAC,CAAC;IAKvC,CAAC;IAHC,IAAW,gBAAgB;QACzB,OAAO,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;IACpC,CAAC;CACF,CAAA;AANY,mBAAmB;IAD/B,SAAS,EAAE;GACC,mBAAmB,CAM/B;AAED,MAAM,yBAAyB,GAAG,CAIhC,eAAkB,EAClB,EAAE;IACF,OAAO,KAAK,EAAE,GAAG,IAAmB,EAAE,EAAE;QACtC,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QACvD,OAAO,CAAC,iBAAiB,IAAI,CAAC,CAAC;QAC/B,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,GAAG,IAAI,CAAC,CAAC;QAC3C,OAAO,CAAC,iBAAiB,IAAI,CAAC,CAAC;QAC/B,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,wBAAwB,GAAG,CAK/B,eAAkB,EAClB,EAAE;IACF,OAAO,CAAC,GAAG,IAAY,EAAO,EAAE;QAC9B,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QACvD,OAAO,CAAC,iBAAiB,IAAI,CAAC,CAAC;QAC/B,MAAM,GAAG,GAAG,eAAe,CAAC,GAAG,IAAI,CAAC,CAAC;QACrC,OAAO,CAAC,iBAAiB,IAAI,CAAC,CAAC;QAC/B,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,QAAQ,CAAC,YAAY,GAAG,yBAAyB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AAEzE,QAAQ,CAAC,OAAO,GAAG,wBAAwB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAE9D,QAAQ,CAAC,aAAa,GAAG,wBAAwB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AAE1E,QAAQ,CAAC,QAAQ,GAAG,wBAAwB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC"}
1
+ {"version":3,"file":"WitnessBlockContext.js","sourceRoot":"","sources":["../../src/state/WitnessBlockContext.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAGzB,WAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAAzB;QACE,sBAAiB,GAAW,CAAC,CAAC;IAKvC,CAAC;IAHC,IAAW,gBAAgB;QACzB,OAAO,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;IACpC,CAAC;CACF,CAAA;AANY,mBAAmB;IAD/B,SAAS,EAAE;GACC,mBAAmB,CAM/B;AAED,MAAM,yBAAyB,GAAG,CAIhC,eAAkB,EAClB,EAAE;IACF,OAAO,KAAK,EAAE,GAAG,IAAmB,EAAE,EAAE;QACtC,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QACvD,OAAO,CAAC,iBAAiB,IAAI,CAAC,CAAC;QAC/B,IAAI;YACF,OAAO,MAAM,eAAe,CAAC,GAAG,IAAI,CAAC,CAAC;SACvC;gBAAS;YACR,OAAO,CAAC,iBAAiB,IAAI,CAAC,CAAC;SAChC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,wBAAwB,GAAG,CAK/B,eAAkB,EAClB,EAAE;IACF,OAAO,CAAC,GAAG,IAAY,EAAO,EAAE;QAC9B,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QACvD,OAAO,CAAC,iBAAiB,IAAI,CAAC,CAAC;QAC/B,IAAI;YACF,OAAO,eAAe,CAAC,GAAG,IAAI,CAAC,CAAC;SACjC;gBAAS;YACR,OAAO,CAAC,iBAAiB,IAAI,CAAC,CAAC;SAChC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,QAAQ,CAAC,YAAY,GAAG,yBAAyB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AAEzE,QAAQ,CAAC,OAAO,GAAG,wBAAwB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAE9D,QAAQ,CAAC,aAAa,GAAG,wBAAwB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AAE1E,QAAQ,CAAC,QAAQ,GAAG,wBAAwB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC"}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "license": "MIT",
4
4
  "private": false,
5
5
  "type": "module",
6
- "version": "0.1.1-develop.2024+5a945075",
6
+ "version": "0.1.1-develop.2137+8a7eca31",
7
7
  "scripts": {
8
8
  "build": "tsc -p tsconfig.json",
9
9
  "dev": "tsc -p tsconfig.json --watch",
@@ -32,5 +32,5 @@
32
32
  "@jest/globals": "^29.5.0",
33
33
  "@types/lodash": "^4.14.194"
34
34
  },
35
- "gitHead": "fb121dd0802012f70abff6afe48e82a67c13318d"
35
+ "gitHead": "8a7eca319272a15162dc4ad04bdc134b1017716d"
36
36
  }
@@ -32,8 +32,12 @@ export class ContractArgsRegistry {
32
32
  this.args[name] = merge(args, addition);
33
33
  }
34
34
 
35
- public resetArgs(name: string) {
36
- delete this.args[name];
35
+ public resetArgs(name?: string) {
36
+ if (name !== undefined) {
37
+ delete this.args[name];
38
+ } else {
39
+ this.args = {};
40
+ }
37
41
  }
38
42
 
39
43
  public getArgs<Type>(name: string, schema: NaiveObjectSchema<Type>): Type {
@@ -1,7 +1,6 @@
1
1
  import {
2
2
  AccountUpdate,
3
3
  Bool,
4
- Experimental,
5
4
  Field,
6
5
  method,
7
6
  Permissions,
@@ -14,10 +13,11 @@ import {
14
13
  Struct,
15
14
  TokenContract,
16
15
  TokenId,
16
+ Unconstrained,
17
17
  VerificationKey,
18
18
  } from "o1js";
19
19
  import { noop, range, TypedClass } from "@proto-kit/common";
20
- import { container, injectable, singleton } from "tsyringe";
20
+ import { container } from "tsyringe";
21
21
 
22
22
  import {
23
23
  OUTGOING_MESSAGE_BATCH_SIZE,
@@ -61,16 +61,10 @@ export class OutgoingMessageKey extends Struct({
61
61
  tokenId: Field,
62
62
  }) {}
63
63
 
64
- @injectable()
65
- @singleton()
66
- export class BridgeContractContext {
67
- public data: {
68
- messageInputs: any[][];
69
- } = { messageInputs: [] };
70
- }
71
-
72
64
  export interface BridgeContractArgs {
73
- SettlementContract: TypedClass<BridgingSettlementContractType> &
65
+ SettlementContract: TypedClass<
66
+ Pick<BridgingSettlementContractType, "assertStateRoot">
67
+ > &
74
68
  typeof SmartContract;
75
69
  messageProcessors: OutgoingMessageProcessor<unknown>[];
76
70
  batchSize?: number;
@@ -171,40 +165,44 @@ export abstract class BridgeContractBase
171
165
  );
172
166
  }
173
167
 
174
- private executeProcessors(batchIndex: number, args: OutgoingMessageArgument) {
168
+ private executeProcessors(args: OutgoingMessageArgument) {
175
169
  const { messageProcessors } = this.getInitializationArgs();
176
170
  return messageProcessors.map((processor, j) => {
177
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
178
- const value = Experimental.memoizeWitness(processor.type, () => {
179
- return container.resolve(BridgeContractContext).data.messageInputs[
180
- batchIndex
181
- ][j];
171
+ const messageType = processor.getMessageType();
172
+
173
+ // Create the message struct from unconstrained message argument Field[]
174
+ const value = Provable.witness(processor.type, () => {
175
+ if (args.messageType.toString() === messageType.toString()) {
176
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
177
+ const fieldData = (args.data as Unconstrained<Field[]>).get();
178
+ return processor.type.fromFields(fieldData);
179
+ } else {
180
+ return processor.dummy();
181
+ }
182
182
  });
183
183
 
184
184
  const MessageType = createMessageStruct(processor.type);
185
185
  const message = new MessageType({
186
- messageType: args.messageType,
186
+ messageType,
187
187
  value,
188
188
  });
189
+ const result = processor.processMessage(value, {
190
+ bridgeContract: {
191
+ publicKey: this.address,
192
+ tokenId: this.tokenId,
193
+ },
194
+ });
189
195
  return {
190
- messageType: args.messageType,
191
- result: processor.processMessage(value, {
192
- bridgeContract: {
193
- publicKey: this.address,
194
- tokenId: this.tokenId,
195
- },
196
- }),
196
+ // messageType is authenticated via the hash, which is checked again
197
+ messageType,
198
+ result,
197
199
  hash: Poseidon.hash(MessageType.toFields(message)),
198
200
  };
199
201
  });
200
202
  }
201
203
 
202
- public processMessage(
203
- batchIndex: number,
204
- args: OutgoingMessageArgument,
205
- isDummy: Bool
206
- ) {
207
- const results = this.executeProcessors(batchIndex, args);
204
+ public processMessage(args: OutgoingMessageArgument, isDummy: Bool) {
205
+ const results = this.executeProcessors(args);
208
206
 
209
207
  const maxAccountUpdates = Math.max(
210
208
  0,
@@ -290,7 +288,7 @@ export abstract class BridgeContractBase
290
288
 
291
289
  const isDummy = batch.isDummys[i];
292
290
 
293
- const message = this.processMessage(i, args, isDummy);
291
+ const message = this.processMessage(args, isDummy);
294
292
 
295
293
  // Check witness
296
294
  const path = Path.fromKey(
@@ -321,7 +319,7 @@ export abstract class BridgeContractBase
321
319
  const isNew = accountUpdate.account.isNew.getAndRequireEquals();
322
320
  return Provable.if(isNew, Field(1), Field(0));
323
321
  })
324
- .reduce((a, b) => a.add(b));
322
+ .reduce((a, b) => a.add(b), Field(0));
325
323
  accountCreationFeePaid = accountCreationFeePaid.add(newAccounts);
326
324
  }
327
325
 
@@ -3,7 +3,14 @@ import {
3
3
  InMemoryMerkleTreeStorage,
4
4
  log,
5
5
  } from "@proto-kit/common";
6
- import { Field, Poseidon, PublicKey, SmartContract, Struct } from "o1js";
6
+ import {
7
+ Field,
8
+ Poseidon,
9
+ PublicKey,
10
+ SmartContract,
11
+ Struct,
12
+ UInt32,
13
+ } from "o1js";
7
14
 
8
15
  /**
9
16
  * Merkle tree that contains all the deployed token bridges as a mapping of
@@ -22,11 +29,17 @@ export class TokenBridgeTree extends createMerkleTree(256) {
22
29
  public static async buildTreeFromEvents(
23
30
  contract: SmartContract & {
24
31
  events: { "token-bridge-added": typeof TokenBridgeTreeAddition };
25
- }
32
+ },
33
+ endHeight?: UInt32
26
34
  ) {
27
- const events = await contract.fetchEvents();
35
+ const events = await contract.fetchEvents(
36
+ UInt32.from(0),
37
+ endHeight?.add(1)
38
+ );
28
39
 
29
- log.debug(`Found ${events.length} token bridge add events`);
40
+ log.debug(
41
+ `Found ${events.length} token bridge add events (height: ${endHeight?.toString() ?? "open end"})`
42
+ );
30
43
 
31
44
  const tree = new TokenBridgeTree(new InMemoryMerkleTreeStorage());
32
45
  const indizes: Record<string, bigint> = {};
@@ -1,4 +1,11 @@
1
- import { Bool, Field, FlexibleProvablePure, Provable, Struct } from "o1js";
1
+ import {
2
+ Bool,
3
+ Field,
4
+ FlexibleProvablePure,
5
+ Provable,
6
+ Struct,
7
+ Unconstrained,
8
+ } from "o1js";
2
9
  import {
3
10
  LinkedMerkleTree,
4
11
  LinkedMerkleTreeReadWitness,
@@ -19,11 +26,13 @@ export function createMessageStruct<T>(type: FlexibleProvablePure<T>) {
19
26
  export class OutgoingMessageArgument extends Struct({
20
27
  witness: LinkedMerkleTreeReadWitness,
21
28
  messageType: Field,
29
+ data: Unconstrained<Field[]>,
22
30
  }) {
23
31
  public static dummy(): OutgoingMessageArgument {
24
32
  return new OutgoingMessageArgument({
25
33
  witness: LinkedMerkleTree.dummyReadWitness(),
26
34
  messageType: Field(0),
35
+ data: Unconstrained.from([]),
27
36
  });
28
37
  }
29
38
  }
@@ -3,9 +3,10 @@ import {
3
3
  Bool,
4
4
  Field,
5
5
  FlexibleProvablePure,
6
+ Poseidon,
6
7
  PublicKey,
7
8
  } from "o1js";
8
- import { implement, NoConfig } from "@proto-kit/common";
9
+ import { implement, NoConfig, prefixToField } from "@proto-kit/common";
9
10
 
10
11
  import { ProtocolModule } from "../../protocol/ProtocolModule";
11
12
 
@@ -55,7 +56,19 @@ export abstract class OutgoingMessageProcessor<
55
56
  };
56
57
  }
57
58
 
58
- abstract type: FlexibleProvablePure<T>;
59
+ public getMessageType(): Field {
60
+ // TODO static salt/prefix
61
+ // This executes the bigint poseidon behind the scenes, therefore creates a constant
62
+ const messageType = Poseidon.hash([prefixToField(this.messageType)]);
63
+ if (!messageType.isConstant()) {
64
+ throw new Error(
65
+ "Underlying poseidon implementation has changed and doesn't create a constant anymore"
66
+ );
67
+ }
68
+ return messageType;
69
+ }
70
+
71
+ abstract type: FlexibleProvablePure<T> & { name: string };
59
72
 
60
73
  abstract messageType: string;
61
74
 
@@ -19,9 +19,11 @@ const asyncProxyWitnessFunction = <
19
19
  return async (...args: Parameters<F>) => {
20
20
  const context = container.resolve(WitnessBlockContext);
21
21
  context.witnessBlockDepth += 1;
22
- const ret = await originalFuncDef(...args);
23
- context.witnessBlockDepth -= 1;
24
- return ret;
22
+ try {
23
+ return await originalFuncDef(...args);
24
+ } finally {
25
+ context.witnessBlockDepth -= 1;
26
+ }
25
27
  };
26
28
  };
27
29
 
@@ -35,9 +37,11 @@ const proxySyncWitnessFunction = <
35
37
  return (...args: Params): Ret => {
36
38
  const context = container.resolve(WitnessBlockContext);
37
39
  context.witnessBlockDepth += 1;
38
- const ret = originalFuncDef(...args);
39
- context.witnessBlockDepth -= 1;
40
- return ret;
40
+ try {
41
+ return originalFuncDef(...args);
42
+ } finally {
43
+ context.witnessBlockDepth -= 1;
44
+ }
41
45
  };
42
46
  };
43
47