@wallfree-dev/solana 0.13.43-beta.2 → 0.13.43-beta.6

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/index.d.ts CHANGED
@@ -1,4 +1,6 @@
1
1
  import { SolanaModule } from './v1/module/SolanaModule';
2
2
  import { SolanaProtocol, createSolanaProtocol } from './v1/protocol/SolanaProtocol';
3
- export { SolanaModule, SolanaProtocol, createSolanaProtocol };
3
+ import { SolanaSPLTokenProtocol, SolanaSPLTokenProtocolImpl, createSolanaSPLTokenProtocol } from './v1/protocol/SolanaSPLTokenProtocol';
4
+ import { SOLANA_SPL_TOKENS, SOLANA_SPL_TOKEN_USDT, SOLANA_SPL_TOKEN_USDC, createSPLTokenOptionsFromMetadata } from './v1/module/SPLTokens';
5
+ export { SolanaModule, SolanaProtocol, createSolanaProtocol, SolanaSPLTokenProtocol, SolanaSPLTokenProtocolImpl, createSolanaSPLTokenProtocol, SOLANA_SPL_TOKENS, SOLANA_SPL_TOKEN_USDT, SOLANA_SPL_TOKEN_USDC, createSPLTokenOptionsFromMetadata };
4
6
  export * from './v1/types/protocol';
package/index.js CHANGED
@@ -14,11 +14,19 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.createSolanaProtocol = exports.SolanaProtocol = exports.SolanaModule = void 0;
17
+ exports.createSPLTokenOptionsFromMetadata = exports.SOLANA_SPL_TOKEN_USDC = exports.SOLANA_SPL_TOKEN_USDT = exports.SOLANA_SPL_TOKENS = exports.createSolanaSPLTokenProtocol = exports.SolanaSPLTokenProtocolImpl = exports.createSolanaProtocol = exports.SolanaProtocol = exports.SolanaModule = void 0;
18
18
  var SolanaModule_1 = require("./v1/module/SolanaModule");
19
19
  Object.defineProperty(exports, "SolanaModule", { enumerable: true, get: function () { return SolanaModule_1.SolanaModule; } });
20
20
  var SolanaProtocol_1 = require("./v1/protocol/SolanaProtocol");
21
21
  Object.defineProperty(exports, "SolanaProtocol", { enumerable: true, get: function () { return SolanaProtocol_1.SolanaProtocol; } });
22
22
  Object.defineProperty(exports, "createSolanaProtocol", { enumerable: true, get: function () { return SolanaProtocol_1.createSolanaProtocol; } });
23
+ var SolanaSPLTokenProtocol_1 = require("./v1/protocol/SolanaSPLTokenProtocol");
24
+ Object.defineProperty(exports, "SolanaSPLTokenProtocolImpl", { enumerable: true, get: function () { return SolanaSPLTokenProtocol_1.SolanaSPLTokenProtocolImpl; } });
25
+ Object.defineProperty(exports, "createSolanaSPLTokenProtocol", { enumerable: true, get: function () { return SolanaSPLTokenProtocol_1.createSolanaSPLTokenProtocol; } });
26
+ var SPLTokens_1 = require("./v1/module/SPLTokens");
27
+ Object.defineProperty(exports, "SOLANA_SPL_TOKENS", { enumerable: true, get: function () { return SPLTokens_1.SOLANA_SPL_TOKENS; } });
28
+ Object.defineProperty(exports, "SOLANA_SPL_TOKEN_USDT", { enumerable: true, get: function () { return SPLTokens_1.SOLANA_SPL_TOKEN_USDT; } });
29
+ Object.defineProperty(exports, "SOLANA_SPL_TOKEN_USDC", { enumerable: true, get: function () { return SPLTokens_1.SOLANA_SPL_TOKEN_USDC; } });
30
+ Object.defineProperty(exports, "createSPLTokenOptionsFromMetadata", { enumerable: true, get: function () { return SPLTokens_1.createSPLTokenOptionsFromMetadata; } });
23
31
  __exportStar(require("./v1/types/protocol"), exports);
24
32
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,yDAAuD;AAG9C,6FAHA,2BAAY,OAGA;AAFrB,+DAAmF;AAE5D,+FAFd,+BAAc,OAEc;AAAE,qGAFd,qCAAoB,OAEc;AAE3D,sDAAmC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,yDAAuD;AAWrD,6FAXO,2BAAY,OAWP;AAVd,+DAAmF;AAWjF,+FAXO,+BAAc,OAWP;AACd,qGAZuB,qCAAoB,OAYvB;AAXtB,+EAAuI;AAarI,2GAb+B,mDAA0B,OAa/B;AAC1B,6GAd2D,qDAA4B,OAc3D;AAb9B,mDAK8B;AAS5B,kGAbA,6BAAiB,OAaA;AACjB,sGAbA,iCAAqB,OAaA;AACrB,sGAbA,iCAAqB,OAaA;AACrB,kHAbA,6CAAiC,OAaA;AAGnC,sDAAmC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wallfree-dev/solana",
3
- "version": "0.13.43-beta.2",
3
+ "version": "0.13.43-beta.6",
4
4
  "description": "The @wallfree-dev/solana is a Solana implementation of the ICoinProtocol interface from @wallfree-dev/coinlib-core.",
5
5
  "keywords": [
6
6
  "airgap",
@@ -18,22 +18,22 @@
18
18
  "access": "public"
19
19
  },
20
20
  "scripts": {
21
- "build": "rm -rf ./dist && tsc && node scripts/copy-files-after-build.js",
21
+ "build": "rimraf ./dist && tsc && node scripts/copy-files-after-build.js",
22
22
  "build-scripts": "tsc scripts/copy-files-after-build.ts",
23
23
  "lint": "tslint -c ./tslint.json --project ./tsconfig.json --format stylish --fix",
24
24
  "lint:prettier": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
25
25
  "lint-ci": "tslint -t json -o ../../lint-reports/solana.json --project . || true",
26
26
  "lint-ci:prettier": "prettier \"src/**/*.ts\" \"test/**/*.ts\" --list-different",
27
27
  "test": "",
28
- "test-ci": "nyc --reporter=lcov pnpm test",
28
+ "test-ci": "nyc --reporter=lcov npm test",
29
29
  "browserify": "browserify ./dist/index.js -s airgapCoinLibSolana > ./dist/airgap-coinlib-solana.min.js"
30
30
  },
31
31
  "author": "Papers AG <contact@papers.ch> (https://papers.ch)",
32
32
  "dependencies": {
33
33
  "@solana/web3.js": "^1.87.0",
34
- "@wallfree-dev/coinlib-core": "^0.13.43-beta.2",
35
- "@wallfree-dev/module-kit": "^0.13.43-beta.2",
36
- "@wallfree-dev/serializer": "^0.13.43-beta.2",
34
+ "@wallfree-dev/coinlib-core": "^0.13.43-beta.6",
35
+ "@wallfree-dev/module-kit": "^0.13.43-beta.6",
36
+ "@wallfree-dev/serializer": "^0.13.43-beta.6",
37
37
  "bs58": "^4.0.1",
38
38
  "tweetnacl": "^1.0.3"
39
39
  },
@@ -60,6 +60,5 @@
60
60
  },
61
61
  "devDependencies": {
62
62
  "rimraf": "^6.0.1"
63
- },
64
- "gitHead": "343148d0ac18329207bf763671d36bb747b73f54"
63
+ }
65
64
  }
@@ -0,0 +1,5 @@
1
+ import { SolanaSPLTokenMetadata, SolanaSPLTokenOptions, SolanaProtocolNetwork } from '../types/protocol';
2
+ export declare const SOLANA_SPL_TOKEN_USDT: SolanaSPLTokenMetadata;
3
+ export declare const SOLANA_SPL_TOKEN_USDC: SolanaSPLTokenMetadata;
4
+ export declare const SOLANA_SPL_TOKENS: SolanaSPLTokenMetadata[];
5
+ export declare function createSPLTokenOptionsFromMetadata(metadata: SolanaSPLTokenMetadata, network: SolanaProtocolNetwork): SolanaSPLTokenOptions<string>;
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createSPLTokenOptionsFromMetadata = exports.SOLANA_SPL_TOKENS = exports.SOLANA_SPL_TOKEN_USDC = exports.SOLANA_SPL_TOKEN_USDT = void 0;
4
+ var coinlib_core_1 = require("@wallfree-dev/coinlib-core");
5
+ // Solana Mainnet SPL Token Contract Addresses
6
+ // USDT: Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB
7
+ // USDC: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
8
+ exports.SOLANA_SPL_TOKEN_USDT = {
9
+ name: 'Tether USD (Solana)',
10
+ identifier: 'solana-spl-usdt',
11
+ symbol: 'USDT',
12
+ marketSymbol: 'usdt',
13
+ contractAddress: 'Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB',
14
+ decimals: 6
15
+ };
16
+ exports.SOLANA_SPL_TOKEN_USDC = {
17
+ name: 'USD Coin (Solana)',
18
+ identifier: 'solana-spl-usdc',
19
+ symbol: 'USDC',
20
+ marketSymbol: 'usdc',
21
+ contractAddress: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',
22
+ decimals: 6
23
+ };
24
+ // List of all predefined SPL tokens
25
+ exports.SOLANA_SPL_TOKENS = [
26
+ exports.SOLANA_SPL_TOKEN_USDT,
27
+ exports.SOLANA_SPL_TOKEN_USDC
28
+ ];
29
+ // Helper function to create SPL token options from metadata
30
+ function createSPLTokenOptionsFromMetadata(metadata, network) {
31
+ var _a;
32
+ var units = (_a = {},
33
+ _a[metadata.symbol] = {
34
+ symbol: { value: metadata.symbol, market: metadata.marketSymbol },
35
+ decimals: metadata.decimals
36
+ },
37
+ _a);
38
+ return {
39
+ network: network,
40
+ name: metadata.name,
41
+ identifier: metadata.identifier,
42
+ mainIdentifier: coinlib_core_1.MainProtocolSymbols.SOLANA,
43
+ contractAddress: metadata.contractAddress,
44
+ units: units,
45
+ mainUnit: metadata.symbol
46
+ };
47
+ }
48
+ exports.createSPLTokenOptionsFromMetadata = createSPLTokenOptionsFromMetadata;
49
+ //# sourceMappingURL=SPLTokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SPLTokens.js","sourceRoot":"","sources":["../../../src/v1/module/SPLTokens.ts"],"names":[],"mappings":";;;AAEA,2DAAgE;AAEhE,8CAA8C;AAC9C,qDAAqD;AACrD,qDAAqD;AAExC,QAAA,qBAAqB,GAA2B;IAC3D,IAAI,EAAE,qBAAqB;IAC3B,UAAU,EAAE,iBAAiB;IAC7B,MAAM,EAAE,MAAM;IACd,YAAY,EAAE,MAAM;IACpB,eAAe,EAAE,8CAA8C;IAC/D,QAAQ,EAAE,CAAC;CACZ,CAAA;AAEY,QAAA,qBAAqB,GAA2B;IAC3D,IAAI,EAAE,mBAAmB;IACzB,UAAU,EAAE,iBAAiB;IAC7B,MAAM,EAAE,MAAM;IACd,YAAY,EAAE,MAAM;IACpB,eAAe,EAAE,8CAA8C;IAC/D,QAAQ,EAAE,CAAC;CACZ,CAAA;AAED,oCAAoC;AACvB,QAAA,iBAAiB,GAA6B;IACzD,6BAAqB;IACrB,6BAAqB;CACtB,CAAA;AAED,4DAA4D;AAC5D,SAAgB,iCAAiC,CAC/C,QAAgC,EAChC,OAA8B;;IAE9B,IAAM,KAAK;QACT,GAAC,QAAQ,CAAC,MAAM,IAAG;YACjB,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,YAAY,EAAE;YACjE,QAAQ,EAAE,QAAQ,CAAC,QAAQ;SAC5B;WACF,CAAA;IAED,OAAO;QACL,OAAO,SAAA;QACP,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,cAAc,EAAE,kCAAmB,CAAC,MAAM;QAC1C,eAAe,EAAE,QAAQ,CAAC,eAAe;QACzC,KAAK,OAAA;QACL,QAAQ,EAAE,QAAQ,CAAC,MAAM;KAC1B,CAAA;AACH,CAAC;AApBD,8EAoBC"}
@@ -7,6 +7,8 @@ export declare class SolanaModule implements AirGapModule<{
7
7
  }> {
8
8
  private readonly networkRegistries;
9
9
  readonly supportedProtocols: Record<string, ProtocolConfiguration>;
10
+ private readonly defaultNetwork;
11
+ private readonly splTokens;
10
12
  constructor();
11
13
  createOfflineProtocol(identifier: string): Promise<OfflineProtocol | undefined>;
12
14
  createOnlineProtocol(identifier: string, networkOrId?: SolanaProtocolNetwork | string): Promise<OnlineProtocol | undefined>;
@@ -1,4 +1,15 @@
1
1
  "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
2
13
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
14
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
15
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -42,16 +53,22 @@ var errors_1 = require("@wallfree-dev/coinlib-core/errors");
42
53
  var module_kit_1 = require("@wallfree-dev/module-kit");
43
54
  var SolanaBlockExplorer_1 = require("../block-explorer/SolanaBlockExplorer");
44
55
  var SolanaProtocol_1 = require("../protocol/SolanaProtocol");
56
+ var SolanaSPLTokenProtocol_1 = require("../protocol/SolanaSPLTokenProtocol");
45
57
  var serializer_companion_1 = require("../serializer/v3/serializer-companion");
58
+ var SPLTokens_1 = require("./SPLTokens");
46
59
  var SolanaModule = /** @class */ (function () {
47
60
  function SolanaModule() {
48
61
  var _a;
62
+ this.defaultNetwork = (0, SolanaProtocol_1.createSolanaProtocol)().options.network;
63
+ this.splTokens = SPLTokens_1.SOLANA_SPL_TOKENS;
49
64
  var networkRegistry = new module_kit_1.ModuleNetworkRegistry({
50
- supportedNetworks: [(0, SolanaProtocol_1.createSolanaProtocol)().options.network]
65
+ supportedNetworks: [this.defaultNetwork]
51
66
  });
52
- this.networkRegistries = (_a = {},
53
- _a[coinlib_core_1.MainProtocolSymbols.SOLANA] = networkRegistry,
54
- _a);
67
+ // Register main Solana protocol and all SPL tokens
68
+ this.networkRegistries = __assign((_a = {}, _a[coinlib_core_1.MainProtocolSymbols.SOLANA] = networkRegistry, _a), this.splTokens.reduce(function (obj, token) {
69
+ obj[token.identifier] = networkRegistry;
70
+ return obj;
71
+ }, {}));
55
72
  this.supportedProtocols = (0, module_kit_1.createSupportedProtocols)(this.networkRegistries);
56
73
  }
57
74
  SolanaModule.prototype.createOfflineProtocol = function (identifier) {
@@ -95,8 +112,16 @@ var SolanaModule = /** @class */ (function () {
95
112
  });
96
113
  };
97
114
  SolanaModule.prototype.createProtocol = function (identifier, network) {
115
+ var resolvedNetwork = network || this.defaultNetwork;
116
+ // Check if it's the main Solana protocol
98
117
  if (identifier === coinlib_core_1.MainProtocolSymbols.SOLANA) {
99
- return (0, SolanaProtocol_1.createSolanaProtocol)({ network: network });
118
+ return (0, SolanaProtocol_1.createSolanaProtocol)({ network: resolvedNetwork });
119
+ }
120
+ // Check if it's an SPL token
121
+ var splToken = this.splTokens.find(function (token) { return token.identifier === identifier; });
122
+ if (splToken) {
123
+ var options = (0, SPLTokens_1.createSPLTokenOptionsFromMetadata)(splToken, resolvedNetwork);
124
+ return (0, SolanaSPLTokenProtocol_1.createSolanaSPLTokenProtocol)(options);
100
125
  }
101
126
  throw new errors_1.ConditionViolationError(coinlib_core_1.Domain.SOLANA, "Protocol ".concat(identifier, " not supported."));
102
127
  };
@@ -1 +1 @@
1
- {"version":3,"file":"SolanaModule.js","sourceRoot":"","sources":["../../../src/v1/module/SolanaModule.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2DAAwE;AACxE,4DAA2E;AAC3E,uDAOiC;AAIjC,6EAA2E;AAC3E,6DAAiE;AACjE,8EAAmF;AAGnF;IAIE;;QACE,IAAM,eAAe,GAA0B,IAAI,kCAAqB,CAAC;YACvE,iBAAiB,EAAE,CAAC,IAAA,qCAAoB,GAAE,CAAC,OAAO,CAAC,OAAO,CAAC;SAC5D,CAAC,CAAA;QAEF,IAAI,CAAC,iBAAiB;YACpB,GAAC,kCAAmB,CAAC,MAAM,IAAG,eAAe;eAC9C,CAAA;QACD,IAAI,CAAC,kBAAkB,GAAG,IAAA,qCAAwB,EAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;IAC5E,CAAC;IAEY,4CAAqB,GAAlC,UAAmC,UAAkB;;;gBACnD,sBAAO,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,EAAA;;;KACvC;IAEY,2CAAoB,GAAjC,UACE,UAAkB,EAClB,WAA4C;;;;;gBAEtC,OAAO,GACX,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAA,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,0CAAE,WAAW,CAAC,WAAW,CAAC,CAAA;gBAE9G,IAAI,OAAO,KAAK,SAAS,EAAE;oBACzB,MAAM,IAAI,gCAAuB,CAAC,qBAAM,CAAC,MAAM,EAAE,sCAAsC,CAAC,CAAA;iBACzF;gBAED,sBAAO,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,EAAA;;;KAChD;IAEY,0CAAmB,GAAhC,UAAiC,UAAkB,EAAE,WAA4C;;;;;gBACzF,OAAO,GACX,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAA,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,0CAAE,WAAW,CAAC,WAAW,CAAC,CAAA;gBAE9G,IAAI,OAAO,KAAK,SAAS,EAAE;oBACzB,MAAM,IAAI,gCAAuB,CAAC,qBAAM,CAAC,MAAM,EAAE,4CAA4C,CAAC,CAAA;iBAC/F;gBAED,sBAAO,IAAI,yCAAmB,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAA;;;KACzD;IAEY,kDAA2B,GAAxC;;;gBACE,sBAAO,IAAI,kDAA2B,EAAE,EAAA;;;KACzC;IAEO,qCAAc,GAAtB,UAAuB,UAAkB,EAAE,OAAyB;QAClE,IAAI,UAAU,KAAK,kCAAmB,CAAC,MAAM,EAAE;YAC7C,OAAO,IAAA,qCAAoB,EAAC,EAAE,OAAO,SAAA,EAAE,CAAC,CAAA;SACzC;QAED,MAAM,IAAI,gCAAuB,CAAC,qBAAM,CAAC,MAAM,EAAE,mBAAY,UAAU,oBAAiB,CAAC,CAAA;IAC3F,CAAC;IACH,mBAAC;AAAD,CAAC,AAvDD,IAuDC;AAvDY,oCAAY"}
1
+ {"version":3,"file":"SolanaModule.js","sourceRoot":"","sources":["../../../src/v1/module/SolanaModule.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { AirGapProtocol, AirGapTransaction, AirGapTransactionStatus, AirGapTransactionsWithCursor, Amount, Balance, CryptoDerivative, FeeDefaults, KeyPair, ProtocolMetadata, ProtocolUnitsMetadata, PublicKey, SecretKey, Signature, TransactionDetails, TransactionFullConfiguration, TransactionSimpleConfiguration, ExtendedKeyPair, ExtendedPublicKey, ExtendedSecretKey, RecursivePartial } from '@wallfree-dev/module-kit';
2
- import { SolanaAddressResult, SolanaProtocolNetwork, SolanaProtocolOptions, SolanaUnits } from '../types/protocol';
2
+ import { SolanaAddressResult, SolanaProtocolNetwork, SolanaProtocolOptions, SolanaTransactionCursor, SolanaUnits } from '../types/protocol';
3
3
  export declare const SOLANA_UNITS_METADATA: ProtocolUnitsMetadata<SolanaUnits>;
4
4
  export declare class SolanaProtocol implements AirGapProtocol<{
5
5
  AddressResult: string;
@@ -21,11 +21,14 @@ export declare class SolanaProtocol implements AirGapProtocol<{
21
21
  TransactionCursor: any;
22
22
  }, 'Crypto'> {
23
23
  readonly options: SolanaProtocolOptions;
24
+ private static readonly FALLBACK_RPC_URLS;
24
25
  constructor(options: SolanaProtocolOptions);
26
+ private withFallback;
25
27
  getMetadata(): Promise<ProtocolMetadata<SolanaUnits, SolanaUnits>>;
26
28
  private getPublicKeyBuffer;
27
29
  getAddressFromPublicKey(publicKey: PublicKey | ExtendedPublicKey): Promise<string>;
28
30
  getAddressesFromPublicKey(publicKey: PublicKey | ExtendedPublicKey): Promise<SolanaAddressResult[]>;
31
+ validateAddress(address: string): Promise<boolean>;
29
32
  getBalanceOfAddress(address: string): Promise<Balance<SolanaUnits>>;
30
33
  getBalanceOfPublicKey(publicKey: PublicKey | ExtendedPublicKey): Promise<Balance<SolanaUnits>>;
31
34
  getDetailsFromTransaction(transaction: {
@@ -56,8 +59,9 @@ export declare class SolanaProtocol implements AirGapProtocol<{
56
59
  encryptAESWithSecretKey(payload: string, secretKey: SecretKey | ExtendedSecretKey): Promise<string>;
57
60
  decryptAESWithSecretKey(payload: string, secretKey: SecretKey | ExtendedSecretKey): Promise<string>;
58
61
  getNetwork(): Promise<SolanaProtocolNetwork>;
59
- getTransactionsForAddress(address: string, limit: number, cursor?: any): Promise<AirGapTransactionsWithCursor<any, SolanaUnits, SolanaUnits>>;
60
- getTransactionsForPublicKey(publicKey: PublicKey | ExtendedPublicKey, limit: number, cursor?: any): Promise<AirGapTransactionsWithCursor<any, SolanaUnits, SolanaUnits>>;
62
+ private static readonly DEFAULT_TX_LIMIT;
63
+ getTransactionsForAddress(address: string, limit: number, cursor?: SolanaTransactionCursor): Promise<AirGapTransactionsWithCursor<SolanaTransactionCursor, SolanaUnits, SolanaUnits>>;
64
+ getTransactionsForPublicKey(publicKey: PublicKey | ExtendedPublicKey, limit: number, cursor?: SolanaTransactionCursor): Promise<AirGapTransactionsWithCursor<SolanaTransactionCursor, SolanaUnits, SolanaUnits>>;
61
65
  getTransactionStatus(transactionIds: string[]): Promise<Record<string, AirGapTransactionStatus>>;
62
66
  getTransactionMaxAmountWithPublicKey(publicKey: PublicKey | ExtendedPublicKey, to: string[], configuration?: TransactionFullConfiguration<SolanaUnits>): Promise<Amount<SolanaUnits>>;
63
67
  getTransactionFeeWithPublicKey(publicKey: PublicKey | ExtendedPublicKey, details: TransactionDetails<SolanaUnits>[], configuration?: TransactionSimpleConfiguration): Promise<FeeDefaults<SolanaUnits>>;