@across-protocol/sdk 4.1.15 → 4.1.16

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.
Files changed (61) hide show
  1. package/dist/cjs/providers/index.d.ts +1 -0
  2. package/dist/cjs/providers/index.js +1 -0
  3. package/dist/cjs/providers/index.js.map +1 -1
  4. package/dist/cjs/providers/retryProvider.js +3 -3
  5. package/dist/cjs/providers/retryProvider.js.map +1 -1
  6. package/dist/cjs/providers/solana/baseRpcFactories.d.ts +11 -0
  7. package/dist/cjs/providers/solana/baseRpcFactories.js +30 -0
  8. package/dist/cjs/providers/solana/baseRpcFactories.js.map +1 -0
  9. package/dist/cjs/providers/solana/defaultRpcFactory.d.ts +6 -0
  10. package/dist/cjs/providers/solana/defaultRpcFactory.js +22 -0
  11. package/dist/cjs/providers/solana/defaultRpcFactory.js.map +1 -0
  12. package/dist/cjs/providers/solana/index.d.ts +4 -0
  13. package/dist/cjs/providers/solana/index.js +8 -0
  14. package/dist/cjs/providers/solana/index.js.map +1 -0
  15. package/dist/cjs/providers/solana/rateLimitedRpcFactory.d.ts +16 -0
  16. package/dist/cjs/providers/solana/rateLimitedRpcFactory.js +105 -0
  17. package/dist/cjs/providers/solana/rateLimitedRpcFactory.js.map +1 -0
  18. package/dist/cjs/providers/solana/utils.d.ts +6 -0
  19. package/dist/cjs/providers/solana/utils.js +3 -0
  20. package/dist/cjs/providers/solana/utils.js.map +1 -0
  21. package/dist/esm/providers/index.d.ts +1 -0
  22. package/dist/esm/providers/index.js +1 -0
  23. package/dist/esm/providers/index.js.map +1 -1
  24. package/dist/esm/providers/retryProvider.js +4 -3
  25. package/dist/esm/providers/retryProvider.js.map +1 -1
  26. package/dist/esm/providers/solana/baseRpcFactories.d.ts +11 -0
  27. package/dist/esm/providers/solana/baseRpcFactories.js +31 -0
  28. package/dist/esm/providers/solana/baseRpcFactories.js.map +1 -0
  29. package/dist/esm/providers/solana/defaultRpcFactory.d.ts +6 -0
  30. package/dist/esm/providers/solana/defaultRpcFactory.js +20 -0
  31. package/dist/esm/providers/solana/defaultRpcFactory.js.map +1 -0
  32. package/dist/esm/providers/solana/index.d.ts +4 -0
  33. package/dist/esm/providers/solana/index.js +5 -0
  34. package/dist/esm/providers/solana/index.js.map +1 -0
  35. package/dist/esm/providers/solana/rateLimitedRpcFactory.d.ts +16 -0
  36. package/dist/esm/providers/solana/rateLimitedRpcFactory.js +116 -0
  37. package/dist/esm/providers/solana/rateLimitedRpcFactory.js.map +1 -0
  38. package/dist/esm/providers/solana/utils.d.ts +9 -0
  39. package/dist/esm/providers/solana/utils.js +2 -0
  40. package/dist/esm/providers/solana/utils.js.map +1 -0
  41. package/dist/types/providers/index.d.ts +1 -0
  42. package/dist/types/providers/index.d.ts.map +1 -1
  43. package/dist/types/providers/retryProvider.d.ts.map +1 -1
  44. package/dist/types/providers/solana/baseRpcFactories.d.ts +12 -0
  45. package/dist/types/providers/solana/baseRpcFactories.d.ts.map +1 -0
  46. package/dist/types/providers/solana/defaultRpcFactory.d.ts +7 -0
  47. package/dist/types/providers/solana/defaultRpcFactory.d.ts.map +1 -0
  48. package/dist/types/providers/solana/index.d.ts +5 -0
  49. package/dist/types/providers/solana/index.d.ts.map +1 -0
  50. package/dist/types/providers/solana/rateLimitedRpcFactory.d.ts +17 -0
  51. package/dist/types/providers/solana/rateLimitedRpcFactory.d.ts.map +1 -0
  52. package/dist/types/providers/solana/utils.d.ts +10 -0
  53. package/dist/types/providers/solana/utils.d.ts.map +1 -0
  54. package/package.json +3 -1
  55. package/src/providers/index.ts +1 -0
  56. package/src/providers/retryProvider.ts +4 -3
  57. package/src/providers/solana/baseRpcFactories.ts +25 -0
  58. package/src/providers/solana/defaultRpcFactory.ts +13 -0
  59. package/src/providers/solana/index.ts +4 -0
  60. package/src/providers/solana/rateLimitedRpcFactory.ts +101 -0
  61. package/src/providers/solana/utils.ts +14 -0
@@ -6,3 +6,4 @@ export * from "./constants";
6
6
  export * from "./types";
7
7
  export * from "./utils";
8
8
  export * as mocks from "./mockProvider";
9
+ export * from "./solana";
@@ -10,4 +10,5 @@ tslib_1.__exportStar(require("./constants"), exports);
10
10
  tslib_1.__exportStar(require("./types"), exports);
11
11
  tslib_1.__exportStar(require("./utils"), exports);
12
12
  exports.mocks = tslib_1.__importStar(require("./mockProvider"));
13
+ tslib_1.__exportStar(require("./solana"), exports);
13
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/index.ts"],"names":[],"mappings":";;;;AAAA,gEAAsC;AACtC,2DAAiC;AACjC,0DAAgC;AAChC,0DAAgC;AAChC,sDAA4B;AAC5B,kDAAwB;AACxB,kDAAwB;AACxB,gEAAwC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/index.ts"],"names":[],"mappings":";;;;AAAA,gEAAsC;AACtC,2DAAiC;AACjC,0DAAgC;AAChC,0DAAgC;AAChC,sDAA4B;AAC5B,kDAAwB;AACxB,kDAAwB;AACxB,gEAAwC;AACxC,mDAAyB"}
@@ -242,13 +242,13 @@ var RetryProvider = (function (_super) {
242
242
  if (err.code >= -32768 && err.code <= -32100) {
243
243
  return false;
244
244
  }
245
- var message = err.message;
245
+ var message = err.message.toLowerCase();
246
246
  switch (method) {
247
247
  case "eth_call":
248
248
  case "eth_estimateGas":
249
- return message.toLowerCase().includes("revert");
249
+ return message.includes("revert");
250
250
  case "eth_sendRawTransaction":
251
- return message.toLowerCase().includes("nonce");
251
+ return message.includes("nonce") || message.includes("underpriced");
252
252
  default:
253
253
  break;
254
254
  }
@@ -1 +1 @@
1
- {"version":3,"file":"retryProvider.js","sourceRoot":"","sources":["../../../src/providers/retryProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"retryProvider.js","sourceRoot":"","sources":["../../../src/providers/retryProvider.ts"],"names":[],"mappings":";;;;AAAA,iCAAgC;AAEhC,0CAAyC;AACzC,kCAAmF;AACnF,sDAAyD;AACzD,mDAAiD;AACjD,iCAA6F;AAC7F,yCAAiD;AACjD,iCAAiD;AAGjD;IAAmC,yCAAsC;IAEvE,uBACE,MAA8E,EAC9E,OAAe,EACN,mBAA2B,EAC3B,OAAe,EACf,KAAa,EACb,cAAsB,EAC/B,sBAA8B,EAC9B,iBAAyB,EACzB,WAAuC,EACvC,wBAAiC,EACjC,kBAA2B,EAC3B,gBAAqC,EAC5B,MAAe;QADxB,iCAAA,EAAA,mBAAmB,8BAAkB;QAZvC,YAiBE,kBAAM,SAAS,EAAE,OAAO,CAAC,SAqC1B;QAnDU,yBAAmB,GAAnB,mBAAmB,CAAQ;QAC3B,aAAO,GAAP,OAAO,CAAQ;QACf,WAAK,GAAL,KAAK,CAAQ;QACb,oBAAc,GAAd,cAAc,CAAQ;QAOtB,YAAM,GAAN,MAAM,CAAS;QAKxB,KAAI,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,CACzB,UAAC,MAAM;YACL,YAAI,8BAAa,YAAb,8BAAa,iCACf,sBAAsB;gBACtB,WAAW;gBACX,wBAAwB;gBACxB,kBAAkB;gBAClB,gBAAgB;gBAChB,cAAc;gBACd,iBAAiB;gBACjB,MAAM,GACH,MAAM;QATX,CAUC,CACJ,CAAC;QAEF,IAAI,OAAO,KAAK,qBAAS,CAAC,OAAO,EAAE;YACjC,KAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,KAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAC,QAAQ,IAAK,OAAA,CAAC,QAAQ,CAAC,eAAe,GAAG,KAAI,CAAC,eAAe,CAAC,EAAjD,CAAiD,CAAC,CAAC;SACzF;QAED,IAAI,KAAI,CAAC,mBAAmB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAI,CAAC,mBAAmB,CAAC,EAAE;YAC/E,MAAM,IAAI,KAAK,CACb,sFAA+E,KAAI,CAAC,mBAAmB,CAAE,CAC1G,CAAC;SACH;QACD,IAAI,KAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAI,CAAC,OAAO,CAAC,EAAE;YACvD,MAAM,IAAI,KAAK,CAAC,yEAAkE,KAAI,CAAC,OAAO,CAAE,CAAC,CAAC;SACnG;QACD,IAAI,KAAI,CAAC,KAAK,GAAG,CAAC,EAAE;YAClB,MAAM,IAAI,KAAK,CAAC,gDAAyC,KAAI,CAAC,KAAK,CAAE,CAAC,CAAC;SACxE;QACD,IAAI,KAAI,CAAC,mBAAmB,GAAG,KAAI,CAAC,SAAS,CAAC,MAAM,EAAE;YACpD,MAAM,IAAI,KAAK,CACb,+BAAwB,KAAI,CAAC,mBAAmB,mDAAyC,KAAI,CAAC,SAAS,CAAC,MAAM,MAAG,CAClH,CAAC;SACH;;IACH,CAAC;IAEc,4BAAI,GAAnB,UAAoB,MAAc,EAAE,MAAsB;;;;;;;;wBAClD,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;wBAClD,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;wBAC7D,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;wBAC1D,MAAM,GAAuD,EAAE,CAAC;wBAMhE,eAAe,GAAG,UACtB,QAAgD;4BAEhD,OAAO,KAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;iCAC3C,IAAI,CAAC,UAAC,MAAM,IAAwD,OAAA,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAlB,CAAkB,CAAC;iCACvF,KAAK,CAAC,UAAC,GAAY;gCAGlB,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAW,aAAX,GAAG,uBAAH,GAAG,CAAU,KAAK,MAAI,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,QAAQ,EAAE,CAAA,CAAC,CAAC,CAAC;gCAIhE,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE;oCAClC,MAAM,GAAG,CAAC;iCACX;gCAGD,IAAI,eAAe,KAAK,CAAC,IAAI,KAAI,CAAC,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;oCAC5D,MAAM,GAAG,CAAC;iCACX;gCAMD,OAAO,eAAe,CAAC,iBAAiB,CAAC,KAAK,EAAG,CAAC,CAAC;4BACrD,CAAC,CAAC,CAAC;wBACP,CAAC,CAAC;wBAEc,WAAM,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,EAAA;;wBAA1E,OAAO,GAAG,SAAgE;wBAEhF,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,0BAAkB,CAAC,EAAE;4BAEhC,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,UAAC,EAAqB;oCAApB,QAAQ,QAAA,EAAE,SAAS,QAAA;gCAAM,OAAA,IAAA,2BAAmB,EAAC,QAAQ,EAAE,SAAS,CAAC;4BAAxC,CAAwC,CAAC,CAAC;4BAC7F,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,0BAAkB,CAAC,CAAC,GAAG,CAAC,UAAC,MAAM,IAAK,OAAA,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAA9B,CAA8B,CAAC,CAAC;4BAClH,MAAM,IAAA,kCAA0B,EAC9B,mDAA4C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAI;gCACnE,iCAA0B,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAE,EAC/D,MAAA,OAAO,CAAC,IAAI,CAAC,yBAAiB,CAAC,0CAAE,MAAM,CACxC,CAAC;yBACH;wBAEK,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,UAAC,MAAM,IAAK,OAAA,MAAM,CAAC,KAAK,EAAZ,CAAY,CAAC,CAAC;wBAIrD,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAC,EAAU;gCAAP,MAAM,QAAA;4BAAM,OAAA,IAAA,yBAAiB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;wBAA/C,CAA+C,CAAC,EAAE;4BAC1F,WAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;yBACrB;wBAEK,sBAAsB,GAAG,UAAC,MAA2D;4BACzF,OAAO,MAAM;iCACV,MAAM,CAAC,UAAC,EAAU;oCAAP,MAAM,QAAA;gCAAM,OAAA,CAAC,IAAA,yBAAiB,EAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC;4BAAhD,CAAgD,CAAC;iCACxE,GAAG,CAAC,UAAC,EAAU;oCAAT,QAAQ,QAAA;gCAAM,OAAA,QAAQ,CAAC,UAAU,CAAC,GAAG;4BAAvB,CAAuB,CAAC,CAAC;wBAClD,CAAC,CAAC;wBAEI,iCAAiC,GAAG,UACxC,MAAc,EACd,MAAsB,EACtB,eAAyB,EACzB,mBAA6B,EAC7B,MAA0D;;4BAE1D,MAAA,KAAI,CAAC,MAAM,0CAAE,IAAI,CAAC;gCAChB,EAAE,EAAE,eAAe;gCACnB,OAAO,EAAE,+DAA+D;gCACxE,gBAAgB,EAAE,aAAa;gCAC/B,MAAM,QAAA;gCACN,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;gCAC9B,eAAe,iBAAA;gCACf,mBAAmB,qBAAA;gCACnB,iBAAiB,EAAE,MAAM,CAAC,GAAG,CAAC,UAAC,EAAqB;wCAApB,QAAQ,QAAA,EAAE,SAAS,QAAA;oCAAM,OAAA,IAAA,2BAAmB,EAAC,QAAQ,EAAE,SAAS,CAAC;gCAAxC,CAAwC,CAAC;6BACnG,CAAC,CAAC;wBACL,CAAC,CAAC;wBAEI,gBAAgB,GAAG,UAAC,cAAoE;4BAC5F,IAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,UAAC,EAAqB;oCAApB,QAAQ,QAAA,EAAE,SAAS,QAAA;gCAAM,OAAA,IAAA,2BAAmB,EAAC,QAAQ,EAAE,SAAS,CAAC;4BAAxC,CAAwC,CAAC,CAAC;4BACnG,IAAM,sBAAsB,GAAG,MAAM,CAAC,GAAG,CAAC,UAAC,EAAU;oCAAT,QAAQ,QAAA;gCAAM,OAAA,QAAQ,CAAC,UAAU,CAAC,GAAG;4BAAvB,CAAuB,CAAC,CAAC;4BACnF,IAAM,mBAAmB,GAAG,sBAAsB,iDAAK,MAAM,SAAK,CAAC,cAAc,IAAI,EAAE,CAAC,QAAE,CAAC;4BAC3F,iCAAiC,CAAC,MAAM,EAAE,MAAM,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,CAAC,CAAC;4BACvG,MAAM,IAAI,KAAK,CACb,+CAA+C;gCAC7C,2BAA2B;gCAC3B,UAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAI;gCAC5B,uDAAuD;gCACvD,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CACpC,CAAC;wBACJ,CAAC,CAAC;wBAGF,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE;4BAClC,gBAAgB,EAAE,CAAC;yBACpB;wBAGuB,WAAM,OAAO,CAAC,UAAU,CAC9C,iBAAiB,CAAC,GAAG,CAAC,UAAC,QAAQ;gCAC7B,OAAA,KAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;qCACpC,IAAI,CAAC,UAAC,MAAM,IAAwD,OAAA,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAlB,CAAkB,CAAC;qCACvF,KAAK,CAAC,UAAC,GAAG;oCACT,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,KAAK,MAAI,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,QAAQ,EAAE,CAAA,CAAC,CAAC,CAAC;oCACvD,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;gCACvD,CAAC,CAAC;4BALJ,CAKI,CACL,CACF,EAAA;;wBATK,eAAe,GAAG,SASvB;wBAGK,cAAc,GAAG,eAAe,CAAC,MAAM,CAAC,0BAAkB,CAAC,CAAC,GAAG,CAAC,UAAC,OAAO,IAAK,OAAA,OAAO,CAAC,KAAK,EAAb,CAAa,CAAC,CAAC;wBAG5F,MAAM,GAAG,gDAAI,MAAM,SAAK,cAAc,QAAE,MAAM,CAClD,UAAC,GAAG,EAAE,IAAI;4BACC,IAAA,MAAM,GAAI,IAAI,GAAR,CAAS;4BAGxB,IAAM,aAAa,GAAG,GAAG,CAAC,IAAI,CAAC,UAAC,EAAgB;oCAAf,cAAc,QAAA;gCAAM,OAAA,IAAA,yBAAiB,EAAC,MAAM,EAAE,cAAc,EAAE,MAAM,CAAC;4BAAjD,CAAiD,CAAC,CAAC;4BAGxG,IAAI,aAAa,EAAE;gCACjB,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;6BACpB;iCAAM;gCACL,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;6BACvB;4BAGD,OAAO,GAAG,CAAC;wBACb,CAAC,EACD,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAwB,CACxC,CAAC;wBAGF,MAAM,CAAC,IAAI,CAAC,UAAC,EAAK,EAAE,EAAK;gCAAT,CAAC,QAAA;gCAAM,CAAC,QAAA;4BAAM,OAAA,CAAC,GAAG,CAAC;wBAAL,CAAK,CAAC,CAAC;wBAG/B,KAAwB,MAAM,CAAC,CAAC,CAAC,EAAhC,YAAY,QAAA,EAAE,KAAK,QAAA,CAAc;wBAGxC,IAAI,KAAK,GAAG,eAAe,EAAE;4BAC3B,gBAAgB,CAAC,cAAc,CAAC,CAAC;yBAClC;wBAGK,mBAAmB,GAAG,sBAAsB,iDAAK,MAAM,SAAK,cAAc,QAAE,CAAC;wBAC7E,eAAe,GAAG,gDAAI,MAAM,SAAK,cAAc,QAClD,MAAM,CAAC,UAAC,EAAU;gCAAP,MAAM,QAAA;4BAAM,OAAA,IAAA,yBAAiB,EAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC;wBAA/C,CAA+C,CAAC;6BACvE,GAAG,CAAC,UAAC,EAAU;gCAAT,QAAQ,QAAA;4BAAM,OAAA,QAAQ,CAAC,UAAU,CAAC,GAAG;wBAAvB,CAAuB,CAAC,CAAC;wBAChD,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;4BACvD,iCAAiC,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,CAAC,CAAC;yBACjG;wBAED,WAAO,YAAY,EAAC;;;;KACrB;IAED,yCAAiB,GAAjB,UAAkB,MAAc,EAAE,CAAiB,EAAE,QAAiB;QAIpE,OAAO,IAAA,iBAAS,EAAC,QAAQ,CAAC,IAAI,MAAM,KAAK,2BAA2B,CAAC;IACvE,CAAC;IAEK,wCAAgB,GAAtB,UACE,QAAgD,EAChD,MAAc,EACd,MAAsB;;;;;;4BAEL,WAAM,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,EAAA;;wBAA9C,QAAQ,GAAG,SAAmC;wBACpD,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE;4BAErD,MAAA,IAAI,CAAC,MAAM,0CAAE,KAAK,CAAC;gCACjB,EAAE,EAAE,eAAe;gCACnB,OAAO,EAAE,oCAAoC;gCAC7C,QAAQ,EAAE,IAAA,+BAAgB,EAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC;gCACnD,MAAM,QAAA;gCACN,MAAM,QAAA;gCACN,QAAQ,UAAA;6BACT,CAAC,CAAC;4BACH,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;yBAC/C;wBACD,WAAO,QAAQ,EAAC;;;;KACjB;IAOS,kCAAU,GAApB,UAAqB,QAAiB;QACpC,IAAI,CAAC,gBAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE;YAC1B,OAAO;SACR;QAED,IAAI;YACF,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,CAAC,oBAAY,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE;gBAC3B,OAAO;aACR;YAED,OAAO,KAAK,CAAC,KAAK,CAAC;SACpB;QAAC,WAAM;YACN,OAAO;SACR;IACH,CAAC;IAQS,qCAAa,GAAvB,UAAwB,MAAc,EAAE,QAAiB;QACvD,IAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACtC,IAAI,CAAC,GAAG,EAAE;YACR,OAAO,KAAK,CAAC;SACd;QAOD,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE;YAC5C,OAAO,KAAK,CAAC;SACd;QAGD,IAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAC1C,QAAQ,MAAM,EAAE;YACd,KAAK,UAAU,CAAC;YAChB,KAAK,iBAAiB;gBACpB,OAAO,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACpC,KAAK,wBAAwB;gBAE3B,OAAO,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YACtE;gBACE,MAAM;SACT;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEK,gCAAQ,GAAd,UACE,QAAgD,EAChD,MAAc,EACd,MAAsB;;;;;;wBAEhB,OAAO,GAAK,IAAI,QAAT,CAAU;;;6BAGhB,IAAI;wBACS,WAAM,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAA;;wBAAtF,OAAO,GAAI,CAAA,SAA2E,CAAA,GAA/E;wBACd,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,EAAE;4BAClC,WAAO,OAAO,CAAC,KAAK,EAAC;yBACtB;wBAED,IAAI,OAAO,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;4BAChE,MAAM,OAAO,CAAC,MAAM,CAAC;yBACtB;wBACD,WAAM,IAAA,aAAK,EAAC,IAAI,CAAC,KAAK,CAAC,EAAA;;wBAAvB,SAAuB,CAAC;;;;;;KAE3B;IAED,kCAAU,GAAV,UAAW,MAAc,EAAE,MAAsB;QAI/C,IAAI,MAAM,KAAK,aAAa,EAAE;YAC5B,OAAO,IAAI,CAAC,mBAAmB,CAAC;SACjC;QAGD,IAAI,MAAM,KAAK,sBAAsB,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;YAC1F,OAAO,IAAI,CAAC,mBAAmB,CAAC;SACjC;QAGD,IAAI,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;YACnD,OAAO,IAAI,CAAC,mBAAmB,CAAC;SACjC;QAGD,OAAO,CAAC,CAAC;IACX,CAAC;IACH,oBAAC;AAAD,CAAC,AA9VD,CAAmC,eAAM,CAAC,SAAS,CAAC,qBAAqB,GA8VxE;AA9VY,sCAAa"}
@@ -0,0 +1,11 @@
1
+ import { ClusterUrl, RpcTransport } from "@solana/web3.js";
2
+ export declare abstract class SolanaBaseRpcFactory {
3
+ readonly chainId: number;
4
+ constructor(chainId: number);
5
+ abstract createTransport(): RpcTransport;
6
+ createRpcClient(): import("@solana/web3.js").Rpc<import("@solana/web3.js").RequestAirdropApi & import("@solana/web3.js").GetAccountInfoApi & import("@solana/web3.js").GetBalanceApi & import("@solana/web3.js").GetBlockApi & import("@solana/web3.js").GetBlockCommitmentApi & import("@solana/web3.js").GetBlockHeightApi & import("@solana/web3.js").GetBlockProductionApi & import("@solana/web3.js").GetBlocksApi & import("@solana/web3.js").GetBlocksWithLimitApi & import("@solana/web3.js").GetBlockTimeApi & import("@solana/web3.js").GetClusterNodesApi & import("@solana/web3.js").GetEpochInfoApi & import("@solana/web3.js").GetEpochScheduleApi & import("@solana/web3.js").GetFeeForMessageApi & import("@solana/web3.js").GetFirstAvailableBlockApi & import("@solana/web3.js").GetGenesisHashApi & import("@solana/web3.js").GetHealthApi & import("@solana/web3.js").GetHighestSnapshotSlotApi & import("@solana/web3.js").GetIdentityApi & import("@solana/web3.js").GetInflationGovernorApi & import("@solana/web3.js").GetInflationRateApi & import("@solana/web3.js").GetInflationRewardApi & import("@solana/web3.js").GetLargestAccountsApi & import("@solana/web3.js").GetLatestBlockhashApi & import("@solana/web3.js").GetLeaderScheduleApi & import("@solana/web3.js").GetMaxRetransmitSlotApi & import("@solana/web3.js").GetMaxShredInsertSlotApi & import("@solana/web3.js").GetMinimumBalanceForRentExemptionApi & import("@solana/web3.js").GetMultipleAccountsApi & import("@solana/web3.js").GetProgramAccountsApi & import("@solana/web3.js").GetRecentPerformanceSamplesApi & import("@solana/web3.js").GetRecentPrioritizationFeesApi & import("@solana/web3.js").GetSignaturesForAddressApi & import("@solana/web3.js").GetSignatureStatusesApi & import("@solana/web3.js").GetSlotApi & import("@solana/web3.js").GetSlotLeaderApi & import("@solana/web3.js").GetSlotLeadersApi & import("@solana/web3.js").GetStakeMinimumDelegationApi & import("@solana/web3.js").GetSupplyApi & import("@solana/web3.js").GetTokenAccountBalanceApi & import("@solana/web3.js").GetTokenAccountsByDelegateApi & import("@solana/web3.js").GetTokenAccountsByOwnerApi & import("@solana/web3.js").GetTokenLargestAccountsApi & import("@solana/web3.js").GetTokenSupplyApi & import("@solana/web3.js").GetTransactionApi & import("@solana/web3.js").GetTransactionCountApi & import("@solana/web3.js").GetVersionApi & import("@solana/web3.js").GetVoteAccountsApi & import("@solana/web3.js").IsBlockhashValidApi & import("@solana/web3.js").MinimumLedgerSlotApi & import("@solana/web3.js").SendTransactionApi & import("@solana/web3.js").SimulateTransactionApi>;
7
+ }
8
+ export declare abstract class SolanaClusterRpcFactory extends SolanaBaseRpcFactory {
9
+ readonly clusterUrl: ClusterUrl;
10
+ constructor(clusterUrl: ClusterUrl, ...baseConstructorParams: ConstructorParameters<typeof SolanaBaseRpcFactory>);
11
+ }
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SolanaClusterRpcFactory = exports.SolanaBaseRpcFactory = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var web3_js_1 = require("@solana/web3.js");
6
+ var SolanaBaseRpcFactory = (function () {
7
+ function SolanaBaseRpcFactory(chainId) {
8
+ this.chainId = chainId;
9
+ }
10
+ SolanaBaseRpcFactory.prototype.createRpcClient = function () {
11
+ return (0, web3_js_1.createSolanaRpcFromTransport)(this.createTransport());
12
+ };
13
+ return SolanaBaseRpcFactory;
14
+ }());
15
+ exports.SolanaBaseRpcFactory = SolanaBaseRpcFactory;
16
+ var SolanaClusterRpcFactory = (function (_super) {
17
+ tslib_1.__extends(SolanaClusterRpcFactory, _super);
18
+ function SolanaClusterRpcFactory(clusterUrl) {
19
+ var baseConstructorParams = [];
20
+ for (var _i = 1; _i < arguments.length; _i++) {
21
+ baseConstructorParams[_i - 1] = arguments[_i];
22
+ }
23
+ var _this = _super.apply(this, baseConstructorParams) || this;
24
+ _this.clusterUrl = clusterUrl;
25
+ return _this;
26
+ }
27
+ return SolanaClusterRpcFactory;
28
+ }(SolanaBaseRpcFactory));
29
+ exports.SolanaClusterRpcFactory = SolanaClusterRpcFactory;
30
+ //# sourceMappingURL=baseRpcFactories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baseRpcFactories.js","sourceRoot":"","sources":["../../../../src/providers/solana/baseRpcFactories.ts"],"names":[],"mappings":";;;;AAAA,2CAAyF;AAGzF;IACE,8BAAqB,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;IAAG,CAAC;IAMjC,8CAAe,GAAtB;QACE,OAAO,IAAA,sCAA4B,EAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;IAC9D,CAAC;IACH,2BAAC;AAAD,CAAC,AAVD,IAUC;AAVqB,oDAAoB;AAc1C;IAAsD,mDAAoB;IACxE,iCACW,UAAsB;QAC/B,+BAA4E;aAA5E,UAA4E,EAA5E,qBAA4E,EAA5E,IAA4E;YAA5E,8CAA4E;;QAF9E,+BAIW,qBAAqB,UAC/B;QAJU,gBAAU,GAAV,UAAU,CAAY;;IAIjC,CAAC;IACH,8BAAC;AAAD,CAAC,AAPD,CAAsD,oBAAoB,GAOzE;AAPqB,0DAAuB"}
@@ -0,0 +1,6 @@
1
+ import { RpcTransport } from "@solana/web3.js";
2
+ import { SolanaClusterRpcFactory } from "./baseRpcFactories";
3
+ export declare class SolanaDefaultRpcFactory extends SolanaClusterRpcFactory {
4
+ constructor(...clusterConstructorParams: ConstructorParameters<typeof SolanaClusterRpcFactory>);
5
+ createTransport(): RpcTransport;
6
+ }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SolanaDefaultRpcFactory = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var web3_js_1 = require("@solana/web3.js");
6
+ var baseRpcFactories_1 = require("./baseRpcFactories");
7
+ var SolanaDefaultRpcFactory = (function (_super) {
8
+ tslib_1.__extends(SolanaDefaultRpcFactory, _super);
9
+ function SolanaDefaultRpcFactory() {
10
+ var clusterConstructorParams = [];
11
+ for (var _i = 0; _i < arguments.length; _i++) {
12
+ clusterConstructorParams[_i] = arguments[_i];
13
+ }
14
+ return _super.apply(this, clusterConstructorParams) || this;
15
+ }
16
+ SolanaDefaultRpcFactory.prototype.createTransport = function () {
17
+ return (0, web3_js_1.createDefaultRpcTransport)({ url: this.clusterUrl });
18
+ };
19
+ return SolanaDefaultRpcFactory;
20
+ }(baseRpcFactories_1.SolanaClusterRpcFactory));
21
+ exports.SolanaDefaultRpcFactory = SolanaDefaultRpcFactory;
22
+ //# sourceMappingURL=defaultRpcFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultRpcFactory.js","sourceRoot":"","sources":["../../../../src/providers/solana/defaultRpcFactory.ts"],"names":[],"mappings":";;;;AAAA,2CAA0E;AAC1E,uDAA6D;AAG7D;IAA6C,mDAAuB;IAClE;QAAY,kCAAkF;aAAlF,UAAkF,EAAlF,qBAAkF,EAAlF,IAAkF;YAAlF,6CAAkF;;kCACnF,wBAAwB;IACnC,CAAC;IAEM,iDAAe,GAAtB;QACE,OAAO,IAAA,mCAAyB,EAAC,EAAE,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAC7D,CAAC;IACH,8BAAC;AAAD,CAAC,AARD,CAA6C,0CAAuB,GAQnE;AARY,0DAAuB"}
@@ -0,0 +1,4 @@
1
+ export * from "./baseRpcFactories";
2
+ export * from "./defaultRpcFactory";
3
+ export * from "./rateLimitedRpcFactory";
4
+ export * from "./utils";
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./baseRpcFactories"), exports);
5
+ tslib_1.__exportStar(require("./defaultRpcFactory"), exports);
6
+ tslib_1.__exportStar(require("./rateLimitedRpcFactory"), exports);
7
+ tslib_1.__exportStar(require("./utils"), exports);
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/providers/solana/index.ts"],"names":[],"mappings":";;;AAAA,6DAAmC;AACnC,8DAAoC;AACpC,kEAAwC;AACxC,kDAAwB"}
@@ -0,0 +1,16 @@
1
+ import { RpcResponse } from "@solana/web3.js";
2
+ import { Logger } from "winston";
3
+ import { SolanaClusterRpcFactory } from "./baseRpcFactories";
4
+ import { SolanaDefaultRpcFactory } from "./defaultRpcFactory";
5
+ export declare class RateLimitedSolanaRpcFactory extends SolanaClusterRpcFactory {
6
+ readonly pctRpcCallsLogged: number;
7
+ readonly logger: Logger;
8
+ private queue;
9
+ private readonly defaultTransport;
10
+ constructor(maxConcurrency: number, pctRpcCallsLogged: number, logger: Logger, ...defaultConstructorParams: ConstructorParameters<typeof SolanaDefaultRpcFactory>);
11
+ private wrapSendWithLog;
12
+ createTransport(): <TResponse>(config: Readonly<{
13
+ payload: unknown;
14
+ signal?: AbortSignal | undefined;
15
+ }>) => Promise<TResponse>;
16
+ }
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RateLimitedSolanaRpcFactory = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var async_1 = require("async");
6
+ var winston_1 = tslib_1.__importDefault(require("winston"));
7
+ var baseRpcFactories_1 = require("./baseRpcFactories");
8
+ var defaultRpcFactory_1 = require("./defaultRpcFactory");
9
+ var utils_1 = require("../../utils");
10
+ var RateLimitedSolanaRpcFactory = (function (_super) {
11
+ tslib_1.__extends(RateLimitedSolanaRpcFactory, _super);
12
+ function RateLimitedSolanaRpcFactory(maxConcurrency, pctRpcCallsLogged, logger) {
13
+ if (logger === void 0) { logger = winston_1.default.createLogger({
14
+ transports: [new winston_1.default.transports.Console()],
15
+ }); }
16
+ var defaultConstructorParams = [];
17
+ for (var _i = 3; _i < arguments.length; _i++) {
18
+ defaultConstructorParams[_i - 3] = arguments[_i];
19
+ }
20
+ var _this = _super.apply(this, defaultConstructorParams) || this;
21
+ _this.pctRpcCallsLogged = pctRpcCallsLogged;
22
+ _this.logger = logger;
23
+ _this.defaultTransport = new (defaultRpcFactory_1.SolanaDefaultRpcFactory.bind.apply(defaultRpcFactory_1.SolanaDefaultRpcFactory, tslib_1.__spreadArray([void 0], defaultConstructorParams, false)))().createTransport();
24
+ _this.queue = (0, async_1.queue)(function (_a, callback) {
25
+ var rpcArgs = _a.rpcArgs, resolve = _a.resolve, reject = _a.reject;
26
+ return tslib_1.__awaiter(_this, void 0, void 0, function () {
27
+ return tslib_1.__generator(this, function (_b) {
28
+ switch (_b.label) {
29
+ case 0: return [4, this.wrapSendWithLog.apply(this, rpcArgs).then(resolve)
30
+ .catch(reject)];
31
+ case 1:
32
+ _b.sent();
33
+ callback();
34
+ return [2];
35
+ }
36
+ });
37
+ });
38
+ }, maxConcurrency);
39
+ return _this;
40
+ }
41
+ RateLimitedSolanaRpcFactory.prototype.wrapSendWithLog = function () {
42
+ var rpcArgs = [];
43
+ for (var _i = 0; _i < arguments.length; _i++) {
44
+ rpcArgs[_i] = arguments[_i];
45
+ }
46
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
47
+ var payload, loggerArgs, startTime, result, elapsedTimeS, error_1, elapsedTimeS;
48
+ return tslib_1.__generator(this, function (_a) {
49
+ switch (_a.label) {
50
+ case 0:
51
+ if (!(this.pctRpcCallsLogged <= 0 || Math.random() > this.pctRpcCallsLogged / 100)) return [3, 2];
52
+ return [4, this.defaultTransport.apply(this, rpcArgs)];
53
+ case 1: return [2, _a.sent()];
54
+ case 2:
55
+ payload = rpcArgs[0].payload;
56
+ loggerArgs = {
57
+ at: "SolanaProviderUtils",
58
+ message: "Solana provider response sample",
59
+ provider: (0, utils_1.getOriginFromURL)(this.clusterUrl),
60
+ method: payload.method,
61
+ params: payload.params,
62
+ chainId: this.chainId,
63
+ datadog: true,
64
+ };
65
+ startTime = performance.now();
66
+ _a.label = 3;
67
+ case 3:
68
+ _a.trys.push([3, 5, , 6]);
69
+ return [4, this.defaultTransport.apply(this, rpcArgs)];
70
+ case 4:
71
+ result = _a.sent();
72
+ elapsedTimeS = (performance.now() - startTime) / 1000;
73
+ this.logger.debug(tslib_1.__assign(tslib_1.__assign({}, loggerArgs), { success: true, timeElapsed: elapsedTimeS }));
74
+ return [2, result];
75
+ case 5:
76
+ error_1 = _a.sent();
77
+ elapsedTimeS = (performance.now() - startTime) / 1000;
78
+ this.logger.debug(tslib_1.__assign(tslib_1.__assign({}, loggerArgs), { success: false, timeElapsed: elapsedTimeS }));
79
+ throw error_1;
80
+ case 6: return [2];
81
+ }
82
+ });
83
+ });
84
+ };
85
+ RateLimitedSolanaRpcFactory.prototype.createTransport = function () {
86
+ var _this = this;
87
+ return function () {
88
+ var args = [];
89
+ for (var _i = 0; _i < arguments.length; _i++) {
90
+ args[_i] = arguments[_i];
91
+ }
92
+ return new Promise(function (resolve, reject) {
93
+ var task = {
94
+ rpcArgs: args,
95
+ resolve: resolve,
96
+ reject: reject,
97
+ };
98
+ void _this.queue.push(task);
99
+ });
100
+ };
101
+ };
102
+ return RateLimitedSolanaRpcFactory;
103
+ }(baseRpcFactories_1.SolanaClusterRpcFactory));
104
+ exports.RateLimitedSolanaRpcFactory = RateLimitedSolanaRpcFactory;
105
+ //# sourceMappingURL=rateLimitedRpcFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rateLimitedRpcFactory.js","sourceRoot":"","sources":["../../../../src/providers/solana/rateLimitedRpcFactory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { RpcTransport } from "@solana/rpc-spec";
2
+ export interface SolanaRateLimitTask {
3
+ rpcArgs: Parameters<RpcTransport>;
4
+ resolve: (result: unknown) => void;
5
+ reject: (err: unknown) => void;
6
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/providers/solana/utils.ts"],"names":[],"mappings":""}
@@ -6,3 +6,4 @@ export * from "./constants";
6
6
  export * from "./types";
7
7
  export * from "./utils";
8
8
  export * as mocks from "./mockProvider";
9
+ export * from "./solana";
@@ -7,4 +7,5 @@ export * from "./types";
7
7
  export * from "./utils";
8
8
  import * as mocks_1 from "./mockProvider";
9
9
  export { mocks_1 as mocks };
10
+ export * from "./solana";
10
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;yBACD,gBAAgB;oBAA3B,KAAK"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;yBACD,gBAAgB;oBAA3B,KAAK;AACjB,cAAc,UAAU,CAAC"}
@@ -281,13 +281,14 @@ var RetryProvider = /** @class */ (function (_super) {
281
281
  return false; // Cannot handle these errors.
282
282
  }
283
283
  // The `data` member of err _may_ be populated but would need to be verified.
284
- var message = err.message;
284
+ var message = err.message.toLowerCase();
285
285
  switch (method) {
286
286
  case "eth_call":
287
287
  case "eth_estimateGas":
288
- return message.toLowerCase().includes("revert"); // Transaction will fail.
288
+ return message.includes("revert"); // Transaction will fail.
289
289
  case "eth_sendRawTransaction":
290
- return message.toLowerCase().includes("nonce"); // Nonce too low.
290
+ // Nonce too low or gas price is too low.
291
+ return message.includes("nonce") || message.includes("underpriced");
291
292
  default:
292
293
  break;
293
294
  }
@@ -1 +1 @@
1
- {"version":3,"file":"retryProvider.js","sourceRoot":"","sources":["../../../src/providers/retryProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"retryProvider.js","sourceRoot":"","sources":["../../../src/providers/retryProvider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { ClusterUrl, RpcTransport } from "@solana/web3.js";
2
+ export declare abstract class SolanaBaseRpcFactory {
3
+ readonly chainId: number;
4
+ constructor(chainId: number);
5
+ abstract createTransport(): RpcTransport;
6
+ createRpcClient(): import("@solana/web3.js").Rpc<import("@solana/web3.js").RequestAirdropApi & import("@solana/web3.js").GetAccountInfoApi & import("@solana/web3.js").GetBalanceApi & import("@solana/web3.js").GetBlockApi & import("@solana/web3.js").GetBlockCommitmentApi & import("@solana/web3.js").GetBlockHeightApi & import("@solana/web3.js").GetBlockProductionApi & import("@solana/web3.js").GetBlocksApi & import("@solana/web3.js").GetBlocksWithLimitApi & import("@solana/web3.js").GetBlockTimeApi & import("@solana/web3.js").GetClusterNodesApi & import("@solana/web3.js").GetEpochInfoApi & import("@solana/web3.js").GetEpochScheduleApi & import("@solana/web3.js").GetFeeForMessageApi & import("@solana/web3.js").GetFirstAvailableBlockApi & import("@solana/web3.js").GetGenesisHashApi & import("@solana/web3.js").GetHealthApi & import("@solana/web3.js").GetHighestSnapshotSlotApi & import("@solana/web3.js").GetIdentityApi & import("@solana/web3.js").GetInflationGovernorApi & import("@solana/web3.js").GetInflationRateApi & import("@solana/web3.js").GetInflationRewardApi & import("@solana/web3.js").GetLargestAccountsApi & import("@solana/web3.js").GetLatestBlockhashApi & import("@solana/web3.js").GetLeaderScheduleApi & import("@solana/web3.js").GetMaxRetransmitSlotApi & import("@solana/web3.js").GetMaxShredInsertSlotApi & import("@solana/web3.js").GetMinimumBalanceForRentExemptionApi & import("@solana/web3.js").GetMultipleAccountsApi & import("@solana/web3.js").GetProgramAccountsApi & import("@solana/web3.js").GetRecentPerformanceSamplesApi & import("@solana/web3.js").GetRecentPrioritizationFeesApi & import("@solana/web3.js").GetSignaturesForAddressApi & import("@solana/web3.js").GetSignatureStatusesApi & import("@solana/web3.js").GetSlotApi & import("@solana/web3.js").GetSlotLeaderApi & import("@solana/web3.js").GetSlotLeadersApi & import("@solana/web3.js").GetStakeMinimumDelegationApi & import("@solana/web3.js").GetSupplyApi & import("@solana/web3.js").GetTokenAccountBalanceApi & import("@solana/web3.js").GetTokenAccountsByDelegateApi & import("@solana/web3.js").GetTokenAccountsByOwnerApi & import("@solana/web3.js").GetTokenLargestAccountsApi & import("@solana/web3.js").GetTokenSupplyApi & import("@solana/web3.js").GetTransactionApi & import("@solana/web3.js").GetTransactionCountApi & import("@solana/web3.js").GetVersionApi & import("@solana/web3.js").GetVoteAccountsApi & import("@solana/web3.js").IsBlockhashValidApi & import("@solana/web3.js").MinimumLedgerSlotApi & import("@solana/web3.js").SendTransactionApi & import("@solana/web3.js").SimulateTransactionApi>;
7
+ }
8
+ export declare abstract class SolanaClusterRpcFactory extends SolanaBaseRpcFactory {
9
+ readonly clusterUrl: ClusterUrl;
10
+ constructor(clusterUrl: ClusterUrl, ...baseConstructorParams: ConstructorParameters<typeof SolanaBaseRpcFactory>);
11
+ }
@@ -0,0 +1,31 @@
1
+ import { __extends } from "tslib";
2
+ import { createSolanaRpcFromTransport } from "@solana/web3.js";
3
+ // This is abstract base class for creating Solana RPC clients and transports.
4
+ var SolanaBaseRpcFactory = /** @class */ (function () {
5
+ function SolanaBaseRpcFactory(chainId) {
6
+ this.chainId = chainId;
7
+ }
8
+ // This method creates a Solana RPC client from the implemented transport.
9
+ SolanaBaseRpcFactory.prototype.createRpcClient = function () {
10
+ return createSolanaRpcFromTransport(this.createTransport());
11
+ };
12
+ return SolanaBaseRpcFactory;
13
+ }());
14
+ export { SolanaBaseRpcFactory };
15
+ // Enhanced class for creating Solana RPC clients and transports storing additional cluster info.
16
+ // This can be used by derived classes that are connected to a single base transport.
17
+ var SolanaClusterRpcFactory = /** @class */ (function (_super) {
18
+ __extends(SolanaClusterRpcFactory, _super);
19
+ function SolanaClusterRpcFactory(clusterUrl) {
20
+ var baseConstructorParams = [];
21
+ for (var _i = 1; _i < arguments.length; _i++) {
22
+ baseConstructorParams[_i - 1] = arguments[_i];
23
+ }
24
+ var _this = _super.apply(this, baseConstructorParams) || this;
25
+ _this.clusterUrl = clusterUrl;
26
+ return _this;
27
+ }
28
+ return SolanaClusterRpcFactory;
29
+ }(SolanaBaseRpcFactory));
30
+ export { SolanaClusterRpcFactory };
31
+ //# sourceMappingURL=baseRpcFactories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baseRpcFactories.js","sourceRoot":"","sources":["../../../../src/providers/solana/baseRpcFactories.ts"],"names":[],"mappings":";AAAA,OAAO,EAAc,4BAA4B,EAAgB,MAAM,iBAAiB,CAAC;AAEzF,8EAA8E;AAC9E;IACE,8BAAqB,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;IAAG,CAAC;IAKxC,0EAA0E;IACnE,8CAAe,GAAtB;QACE,OAAO,4BAA4B,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;IAC9D,CAAC;IACH,2BAAC;AAAD,CAAC,AAVD,IAUC;;AAED,iGAAiG;AACjG,qFAAqF;AACrF;IAAsD,2CAAoB;IACxE,iCACW,UAAsB;QAC/B,+BAA4E;aAA5E,UAA4E,EAA5E,qBAA4E,EAA5E,IAA4E;YAA5E,8CAA4E;;QAF9E,+BAIW,qBAAqB,UAC/B;QAJU,gBAAU,GAAV,UAAU,CAAY;;IAIjC,CAAC;IACH,8BAAC;AAAD,CAAC,AAPD,CAAsD,oBAAoB,GAOzE"}
@@ -0,0 +1,6 @@
1
+ import { RpcTransport } from "@solana/web3.js";
2
+ import { SolanaClusterRpcFactory } from "./baseRpcFactories";
3
+ export declare class SolanaDefaultRpcFactory extends SolanaClusterRpcFactory {
4
+ constructor(...clusterConstructorParams: ConstructorParameters<typeof SolanaClusterRpcFactory>);
5
+ createTransport(): RpcTransport;
6
+ }
@@ -0,0 +1,20 @@
1
+ import { __extends } from "tslib";
2
+ import { createDefaultRpcTransport } from "@solana/web3.js";
3
+ import { SolanaClusterRpcFactory } from "./baseRpcFactories";
4
+ // Exposes default RPC transport for Solana in the SolanaClusterRpcFactory class.
5
+ var SolanaDefaultRpcFactory = /** @class */ (function (_super) {
6
+ __extends(SolanaDefaultRpcFactory, _super);
7
+ function SolanaDefaultRpcFactory() {
8
+ var clusterConstructorParams = [];
9
+ for (var _i = 0; _i < arguments.length; _i++) {
10
+ clusterConstructorParams[_i] = arguments[_i];
11
+ }
12
+ return _super.apply(this, clusterConstructorParams) || this;
13
+ }
14
+ SolanaDefaultRpcFactory.prototype.createTransport = function () {
15
+ return createDefaultRpcTransport({ url: this.clusterUrl });
16
+ };
17
+ return SolanaDefaultRpcFactory;
18
+ }(SolanaClusterRpcFactory));
19
+ export { SolanaDefaultRpcFactory };
20
+ //# sourceMappingURL=defaultRpcFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultRpcFactory.js","sourceRoot":"","sources":["../../../../src/providers/solana/defaultRpcFactory.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,yBAAyB,EAAgB,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,iFAAiF;AACjF;IAA6C,2CAAuB;IAClE;QAAY,kCAAkF;aAAlF,UAAkF,EAAlF,qBAAkF,EAAlF,IAAkF;YAAlF,6CAAkF;;kCACnF,wBAAwB;IACnC,CAAC;IAEM,iDAAe,GAAtB;QACE,OAAO,yBAAyB,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAC7D,CAAC;IACH,8BAAC;AAAD,CAAC,AARD,CAA6C,uBAAuB,GAQnE"}
@@ -0,0 +1,4 @@
1
+ export * from "./baseRpcFactories";
2
+ export * from "./defaultRpcFactory";
3
+ export * from "./rateLimitedRpcFactory";
4
+ export * from "./utils";
@@ -0,0 +1,5 @@
1
+ export * from "./baseRpcFactories";
2
+ export * from "./defaultRpcFactory";
3
+ export * from "./rateLimitedRpcFactory";
4
+ export * from "./utils";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/providers/solana/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,SAAS,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { RpcResponse } from "@solana/web3.js";
2
+ import { Logger } from "winston";
3
+ import { SolanaClusterRpcFactory } from "./baseRpcFactories";
4
+ import { SolanaDefaultRpcFactory } from "./defaultRpcFactory";
5
+ export declare class RateLimitedSolanaRpcFactory extends SolanaClusterRpcFactory {
6
+ readonly pctRpcCallsLogged: number;
7
+ readonly logger: Logger;
8
+ private queue;
9
+ private readonly defaultTransport;
10
+ constructor(maxConcurrency: number, pctRpcCallsLogged: number, logger: Logger, ...defaultConstructorParams: ConstructorParameters<typeof SolanaDefaultRpcFactory>);
11
+ private wrapSendWithLog;
12
+ createTransport(): <TResponse>(config: Readonly<{
13
+ payload: unknown;
14
+ signal?: AbortSignal | undefined;
15
+ }>) => Promise<TResponse>;
16
+ }
@@ -0,0 +1,116 @@
1
+ import { __assign, __awaiter, __extends, __generator, __spreadArray } from "tslib";
2
+ import { queue } from "async";
3
+ import winston from "winston";
4
+ import { SolanaClusterRpcFactory } from "./baseRpcFactories";
5
+ import { SolanaDefaultRpcFactory } from "./defaultRpcFactory";
6
+ import { getOriginFromURL } from "../../utils";
7
+ // This factory is a very small addition to the SolanaDefaultRpcFactory that ensures that no more than maxConcurrency
8
+ // requests are ever in flight. It uses the async/queue library to manage this.
9
+ var RateLimitedSolanaRpcFactory = /** @class */ (function (_super) {
10
+ __extends(RateLimitedSolanaRpcFactory, _super);
11
+ // Takes the same arguments as the SolanaDefaultRpcFactory, but it has an additional parameters to control
12
+ // concurrency and logging at the beginning of the list.
13
+ function RateLimitedSolanaRpcFactory(maxConcurrency, pctRpcCallsLogged, logger) {
14
+ if (logger === void 0) { logger = winston.createLogger({
15
+ transports: [new winston.transports.Console()],
16
+ }); }
17
+ var defaultConstructorParams = [];
18
+ for (var _i = 3; _i < arguments.length; _i++) {
19
+ defaultConstructorParams[_i - 3] = arguments[_i];
20
+ }
21
+ var _this = _super.apply(this, defaultConstructorParams) || this;
22
+ _this.pctRpcCallsLogged = pctRpcCallsLogged;
23
+ _this.logger = logger;
24
+ _this.defaultTransport = new (SolanaDefaultRpcFactory.bind.apply(SolanaDefaultRpcFactory, __spreadArray([void 0], defaultConstructorParams, false)))().createTransport();
25
+ // This sets up the queue. Each task is executed by forwarding the RPC request to the underlying base transport.
26
+ // This queue sends out requests concurrently, but stops once the concurrency limit is reached. The maxConcurrency
27
+ // is configured here.
28
+ _this.queue = queue(function (_a, callback) {
29
+ var rpcArgs = _a.rpcArgs, resolve = _a.resolve, reject = _a.reject;
30
+ return __awaiter(_this, void 0, void 0, function () {
31
+ return __generator(this, function (_b) {
32
+ switch (_b.label) {
33
+ case 0: return [4 /*yield*/, this.wrapSendWithLog.apply(this, rpcArgs).then(resolve)
34
+ .catch(reject)];
35
+ case 1:
36
+ _b.sent();
37
+ // we need this for the queue to know that the task is done
38
+ // @see: https://caolan.github.io/async/v3/global.html
39
+ callback();
40
+ return [2 /*return*/];
41
+ }
42
+ });
43
+ });
44
+ }, maxConcurrency);
45
+ return _this;
46
+ }
47
+ RateLimitedSolanaRpcFactory.prototype.wrapSendWithLog = function () {
48
+ var rpcArgs = [];
49
+ for (var _i = 0; _i < arguments.length; _i++) {
50
+ rpcArgs[_i] = arguments[_i];
51
+ }
52
+ return __awaiter(this, void 0, void 0, function () {
53
+ var payload, loggerArgs, startTime, result, elapsedTimeS, error_1, elapsedTimeS;
54
+ return __generator(this, function (_a) {
55
+ switch (_a.label) {
56
+ case 0:
57
+ if (!(this.pctRpcCallsLogged <= 0 || Math.random() > this.pctRpcCallsLogged / 100)) return [3 /*break*/, 2];
58
+ return [4 /*yield*/, this.defaultTransport.apply(this, rpcArgs)];
59
+ case 1:
60
+ // Non sample path: no logging or timing, just issue the request.
61
+ return [2 /*return*/, _a.sent()];
62
+ case 2:
63
+ payload = rpcArgs[0].payload;
64
+ loggerArgs = {
65
+ at: "SolanaProviderUtils",
66
+ message: "Solana provider response sample",
67
+ provider: getOriginFromURL(this.clusterUrl),
68
+ method: payload.method,
69
+ params: payload.params,
70
+ chainId: this.chainId,
71
+ datadog: true,
72
+ };
73
+ startTime = performance.now();
74
+ _a.label = 3;
75
+ case 3:
76
+ _a.trys.push([3, 5, , 6]);
77
+ return [4 /*yield*/, this.defaultTransport.apply(this, rpcArgs)];
78
+ case 4:
79
+ result = _a.sent();
80
+ elapsedTimeS = (performance.now() - startTime) / 1000;
81
+ this.logger.debug(__assign(__assign({}, loggerArgs), { success: true, timeElapsed: elapsedTimeS }));
82
+ return [2 /*return*/, result];
83
+ case 5:
84
+ error_1 = _a.sent();
85
+ elapsedTimeS = (performance.now() - startTime) / 1000;
86
+ this.logger.debug(__assign(__assign({}, loggerArgs), { success: false, timeElapsed: elapsedTimeS }));
87
+ throw error_1;
88
+ case 6: return [2 /*return*/];
89
+ }
90
+ });
91
+ });
92
+ };
93
+ RateLimitedSolanaRpcFactory.prototype.createTransport = function () {
94
+ var _this = this;
95
+ return function () {
96
+ var args = [];
97
+ for (var _i = 0; _i < arguments.length; _i++) {
98
+ args[_i] = arguments[_i];
99
+ }
100
+ // This simply creates a promise and adds the arguments and resolve and reject handlers to the task.
101
+ return new Promise(function (resolve, reject) {
102
+ var task = {
103
+ rpcArgs: args,
104
+ resolve: resolve,
105
+ reject: reject,
106
+ };
107
+ // We didn't previously wait for this push so we can emulate
108
+ // the same behavior with the `void` keyword.
109
+ void _this.queue.push(task);
110
+ });
111
+ };
112
+ };
113
+ return RateLimitedSolanaRpcFactory;
114
+ }(SolanaClusterRpcFactory));
115
+ export { RateLimitedSolanaRpcFactory };
116
+ //# sourceMappingURL=rateLimitedRpcFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rateLimitedRpcFactory.js","sourceRoot":"","sources":["../../../../src/providers/solana/rateLimitedRpcFactory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { RpcTransport } from "@solana/rpc-spec";
2
+ /**
3
+ * This is the type we pass to define a Solana RPC request "task".
4
+ */
5
+ export interface SolanaRateLimitTask {
6
+ rpcArgs: Parameters<RpcTransport>;
7
+ resolve: (result: unknown) => void;
8
+ reject: (err: unknown) => void;
9
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/providers/solana/utils.ts"],"names":[],"mappings":""}
@@ -6,4 +6,5 @@ export * from "./constants";
6
6
  export * from "./types";
7
7
  export * from "./utils";
8
8
  export * as mocks from "./mockProvider";
9
+ export * from "./solana";
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AACxC,cAAc,UAAU,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"retryProvider.d.ts","sourceRoot":"","sources":["../../../src/providers/retryProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAQ1D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,qBAAa,aAAc,SAAQ,MAAM,CAAC,SAAS,CAAC,qBAAqB;IAKrE,QAAQ,CAAC,mBAAmB,EAAE,MAAM;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM;IACtB,QAAQ,CAAC,cAAc,EAAE,MAAM;IAO/B,QAAQ,CAAC,MAAM,CAAC;IAdlB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,qBAAqB,EAAE,CAAC;gBAE3D,MAAM,EAAE,qBAAqB,CAAC,OAAO,MAAM,CAAC,SAAS,CAAC,qBAAqB,CAAC,EAAE,EAC9E,OAAO,EAAE,MAAM,EACN,mBAAmB,EAAE,MAAM,EAC3B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,MAAM,EAC/B,sBAAsB,EAAE,MAAM,EAC9B,iBAAiB,EAAE,MAAM,EACzB,WAAW,CAAC,EAAE,yBAAyB,EACvC,wBAAwB,CAAC,EAAE,MAAM,EACjC,kBAAkB,CAAC,EAAE,MAAM,EAC3B,gBAAgB,SAAqB,EAC5B,MAAM,CAAC,oBAAQ;IA2CX,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAmK7E,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO;IAO1E,gBAAgB,CACpB,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,qBAAqB,EAChD,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,GACrB,OAAO,CAAC,OAAO,CAAC;IAiBnB;;;;OAIG;IACH,SAAS,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,SAAS;IAiBtG;;;;;OAKG;IACH,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO;IA8B7D,QAAQ,CACZ,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,qBAAqB,EAChD,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,GACrB,OAAO,CAAC,OAAO,CAAC;IAiBnB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,MAAM;CAqB3D"}
1
+ {"version":3,"file":"retryProvider.d.ts","sourceRoot":"","sources":["../../../src/providers/retryProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAQ1D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,qBAAa,aAAc,SAAQ,MAAM,CAAC,SAAS,CAAC,qBAAqB;IAKrE,QAAQ,CAAC,mBAAmB,EAAE,MAAM;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM;IACtB,QAAQ,CAAC,cAAc,EAAE,MAAM;IAO/B,QAAQ,CAAC,MAAM,CAAC;IAdlB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,qBAAqB,EAAE,CAAC;gBAE3D,MAAM,EAAE,qBAAqB,CAAC,OAAO,MAAM,CAAC,SAAS,CAAC,qBAAqB,CAAC,EAAE,EAC9E,OAAO,EAAE,MAAM,EACN,mBAAmB,EAAE,MAAM,EAC3B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,MAAM,EAC/B,sBAAsB,EAAE,MAAM,EAC9B,iBAAiB,EAAE,MAAM,EACzB,WAAW,CAAC,EAAE,yBAAyB,EACvC,wBAAwB,CAAC,EAAE,MAAM,EACjC,kBAAkB,CAAC,EAAE,MAAM,EAC3B,gBAAgB,SAAqB,EAC5B,MAAM,CAAC,oBAAQ;IA2CX,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAmK7E,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO;IAO1E,gBAAgB,CACpB,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,qBAAqB,EAChD,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,GACrB,OAAO,CAAC,OAAO,CAAC;IAiBnB;;;;OAIG;IACH,SAAS,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,SAAS;IAiBtG;;;;;OAKG;IACH,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO;IA+B7D,QAAQ,CACZ,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,qBAAqB,EAChD,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,GACrB,OAAO,CAAC,OAAO,CAAC;IAiBnB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,MAAM;CAqB3D"}
@@ -0,0 +1,12 @@
1
+ import { ClusterUrl, RpcTransport } from "@solana/web3.js";
2
+ export declare abstract class SolanaBaseRpcFactory {
3
+ readonly chainId: number;
4
+ constructor(chainId: number);
5
+ abstract createTransport(): RpcTransport;
6
+ createRpcClient(): import("@solana/web3.js").Rpc<import("@solana/web3.js").RequestAirdropApi & import("@solana/web3.js").GetAccountInfoApi & import("@solana/web3.js").GetBalanceApi & import("@solana/web3.js").GetBlockApi & import("@solana/web3.js").GetBlockCommitmentApi & import("@solana/web3.js").GetBlockHeightApi & import("@solana/web3.js").GetBlockProductionApi & import("@solana/web3.js").GetBlocksApi & import("@solana/web3.js").GetBlocksWithLimitApi & import("@solana/web3.js").GetBlockTimeApi & import("@solana/web3.js").GetClusterNodesApi & import("@solana/web3.js").GetEpochInfoApi & import("@solana/web3.js").GetEpochScheduleApi & import("@solana/web3.js").GetFeeForMessageApi & import("@solana/web3.js").GetFirstAvailableBlockApi & import("@solana/web3.js").GetGenesisHashApi & import("@solana/web3.js").GetHealthApi & import("@solana/web3.js").GetHighestSnapshotSlotApi & import("@solana/web3.js").GetIdentityApi & import("@solana/web3.js").GetInflationGovernorApi & import("@solana/web3.js").GetInflationRateApi & import("@solana/web3.js").GetInflationRewardApi & import("@solana/web3.js").GetLargestAccountsApi & import("@solana/web3.js").GetLatestBlockhashApi & import("@solana/web3.js").GetLeaderScheduleApi & import("@solana/web3.js").GetMaxRetransmitSlotApi & import("@solana/web3.js").GetMaxShredInsertSlotApi & import("@solana/web3.js").GetMinimumBalanceForRentExemptionApi & import("@solana/web3.js").GetMultipleAccountsApi & import("@solana/web3.js").GetProgramAccountsApi & import("@solana/web3.js").GetRecentPerformanceSamplesApi & import("@solana/web3.js").GetRecentPrioritizationFeesApi & import("@solana/web3.js").GetSignaturesForAddressApi & import("@solana/web3.js").GetSignatureStatusesApi & import("@solana/web3.js").GetSlotApi & import("@solana/web3.js").GetSlotLeaderApi & import("@solana/web3.js").GetSlotLeadersApi & import("@solana/web3.js").GetStakeMinimumDelegationApi & import("@solana/web3.js").GetSupplyApi & import("@solana/web3.js").GetTokenAccountBalanceApi & import("@solana/web3.js").GetTokenAccountsByDelegateApi & import("@solana/web3.js").GetTokenAccountsByOwnerApi & import("@solana/web3.js").GetTokenLargestAccountsApi & import("@solana/web3.js").GetTokenSupplyApi & import("@solana/web3.js").GetTransactionApi & import("@solana/web3.js").GetTransactionCountApi & import("@solana/web3.js").GetVersionApi & import("@solana/web3.js").GetVoteAccountsApi & import("@solana/web3.js").IsBlockhashValidApi & import("@solana/web3.js").MinimumLedgerSlotApi & import("@solana/web3.js").SendTransactionApi & import("@solana/web3.js").SimulateTransactionApi>;
7
+ }
8
+ export declare abstract class SolanaClusterRpcFactory extends SolanaBaseRpcFactory {
9
+ readonly clusterUrl: ClusterUrl;
10
+ constructor(clusterUrl: ClusterUrl, ...baseConstructorParams: ConstructorParameters<typeof SolanaBaseRpcFactory>);
11
+ }
12
+ //# sourceMappingURL=baseRpcFactories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baseRpcFactories.d.ts","sourceRoot":"","sources":["../../../../src/providers/solana/baseRpcFactories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAgC,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGzF,8BAAsB,oBAAoB;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM;gBAAf,OAAO,EAAE,MAAM;aAGpB,eAAe,IAAI,YAAY;IAGxC,eAAe;CAGvB;AAID,8BAAsB,uBAAwB,SAAQ,oBAAoB;IAEtE,QAAQ,CAAC,UAAU,EAAE,UAAU;gBAAtB,UAAU,EAAE,UAAU,EAC/B,GAAG,qBAAqB,EAAE,qBAAqB,CAAC,OAAO,oBAAoB,CAAC;CAI/E"}
@@ -0,0 +1,7 @@
1
+ import { RpcTransport } from "@solana/web3.js";
2
+ import { SolanaClusterRpcFactory } from "./baseRpcFactories";
3
+ export declare class SolanaDefaultRpcFactory extends SolanaClusterRpcFactory {
4
+ constructor(...clusterConstructorParams: ConstructorParameters<typeof SolanaClusterRpcFactory>);
5
+ createTransport(): RpcTransport;
6
+ }
7
+ //# sourceMappingURL=defaultRpcFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultRpcFactory.d.ts","sourceRoot":"","sources":["../../../../src/providers/solana/defaultRpcFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAG7D,qBAAa,uBAAwB,SAAQ,uBAAuB;gBACtD,GAAG,wBAAwB,EAAE,qBAAqB,CAAC,OAAO,uBAAuB,CAAC;IAIvF,eAAe,IAAI,YAAY;CAGvC"}
@@ -0,0 +1,5 @@
1
+ export * from "./baseRpcFactories";
2
+ export * from "./defaultRpcFactory";
3
+ export * from "./rateLimitedRpcFactory";
4
+ export * from "./utils";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/providers/solana/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,SAAS,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { RpcResponse } from "@solana/web3.js";
2
+ import { Logger } from "winston";
3
+ import { SolanaClusterRpcFactory } from "./baseRpcFactories";
4
+ import { SolanaDefaultRpcFactory } from "./defaultRpcFactory";
5
+ export declare class RateLimitedSolanaRpcFactory extends SolanaClusterRpcFactory {
6
+ readonly pctRpcCallsLogged: number;
7
+ readonly logger: Logger;
8
+ private queue;
9
+ private readonly defaultTransport;
10
+ constructor(maxConcurrency: number, pctRpcCallsLogged: number, logger: Logger, ...defaultConstructorParams: ConstructorParameters<typeof SolanaDefaultRpcFactory>);
11
+ private wrapSendWithLog;
12
+ createTransport(): <TResponse>(config: Readonly<{
13
+ payload: unknown;
14
+ signal?: AbortSignal | undefined;
15
+ }>) => Promise<TResponse>;
16
+ }
17
+ //# sourceMappingURL=rateLimitedRpcFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rateLimitedRpcFactory.d.ts","sourceRoot":"","sources":["../../../../src/providers/solana/rateLimitedRpcFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAgB,MAAM,iBAAiB,CAAC;AAE5D,OAAgB,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAM9D,qBAAa,2BAA4B,SAAQ,uBAAuB;IAWpE,QAAQ,CAAC,iBAAiB,EAAE,MAAM;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM;IAVzB,OAAO,CAAC,KAAK,CAAmC;IAGhD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAe;gBAK9C,cAAc,EAAE,MAAM,EACb,iBAAiB,EAAE,MAAM,EACzB,MAAM,EAAE,MAEf,EACF,GAAG,wBAAwB,EAAE,qBAAqB,CAAC,OAAO,uBAAuB,CAAC;YAkBtE,eAAe;IA0CtB,eAAe;;;;CAevB"}
@@ -0,0 +1,10 @@
1
+ import { RpcTransport } from "@solana/rpc-spec";
2
+ /**
3
+ * This is the type we pass to define a Solana RPC request "task".
4
+ */
5
+ export interface SolanaRateLimitTask {
6
+ rpcArgs: Parameters<RpcTransport>;
7
+ resolve: (result: unknown) => void;
8
+ reject: (err: unknown) => void;
9
+ }
10
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/providers/solana/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAElC,OAAO,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;IAIlC,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,MAAM,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;CAChC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@across-protocol/sdk",
3
3
  "author": "UMA Team",
4
- "version": "4.1.15",
4
+ "version": "4.1.16",
5
5
  "license": "AGPL-3.0",
6
6
  "homepage": "https://docs.across.to/reference/sdk",
7
7
  "files": [
@@ -48,6 +48,7 @@
48
48
  }
49
49
  ],
50
50
  "devDependencies": {
51
+ "@coral-xyz/borsh": "^0.30.1",
51
52
  "@defi-wonderland/smock": "^2.3.5",
52
53
  "@eth-optimism/contracts": "^0.5.37",
53
54
  "@nomiclabs/hardhat-ethers": "^2.2.1",
@@ -104,6 +105,7 @@
104
105
  "@eth-optimism/sdk": "^3.3.1",
105
106
  "@ethersproject/bignumber": "^5.7.0",
106
107
  "@pinata/sdk": "^2.1.0",
108
+ "@solana/web3.js": "^2.0.0",
107
109
  "@types/mocha": "^10.0.1",
108
110
  "@uma/sdk": "^0.34.10",
109
111
  "arweave": "^1.14.4",
@@ -6,3 +6,4 @@ export * from "./constants";
6
6
  export * from "./types";
7
7
  export * from "./utils";
8
8
  export * as mocks from "./mockProvider";
9
+ export * from "./solana";
@@ -302,13 +302,14 @@ export class RetryProvider extends ethers.providers.StaticJsonRpcProvider {
302
302
  }
303
303
 
304
304
  // The `data` member of err _may_ be populated but would need to be verified.
305
- const { message } = err;
305
+ const message = err.message.toLowerCase();
306
306
  switch (method) {
307
307
  case "eth_call":
308
308
  case "eth_estimateGas":
309
- return message.toLowerCase().includes("revert"); // Transaction will fail.
309
+ return message.includes("revert"); // Transaction will fail.
310
310
  case "eth_sendRawTransaction":
311
- return message.toLowerCase().includes("nonce"); // Nonce too low.
311
+ // Nonce too low or gas price is too low.
312
+ return message.includes("nonce") || message.includes("underpriced");
312
313
  default:
313
314
  break;
314
315
  }
@@ -0,0 +1,25 @@
1
+ import { ClusterUrl, createSolanaRpcFromTransport, RpcTransport } from "@solana/web3.js";
2
+
3
+ // This is abstract base class for creating Solana RPC clients and transports.
4
+ export abstract class SolanaBaseRpcFactory {
5
+ constructor(readonly chainId: number) {}
6
+
7
+ // This method must be implemented by the derived class to create a transport.
8
+ public abstract createTransport(): RpcTransport;
9
+
10
+ // This method creates a Solana RPC client from the implemented transport.
11
+ public createRpcClient() {
12
+ return createSolanaRpcFromTransport(this.createTransport());
13
+ }
14
+ }
15
+
16
+ // Enhanced class for creating Solana RPC clients and transports storing additional cluster info.
17
+ // This can be used by derived classes that are connected to a single base transport.
18
+ export abstract class SolanaClusterRpcFactory extends SolanaBaseRpcFactory {
19
+ constructor(
20
+ readonly clusterUrl: ClusterUrl,
21
+ ...baseConstructorParams: ConstructorParameters<typeof SolanaBaseRpcFactory>
22
+ ) {
23
+ super(...baseConstructorParams);
24
+ }
25
+ }
@@ -0,0 +1,13 @@
1
+ import { createDefaultRpcTransport, RpcTransport } from "@solana/web3.js";
2
+ import { SolanaClusterRpcFactory } from "./baseRpcFactories";
3
+
4
+ // Exposes default RPC transport for Solana in the SolanaClusterRpcFactory class.
5
+ export class SolanaDefaultRpcFactory extends SolanaClusterRpcFactory {
6
+ constructor(...clusterConstructorParams: ConstructorParameters<typeof SolanaClusterRpcFactory>) {
7
+ super(...clusterConstructorParams);
8
+ }
9
+
10
+ public createTransport(): RpcTransport {
11
+ return createDefaultRpcTransport({ url: this.clusterUrl });
12
+ }
13
+ }
@@ -0,0 +1,4 @@
1
+ export * from "./baseRpcFactories";
2
+ export * from "./defaultRpcFactory";
3
+ export * from "./rateLimitedRpcFactory";
4
+ export * from "./utils";
@@ -0,0 +1,101 @@
1
+ import { RpcResponse, RpcTransport } from "@solana/web3.js";
2
+ import { QueueObject, queue } from "async";
3
+ import winston, { Logger } from "winston";
4
+ import { SolanaClusterRpcFactory } from "./baseRpcFactories";
5
+ import { SolanaDefaultRpcFactory } from "./defaultRpcFactory";
6
+ import { SolanaRateLimitTask } from "./utils";
7
+ import { getOriginFromURL } from "../../utils";
8
+
9
+ // This factory is a very small addition to the SolanaDefaultRpcFactory that ensures that no more than maxConcurrency
10
+ // requests are ever in flight. It uses the async/queue library to manage this.
11
+ export class RateLimitedSolanaRpcFactory extends SolanaClusterRpcFactory {
12
+ // The queue object that manages the tasks.
13
+ private queue: QueueObject<SolanaRateLimitTask>;
14
+
15
+ // Holds the underlying transport that the rate limiter wraps.
16
+ private readonly defaultTransport: RpcTransport;
17
+
18
+ // Takes the same arguments as the SolanaDefaultRpcFactory, but it has an additional parameters to control
19
+ // concurrency and logging at the beginning of the list.
20
+ constructor(
21
+ maxConcurrency: number,
22
+ readonly pctRpcCallsLogged: number,
23
+ readonly logger: Logger = winston.createLogger({
24
+ transports: [new winston.transports.Console()],
25
+ }),
26
+ ...defaultConstructorParams: ConstructorParameters<typeof SolanaDefaultRpcFactory>
27
+ ) {
28
+ super(...defaultConstructorParams);
29
+ this.defaultTransport = new SolanaDefaultRpcFactory(...defaultConstructorParams).createTransport();
30
+
31
+ // This sets up the queue. Each task is executed by forwarding the RPC request to the underlying base transport.
32
+ // This queue sends out requests concurrently, but stops once the concurrency limit is reached. The maxConcurrency
33
+ // is configured here.
34
+ this.queue = queue(async ({ rpcArgs, resolve, reject }: SolanaRateLimitTask, callback: () => void) => {
35
+ await this.wrapSendWithLog(...rpcArgs)
36
+ .then(resolve)
37
+ .catch(reject);
38
+ // we need this for the queue to know that the task is done
39
+ // @see: https://caolan.github.io/async/v3/global.html
40
+ callback();
41
+ }, maxConcurrency);
42
+ }
43
+
44
+ private async wrapSendWithLog(...rpcArgs: Parameters<RpcTransport>) {
45
+ if (this.pctRpcCallsLogged <= 0 || Math.random() > this.pctRpcCallsLogged / 100) {
46
+ // Non sample path: no logging or timing, just issue the request.
47
+ return await this.defaultTransport(...rpcArgs);
48
+ } else {
49
+ const payload = rpcArgs[0].payload as { method: string; params?: unknown[] };
50
+ const loggerArgs = {
51
+ at: "SolanaProviderUtils",
52
+ message: "Solana provider response sample",
53
+ provider: getOriginFromURL(this.clusterUrl),
54
+ method: payload.method,
55
+ params: payload.params,
56
+ chainId: this.chainId,
57
+ datadog: true,
58
+ };
59
+
60
+ // In this path we log an rpc response sample.
61
+ // Note: use performance.now() to ensure a purely monotonic clock.
62
+ const startTime = performance.now();
63
+ try {
64
+ const result = await this.defaultTransport(...rpcArgs);
65
+ const elapsedTimeS = (performance.now() - startTime) / 1000;
66
+ this.logger.debug({
67
+ ...loggerArgs,
68
+ success: true,
69
+ timeElapsed: elapsedTimeS,
70
+ });
71
+ return result;
72
+ } catch (error) {
73
+ // Log errors as well.
74
+ // For now, to keep logs light, don't log the error itself, just propagate and let it be handled higher up.
75
+ const elapsedTimeS = (performance.now() - startTime) / 1000;
76
+ this.logger.debug({
77
+ ...loggerArgs,
78
+ success: false,
79
+ timeElapsed: elapsedTimeS,
80
+ });
81
+ throw error;
82
+ }
83
+ }
84
+ }
85
+
86
+ public createTransport() {
87
+ return <TResponse>(...args: Parameters<RpcTransport>): Promise<RpcResponse<TResponse>> => {
88
+ // This simply creates a promise and adds the arguments and resolve and reject handlers to the task.
89
+ return new Promise<RpcResponse<TResponse>>((resolve, reject) => {
90
+ const task: SolanaRateLimitTask = {
91
+ rpcArgs: args,
92
+ resolve: resolve as (value: unknown) => void,
93
+ reject,
94
+ };
95
+ // We didn't previously wait for this push so we can emulate
96
+ // the same behavior with the `void` keyword.
97
+ void this.queue.push(task);
98
+ });
99
+ };
100
+ }
101
+ }
@@ -0,0 +1,14 @@
1
+ import { RpcTransport } from "@solana/rpc-spec";
2
+
3
+ /**
4
+ * This is the type we pass to define a Solana RPC request "task".
5
+ */
6
+ export interface SolanaRateLimitTask {
7
+ // These are the arguments to be passed to base transport when making the RPC request.
8
+ rpcArgs: Parameters<RpcTransport>;
9
+
10
+ // These are the promise callbacks that will cause the initial RPC call made by the user to either return a result
11
+ // or fail.
12
+ resolve: (result: unknown) => void;
13
+ reject: (err: unknown) => void;
14
+ }