ox 0.8.8 → 0.9.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 (248) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/_cjs/core/AbiEvent.js +1 -1
  3. package/_cjs/core/AbiEvent.js.map +1 -1
  4. package/_cjs/core/AbiItem.js +1 -1
  5. package/_cjs/core/AbiItem.js.map +1 -1
  6. package/_cjs/core/AbiParameters.js +4 -4
  7. package/_cjs/core/AbiParameters.js.map +1 -1
  8. package/_cjs/core/Authorization.js +5 -4
  9. package/_cjs/core/Authorization.js.map +1 -1
  10. package/_cjs/core/Blobs.js +1 -1
  11. package/_cjs/core/Blobs.js.map +1 -1
  12. package/_cjs/core/Block.js.map +1 -1
  13. package/_cjs/core/Bytes.js +1 -1
  14. package/_cjs/core/Bytes.js.map +1 -1
  15. package/_cjs/core/ContractAddress.js.map +1 -1
  16. package/_cjs/core/HdKey.js.map +1 -1
  17. package/_cjs/core/Hex.js +1 -1
  18. package/_cjs/core/Hex.js.map +1 -1
  19. package/_cjs/core/Keystore.js.map +1 -1
  20. package/_cjs/core/Mnemonic.js +2 -2
  21. package/_cjs/core/Mnemonic.js.map +1 -1
  22. package/_cjs/core/P256.js +1 -1
  23. package/_cjs/core/P256.js.map +1 -1
  24. package/_cjs/core/Provider.js.map +1 -1
  25. package/_cjs/core/PublicKey.js +1 -1
  26. package/_cjs/core/PublicKey.js.map +1 -1
  27. package/_cjs/core/RpcTransport.js +1 -1
  28. package/_cjs/core/RpcTransport.js.map +1 -1
  29. package/_cjs/core/Secp256k1.js +1 -1
  30. package/_cjs/core/Secp256k1.js.map +1 -1
  31. package/_cjs/core/Signature.js.map +1 -1
  32. package/_cjs/core/Siwe.js +4 -4
  33. package/_cjs/core/Siwe.js.map +1 -1
  34. package/_cjs/core/Transaction.js.map +1 -1
  35. package/_cjs/core/TransactionEnvelope.js.map +1 -1
  36. package/_cjs/core/TransactionEnvelopeEip1559.js.map +1 -1
  37. package/_cjs/core/TransactionEnvelopeEip2930.js.map +1 -1
  38. package/_cjs/core/TransactionEnvelopeEip4844.js.map +1 -1
  39. package/_cjs/core/TransactionEnvelopeEip7702.js.map +1 -1
  40. package/_cjs/core/TransactionEnvelopeLegacy.js.map +1 -1
  41. package/_cjs/core/TransactionReceipt.js.map +1 -1
  42. package/_cjs/core/TypedData.js +3 -3
  43. package/_cjs/core/TypedData.js.map +1 -1
  44. package/_cjs/core/WebAuthnP256.js +1 -1
  45. package/_cjs/core/WebAuthnP256.js.map +1 -1
  46. package/_cjs/core/WebCryptoP256.js.map +1 -1
  47. package/_cjs/core/internal/abiParameters.js +4 -4
  48. package/_cjs/core/internal/abiParameters.js.map +1 -1
  49. package/_cjs/core/internal/promise.js.map +1 -1
  50. package/_cjs/erc4337/UserOperation.js.map +1 -1
  51. package/_cjs/erc6492/{WrappedSignature.js → SignatureErc6492.js} +8 -8
  52. package/_cjs/erc6492/SignatureErc6492.js.map +1 -0
  53. package/_cjs/erc6492/index.js +2 -2
  54. package/_cjs/erc8010/SignatureErc8010.js +95 -0
  55. package/_cjs/erc8010/SignatureErc8010.js.map +1 -0
  56. package/_cjs/erc8010/index.js +5 -0
  57. package/_cjs/erc8010/index.js.map +1 -0
  58. package/_cjs/index.docs.js +1 -0
  59. package/_cjs/index.docs.js.map +1 -1
  60. package/_cjs/index.js +6 -6
  61. package/_cjs/index.js.map +1 -1
  62. package/_cjs/trusted-setups/internal/paths.js.map +1 -1
  63. package/_cjs/version.js +1 -1
  64. package/_esm/core/AbiEvent.js +1 -1
  65. package/_esm/core/AbiEvent.js.map +1 -1
  66. package/_esm/core/AbiItem.js +1 -1
  67. package/_esm/core/AbiItem.js.map +1 -1
  68. package/_esm/core/AbiParameters.js +4 -4
  69. package/_esm/core/AbiParameters.js.map +1 -1
  70. package/_esm/core/Authorization.js +5 -4
  71. package/_esm/core/Authorization.js.map +1 -1
  72. package/_esm/core/Blobs.js +1 -1
  73. package/_esm/core/Blobs.js.map +1 -1
  74. package/_esm/core/Block.js.map +1 -1
  75. package/_esm/core/Bytes.js +1 -1
  76. package/_esm/core/Bytes.js.map +1 -1
  77. package/_esm/core/ContractAddress.js.map +1 -1
  78. package/_esm/core/HdKey.js.map +1 -1
  79. package/_esm/core/Hex.js +1 -1
  80. package/_esm/core/Hex.js.map +1 -1
  81. package/_esm/core/Keystore.js +3 -2
  82. package/_esm/core/Keystore.js.map +1 -1
  83. package/_esm/core/Mnemonic.js +1 -1
  84. package/_esm/core/Mnemonic.js.map +1 -1
  85. package/_esm/core/P256.js +1 -1
  86. package/_esm/core/P256.js.map +1 -1
  87. package/_esm/core/Provider.js.map +1 -1
  88. package/_esm/core/PublicKey.js +1 -1
  89. package/_esm/core/PublicKey.js.map +1 -1
  90. package/_esm/core/RpcTransport.js +1 -1
  91. package/_esm/core/RpcTransport.js.map +1 -1
  92. package/_esm/core/Secp256k1.js +1 -1
  93. package/_esm/core/Secp256k1.js.map +1 -1
  94. package/_esm/core/Signature.js.map +1 -1
  95. package/_esm/core/Siwe.js +4 -4
  96. package/_esm/core/Siwe.js.map +1 -1
  97. package/_esm/core/Transaction.js.map +1 -1
  98. package/_esm/core/TransactionEnvelope.js.map +1 -1
  99. package/_esm/core/TransactionEnvelopeEip1559.js.map +1 -1
  100. package/_esm/core/TransactionEnvelopeEip2930.js.map +1 -1
  101. package/_esm/core/TransactionEnvelopeEip4844.js.map +1 -1
  102. package/_esm/core/TransactionEnvelopeEip7702.js.map +1 -1
  103. package/_esm/core/TransactionEnvelopeLegacy.js.map +1 -1
  104. package/_esm/core/TransactionReceipt.js.map +1 -1
  105. package/_esm/core/TypedData.js +3 -3
  106. package/_esm/core/TypedData.js.map +1 -1
  107. package/_esm/core/WebAuthnP256.js +1 -1
  108. package/_esm/core/WebAuthnP256.js.map +1 -1
  109. package/_esm/core/WebCryptoP256.js.map +1 -1
  110. package/_esm/core/internal/abiParameters.js +4 -4
  111. package/_esm/core/internal/abiParameters.js.map +1 -1
  112. package/_esm/core/internal/promise.js.map +1 -1
  113. package/_esm/erc4337/UserOperation.js.map +1 -1
  114. package/_esm/erc6492/{WrappedSignature.js → SignatureErc6492.js} +17 -17
  115. package/_esm/erc6492/{WrappedSignature.js.map → SignatureErc6492.js.map} +1 -1
  116. package/_esm/erc6492/index.js +3 -3
  117. package/_esm/erc8010/SignatureErc8010.js +184 -0
  118. package/_esm/erc8010/SignatureErc8010.js.map +1 -0
  119. package/_esm/erc8010/index.js +40 -0
  120. package/_esm/erc8010/index.js.map +1 -0
  121. package/_esm/index.docs.js +2 -0
  122. package/_esm/index.docs.js.map +1 -1
  123. package/_esm/index.js +236 -236
  124. package/_esm/index.js.map +1 -1
  125. package/_esm/trusted-setups/internal/paths.js +1 -0
  126. package/_esm/trusted-setups/internal/paths.js.map +1 -1
  127. package/_esm/version.js +1 -1
  128. package/_types/core/AbiEvent.d.ts +1 -2
  129. package/_types/core/AbiEvent.d.ts.map +1 -1
  130. package/_types/core/AbiParameters.d.ts.map +1 -1
  131. package/_types/core/Authorization.d.ts +1 -1
  132. package/_types/core/Authorization.d.ts.map +1 -1
  133. package/_types/core/Blobs.d.ts +1 -1
  134. package/_types/core/Blobs.d.ts.map +1 -1
  135. package/_types/core/Block.d.ts +1 -1
  136. package/_types/core/Block.d.ts.map +1 -1
  137. package/_types/core/Bytes.d.ts.map +1 -1
  138. package/_types/core/ContractAddress.d.ts +1 -1
  139. package/_types/core/ContractAddress.d.ts.map +1 -1
  140. package/_types/core/HdKey.d.ts +1 -1
  141. package/_types/core/HdKey.d.ts.map +1 -1
  142. package/_types/core/Hex.d.ts.map +1 -1
  143. package/_types/core/Keystore.d.ts.map +1 -1
  144. package/_types/core/Mnemonic.d.ts +1 -1
  145. package/_types/core/Mnemonic.d.ts.map +1 -1
  146. package/_types/core/P256.d.ts.map +1 -1
  147. package/_types/core/Provider.d.ts +2 -2
  148. package/_types/core/Provider.d.ts.map +1 -1
  149. package/_types/core/PublicKey.d.ts.map +1 -1
  150. package/_types/core/RpcRequest.d.ts +1 -1
  151. package/_types/core/RpcRequest.d.ts.map +1 -1
  152. package/_types/core/RpcTransport.d.ts +2 -2
  153. package/_types/core/RpcTransport.d.ts.map +1 -1
  154. package/_types/core/Secp256k1.d.ts +1 -1
  155. package/_types/core/Secp256k1.d.ts.map +1 -1
  156. package/_types/core/Signature.d.ts.map +1 -1
  157. package/_types/core/Siwe.d.ts.map +1 -1
  158. package/_types/core/Transaction.d.ts +1 -2
  159. package/_types/core/Transaction.d.ts.map +1 -1
  160. package/_types/core/TransactionEnvelope.d.ts.map +1 -1
  161. package/_types/core/TransactionEnvelopeEip1559.d.ts +1 -1
  162. package/_types/core/TransactionEnvelopeEip1559.d.ts.map +1 -1
  163. package/_types/core/TransactionEnvelopeEip2930.d.ts +1 -1
  164. package/_types/core/TransactionEnvelopeEip2930.d.ts.map +1 -1
  165. package/_types/core/TransactionEnvelopeEip4844.d.ts +1 -1
  166. package/_types/core/TransactionEnvelopeEip4844.d.ts.map +1 -1
  167. package/_types/core/TransactionEnvelopeEip7702.d.ts +1 -3
  168. package/_types/core/TransactionEnvelopeEip7702.d.ts.map +1 -1
  169. package/_types/core/TransactionEnvelopeLegacy.d.ts +1 -1
  170. package/_types/core/TransactionEnvelopeLegacy.d.ts.map +1 -1
  171. package/_types/core/TransactionReceipt.d.ts +1 -1
  172. package/_types/core/TransactionReceipt.d.ts.map +1 -1
  173. package/_types/core/TypedData.d.ts +1 -1
  174. package/_types/core/TypedData.d.ts.map +1 -1
  175. package/_types/core/WebAuthnP256.d.ts +2 -2
  176. package/_types/core/WebAuthnP256.d.ts.map +1 -1
  177. package/_types/core/WebCryptoP256.d.ts +1 -1
  178. package/_types/core/WebCryptoP256.d.ts.map +1 -1
  179. package/_types/core/internal/abiParameters.d.ts +1 -1
  180. package/_types/core/internal/abiParameters.d.ts.map +1 -1
  181. package/_types/core/internal/promise.d.ts.map +1 -1
  182. package/_types/core/internal/register.d.ts +1 -2
  183. package/_types/core/internal/register.d.ts.map +1 -1
  184. package/_types/erc4337/UserOperation.d.ts +1 -1
  185. package/_types/erc4337/UserOperation.d.ts.map +1 -1
  186. package/_types/erc6492/{WrappedSignature.d.ts → SignatureErc6492.d.ts} +26 -24
  187. package/_types/erc6492/SignatureErc6492.d.ts.map +1 -0
  188. package/_types/erc6492/index.d.ts +3 -3
  189. package/_types/erc8010/SignatureErc8010.d.ts +139 -0
  190. package/_types/erc8010/SignatureErc8010.d.ts.map +1 -0
  191. package/_types/erc8010/index.d.ts +42 -0
  192. package/_types/erc8010/index.d.ts.map +1 -0
  193. package/_types/index.d.ts +237 -237
  194. package/_types/index.d.ts.map +1 -1
  195. package/_types/index.docs.d.ts +1 -0
  196. package/_types/index.docs.d.ts.map +1 -1
  197. package/_types/trusted-setups/internal/paths.d.ts.map +1 -1
  198. package/_types/version.d.ts +1 -1
  199. package/core/AbiEvent.ts +3 -4
  200. package/core/AbiItem.ts +1 -1
  201. package/core/AbiParameters.ts +4 -4
  202. package/core/Authorization.ts +6 -6
  203. package/core/Blobs.ts +1 -1
  204. package/core/Block.ts +1 -1
  205. package/core/Bytes.ts +1 -1
  206. package/core/ContractAddress.ts +1 -1
  207. package/core/HdKey.ts +1 -1
  208. package/core/Hex.ts +1 -1
  209. package/core/Keystore.ts +3 -2
  210. package/core/Mnemonic.ts +1 -1
  211. package/core/P256.ts +1 -1
  212. package/core/Provider.ts +2 -2
  213. package/core/PublicKey.ts +2 -2
  214. package/core/RpcRequest.ts +1 -1
  215. package/core/RpcTransport.ts +3 -3
  216. package/core/Secp256k1.ts +2 -2
  217. package/core/Signature.ts +1 -1
  218. package/core/Siwe.ts +4 -5
  219. package/core/Transaction.ts +1 -2
  220. package/core/TransactionEnvelope.ts +1 -1
  221. package/core/TransactionEnvelopeEip1559.ts +3 -3
  222. package/core/TransactionEnvelopeEip2930.ts +3 -3
  223. package/core/TransactionEnvelopeEip4844.ts +5 -5
  224. package/core/TransactionEnvelopeEip7702.ts +6 -5
  225. package/core/TransactionEnvelopeLegacy.ts +3 -3
  226. package/core/TransactionReceipt.ts +1 -1
  227. package/core/TypedData.ts +4 -4
  228. package/core/WebAuthnP256.ts +2 -2
  229. package/core/WebCryptoP256.ts +1 -1
  230. package/core/internal/abiParameters.ts +5 -5
  231. package/core/internal/promise.ts +3 -1
  232. package/core/internal/register.ts +1 -2
  233. package/erc4337/UserOperation.ts +1 -1
  234. package/erc6492/SignatureErc6492/package.json +6 -0
  235. package/erc6492/{WrappedSignature.ts → SignatureErc6492.ts} +28 -25
  236. package/erc6492/index.ts +3 -3
  237. package/erc8010/SignatureErc8010/package.json +6 -0
  238. package/erc8010/SignatureErc8010.ts +235 -0
  239. package/erc8010/index.ts +43 -0
  240. package/erc8010/package.json +6 -0
  241. package/index.docs.ts +2 -0
  242. package/index.ts +237 -261
  243. package/package.json +15 -5
  244. package/trusted-setups/internal/paths.ts +1 -0
  245. package/version.ts +1 -1
  246. package/_cjs/erc6492/WrappedSignature.js.map +0 -1
  247. package/_types/erc6492/WrappedSignature.d.ts.map +0 -1
  248. package/erc6492/WrappedSignature/package.json +0 -6
@@ -64,9 +64,9 @@ export const universalSignatureValidatorAbi = [
64
64
  *
65
65
  * @example
66
66
  * ```ts twoslash
67
- * import { WrappedSignature } from 'ox/erc6492'
67
+ * import { SignatureErc6492 } from 'ox/erc6492'
68
68
  *
69
- * WrappedSignature.assert('0xdeadbeef')
69
+ * SignatureErc6492.assert('0xdeadbeef')
70
70
  * // @error: InvalidWrappedSignatureError: Value `0xdeadbeef` is an invalid ERC-6492 wrapped signature.
71
71
  * ```
72
72
  *
@@ -83,7 +83,7 @@ export function assert(wrapped) {
83
83
  * ```ts twoslash
84
84
  * // @noErrors
85
85
  * import { Secp256k1 } from 'ox'
86
- * import { WrappedSignature } from 'ox/erc6492' // [!code focus]
86
+ * import { SignatureErc6492 } from 'ox/erc6492' // [!code focus]
87
87
  *
88
88
  * const signature = Secp256k1.sign({
89
89
  * payload: '0x...',
@@ -91,11 +91,11 @@ export function assert(wrapped) {
91
91
  * })
92
92
  *
93
93
  * // Instantiate from serialized format. // [!code focus]
94
- * const wrapped = WrappedSignature.from('0x...') // [!code focus]
94
+ * const wrapped = SignatureErc6492.from('0x...') // [!code focus]
95
95
  * // @log: { data: '0x...', signature: { ... }, to: '0x...', } // [!code focus]
96
96
  *
97
97
  * // Instantiate from constituent parts. // [!code focus]
98
- * const wrapped = WrappedSignature.from({ // [!code focus]
98
+ * const wrapped = SignatureErc6492.from({ // [!code focus]
99
99
  * data: '0x...', // [!code focus]
100
100
  * signature, // [!code focus]
101
101
  * to: '0x...', // [!code focus]
@@ -108,7 +108,7 @@ export function assert(wrapped) {
108
108
  */
109
109
  export function from(wrapped) {
110
110
  if (typeof wrapped === 'string')
111
- return fromHex(wrapped);
111
+ return unwrap(wrapped);
112
112
  return wrapped;
113
113
  }
114
114
  /**
@@ -116,18 +116,18 @@ export function from(wrapped) {
116
116
  *
117
117
  * @example
118
118
  * ```ts twoslash
119
- * import { WrappedSignature } from 'ox/erc6492'
119
+ * import { SignatureErc6492 } from 'ox/erc6492'
120
120
  *
121
- * const { data, signature, to } = WrappedSignature.fromHex('0x...')
121
+ * const { data, signature, to } = SignatureErc6492.unwrap('0x...')
122
122
  * ```
123
123
  *
124
124
  * @param wrapped - Wrapped signature to parse.
125
125
  * @returns Wrapped signature.
126
126
  */
127
- export function fromHex(wrapped) {
127
+ export function unwrap(wrapped) {
128
128
  assert(wrapped);
129
129
  const [to, data, signature_hex] = AbiParameters.decode(AbiParameters.from('address, bytes, bytes'), wrapped);
130
- const signature = Signature.fromHex(signature_hex);
130
+ const signature = Signature.from(signature_hex);
131
131
  return { data, signature, to };
132
132
  }
133
133
  /**
@@ -136,14 +136,14 @@ export function fromHex(wrapped) {
136
136
  * @example
137
137
  * ```ts twoslash
138
138
  * import { Secp256k1 } from 'ox'
139
- * import { WrappedSignature } from 'ox/erc6492' // [!code focus]
139
+ * import { SignatureErc6492 } from 'ox/erc6492' // [!code focus]
140
140
  *
141
141
  * const signature = Secp256k1.sign({
142
142
  * payload: '0x...',
143
143
  * privateKey: '0x...',
144
144
  * })
145
145
  *
146
- * const wrapped = WrappedSignature.toHex({ // [!code focus]
146
+ * const wrapped = SignatureErc6492.wrap({ // [!code focus]
147
147
  * data: '0xdeadbeef', // [!code focus]
148
148
  * signature, // [!code focus]
149
149
  * to: '0x00000000219ab540356cBB839Cbe05303d7705Fa', // [!code focus]
@@ -153,7 +153,7 @@ export function fromHex(wrapped) {
153
153
  * @param value - Wrapped signature to serialize.
154
154
  * @returns Serialized wrapped signature.
155
155
  */
156
- export function toHex(value) {
156
+ export function wrap(value) {
157
157
  const { data, signature, to } = value;
158
158
  return Hex.concat(AbiParameters.encode(AbiParameters.from('address, bytes, bytes'), [
159
159
  to,
@@ -166,9 +166,9 @@ export function toHex(value) {
166
166
  *
167
167
  * @example
168
168
  * ```ts twoslash
169
- * import { WrappedSignature } from 'ox/erc6492'
169
+ * import { SignatureErc6492 } from 'ox/erc6492'
170
170
  *
171
- * const valid = WrappedSignature.validate('0xdeadbeef')
171
+ * const valid = SignatureErc6492.validate('0xdeadbeef')
172
172
  * // @log: false
173
173
  * ```
174
174
  *
@@ -192,8 +192,8 @@ export class InvalidWrappedSignatureError extends Errors.BaseError {
192
192
  enumerable: true,
193
193
  configurable: true,
194
194
  writable: true,
195
- value: 'WrappedSignature.InvalidWrappedSignatureError'
195
+ value: 'SignatureErc6492.InvalidWrappedSignatureError'
196
196
  });
197
197
  }
198
198
  }
199
- //# sourceMappingURL=WrappedSignature.js.map
199
+ //# sourceMappingURL=SignatureErc6492.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WrappedSignature.js","sourceRoot":"","sources":["../../erc6492/WrappedSignature.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SignatureErc6492.js","sourceRoot":"","sources":["../../erc6492/SignatureErc6492.ts"],"names":[],"mappings":"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"}
@@ -4,14 +4,14 @@
4
4
  * @example
5
5
  * ```ts twoslash
6
6
  * import { Secp256k1, PersonalMessage } from 'ox'
7
- * import { WrappedSignature } from 'ox/erc6492' // [!code focus]
7
+ * import { SignatureErc6492 } from 'ox/erc6492' // [!code focus]
8
8
  *
9
9
  * const signature = Secp256k1.sign({
10
10
  * payload: PersonalMessage.getSignPayload('0xdeadbeef'),
11
11
  * privateKey: '0x...',
12
12
  * })
13
13
  *
14
- * const wrapped = WrappedSignature.toHex({ // [!code focus]
14
+ * const wrapped = SignatureErc6492.wrap({ // [!code focus]
15
15
  * data: '0xcafebabe', // [!code focus]
16
16
  * signature, // [!code focus]
17
17
  * to: '0xcafebabecafebabecafebabecafebabecafebabe', // [!code focus]
@@ -21,5 +21,5 @@
21
21
  *
22
22
  * @category ERC-6492
23
23
  */
24
- export * as WrappedSignature from './WrappedSignature.js';
24
+ export * as SignatureErc6492 from './SignatureErc6492.js';
25
25
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,184 @@
1
+ import * as AbiParameters from '../core/AbiParameters.js';
2
+ import * as Authorization from '../core/Authorization.js';
3
+ import * as Errors from '../core/Errors.js';
4
+ import * as Hex from '../core/Hex.js';
5
+ import * as Signature from '../core/Signature.js';
6
+ /**
7
+ * Magic bytes used to identify ERC-8010 wrapped signatures.
8
+ */
9
+ export const magicBytes = '0x8010801080108010801080108010801080108010801080108010801080108010';
10
+ /**
11
+ * Asserts that the wrapped signature is valid.
12
+ *
13
+ * @example
14
+ * ```ts twoslash
15
+ * import { SignatureErc8010 } from 'ox/erc8010'
16
+ *
17
+ * SignatureErc8010.assert('0xdeadbeef')
18
+ * // @error: InvalidWrappedSignatureError: Value `0xdeadbeef` is an invalid ERC-8010 wrapped signature.
19
+ * ```
20
+ *
21
+ * @param value - The value to assert.
22
+ */
23
+ export function assert(value) {
24
+ if (typeof value === 'string') {
25
+ if (Hex.slice(value, -32) !== magicBytes)
26
+ throw new InvalidWrappedSignatureError(value);
27
+ }
28
+ else {
29
+ Signature.assert(value.authorization);
30
+ Signature.assert(value.signature);
31
+ }
32
+ }
33
+ /**
34
+ * Parses an [ERC-8010 wrapped signature](https://github.com/jxom/ERCs/blob/16f7e3891fff2e1e9c25dea0485497739db8a816/ERCS/erc-8010.md) into its constituent parts.
35
+ *
36
+ * @example
37
+ * ```ts twoslash
38
+ * // @noErrors
39
+ * import { Secp256k1 } from 'ox'
40
+ * import { SignatureErc8010 } from 'ox/erc8010' // [!code focus]
41
+ *
42
+ * const signature = Secp256k1.sign({
43
+ * payload: '0x...',
44
+ * privateKey: '0x...',
45
+ * })
46
+ *
47
+ * // Instantiate from serialized format. // [!code focus]
48
+ * const wrapped = SignatureErc8010.from('0x...') // [!code focus]
49
+ * // @log: { authorization: { ... }, data: '0x...', signature: { ... } } // [!code focus]
50
+ *
51
+ * // Instantiate from constituent parts. // [!code focus]
52
+ * const wrapped = SignatureErc8010.from({ // [!code focus]
53
+ * authorization: { ... }, // [!code focus]
54
+ * data: '0x...', // [!code focus]
55
+ * signature, // [!code focus]
56
+ * })
57
+ * // @log: { authorization: { ... }, data: '0x...', signature: { ... } }
58
+ * ```
59
+ *
60
+ * @param value - Value to parse.
61
+ * @returns Parsed value.
62
+ */
63
+ export function from(value) {
64
+ if (typeof value === 'string')
65
+ return unwrap(value);
66
+ return value;
67
+ }
68
+ /**
69
+ * Unwraps an [ERC-8010 wrapped signature](https://github.com/jxom/ERCs/blob/16f7e3891fff2e1e9c25dea0485497739db8a816/ERCS/erc-8010.md) into its constituent parts.
70
+ *
71
+ * @example
72
+ * ```ts twoslash
73
+ * import { SignatureErc8010 } from 'ox/erc8010'
74
+ *
75
+ * const { authorization, data, signature } = SignatureErc8010.unwrap('0x...')
76
+ * ```
77
+ *
78
+ * @param wrapped - Wrapped signature to unwrap.
79
+ * @returns Unwrapped signature.
80
+ */
81
+ export function unwrap(wrapped) {
82
+ assert(wrapped);
83
+ const suffixLength = Hex.toNumber(Hex.slice(wrapped, -64, -32));
84
+ const suffix = Hex.slice(wrapped, -suffixLength - 64, -64);
85
+ const signature = Signature.from(Hex.slice(wrapped, 0, -suffixLength - 64));
86
+ const chainId = Hex.toNumber(Hex.slice(suffix, 0, 32));
87
+ const delegation = Hex.slice(suffix, 32, 52);
88
+ const nonce = Hex.toBigInt(Hex.slice(suffix, 52, 84));
89
+ const yParity = Hex.toNumber(Hex.slice(suffix, 84, 85));
90
+ const r = Hex.toBigInt(Hex.slice(suffix, 85, 117));
91
+ const s = Hex.toBigInt(Hex.slice(suffix, 117, 149));
92
+ const authorization = Authorization.from({
93
+ address: delegation,
94
+ chainId,
95
+ nonce,
96
+ yParity,
97
+ r,
98
+ s,
99
+ });
100
+ const data = (() => {
101
+ try {
102
+ return Hex.slice(suffix, 149);
103
+ }
104
+ catch {
105
+ return undefined;
106
+ }
107
+ })();
108
+ return { authorization, data, signature };
109
+ }
110
+ /**
111
+ * Wraps a signature into [ERC-8010 format](https://github.com/jxom/ERCs/blob/16f7e3891fff2e1e9c25dea0485497739db8a816/ERCS/erc-8010.md).
112
+ *
113
+ * @example
114
+ * ```ts twoslash
115
+ * // @noErrors
116
+ * import { Secp256k1 } from 'ox'
117
+ * import { SignatureErc8010 } from 'ox/erc8010' // [!code focus]
118
+ *
119
+ * const signature = Secp256k1.sign({
120
+ * payload: '0x...',
121
+ * privateKey: '0x...',
122
+ * })
123
+ *
124
+ * const wrapped = SignatureErc8010.wrap({ // [!code focus]
125
+ * authorization: { ... }, // [!code focus]
126
+ * data: '0xdeadbeef', // [!code focus]
127
+ * signature, // [!code focus]
128
+ * }) // [!code focus]
129
+ * ```
130
+ *
131
+ * @param value - Values to wrap.
132
+ * @returns Wrapped signature.
133
+ */
134
+ export function wrap(value) {
135
+ assert(value);
136
+ const { data, signature } = value;
137
+ const authorization = AbiParameters.encodePacked(['uint256', 'address', 'uint256', 'uint8', 'uint256', 'uint256'], [
138
+ BigInt(value.authorization.chainId),
139
+ value.authorization.address,
140
+ BigInt(value.authorization.nonce),
141
+ value.authorization.yParity,
142
+ value.authorization.r,
143
+ value.authorization.s,
144
+ ]);
145
+ const suffix = AbiParameters.encodePacked(['bytes', 'bytes'], [authorization, data ?? '0x']);
146
+ const suffixLength = Hex.fromNumber(Hex.size(suffix), { size: 32 });
147
+ return Hex.concat(Signature.toHex(signature), suffix, suffixLength, magicBytes);
148
+ }
149
+ /**
150
+ * Validates a wrapped signature. Returns `true` if the wrapped signature is valid, `false` otherwise.
151
+ *
152
+ * @example
153
+ * ```ts twoslash
154
+ * import { SignatureErc8010 } from 'ox/erc8010'
155
+ *
156
+ * const valid = SignatureErc8010.validate('0xdeadbeef')
157
+ * // @log: false
158
+ * ```
159
+ *
160
+ * @param value - The value to validate.
161
+ * @returns `true` if the value is valid, `false` otherwise.
162
+ */
163
+ export function validate(value) {
164
+ try {
165
+ assert(value);
166
+ return true;
167
+ }
168
+ catch {
169
+ return false;
170
+ }
171
+ }
172
+ /** Thrown when the ERC-8010 wrapped signature is invalid. */
173
+ export class InvalidWrappedSignatureError extends Errors.BaseError {
174
+ constructor(wrapped) {
175
+ super(`Value \`${wrapped}\` is an invalid ERC-8010 wrapped signature.`);
176
+ Object.defineProperty(this, "name", {
177
+ enumerable: true,
178
+ configurable: true,
179
+ writable: true,
180
+ value: 'SignatureErc8010.InvalidWrappedSignatureError'
181
+ });
182
+ }
183
+ }
184
+ //# sourceMappingURL=SignatureErc8010.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SignatureErc8010.js","sourceRoot":"","sources":["../../erc8010/SignatureErc8010.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Utility functions for working with [ERC-8010 wrapped signatures](https://eips.ethereum.org/EIPS/eip-8010#specification).
3
+ *
4
+ * @example
5
+ * ```ts twoslash
6
+ * import { Authorization, Secp256k1, PersonalMessage } from 'ox'
7
+ * import { SignatureErc8010 } from 'ox/erc8010' // [!code focus]
8
+ *
9
+ * const authorization = Authorization.from({
10
+ * address: '0x1234567890abcdef1234567890abcdef12345678',
11
+ * chainId: 1,
12
+ * nonce: 69n,
13
+ * })
14
+ *
15
+ * const authorizationSignature = Secp256k1.sign({
16
+ * payload: Authorization.getSignPayload(authorization),
17
+ * privateKey: '0x...',
18
+ * })
19
+ *
20
+ * const authorizationSigned = Authorization.from(authorization, {
21
+ * signature: authorizationSignature,
22
+ * })
23
+ *
24
+ * const signature = Secp256k1.sign({
25
+ * payload: PersonalMessage.getSignPayload('0xdeadbeef'),
26
+ * privateKey: '0x...',
27
+ * })
28
+ *
29
+ * const wrapped = SignatureErc8010.wrap({ // [!code focus]
30
+ * authorization: authorizationSigned, // [!code focus]
31
+ * data: '0xcafebabe', // [!code focus]
32
+ * signature, // [!code focus]
33
+ * }) // [!code focus]
34
+ * // @log: '0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041fa78c5905fb0b9d6066ef531f962a62bc6ef0d5eb59ecb134056d206f75aaed7780926ff2601a935c2c79707d9e1799948c9f19dcdde1e090e903b19a07923d01c000000000000000000000000000000000000000000000000000000000000008010801080108010801080108010801080108010801080108010801080108010'
35
+ * ```
36
+ *
37
+ * @category ERC-8010
38
+ */
39
+ export * as SignatureErc8010 from './SignatureErc8010.js';
40
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../erc8010/index.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAA"}
@@ -1,6 +1,8 @@
1
1
  // @ts-nocheck
2
2
  /** Used by api-extractor for docgen. https://github.com/microsoft/rushstack/issues/3557 */
3
+ // biome-ignore assist/source/organizeImports: _
3
4
  export * from './index.js';
4
5
  export * from './erc4337/index.js';
5
6
  export * from './erc6492/index.js';
7
+ export * from './erc8010/index.js';
6
8
  //# sourceMappingURL=index.docs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.docs.js","sourceRoot":"","sources":["../index.docs.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,2FAA2F;AAC3F,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.docs.js","sourceRoot":"","sources":["../index.docs.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,2FAA2F;AAC3F,gDAAgD;AAChD,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA"}