@aztec/accounts 0.23.0 → 0.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/dest/artifacts/EcdsaAccount.json +502 -447
  2. package/dest/artifacts/SchnorrAccount.json +492 -437
  3. package/dest/artifacts/SchnorrSingleKeyAccount.json +412 -355
  4. package/dest/defaults/account_entrypoint.d.ts +3 -3
  5. package/dest/defaults/account_entrypoint.d.ts.map +1 -1
  6. package/dest/defaults/account_entrypoint.js +59 -47
  7. package/dest/defaults/account_interface.d.ts +3 -3
  8. package/dest/defaults/account_interface.d.ts.map +1 -1
  9. package/dest/defaults/account_interface.js +4 -4
  10. package/dest/defaults/entrypoint_payload.d.ts +13 -8
  11. package/dest/defaults/entrypoint_payload.d.ts.map +1 -1
  12. package/dest/defaults/entrypoint_payload.js +27 -10
  13. package/package.json +7 -7
  14. package/src/artifacts/EcdsaAccount.json +3273 -0
  15. package/src/artifacts/SchnorrAccount.json +3265 -0
  16. package/src/artifacts/SchnorrSingleKeyAccount.json +3180 -0
  17. package/src/defaults/account_contract.ts +25 -0
  18. package/src/defaults/account_entrypoint.ts +141 -0
  19. package/src/defaults/account_interface.ts +39 -0
  20. package/src/defaults/constants.ts +4 -0
  21. package/src/defaults/entrypoint_payload.ts +112 -0
  22. package/src/defaults/index.ts +13 -0
  23. package/src/ecdsa/account_contract.ts +38 -0
  24. package/src/ecdsa/artifact.ts +5 -0
  25. package/src/ecdsa/index.ts +42 -0
  26. package/src/schnorr/account_contract.ts +38 -0
  27. package/src/schnorr/artifact.ts +5 -0
  28. package/src/schnorr/index.ts +47 -0
  29. package/src/single_key/account_contract.ts +45 -0
  30. package/src/single_key/artifact.ts +7 -0
  31. package/src/single_key/index.ts +52 -0
  32. package/src/testing/configuration.ts +81 -0
  33. package/src/testing/create_account.ts +39 -0
  34. package/src/testing/index.ts +11 -0
@@ -1,9 +1,9 @@
1
- import { AuthWitnessProvider, EntrypointInterface } from '@aztec/aztec.js/account';
1
+ import { AuthWitnessProvider, EntrypointInterface, FeeOptions } from '@aztec/aztec.js/account';
2
2
  import { FunctionCall, TxExecutionRequest } from '@aztec/circuit-types';
3
3
  import { AztecAddress } from '@aztec/circuits.js';
4
4
  /**
5
5
  * Implementation for an entrypoint interface that follows the default entrypoint signature
6
- * for an account, which accepts an EntrypointPayload as defined in noir-libs/aztec-noir/src/entrypoint.nr.
6
+ * for an account, which accepts an AppPayload and a FeePayload as defined in noir-libs/aztec-noir/src/entrypoint module
7
7
  */
8
8
  export declare class DefaultAccountEntrypoint implements EntrypointInterface {
9
9
  private address;
@@ -11,7 +11,7 @@ export declare class DefaultAccountEntrypoint implements EntrypointInterface {
11
11
  private chainId;
12
12
  private version;
13
13
  constructor(address: AztecAddress, auth: AuthWitnessProvider, chainId?: number, version?: number);
14
- createTxExecutionRequest(executions: FunctionCall[]): Promise<TxExecutionRequest>;
14
+ createTxExecutionRequest(executions: FunctionCall[], feeOpts?: FeeOptions): Promise<TxExecutionRequest>;
15
15
  private getEntrypointAbi;
16
16
  }
17
17
  //# sourceMappingURL=account_entrypoint.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"account_entrypoint.d.ts","sourceRoot":"","sources":["../../src/defaults/account_entrypoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnF,OAAO,EAAE,YAAY,EAAmB,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,YAAY,EAA+B,MAAM,oBAAoB,CAAC;AAM/E;;;GAGG;AACH,qBAAa,wBAAyB,YAAW,mBAAmB;IAEhE,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,OAAO;gBAHP,OAAO,EAAE,YAAY,EACrB,IAAI,EAAE,mBAAmB,EACzB,OAAO,GAAE,MAAyB,EAClC,OAAO,GAAE,MAAwB;IAGrC,wBAAwB,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAkBvF,OAAO,CAAC,gBAAgB;CAmFzB"}
1
+ {"version":3,"file":"account_entrypoint.d.ts","sourceRoot":"","sources":["../../src/defaults/account_entrypoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC/F,OAAO,EAAE,YAAY,EAAmB,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,YAAY,EAA+C,MAAM,oBAAoB,CAAC;AAM/F;;;GAGG;AACH,qBAAa,wBAAyB,YAAW,mBAAmB;IAEhE,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,OAAO;gBAHP,OAAO,EAAE,YAAY,EACrB,IAAI,EAAE,mBAAmB,EACzB,OAAO,GAAE,MAAyB,EAClC,OAAO,GAAE,MAAwB;IAGrC,wBAAwB,CAAC,UAAU,EAAE,YAAY,EAAE,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA0B7G,OAAO,CAAC,gBAAgB;CA8FzB"}
@@ -1,11 +1,11 @@
1
1
  import { PackedArguments, TxExecutionRequest } from '@aztec/circuit-types';
2
- import { Fr, FunctionData, TxContext } from '@aztec/circuits.js';
2
+ import { Fr, FunctionData, GeneratorIndex, TxContext } from '@aztec/circuits.js';
3
3
  import { encodeArguments } from '@aztec/foundation/abi';
4
4
  import { DEFAULT_CHAIN_ID, DEFAULT_VERSION } from './constants.js';
5
- import { buildPayload, hashPayload } from './entrypoint_payload.js';
5
+ import { buildAppPayload, buildFeePayload, hashPayload } from './entrypoint_payload.js';
6
6
  /**
7
7
  * Implementation for an entrypoint interface that follows the default entrypoint signature
8
- * for an account, which accepts an EntrypointPayload as defined in noir-libs/aztec-noir/src/entrypoint.nr.
8
+ * for an account, which accepts an AppPayload and a FeePayload as defined in noir-libs/aztec-noir/src/entrypoint module
9
9
  */
10
10
  export class DefaultAccountEntrypoint {
11
11
  constructor(address, auth, chainId = DEFAULT_CHAIN_ID, version = DEFAULT_VERSION) {
@@ -14,19 +14,20 @@ export class DefaultAccountEntrypoint {
14
14
  this.chainId = chainId;
15
15
  this.version = version;
16
16
  }
17
- async createTxExecutionRequest(executions) {
18
- const { payload, packedArguments: callsPackedArguments } = buildPayload(executions);
17
+ async createTxExecutionRequest(executions, feeOpts) {
18
+ const { payload: appPayload, packedArguments: appPackedArguments } = buildAppPayload(executions);
19
+ const { payload: feePayload, packedArguments: feePackedArguments } = buildFeePayload(feeOpts);
19
20
  const abi = this.getEntrypointAbi();
20
- const packedArgs = PackedArguments.fromArgs(encodeArguments(abi, [payload]));
21
- const message = Fr.fromBuffer(hashPayload(payload));
22
- const authWitness = await this.auth.createAuthWitness(message);
21
+ const entrypointPackedArgs = PackedArguments.fromArgs(encodeArguments(abi, [appPayload, feePayload]));
22
+ const appAuthWitness = await this.auth.createAuthWitness(Fr.fromBuffer(hashPayload(appPayload, GeneratorIndex.SIGNATURE_PAYLOAD)));
23
+ const feeAuthWitness = await this.auth.createAuthWitness(Fr.fromBuffer(hashPayload(feePayload, GeneratorIndex.FEE_PAYLOAD)));
23
24
  const txRequest = TxExecutionRequest.from({
24
- argsHash: packedArgs.hash,
25
+ argsHash: entrypointPackedArgs.hash,
25
26
  origin: this.address,
26
27
  functionData: FunctionData.fromAbi(abi),
27
28
  txContext: TxContext.empty(this.chainId, this.version),
28
- packedArguments: [...callsPackedArguments, packedArgs],
29
- authWitnesses: [authWitness],
29
+ packedArguments: [...appPackedArguments, ...feePackedArguments, entrypointPackedArgs],
30
+ authWitnesses: [appAuthWitness, feeAuthWitness],
30
31
  });
31
32
  return txRequest;
32
33
  }
@@ -37,10 +38,10 @@ export class DefaultAccountEntrypoint {
37
38
  isInternal: false,
38
39
  parameters: [
39
40
  {
40
- name: 'payload',
41
+ name: 'app_payload',
41
42
  type: {
42
43
  kind: 'struct',
43
- path: 'authwit::entrypoint::EntrypointPayload',
44
+ path: 'authwit::entrypoint::app::AppPayload',
44
45
  fields: [
45
46
  {
46
47
  name: 'function_calls',
@@ -49,62 +50,73 @@ export class DefaultAccountEntrypoint {
49
50
  length: 4,
50
51
  type: {
51
52
  kind: 'struct',
52
- path: 'authwit::entrypoint::FunctionCall',
53
+ path: 'authwit::entrypoint::function_call::FunctionCall',
53
54
  fields: [
55
+ { name: 'args_hash', type: { kind: 'field' } },
54
56
  {
55
- name: 'args_hash',
57
+ name: 'function_selector',
56
58
  type: {
57
- kind: 'field',
59
+ kind: 'struct',
60
+ path: 'authwit::aztec::protocol_types::abis::function_selector::FunctionSelector',
61
+ fields: [{ name: 'inner', type: { kind: 'integer', sign: 'unsigned', width: 32 } }],
58
62
  },
59
63
  },
60
64
  {
61
- name: 'function_selector',
65
+ name: 'target_address',
62
66
  type: {
63
67
  kind: 'struct',
64
- path: 'aztec::protocol_types::abis::function_selector::FunctionSelector',
65
- fields: [
66
- {
67
- name: 'inner',
68
- type: {
69
- kind: 'integer',
70
- sign: 'unsigned',
71
- width: 32,
72
- },
73
- },
74
- ],
68
+ path: 'authwit::aztec::protocol_types::address::AztecAddress',
69
+ fields: [{ name: 'inner', type: { kind: 'field' } }],
75
70
  },
76
71
  },
72
+ { name: 'is_public', type: { kind: 'boolean' } },
73
+ ],
74
+ },
75
+ },
76
+ },
77
+ { name: 'nonce', type: { kind: 'field' } },
78
+ ],
79
+ },
80
+ visibility: 'public',
81
+ },
82
+ {
83
+ name: 'fee_payload',
84
+ type: {
85
+ kind: 'struct',
86
+ path: 'authwit::entrypoint::fee::FeePayload',
87
+ fields: [
88
+ {
89
+ name: 'function_calls',
90
+ type: {
91
+ kind: 'array',
92
+ length: 2,
93
+ type: {
94
+ kind: 'struct',
95
+ path: 'authwit::entrypoint::function_call::FunctionCall',
96
+ fields: [
97
+ { name: 'args_hash', type: { kind: 'field' } },
77
98
  {
78
- name: 'target_address',
99
+ name: 'function_selector',
79
100
  type: {
80
101
  kind: 'struct',
81
- path: 'aztec::protocol_types::address::AztecAddress',
82
- fields: [
83
- {
84
- name: 'inner',
85
- type: {
86
- kind: 'field',
87
- },
88
- },
89
- ],
102
+ path: 'authwit::aztec::protocol_types::abis::function_selector::FunctionSelector',
103
+ fields: [{ name: 'inner', type: { kind: 'integer', sign: 'unsigned', width: 32 } }],
90
104
  },
91
105
  },
92
106
  {
93
- name: 'is_public',
107
+ name: 'target_address',
94
108
  type: {
95
- kind: 'boolean',
109
+ kind: 'struct',
110
+ path: 'authwit::aztec::protocol_types::address::AztecAddress',
111
+ fields: [{ name: 'inner', type: { kind: 'field' } }],
96
112
  },
97
113
  },
114
+ { name: 'is_public', type: { kind: 'boolean' } },
98
115
  ],
99
116
  },
100
117
  },
101
118
  },
102
- {
103
- name: 'nonce',
104
- type: {
105
- kind: 'field',
106
- },
107
- },
119
+ { name: 'nonce', type: { kind: 'field' } },
108
120
  ],
109
121
  },
110
122
  visibility: 'public',
@@ -114,4 +126,4 @@ export class DefaultAccountEntrypoint {
114
126
  };
115
127
  }
116
128
  }
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudF9lbnRyeXBvaW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RlZmF1bHRzL2FjY291bnRfZW50cnlwb2ludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQWdCLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pGLE9BQU8sRUFBZ0IsRUFBRSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvRSxPQUFPLEVBQWUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFckUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFcEU7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLHdCQUF3QjtJQUNuQyxZQUNVLE9BQXFCLEVBQ3JCLElBQXlCLEVBQ3pCLFVBQWtCLGdCQUFnQixFQUNsQyxVQUFrQixlQUFlO1FBSGpDLFlBQU8sR0FBUCxPQUFPLENBQWM7UUFDckIsU0FBSSxHQUFKLElBQUksQ0FBcUI7UUFDekIsWUFBTyxHQUFQLE9BQU8sQ0FBMkI7UUFDbEMsWUFBTyxHQUFQLE9BQU8sQ0FBMEI7SUFDeEMsQ0FBQztJQUVKLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxVQUEwQjtRQUN2RCxNQUFNLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxHQUFHLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNwRixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUNwQyxNQUFNLFVBQVUsR0FBRyxlQUFlLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0UsTUFBTSxPQUFPLEdBQUcsRUFB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
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudF9lbnRyeXBvaW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RlZmF1bHRzL2FjY291bnRfZW50cnlwb2ludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQWdCLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pGLE9BQU8sRUFBZ0IsRUFBRSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDL0YsT0FBTyxFQUFlLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXJFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV4Rjs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sd0JBQXdCO0lBQ25DLFlBQ1UsT0FBcUIsRUFDckIsSUFBeUIsRUFDekIsVUFBa0IsZ0JBQWdCLEVBQ2xDLFVBQWtCLGVBQWU7UUFIakMsWUFBTyxHQUFQLE9BQU8sQ0FBYztRQUNyQixTQUFJLEdBQUosSUFBSSxDQUFxQjtRQUN6QixZQUFPLEdBQVAsT0FBTyxDQUEyQjtRQUNsQyxZQUFPLEdBQVAsT0FBTyxDQUEwQjtJQUN4QyxDQUFDO0lBRUosS0FBSyxDQUFDLHdCQUF3QixDQUFDLFVBQTBCLEVBQUUsT0FBb0I7UUFDN0UsTUFBTSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLGtCQUFrQixFQUFFLEdBQUcsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pHLE1BQU0sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUU5RixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUNwQyxNQUFNLG9CQUFvQixHQUFHLGVBQWUsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFdEcsTUFBTSxjQUFjLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUN0RCxFQUFFLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsY0FBYyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FDekUsQ0FBQztRQUNGLE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FDdEQsRUFBRSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUNuRSxDQUFDO1FBRUYsTUFBTSxTQUFTLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDO1lBQ3hDLFFBQVEsRUFBRSxvQkFBb0IsQ0FBQyxJQUFJO1lBQ25DLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNwQixZQUFZLEVBQUUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFDdkMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQ3RELGVBQWUsRUFBRSxDQUFDLEdBQUcsa0JBQWtCLEVBQUUsR0FBRyxrQkFBa0IsRUFBRSxvQkFBb0IsQ0FBQztZQUNyRixhQUFhLEVBQUUsQ0FBQyxjQUFjLEVBQUUsY0FBYyxDQUFDO1NBQ2hELENBQUMsQ0FBQztRQUVILE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsT0FBTztZQUNMLElBQUksRUFBRSxZQUFZO1lBQ2xCLFlBQVksRUFBRSxRQUFRO1lBQ3RCLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLFVBQVUsRUFBRTtnQkFDVjtvQkFDRSxJQUFJLEVBQUUsYUFBYTtvQkFDbkIsSUFBSSxFQUFFO3dCQUNKLElBQUksRUFBRSxRQUFRO3dCQUNkLElBQUksRUFBRSxzQ0FBc0M7d0JBQzVDLE1BQU0sRUFBRTs0QkFDTjtnQ0FDRSxJQUFJLEVBQUUsZ0JBQWdCO2dDQUN0QixJQUFJLEVBQUU7b0NBQ0osSUFBSSxFQUFFLE9BQU87b0NBQ2IsTUFBTSxFQUFFLENBQUM7b0NBQ1QsSUFBSSxFQUFFO3dDQUNKLElBQUksRUFBRSxRQUFRO3dDQUNkLElBQUksRUFBRSxrREFBa0Q7d0NBQ3hELE1BQU0sRUFBRTs0Q0FDTixFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFOzRDQUM5QztnREFDRSxJQUFJLEVBQUUsbUJBQW1CO2dEQUN6QixJQUFJLEVBQUU7b0RBQ0osSUFBSSxFQUFFLFFBQVE7b0RBQ2QsSUFBSSxFQUFFLDJFQUEyRTtvREFDakYsTUFBTSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztpREFDcEY7NkNBQ0Y7NENBQ0Q7Z0RBQ0UsSUFBSSxFQUFFLGdCQUFnQjtnREFDdEIsSUFBSSxFQUFFO29EQUNKLElBQUksRUFBRSxRQUFRO29EQUNkLElBQUksRUFBRSx1REFBdUQ7b0RBQzdELE1BQU0sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQztpREFDckQ7NkNBQ0Y7NENBQ0QsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsRUFBRTt5Q0FDakQ7cUNBQ0Y7aUNBQ0Y7NkJBQ0Y7NEJBQ0QsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRTt5QkFDM0M7cUJBQ0Y7b0JBQ0QsVUFBVSxFQUFFLFFBQVE7aUJBQ3JCO2dCQUNEO29CQUNFLElBQUksRUFBRSxhQUFhO29CQUNuQixJQUFJLEVBQUU7d0JBQ0osSUFBSSxFQUFFLFFBQVE7d0JBQ2QsSUFBSSxFQUFFLHNDQUFzQzt3QkFDNUMsTUFBTSxFQUFFOzRCQUNOO2dDQUNFLElBQUksRUFBRSxnQkFBZ0I7Z0NBQ3RCLElBQUksRUFBRTtvQ0FDSixJQUFJLEVBQUUsT0FBTztvQ0FDYixNQUFNLEVBQUUsQ0FBQztvQ0FDVCxJQUFJLEVBQUU7d0NBQ0osSUFBSSxFQUFFLFFBQVE7d0NBQ2QsSUFBSSxFQUFFLGtEQUFrRDt3Q0FDeEQsTUFBTSxFQUFFOzRDQUNOLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUU7NENBQzlDO2dEQUNFLElBQUksRUFBRSxtQkFBbUI7Z0RBQ3pCLElBQUksRUFBRTtvREFDSixJQUFJLEVBQUUsUUFBUTtvREFDZCxJQUFJLEVBQUUsMkVBQTJFO29EQUNqRixNQUFNLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO2lEQUNwRjs2Q0FDRjs0Q0FDRDtnREFDRSxJQUFJLEVBQUUsZ0JBQWdCO2dEQUN0QixJQUFJLEVBQUU7b0RBQ0osSUFBSSxFQUFFLFFBQVE7b0RBQ2QsSUFBSSxFQUFFLHVEQUF1RDtvREFDN0QsTUFBTSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDO2lEQUNyRDs2Q0FDRjs0Q0FDRCxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxFQUFFO3lDQUNqRDtxQ0FDRjtpQ0FDRjs2QkFDRjs0QkFDRCxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFO3lCQUMzQztxQkFDRjtvQkFDRCxVQUFVLEVBQUUsUUFBUTtpQkFDckI7YUFDRjtZQUNELFdBQVcsRUFBRSxFQUFFO1NBQ0QsQ0FBQztJQUNuQixDQUFDO0NBQ0YifQ==
@@ -1,17 +1,17 @@
1
- import { AccountInterface, AuthWitnessProvider } from '@aztec/aztec.js/account';
1
+ import { AccountInterface, AuthWitnessProvider, FeeOptions } from '@aztec/aztec.js/account';
2
2
  import { AuthWitness, FunctionCall, TxExecutionRequest } from '@aztec/circuit-types';
3
3
  import { CompleteAddress, Fr } from '@aztec/circuits.js';
4
4
  import { NodeInfo } from '@aztec/types/interfaces';
5
5
  /**
6
6
  * Default implementation for an account interface. Requires that the account uses the default
7
- * entrypoint signature, which accepts an EntrypointPayload as defined in noir-libs/aztec-noir/src/entrypoint.nr.
7
+ * entrypoint signature, which accept an AppPayload and a FeePayload as defined in noir-libs/aztec-noir/src/entrypoint module
8
8
  */
9
9
  export declare class DefaultAccountInterface implements AccountInterface {
10
10
  private authWitnessProvider;
11
11
  private address;
12
12
  private entrypoint;
13
13
  constructor(authWitnessProvider: AuthWitnessProvider, address: CompleteAddress, nodeInfo: Pick<NodeInfo, 'chainId' | 'protocolVersion'>);
14
- createTxExecutionRequest(executions: FunctionCall[]): Promise<TxExecutionRequest>;
14
+ createTxExecutionRequest(executions: FunctionCall[], fee?: FeeOptions): Promise<TxExecutionRequest>;
15
15
  createAuthWitness(message: Fr): Promise<AuthWitness>;
16
16
  getCompleteAddress(): CompleteAddress;
17
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"account_interface.d.ts","sourceRoot":"","sources":["../../src/defaults/account_interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAuB,MAAM,yBAAyB,CAAC;AACrG,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAInD;;;GAGG;AACH,qBAAa,uBAAwB,YAAW,gBAAgB;IAI5D,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,OAAO;IAJjB,OAAO,CAAC,UAAU,CAAsB;gBAG9B,mBAAmB,EAAE,mBAAmB,EACxC,OAAO,EAAE,eAAe,EAChC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,GAAG,iBAAiB,CAAC;IAUzD,wBAAwB,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAIjF,iBAAiB,CAAC,OAAO,EAAE,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;IAIpD,kBAAkB,IAAI,eAAe;CAGtC"}
1
+ {"version":3,"file":"account_interface.d.ts","sourceRoot":"","sources":["../../src/defaults/account_interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAuB,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACjH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAInD;;;GAGG;AACH,qBAAa,uBAAwB,YAAW,gBAAgB;IAI5D,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,OAAO;IAJjB,OAAO,CAAC,UAAU,CAAsB;gBAG9B,mBAAmB,EAAE,mBAAmB,EACxC,OAAO,EAAE,eAAe,EAChC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,GAAG,iBAAiB,CAAC;IAUzD,wBAAwB,CAAC,UAAU,EAAE,YAAY,EAAE,EAAE,GAAG,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAInG,iBAAiB,CAAC,OAAO,EAAE,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;IAIpD,kBAAkB,IAAI,eAAe;CAGtC"}
@@ -1,7 +1,7 @@
1
1
  import { DefaultAccountEntrypoint } from './account_entrypoint.js';
2
2
  /**
3
3
  * Default implementation for an account interface. Requires that the account uses the default
4
- * entrypoint signature, which accepts an EntrypointPayload as defined in noir-libs/aztec-noir/src/entrypoint.nr.
4
+ * entrypoint signature, which accept an AppPayload and a FeePayload as defined in noir-libs/aztec-noir/src/entrypoint module
5
5
  */
6
6
  export class DefaultAccountInterface {
7
7
  constructor(authWitnessProvider, address, nodeInfo) {
@@ -9,8 +9,8 @@ export class DefaultAccountInterface {
9
9
  this.address = address;
10
10
  this.entrypoint = new DefaultAccountEntrypoint(address.address, authWitnessProvider, nodeInfo.chainId, nodeInfo.protocolVersion);
11
11
  }
12
- createTxExecutionRequest(executions) {
13
- return this.entrypoint.createTxExecutionRequest(executions);
12
+ createTxExecutionRequest(executions, fee) {
13
+ return this.entrypoint.createTxExecutionRequest(executions, fee);
14
14
  }
15
15
  createAuthWitness(message) {
16
16
  return this.authWitnessProvider.createAuthWitness(message);
@@ -19,4 +19,4 @@ export class DefaultAccountInterface {
19
19
  return this.address;
20
20
  }
21
21
  }
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudF9pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVmYXVsdHMvYWNjb3VudF9pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFbkU7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLHVCQUF1QjtJQUdsQyxZQUNVLG1CQUF3QyxFQUN4QyxPQUF3QixFQUNoQyxRQUF1RDtRQUYvQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBR2hDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSx3QkFBd0IsQ0FDNUMsT0FBTyxDQUFDLE9BQU8sRUFDZixtQkFBbUIsRUFDbkIsUUFBUSxDQUFDLE9BQU8sRUFDaEIsUUFBUSxDQUFDLGVBQWUsQ0FDekIsQ0FBQztJQUNKLENBQUM7SUFFRCx3QkFBd0IsQ0FBQyxVQUEwQjtRQUNqRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsd0JBQXdCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELGlCQUFpQixDQUFDLE9BQVc7UUFDM0IsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztDQUNGIn0=
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudF9pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVmYXVsdHMvYWNjb3VudF9pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFbkU7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLHVCQUF1QjtJQUdsQyxZQUNVLG1CQUF3QyxFQUN4QyxPQUF3QixFQUNoQyxRQUF1RDtRQUYvQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBR2hDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSx3QkFBd0IsQ0FDNUMsT0FBTyxDQUFDLE9BQU8sRUFDZixtQkFBbUIsRUFDbkIsUUFBUSxDQUFDLE9BQU8sRUFDaEIsUUFBUSxDQUFDLGVBQWUsQ0FDekIsQ0FBQztJQUNKLENBQUM7SUFFRCx3QkFBd0IsQ0FBQyxVQUEwQixFQUFFLEdBQWdCO1FBQ25FLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyx3QkFBd0IsQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELGlCQUFpQixDQUFDLE9BQVc7UUFDM0IsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztDQUNGIn0=
@@ -1,6 +1,7 @@
1
1
  /// <reference types="node" resolution-mode="require"/>
2
+ import { FeeOptions } from '@aztec/aztec.js/account';
3
+ import { Fr } from '@aztec/aztec.js/fields';
2
4
  import { FunctionCall, PackedArguments } from '@aztec/circuit-types';
3
- import { Fr } from '@aztec/circuits.js';
4
5
  /** Encoded function call for account contract entrypoint */
5
6
  type EntrypointFunctionCall = {
6
7
  /** Arguments hash for the call */
@@ -13,20 +14,24 @@ type EntrypointFunctionCall = {
13
14
  is_public: boolean;
14
15
  };
15
16
  /** Encoded payload for the account contract entrypoint */
16
- export type EntrypointPayload = {
17
+ type EntrypointPayload = {
17
18
  /** Encoded function calls to execute */
18
19
  function_calls: EntrypointFunctionCall[];
19
20
  /** A nonce for replay protection */
20
21
  nonce: Fr;
21
22
  };
22
- /** Assembles an entrypoint payload from a set of private and public function calls */
23
- export declare function buildPayload(calls: FunctionCall[]): {
24
- /** The payload for the entrypoint function */
23
+ /** Represents a generic payload to be executed in the context of an account contract */
24
+ export type PayloadWithArguments = {
25
+ /** The payload to be run */
25
26
  payload: EntrypointPayload;
26
- /** The packed arguments of functions called */
27
+ /** The packed arguments for the function calls */
27
28
  packedArguments: PackedArguments[];
28
29
  };
29
- /** Hashes an entrypoint payload to a 32-byte buffer (useful for signing) */
30
- export declare function hashPayload(payload: EntrypointPayload): Buffer;
30
+ /** Assembles an entrypoint app payload from a set of private and public function calls */
31
+ export declare function buildAppPayload(calls: FunctionCall[]): PayloadWithArguments;
32
+ /** Creates the payload for paying the fee for a transaction */
33
+ export declare function buildFeePayload(feeOpts?: FeeOptions): PayloadWithArguments;
34
+ /** Hashes a payload to a 32-byte buffer */
35
+ export declare function hashPayload(payload: EntrypointPayload, generatorIndex: number): Buffer;
31
36
  export {};
32
37
  //# sourceMappingURL=entrypoint_payload.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"entrypoint_payload.d.ts","sourceRoot":"","sources":["../../src/defaults/entrypoint_payload.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,eAAe,EAAqB,MAAM,sBAAsB,CAAC;AACxF,OAAO,EAAE,EAAE,EAAkB,MAAM,oBAAoB,CAAC;AAOxD,4DAA4D;AAC5D,KAAK,sBAAsB,GAAG;IAE5B,kCAAkC;IAClC,SAAS,EAAE,EAAE,CAAC;IAEd,uCAAuC;IACvC,iBAAiB,EAAE,EAAE,CAAC;IAEtB,sCAAsC;IACtC,cAAc,EAAE,EAAE,CAAC;IAEnB,gDAAgD;IAChD,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,0DAA0D;AAC1D,MAAM,MAAM,iBAAiB,GAAG;IAE9B,wCAAwC;IACxC,cAAc,EAAE,sBAAsB,EAAE,CAAC;IACzC,oCAAoC;IACpC,KAAK,EAAE,EAAE,CAAC;CACX,CAAC;AAEF,sFAAsF;AACtF,wBAAgB,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG;IACnD,8CAA8C;IAC9C,OAAO,EAAE,iBAAiB,CAAC;IAC3B,+CAA+C;IAC/C,eAAe,EAAE,eAAe,EAAE,CAAC;CACpC,CA4BA;AAED,4EAA4E;AAC5E,wBAAgB,WAAW,CAAC,OAAO,EAAE,iBAAiB,UAKrD"}
1
+ {"version":3,"file":"entrypoint_payload.d.ts","sourceRoot":"","sources":["../../src/defaults/entrypoint_payload.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,eAAe,EAAqB,MAAM,sBAAsB,CAAC;AAUxF,4DAA4D;AAC5D,KAAK,sBAAsB,GAAG;IAE5B,kCAAkC;IAClC,SAAS,EAAE,EAAE,CAAC;IAEd,uCAAuC;IACvC,iBAAiB,EAAE,EAAE,CAAC;IAEtB,sCAAsC;IACtC,cAAc,EAAE,EAAE,CAAC;IAEnB,gDAAgD;IAChD,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,0DAA0D;AAC1D,KAAK,iBAAiB,GAAG;IAEvB,wCAAwC;IACxC,cAAc,EAAE,sBAAsB,EAAE,CAAC;IACzC,oCAAoC;IACpC,KAAK,EAAE,EAAE,CAAC;CACX,CAAC;AAEF,wFAAwF;AACxF,MAAM,MAAM,oBAAoB,GAAG;IACjC,4BAA4B;IAC5B,OAAO,EAAE,iBAAiB,CAAC;IAC3B,kDAAkD;IAClD,eAAe,EAAE,eAAe,EAAE,CAAC;CACpC,CAAC;AAsCF,0FAA0F;AAC1F,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,oBAAoB,CAE3E;AAED,+DAA+D;AAC/D,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,oBAAoB,CAG1E;AAED,2CAA2C;AAC3C,wBAAgB,WAAW,CAAC,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,UAK7E"}
@@ -1,13 +1,21 @@
1
+ import { Fr } from '@aztec/aztec.js/fields';
1
2
  import { PackedArguments, emptyFunctionCall } from '@aztec/circuit-types';
2
- import { Fr, GeneratorIndex } from '@aztec/circuits.js';
3
3
  import { padArrayEnd } from '@aztec/foundation/collection';
4
4
  import { pedersenHash } from '@aztec/foundation/crypto';
5
- // These must match the values defined in yarn-project/aztec-nr/aztec/src/entrypoint.nr
5
+ // These must match the values defined in:
6
+ // - noir-projects/aztec-nr/aztec/src/entrypoint/app.nr
6
7
  const ACCOUNT_MAX_CALLS = 4;
7
- /** Assembles an entrypoint payload from a set of private and public function calls */
8
- export function buildPayload(calls) {
8
+ // - and noir-projects/aztec-nr/aztec/src/entrypoint/fee.nr
9
+ const FEE_MAX_CALLS = 2;
10
+ /**
11
+ * Builds a payload to be sent to the account contract
12
+ * @param calls - The function calls to run
13
+ * @param maxCalls - The maximum number of call expected to be run. Used for padding
14
+ * @returns A payload object and packed arguments
15
+ */
16
+ function buildPayload(calls, maxCalls) {
9
17
  const nonce = Fr.random();
10
- const paddedCalls = padArrayEnd(calls, emptyFunctionCall(), ACCOUNT_MAX_CALLS);
18
+ const paddedCalls = padArrayEnd(calls, emptyFunctionCall(), maxCalls);
11
19
  const packedArguments = [];
12
20
  for (const call of paddedCalls) {
13
21
  packedArguments.push(PackedArguments.fromArgs(call.args));
@@ -31,11 +39,20 @@ export function buildPayload(calls) {
31
39
  packedArguments,
32
40
  };
33
41
  }
34
- /** Hashes an entrypoint payload to a 32-byte buffer (useful for signing) */
35
- export function hashPayload(payload) {
36
- return pedersenHash(flattenPayload(payload).map(fr => fr.toBuffer()), GeneratorIndex.SIGNATURE_PAYLOAD);
42
+ /** Assembles an entrypoint app payload from a set of private and public function calls */
43
+ export function buildAppPayload(calls) {
44
+ return buildPayload(calls, ACCOUNT_MAX_CALLS);
37
45
  }
38
- /** Flattens an entrypoint payload */
46
+ /** Creates the payload for paying the fee for a transaction */
47
+ export function buildFeePayload(feeOpts) {
48
+ const calls = feeOpts?.paymentMethod.getFunctionCalls(new Fr(feeOpts.maxFee)) ?? [];
49
+ return buildPayload(calls, FEE_MAX_CALLS);
50
+ }
51
+ /** Hashes a payload to a 32-byte buffer */
52
+ export function hashPayload(payload, generatorIndex) {
53
+ return pedersenHash(flattenPayload(payload).map(fr => fr.toBuffer()), generatorIndex);
54
+ }
55
+ /** Flattens an payload */
39
56
  function flattenPayload(payload) {
40
57
  return [
41
58
  ...payload.function_calls.flatMap(call => [
@@ -47,4 +64,4 @@ function flattenPayload(payload) {
47
64
  payload.nonce,
48
65
  ];
49
66
  }
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cnlwb2ludF9wYXlsb2FkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RlZmF1bHRzL2VudHJ5cG9pbnRfcGF5bG9hZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hGLE9BQU8sRUFBRSxFQUFFLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV4RCx1RkFBdUY7QUFDdkYsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLENBQUM7QUEyQjVCLHNGQUFzRjtBQUN0RixNQUFNLFVBQVUsWUFBWSxDQUFDLEtBQXFCO0lBTWhELE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUUxQixNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsS0FBSyxFQUFFLGlCQUFpQixFQUFFLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQUMvRSxNQUFNLGVBQWUsR0FBc0IsRUFBRSxDQUFDO0lBQzlDLEtBQUssTUFBTSxJQUFJLElBQUksV0FBVyxFQUFFLENBQUM7UUFDL0IsZUFBZSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxNQUFNLGNBQWMsR0FBNkIsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakYscUNBQXFDO1FBQ3JDLFNBQVMsRUFBRSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSTtRQUN0QyxxQ0FBcUM7UUFDckMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFO1FBQ3ZELHFDQUFxQztRQUNyQyxjQUFjLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUU7UUFDakMscUNBQXFDO1FBQ3JDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUztLQUN4QyxDQUFDLENBQUMsQ0FBQztJQUVKLE9BQU87UUFDTCxPQUFPLEVBQUU7WUFDUCxxQ0FBcUM7WUFDckMsY0FBYyxFQUFFLGNBQWM7WUFDOUIsS0FBSztTQUNOO1FBQ0QsZUFBZTtLQUNoQixDQUFDO0FBQ0osQ0FBQztBQUVELDRFQUE0RTtBQUM1RSxNQUFNLFVBQVUsV0FBVyxDQUFDLE9BQTBCO0lBQ3BELE9BQU8sWUFBWSxDQUNqQixjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQ2hELGNBQWMsQ0FBQyxpQkFBaUIsQ0FDakMsQ0FBQztBQUNKLENBQUM7QUFFRCxxQ0FBcUM7QUFDckMsU0FBUyxjQUFjLENBQUMsT0FBMEI7SUFDaEQsT0FBTztRQUNMLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMsU0FBUztZQUNkLElBQUksQ0FBQyxpQkFBaUI7WUFDdEIsSUFBSSxDQUFDLGNBQWM7WUFDbkIsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztTQUN2QixDQUFDO1FBQ0YsT0FBTyxDQUFDLEtBQUs7S0FDZCxDQUFDO0FBQ0osQ0FBQyJ9
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cnlwb2ludF9wYXlsb2FkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RlZmF1bHRzL2VudHJ5cG9pbnRfcGF5bG9hZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUMsT0FBTyxFQUFnQixlQUFlLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXhELDBDQUEwQztBQUMxQyx1REFBdUQ7QUFDdkQsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLENBQUM7QUFDNUIsMkRBQTJEO0FBQzNELE1BQU0sYUFBYSxHQUFHLENBQUMsQ0FBQztBQW1DeEI7Ozs7O0dBS0c7QUFDSCxTQUFTLFlBQVksQ0FBQyxLQUFxQixFQUFFLFFBQWdCO0lBQzNELE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUUxQixNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsS0FBSyxFQUFFLGlCQUFpQixFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDdEUsTUFBTSxlQUFlLEdBQXNCLEVBQUUsQ0FBQztJQUM5QyxLQUFLLE1BQU0sSUFBSSxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQy9CLGVBQWUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsTUFBTSxjQUFjLEdBQTZCLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pGLHFDQUFxQztRQUNyQyxTQUFTLEVBQUUsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUk7UUFDdEMscUNBQXFDO1FBQ3JDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRTtRQUN2RCxxQ0FBcUM7UUFDckMsY0FBYyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFO1FBQ2pDLHFDQUFxQztRQUNyQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVM7S0FDeEMsQ0FBQyxDQUFDLENBQUM7SUFFSixPQUFPO1FBQ0wsT0FBTyxFQUFFO1lBQ1AscUNBQXFDO1lBQ3JDLGNBQWMsRUFBRSxjQUFjO1lBQzlCLEtBQUs7U0FDTjtRQUNELGVBQWU7S0FDaEIsQ0FBQztBQUNKLENBQUM7QUFFRCwwRkFBMEY7QUFDMUYsTUFBTSxVQUFVLGVBQWUsQ0FBQyxLQUFxQjtJQUNuRCxPQUFPLFlBQVksQ0FBQyxLQUFLLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztBQUNoRCxDQUFDO0FBRUQsK0RBQStEO0FBQy9ELE1BQU0sVUFBVSxlQUFlLENBQUMsT0FBb0I7SUFDbEQsTUFBTSxLQUFLLEdBQUcsT0FBTyxFQUFFLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEYsT0FBTyxZQUFZLENBQUMsS0FBSyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0FBQzVDLENBQUM7QUFFRCwyQ0FBMkM7QUFDM0MsTUFBTSxVQUFVLFdBQVcsQ0FBQyxPQUEwQixFQUFFLGNBQXNCO0lBQzVFLE9BQU8sWUFBWSxDQUNqQixjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQ2hELGNBQWMsQ0FDZixDQUFDO0FBQ0osQ0FBQztBQUVELDBCQUEwQjtBQUMxQixTQUFTLGNBQWMsQ0FBQyxPQUEwQjtJQUNoRCxPQUFPO1FBQ0wsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxTQUFTO1lBQ2QsSUFBSSxDQUFDLGlCQUFpQjtZQUN0QixJQUFJLENBQUMsY0FBYztZQUNuQixJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1NBQ3ZCLENBQUM7UUFDRixPQUFPLENBQUMsS0FBSztLQUNkLENBQUM7QUFDSixDQUFDIn0=
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@aztec/accounts",
3
3
  "homepage": "https://github.com/AztecProtocol/aztec-packages/tree/master/yarn-project/accounts",
4
4
  "description": "Implementation of sample account contracts for Aztec Network",
5
- "version": "0.23.0",
5
+ "version": "0.24.0",
6
6
  "type": "module",
7
7
  "exports": {
8
8
  "./defaults": "./dest/defaults/index.js",
@@ -45,12 +45,12 @@
45
45
  "rootDir": "./src"
46
46
  },
47
47
  "dependencies": {
48
- "@aztec/aztec.js": "0.23.0",
49
- "@aztec/circuit-types": "0.23.0",
50
- "@aztec/circuits.js": "0.23.0",
51
- "@aztec/ethereum": "0.23.0",
52
- "@aztec/foundation": "0.23.0",
53
- "@aztec/types": "0.23.0",
48
+ "@aztec/aztec.js": "0.24.0",
49
+ "@aztec/circuit-types": "0.24.0",
50
+ "@aztec/circuits.js": "0.24.0",
51
+ "@aztec/ethereum": "0.24.0",
52
+ "@aztec/foundation": "0.24.0",
53
+ "@aztec/types": "0.24.0",
54
54
  "tslib": "^2.4.0"
55
55
  },
56
56
  "devDependencies": {