viem 2.55.19 → 2.56.1
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.
- package/CHANGELOG.md +63 -0
- package/_cjs/chains/definitions/berachainBepolia.js +1 -1
- package/_cjs/errors/version.js +1 -1
- package/_cjs/errors/version.js.map +1 -1
- package/_cjs/tempo/Abis.js +4851 -2166
- package/_cjs/tempo/Abis.js.map +1 -1
- package/_cjs/tempo/Addresses.js +31 -1
- package/_cjs/tempo/Addresses.js.map +1 -1
- package/_cjs/tempo/Decorator.js +3 -2
- package/_cjs/tempo/Decorator.js.map +1 -1
- package/_cjs/tempo/Selectors.js +197 -61
- package/_cjs/tempo/Selectors.js.map +1 -1
- package/_cjs/tempo/Storage.js +6 -6
- package/_cjs/tempo/Storage.js.map +1 -1
- package/_cjs/tempo/Transport.js +21 -0
- package/_cjs/tempo/Transport.js.map +1 -1
- package/_cjs/tempo/Zone.js +51 -0
- package/_cjs/tempo/Zone.js.map +1 -0
- package/_cjs/tempo/actions/earn/deployment.js +59 -21
- package/_cjs/tempo/actions/earn/deployment.js.map +1 -1
- package/_cjs/tempo/actions/earn.js +2 -3
- package/_cjs/tempo/actions/earn.js.map +1 -1
- package/_cjs/tempo/actions/zone.js +65 -28
- package/_cjs/tempo/actions/zone.js.map +1 -1
- package/_cjs/tempo/index.js +3 -3
- package/_cjs/tempo/index.js.map +1 -1
- package/_esm/chains/definitions/berachainBepolia.js +1 -1
- package/_esm/errors/version.js +1 -1
- package/_esm/errors/version.js.map +1 -1
- package/_esm/tempo/Abis.js +5419 -2732
- package/_esm/tempo/Abis.js.map +1 -1
- package/_esm/tempo/Addresses.js +36 -0
- package/_esm/tempo/Addresses.js.map +1 -1
- package/_esm/tempo/Decorator.js +3 -2
- package/_esm/tempo/Decorator.js.map +1 -1
- package/_esm/tempo/Selectors.js +197 -61
- package/_esm/tempo/Selectors.js.map +1 -1
- package/_esm/tempo/Storage.js +7 -7
- package/_esm/tempo/Storage.js.map +1 -1
- package/_esm/tempo/Transport.js +37 -0
- package/_esm/tempo/Transport.js.map +1 -1
- package/_esm/tempo/Zone.js +48 -0
- package/_esm/tempo/Zone.js.map +1 -0
- package/_esm/tempo/actions/earn/deployment.js +66 -25
- package/_esm/tempo/actions/earn/deployment.js.map +1 -1
- package/_esm/tempo/actions/earn.js +2 -3
- package/_esm/tempo/actions/earn.js.map +1 -1
- package/_esm/tempo/actions/zone.js +111 -66
- package/_esm/tempo/actions/zone.js.map +1 -1
- package/_esm/tempo/index.js +2 -2
- package/_esm/tempo/index.js.map +1 -1
- package/_types/chains/definitions/berachainBepolia.d.ts +1 -1
- package/_types/errors/version.d.ts +1 -1
- package/_types/errors/version.d.ts.map +1 -1
- package/_types/tempo/Abis.d.ts +31049 -6004
- package/_types/tempo/Abis.d.ts.map +1 -1
- package/_types/tempo/Addresses.d.ts +11 -0
- package/_types/tempo/Addresses.d.ts.map +1 -1
- package/_types/tempo/Decorator.d.ts +30 -22
- package/_types/tempo/Decorator.d.ts.map +1 -1
- package/_types/tempo/Selectors.d.ts +196 -60
- package/_types/tempo/Selectors.d.ts.map +1 -1
- package/_types/tempo/Storage.d.ts +1 -1
- package/_types/tempo/Storage.d.ts.map +1 -1
- package/_types/tempo/Transport.d.ts +24 -0
- package/_types/tempo/Transport.d.ts.map +1 -1
- package/_types/tempo/Zone.d.ts +6824 -0
- package/_types/tempo/Zone.d.ts.map +1 -0
- package/_types/tempo/actions/channel.d.ts +72 -0
- package/_types/tempo/actions/channel.d.ts.map +1 -1
- package/_types/tempo/actions/dex.d.ts +260 -0
- package/_types/tempo/actions/dex.d.ts.map +1 -1
- package/_types/tempo/actions/earn/deployment.d.ts +86 -278
- package/_types/tempo/actions/earn/deployment.d.ts.map +1 -1
- package/_types/tempo/actions/earn.d.ts +540 -16
- package/_types/tempo/actions/earn.d.ts.map +1 -1
- package/_types/tempo/actions/policy.d.ts +108 -0
- package/_types/tempo/actions/policy.d.ts.map +1 -1
- package/_types/tempo/actions/receivePolicy.d.ts +27 -0
- package/_types/tempo/actions/receivePolicy.d.ts.map +1 -1
- package/_types/tempo/actions/zone.d.ts +165 -82
- package/_types/tempo/actions/zone.d.ts.map +1 -1
- package/_types/tempo/index.d.ts +8 -2
- package/_types/tempo/index.d.ts.map +1 -1
- package/chains/definitions/berachainBepolia.ts +1 -1
- package/errors/version.ts +1 -1
- package/package.json +1 -6
- package/tempo/Abis.ts +5408 -2710
- package/tempo/Addresses.ts +40 -0
- package/tempo/Decorator.ts +39 -28
- package/tempo/Selectors.ts +218 -71
- package/tempo/Storage.ts +5 -8
- package/tempo/Transport.ts +57 -0
- package/tempo/Zone.ts +60 -0
- package/tempo/actions/earn/deployment.ts +74 -30
- package/tempo/actions/earn.ts +2 -3
- package/tempo/actions/zone.ts +188 -84
- package/tempo/index.ts +19 -6
- package/_cjs/tempo/zones/Abis.js +0 -213
- package/_cjs/tempo/zones/Abis.js.map +0 -1
- package/_cjs/tempo/zones/Addresses.js +0 -17
- package/_cjs/tempo/zones/Addresses.js.map +0 -1
- package/_cjs/tempo/zones/index.js +0 -13
- package/_cjs/tempo/zones/index.js.map +0 -1
- package/_cjs/tempo/zones/transport.js +0 -24
- package/_cjs/tempo/zones/transport.js.map +0 -1
- package/_cjs/tempo/zones/zone.js +0 -82
- package/_cjs/tempo/zones/zone.js.map +0 -1
- package/_esm/tempo/zones/Abis.js +0 -210
- package/_esm/tempo/zones/Abis.js.map +0 -1
- package/_esm/tempo/zones/Addresses.js +0 -14
- package/_esm/tempo/zones/Addresses.js.map +0 -1
- package/_esm/tempo/zones/index.js +0 -6
- package/_esm/tempo/zones/index.js.map +0 -1
- package/_esm/tempo/zones/transport.js +0 -39
- package/_esm/tempo/zones/transport.js.map +0 -1
- package/_esm/tempo/zones/zone.js +0 -78
- package/_esm/tempo/zones/zone.js.map +0 -1
- package/_types/tempo/zones/Abis.d.ts +0 -383
- package/_types/tempo/zones/Abis.d.ts.map +0 -1
- package/_types/tempo/zones/Addresses.d.ts +0 -13
- package/_types/tempo/zones/Addresses.d.ts.map +0 -1
- package/_types/tempo/zones/index.d.ts +0 -5
- package/_types/tempo/zones/index.d.ts.map +0 -1
- package/_types/tempo/zones/transport.d.ts +0 -26
- package/_types/tempo/zones/transport.d.ts.map +0 -1
- package/_types/tempo/zones/zone.d.ts +0 -3176
- package/_types/tempo/zones/zone.d.ts.map +0 -1
- package/tempo/zones/Abis.ts +0 -211
- package/tempo/zones/Addresses.ts +0 -15
- package/tempo/zones/index.ts +0 -10
- package/tempo/zones/package.json +0 -6
- package/tempo/zones/transport.ts +0 -58
- package/tempo/zones/zone.ts +0 -113
package/tempo/Zone.ts
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { Chain } from '../types/chain.js'
|
|
2
|
+
import { defineChain } from '../utils/chain/defineChain.js'
|
|
3
|
+
import { chainConfig } from './chainConfig.js'
|
|
4
|
+
|
|
5
|
+
/** Defines a Tempo Zone chain. */
|
|
6
|
+
export function from<const config extends from.Parameters>(config: config) {
|
|
7
|
+
const chain = {
|
|
8
|
+
...chainConfig,
|
|
9
|
+
nativeCurrency: {
|
|
10
|
+
name: 'USD',
|
|
11
|
+
symbol: 'USD',
|
|
12
|
+
decimals: 6,
|
|
13
|
+
},
|
|
14
|
+
rpcUrls: { default: { http: [] as string[] } },
|
|
15
|
+
supportsTransactionReplacementDetection: false,
|
|
16
|
+
...config,
|
|
17
|
+
}
|
|
18
|
+
return defineChain(chain)
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export declare namespace from {
|
|
22
|
+
type Parameters = Pick<Chain, 'id' | 'name'> &
|
|
23
|
+
Partial<Omit<Chain, 'id' | 'name' | 'sourceId'>> & {
|
|
24
|
+
sourceId: number
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export const a = /*#__PURE__*/ from({
|
|
29
|
+
id: 4_217_000_006,
|
|
30
|
+
name: 'Zone A',
|
|
31
|
+
rpcUrls: {
|
|
32
|
+
default: {
|
|
33
|
+
http: ['https://rpc-zone-a.testnet.tempo.xyz'],
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
sourceId: 42_431,
|
|
37
|
+
})
|
|
38
|
+
|
|
39
|
+
export const b = /*#__PURE__*/ from({
|
|
40
|
+
id: 4_217_000_007,
|
|
41
|
+
name: 'Zone B',
|
|
42
|
+
rpcUrls: {
|
|
43
|
+
default: {
|
|
44
|
+
http: ['https://rpc-zone-b.testnet.tempo.xyz'],
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
sourceId: 42_431,
|
|
48
|
+
})
|
|
49
|
+
|
|
50
|
+
export const internal = /*#__PURE__*/ from({
|
|
51
|
+
id: 421_700_001,
|
|
52
|
+
name: 'Internal Zone',
|
|
53
|
+
sourceId: 4_217, // tempo mainnet
|
|
54
|
+
})
|
|
55
|
+
|
|
56
|
+
export const internalTestnet = /*#__PURE__*/ from({
|
|
57
|
+
id: 1_424_310_003,
|
|
58
|
+
name: 'Internal Testnet Zone',
|
|
59
|
+
sourceId: 42_431, // tempo testnet
|
|
60
|
+
})
|
|
@@ -38,6 +38,32 @@ import {
|
|
|
38
38
|
} from '../../internal/utils.js'
|
|
39
39
|
import type { TransactionReceipt } from '../../Transaction.js'
|
|
40
40
|
|
|
41
|
+
const engineBindingAbi = [
|
|
42
|
+
{
|
|
43
|
+
type: 'function',
|
|
44
|
+
name: 'initializeEarnVault',
|
|
45
|
+
inputs: [
|
|
46
|
+
{ name: 'earnVault_', type: 'address' },
|
|
47
|
+
{ name: 'finalOwner_', type: 'address' },
|
|
48
|
+
],
|
|
49
|
+
outputs: [],
|
|
50
|
+
stateMutability: 'nonpayable',
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
type: 'function',
|
|
54
|
+
name: 'initializeEarnVault',
|
|
55
|
+
inputs: [{ name: 'earnVault_', type: 'address' }],
|
|
56
|
+
outputs: [],
|
|
57
|
+
stateMutability: 'nonpayable',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
type: 'event',
|
|
61
|
+
name: 'EarnVaultInitialized',
|
|
62
|
+
inputs: [{ name: 'earnVault', type: 'address', indexed: true }],
|
|
63
|
+
anonymous: false,
|
|
64
|
+
},
|
|
65
|
+
] as const
|
|
66
|
+
|
|
41
67
|
/** @experimental Factory addresses for one reviewed Tempo Earn release. */
|
|
42
68
|
export type EarnFactoryAddresses = {
|
|
43
69
|
/** `ERC4626EngineFactory` address. */
|
|
@@ -629,7 +655,7 @@ export namespace createStackSync {
|
|
|
629
655
|
}
|
|
630
656
|
|
|
631
657
|
/**
|
|
632
|
-
* Permanently binds an
|
|
658
|
+
* Permanently binds an engine to its EarnVault.
|
|
633
659
|
*
|
|
634
660
|
* @experimental
|
|
635
661
|
*
|
|
@@ -645,8 +671,9 @@ export namespace createStackSync {
|
|
|
645
671
|
* chain: tempoModerato,
|
|
646
672
|
* transport: http(),
|
|
647
673
|
* })
|
|
648
|
-
* const hash = await Actions.earn.
|
|
674
|
+
* const hash = await Actions.earn.bindEngine(client, {
|
|
649
675
|
* engine: '0x...',
|
|
676
|
+
* finalOwner: '0x...',
|
|
650
677
|
* vault: '0x...',
|
|
651
678
|
* })
|
|
652
679
|
* ```
|
|
@@ -655,20 +682,22 @@ export namespace createStackSync {
|
|
|
655
682
|
* @param parameters - Parameters.
|
|
656
683
|
* @returns The transaction hash.
|
|
657
684
|
*/
|
|
658
|
-
export async function
|
|
685
|
+
export async function bindEngine<
|
|
659
686
|
chain extends Chain | undefined,
|
|
660
687
|
account extends Account | undefined,
|
|
661
688
|
>(
|
|
662
689
|
client: Client<Transport, chain, account>,
|
|
663
|
-
parameters:
|
|
664
|
-
): Promise<
|
|
665
|
-
return
|
|
690
|
+
parameters: bindEngine.Parameters<chain, account>,
|
|
691
|
+
): Promise<bindEngine.ReturnValue> {
|
|
692
|
+
return bindEngine.inner(writeContract, client, parameters)
|
|
666
693
|
}
|
|
667
694
|
|
|
668
|
-
export namespace
|
|
695
|
+
export namespace bindEngine {
|
|
669
696
|
export type Args = {
|
|
670
|
-
/**
|
|
697
|
+
/** Engine address. */
|
|
671
698
|
engine: Address
|
|
699
|
+
/** Address that will own the initialized engine. Omit to retain the current owner. */
|
|
700
|
+
finalOwner?: Address | undefined
|
|
672
701
|
/** Factory-created EarnVault address. */
|
|
673
702
|
vault: Address
|
|
674
703
|
}
|
|
@@ -690,15 +719,15 @@ export namespace bindErc4626Engine {
|
|
|
690
719
|
client: Client<Transport, chain, account>,
|
|
691
720
|
parameters: Parameters<chain, account>,
|
|
692
721
|
): Promise<ReturnType<action>> {
|
|
693
|
-
const { engine, vault, ...rest } = parameters
|
|
722
|
+
const { engine, finalOwner, vault, ...rest } = parameters
|
|
694
723
|
return (await action(client, {
|
|
695
724
|
...rest,
|
|
696
|
-
...
|
|
725
|
+
...bindEngine.call({ engine, finalOwner, vault }),
|
|
697
726
|
} as never)) as never
|
|
698
727
|
}
|
|
699
728
|
|
|
700
729
|
/**
|
|
701
|
-
* Defines a call to `
|
|
730
|
+
* Defines a call to `initializeEarnVault` on an Earn engine.
|
|
702
731
|
*
|
|
703
732
|
* Can be passed as a parameter to:
|
|
704
733
|
* - [`estimateContractGas`](https://viem.sh/docs/contract/estimateContractGas): estimate the gas cost of the call
|
|
@@ -714,8 +743,9 @@ export namespace bindErc4626Engine {
|
|
|
714
743
|
* const client = createClient({ chain: tempoModerato, transport: http() })
|
|
715
744
|
* .extend(walletActions)
|
|
716
745
|
* await client.sendTransaction({
|
|
717
|
-
* calls: [Actions.earn.
|
|
746
|
+
* calls: [Actions.earn.bindEngine.call({
|
|
718
747
|
* engine: '0x...',
|
|
748
|
+
* finalOwner: '0x...',
|
|
719
749
|
* vault: '0x...',
|
|
720
750
|
* })],
|
|
721
751
|
* })
|
|
@@ -725,11 +755,19 @@ export namespace bindErc4626Engine {
|
|
|
725
755
|
* @returns The call.
|
|
726
756
|
*/
|
|
727
757
|
export function call(args: Args) {
|
|
758
|
+
const { engine, finalOwner, vault } = args
|
|
759
|
+
if (finalOwner)
|
|
760
|
+
return defineCall({
|
|
761
|
+
address: engine,
|
|
762
|
+
abi: engineBindingAbi,
|
|
763
|
+
functionName: 'initializeEarnVault',
|
|
764
|
+
args: [vault, finalOwner],
|
|
765
|
+
})
|
|
728
766
|
return defineCall({
|
|
729
|
-
address:
|
|
730
|
-
abi:
|
|
767
|
+
address: engine,
|
|
768
|
+
abi: engineBindingAbi,
|
|
731
769
|
functionName: 'initializeEarnVault',
|
|
732
|
-
args: [
|
|
770
|
+
args: [vault],
|
|
733
771
|
})
|
|
734
772
|
}
|
|
735
773
|
|
|
@@ -742,7 +780,7 @@ export namespace bindErc4626Engine {
|
|
|
742
780
|
*/
|
|
743
781
|
export function extractEvent(logs: Log[], parameters: { engine: Address }) {
|
|
744
782
|
const [log] = parseEventLogs({
|
|
745
|
-
abi:
|
|
783
|
+
abi: engineBindingAbi,
|
|
746
784
|
eventName: 'EarnVaultInitialized',
|
|
747
785
|
logs: logs.filter((log) =>
|
|
748
786
|
isAddressEqual(log.address, parameters.engine),
|
|
@@ -755,7 +793,7 @@ export namespace bindErc4626Engine {
|
|
|
755
793
|
}
|
|
756
794
|
|
|
757
795
|
/**
|
|
758
|
-
* Binds an
|
|
796
|
+
* Binds an engine and waits for confirmation.
|
|
759
797
|
*
|
|
760
798
|
* @experimental
|
|
761
799
|
*
|
|
@@ -771,8 +809,9 @@ export namespace bindErc4626Engine {
|
|
|
771
809
|
* chain: tempoModerato,
|
|
772
810
|
* transport: http(),
|
|
773
811
|
* })
|
|
774
|
-
* const result = await Actions.earn.
|
|
812
|
+
* const result = await Actions.earn.bindEngineSync(client, {
|
|
775
813
|
* engine: '0x...',
|
|
814
|
+
* finalOwner: '0x...',
|
|
776
815
|
* vault: '0x...',
|
|
777
816
|
* })
|
|
778
817
|
* ```
|
|
@@ -781,31 +820,31 @@ export namespace bindErc4626Engine {
|
|
|
781
820
|
* @param parameters - Parameters.
|
|
782
821
|
* @returns The receipt and bound addresses.
|
|
783
822
|
*/
|
|
784
|
-
export async function
|
|
823
|
+
export async function bindEngineSync<
|
|
785
824
|
chain extends Chain | undefined,
|
|
786
825
|
account extends Account | undefined,
|
|
787
826
|
>(
|
|
788
827
|
client: Client<Transport, chain, account>,
|
|
789
|
-
parameters:
|
|
790
|
-
): Promise<
|
|
828
|
+
parameters: bindEngineSync.Parameters<chain, account>,
|
|
829
|
+
): Promise<bindEngineSync.ReturnValue> {
|
|
791
830
|
const { engine, throwOnReceiptRevert = true } = parameters
|
|
792
|
-
const receipt = await
|
|
831
|
+
const receipt = await bindEngine.inner(writeContractSync, client, {
|
|
793
832
|
...parameters,
|
|
794
833
|
throwOnReceiptRevert,
|
|
795
834
|
} as never)
|
|
796
|
-
const { args } =
|
|
835
|
+
const { args } = bindEngine.extractEvent(receipt.logs, { engine })
|
|
797
836
|
return { engine, vault: args.earnVault, receipt }
|
|
798
837
|
}
|
|
799
838
|
|
|
800
|
-
export namespace
|
|
801
|
-
export type Args =
|
|
839
|
+
export namespace bindEngineSync {
|
|
840
|
+
export type Args = bindEngine.Args
|
|
802
841
|
export type Parameters<
|
|
803
842
|
chain extends Chain | undefined = Chain | undefined,
|
|
804
843
|
account extends Account | undefined = Account | undefined,
|
|
805
|
-
> =
|
|
844
|
+
> = bindEngine.Parameters<chain, account> &
|
|
806
845
|
WriteSyncParameters<chain, account>
|
|
807
846
|
export type ReturnValue = {
|
|
808
|
-
/**
|
|
847
|
+
/** Engine address. */
|
|
809
848
|
engine: Address
|
|
810
849
|
/** Transaction receipt. */
|
|
811
850
|
receipt: TransactionReceipt
|
|
@@ -1091,20 +1130,25 @@ export async function deployErc4626StackSync<
|
|
|
1091
1130
|
...writeParameters,
|
|
1092
1131
|
account: bindingAccount,
|
|
1093
1132
|
engine: predictedEngine,
|
|
1133
|
+
finalOwner: owner,
|
|
1094
1134
|
vault,
|
|
1095
1135
|
}
|
|
1096
1136
|
await simulateContract(client, {
|
|
1097
1137
|
...sharedWriteParameters,
|
|
1098
1138
|
account: bindingAccount,
|
|
1099
|
-
...
|
|
1139
|
+
...bindEngine.call({
|
|
1140
|
+
engine: predictedEngine,
|
|
1141
|
+
finalOwner: owner,
|
|
1142
|
+
vault,
|
|
1143
|
+
}),
|
|
1100
1144
|
} as never)
|
|
1101
|
-
const receipt = await
|
|
1145
|
+
const receipt = await bindEngine.inner(
|
|
1102
1146
|
writeContractSync,
|
|
1103
1147
|
client,
|
|
1104
1148
|
bindingParameters as never,
|
|
1105
1149
|
)
|
|
1106
1150
|
receipts.binding = receipt
|
|
1107
|
-
|
|
1151
|
+
bindEngine.extractEvent(receipt.logs, { engine: predictedEngine })
|
|
1108
1152
|
} else if (!isAddressEqual(boundVault, vault)) {
|
|
1109
1153
|
throw new Error(`Engine is already bound to ${boundVault}.`)
|
|
1110
1154
|
}
|
package/tempo/actions/earn.ts
CHANGED
|
@@ -62,7 +62,6 @@ import {
|
|
|
62
62
|
resolveTokenWithDecimals,
|
|
63
63
|
} from '../internal/utils.js'
|
|
64
64
|
import type { TransactionReceipt } from '../Transaction.js'
|
|
65
|
-
import { getPortalAddress } from '../zones/zone.js'
|
|
66
65
|
import * as policyActions from './policy.js'
|
|
67
66
|
import * as tokenActions from './token.js'
|
|
68
67
|
import * as zoneActions from './zone.js'
|
|
@@ -1029,7 +1028,7 @@ export namespace privateDeposit {
|
|
|
1029
1028
|
withdrawalMemo,
|
|
1030
1029
|
zoneId,
|
|
1031
1030
|
} = parameters
|
|
1032
|
-
const portalAddress = portalAddress_ ??
|
|
1031
|
+
const portalAddress = portalAddress_ ?? Addresses.zonePortal(zoneId)
|
|
1033
1032
|
const readParameters = pickReadParameters(parameters)
|
|
1034
1033
|
const [fromBlock, config] = await Promise.all([
|
|
1035
1034
|
getBlockNumber(client, { cacheTime: 0 }),
|
|
@@ -2411,7 +2410,7 @@ export namespace privateRedeem {
|
|
|
2411
2410
|
withdrawalMemo,
|
|
2412
2411
|
zoneId,
|
|
2413
2412
|
} = parameters
|
|
2414
|
-
const portalAddress = portalAddress_ ??
|
|
2413
|
+
const portalAddress = portalAddress_ ?? Addresses.zonePortal(zoneId)
|
|
2415
2414
|
const readParameters = pickReadParameters(parameters)
|
|
2416
2415
|
const [fromBlock, config] = await Promise.all([
|
|
2417
2416
|
getBlockNumber(client, { cacheTime: 0 }),
|