@avalabs/svm-module 0.0.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.
- package/LICENSE +9 -0
- package/README.md +9 -0
- package/dist/index.cjs +11 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +61 -0
- package/dist/index.d.ts +61 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/manifest.json +33 -0
- package/package.json +38 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
Copyright (C) 2021, Ava Labs, Inc. All rights reserved.
|
|
2
|
+
|
|
3
|
+
Subject to the limited license below (**”License””), you may not, and you may not permit anyone else to, copy, reproduce, aggregate, republish, download, post, distribute, license, sublicense, reverse engineer, modify, or create derivative works based on this software (collectively, **“Software”**).
|
|
4
|
+
|
|
5
|
+
You are hereby granted a limited, non-exclusive, non-sublicensable and non-transferable license to download and use the Software as-is solely (i) for use in connection with the Avalanche Public Blockchain platform, having a NetworkID of 1 (Mainnet) or 5 (Fuji), and associated blockchains, comprised exclusively of the Avalanche X-Chain, C-Chain, P-Chain and any subnets linked to the P-Chain (**“Avalanche Authorized Platform”**) or (ii) for non-production, testing or research purposes without any commercial application within the Avalanche ecosystem (**“Non-Commercial Use”**); provided that, in each case, you may not use or allow use of the Software (a) in connection with any forks of the Avalanche Authorized Platform, (b) in any manner not operationally connected to the Avalanche Authorized Platform other than for Non-Commercial Use, or (c) to the extent the number of monthly active users or the number of total installs of any software that uses the Software across all versions thereof exceeds 10,000 at any time. You may not modify or alter the Software in any way.
|
|
6
|
+
|
|
7
|
+
You hereby acknowledge and agree to the terms set forth at www.avalabs.org/important-notice.
|
|
8
|
+
|
|
9
|
+
**TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED ON AN “AS IS” BASIS, AND AVA LABS EXPRESSLY DISCLAIMS AND EXCLUDES ALL REPRESENTATIONS, WARRANTIES AND OTHER TERMS AND CONDITIONS, WHETHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION BY OPERATION OF LAW OR BY CUSTOM, STATUTE OR OTHERWISE, AND INCLUDING, BUT NOT LIMITED TO, ANY IMPLIED WARRANTY, TERM, OR CONDITION OF NON-INFRINGEMENT, MERCHANTABILITY, TITLE, OR FITNESS FOR PARTICULAR PURPOSE. YOU USE THE SOFTWARE AT YOUR OWN RISK. AVA LABS EXPRESSLY DISCLAIMS ALL LIABILITY (INCLUDING FOR ALL DIRECT, CONSEQUENTIAL OR OTHER DAMAGES OR LOSSES) RELATED TO ANY USE OF THE SOFTWARE.**
|
package/README.md
ADDED
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var vmModuleTypes = require('@avalabs/vm-module-types');
|
|
4
|
+
require('@solana/rpc');
|
|
5
|
+
var rpcErrors = require('@metamask/rpc-errors');
|
|
6
|
+
|
|
7
|
+
var m=(r,e,t)=>{if(!e.has(r))throw TypeError("Cannot "+t)};var a=(r,e,t)=>(m(r,e,"read from private field"),t?t.call(r):e.get(r)),i=(r,e,t)=>{if(e.has(r))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(r):e.set(r,t);},c=(r,e,t,p)=>(m(r,e,"write to private field"),p?p.call(r,t):e.set(r,t),t);var l={name:"SVM",description:"",version:"0.0.1",sources:{module:{checksum:"",location:{npm:{filePath:"dist/index.js",packageName:"@avalabs/svm-module",registry:"https://registry.npmjs.org"}}}},network:{chainIds:["solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1","solana:4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z"],namespaces:["solana"]},cointype:"501",permissions:{rpc:{dapps:!0,methods:["getGenesisHash"]}},manifestVersion:"0.0"};var f={proxyApiUrl:"https://proxy-api.avax.network"},g={proxyApiUrl:"https://proxy-api-dev.avax.network"},u=r=>{switch(r){case vmModuleTypes.Environment.PRODUCTION:return f;case vmModuleTypes.Environment.DEV:return g}};var o,s,n,d=class{constructor({approvalController:e,environment:t,appInfo:p}){i(this,o,void 0);i(this,s,void 0);i(this,n,void 0);let{proxyApiUrl:y}=u(t);c(this,n,p),c(this,o,y),c(this,s,e),a(this,o),a(this,s),a(this,n);}getProvider(){return Promise.resolve({})}getAddress(){return Promise.resolve({})}getBalances(){return Promise.resolve({})}getManifest(){let e=vmModuleTypes.parseManifest(l);return e.success?e.data:void 0}getNetworkFee(){return Promise.resolve({})}getTransactionHistory(){return Promise.resolve({transactions:[]})}getTokens(){return Promise.resolve([])}async onRpcRequest(e){return {error:rpcErrors.rpcErrors.methodNotSupported(`Method ${e.method} not supported`)}}};o=new WeakMap,s=new WeakMap,n=new WeakMap;
|
|
8
|
+
|
|
9
|
+
exports.SvmModule = d;
|
|
10
|
+
//# sourceMappingURL=out.js.map
|
|
11
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/module.ts","../manifest.json","../src/env.ts"],"names":["parseManifest","rpcErrors","manifest_default","Environment","prodEnv","devEnv","getEnv","environment","_proxyApiUrl","_approvalController","_appInfo","SvmModule","approvalController","appInfo","__privateAdd","proxyApiUrl","__privateSet","__privateGet","result","request"],"mappings":"mVAAA,OACE,iBAAAA,MAOK,2BACP,MAAkD,cAClD,OAAS,aAAAC,MAAiB,uBCV1B,IAAAC,EAAA,CACE,KAAQ,MACR,YAAe,GACf,QAAW,QACX,QAAW,CACT,OAAU,CACR,SAAY,GACZ,SAAY,CACV,IAAO,CACL,SAAY,gBACZ,YAAe,sBACf,SAAY,4BACd,CACF,CACF,CACF,EACA,QAAW,CACT,SAAY,CACV,0CACA,0CACA,yCACF,EACA,WAAc,CAAC,QAAQ,CACzB,EACA,SAAY,MACZ,YAAe,CACb,IAAO,CACL,MAAS,GACT,QAAW,CAAC,gBAAgB,CAC9B,CACF,EACA,gBAAmB,KACrB,EChCA,OAAS,eAAAC,MAAmB,2BAMrB,IAAMC,EAAe,CAC1B,YAAa,gCACf,EAEaC,EAAc,CACzB,YAAa,oCACf,EAEaC,EAAUC,GAAkC,CACvD,OAAQA,EAAa,CACnB,KAAKJ,EAAY,WACf,OAAOC,EACT,KAAKD,EAAY,IACf,OAAOE,CACX,CACF,EFrBA,IAAAG,EAAAC,EAAAC,EAeaC,EAAN,KAAkC,CAKvC,YAAY,CAAE,mBAAAC,EAAoB,YAAAL,EAAa,QAAAM,CAAQ,EAAsB,CAJ7EC,EAAA,KAAAN,EAAA,QACAM,EAAA,KAAAL,EAAA,QACAK,EAAA,KAAAJ,EAAA,QAGE,GAAM,CAAE,YAAAK,CAAY,EAAIT,EAAOC,CAAW,EAE1CS,EAAA,KAAKN,EAAWG,GAChBG,EAAA,KAAKR,EAAeO,GACpBC,EAAA,KAAKP,EAAsBG,GAI3BK,EAAA,KAAKT,GACLS,EAAA,KAAKR,GACLQ,EAAA,KAAKP,EACP,CAGA,aAAc,CACZ,OAAO,QAAQ,QAAQ,CAAC,CAA4B,CACtD,CAGA,YAAa,CACX,OAAO,QAAQ,QAAQ,CAAC,CAAC,CAC3B,CAGA,aAAc,CACZ,OAAO,QAAQ,QAAQ,CAAC,CAAC,CAC3B,CAEA,aAAc,CACZ,IAAMQ,EAASlB,EAAcE,CAAY,EACzC,OAAOgB,EAAO,QAAUA,EAAO,KAAO,MACxC,CAGA,eAAgB,CACd,OAAO,QAAQ,QAAQ,CAAC,CAAgB,CAC1C,CAGA,uBAAwB,CACtB,OAAO,QAAQ,QAAQ,CACrB,aAAc,CAAC,CACjB,CAAC,CACH,CAGA,WAAY,CACV,OAAO,QAAQ,QAAQ,CAAC,CAAC,CAC3B,CAGA,MAAM,aAAaC,EAAqB,CACtC,MAAO,CAAE,MAAOlB,EAAU,mBAAmB,UAAUkB,EAAQ,MAAM,gBAAgB,CAAE,CACzF,CACF,EA3DEX,EAAA,YACAC,EAAA,YACAC,EAAA","sourcesContent":["import {\n parseManifest,\n type AppInfo,\n type ApprovalController,\n type ConstructorParams,\n type Module,\n type NetworkFees,\n type RpcRequest,\n} from '@avalabs/vm-module-types';\nimport { type Rpc, type SolanaRpcApiDevnet } from '@solana/rpc';\nimport { rpcErrors } from '@metamask/rpc-errors';\n\nimport ManifestJson from '../manifest.json';\nimport { getEnv } from './env';\n\nexport class SvmModule implements Module {\n #proxyApiUrl: string;\n #approvalController: ApprovalController;\n #appInfo: AppInfo;\n\n constructor({ approvalController, environment, appInfo }: ConstructorParams) {\n const { proxyApiUrl } = getEnv(environment);\n\n this.#appInfo = appInfo;\n this.#proxyApiUrl = proxyApiUrl;\n this.#approvalController = approvalController;\n\n // Referencing those props here just to silence eslint, as\n // eslint-disable-... comments don't seem to work on class properties.\n this.#proxyApiUrl;\n this.#approvalController;\n this.#appInfo;\n }\n\n // TODO\n getProvider() {\n return Promise.resolve({} as Rpc<SolanaRpcApiDevnet>);\n }\n\n // TODO\n getAddress() {\n return Promise.resolve({});\n }\n\n // TODO\n getBalances() {\n return Promise.resolve({});\n }\n\n getManifest() {\n const result = parseManifest(ManifestJson);\n return result.success ? result.data : undefined;\n }\n\n // TODO\n getNetworkFee() {\n return Promise.resolve({} as NetworkFees);\n }\n\n // TODO\n getTransactionHistory() {\n return Promise.resolve({\n transactions: [],\n });\n }\n\n // TODO\n getTokens() {\n return Promise.resolve([]);\n }\n\n // TODO\n async onRpcRequest(request: RpcRequest) {\n return { error: rpcErrors.methodNotSupported(`Method ${request.method} not supported`) };\n }\n}\n","{\n \"name\": \"SVM\",\n \"description\": \"\",\n \"version\": \"0.0.1\",\n \"sources\": {\n \"module\": {\n \"checksum\": \"\",\n \"location\": {\n \"npm\": {\n \"filePath\": \"dist/index.js\",\n \"packageName\": \"@avalabs/svm-module\",\n \"registry\": \"https://registry.npmjs.org\"\n }\n }\n }\n },\n \"network\": {\n \"chainIds\": [\n \"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp\",\n \"solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1\",\n \"solana:4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z\"\n ],\n \"namespaces\": [\"solana\"]\n },\n \"cointype\": \"501\",\n \"permissions\": {\n \"rpc\": {\n \"dapps\": true,\n \"methods\": [\"getGenesisHash\"]\n }\n },\n \"manifestVersion\": \"0.0\"\n}\n","import { Environment } from '@avalabs/vm-module-types';\n\ntype Env = {\n proxyApiUrl: string;\n};\n\nexport const prodEnv: Env = {\n proxyApiUrl: 'https://proxy-api.avax.network',\n};\n\nexport const devEnv: Env = {\n proxyApiUrl: 'https://proxy-api-dev.avax.network',\n};\n\nexport const getEnv = (environment: Environment): Env => {\n switch (environment) {\n case Environment.PRODUCTION:\n return prodEnv;\n case Environment.DEV:\n return devEnv;\n }\n};\n"]}
|
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import * as _metamask_rpc_errors from '@metamask/rpc-errors';
|
|
2
|
+
import * as _solana_rpc from '@solana/rpc';
|
|
3
|
+
import { Rpc } from '@solana/rpc';
|
|
4
|
+
import { Module, ConstructorParams, NetworkFees, RpcRequest } from '@avalabs/vm-module-types';
|
|
5
|
+
|
|
6
|
+
declare class SvmModule implements Module {
|
|
7
|
+
#private;
|
|
8
|
+
constructor({ approvalController, environment, appInfo }: ConstructorParams);
|
|
9
|
+
getProvider(): Promise<Rpc<_solana_rpc.RequestAirdropApi & _solana_rpc.GetAccountInfoApi & _solana_rpc.GetBalanceApi & _solana_rpc.GetBlockApi & _solana_rpc.GetBlockCommitmentApi & _solana_rpc.GetBlockHeightApi & _solana_rpc.GetBlockProductionApi & _solana_rpc.GetBlocksApi & _solana_rpc.GetBlocksWithLimitApi & _solana_rpc.GetBlockTimeApi & _solana_rpc.GetClusterNodesApi & _solana_rpc.GetEpochInfoApi & _solana_rpc.GetEpochScheduleApi & _solana_rpc.GetFeeForMessageApi & _solana_rpc.GetFirstAvailableBlockApi & _solana_rpc.GetGenesisHashApi & _solana_rpc.GetHealthApi & _solana_rpc.GetHighestSnapshotSlotApi & _solana_rpc.GetIdentityApi & _solana_rpc.GetInflationGovernorApi & _solana_rpc.GetInflationRateApi & _solana_rpc.GetInflationRewardApi & _solana_rpc.GetLargestAccountsApi & _solana_rpc.GetLatestBlockhashApi & _solana_rpc.GetLeaderScheduleApi & _solana_rpc.GetMaxRetransmitSlotApi & _solana_rpc.GetMaxShredInsertSlotApi & _solana_rpc.GetMinimumBalanceForRentExemptionApi & _solana_rpc.GetMultipleAccountsApi & _solana_rpc.GetProgramAccountsApi & _solana_rpc.GetRecentPerformanceSamplesApi & _solana_rpc.GetRecentPrioritizationFeesApi & _solana_rpc.GetSignaturesForAddressApi & _solana_rpc.GetSignatureStatusesApi & _solana_rpc.GetSlotApi & _solana_rpc.GetSlotLeaderApi & _solana_rpc.GetSlotLeadersApi & _solana_rpc.GetStakeMinimumDelegationApi & _solana_rpc.GetSupplyApi & _solana_rpc.GetTokenAccountBalanceApi & _solana_rpc.GetTokenAccountsByDelegateApi & _solana_rpc.GetTokenAccountsByOwnerApi & _solana_rpc.GetTokenLargestAccountsApi & _solana_rpc.GetTokenSupplyApi & _solana_rpc.GetTransactionApi & _solana_rpc.GetTransactionCountApi & _solana_rpc.GetVersionApi & _solana_rpc.GetVoteAccountsApi & _solana_rpc.IsBlockhashValidApi & _solana_rpc.MinimumLedgerSlotApi & _solana_rpc.SendTransactionApi & _solana_rpc.SimulateTransactionApi>>;
|
|
10
|
+
getAddress(): Promise<{}>;
|
|
11
|
+
getBalances(): Promise<{}>;
|
|
12
|
+
getManifest(): {
|
|
13
|
+
name: string;
|
|
14
|
+
description: string;
|
|
15
|
+
version: string;
|
|
16
|
+
sources: {
|
|
17
|
+
module: {
|
|
18
|
+
checksum: string;
|
|
19
|
+
location: {
|
|
20
|
+
npm: {
|
|
21
|
+
filePath: string;
|
|
22
|
+
packageName: string;
|
|
23
|
+
registry: string;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
provider?: {
|
|
28
|
+
checksum: string;
|
|
29
|
+
location: {
|
|
30
|
+
npm: {
|
|
31
|
+
filePath: string;
|
|
32
|
+
packageName: string;
|
|
33
|
+
registry: string;
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
} | undefined;
|
|
37
|
+
};
|
|
38
|
+
network: {
|
|
39
|
+
chainIds: string[];
|
|
40
|
+
namespaces: string[];
|
|
41
|
+
};
|
|
42
|
+
cointype: string;
|
|
43
|
+
permissions: {
|
|
44
|
+
rpc: {
|
|
45
|
+
dapps: boolean;
|
|
46
|
+
methods: string[];
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
manifestVersion: string;
|
|
50
|
+
} | undefined;
|
|
51
|
+
getNetworkFee(): Promise<NetworkFees>;
|
|
52
|
+
getTransactionHistory(): Promise<{
|
|
53
|
+
transactions: never[];
|
|
54
|
+
}>;
|
|
55
|
+
getTokens(): Promise<never[]>;
|
|
56
|
+
onRpcRequest(request: RpcRequest): Promise<{
|
|
57
|
+
error: _metamask_rpc_errors.JsonRpcError<_metamask_rpc_errors.OptionalDataWithOptionalCause>;
|
|
58
|
+
}>;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export { SvmModule };
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import * as _metamask_rpc_errors from '@metamask/rpc-errors';
|
|
2
|
+
import * as _solana_rpc from '@solana/rpc';
|
|
3
|
+
import { Rpc } from '@solana/rpc';
|
|
4
|
+
import { Module, ConstructorParams, NetworkFees, RpcRequest } from '@avalabs/vm-module-types';
|
|
5
|
+
|
|
6
|
+
declare class SvmModule implements Module {
|
|
7
|
+
#private;
|
|
8
|
+
constructor({ approvalController, environment, appInfo }: ConstructorParams);
|
|
9
|
+
getProvider(): Promise<Rpc<_solana_rpc.RequestAirdropApi & _solana_rpc.GetAccountInfoApi & _solana_rpc.GetBalanceApi & _solana_rpc.GetBlockApi & _solana_rpc.GetBlockCommitmentApi & _solana_rpc.GetBlockHeightApi & _solana_rpc.GetBlockProductionApi & _solana_rpc.GetBlocksApi & _solana_rpc.GetBlocksWithLimitApi & _solana_rpc.GetBlockTimeApi & _solana_rpc.GetClusterNodesApi & _solana_rpc.GetEpochInfoApi & _solana_rpc.GetEpochScheduleApi & _solana_rpc.GetFeeForMessageApi & _solana_rpc.GetFirstAvailableBlockApi & _solana_rpc.GetGenesisHashApi & _solana_rpc.GetHealthApi & _solana_rpc.GetHighestSnapshotSlotApi & _solana_rpc.GetIdentityApi & _solana_rpc.GetInflationGovernorApi & _solana_rpc.GetInflationRateApi & _solana_rpc.GetInflationRewardApi & _solana_rpc.GetLargestAccountsApi & _solana_rpc.GetLatestBlockhashApi & _solana_rpc.GetLeaderScheduleApi & _solana_rpc.GetMaxRetransmitSlotApi & _solana_rpc.GetMaxShredInsertSlotApi & _solana_rpc.GetMinimumBalanceForRentExemptionApi & _solana_rpc.GetMultipleAccountsApi & _solana_rpc.GetProgramAccountsApi & _solana_rpc.GetRecentPerformanceSamplesApi & _solana_rpc.GetRecentPrioritizationFeesApi & _solana_rpc.GetSignaturesForAddressApi & _solana_rpc.GetSignatureStatusesApi & _solana_rpc.GetSlotApi & _solana_rpc.GetSlotLeaderApi & _solana_rpc.GetSlotLeadersApi & _solana_rpc.GetStakeMinimumDelegationApi & _solana_rpc.GetSupplyApi & _solana_rpc.GetTokenAccountBalanceApi & _solana_rpc.GetTokenAccountsByDelegateApi & _solana_rpc.GetTokenAccountsByOwnerApi & _solana_rpc.GetTokenLargestAccountsApi & _solana_rpc.GetTokenSupplyApi & _solana_rpc.GetTransactionApi & _solana_rpc.GetTransactionCountApi & _solana_rpc.GetVersionApi & _solana_rpc.GetVoteAccountsApi & _solana_rpc.IsBlockhashValidApi & _solana_rpc.MinimumLedgerSlotApi & _solana_rpc.SendTransactionApi & _solana_rpc.SimulateTransactionApi>>;
|
|
10
|
+
getAddress(): Promise<{}>;
|
|
11
|
+
getBalances(): Promise<{}>;
|
|
12
|
+
getManifest(): {
|
|
13
|
+
name: string;
|
|
14
|
+
description: string;
|
|
15
|
+
version: string;
|
|
16
|
+
sources: {
|
|
17
|
+
module: {
|
|
18
|
+
checksum: string;
|
|
19
|
+
location: {
|
|
20
|
+
npm: {
|
|
21
|
+
filePath: string;
|
|
22
|
+
packageName: string;
|
|
23
|
+
registry: string;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
provider?: {
|
|
28
|
+
checksum: string;
|
|
29
|
+
location: {
|
|
30
|
+
npm: {
|
|
31
|
+
filePath: string;
|
|
32
|
+
packageName: string;
|
|
33
|
+
registry: string;
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
} | undefined;
|
|
37
|
+
};
|
|
38
|
+
network: {
|
|
39
|
+
chainIds: string[];
|
|
40
|
+
namespaces: string[];
|
|
41
|
+
};
|
|
42
|
+
cointype: string;
|
|
43
|
+
permissions: {
|
|
44
|
+
rpc: {
|
|
45
|
+
dapps: boolean;
|
|
46
|
+
methods: string[];
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
manifestVersion: string;
|
|
50
|
+
} | undefined;
|
|
51
|
+
getNetworkFee(): Promise<NetworkFees>;
|
|
52
|
+
getTransactionHistory(): Promise<{
|
|
53
|
+
transactions: never[];
|
|
54
|
+
}>;
|
|
55
|
+
getTokens(): Promise<never[]>;
|
|
56
|
+
onRpcRequest(request: RpcRequest): Promise<{
|
|
57
|
+
error: _metamask_rpc_errors.JsonRpcError<_metamask_rpc_errors.OptionalDataWithOptionalCause>;
|
|
58
|
+
}>;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export { SvmModule };
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { parseManifest, Environment } from '@avalabs/vm-module-types';
|
|
2
|
+
import '@solana/rpc';
|
|
3
|
+
import { rpcErrors } from '@metamask/rpc-errors';
|
|
4
|
+
|
|
5
|
+
var m=(r,e,t)=>{if(!e.has(r))throw TypeError("Cannot "+t)};var a=(r,e,t)=>(m(r,e,"read from private field"),t?t.call(r):e.get(r)),i=(r,e,t)=>{if(e.has(r))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(r):e.set(r,t);},c=(r,e,t,p)=>(m(r,e,"write to private field"),p?p.call(r,t):e.set(r,t),t);var l={name:"SVM",description:"",version:"0.0.1",sources:{module:{checksum:"",location:{npm:{filePath:"dist/index.js",packageName:"@avalabs/svm-module",registry:"https://registry.npmjs.org"}}}},network:{chainIds:["solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1","solana:4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z"],namespaces:["solana"]},cointype:"501",permissions:{rpc:{dapps:!0,methods:["getGenesisHash"]}},manifestVersion:"0.0"};var f={proxyApiUrl:"https://proxy-api.avax.network"},g={proxyApiUrl:"https://proxy-api-dev.avax.network"},u=r=>{switch(r){case Environment.PRODUCTION:return f;case Environment.DEV:return g}};var o,s,n,d=class{constructor({approvalController:e,environment:t,appInfo:p}){i(this,o,void 0);i(this,s,void 0);i(this,n,void 0);let{proxyApiUrl:y}=u(t);c(this,n,p),c(this,o,y),c(this,s,e),a(this,o),a(this,s),a(this,n);}getProvider(){return Promise.resolve({})}getAddress(){return Promise.resolve({})}getBalances(){return Promise.resolve({})}getManifest(){let e=parseManifest(l);return e.success?e.data:void 0}getNetworkFee(){return Promise.resolve({})}getTransactionHistory(){return Promise.resolve({transactions:[]})}getTokens(){return Promise.resolve([])}async onRpcRequest(e){return {error:rpcErrors.methodNotSupported(`Method ${e.method} not supported`)}}};o=new WeakMap,s=new WeakMap,n=new WeakMap;
|
|
6
|
+
|
|
7
|
+
export { d as SvmModule };
|
|
8
|
+
//# sourceMappingURL=out.js.map
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/module.ts","../manifest.json","../src/env.ts"],"names":["parseManifest","rpcErrors","manifest_default","Environment","prodEnv","devEnv","getEnv","environment","_proxyApiUrl","_approvalController","_appInfo","SvmModule","approvalController","appInfo","__privateAdd","proxyApiUrl","__privateSet","__privateGet","result","request"],"mappings":"mVAAA,OACE,iBAAAA,MAOK,2BACP,MAAkD,cAClD,OAAS,aAAAC,MAAiB,uBCV1B,IAAAC,EAAA,CACE,KAAQ,MACR,YAAe,GACf,QAAW,QACX,QAAW,CACT,OAAU,CACR,SAAY,GACZ,SAAY,CACV,IAAO,CACL,SAAY,gBACZ,YAAe,sBACf,SAAY,4BACd,CACF,CACF,CACF,EACA,QAAW,CACT,SAAY,CACV,0CACA,0CACA,yCACF,EACA,WAAc,CAAC,QAAQ,CACzB,EACA,SAAY,MACZ,YAAe,CACb,IAAO,CACL,MAAS,GACT,QAAW,CAAC,gBAAgB,CAC9B,CACF,EACA,gBAAmB,KACrB,EChCA,OAAS,eAAAC,MAAmB,2BAMrB,IAAMC,EAAe,CAC1B,YAAa,gCACf,EAEaC,EAAc,CACzB,YAAa,oCACf,EAEaC,EAAUC,GAAkC,CACvD,OAAQA,EAAa,CACnB,KAAKJ,EAAY,WACf,OAAOC,EACT,KAAKD,EAAY,IACf,OAAOE,CACX,CACF,EFrBA,IAAAG,EAAAC,EAAAC,EAeaC,EAAN,KAAkC,CAKvC,YAAY,CAAE,mBAAAC,EAAoB,YAAAL,EAAa,QAAAM,CAAQ,EAAsB,CAJ7EC,EAAA,KAAAN,EAAA,QACAM,EAAA,KAAAL,EAAA,QACAK,EAAA,KAAAJ,EAAA,QAGE,GAAM,CAAE,YAAAK,CAAY,EAAIT,EAAOC,CAAW,EAE1CS,EAAA,KAAKN,EAAWG,GAChBG,EAAA,KAAKR,EAAeO,GACpBC,EAAA,KAAKP,EAAsBG,GAI3BK,EAAA,KAAKT,GACLS,EAAA,KAAKR,GACLQ,EAAA,KAAKP,EACP,CAGA,aAAc,CACZ,OAAO,QAAQ,QAAQ,CAAC,CAA4B,CACtD,CAGA,YAAa,CACX,OAAO,QAAQ,QAAQ,CAAC,CAAC,CAC3B,CAGA,aAAc,CACZ,OAAO,QAAQ,QAAQ,CAAC,CAAC,CAC3B,CAEA,aAAc,CACZ,IAAMQ,EAASlB,EAAcE,CAAY,EACzC,OAAOgB,EAAO,QAAUA,EAAO,KAAO,MACxC,CAGA,eAAgB,CACd,OAAO,QAAQ,QAAQ,CAAC,CAAgB,CAC1C,CAGA,uBAAwB,CACtB,OAAO,QAAQ,QAAQ,CACrB,aAAc,CAAC,CACjB,CAAC,CACH,CAGA,WAAY,CACV,OAAO,QAAQ,QAAQ,CAAC,CAAC,CAC3B,CAGA,MAAM,aAAaC,EAAqB,CACtC,MAAO,CAAE,MAAOlB,EAAU,mBAAmB,UAAUkB,EAAQ,MAAM,gBAAgB,CAAE,CACzF,CACF,EA3DEX,EAAA,YACAC,EAAA,YACAC,EAAA","sourcesContent":["import {\n parseManifest,\n type AppInfo,\n type ApprovalController,\n type ConstructorParams,\n type Module,\n type NetworkFees,\n type RpcRequest,\n} from '@avalabs/vm-module-types';\nimport { type Rpc, type SolanaRpcApiDevnet } from '@solana/rpc';\nimport { rpcErrors } from '@metamask/rpc-errors';\n\nimport ManifestJson from '../manifest.json';\nimport { getEnv } from './env';\n\nexport class SvmModule implements Module {\n #proxyApiUrl: string;\n #approvalController: ApprovalController;\n #appInfo: AppInfo;\n\n constructor({ approvalController, environment, appInfo }: ConstructorParams) {\n const { proxyApiUrl } = getEnv(environment);\n\n this.#appInfo = appInfo;\n this.#proxyApiUrl = proxyApiUrl;\n this.#approvalController = approvalController;\n\n // Referencing those props here just to silence eslint, as\n // eslint-disable-... comments don't seem to work on class properties.\n this.#proxyApiUrl;\n this.#approvalController;\n this.#appInfo;\n }\n\n // TODO\n getProvider() {\n return Promise.resolve({} as Rpc<SolanaRpcApiDevnet>);\n }\n\n // TODO\n getAddress() {\n return Promise.resolve({});\n }\n\n // TODO\n getBalances() {\n return Promise.resolve({});\n }\n\n getManifest() {\n const result = parseManifest(ManifestJson);\n return result.success ? result.data : undefined;\n }\n\n // TODO\n getNetworkFee() {\n return Promise.resolve({} as NetworkFees);\n }\n\n // TODO\n getTransactionHistory() {\n return Promise.resolve({\n transactions: [],\n });\n }\n\n // TODO\n getTokens() {\n return Promise.resolve([]);\n }\n\n // TODO\n async onRpcRequest(request: RpcRequest) {\n return { error: rpcErrors.methodNotSupported(`Method ${request.method} not supported`) };\n }\n}\n","{\n \"name\": \"SVM\",\n \"description\": \"\",\n \"version\": \"0.0.1\",\n \"sources\": {\n \"module\": {\n \"checksum\": \"\",\n \"location\": {\n \"npm\": {\n \"filePath\": \"dist/index.js\",\n \"packageName\": \"@avalabs/svm-module\",\n \"registry\": \"https://registry.npmjs.org\"\n }\n }\n }\n },\n \"network\": {\n \"chainIds\": [\n \"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp\",\n \"solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1\",\n \"solana:4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z\"\n ],\n \"namespaces\": [\"solana\"]\n },\n \"cointype\": \"501\",\n \"permissions\": {\n \"rpc\": {\n \"dapps\": true,\n \"methods\": [\"getGenesisHash\"]\n }\n },\n \"manifestVersion\": \"0.0\"\n}\n","import { Environment } from '@avalabs/vm-module-types';\n\ntype Env = {\n proxyApiUrl: string;\n};\n\nexport const prodEnv: Env = {\n proxyApiUrl: 'https://proxy-api.avax.network',\n};\n\nexport const devEnv: Env = {\n proxyApiUrl: 'https://proxy-api-dev.avax.network',\n};\n\nexport const getEnv = (environment: Environment): Env => {\n switch (environment) {\n case Environment.PRODUCTION:\n return prodEnv;\n case Environment.DEV:\n return devEnv;\n }\n};\n"]}
|
package/manifest.json
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "SVM",
|
|
3
|
+
"description": "",
|
|
4
|
+
"version": "0.0.1",
|
|
5
|
+
"sources": {
|
|
6
|
+
"module": {
|
|
7
|
+
"checksum": "",
|
|
8
|
+
"location": {
|
|
9
|
+
"npm": {
|
|
10
|
+
"filePath": "dist/index.js",
|
|
11
|
+
"packageName": "@avalabs/svm-module",
|
|
12
|
+
"registry": "https://registry.npmjs.org"
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"network": {
|
|
18
|
+
"chainIds": [
|
|
19
|
+
"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
|
|
20
|
+
"solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1",
|
|
21
|
+
"solana:4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z"
|
|
22
|
+
],
|
|
23
|
+
"namespaces": ["solana"]
|
|
24
|
+
},
|
|
25
|
+
"cointype": "501",
|
|
26
|
+
"permissions": {
|
|
27
|
+
"rpc": {
|
|
28
|
+
"dapps": true,
|
|
29
|
+
"methods": ["getGenesisHash"]
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"manifestVersion": "0.0"
|
|
33
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@avalabs/svm-module",
|
|
3
|
+
"version": "0.0.0",
|
|
4
|
+
"main": "dist/index.cjs",
|
|
5
|
+
"module": "dist/index.js",
|
|
6
|
+
"typings": "dist/index.d.ts",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"files": [
|
|
9
|
+
"dist",
|
|
10
|
+
"manifest.json"
|
|
11
|
+
],
|
|
12
|
+
"license": "Limited Ecosystem License",
|
|
13
|
+
"scripts": {
|
|
14
|
+
"build": "tsup",
|
|
15
|
+
"lint": "eslint \"src/**/*.ts\"",
|
|
16
|
+
"test": "jest",
|
|
17
|
+
"test:watch": "jest --watch"
|
|
18
|
+
},
|
|
19
|
+
"dependencies": {
|
|
20
|
+
"@avalabs/vm-module-types": "workspace:*",
|
|
21
|
+
"@metamask/rpc-errors": "6.3.0",
|
|
22
|
+
"@solana/rpc": "2.0.0"
|
|
23
|
+
},
|
|
24
|
+
"devDependencies": {
|
|
25
|
+
"@internal/tsup-config": "workspace:*",
|
|
26
|
+
"@internal/utils": "workspace:*",
|
|
27
|
+
"@types/jest": "29.5.7",
|
|
28
|
+
"eslint-config-custom": "workspace:*",
|
|
29
|
+
"jest": "29.7.0",
|
|
30
|
+
"jest-environment-jsdom": "29.7.0",
|
|
31
|
+
"ts-jest": "29.1.1",
|
|
32
|
+
"tsup": "7.2.0"
|
|
33
|
+
},
|
|
34
|
+
"volta": {
|
|
35
|
+
"node": "20.11.0",
|
|
36
|
+
"yarn": "1.22.19"
|
|
37
|
+
}
|
|
38
|
+
}
|