viem 2.51.3 → 2.52.2

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 (155) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/_cjs/actions/wallet/prepareTransactionRequest.js.map +1 -1
  3. package/_cjs/chains/definitions/citrate.js +17 -0
  4. package/_cjs/chains/definitions/citrate.js.map +1 -0
  5. package/_cjs/chains/definitions/grav.js +24 -0
  6. package/_cjs/chains/definitions/grav.js.map +1 -0
  7. package/_cjs/chains/definitions/ladyChain.js +22 -0
  8. package/_cjs/chains/definitions/ladyChain.js.map +1 -0
  9. package/_cjs/chains/definitions/tempoModerato.js +1 -0
  10. package/_cjs/chains/definitions/tempoModerato.js.map +1 -1
  11. package/_cjs/chains/definitions/valygoNft.js +37 -0
  12. package/_cjs/chains/definitions/valygoNft.js.map +1 -0
  13. package/_cjs/chains/definitions/valygoSmartchain.js +37 -0
  14. package/_cjs/chains/definitions/valygoSmartchain.js.map +1 -0
  15. package/_cjs/chains/index.js +23 -13
  16. package/_cjs/chains/index.js.map +1 -1
  17. package/_cjs/errors/version.js +1 -1
  18. package/_cjs/tempo/Abis.js +189 -1
  19. package/_cjs/tempo/Abis.js.map +1 -1
  20. package/_cjs/tempo/Account.js +62 -23
  21. package/_cjs/tempo/Account.js.map +1 -1
  22. package/_cjs/tempo/Addresses.js +3 -1
  23. package/_cjs/tempo/Addresses.js.map +1 -1
  24. package/_cjs/tempo/Decorator.js +23 -0
  25. package/_cjs/tempo/Decorator.js.map +1 -1
  26. package/_cjs/tempo/Formatters.js +2 -1
  27. package/_cjs/tempo/Formatters.js.map +1 -1
  28. package/_cjs/tempo/Hardfork.js +3 -0
  29. package/_cjs/tempo/Hardfork.js.map +1 -1
  30. package/_cjs/tempo/Transaction.js +22 -0
  31. package/_cjs/tempo/Transaction.js.map +1 -1
  32. package/_cjs/tempo/actions/accessKey.js +238 -72
  33. package/_cjs/tempo/actions/accessKey.js.map +1 -1
  34. package/_cjs/tempo/actions/index.js +2 -1
  35. package/_cjs/tempo/actions/index.js.map +1 -1
  36. package/_cjs/tempo/actions/receivePolicy.js +363 -0
  37. package/_cjs/tempo/actions/receivePolicy.js.map +1 -0
  38. package/_cjs/tempo/chainConfig.js +10 -0
  39. package/_cjs/tempo/chainConfig.js.map +1 -1
  40. package/_cjs/tempo/index.js +3 -1
  41. package/_cjs/tempo/index.js.map +1 -1
  42. package/_esm/actions/wallet/prepareTransactionRequest.js.map +1 -1
  43. package/_esm/chains/definitions/citrate.js +14 -0
  44. package/_esm/chains/definitions/citrate.js.map +1 -0
  45. package/_esm/chains/definitions/grav.js +21 -0
  46. package/_esm/chains/definitions/grav.js.map +1 -0
  47. package/_esm/chains/definitions/ladyChain.js +19 -0
  48. package/_esm/chains/definitions/ladyChain.js.map +1 -0
  49. package/_esm/chains/definitions/tempoModerato.js +1 -0
  50. package/_esm/chains/definitions/tempoModerato.js.map +1 -1
  51. package/_esm/chains/definitions/valygoNft.js +34 -0
  52. package/_esm/chains/definitions/valygoNft.js.map +1 -0
  53. package/_esm/chains/definitions/valygoSmartchain.js +34 -0
  54. package/_esm/chains/definitions/valygoSmartchain.js.map +1 -0
  55. package/_esm/chains/index.js +5 -0
  56. package/_esm/chains/index.js.map +1 -1
  57. package/_esm/errors/version.js +1 -1
  58. package/_esm/tempo/Abis.js +188 -0
  59. package/_esm/tempo/Abis.js.map +1 -1
  60. package/_esm/tempo/Account.js +116 -24
  61. package/_esm/tempo/Account.js.map +1 -1
  62. package/_esm/tempo/Addresses.js +2 -0
  63. package/_esm/tempo/Addresses.js.map +1 -1
  64. package/_esm/tempo/Decorator.js +23 -0
  65. package/_esm/tempo/Decorator.js.map +1 -1
  66. package/_esm/tempo/Formatters.js +5 -1
  67. package/_esm/tempo/Formatters.js.map +1 -1
  68. package/_esm/tempo/Hardfork.js +3 -0
  69. package/_esm/tempo/Hardfork.js.map +1 -1
  70. package/_esm/tempo/Transaction.js +34 -0
  71. package/_esm/tempo/Transaction.js.map +1 -1
  72. package/_esm/tempo/actions/accessKey.js +562 -128
  73. package/_esm/tempo/actions/accessKey.js.map +1 -1
  74. package/_esm/tempo/actions/index.js +1 -0
  75. package/_esm/tempo/actions/index.js.map +1 -1
  76. package/_esm/tempo/actions/receivePolicy.js +753 -0
  77. package/_esm/tempo/actions/receivePolicy.js.map +1 -0
  78. package/_esm/tempo/chainConfig.js +24 -1
  79. package/_esm/tempo/chainConfig.js.map +1 -1
  80. package/_esm/tempo/index.js +1 -1
  81. package/_esm/tempo/index.js.map +1 -1
  82. package/_types/actions/wallet/prepareTransactionRequest.d.ts +12 -1
  83. package/_types/actions/wallet/prepareTransactionRequest.d.ts.map +1 -1
  84. package/_types/chains/definitions/citrate.d.ts +57 -0
  85. package/_types/chains/definitions/citrate.d.ts.map +1 -0
  86. package/_types/chains/definitions/grav.d.ts +43 -0
  87. package/_types/chains/definitions/grav.d.ts.map +1 -0
  88. package/_types/chains/definitions/ladyChain.d.ts +50 -0
  89. package/_types/chains/definitions/ladyChain.d.ts.map +1 -0
  90. package/_types/chains/definitions/tempo.d.ts +36 -0
  91. package/_types/chains/definitions/tempo.d.ts.map +1 -1
  92. package/_types/chains/definitions/tempoDevnet.d.ts +36 -0
  93. package/_types/chains/definitions/tempoDevnet.d.ts.map +1 -1
  94. package/_types/chains/definitions/tempoLocalnet.d.ts +36 -0
  95. package/_types/chains/definitions/tempoLocalnet.d.ts.map +1 -1
  96. package/_types/chains/definitions/tempoModerato.d.ts +38 -0
  97. package/_types/chains/definitions/tempoModerato.d.ts.map +1 -1
  98. package/_types/chains/definitions/valygoNft.d.ts +48 -0
  99. package/_types/chains/definitions/valygoNft.d.ts.map +1 -0
  100. package/_types/chains/definitions/valygoSmartchain.d.ts +48 -0
  101. package/_types/chains/definitions/valygoSmartchain.d.ts.map +1 -0
  102. package/_types/chains/index.d.ts +5 -0
  103. package/_types/chains/index.d.ts.map +1 -1
  104. package/_types/errors/version.d.ts +1 -1
  105. package/_types/tempo/Abis.d.ts +671 -4
  106. package/_types/tempo/Abis.d.ts.map +1 -1
  107. package/_types/tempo/Account.d.ts +61 -3
  108. package/_types/tempo/Account.d.ts.map +1 -1
  109. package/_types/tempo/Addresses.d.ts +2 -0
  110. package/_types/tempo/Addresses.d.ts.map +1 -1
  111. package/_types/tempo/Decorator.d.ts +501 -0
  112. package/_types/tempo/Decorator.d.ts.map +1 -1
  113. package/_types/tempo/Formatters.d.ts.map +1 -1
  114. package/_types/tempo/Hardfork.d.ts +1 -1
  115. package/_types/tempo/Hardfork.d.ts.map +1 -1
  116. package/_types/tempo/Transaction.d.ts +5 -1
  117. package/_types/tempo/Transaction.d.ts.map +1 -1
  118. package/_types/tempo/actions/accessKey.d.ts +1520 -304
  119. package/_types/tempo/actions/accessKey.d.ts.map +1 -1
  120. package/_types/tempo/actions/dex.d.ts +75 -0
  121. package/_types/tempo/actions/dex.d.ts.map +1 -1
  122. package/_types/tempo/actions/index.d.ts +1 -0
  123. package/_types/tempo/actions/index.d.ts.map +1 -1
  124. package/_types/tempo/actions/policy.d.ts +352 -0
  125. package/_types/tempo/actions/policy.d.ts.map +1 -1
  126. package/_types/tempo/actions/receivePolicy.d.ts +1511 -0
  127. package/_types/tempo/actions/receivePolicy.d.ts.map +1 -0
  128. package/_types/tempo/chainConfig.d.ts +34 -15
  129. package/_types/tempo/chainConfig.d.ts.map +1 -1
  130. package/_types/tempo/index.d.ts +1 -1
  131. package/_types/tempo/index.d.ts.map +1 -1
  132. package/_types/tempo/zones/zone.d.ts +108 -0
  133. package/_types/tempo/zones/zone.d.ts.map +1 -1
  134. package/actions/wallet/prepareTransactionRequest.ts +40 -5
  135. package/chains/definitions/citrate.ts +14 -0
  136. package/chains/definitions/grav.ts +21 -0
  137. package/chains/definitions/ladyChain.ts +19 -0
  138. package/chains/definitions/tempoModerato.ts +1 -0
  139. package/chains/definitions/valygoNft.ts +34 -0
  140. package/chains/definitions/valygoSmartchain.ts +34 -0
  141. package/chains/index.ts +5 -0
  142. package/errors/version.ts +1 -1
  143. package/package.json +3 -4
  144. package/tempo/Abis.ts +189 -0
  145. package/tempo/Account.ts +153 -31
  146. package/tempo/Addresses.ts +2 -0
  147. package/tempo/Decorator.ts +578 -0
  148. package/tempo/Formatters.ts +12 -1
  149. package/tempo/Hardfork.ts +3 -0
  150. package/tempo/Transaction.ts +42 -0
  151. package/tempo/actions/accessKey.ts +1002 -279
  152. package/tempo/actions/index.ts +1 -0
  153. package/tempo/actions/receivePolicy.ts +1266 -0
  154. package/tempo/chainConfig.ts +32 -3
  155. package/tempo/index.ts +2 -0
@@ -1,5 +1,6 @@
1
+ import type { Address } from 'abitype'
1
2
  import * as Hex from 'ox/Hex'
2
- import { SignatureEnvelope, type TokenId } from 'ox/tempo'
3
+ import { MultisigConfig, SignatureEnvelope, type TokenId } from 'ox/tempo'
3
4
  import { getCode } from '../actions/public/getCode.js'
4
5
  import { verifyHash } from '../actions/public/verifyHash.js'
5
6
  import { maxUint256 } from '../constants/number.js'
@@ -12,7 +13,7 @@ import { defineTransactionRequest } from '../utils/formatters/transactionRequest
12
13
  import { getAction } from '../utils/getAction.js'
13
14
  import { keccak256 } from '../utils/hash/keccak256.js'
14
15
  import type { SerializeTransactionFn } from '../utils/transaction/serializeTransaction.js'
15
- import type { Account } from './Account.js'
16
+ import type { Account, MultisigAccount } from './Account.js'
16
17
  import { getMetadata } from './actions/accessKey.js'
17
18
  import * as Formatters from './Formatters.js'
18
19
  import type { Hardfork } from './Hardfork.js'
@@ -42,13 +43,16 @@ export const chainConfig = {
42
43
  prepareTransactionRequest: [
43
44
  async (r, { client, phase }) => {
44
45
  const request = r as Transaction.TransactionRequest & {
45
- account?: Account | undefined
46
+ account?: Account | MultisigAccount | undefined
46
47
  chainId?: number | undefined
47
48
  chain?:
48
49
  | (Chain & {
49
50
  feeToken?: TokenId.TokenIdOrAddress | undefined
50
51
  })
51
52
  | undefined
53
+ from?: Address | undefined
54
+ multisig?: MultisigConfig.Config | undefined
55
+ signatures?: readonly unknown[] | undefined
52
56
  }
53
57
 
54
58
  // FIXME: node estimates gas with secp256k1 dummy sig + null feePayerSignature.
@@ -60,9 +64,34 @@ export const chainConfig = {
60
64
  else if (request.account?.source === 'accessKey')
61
65
  request.gas = (request.gas ?? 0n) + 10_000n
62
66
  }
67
+
63
68
  return request as unknown as typeof r
64
69
  }
65
70
 
71
+ // Native multisig (TIP-1061). The transaction sender is the derived
72
+ // multisig account, not a signing account (owner accounts only contribute
73
+ // approvals later via `signTransaction`). Derive the sender from the
74
+ // config; core fills nonce/gas/fees for it via `request.from`, and the
75
+ // serializer auto-detects bootstrap (`init`) from `nonce == 0`.
76
+ //
77
+ // The config is taken from an explicit `multisig` field, or inferred from
78
+ // a multisig account (so callers can just pass `account` to
79
+ // `prepareTransactionRequest` without also passing `multisig`).
80
+ const multisig =
81
+ request.multisig ??
82
+ (request.account?.source === 'multisig'
83
+ ? (request.account as MultisigAccount).config
84
+ : undefined)
85
+ if (multisig) {
86
+ request.multisig = multisig
87
+ request.from = MultisigConfig.getAddress(multisig)
88
+ // A non-multisig `account` (e.g. the client's default) isn't the sender,
89
+ // so drop it: core then fills nonce/gas/fees for the multisig sender via
90
+ // `request.from`. A multisig account *is* the sender — keep it so the
91
+ // prepared request can be sent without re-passing `account`.
92
+ if (request.account?.source !== 'multisig') delete request.account
93
+ }
94
+
66
95
  if (
67
96
  !request.keyAuthorization &&
68
97
  request.account?.source === 'accessKey'
package/tempo/index.ts CHANGED
@@ -13,7 +13,9 @@ export type {
13
13
  } from 'ox/tempo'
14
14
  export {
15
15
  Channel,
16
+ MultisigConfig,
16
17
  Period,
18
+ ReceivePolicyReceipt,
17
19
  TempoAddress,
18
20
  Tick,
19
21
  TokenId,