@skate-org/amm-core-v2 2.0.0-beta.0 → 2.0.0-beta.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,59 @@
1
1
  # @skate-org/amm-core-v2
2
2
 
3
+ ## 2.0.0-beta.2 — 2026-05-17
4
+
5
+ SVM-side periphery wired into the deployment catalog. Solana mainnet
6
+ (chain_id 901) goes from "no deployment yet" to LIVE in DEV.
7
+
8
+ - **`deployment/svm.ts` (new):** `SVM_DEPLOYMENT_DEV` table per
9
+ `SvmChain` carrying deploy-wide pubkeys — `periphery_pool` program,
10
+ `action_box` program, `action_box state_v3` PDA, `task_ledger` PDA,
11
+ manager — plus a `SvmDeploymentFor(chain, mode)` accessor that
12
+ mirrors the kernel/periphery `…For(chain, mode)` pattern. Solana
13
+ mainnet (chain_id 901) is populated; Eclipse still empty.
14
+ STAGING / PRODUCTION throw `SdkError("not yet deployed")`.
15
+ - **`SvmPeripheryInfo` extended:** now carries the per-pool PDAs
16
+ (`peripheryPool`, `poolAuthority`, `dust`, `poolToken0Vault`,
17
+ `poolToken1Vault`) plus `manager` so builders can populate
18
+ `accountsStrict({...})` from the catalog without keypair math at
19
+ call time. `tokenProgramId0/1` / `token0/1` / `chain` carry over
20
+ from beta.1. Additive type change (existing fields kept).
21
+ - **`POOL_INFO_Dev.USDC_USDT.peripheryInfo[CHAIN.SOLANA]`
22
+ populated** with the deployed `usdc-usdt-1bps` pool — PDAs and
23
+ vaults verified on-chain 2026-05-15 against the handover repo at
24
+ `/home/phil/works/handover/amm/solana_contracts/skate_amm/
25
+ config/pools.deployment.json`. Same kernel route as Arbitrum
26
+ periphery — Solana joins as an additional periphery for the same
27
+ kernel pool.
28
+ - **Retrieval helpers** now report SOLANA alongside ARBITRUM:
29
+ `getSupportedChains("DEV")` returns `[CHAIN.SOLANA, CHAIN.ARBITRUM]`,
30
+ `findTokensBySymbol("USDC")` finds both the Arbitrum USDC ERC-20 and
31
+ the Solana USDC mint. Unit tests updated accordingly.
32
+ - **`svmBytes32Base58ToEvmAddress(value)` (new export)** in
33
+ `adapter/skate.ts`. Composes `bytes32ToEvmAddress(base58ToBytes32(...))`
34
+ for the common case of decoding an SVM-stored EVM address
35
+ (`kernel_pool`, `kernel_factory`) back to its 0x-prefixed lowercase
36
+ form. Used by `@skate-org/amm-svm-v2`'s `readPeripheryPool`.
37
+
38
+ ## 2.0.0-beta.1 — 2026-05-07
39
+
40
+ Two new token-lookup helpers in `deployment/aggregated/retrieval.ts`:
41
+
42
+ - **`findTokensBySymbol(symbol, chainIds?, mode?)`** — search the
43
+ deployment catalog for tokens with a given symbol, optionally
44
+ filtered to specific chains. Symbol comparison is case-insensitive;
45
+ results are deduped by `(chainId, address)`. Pass `chainIds` as
46
+ `undefined` (or omit) to search every supported chain.
47
+ - **`getTokenSymbol(address, chainId, mode?)`** — reverse lookup;
48
+ returns the token symbol at `(address, chainId)`, or `null` if no
49
+ supported token matches. Address comparison is case-insensitive.
50
+
51
+ Both functions reuse the existing `getSupportedTokens` /
52
+ `getSupportedChains` accessors so they automatically pick up new pools
53
+ as the deployment table grows. 12 new unit tests covering case-
54
+ insensitive matching, dedup behavior, mixed-valid/invalid `chainIds`,
55
+ and unsupported-chain returns.
56
+
3
57
  ## 2.0.0-beta.0 — 2026-05-07
4
58
 
5
59
  First **beta**. Promoted under the `beta` dist-tag; `latest` stays at
@@ -5,6 +5,21 @@ export declare function hexToBase58(hexString: `0x${string}`): string;
5
5
  export declare function bytes32ToBase58(hexStr: string): string;
6
6
  export declare function evmAddressToBytes32(address: string): `0x${string}`;
7
7
  export declare function bytes32ToEvmAddress(bytes32: string): `0x${string}`;
8
+ /**
9
+ * Decode the canonical SVM-side encoding of an EVM address back to its
10
+ * 0x-prefixed lowercase EVM form.
11
+ *
12
+ * SVM periphery contracts store cross-VM addresses (kernel pool, kernel
13
+ * factory, etc.) as base58 of the address left-padded to bytes32 — the
14
+ * "bytes32-base58" form produced at deploy time by
15
+ * `evmAddressToBytes32Base58`. SDK readers reverse it: base58-decode to
16
+ * 32 bytes, then truncate to the trailing 20-byte EVM address.
17
+ *
18
+ * Composition of two existing primitives, named for the common case so
19
+ * readers don't reinvent it. Any reader pulling an EVM address out of an
20
+ * SVM Anchor account should call this.
21
+ */
22
+ export declare function svmBytes32Base58ToEvmAddress(value: string): `0x${string}`;
8
23
  export declare function toBase58(buffer: Buffer): string;
9
24
  export declare function bufferFromBase58(base58String: string): Buffer;
10
25
  export declare function toBytes32Address(rawAddress: string, vmType: VM): `0x${string}`;
@@ -1 +1 @@
1
- {"version":3,"file":"skate.d.ts","sourceRoot":"","sources":["../../src/adapter/skate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAE9B,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,MAAM,EAAE,CAMhE;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,MAAM,EAAE,CAG5D;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,KAAK,MAAM,EAAE,GAAG,MAAM,CAE5D;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAMtD;AAmBD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,MAAM,EAAE,CAKlE;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,MAAM,EAAE,CAIlE;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,KAAK,MAAM,EAAE,CAc9E;AAED,wBAAgB,kBAAkB,CAAC,cAAc,EAAE,KAAK,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,CAWpF"}
1
+ {"version":3,"file":"skate.d.ts","sourceRoot":"","sources":["../../src/adapter/skate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAE9B,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,MAAM,EAAE,CAMhE;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,MAAM,EAAE,CAG5D;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,KAAK,MAAM,EAAE,GAAG,MAAM,CAE5D;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAMtD;AAmBD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,MAAM,EAAE,CAKlE;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,MAAM,EAAE,CAIlE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,MAAM,EAAE,CAEzE;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,KAAK,MAAM,EAAE,CAc9E;AAED,wBAAgB,kBAAkB,CAAC,cAAc,EAAE,KAAK,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,CAWpF"}
@@ -0,0 +1,5 @@
1
+ import { EnvMode } from "../types";
2
+ /** Shared "not yet deployed" guard for STAGING / PRODUCTION accessors.
3
+ * `surface` distinguishes which side is missing (kernel / periphery / SVM). */
4
+ export declare function notDeployed(scope: string, mode: Exclude<EnvMode, "DEV">, surface?: string): never;
5
+ //# sourceMappingURL=_notDeployed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_notDeployed.d.ts","sourceRoot":"","sources":["../../src/deployment/_notDeployed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGnC;gFACgF;AAChF,wBAAgB,WAAW,CACzB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,EAC7B,OAAO,SAAW,GACjB,KAAK,CAKP"}
@@ -11,9 +11,17 @@ export interface EvmPeripheryInfo {
11
11
  chain: string;
12
12
  }
13
13
  export interface SvmPeripheryInfo {
14
- /** Periphery pool PDA (base58 string). */
14
+ /** Periphery pool state PDA (base58). */
15
15
  peripheryPool: string;
16
- /** Periphery manager program address (base58 string). */
16
+ /** Pool-authority PDA (base58, signer-only — has no on-chain account). */
17
+ poolAuthority: string;
18
+ /** Dust PDA (base58). */
19
+ dust: string;
20
+ /** Pool token0 vault PDA (base58). */
21
+ poolToken0Vault: string;
22
+ /** Pool token1 vault PDA (base58). */
23
+ poolToken1Vault: string;
24
+ /** Periphery manager pubkey (base58). Matches the deploy-wide manager. */
17
25
  manager: string;
18
26
  /** SPL or Token-2022 program id for token0. */
19
27
  tokenProgramId0: string;
@@ -1 +1 @@
1
- {"version":3,"file":"_type_.d.ts","sourceRoot":"","sources":["../../../src/deployment/aggregated/_type_.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE/C,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAE7B,MAAM,WAAW,gBAAgB;IAC/B,0DAA0D;IAC1D,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,KAAK,CAAC;IACd,MAAM,EAAE,KAAK,CAAC;IACd,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,0CAA0C;IAC1C,aAAa,EAAE,MAAM,CAAC;IACtB,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,eAAe,EAAE,MAAM,CAAC;IACxB,+CAA+C;IAC/C,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,KAAK,CAAC;IACd,MAAM,EAAE,KAAK,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,yDAAyD;IACzD,MAAM,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,qDAAqD;IACrD,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,KAAK,CAAC;IACd,MAAM,EAAE,KAAK,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,KAAK,IAC1C,CAAC,SAAS,QAAQ,GAAG,gBAAgB,GACnC,CAAC,SAAS,QAAQ,GAAG,gBAAgB,GACrC,CAAC,SAAS,QAAQ,GAAG,gBAAgB,GACrC,KAAK,CAAC;AAEV,MAAM,MAAM,YAAY,GAAG,MAAM,CAC/B,OAAO,EACP;IACE,UAAU,EAAE,KAAK,MAAM,EAAE,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE;SAAG,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC;KAAE,CAAC;CACvD,CACF,CAAC"}
1
+ {"version":3,"file":"_type_.d.ts","sourceRoot":"","sources":["../../../src/deployment/aggregated/_type_.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE/C,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAE7B,MAAM,WAAW,gBAAgB;IAC/B,0DAA0D;IAC1D,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,KAAK,CAAC;IACd,MAAM,EAAE,KAAK,CAAC;IACd,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,yCAAyC;IACzC,aAAa,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1E,aAAa,EAAE,MAAM,CAAC;IACtB,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,eAAe,EAAE,MAAM,CAAC;IACxB,sCAAsC;IACtC,eAAe,EAAE,MAAM,CAAC;IACxB,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,eAAe,EAAE,MAAM,CAAC;IACxB,+CAA+C;IAC/C,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,KAAK,CAAC;IACd,MAAM,EAAE,KAAK,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,yDAAyD;IACzD,MAAM,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,qDAAqD;IACrD,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,KAAK,CAAC;IACd,MAAM,EAAE,KAAK,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,KAAK,IAC1C,CAAC,SAAS,QAAQ,GAAG,gBAAgB,GACnC,CAAC,SAAS,QAAQ,GAAG,gBAAgB,GACrC,CAAC,SAAS,QAAQ,GAAG,gBAAgB,GACrC,KAAK,CAAC;AAEV,MAAM,MAAM,YAAY,GAAG,MAAM,CAC/B,OAAO,EACP;IACE,UAAU,EAAE,KAAK,MAAM,EAAE,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE;SAAG,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC;KAAE,CAAC;CACvD,CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../../src/deployment/aggregated/dev.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,eAAO,MAAM,aAAa,EAAE,YA2B3B,CAAC"}
1
+ {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../../src/deployment/aggregated/dev.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,eAAO,MAAM,aAAa,EAAE,YAoD3B,CAAC"}
@@ -19,4 +19,23 @@ export declare function getOtherTokensInPairs(chainId: CHAIN, tokenAddress: stri
19
19
  export declare function kernelPoolToPoolKey(kernelPool: `0x${string}`, mode?: EnvMode): PoolKey;
20
20
  export declare function getPeripheryDetailsByKernelPoolAndChainId<K extends CHAIN>(kernelPool: `0x${string}`, chainId: K, mode?: EnvMode): PeripheryInfoFor<K> | null;
21
21
  export declare function getPeripheryDetailsByKernelPoolAndChainId(kernelPool: `0x${string}`, chainId: number, mode?: EnvMode): PeripheryInfoFor<CHAIN> | null;
22
+ /**
23
+ * Find tokens by case-insensitive symbol across one or more chains.
24
+ *
25
+ * Same token symbol on different chains has different addresses, so the
26
+ * return type is `Array<Token>` (not a single record) — the same
27
+ * `(symbol, chainId)` pair always points at one token, but
28
+ * `(symbol, chainIds[])` may produce many.
29
+ *
30
+ * Pass `chainIds` undefined / omitted to search every supported chain.
31
+ */
32
+ export declare function findTokensBySymbol(symbol: string, chainIds?: readonly CHAIN[], mode?: EnvMode): Token[];
33
+ /**
34
+ * Reverse lookup: return the symbol of the token at `address` on
35
+ * `chainId`, or `null` if no supported token matches that pair.
36
+ *
37
+ * Address comparison is case-insensitive; symbol is returned in the
38
+ * casing the deployment table records.
39
+ */
40
+ export declare function getTokenSymbol(address: string, chainId: CHAIN, mode?: EnvMode): string | null;
22
41
  //# sourceMappingURL=retrieval.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"retrieval.d.ts","sourceRoot":"","sources":["../../../src/deployment/aggregated/retrieval.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAIjD,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEjD,wBAAgB,cAAc,CAAC,IAAI,GAAE,OAAsB,GAAG,YAAY,CAMzE;AAED,wBAAgB,cAAc,CAAC,IAAI,GAAE,OAAsB,GAAG,OAAO,EAAE,CAEtE;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,GAAE,OAAsB;;;;;iCAsBhE,CAAC;SApBX;AAED,wBAAgB,kBAAkB,CAAC,IAAI,GAAE,OAAsB,GAAG,KAAK,EAAE,CASxE;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,KAAK,EACd,IAAI,GAAE,OAAsB,GAC3B,CAAC,SAAS,GAAG;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,EAAE,CActC;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,GAAE,OAAsB,GAAG,KAAK,EAAE,CAcxF;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,KAAK,EACd,YAAY,EAAE,MAAM,EACpB,IAAI,GAAE,OAAsB,GAC3B,KAAK,EAAE,CAeT;AAED,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,KAAK,MAAM,EAAE,EAAE,IAAI,GAAE,OAAsB,GAAG,OAAO,CAOpG;AAED,wBAAgB,yCAAyC,CAAC,CAAC,SAAS,KAAK,EACvE,UAAU,EAAE,KAAK,MAAM,EAAE,EACzB,OAAO,EAAE,CAAC,EACV,IAAI,CAAC,EAAE,OAAO,GACb,gBAAgB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAC9B,wBAAgB,yCAAyC,CACvD,UAAU,EAAE,KAAK,MAAM,EAAE,EACzB,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,OAAO,GACb,gBAAgB,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC"}
1
+ {"version":3,"file":"retrieval.d.ts","sourceRoot":"","sources":["../../../src/deployment/aggregated/retrieval.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAIjD,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEjD,wBAAgB,cAAc,CAAC,IAAI,GAAE,OAAsB,GAAG,YAAY,CAMzE;AAED,wBAAgB,cAAc,CAAC,IAAI,GAAE,OAAsB,GAAG,OAAO,EAAE,CAEtE;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,GAAE,OAAsB;;;;;iCAkClB,CAAA;SAhCxD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,GAAE,OAAsB,GAAG,KAAK,EAAE,CASxE;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,KAAK,EACd,IAAI,GAAE,OAAsB,GAC3B,CAAC,SAAS,GAAG;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,EAAE,CActC;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,GAAE,OAAsB,GAAG,KAAK,EAAE,CAcxF;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,KAAK,EACd,YAAY,EAAE,MAAM,EACpB,IAAI,GAAE,OAAsB,GAC3B,KAAK,EAAE,CAeT;AAED,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,KAAK,MAAM,EAAE,EAAE,IAAI,GAAE,OAAsB,GAAG,OAAO,CAOpG;AAED,wBAAgB,yCAAyC,CAAC,CAAC,SAAS,KAAK,EACvE,UAAU,EAAE,KAAK,MAAM,EAAE,EACzB,OAAO,EAAE,CAAC,EACV,IAAI,CAAC,EAAE,OAAO,GACb,gBAAgB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAC9B,wBAAgB,yCAAyC,CACvD,UAAU,EAAE,KAAK,MAAM,EAAE,EACzB,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,OAAO,GACb,gBAAgB,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;AAWlC;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,SAAS,KAAK,EAAE,EAC3B,IAAI,GAAE,OAAsB,GAC3B,KAAK,EAAE,CAeT;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,KAAK,EACd,IAAI,GAAE,OAAsB,GAC3B,MAAM,GAAG,IAAI,CAMf"}
@@ -1,4 +1,5 @@
1
1
  export * from "./kernel";
2
2
  export * from "./periphery";
3
+ export * from "./svm";
3
4
  export * from "./aggregated";
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/deployment/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/deployment/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,OAAO,CAAC;AACtB,cAAc,cAAc,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"kernel.d.ts","sourceRoot":"","sources":["../../src/deployment/kernel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAkBjC,eAAO,MAAM,yBAAyB,+CAA+C,CAAC;AAoBtF,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAIjE,CAAC;AAEF,uDAAuD;AACvD,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,KAAK,CAEhD;AASD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,OAAO,GAAG,KAAK,MAAM,EAAE,CAGjE;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,OAAO,GAAG,KAAK,MAAM,EAAE,CAGtE"}
1
+ {"version":3,"file":"kernel.d.ts","sourceRoot":"","sources":["../../src/deployment/kernel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAkBjC,eAAO,MAAM,yBAAyB,+CAA+C,CAAC;AAoBtF,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAIjE,CAAC;AAEF,uDAAuD;AACvD,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,KAAK,CAEhD;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,OAAO,GAAG,KAAK,MAAM,EAAE,CAGjE;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,OAAO,GAAG,KAAK,MAAM,EAAE,CAGtE"}
@@ -1 +1 @@
1
- {"version":3,"file":"periphery.d.ts","sourceRoot":"","sources":["../../src/deployment/periphery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAO1C,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,KAAK,MAAM,EAAE,CAAC;IACzB,gBAAgB,EAAE,KAAK,MAAM,EAAE,CAAC;IAChC,SAAS,EAAE,KAAK,MAAM,EAAE,CAAC;IACzB,YAAY,EAAE,KAAK,MAAM,EAAE,CAAC;IAC5B,gBAAgB,EAAE,KAAK,MAAM,EAAE,CAAC;IAChC,oBAAoB,EAAE,KAAK,MAAM,EAAE,CAAC;IACpC,YAAY,EAAE,KAAK,MAAM,EAAE,CAAC;IAC5B,iBAAiB,EAAE,KAAK,MAAM,EAAE,CAAC;CAClC;AAED,eAAO,MAAM,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAWrE,CAAC;AASF;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,OAAO,GACZ,mBAAmB,GAAG,IAAI,CAG5B;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,OAAO,GACZ,KAAK,MAAM,EAAE,GAAG,IAAI,CAEtB;AAED,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,OAAO,GACZ,KAAK,MAAM,EAAE,GAAG,IAAI,CAEtB;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,OAAO,GACZ,KAAK,MAAM,EAAE,GAAG,IAAI,CAEtB;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,OAAO,GACZ,KAAK,MAAM,EAAE,GAAG,IAAI,CAEtB"}
1
+ {"version":3,"file":"periphery.d.ts","sourceRoot":"","sources":["../../src/deployment/periphery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAO1C,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,KAAK,MAAM,EAAE,CAAC;IACzB,gBAAgB,EAAE,KAAK,MAAM,EAAE,CAAC;IAChC,SAAS,EAAE,KAAK,MAAM,EAAE,CAAC;IACzB,YAAY,EAAE,KAAK,MAAM,EAAE,CAAC;IAC5B,gBAAgB,EAAE,KAAK,MAAM,EAAE,CAAC;IAChC,oBAAoB,EAAE,KAAK,MAAM,EAAE,CAAC;IACpC,YAAY,EAAE,KAAK,MAAM,EAAE,CAAC;IAC5B,iBAAiB,EAAE,KAAK,MAAM,EAAE,CAAC;CAClC;AAED,eAAO,MAAM,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAWrE,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,OAAO,GACZ,mBAAmB,GAAG,IAAI,CAG5B;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,OAAO,GACZ,KAAK,MAAM,EAAE,GAAG,IAAI,CAEtB;AAED,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,OAAO,GACZ,KAAK,MAAM,EAAE,GAAG,IAAI,CAEtB;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,OAAO,GACZ,KAAK,MAAM,EAAE,GAAG,IAAI,CAEtB;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,OAAO,GACZ,KAAK,MAAM,EAAE,GAAG,IAAI,CAEtB"}
@@ -0,0 +1,19 @@
1
+ import { EnvMode } from "../types";
2
+ import type { SvmChain } from "../types/chain-vm";
3
+ /** Deploy-wide SVM pubkeys. Per-pool addresses live in
4
+ * `POOL_INFO_<mode>[<key>].peripheryInfo[<chain>]`. */
5
+ export interface SvmDeployment {
6
+ peripheryPoolProgramId: string;
7
+ actionBoxProgramId: string;
8
+ /** `action_box state_v3` PDA. One per deploy. */
9
+ actionBoxStateV3: string;
10
+ /** `task_ledger` PDA (replay bitmap). */
11
+ taskLedger: string;
12
+ /** Manager pubkey — also serves as gateway and task-ledger admin. */
13
+ manager: string;
14
+ }
15
+ export declare const SVM_DEPLOYMENT_DEV: Partial<Record<SvmChain, SvmDeployment>>;
16
+ /** Returns `null` for an unregistered SvmChain in DEV; throws for
17
+ * STAGING/PRODUCTION (no SVM deploy yet). */
18
+ export declare function SvmDeploymentFor(chain: SvmChain, mode: EnvMode): SvmDeployment | null;
19
+ //# sourceMappingURL=svm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svm.d.ts","sourceRoot":"","sources":["../../src/deployment/svm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAGlD;wDACwD;AACxD,MAAM,WAAW,aAAa;IAC5B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iDAAiD;IACjD,gBAAgB,EAAE,MAAM,CAAC;IACzB,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,kBAAkB,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC,CAQvE,CAAC;AAEF;8CAC8C;AAC9C,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,QAAQ,EACf,IAAI,EAAE,OAAO,GACZ,aAAa,GAAG,IAAI,CAGtB"}
package/dist/index.cjs CHANGED
@@ -42,8 +42,10 @@ __export(index_exports, {
42
42
  PeripheryDeploymentFor: () => PeripheryDeploymentFor,
43
43
  PeripheryEventEmitterAddress: () => PeripheryEventEmitterAddress,
44
44
  PeripheryManagerAddress: () => PeripheryManagerAddress,
45
+ SVM_DEPLOYMENT_DEV: () => SVM_DEPLOYMENT_DEV,
45
46
  SdkError: () => SdkError,
46
47
  SkateGatewayAddress: () => SkateGatewayAddress,
48
+ SvmDeploymentFor: () => SvmDeploymentFor,
47
49
  TaskPhase: () => TaskPhase,
48
50
  VM: () => VM,
49
51
  addDelta: () => addDelta,
@@ -53,6 +55,7 @@ __export(index_exports, {
53
55
  bytes32ToBase58: () => bytes32ToBase58,
54
56
  bytes32ToEvmAddress: () => bytes32ToEvmAddress,
55
57
  evmAddressToBytes32: () => evmAddressToBytes32,
58
+ findTokensBySymbol: () => findTokensBySymbol,
56
59
  fromBytes32Address: () => fromBytes32Address,
57
60
  getAllPoolInfo: () => getAllPoolInfo,
58
61
  getAllPoolKeys: () => getAllPoolKeys,
@@ -73,12 +76,14 @@ __export(index_exports, {
73
76
  getSupportedPairs: () => getSupportedPairs,
74
77
  getSupportedTokens: () => getSupportedTokens,
75
78
  getTickAtSqrtRatio: () => getTickAtSqrtRatio,
79
+ getTokenSymbol: () => getTokenSymbol,
76
80
  hexToBase58: () => hexToBase58,
77
81
  kernelPoolToPoolKey: () => kernelPoolToPoolKey,
78
82
  mulDiv: () => mulDiv,
79
83
  mulDivRoundingUp: () => mulDivRoundingUp,
80
84
  normalizeMode: () => normalizeMode,
81
85
  skateAdapter: () => skate_exports,
86
+ svmBytes32Base58ToEvmAddress: () => svmBytes32Base58ToEvmAddress,
82
87
  toBase58: () => toBase58,
83
88
  toBytes32Address: () => toBytes32Address,
84
89
  vmTypeFromChain: () => vmTypeFromChain
@@ -228,6 +233,13 @@ var SdkError = class extends Error {
228
233
  }
229
234
  };
230
235
 
236
+ // src/deployment/_notDeployed.ts
237
+ function notDeployed(scope, mode, surface = "SDK v2") {
238
+ throw new SdkError(
239
+ `${scope}: ${surface} is not yet deployed to ${mode}; only DEV is wired today. Either pass mode="DEV" or wait for the v2 service to ship to ${mode}.`
240
+ );
241
+ }
242
+
231
243
  // src/deployment/kernel.ts
232
244
  var KERNEL_MANAGER_Dev = "0x17B7207837e8884f7f687f1f4057751BDAf70a01";
233
245
  var KERNEL_EVENT_EMITTER_Dev = "0x8989b3ecb65f250ab7A0DC03589B0Cc8b8b04b81";
@@ -240,11 +252,6 @@ var KERNEL_CHAIN_BY_MODE = {
240
252
  function KernelChain(mode) {
241
253
  return KERNEL_CHAIN_BY_MODE[mode];
242
254
  }
243
- function notDeployed(scope, mode) {
244
- throw new SdkError(
245
- `${scope}: SDK v2 is not yet deployed to ${mode}; only DEV is wired today. Either pass mode="DEV" or wait for the v2 service to ship to ${mode}.`
246
- );
247
- }
248
255
  function KernelManagerAddress(mode) {
249
256
  if (mode === "DEV") return KERNEL_MANAGER_Dev;
250
257
  return notDeployed("KernelManagerAddress", mode);
@@ -267,13 +274,8 @@ var PERIPHERY_DEV = {
267
274
  peripheryPoolImpl: "0x803ed7fa8934D4fe51A276cA02506b585cdb3eb4"
268
275
  }
269
276
  };
270
- function notDeployed2(scope, mode) {
271
- throw new SdkError(
272
- `${scope}: SDK v2 is not yet deployed to ${mode}; only DEV is wired today. Either pass mode="DEV" or wait for the v2 service to ship to ${mode}.`
273
- );
274
- }
275
277
  function PeripheryDeploymentFor(chain, mode) {
276
- if (mode !== "DEV") return notDeployed2("PeripheryDeploymentFor", mode);
278
+ if (mode !== "DEV") return notDeployed("PeripheryDeploymentFor", mode);
277
279
  return PERIPHERY_DEV[chain] ?? null;
278
280
  }
279
281
  function PeripheryManagerAddress(chain, mode) {
@@ -289,6 +291,21 @@ function ActionBoxAddress(chain, mode) {
289
291
  return PeripheryDeploymentFor(chain, mode)?.actionBox ?? null;
290
292
  }
291
293
 
294
+ // src/deployment/svm.ts
295
+ var SVM_DEPLOYMENT_DEV = {
296
+ [901 /* SOLANA */]: {
297
+ peripheryPoolProgramId: "SPPZB76TV1oSusXvGYQDK7KZGyLBmWbr8CuzNcjb98y",
298
+ actionBoxProgramId: "SABZ2zgj8G8jD7V9s6hSMkT1fvNyMavssNigmmTMqa2",
299
+ actionBoxStateV3: "G1qLtJDbkY4JBtD7sdjqGN8GJ38QRDbzp2fWEYY4apAh",
300
+ taskLedger: "SkTLHEfy9X3PeMVa2dEYysg9Ccq8KtNG7zYNTAaB1NV",
301
+ manager: "SGMSTk5t2gmiHKQjtb9XV6qviasgD5UKTsVMHLGCSZA"
302
+ }
303
+ };
304
+ function SvmDeploymentFor(chain, mode) {
305
+ if (mode !== "DEV") return notDeployed("SvmDeploymentFor", mode, "SDK v2 SVM side");
306
+ return SVM_DEPLOYMENT_DEV[chain] ?? null;
307
+ }
308
+
292
309
  // src/deployment/aggregated/dev.ts
293
310
  var POOL_INFO_Dev = {
294
311
  USDC_USDT: {
@@ -314,6 +331,31 @@ var POOL_INFO_Dev = {
314
331
  },
315
332
  address: "0x0433CCB013a590eA4231aAC9ddf05bb753c14127",
316
333
  chain: "ARBITRUM"
334
+ },
335
+ [901 /* SOLANA */]: {
336
+ token0: {
337
+ address: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
338
+ symbol: "USDC",
339
+ isNative: false,
340
+ decimal: 6,
341
+ chainId: 901 /* SOLANA */
342
+ },
343
+ token1: {
344
+ address: "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
345
+ symbol: "USDT",
346
+ isNative: false,
347
+ decimal: 6,
348
+ chainId: 901 /* SOLANA */
349
+ },
350
+ peripheryPool: "G2j8vLu3ryzUqPYpknpBcBLDcFiiRmXtB7z9Dpg9dVxe",
351
+ poolAuthority: "2Mvbo1TrsVeqyjQwNcdDDGjFNbwMk4tV8oD2TN2fV4Nw",
352
+ dust: "4m1AdUZvYJUSMTYpFH8df1JrgHTqUeKA3Xf7DapB4VcX",
353
+ poolToken0Vault: "BihGfVYmaT4KpiHiBLwH2ad9Q2ybYVHS2Bd3hQtzg486",
354
+ poolToken1Vault: "3DW4k4ims6dFB2cXBk5m1uAfh1zowuj9CzBbF4jm1FRh",
355
+ manager: "SGMSTk5t2gmiHKQjtb9XV6qviasgD5UKTsVMHLGCSZA",
356
+ tokenProgramId0: "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
357
+ tokenProgramId1: "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
358
+ chain: "SOLANA"
317
359
  }
318
360
  }
319
361
  }
@@ -411,6 +453,29 @@ function getPeripheryDetailsByKernelPoolAndChainId(kernelPool, chainId, mode = "
411
453
  const info = getAllPoolInfo(mode);
412
454
  return info[poolKey]?.peripheryInfo[chainId] ?? null;
413
455
  }
456
+ function findTokensBySymbol(symbol, chainIds, mode = "PRODUCTION") {
457
+ const normalized = symbol.toLowerCase();
458
+ const chains = chainIds ?? getSupportedChains(mode);
459
+ const out = [];
460
+ const seen = /* @__PURE__ */ new Set();
461
+ for (const chainId of chains) {
462
+ for (const t of getSupportedTokens(chainId, mode)) {
463
+ if (t.symbol.toLowerCase() !== normalized) continue;
464
+ const key = `${t.chainId}:${t.address.toLowerCase()}`;
465
+ if (seen.has(key)) continue;
466
+ seen.add(key);
467
+ out.push(t);
468
+ }
469
+ }
470
+ return out;
471
+ }
472
+ function getTokenSymbol(address, chainId, mode = "PRODUCTION") {
473
+ const needle = address.toLowerCase();
474
+ for (const t of getSupportedTokens(chainId, mode)) {
475
+ if (t.address.toLowerCase() === needle) return t.symbol;
476
+ }
477
+ return null;
478
+ }
414
479
 
415
480
  // src/adapter/skate.ts
416
481
  var skate_exports = {};
@@ -423,6 +488,7 @@ __export(skate_exports, {
423
488
  evmAddressToBytes32: () => evmAddressToBytes32,
424
489
  fromBytes32Address: () => fromBytes32Address,
425
490
  hexToBase58: () => hexToBase58,
491
+ svmBytes32Base58ToEvmAddress: () => svmBytes32Base58ToEvmAddress,
426
492
  toBase58: () => toBase58,
427
493
  toBytes32Address: () => toBytes32Address
428
494
  });
@@ -557,6 +623,9 @@ function bytes32ToEvmAddress(bytes32) {
557
623
  const addressBigInt = userBigInt & BigInt("0xffffffffffffffffffffffffffffffffffffffff");
558
624
  return `0x${addressBigInt.toString(16).padStart(40, "0")}`.toLowerCase();
559
625
  }
626
+ function svmBytes32Base58ToEvmAddress(value) {
627
+ return bytes32ToEvmAddress(base58ToBytes32(value));
628
+ }
560
629
  function toBase58(buffer) {
561
630
  return bs58Encode(buffer);
562
631
  }
@@ -960,8 +1029,10 @@ function addDelta(x, y) {
960
1029
  PeripheryDeploymentFor,
961
1030
  PeripheryEventEmitterAddress,
962
1031
  PeripheryManagerAddress,
1032
+ SVM_DEPLOYMENT_DEV,
963
1033
  SdkError,
964
1034
  SkateGatewayAddress,
1035
+ SvmDeploymentFor,
965
1036
  TaskPhase,
966
1037
  VM,
967
1038
  addDelta,
@@ -971,6 +1042,7 @@ function addDelta(x, y) {
971
1042
  bytes32ToBase58,
972
1043
  bytes32ToEvmAddress,
973
1044
  evmAddressToBytes32,
1045
+ findTokensBySymbol,
974
1046
  fromBytes32Address,
975
1047
  getAllPoolInfo,
976
1048
  getAllPoolKeys,
@@ -991,12 +1063,14 @@ function addDelta(x, y) {
991
1063
  getSupportedPairs,
992
1064
  getSupportedTokens,
993
1065
  getTickAtSqrtRatio,
1066
+ getTokenSymbol,
994
1067
  hexToBase58,
995
1068
  kernelPoolToPoolKey,
996
1069
  mulDiv,
997
1070
  mulDivRoundingUp,
998
1071
  normalizeMode,
999
1072
  skateAdapter,
1073
+ svmBytes32Base58ToEvmAddress,
1000
1074
  toBase58,
1001
1075
  toBytes32Address,
1002
1076
  vmTypeFromChain