viem 2.56.1 → 2.56.3
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 +18 -0
- package/_cjs/actions/wallet/sendTransaction.js +9 -1
- package/_cjs/actions/wallet/sendTransaction.js.map +1 -1
- package/_cjs/actions/wallet/sendTransactionSync.js +9 -1
- package/_cjs/actions/wallet/sendTransactionSync.js.map +1 -1
- package/_cjs/errors/version.js +1 -1
- package/_cjs/tempo/Abis.js +11 -23
- package/_cjs/tempo/Abis.js.map +1 -1
- package/_cjs/tempo/Account.js +66 -61
- package/_cjs/tempo/Account.js.map +1 -1
- package/_cjs/tempo/Client.js +10 -2
- package/_cjs/tempo/Client.js.map +1 -1
- package/_cjs/tempo/Decorator.js +2 -1
- package/_cjs/tempo/Decorator.js.map +1 -1
- package/_cjs/tempo/Formatters.js +29 -9
- package/_cjs/tempo/Formatters.js.map +1 -1
- package/_cjs/tempo/Multisig.js +1093 -0
- package/_cjs/tempo/Multisig.js.map +1 -0
- package/_cjs/tempo/Selectors.js +2 -3
- package/_cjs/tempo/Selectors.js.map +1 -1
- package/_cjs/tempo/{Storage.js → Store.js} +34 -9
- package/_cjs/tempo/Store.js.map +1 -0
- package/_cjs/tempo/Transaction.js +15 -30
- package/_cjs/tempo/Transaction.js.map +1 -1
- package/_cjs/tempo/Transport.js +51 -5
- package/_cjs/tempo/Transport.js.map +1 -1
- package/_cjs/tempo/Zone.js.map +1 -1
- package/_cjs/tempo/actions/accessKey.js +102 -8
- package/_cjs/tempo/actions/accessKey.js.map +1 -1
- package/_cjs/tempo/actions/amm.js +6 -0
- package/_cjs/tempo/actions/amm.js.map +1 -1
- package/_cjs/tempo/actions/channel.js +12 -0
- package/_cjs/tempo/actions/channel.js.map +1 -1
- package/_cjs/tempo/actions/dex.js +10 -0
- package/_cjs/tempo/actions/dex.js.map +1 -1
- package/_cjs/tempo/actions/earn/deployment.js +13 -1
- package/_cjs/tempo/actions/earn/deployment.js.map +1 -1
- package/_cjs/tempo/actions/earn.js +17 -0
- package/_cjs/tempo/actions/earn.js.map +1 -1
- package/_cjs/tempo/actions/fee.js +4 -0
- package/_cjs/tempo/actions/fee.js.map +1 -1
- package/_cjs/tempo/actions/multisig.js +86 -28
- package/_cjs/tempo/actions/multisig.js.map +1 -1
- package/_cjs/tempo/actions/policy.js +8 -0
- package/_cjs/tempo/actions/policy.js.map +1 -1
- package/_cjs/tempo/actions/receivePolicy.js +6 -0
- package/_cjs/tempo/actions/receivePolicy.js.map +1 -1
- package/_cjs/tempo/actions/reward.js +4 -0
- package/_cjs/tempo/actions/reward.js.map +1 -1
- package/_cjs/tempo/actions/token.js +32 -0
- package/_cjs/tempo/actions/token.js.map +1 -1
- package/_cjs/tempo/actions/virtualAddress.js +2 -0
- package/_cjs/tempo/actions/virtualAddress.js.map +1 -1
- package/_cjs/tempo/actions/zone.js +7 -5
- package/_cjs/tempo/actions/zone.js.map +1 -1
- package/_cjs/tempo/chainConfig.js +180 -69
- package/_cjs/tempo/chainConfig.js.map +1 -1
- package/_cjs/tempo/index.js +5 -2
- package/_cjs/tempo/index.js.map +1 -1
- package/_cjs/tempo/internal/utils.js +2 -1
- package/_cjs/tempo/internal/utils.js.map +1 -1
- package/_cjs/tempo/multisig/Config.js +80 -0
- package/_cjs/tempo/multisig/Config.js.map +1 -0
- package/_cjs/tempo/multisig/Operation.js +163 -0
- package/_cjs/tempo/multisig/Operation.js.map +1 -0
- package/_cjs/utils/encoding/fromHex.js +1 -1
- package/_cjs/utils/encoding/fromHex.js.map +1 -1
- package/_cjs/utils/hash/isHash.js +1 -2
- package/_cjs/utils/hash/isHash.js.map +1 -1
- package/_esm/actions/wallet/sendTransaction.js +9 -1
- package/_esm/actions/wallet/sendTransaction.js.map +1 -1
- package/_esm/actions/wallet/sendTransactionSync.js +9 -1
- package/_esm/actions/wallet/sendTransactionSync.js.map +1 -1
- package/_esm/errors/version.js +1 -1
- package/_esm/tempo/Abis.js +11 -23
- package/_esm/tempo/Abis.js.map +1 -1
- package/_esm/tempo/Account.js +66 -61
- package/_esm/tempo/Account.js.map +1 -1
- package/_esm/tempo/Client.js +22 -3
- package/_esm/tempo/Client.js.map +1 -1
- package/_esm/tempo/Decorator.js +2 -1
- package/_esm/tempo/Decorator.js.map +1 -1
- package/_esm/tempo/Formatters.js +32 -11
- package/_esm/tempo/Formatters.js.map +1 -1
- package/_esm/tempo/Multisig.js +1126 -0
- package/_esm/tempo/Multisig.js.map +1 -0
- package/_esm/tempo/Selectors.js +2 -3
- package/_esm/tempo/Selectors.js.map +1 -1
- package/_esm/tempo/{Storage.js → Store.js} +37 -26
- package/_esm/tempo/Store.js.map +1 -0
- package/_esm/tempo/Transaction.js +16 -31
- package/_esm/tempo/Transaction.js.map +1 -1
- package/_esm/tempo/Transport.js +71 -6
- package/_esm/tempo/Transport.js.map +1 -1
- package/_esm/tempo/Zone.js +1 -2
- package/_esm/tempo/Zone.js.map +1 -1
- package/_esm/tempo/actions/accessKey.js +104 -20
- package/_esm/tempo/actions/accessKey.js.map +1 -1
- package/_esm/tempo/actions/amm.js +6 -0
- package/_esm/tempo/actions/amm.js.map +1 -1
- package/_esm/tempo/actions/channel.js +12 -0
- package/_esm/tempo/actions/channel.js.map +1 -1
- package/_esm/tempo/actions/dex.js +10 -0
- package/_esm/tempo/actions/dex.js.map +1 -1
- package/_esm/tempo/actions/earn/deployment.js +13 -1
- package/_esm/tempo/actions/earn/deployment.js.map +1 -1
- package/_esm/tempo/actions/earn.js +17 -0
- package/_esm/tempo/actions/earn.js.map +1 -1
- package/_esm/tempo/actions/fee.js +4 -0
- package/_esm/tempo/actions/fee.js.map +1 -1
- package/_esm/tempo/actions/multisig.js +129 -63
- package/_esm/tempo/actions/multisig.js.map +1 -1
- package/_esm/tempo/actions/policy.js +8 -0
- package/_esm/tempo/actions/policy.js.map +1 -1
- package/_esm/tempo/actions/receivePolicy.js +6 -0
- package/_esm/tempo/actions/receivePolicy.js.map +1 -1
- package/_esm/tempo/actions/reward.js +4 -0
- package/_esm/tempo/actions/reward.js.map +1 -1
- package/_esm/tempo/actions/token.js +32 -0
- package/_esm/tempo/actions/token.js.map +1 -1
- package/_esm/tempo/actions/virtualAddress.js +2 -0
- package/_esm/tempo/actions/virtualAddress.js.map +1 -1
- package/_esm/tempo/actions/zone.js +8 -6
- package/_esm/tempo/actions/zone.js.map +1 -1
- package/_esm/tempo/chainConfig.js +188 -86
- package/_esm/tempo/chainConfig.js.map +1 -1
- package/_esm/tempo/index.js +5 -3
- package/_esm/tempo/index.js.map +1 -1
- package/_esm/tempo/internal/utils.js +2 -1
- package/_esm/tempo/internal/utils.js.map +1 -1
- package/_esm/tempo/multisig/Config.js +84 -0
- package/_esm/tempo/multisig/Config.js.map +1 -0
- package/_esm/tempo/multisig/Operation.js +170 -0
- package/_esm/tempo/multisig/Operation.js.map +1 -0
- package/_esm/utils/encoding/fromHex.js +1 -1
- package/_esm/utils/encoding/fromHex.js.map +1 -1
- package/_esm/utils/hash/isHash.js +1 -2
- package/_esm/utils/hash/isHash.js.map +1 -1
- package/_types/actions/wallet/sendTransaction.d.ts.map +1 -1
- package/_types/actions/wallet/sendTransactionSync.d.ts.map +1 -1
- package/_types/chains/definitions/tempo.d.ts +72 -92
- package/_types/chains/definitions/tempo.d.ts.map +1 -1
- package/_types/chains/definitions/tempoDevnet.d.ts +72 -92
- package/_types/chains/definitions/tempoDevnet.d.ts.map +1 -1
- package/_types/chains/definitions/tempoLocalnet.d.ts +72 -92
- package/_types/chains/definitions/tempoLocalnet.d.ts.map +1 -1
- package/_types/chains/definitions/tempoModerato.d.ts +72 -92
- package/_types/chains/definitions/tempoModerato.d.ts.map +1 -1
- package/_types/errors/version.d.ts +1 -1
- package/_types/tempo/Abis.d.ts +54 -108
- package/_types/tempo/Abis.d.ts.map +1 -1
- package/_types/tempo/Account.d.ts +47 -20
- package/_types/tempo/Account.d.ts.map +1 -1
- package/_types/tempo/Client.d.ts +23 -1
- package/_types/tempo/Client.d.ts.map +1 -1
- package/_types/tempo/Decorator.d.ts +30 -5
- package/_types/tempo/Decorator.d.ts.map +1 -1
- package/_types/tempo/Formatters.d.ts.map +1 -1
- package/_types/tempo/Multisig.d.ts +37 -0
- package/_types/tempo/Multisig.d.ts.map +1 -0
- package/_types/tempo/Selectors.d.ts +2 -3
- package/_types/tempo/Selectors.d.ts.map +1 -1
- package/_types/tempo/Store.d.ts +62 -0
- package/_types/tempo/Store.d.ts.map +1 -0
- package/_types/tempo/Transaction.d.ts +12 -31
- package/_types/tempo/Transaction.d.ts.map +1 -1
- package/_types/tempo/Transport.d.ts +37 -5
- package/_types/tempo/Transport.d.ts.map +1 -1
- package/_types/tempo/Zone.d.ts +35 -6799
- package/_types/tempo/Zone.d.ts.map +1 -1
- package/_types/tempo/actions/accessKey.d.ts +38 -8
- package/_types/tempo/actions/accessKey.d.ts.map +1 -1
- package/_types/tempo/actions/amm.d.ts.map +1 -1
- package/_types/tempo/actions/channel.d.ts.map +1 -1
- package/_types/tempo/actions/dex.d.ts.map +1 -1
- package/_types/tempo/actions/earn/deployment.d.ts +3 -3
- package/_types/tempo/actions/earn/deployment.d.ts.map +1 -1
- package/_types/tempo/actions/earn.d.ts.map +1 -1
- package/_types/tempo/actions/fee.d.ts.map +1 -1
- package/_types/tempo/actions/multisig.d.ts +139 -136
- package/_types/tempo/actions/multisig.d.ts.map +1 -1
- package/_types/tempo/actions/policy.d.ts.map +1 -1
- package/_types/tempo/actions/receivePolicy.d.ts.map +1 -1
- package/_types/tempo/actions/reward.d.ts.map +1 -1
- package/_types/tempo/actions/token.d.ts.map +1 -1
- package/_types/tempo/actions/virtualAddress.d.ts.map +1 -1
- package/_types/tempo/actions/zone.d.ts +4 -4
- package/_types/tempo/actions/zone.d.ts.map +1 -1
- package/_types/tempo/chainConfig.d.ts +38 -48
- package/_types/tempo/chainConfig.d.ts.map +1 -1
- package/_types/tempo/index.d.ts +5 -5
- package/_types/tempo/index.d.ts.map +1 -1
- package/_types/tempo/internal/types.d.ts +1 -1
- package/_types/tempo/internal/types.d.ts.map +1 -1
- package/_types/tempo/internal/utils.d.ts +1 -0
- package/_types/tempo/internal/utils.d.ts.map +1 -1
- package/_types/tempo/multisig/Config.d.ts +42 -0
- package/_types/tempo/multisig/Config.d.ts.map +1 -0
- package/_types/tempo/multisig/Operation.d.ts +32 -0
- package/_types/tempo/multisig/Operation.d.ts.map +1 -0
- package/_types/types/chain.d.ts +10 -0
- package/_types/types/chain.d.ts.map +1 -1
- package/_types/utils/hash/isHash.d.ts +1 -2
- package/_types/utils/hash/isHash.d.ts.map +1 -1
- package/actions/wallet/sendTransaction.ts +9 -1
- package/actions/wallet/sendTransactionSync.ts +9 -1
- package/errors/version.ts +1 -1
- package/package.json +2 -2
- package/tempo/Abis.ts +11 -23
- package/tempo/Account.ts +136 -105
- package/tempo/Client.ts +46 -3
- package/tempo/Decorator.ts +40 -8
- package/tempo/Formatters.ts +39 -21
- package/tempo/Multisig.ts +1490 -0
- package/tempo/Selectors.ts +2 -3
- package/tempo/Store.ts +170 -0
- package/tempo/Transaction.ts +39 -64
- package/tempo/Transport.ts +125 -10
- package/tempo/Zone.ts +30 -4
- package/tempo/actions/accessKey.ts +210 -23
- package/tempo/actions/amm.ts +7 -0
- package/tempo/actions/channel.ts +12 -0
- package/tempo/actions/dex.ts +10 -0
- package/tempo/actions/earn/deployment.ts +16 -3
- package/tempo/actions/earn.ts +19 -0
- package/tempo/actions/fee.ts +4 -0
- package/tempo/actions/multisig.ts +192 -94
- package/tempo/actions/policy.ts +8 -0
- package/tempo/actions/receivePolicy.ts +6 -0
- package/tempo/actions/reward.ts +5 -0
- package/tempo/actions/token.ts +33 -0
- package/tempo/actions/virtualAddress.ts +2 -0
- package/tempo/actions/zone.ts +10 -8
- package/tempo/chainConfig.ts +259 -100
- package/tempo/index.ts +5 -4
- package/tempo/internal/types.ts +3 -2
- package/tempo/internal/utils.ts +2 -0
- package/tempo/multisig/Config.ts +131 -0
- package/tempo/multisig/Operation.ts +211 -0
- package/types/chain.ts +14 -0
- package/utils/encoding/fromHex.ts +1 -1
- package/utils/hash/isHash.ts +2 -3
- package/_cjs/tempo/Storage.js.map +0 -1
- package/_cjs/tempo/internal/multisig.js +0 -56
- package/_cjs/tempo/internal/multisig.js.map +0 -1
- package/_esm/tempo/Storage.js.map +0 -1
- package/_esm/tempo/internal/multisig.js +0 -56
- package/_esm/tempo/internal/multisig.js.map +0 -1
- package/_types/tempo/Storage.d.ts +0 -42
- package/_types/tempo/Storage.d.ts.map +0 -1
- package/_types/tempo/internal/multisig.d.ts +0 -13
- package/_types/tempo/internal/multisig.d.ts.map +0 -1
- package/tempo/Storage.ts +0 -115
- package/tempo/internal/multisig.ts +0 -72
package/tempo/Storage.ts
DELETED
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
import type { MaybePromise } from '../types/utils.js'
|
|
2
|
-
|
|
3
|
-
export type Storage = {
|
|
4
|
-
getItem(key: string): MaybePromise<string | null | undefined>
|
|
5
|
-
setItem(key: string, value: string): MaybePromise<void>
|
|
6
|
-
removeItem(key: string): MaybePromise<void>
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Wraps a base storage with an optional key prefix and request
|
|
11
|
-
* deduplication — concurrent `getItem` calls for the same key share
|
|
12
|
-
* a single in-flight promise.
|
|
13
|
-
*
|
|
14
|
-
* @example
|
|
15
|
-
* ```ts
|
|
16
|
-
* import { Storage } from 'viem/tempo'
|
|
17
|
-
*
|
|
18
|
-
* const storage = Storage.from(Storage.memory(), { key: 'tempo' })
|
|
19
|
-
* await storage.setItem('foo', 'bar')
|
|
20
|
-
* // stored under "tempo:foo"
|
|
21
|
-
* ```
|
|
22
|
-
*/
|
|
23
|
-
export function from(storage: Storage, options: from.Options = {}): Storage {
|
|
24
|
-
const { key } = options
|
|
25
|
-
const prefix = key ? `${key}:` : ''
|
|
26
|
-
const inflight = new Map<string, Promise<string | null | undefined>>()
|
|
27
|
-
return {
|
|
28
|
-
getItem(k) {
|
|
29
|
-
const fullKey = `${prefix}${k}`
|
|
30
|
-
const existing = inflight.get(fullKey)
|
|
31
|
-
if (existing) return existing
|
|
32
|
-
const result = Promise.resolve(storage.getItem(fullKey)).finally(() => {
|
|
33
|
-
inflight.delete(fullKey)
|
|
34
|
-
})
|
|
35
|
-
inflight.set(fullKey, result)
|
|
36
|
-
return result
|
|
37
|
-
},
|
|
38
|
-
setItem(k, value) {
|
|
39
|
-
const fullKey = `${prefix}${k}`
|
|
40
|
-
inflight.delete(fullKey)
|
|
41
|
-
return storage.setItem(fullKey, value)
|
|
42
|
-
},
|
|
43
|
-
removeItem(k) {
|
|
44
|
-
const fullKey = `${prefix}${k}`
|
|
45
|
-
inflight.delete(fullKey)
|
|
46
|
-
return storage.removeItem(fullKey)
|
|
47
|
-
},
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
export declare namespace from {
|
|
52
|
-
type Options = {
|
|
53
|
-
/** Key prefix prepended to all storage keys. */
|
|
54
|
-
key?: string | undefined
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
/** Creates an in-memory storage backed by a `Map`. */
|
|
59
|
-
export function memory(options: from.Options = {}): Storage {
|
|
60
|
-
const store = new Map<string, string>()
|
|
61
|
-
return from(
|
|
62
|
-
{
|
|
63
|
-
getItem(key) {
|
|
64
|
-
return store.get(key) ?? null
|
|
65
|
-
},
|
|
66
|
-
setItem(key, value) {
|
|
67
|
-
store.set(key, value)
|
|
68
|
-
},
|
|
69
|
-
removeItem(key) {
|
|
70
|
-
store.delete(key)
|
|
71
|
-
},
|
|
72
|
-
},
|
|
73
|
-
options,
|
|
74
|
-
)
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
/** Creates a storage backed by `globalThis.sessionStorage`. */
|
|
78
|
-
export function session(options: from.Options = {}): Storage {
|
|
79
|
-
return from(
|
|
80
|
-
{
|
|
81
|
-
getItem(key) {
|
|
82
|
-
return globalThis.sessionStorage.getItem(key)
|
|
83
|
-
},
|
|
84
|
-
setItem(key, value) {
|
|
85
|
-
try {
|
|
86
|
-
globalThis.sessionStorage.setItem(key, value)
|
|
87
|
-
} catch {}
|
|
88
|
-
},
|
|
89
|
-
removeItem(key) {
|
|
90
|
-
globalThis.sessionStorage.removeItem(key)
|
|
91
|
-
},
|
|
92
|
-
},
|
|
93
|
-
options,
|
|
94
|
-
)
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
let _default: Storage | undefined
|
|
98
|
-
|
|
99
|
-
/**
|
|
100
|
-
* Returns the default storage for the current environment.
|
|
101
|
-
*
|
|
102
|
-
* Returns a singleton so that the zone transport and actions share the
|
|
103
|
-
* same instance without requiring explicit plumbing.
|
|
104
|
-
*
|
|
105
|
-
* - Browser: `sessionStorage`
|
|
106
|
-
* - Server/unsupported: in-memory `Map`-based storage
|
|
107
|
-
*/
|
|
108
|
-
export function defaultStorage(): Storage {
|
|
109
|
-
if (_default) return _default
|
|
110
|
-
try {
|
|
111
|
-
if (globalThis.sessionStorage) _default = session()
|
|
112
|
-
} catch {}
|
|
113
|
-
_default ??= memory()
|
|
114
|
-
return _default
|
|
115
|
-
}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import type { Address } from 'abitype'
|
|
2
|
-
import type { MultisigConfig } from 'ox/tempo'
|
|
3
|
-
import { BaseError } from '../../errors/base.js'
|
|
4
|
-
import { ContractFunctionRevertedError } from '../../errors/contract.js'
|
|
5
|
-
import type { MultisigAccount } from '../Account.js'
|
|
6
|
-
import type { MultisigOwnerState } from '../Transaction.js'
|
|
7
|
-
|
|
8
|
-
/** @internal */
|
|
9
|
-
export function createMultisigStateResolver(
|
|
10
|
-
getConfig: (account: Address) => Promise<{
|
|
11
|
-
owners: MultisigConfig.Config['owners']
|
|
12
|
-
threshold: MultisigConfig.Config['threshold']
|
|
13
|
-
version: bigint
|
|
14
|
-
}>,
|
|
15
|
-
) {
|
|
16
|
-
// Cache only within one operation because config versions can change between requests.
|
|
17
|
-
const cache = new Map<Address, Promise<MultisigOwnerState>>()
|
|
18
|
-
return (account: Address): Promise<MultisigOwnerState> => {
|
|
19
|
-
const address = account.toLowerCase() as Address
|
|
20
|
-
const cached = cache.get(address)
|
|
21
|
-
if (cached) return cached
|
|
22
|
-
|
|
23
|
-
const state = (async () => {
|
|
24
|
-
try {
|
|
25
|
-
const config = await getConfig(account)
|
|
26
|
-
return {
|
|
27
|
-
account,
|
|
28
|
-
config: { owners: config.owners, threshold: config.threshold },
|
|
29
|
-
initialized: true,
|
|
30
|
-
version: config.version,
|
|
31
|
-
}
|
|
32
|
-
} catch (error) {
|
|
33
|
-
const cause =
|
|
34
|
-
error instanceof BaseError
|
|
35
|
-
? error.walk(
|
|
36
|
-
(error) => error instanceof ContractFunctionRevertedError,
|
|
37
|
-
)
|
|
38
|
-
: undefined
|
|
39
|
-
if (
|
|
40
|
-
!(cause instanceof ContractFunctionRevertedError) ||
|
|
41
|
-
cause.data?.errorName !== 'NotMultisigAccount'
|
|
42
|
-
)
|
|
43
|
-
throw error
|
|
44
|
-
return { account, initialized: false, version: 0n }
|
|
45
|
-
}
|
|
46
|
-
})()
|
|
47
|
-
cache.set(address, state)
|
|
48
|
-
return state
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
/** @internal */
|
|
53
|
-
export function getMultisigOwnerStates(
|
|
54
|
-
account: MultisigAccount,
|
|
55
|
-
getState: (account: Address) => Promise<MultisigOwnerState>,
|
|
56
|
-
): Promise<readonly MultisigOwnerState[]> {
|
|
57
|
-
// Collect locally first so all config reads start in one latency wave.
|
|
58
|
-
const owners: MultisigAccount[] = [account]
|
|
59
|
-
const seen = new Set<Address>([account.address.toLowerCase() as Address])
|
|
60
|
-
const visit = (account: MultisigAccount) => {
|
|
61
|
-
for (const owner of account.owners) {
|
|
62
|
-
if (owner.source !== 'multisig') continue
|
|
63
|
-
const address = owner.address.toLowerCase() as Address
|
|
64
|
-
if (seen.has(address)) continue
|
|
65
|
-
seen.add(address)
|
|
66
|
-
owners.push(owner as MultisigAccount)
|
|
67
|
-
visit(owner as MultisigAccount)
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
visit(account)
|
|
71
|
-
return Promise.all(owners.map((owner) => getState(owner.address)))
|
|
72
|
-
}
|