@aztec/aztec.js 0.1.0-alpha23 → 0.1.0-alpha25

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 (82) hide show
  1. package/.tsbuildinfo +1 -1
  2. package/dest/abis/ecdsa_account_contract.json +150 -0
  3. package/dest/abis/schnorr_account_contract.json +96 -0
  4. package/dest/abis/schnorr_single_key_account_contract.json +96 -0
  5. package/dest/account_impl/account_collection.d.ts.map +1 -1
  6. package/dest/account_impl/account_collection.js +1 -1
  7. package/dest/account_impl/entrypoint_payload.d.ts +26 -0
  8. package/dest/account_impl/entrypoint_payload.d.ts.map +1 -0
  9. package/dest/account_impl/entrypoint_payload.js +46 -0
  10. package/dest/account_impl/index.d.ts +2 -1
  11. package/dest/account_impl/index.d.ts.map +1 -1
  12. package/dest/account_impl/index.js +3 -2
  13. package/dest/account_impl/single_key_account_contract.d.ts +23 -0
  14. package/dest/account_impl/single_key_account_contract.d.ts.map +1 -0
  15. package/dest/account_impl/single_key_account_contract.js +66 -0
  16. package/dest/account_impl/stored_key_account_contract.d.ts +22 -0
  17. package/dest/account_impl/stored_key_account_contract.d.ts.map +1 -0
  18. package/dest/account_impl/stored_key_account_contract.js +65 -0
  19. package/dest/aztec_rpc_client/aztec_rpc_client.d.ts +2 -1
  20. package/dest/aztec_rpc_client/aztec_rpc_client.d.ts.map +1 -1
  21. package/dest/aztec_rpc_client/aztec_rpc_client.js +5 -5
  22. package/dest/aztec_rpc_client/wallet.d.ts +8 -6
  23. package/dest/aztec_rpc_client/wallet.d.ts.map +1 -1
  24. package/dest/aztec_rpc_client/wallet.js +19 -10
  25. package/dest/contract/contract.d.ts +3 -4
  26. package/dest/contract/contract.d.ts.map +1 -1
  27. package/dest/contract/contract.js +1 -1
  28. package/dest/contract/contract.test.js +3 -3
  29. package/dest/contract/contract_function_interaction.d.ts +1 -1
  30. package/dest/contract/contract_function_interaction.d.ts.map +1 -1
  31. package/dest/contract/contract_function_interaction.js +6 -6
  32. package/dest/contract_deployer/contract_deployer.d.ts.map +1 -1
  33. package/dest/contract_deployer/contract_deployer.js +2 -1
  34. package/dest/contract_deployer/contract_deployer.test.js +3 -3
  35. package/dest/contract_deployer/deploy_method.d.ts.map +1 -1
  36. package/dest/contract_deployer/deploy_method.js +5 -13
  37. package/dest/index.d.ts +1 -1
  38. package/dest/index.d.ts.map +1 -1
  39. package/dest/index.js +2 -2
  40. package/dest/utils/account.d.ts +3 -2
  41. package/dest/utils/account.d.ts.map +1 -1
  42. package/dest/utils/account.js +13 -17
  43. package/dest/utils/l1_contracts.d.ts +8 -0
  44. package/dest/utils/l1_contracts.d.ts.map +1 -1
  45. package/dest/utils/l1_contracts.js +10 -2
  46. package/package.json +4 -5
  47. package/src/abis/ecdsa_account_contract.json +150 -0
  48. package/src/abis/schnorr_account_contract.json +96 -0
  49. package/src/abis/schnorr_single_key_account_contract.json +96 -0
  50. package/src/account_impl/account_collection.ts +1 -0
  51. package/src/account_impl/entrypoint_payload.ts +76 -0
  52. package/src/account_impl/index.ts +2 -1
  53. package/src/account_impl/single_key_account_contract.ts +82 -0
  54. package/src/account_impl/stored_key_account_contract.ts +80 -0
  55. package/src/aztec_rpc_client/aztec_rpc_client.ts +6 -4
  56. package/src/aztec_rpc_client/wallet.ts +22 -15
  57. package/src/contract/contract.test.ts +5 -3
  58. package/src/contract/contract.ts +4 -3
  59. package/src/contract/contract_function_interaction.ts +4 -4
  60. package/src/contract_deployer/contract_deployer.test.ts +4 -3
  61. package/src/contract_deployer/contract_deployer.ts +1 -0
  62. package/src/contract_deployer/deploy_method.ts +5 -17
  63. package/src/index.ts +1 -1
  64. package/src/utils/account.ts +19 -35
  65. package/src/utils/l1_contracts.ts +21 -1
  66. package/tsconfig.json +1 -4
  67. package/dest/account_impl/account_contract.d.ts +0 -44
  68. package/dest/account_impl/account_contract.d.ts.map +0 -1
  69. package/dest/account_impl/account_contract.js +0 -107
  70. package/dest/auth/ecdsa.d.ts +0 -13
  71. package/dest/auth/ecdsa.d.ts.map +0 -1
  72. package/dest/auth/ecdsa.js +0 -17
  73. package/dest/auth/index.d.ts +0 -19
  74. package/dest/auth/index.d.ts.map +0 -1
  75. package/dest/auth/index.js +0 -14
  76. package/dest/auth/schnorr.d.ts +0 -13
  77. package/dest/auth/schnorr.d.ts.map +0 -1
  78. package/dest/auth/schnorr.js +0 -14
  79. package/src/account_impl/account_contract.ts +0 -171
  80. package/src/auth/ecdsa.ts +0 -18
  81. package/src/auth/index.ts +0 -25
  82. package/src/auth/schnorr.ts +0 -14
@@ -0,0 +1,150 @@
1
+ {
2
+ "name": "EcdsaAccount",
3
+ "functions": [
4
+ {
5
+ "name": "constructor",
6
+ "functionType": "secret",
7
+ "parameters": [
8
+ {
9
+ "name": "signing_pub_key_x",
10
+ "type": {
11
+ "kind": "array",
12
+ "length": 32,
13
+ "type": {
14
+ "kind": "integer",
15
+ "sign": "unsigned",
16
+ "width": 8
17
+ }
18
+ },
19
+ "visibility": "public"
20
+ },
21
+ {
22
+ "name": "signing_pub_key_y",
23
+ "type": {
24
+ "kind": "array",
25
+ "length": 32,
26
+ "type": {
27
+ "kind": "integer",
28
+ "sign": "unsigned",
29
+ "width": 8
30
+ }
31
+ },
32
+ "visibility": "public"
33
+ }
34
+ ],
35
+ "returnTypes": []
36
+ },
37
+ {
38
+ "name": "entrypoint",
39
+ "functionType": "secret",
40
+ "parameters": [
41
+ {
42
+ "name": "payload",
43
+ "type": {
44
+ "kind": "struct",
45
+ "fields": [
46
+ {
47
+ "name": "flattened_args_hashes",
48
+ "type": {
49
+ "kind": "array",
50
+ "length": 2,
51
+ "type": {
52
+ "kind": "field"
53
+ }
54
+ }
55
+ },
56
+ {
57
+ "name": "flattened_selectors",
58
+ "type": {
59
+ "kind": "array",
60
+ "length": 2,
61
+ "type": {
62
+ "kind": "field"
63
+ }
64
+ }
65
+ },
66
+ {
67
+ "name": "flattened_targets",
68
+ "type": {
69
+ "kind": "array",
70
+ "length": 2,
71
+ "type": {
72
+ "kind": "field"
73
+ }
74
+ }
75
+ },
76
+ {
77
+ "name": "nonce",
78
+ "type": {
79
+ "kind": "field"
80
+ }
81
+ }
82
+ ]
83
+ },
84
+ "visibility": "public"
85
+ },
86
+ {
87
+ "name": "signature",
88
+ "type": {
89
+ "kind": "array",
90
+ "length": 64,
91
+ "type": {
92
+ "kind": "integer",
93
+ "sign": "unsigned",
94
+ "width": 8
95
+ }
96
+ },
97
+ "visibility": "public"
98
+ }
99
+ ],
100
+ "returnTypes": []
101
+ },
102
+ {
103
+ "name": "stev",
104
+ "functionType": "unconstrained",
105
+ "parameters": [
106
+ {
107
+ "name": "contract_address",
108
+ "type": {
109
+ "kind": "field"
110
+ },
111
+ "visibility": "private"
112
+ },
113
+ {
114
+ "name": "nonce",
115
+ "type": {
116
+ "kind": "field"
117
+ },
118
+ "visibility": "private"
119
+ },
120
+ {
121
+ "name": "storage_slot",
122
+ "type": {
123
+ "kind": "field"
124
+ },
125
+ "visibility": "private"
126
+ },
127
+ {
128
+ "name": "preimage",
129
+ "type": {
130
+ "kind": "array",
131
+ "length": 5,
132
+ "type": {
133
+ "kind": "field"
134
+ }
135
+ },
136
+ "visibility": "private"
137
+ }
138
+ ],
139
+ "returnTypes": [
140
+ {
141
+ "kind": "array",
142
+ "length": 4,
143
+ "type": {
144
+ "kind": "field"
145
+ }
146
+ }
147
+ ]
148
+ }
149
+ ]
150
+ }
@@ -0,0 +1,96 @@
1
+ {
2
+ "name": "SchnorrAccount",
3
+ "functions": [
4
+ {
5
+ "name": "constructor",
6
+ "functionType": "secret",
7
+ "parameters": [],
8
+ "returnTypes": []
9
+ },
10
+ {
11
+ "name": "entrypoint",
12
+ "functionType": "secret",
13
+ "parameters": [
14
+ {
15
+ "name": "payload",
16
+ "type": {
17
+ "kind": "struct",
18
+ "fields": [
19
+ {
20
+ "name": "flattened_args_hashes",
21
+ "type": {
22
+ "kind": "array",
23
+ "length": 2,
24
+ "type": {
25
+ "kind": "field"
26
+ }
27
+ }
28
+ },
29
+ {
30
+ "name": "flattened_selectors",
31
+ "type": {
32
+ "kind": "array",
33
+ "length": 2,
34
+ "type": {
35
+ "kind": "field"
36
+ }
37
+ }
38
+ },
39
+ {
40
+ "name": "flattened_targets",
41
+ "type": {
42
+ "kind": "array",
43
+ "length": 2,
44
+ "type": {
45
+ "kind": "field"
46
+ }
47
+ }
48
+ },
49
+ {
50
+ "name": "nonce",
51
+ "type": {
52
+ "kind": "field"
53
+ }
54
+ }
55
+ ]
56
+ },
57
+ "visibility": "public"
58
+ },
59
+ {
60
+ "name": "owner",
61
+ "type": {
62
+ "kind": "array",
63
+ "length": 64,
64
+ "type": {
65
+ "kind": "integer",
66
+ "sign": "unsigned",
67
+ "width": 8
68
+ }
69
+ },
70
+ "visibility": "public"
71
+ },
72
+ {
73
+ "name": "signature",
74
+ "type": {
75
+ "kind": "array",
76
+ "length": 64,
77
+ "type": {
78
+ "kind": "integer",
79
+ "sign": "unsigned",
80
+ "width": 8
81
+ }
82
+ },
83
+ "visibility": "public"
84
+ },
85
+ {
86
+ "name": "partial_address",
87
+ "type": {
88
+ "kind": "field"
89
+ },
90
+ "visibility": "public"
91
+ }
92
+ ],
93
+ "returnTypes": []
94
+ }
95
+ ]
96
+ }
@@ -0,0 +1,96 @@
1
+ {
2
+ "name": "SchnorrSingleKeyAccount",
3
+ "functions": [
4
+ {
5
+ "name": "constructor",
6
+ "functionType": "secret",
7
+ "parameters": [],
8
+ "returnTypes": []
9
+ },
10
+ {
11
+ "name": "entrypoint",
12
+ "functionType": "secret",
13
+ "parameters": [
14
+ {
15
+ "name": "payload",
16
+ "type": {
17
+ "kind": "struct",
18
+ "fields": [
19
+ {
20
+ "name": "flattened_args_hashes",
21
+ "type": {
22
+ "kind": "array",
23
+ "length": 2,
24
+ "type": {
25
+ "kind": "field"
26
+ }
27
+ }
28
+ },
29
+ {
30
+ "name": "flattened_selectors",
31
+ "type": {
32
+ "kind": "array",
33
+ "length": 2,
34
+ "type": {
35
+ "kind": "field"
36
+ }
37
+ }
38
+ },
39
+ {
40
+ "name": "flattened_targets",
41
+ "type": {
42
+ "kind": "array",
43
+ "length": 2,
44
+ "type": {
45
+ "kind": "field"
46
+ }
47
+ }
48
+ },
49
+ {
50
+ "name": "nonce",
51
+ "type": {
52
+ "kind": "field"
53
+ }
54
+ }
55
+ ]
56
+ },
57
+ "visibility": "public"
58
+ },
59
+ {
60
+ "name": "owner",
61
+ "type": {
62
+ "kind": "array",
63
+ "length": 64,
64
+ "type": {
65
+ "kind": "integer",
66
+ "sign": "unsigned",
67
+ "width": 8
68
+ }
69
+ },
70
+ "visibility": "public"
71
+ },
72
+ {
73
+ "name": "signature",
74
+ "type": {
75
+ "kind": "array",
76
+ "length": 64,
77
+ "type": {
78
+ "kind": "integer",
79
+ "sign": "unsigned",
80
+ "width": 8
81
+ }
82
+ },
83
+ "visibility": "public"
84
+ },
85
+ {
86
+ "name": "partial_address",
87
+ "type": {
88
+ "kind": "field"
89
+ },
90
+ "visibility": "public"
91
+ }
92
+ ],
93
+ "returnTypes": []
94
+ }
95
+ ]
96
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"account_collection.d.ts","sourceRoot":"","sources":["../../src/account_impl/account_collection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEnD;;GAEG;AACH,qBAAa,iBAAkB,YAAW,qBAAqB;IAC7D,OAAO,CAAC,QAAQ,CAAiD;IAEjE;;;;OAIG;IACI,eAAe,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,qBAAqB;IAItE,UAAU,IAAI,YAAY;IAK1B;;;;;OAKG;IACI,4BAA4B,CACjC,UAAU,EAAE,gBAAgB,EAAE,EAC9B,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,kBAAkB,CAAC;CAO/B"}
1
+ {"version":3,"file":"account_collection.d.ts","sourceRoot":"","sources":["../../src/account_impl/account_collection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEnD;;GAEG;AACH,qBAAa,iBAAkB,YAAW,qBAAqB;IAC7D,OAAO,CAAC,QAAQ,CAAiD;IAEjE;;;;OAIG;IACI,eAAe,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,qBAAqB;IAItE,UAAU,IAAI,YAAY;IAK1B;;;;;OAKG;IACI,4BAA4B,CACjC,UAAU,EAAE,gBAAgB,EAAE,EAC9B,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,kBAAkB,CAAC;CAO/B"}
@@ -34,4 +34,4 @@ export class AccountCollection {
34
34
  return impl.createAuthenticatedTxRequest(executions, txContext);
35
35
  }
36
36
  }
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudF9jb2xsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FjY291bnRfaW1wbC9hY2NvdW50X2NvbGxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBYSxNQUFNLG9CQUFvQixDQUFDO0FBSTdEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGlCQUFpQjtJQUE5QjtRQUNVLGFBQVEsR0FBdUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQWdDbkUsQ0FBQztJQTlCQzs7OztPQUlHO0lBQ0ksZUFBZSxDQUFDLElBQWtCLEVBQUUsSUFBMkI7UUFDcEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQzlELE9BQU8sWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQWUsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLDRCQUE0QixDQUNqQyxVQUE4QixFQUM5QixTQUFvQjtRQUVwQixrREFBa0Q7UUFDbEQsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNsQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsSUFBSTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDakYsT0FBTyxJQUFJLENBQUMsNEJBQTRCLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7Q0FDRiJ9
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudF9jb2xsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FjY291bnRfaW1wbC9hY2NvdW50X2NvbGxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBYSxNQUFNLG9CQUFvQixDQUFDO0FBSzdEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGlCQUFpQjtJQUE5QjtRQUNVLGFBQVEsR0FBdUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQWdDbkUsQ0FBQztJQTlCQzs7OztPQUlHO0lBQ0ksZUFBZSxDQUFDLElBQWtCLEVBQUUsSUFBMkI7UUFDcEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQzlELE9BQU8sWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQWUsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLDRCQUE0QixDQUNqQyxVQUE4QixFQUM5QixTQUFvQjtRQUVwQixrREFBa0Q7UUFDbEQsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNsQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsSUFBSTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDakYsT0FBTyxJQUFJLENBQUMsNEJBQTRCLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7Q0FDRiJ9
@@ -0,0 +1,26 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ import { Fr } from '@aztec/circuits.js';
3
+ import { ExecutionRequest, PackedArguments } from '@aztec/types';
4
+ /** Encoded payload for the account contract entrypoint */
5
+ export type EntrypointPayload = {
6
+ /** Concatenated arguments for every call */
7
+ flattened_args_hashes: Fr[];
8
+ /** Concatenated selectors for every call */
9
+ flattened_selectors: Fr[];
10
+ /** Concatenated target addresses for every call */
11
+ flattened_targets: Fr[];
12
+ /** A nonce for replay protection */
13
+ nonce: Fr;
14
+ };
15
+ /** Assembles an entrypoint payload from a set of private and public function calls */
16
+ export declare function buildPayload(privateCalls: ExecutionRequest[], publicCalls: ExecutionRequest[]): Promise<{
17
+ /** The payload for the entrypoint function */
18
+ payload: EntrypointPayload;
19
+ /** The packed arguments of functions called */
20
+ packedArguments: PackedArguments[];
21
+ }>;
22
+ /** Hashes an entrypoint payload (useful for signing) */
23
+ export declare function hashPayload(payload: EntrypointPayload): Buffer;
24
+ /** Flattens an entrypoint payload */
25
+ export declare function flattenPayload(payload: EntrypointPayload): Fr[];
26
+ //# sourceMappingURL=entrypoint_payload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entrypoint_payload.d.ts","sourceRoot":"","sources":["../../src/account_impl/entrypoint_payload.ts"],"names":[],"mappings":";AAAA,OAAO,EAAgB,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAGtD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAyB,MAAM,cAAc,CAAC;AAKxF,0DAA0D;AAC1D,MAAM,MAAM,iBAAiB,GAAG;IAE9B,4CAA4C;IAC5C,qBAAqB,EAAE,EAAE,EAAE,CAAC;IAE5B,4CAA4C;IAC5C,mBAAmB,EAAE,EAAE,EAAE,CAAC;IAE1B,mDAAmD;IACnD,iBAAiB,EAAE,EAAE,EAAE,CAAC;IACxB,oCAAoC;IACpC,KAAK,EAAE,EAAE,CAAC;CACX,CAAC;AAEF,sFAAsF;AACtF,wBAAsB,YAAY,CAChC,YAAY,EAAE,gBAAgB,EAAE,EAChC,WAAW,EAAE,gBAAgB,EAAE,GAC9B,OAAO,CAAC;IACT,8CAA8C;IAC9C,OAAO,EAAE,iBAAiB,CAAC;IAC3B,+CAA+C;IAC/C,eAAe,EAAE,eAAe,EAAE,CAAC;CACpC,CAAC,CA2BD;AAED,wDAAwD;AACxD,wBAAgB,WAAW,CAAC,OAAO,EAAE,iBAAiB,UAGrD;AAED,qCAAqC;AACrC,wBAAgB,cAAc,CAAC,OAAO,EAAE,iBAAiB,QAOxD"}
@@ -0,0 +1,46 @@
1
+ import { CircuitsWasm, Fr } from '@aztec/circuits.js';
2
+ import { padArrayEnd } from '@aztec/foundation/collection';
3
+ import { sha256 } from '@aztec/foundation/crypto';
4
+ import { PackedArguments, emptyExecutionRequest } from '@aztec/types';
5
+ const ACCOUNT_MAX_PRIVATE_CALLS = 1;
6
+ const ACCOUNT_MAX_PUBLIC_CALLS = 1;
7
+ /** Assembles an entrypoint payload from a set of private and public function calls */
8
+ export async function buildPayload(privateCalls, publicCalls) {
9
+ const nonce = Fr.random();
10
+ const calls = [
11
+ ...padArrayEnd(privateCalls, emptyExecutionRequest(), ACCOUNT_MAX_PRIVATE_CALLS),
12
+ ...padArrayEnd(publicCalls, emptyExecutionRequest(), ACCOUNT_MAX_PUBLIC_CALLS),
13
+ ];
14
+ const packedArguments = [];
15
+ const wasm = await CircuitsWasm.get();
16
+ for (const call of calls) {
17
+ packedArguments.push(await PackedArguments.fromArgs(call.args, wasm));
18
+ }
19
+ return {
20
+ payload: {
21
+ // eslint-disable-next-line camelcase
22
+ flattened_args_hashes: packedArguments.map(args => args.hash),
23
+ // eslint-disable-next-line camelcase
24
+ flattened_selectors: calls.map(call => Fr.fromBuffer(call.functionData.functionSelectorBuffer)),
25
+ // eslint-disable-next-line camelcase
26
+ flattened_targets: calls.map(call => call.to.toField()),
27
+ nonce,
28
+ },
29
+ packedArguments,
30
+ };
31
+ }
32
+ /** Hashes an entrypoint payload (useful for signing) */
33
+ export function hashPayload(payload) {
34
+ // TODO: Switch to keccak when avaiable in Noir
35
+ return sha256(Buffer.concat(flattenPayload(payload).map(fr => fr.toBuffer())));
36
+ }
37
+ /** Flattens an entrypoint payload */
38
+ export function flattenPayload(payload) {
39
+ return [
40
+ ...payload.flattened_args_hashes,
41
+ ...payload.flattened_selectors,
42
+ ...payload.flattened_targets,
43
+ payload.nonce,
44
+ ];
45
+ }
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cnlwb2ludF9wYXlsb2FkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FjY291bnRfaW1wbC9lbnRyeXBvaW50X3BheWxvYWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2xELE9BQU8sRUFBb0IsZUFBZSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXhGLE1BQU0seUJBQXlCLEdBQUcsQ0FBQyxDQUFDO0FBQ3BDLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxDQUFDO0FBaUJuQyxzRkFBc0Y7QUFDdEYsTUFBTSxDQUFDLEtBQUssVUFBVSxZQUFZLENBQ2hDLFlBQWdDLEVBQ2hDLFdBQStCO0lBTy9CLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUUxQixNQUFNLEtBQUssR0FBRztRQUNaLEdBQUcsV0FBVyxDQUFDLFlBQVksRUFBRSxxQkFBcUIsRUFBRSxFQUFFLHlCQUF5QixDQUFDO1FBQ2hGLEdBQUcsV0FBVyxDQUFDLFdBQVcsRUFBRSxxQkFBcUIsRUFBRSxFQUFFLHdCQUF3QixDQUFDO0tBQy9FLENBQUM7SUFFRixNQUFNLGVBQWUsR0FBRyxFQUFFLENBQUM7SUFDM0IsTUFBTSxJQUFJLEdBQUcsTUFBTSxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUM7SUFFdEMsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUU7UUFDeEIsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLGVBQWUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0tBQ3ZFO0lBRUQsT0FBTztRQUNMLE9BQU8sRUFBRTtZQUNQLHFDQUFxQztZQUNyQyxxQkFBcUIsRUFBRSxlQUFlLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUM3RCxxQ0FBcUM7WUFDckMsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1lBQy9GLHFDQUFxQztZQUNyQyxpQkFBaUIsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN2RCxLQUFLO1NBQ047UUFDRCxlQUFlO0tBQ2hCLENBQUM7QUFDSixDQUFDO0FBRUQsd0RBQXdEO0FBQ3hELE1BQU0sVUFBVSxXQUFXLENBQUMsT0FBMEI7SUFDcEQsK0NBQStDO0lBQy9DLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNqRixDQUFDO0FBRUQscUNBQXFDO0FBQ3JDLE1BQU0sVUFBVSxjQUFjLENBQUMsT0FBMEI7SUFDdkQsT0FBTztRQUNMLEdBQUcsT0FBTyxDQUFDLHFCQUFxQjtRQUNoQyxHQUFHLE9BQU8sQ0FBQyxtQkFBbUI7UUFDOUIsR0FBRyxPQUFPLENBQUMsaUJBQWlCO1FBQzVCLE9BQU8sQ0FBQyxLQUFLO0tBQ2QsQ0FBQztBQUNKLENBQUMifQ==
@@ -1,6 +1,7 @@
1
1
  import { AztecAddress, TxContext } from '@aztec/circuits.js';
2
2
  import { ExecutionRequest, TxExecutionRequest } from '@aztec/types';
3
- export * from './account_contract.js';
3
+ export * from './single_key_account_contract.js';
4
+ export * from './stored_key_account_contract.js';
4
5
  export * from './account_collection.js';
5
6
  /** Represents an implementation for a user account contract. Knows how to encode and sign a tx for that particular implementation. */
6
7
  export interface AccountImplementation {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/account_impl/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEpE,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AAExC,sIAAsI;AACtI,MAAM,WAAW,qBAAqB;IACpC,UAAU,IAAI,YAAY,CAAC;IAC3B,+FAA+F;IAC/F,4BAA4B,CAAC,UAAU,EAAE,gBAAgB,EAAE,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACjH"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/account_impl/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEpE,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,yBAAyB,CAAC;AAExC,sIAAsI;AACtI,MAAM,WAAW,qBAAqB;IACpC,UAAU,IAAI,YAAY,CAAC;IAC3B,+FAA+F;IAC/F,4BAA4B,CAAC,UAAU,EAAE,gBAAgB,EAAE,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACjH"}
@@ -1,3 +1,4 @@
1
- export * from './account_contract.js';
1
+ export * from './single_key_account_contract.js';
2
+ export * from './stored_key_account_contract.js';
2
3
  export * from './account_collection.js';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWNjb3VudF9pbXBsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx5QkFBeUIsQ0FBQyJ9
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWNjb3VudF9pbXBsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHlCQUF5QixDQUFDIn0=
@@ -0,0 +1,23 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ import { AztecAddress, PartialContractAddress, TxContext } from '@aztec/circuits.js';
3
+ import { Signer } from '@aztec/circuits.js/barretenberg';
4
+ import { ExecutionRequest, TxExecutionRequest } from '@aztec/types';
5
+ import { AccountImplementation } from './index.js';
6
+ /**
7
+ * Account contract implementation that uses a single key for signing and encryption. This public key is not
8
+ * stored in the contract, but rather verified against the contract address. Note that this approach is not
9
+ * secure and should not be used in real use cases.
10
+ */
11
+ export declare class SingleKeyAccountContract implements AccountImplementation {
12
+ private address;
13
+ private partialContractAddress;
14
+ private privateKey;
15
+ private signer;
16
+ constructor(address: AztecAddress, partialContractAddress: PartialContractAddress, privateKey: Buffer, signer: Signer);
17
+ getAddress(): AztecAddress;
18
+ createAuthenticatedTxRequest(executions: ExecutionRequest[], txContext: TxContext): Promise<TxExecutionRequest>;
19
+ private getEntrypointAbi;
20
+ private checkIsNotDeployment;
21
+ private checkSender;
22
+ }
23
+ //# sourceMappingURL=single_key_account_contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"single_key_account_contract.d.ts","sourceRoot":"","sources":["../../src/account_impl/single_key_account_contract.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAA8B,sBAAsB,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACjH,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAEzD,OAAO,EAAE,gBAAgB,EAAmB,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAOrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEnD;;;;GAIG;AACH,qBAAa,wBAAyB,YAAW,qBAAqB;IAElE,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,sBAAsB;IAC9B,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;gBAHN,OAAO,EAAE,YAAY,EACrB,sBAAsB,EAAE,sBAAsB,EAC9C,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM;IAGxB,UAAU,IAAI,YAAY;IAIpB,4BAA4B,CAChC,UAAU,EAAE,gBAAgB,EAAE,EAC9B,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,kBAAkB,CAAC;IA0B9B,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,WAAW;CAQpB"}
@@ -0,0 +1,66 @@
1
+ import { CircuitsWasm, FunctionData } from '@aztec/circuits.js';
2
+ import { encodeArguments, generateFunctionSelector } from '@aztec/foundation/abi';
3
+ import { PackedArguments, TxExecutionRequest } from '@aztec/types';
4
+ import partition from 'lodash.partition';
5
+ import SchnorrSingleKeyAccountContractAbi from '../abis/schnorr_account_contract.json' assert { type: 'json' };
6
+ import { generatePublicKey } from '../index.js';
7
+ import { buildPayload, hashPayload } from './entrypoint_payload.js';
8
+ /**
9
+ * Account contract implementation that uses a single key for signing and encryption. This public key is not
10
+ * stored in the contract, but rather verified against the contract address. Note that this approach is not
11
+ * secure and should not be used in real use cases.
12
+ */
13
+ export class SingleKeyAccountContract {
14
+ constructor(address, partialContractAddress, privateKey, signer) {
15
+ this.address = address;
16
+ this.partialContractAddress = partialContractAddress;
17
+ this.privateKey = privateKey;
18
+ this.signer = signer;
19
+ }
20
+ getAddress() {
21
+ return this.address;
22
+ }
23
+ async createAuthenticatedTxRequest(executions, txContext) {
24
+ this.checkSender(executions);
25
+ this.checkIsNotDeployment(txContext);
26
+ const [privateCalls, publicCalls] = partition(executions, exec => exec.functionData.isPrivate);
27
+ const wasm = await CircuitsWasm.get();
28
+ const { payload, packedArguments: callsPackedArguments } = await buildPayload(privateCalls, publicCalls);
29
+ const hash = hashPayload(payload);
30
+ const signature = this.signer.constructSignature(hash, this.privateKey).toBuffer();
31
+ const publicKey = await generatePublicKey(this.privateKey);
32
+ const args = [payload, publicKey.toBuffer(), signature, this.partialContractAddress];
33
+ const abi = this.getEntrypointAbi();
34
+ const selector = generateFunctionSelector(abi.name, abi.parameters);
35
+ const packedArgs = await PackedArguments.fromArgs(encodeArguments(abi, args), wasm);
36
+ const txRequest = TxExecutionRequest.from({
37
+ argsHash: packedArgs.hash,
38
+ origin: this.address,
39
+ functionData: new FunctionData(selector, true, false),
40
+ txContext,
41
+ packedArguments: [...callsPackedArguments, packedArgs],
42
+ });
43
+ return txRequest;
44
+ }
45
+ getEntrypointAbi() {
46
+ // We use the SchnorrSingleKeyAccountContract because it implements the interface we need, but ideally
47
+ // we should have an interface that defines the entrypoint for SingleKeyAccountContracts and
48
+ // load the abi from it.
49
+ const abi = SchnorrSingleKeyAccountContractAbi.functions.find(f => f.name === 'entrypoint');
50
+ if (!abi)
51
+ throw new Error(`Entrypoint abi for account contract not found`);
52
+ return abi;
53
+ }
54
+ checkIsNotDeployment(txContext) {
55
+ if (txContext.isContractDeploymentTx) {
56
+ throw new Error(`Cannot yet deploy contracts from an account contract`);
57
+ }
58
+ }
59
+ checkSender(executions) {
60
+ const wrongSender = executions.find(e => !e.from.equals(this.address));
61
+ if (wrongSender) {
62
+ throw new Error(`Sender ${wrongSender.from.toString()} does not match account address ${this.address.toString()}`);
63
+ }
64
+ }
65
+ }
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlX2tleV9hY2NvdW50X2NvbnRyYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FjY291bnRfaW1wbC9zaW5nbGVfa2V5X2FjY291bnRfY29udHJhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixZQUFZLEVBQUUsWUFBWSxFQUFxQyxNQUFNLG9CQUFvQixDQUFDO0FBRWpILE9BQU8sRUFBZSxlQUFlLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMvRixPQUFPLEVBQW9CLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVyRixPQUFPLFNBQVMsTUFBTSxrQkFBa0IsQ0FBQztBQUV6QyxPQUFPLGtDQUFrQyxNQUFNLHVDQUF1QyxDQUFDLFNBQVMsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO0FBQy9HLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR3BFOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sd0JBQXdCO0lBQ25DLFlBQ1UsT0FBcUIsRUFDckIsc0JBQThDLEVBQzlDLFVBQWtCLEVBQ2xCLE1BQWM7UUFIZCxZQUFPLEdBQVAsT0FBTyxDQUFjO1FBQ3JCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDOUMsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUNsQixXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQ3JCLENBQUM7SUFFSixVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxLQUFLLENBQUMsNEJBQTRCLENBQ2hDLFVBQThCLEVBQzlCLFNBQW9CO1FBRXBCLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FB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
@@ -0,0 +1,22 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ import { AztecAddress, TxContext } from '@aztec/circuits.js';
3
+ import { Signer } from '@aztec/circuits.js/barretenberg';
4
+ import { ExecutionRequest, TxExecutionRequest } from '@aztec/types';
5
+ import { AccountImplementation } from './index.js';
6
+ /**
7
+ * Account contract implementation that keeps a signing public key in storage, and is retrieved on
8
+ * every new request in order to validate the payload signature.
9
+ */
10
+ export declare class StoredKeyAccountContract implements AccountImplementation {
11
+ private address;
12
+ private privateKey;
13
+ private signer;
14
+ private log;
15
+ constructor(address: AztecAddress, privateKey: Buffer, signer: Signer);
16
+ getAddress(): AztecAddress;
17
+ createAuthenticatedTxRequest(executions: ExecutionRequest[], txContext: TxContext): Promise<TxExecutionRequest>;
18
+ private getEntrypointAbi;
19
+ private checkIsNotDeployment;
20
+ private checkSender;
21
+ }
22
+ //# sourceMappingURL=stored_key_account_contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stored_key_account_contract.d.ts","sourceRoot":"","sources":["../../src/account_impl/stored_key_account_contract.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAA8B,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACzF,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAGzD,OAAO,EAAE,gBAAgB,EAAmB,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAMrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEnD;;;GAGG;AACH,qBAAa,wBAAyB,YAAW,qBAAqB;IAGxD,OAAO,CAAC,OAAO;IAAgB,OAAO,CAAC,UAAU;IAAU,OAAO,CAAC,MAAM;IAFrF,OAAO,CAAC,GAAG,CAAc;gBAEL,OAAO,EAAE,YAAY,EAAU,UAAU,EAAE,MAAM,EAAU,MAAM,EAAE,MAAM;IAI7F,UAAU,IAAI,YAAY;IAIpB,4BAA4B,CAChC,UAAU,EAAE,gBAAgB,EAAE,EAC9B,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,kBAAkB,CAAC;IA0B9B,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,WAAW;CAQpB"}