@blindpay/node 2.4.0 → 3.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.
Files changed (77) hide show
  1. package/dist/{api-client-Cw2mNJeR.d.mts → api-client-B7VQkM_4.d.mts} +96 -35
  2. package/dist/{api-client-Cw2mNJeR.d.ts → api-client-B7VQkM_4.d.ts} +96 -35
  3. package/dist/{chunk-5XJJKYXE.mjs → chunk-LEPGLH7Q.mjs} +20 -10
  4. package/dist/{chunk-3QQCDR3E.mjs → chunk-VBZHAPK7.mjs} +8 -0
  5. package/dist/{chunk-OTRFWEEC.mjs → chunk-VRA5HP7F.mjs} +4 -0
  6. package/dist/{chunk-4DVSRRBP.mjs → chunk-WH2VNZE7.mjs} +25 -22
  7. package/dist/index.d.mts +14 -14
  8. package/dist/index.d.ts +14 -14
  9. package/dist/index.js +50 -25
  10. package/dist/index.mjs +8 -8
  11. package/dist/resources/api-keys/api-keys.test.js +50 -25
  12. package/dist/resources/api-keys/api-keys.test.mjs +5 -5
  13. package/dist/resources/api-keys/index.d.mts +1 -1
  14. package/dist/resources/api-keys/index.d.ts +1 -1
  15. package/dist/resources/available/available.test.js +50 -25
  16. package/dist/resources/available/available.test.mjs +5 -5
  17. package/dist/resources/available/index.d.mts +1 -1
  18. package/dist/resources/available/index.d.ts +1 -1
  19. package/dist/resources/bank-accounts/bank-accounts.test.js +50 -25
  20. package/dist/resources/bank-accounts/bank-accounts.test.mjs +5 -5
  21. package/dist/resources/bank-accounts/index.d.mts +2 -4
  22. package/dist/resources/bank-accounts/index.d.ts +2 -4
  23. package/dist/resources/instances/index.d.mts +1 -1
  24. package/dist/resources/instances/index.d.ts +1 -1
  25. package/dist/resources/instances/instances.test.js +50 -25
  26. package/dist/resources/instances/instances.test.mjs +5 -5
  27. package/dist/resources/partner-fees/index.d.mts +1 -1
  28. package/dist/resources/partner-fees/index.d.ts +1 -1
  29. package/dist/resources/partner-fees/partner-fees.test.js +50 -25
  30. package/dist/resources/partner-fees/partner-fees.test.mjs +5 -5
  31. package/dist/resources/payins/index.d.mts +9 -33
  32. package/dist/resources/payins/index.d.ts +9 -33
  33. package/dist/resources/payins/payins-quotes.test.js +100 -25
  34. package/dist/resources/payins/payins-quotes.test.mjs +55 -5
  35. package/dist/resources/payins/payins.test.js +164 -52
  36. package/dist/resources/payins/payins.test.mjs +119 -32
  37. package/dist/resources/payins/quotes.d.mts +38 -2
  38. package/dist/resources/payins/quotes.d.ts +38 -2
  39. package/dist/resources/payins/quotes.js +4 -0
  40. package/dist/resources/payins/quotes.mjs +1 -1
  41. package/dist/resources/payouts/index.d.mts +42 -17
  42. package/dist/resources/payouts/index.d.ts +42 -17
  43. package/dist/resources/payouts/index.js +8 -0
  44. package/dist/resources/payouts/index.mjs +1 -1
  45. package/dist/resources/payouts/payouts.test.js +162 -27
  46. package/dist/resources/payouts/payouts.test.mjs +117 -7
  47. package/dist/resources/quotes/index.d.mts +1 -1
  48. package/dist/resources/quotes/index.d.ts +1 -1
  49. package/dist/resources/quotes/quotes.test.js +50 -25
  50. package/dist/resources/quotes/quotes.test.mjs +5 -5
  51. package/dist/resources/receivers/index.d.mts +9 -7
  52. package/dist/resources/receivers/index.d.ts +9 -7
  53. package/dist/resources/receivers/receivers.test.js +57 -33
  54. package/dist/resources/receivers/receivers.test.mjs +12 -13
  55. package/dist/resources/terms-of-service/index.d.mts +1 -1
  56. package/dist/resources/terms-of-service/index.d.ts +1 -1
  57. package/dist/resources/terms-of-service/terms-of-service.test.js +50 -25
  58. package/dist/resources/terms-of-service/terms-of-service.test.mjs +5 -5
  59. package/dist/resources/virtual-accounts/index.d.mts +22 -7
  60. package/dist/resources/virtual-accounts/index.d.ts +22 -7
  61. package/dist/resources/virtual-accounts/index.js +20 -10
  62. package/dist/resources/virtual-accounts/index.mjs +1 -1
  63. package/dist/resources/virtual-accounts/virtual-accounts.test.js +169 -44
  64. package/dist/resources/virtual-accounts/virtual-accounts.test.mjs +124 -24
  65. package/dist/resources/wallets/blockchain.d.mts +1 -1
  66. package/dist/resources/wallets/blockchain.d.ts +1 -1
  67. package/dist/resources/wallets/blockchain.test.js +50 -25
  68. package/dist/resources/wallets/blockchain.test.mjs +5 -5
  69. package/dist/resources/wallets/offramp.d.mts +1 -1
  70. package/dist/resources/wallets/offramp.d.ts +1 -1
  71. package/dist/resources/wallets/offramp.test.js +50 -25
  72. package/dist/resources/wallets/offramp.test.mjs +5 -5
  73. package/dist/resources/webhooks/index.d.mts +1 -1
  74. package/dist/resources/webhooks/index.d.ts +1 -1
  75. package/dist/resources/webhooks/webhooks.test.js +50 -25
  76. package/dist/resources/webhooks/webhooks.test.mjs +5 -5
  77. package/package.json +6 -2
@@ -18699,10 +18699,10 @@ function getImporter(name) {
18699
18699
  var import_expect_type = __toESM(require_dist(), 1);
18700
18700
 
18701
18701
  // src/client.ts
18702
- var import_node_crypto = require("crypto");
18702
+ var import_svix = require("svix");
18703
18703
 
18704
18704
  // package.json
18705
- var version = "2.4.0";
18705
+ var version = "3.0.0";
18706
18706
 
18707
18707
  // src/internal/blindpay-error.ts
18708
18708
  var BlindPayError = class extends Error {
@@ -18931,6 +18931,10 @@ function createPayinQuotesResource(instanceId, client) {
18931
18931
  },
18932
18932
  get(id) {
18933
18933
  return client.get(`/instances/${instanceId}/payin-quotes/${id}`);
18934
+ },
18935
+ list(params) {
18936
+ const queryParams = params ? `?${new URLSearchParams(params)}` : "";
18937
+ return client.get(`/instances/${instanceId}/payin-quotes${queryParams}`);
18934
18938
  }
18935
18939
  };
18936
18940
  }
@@ -18963,6 +18967,14 @@ function createPayoutsResource(instanceId, client) {
18963
18967
  createEvm(_c) {
18964
18968
  var data = __objRest(_c, []);
18965
18969
  return client.post(`/instances/${instanceId}/payouts/evm`, data);
18970
+ },
18971
+ authorizeSolana(_d) {
18972
+ var data = __objRest(_d, []);
18973
+ return client.post(`/instances/${instanceId}/payouts/solana/authorize`, data);
18974
+ },
18975
+ createSolana(_e) {
18976
+ var data = __objRest(_e, []);
18977
+ return client.post(`/instances/${instanceId}/payouts/solana`, data);
18966
18978
  }
18967
18979
  };
18968
18980
  }
@@ -19055,30 +19067,40 @@ function createTermsOfServiceResource(instanceId, client) {
19055
19067
  // src/resources/virtual-accounts/index.ts
19056
19068
  function createVirtualAccountsResource(instanceId, client) {
19057
19069
  return {
19058
- update(_a3) {
19070
+ list(receiver_id) {
19071
+ return client.get(`/instances/${instanceId}/receivers/${receiver_id}/virtual-accounts`);
19072
+ },
19073
+ get({
19074
+ receiver_id,
19075
+ id
19076
+ }) {
19077
+ return client.get(
19078
+ `/instances/${instanceId}/receivers/${receiver_id}/virtual-accounts/${id}`
19079
+ );
19080
+ },
19081
+ create(_a3) {
19059
19082
  var _b = _a3, {
19060
19083
  receiver_id
19061
19084
  } = _b, data = __objRest(_b, [
19062
19085
  "receiver_id"
19063
19086
  ]);
19064
- return client.put(
19087
+ return client.post(
19065
19088
  `/instances/${instanceId}/receivers/${receiver_id}/virtual-accounts`,
19066
19089
  data
19067
19090
  );
19068
19091
  },
19069
- create(_c) {
19092
+ update(_c) {
19070
19093
  var _d = _c, {
19071
- receiver_id
19094
+ receiver_id,
19095
+ id
19072
19096
  } = _d, data = __objRest(_d, [
19073
- "receiver_id"
19097
+ "receiver_id",
19098
+ "id"
19074
19099
  ]);
19075
- return client.post(
19076
- `/instances/${instanceId}/receivers/${receiver_id}/virtual-accounts`,
19100
+ return client.put(
19101
+ `/instances/${instanceId}/receivers/${receiver_id}/virtual-accounts/${id}`,
19077
19102
  data
19078
19103
  );
19079
- },
19080
- get(receiver_id) {
19081
- return client.get(`/instances/${instanceId}/receivers/${receiver_id}/virtual-accounts`);
19082
19104
  }
19083
19105
  };
19084
19106
  }
@@ -19336,26 +19358,29 @@ var BlindPay = class {
19336
19358
  });
19337
19359
  }
19338
19360
  /**
19339
- * Verifies the BlindPay webhook signature
19361
+ * Verifies the BlindPay webhook signature using Svix
19340
19362
  *
19341
19363
  * @param params.secret The webhook secret from BlindPay dashboard
19342
- * @param params.id The value of the `svix-id` header
19343
- * @param params.timestamp The value of the `svix-timestamp` header
19344
- * @param params.payload The raw request body
19345
- * @param params.svixSignature The value of the `svix-signature` header
19364
+ * @param params.headers The webhook headers object containing svix-id, svix-timestamp, and svix-signature
19365
+ * @param params.payload The raw request body as a string
19346
19366
  * @returns {boolean} True if the signature is valid, false otherwise
19347
19367
  */
19348
19368
  verifyWebhookSignature({
19349
19369
  secret,
19350
- id,
19351
- timestamp,
19352
- payload,
19353
- svixSignature
19370
+ headers,
19371
+ payload
19354
19372
  }) {
19355
- const signedContent = `${id}.${timestamp}.${payload}`;
19356
- const secretBytes = Buffer.from(secret.split("_")[1], "base64");
19357
- const expectedSignature = (0, import_node_crypto.createHmac)("sha256", secretBytes).update(signedContent).digest("base64");
19358
- return svixSignature.length === expectedSignature.length && (0, import_node_crypto.timingSafeEqual)(Buffer.from(svixSignature), Buffer.from(expectedSignature));
19373
+ try {
19374
+ const webhook = new import_svix.Webhook(secret);
19375
+ webhook.verify(payload, {
19376
+ "svix-id": headers.id,
19377
+ "svix-timestamp": headers.timestamp,
19378
+ "svix-signature": headers.signature
19379
+ });
19380
+ return true;
19381
+ } catch (e) {
19382
+ return false;
19383
+ }
19359
19384
  }
19360
19385
  };
19361
19386
 
@@ -19386,6 +19411,12 @@ describe("Payouts", () => {
19386
19411
  provider_name: "blockchain",
19387
19412
  provider_transaction_id: "0x123...890",
19388
19413
  provider_status: "canceled",
19414
+ recipient_name: "John Doe",
19415
+ recipient_tax_id: "123.456.789-10",
19416
+ recipient_bank_code: "00416968",
19417
+ recipient_branch_code: "0001",
19418
+ recipient_account_number: "1234567890",
19419
+ recipient_account_type: "checking",
19389
19420
  estimated_time_of_arrival: "5_min",
19390
19421
  completed_at: "2011-10-05T14:48:00.000Z"
19391
19422
  },
@@ -19462,8 +19493,8 @@ describe("Payouts", () => {
19462
19493
  ],
19463
19494
  pagination: {
19464
19495
  has_more: true,
19465
- next_page: 3,
19466
- prev_page: 1
19496
+ next_page: "3",
19497
+ prev_page: "1"
19467
19498
  }
19468
19499
  };
19469
19500
  fetchMock.mockResponseOnce(JSON.stringify(mockedPayouts), {
@@ -19495,6 +19526,12 @@ describe("Payouts", () => {
19495
19526
  provider_name: "blockchain",
19496
19527
  provider_transaction_id: "0x123...890",
19497
19528
  provider_status: "canceled",
19529
+ recipient_name: "John Doe",
19530
+ recipient_tax_id: "123.456.789-10",
19531
+ recipient_bank_code: "00416968",
19532
+ recipient_branch_code: "0001",
19533
+ recipient_account_number: "1234567890",
19534
+ recipient_account_type: "checking",
19498
19535
  estimated_time_of_arrival: "5_min",
19499
19536
  completed_at: "2011-10-05T14:48:00.000Z"
19500
19537
  },
@@ -19598,6 +19635,12 @@ describe("Payouts", () => {
19598
19635
  provider_name: "blockchain",
19599
19636
  provider_transaction_id: "0x123...890",
19600
19637
  provider_status: "canceled",
19638
+ recipient_name: "John Doe",
19639
+ recipient_tax_id: "123.456.789-10",
19640
+ recipient_bank_code: "00416968",
19641
+ recipient_branch_code: "0001",
19642
+ recipient_account_number: "1234567890",
19643
+ recipient_account_type: "checking",
19601
19644
  estimated_time_of_arrival: "5_min",
19602
19645
  completed_at: "2011-10-05T14:48:00.000Z"
19603
19646
  },
@@ -19701,6 +19744,12 @@ describe("Payouts", () => {
19701
19744
  provider_name: "blockchain",
19702
19745
  provider_transaction_id: "0x123...890",
19703
19746
  provider_status: "canceled",
19747
+ recipient_name: "John Doe",
19748
+ recipient_tax_id: "123.456.789-10",
19749
+ recipient_bank_code: "00416968",
19750
+ recipient_branch_code: "0001",
19751
+ recipient_account_number: "1234567890",
19752
+ recipient_account_type: "checking",
19704
19753
  estimated_time_of_arrival: "5_min",
19705
19754
  completed_at: "2011-10-05T14:48:00.000Z"
19706
19755
  },
@@ -19815,6 +19864,12 @@ describe("Payouts", () => {
19815
19864
  provider_name: "blockchain",
19816
19865
  provider_transaction_id: "0x123...890",
19817
19866
  provider_status: "canceled",
19867
+ recipient_name: "John Doe",
19868
+ recipient_tax_id: "123.456.789-10",
19869
+ recipient_bank_code: "00416968",
19870
+ recipient_branch_code: "0001",
19871
+ recipient_account_number: "1234567890",
19872
+ recipient_account_type: "checking",
19818
19873
  estimated_time_of_arrival: "5_min",
19819
19874
  completed_at: "2011-10-05T14:48:00.000Z"
19820
19875
  },
@@ -19866,6 +19921,12 @@ describe("Payouts", () => {
19866
19921
  provider_name: "blockchain",
19867
19922
  provider_transaction_id: "0x123...890",
19868
19923
  provider_status: "canceled",
19924
+ recipient_name: "John Doe",
19925
+ recipient_tax_id: "123.456.789-10",
19926
+ recipient_bank_code: "00416968",
19927
+ recipient_branch_code: "0001",
19928
+ recipient_account_number: "1234567890",
19929
+ recipient_account_type: "checking",
19869
19930
  estimated_time_of_arrival: "5_min",
19870
19931
  completed_at: "2011-10-05T14:48:00.000Z"
19871
19932
  },
@@ -19900,6 +19961,80 @@ describe("Payouts", () => {
19900
19961
  globalExpect(data).toEqual(mockedEvmPayout);
19901
19962
  }));
19902
19963
  });
19964
+ describe("Authorize solana", () => {
19965
+ it("should authorize solana transaction", () => __async(null, null, function* () {
19966
+ const mockedAuthorizeSolana = {
19967
+ serialized_transaction: "AAA...Zey8y0A"
19968
+ };
19969
+ fetchMock.mockResponseOnce(JSON.stringify(mockedAuthorizeSolana), {
19970
+ headers: { "Content-Type": "application/json" }
19971
+ });
19972
+ const { data, error } = yield blindpay.payouts.authorizeSolana({
19973
+ quote_id: "qu_000000000000",
19974
+ sender_wallet_address: "0x123...890"
19975
+ });
19976
+ globalExpect(error).toBeNull();
19977
+ globalExpect(data).toEqual(mockedAuthorizeSolana);
19978
+ }));
19979
+ });
19980
+ describe("Create solana payout", () => {
19981
+ it("should create a solana payout", () => __async(null, null, function* () {
19982
+ const mockedSolanaPayout = {
19983
+ id: "pa_000000000000",
19984
+ status: "processing",
19985
+ sender_wallet_address: "0x123...890",
19986
+ tracking_complete: {
19987
+ step: "on_hold",
19988
+ status: "tokens_refunded",
19989
+ transaction_hash: "0x123...890",
19990
+ completed_at: "2011-10-05T14:48:00.000Z"
19991
+ },
19992
+ tracking_payment: {
19993
+ step: "on_hold",
19994
+ provider_name: "blockchain",
19995
+ provider_transaction_id: "0x123...890",
19996
+ provider_status: "canceled",
19997
+ recipient_name: "John Doe",
19998
+ recipient_tax_id: "123.456.789-10",
19999
+ recipient_bank_code: "00416968",
20000
+ recipient_branch_code: "0001",
20001
+ recipient_account_number: "1234567890",
20002
+ recipient_account_type: "checking",
20003
+ estimated_time_of_arrival: "5_min",
20004
+ completed_at: "2011-10-05T14:48:00.000Z"
20005
+ },
20006
+ tracking_transaction: {
20007
+ step: "processing",
20008
+ status: "failed",
20009
+ transaction_hash: "0x123...890",
20010
+ completed_at: "2011-10-05T14:48:00.000Z"
20011
+ },
20012
+ tracking_partner_fee: {
20013
+ step: "on_hold",
20014
+ transaction_hash: "0x123...890",
20015
+ completed_at: "2011-10-05T14:48:00.000Z"
20016
+ },
20017
+ tracking_liquidity: {
20018
+ step: "processing",
20019
+ provider_transaction_id: "0x123...890",
20020
+ provider_status: "deposited",
20021
+ estimated_time_of_arrival: "1_business_day",
20022
+ completed_at: "2011-10-05T14:48:00.000Z"
20023
+ },
20024
+ receiver_id: "re_000000000000"
20025
+ };
20026
+ fetchMock.mockResponseOnce(JSON.stringify(mockedSolanaPayout), {
20027
+ headers: { "Content-Type": "application/json" }
20028
+ });
20029
+ const { data, error } = yield blindpay.payouts.createSolana({
20030
+ quote_id: "qu_000000000000",
20031
+ sender_wallet_address: "0x123...890",
20032
+ signed_transaction: "AAA...Zey8y0A"
20033
+ });
20034
+ globalExpect(error).toBeNull();
20035
+ globalExpect(data).toEqual(mockedSolanaPayout);
20036
+ }));
20037
+ });
19903
20038
  });
19904
20039
  /*! Bundled license information:
19905
20040
 
@@ -8,21 +8,21 @@ import {
8
8
  import {
9
9
  BlindPay,
10
10
  init_client
11
- } from "../../chunk-4DVSRRBP.mjs";
11
+ } from "../../chunk-WH2VNZE7.mjs";
12
12
  import "../../chunk-FG25JHDX.mjs";
13
13
  import "../../chunk-QGNLMN6Z.mjs";
14
14
  import "../../chunk-UC57SCKQ.mjs";
15
15
  import "../../chunk-TBTA7A2P.mjs";
16
16
  import "../../chunk-67XECGMJ.mjs";
17
17
  import "../../chunk-Z6EYX4D3.mjs";
18
- import "../../chunk-5XJJKYXE.mjs";
18
+ import "../../chunk-LEPGLH7Q.mjs";
19
19
  import "../../chunk-RC5NN5UF.mjs";
20
20
  import "../../chunk-W7NJUABI.mjs";
21
- import "../../chunk-OTRFWEEC.mjs";
22
- import "../../chunk-3QQCDR3E.mjs";
21
+ import "../../chunk-VRA5HP7F.mjs";
22
+ import "../../chunk-VBZHAPK7.mjs";
23
23
  import "../../chunk-LRHWT4JU.mjs";
24
- import "../../chunk-U7CKUUO7.mjs";
25
24
  import "../../chunk-CPOSU35L.mjs";
25
+ import "../../chunk-U7CKUUO7.mjs";
26
26
  import "../../chunk-B5T7AQLH.mjs";
27
27
  import {
28
28
  __async,
@@ -60,6 +60,12 @@ var require_payouts_test = __commonJS({
60
60
  provider_name: "blockchain",
61
61
  provider_transaction_id: "0x123...890",
62
62
  provider_status: "canceled",
63
+ recipient_name: "John Doe",
64
+ recipient_tax_id: "123.456.789-10",
65
+ recipient_bank_code: "00416968",
66
+ recipient_branch_code: "0001",
67
+ recipient_account_number: "1234567890",
68
+ recipient_account_type: "checking",
63
69
  estimated_time_of_arrival: "5_min",
64
70
  completed_at: "2011-10-05T14:48:00.000Z"
65
71
  },
@@ -136,8 +142,8 @@ var require_payouts_test = __commonJS({
136
142
  ],
137
143
  pagination: {
138
144
  has_more: true,
139
- next_page: 3,
140
- prev_page: 1
145
+ next_page: "3",
146
+ prev_page: "1"
141
147
  }
142
148
  };
143
149
  fetchMock.mockResponseOnce(JSON.stringify(mockedPayouts), {
@@ -169,6 +175,12 @@ var require_payouts_test = __commonJS({
169
175
  provider_name: "blockchain",
170
176
  provider_transaction_id: "0x123...890",
171
177
  provider_status: "canceled",
178
+ recipient_name: "John Doe",
179
+ recipient_tax_id: "123.456.789-10",
180
+ recipient_bank_code: "00416968",
181
+ recipient_branch_code: "0001",
182
+ recipient_account_number: "1234567890",
183
+ recipient_account_type: "checking",
172
184
  estimated_time_of_arrival: "5_min",
173
185
  completed_at: "2011-10-05T14:48:00.000Z"
174
186
  },
@@ -272,6 +284,12 @@ var require_payouts_test = __commonJS({
272
284
  provider_name: "blockchain",
273
285
  provider_transaction_id: "0x123...890",
274
286
  provider_status: "canceled",
287
+ recipient_name: "John Doe",
288
+ recipient_tax_id: "123.456.789-10",
289
+ recipient_bank_code: "00416968",
290
+ recipient_branch_code: "0001",
291
+ recipient_account_number: "1234567890",
292
+ recipient_account_type: "checking",
275
293
  estimated_time_of_arrival: "5_min",
276
294
  completed_at: "2011-10-05T14:48:00.000Z"
277
295
  },
@@ -375,6 +393,12 @@ var require_payouts_test = __commonJS({
375
393
  provider_name: "blockchain",
376
394
  provider_transaction_id: "0x123...890",
377
395
  provider_status: "canceled",
396
+ recipient_name: "John Doe",
397
+ recipient_tax_id: "123.456.789-10",
398
+ recipient_bank_code: "00416968",
399
+ recipient_branch_code: "0001",
400
+ recipient_account_number: "1234567890",
401
+ recipient_account_type: "checking",
378
402
  estimated_time_of_arrival: "5_min",
379
403
  completed_at: "2011-10-05T14:48:00.000Z"
380
404
  },
@@ -489,6 +513,12 @@ var require_payouts_test = __commonJS({
489
513
  provider_name: "blockchain",
490
514
  provider_transaction_id: "0x123...890",
491
515
  provider_status: "canceled",
516
+ recipient_name: "John Doe",
517
+ recipient_tax_id: "123.456.789-10",
518
+ recipient_bank_code: "00416968",
519
+ recipient_branch_code: "0001",
520
+ recipient_account_number: "1234567890",
521
+ recipient_account_type: "checking",
492
522
  estimated_time_of_arrival: "5_min",
493
523
  completed_at: "2011-10-05T14:48:00.000Z"
494
524
  },
@@ -540,6 +570,12 @@ var require_payouts_test = __commonJS({
540
570
  provider_name: "blockchain",
541
571
  provider_transaction_id: "0x123...890",
542
572
  provider_status: "canceled",
573
+ recipient_name: "John Doe",
574
+ recipient_tax_id: "123.456.789-10",
575
+ recipient_bank_code: "00416968",
576
+ recipient_branch_code: "0001",
577
+ recipient_account_number: "1234567890",
578
+ recipient_account_type: "checking",
543
579
  estimated_time_of_arrival: "5_min",
544
580
  completed_at: "2011-10-05T14:48:00.000Z"
545
581
  },
@@ -574,6 +610,80 @@ var require_payouts_test = __commonJS({
574
610
  globalExpect(data).toEqual(mockedEvmPayout);
575
611
  }));
576
612
  });
613
+ describe("Authorize solana", () => {
614
+ it("should authorize solana transaction", () => __async(null, null, function* () {
615
+ const mockedAuthorizeSolana = {
616
+ serialized_transaction: "AAA...Zey8y0A"
617
+ };
618
+ fetchMock.mockResponseOnce(JSON.stringify(mockedAuthorizeSolana), {
619
+ headers: { "Content-Type": "application/json" }
620
+ });
621
+ const { data, error } = yield blindpay.payouts.authorizeSolana({
622
+ quote_id: "qu_000000000000",
623
+ sender_wallet_address: "0x123...890"
624
+ });
625
+ globalExpect(error).toBeNull();
626
+ globalExpect(data).toEqual(mockedAuthorizeSolana);
627
+ }));
628
+ });
629
+ describe("Create solana payout", () => {
630
+ it("should create a solana payout", () => __async(null, null, function* () {
631
+ const mockedSolanaPayout = {
632
+ id: "pa_000000000000",
633
+ status: "processing",
634
+ sender_wallet_address: "0x123...890",
635
+ tracking_complete: {
636
+ step: "on_hold",
637
+ status: "tokens_refunded",
638
+ transaction_hash: "0x123...890",
639
+ completed_at: "2011-10-05T14:48:00.000Z"
640
+ },
641
+ tracking_payment: {
642
+ step: "on_hold",
643
+ provider_name: "blockchain",
644
+ provider_transaction_id: "0x123...890",
645
+ provider_status: "canceled",
646
+ recipient_name: "John Doe",
647
+ recipient_tax_id: "123.456.789-10",
648
+ recipient_bank_code: "00416968",
649
+ recipient_branch_code: "0001",
650
+ recipient_account_number: "1234567890",
651
+ recipient_account_type: "checking",
652
+ estimated_time_of_arrival: "5_min",
653
+ completed_at: "2011-10-05T14:48:00.000Z"
654
+ },
655
+ tracking_transaction: {
656
+ step: "processing",
657
+ status: "failed",
658
+ transaction_hash: "0x123...890",
659
+ completed_at: "2011-10-05T14:48:00.000Z"
660
+ },
661
+ tracking_partner_fee: {
662
+ step: "on_hold",
663
+ transaction_hash: "0x123...890",
664
+ completed_at: "2011-10-05T14:48:00.000Z"
665
+ },
666
+ tracking_liquidity: {
667
+ step: "processing",
668
+ provider_transaction_id: "0x123...890",
669
+ provider_status: "deposited",
670
+ estimated_time_of_arrival: "1_business_day",
671
+ completed_at: "2011-10-05T14:48:00.000Z"
672
+ },
673
+ receiver_id: "re_000000000000"
674
+ };
675
+ fetchMock.mockResponseOnce(JSON.stringify(mockedSolanaPayout), {
676
+ headers: { "Content-Type": "application/json" }
677
+ });
678
+ const { data, error } = yield blindpay.payouts.createSolana({
679
+ quote_id: "qu_000000000000",
680
+ sender_wallet_address: "0x123...890",
681
+ signed_transaction: "AAA...Zey8y0A"
682
+ });
683
+ globalExpect(error).toBeNull();
684
+ globalExpect(data).toEqual(mockedSolanaPayout);
685
+ }));
686
+ });
577
687
  });
578
688
  }
579
689
  });
@@ -1,4 +1,4 @@
1
- import { I as InternalApiClient, g as CurrencyType, N as Network, S as StablecoinToken, j as TransactionDocumentType, B as BlindpayApiResponse, h as Currency } from '../../api-client-Cw2mNJeR.mjs';
1
+ import { I as InternalApiClient, i as CurrencyType, N as Network, S as StablecoinToken, p as TransactionDocumentType, B as BlindpayApiResponse, j as Currency } from '../../api-client-B7VQkM_4.mjs';
2
2
 
3
3
  type CreateQuoteInput = {
4
4
  bank_account_id: string;
@@ -1,4 +1,4 @@
1
- import { I as InternalApiClient, g as CurrencyType, N as Network, S as StablecoinToken, j as TransactionDocumentType, B as BlindpayApiResponse, h as Currency } from '../../api-client-Cw2mNJeR.js';
1
+ import { I as InternalApiClient, i as CurrencyType, N as Network, S as StablecoinToken, p as TransactionDocumentType, B as BlindpayApiResponse, j as Currency } from '../../api-client-B7VQkM_4.js';
2
2
 
3
3
  type CreateQuoteInput = {
4
4
  bank_account_id: string;
@@ -18699,10 +18699,10 @@ function getImporter(name) {
18699
18699
  var import_expect_type = __toESM(require_dist(), 1);
18700
18700
 
18701
18701
  // src/client.ts
18702
- var import_node_crypto = require("crypto");
18702
+ var import_svix = require("svix");
18703
18703
 
18704
18704
  // package.json
18705
- var version = "2.4.0";
18705
+ var version = "3.0.0";
18706
18706
 
18707
18707
  // src/internal/blindpay-error.ts
18708
18708
  var BlindPayError = class extends Error {
@@ -18931,6 +18931,10 @@ function createPayinQuotesResource(instanceId, client) {
18931
18931
  },
18932
18932
  get(id) {
18933
18933
  return client.get(`/instances/${instanceId}/payin-quotes/${id}`);
18934
+ },
18935
+ list(params) {
18936
+ const queryParams = params ? `?${new URLSearchParams(params)}` : "";
18937
+ return client.get(`/instances/${instanceId}/payin-quotes${queryParams}`);
18934
18938
  }
18935
18939
  };
18936
18940
  }
@@ -18963,6 +18967,14 @@ function createPayoutsResource(instanceId, client) {
18963
18967
  createEvm(_c) {
18964
18968
  var data = __objRest(_c, []);
18965
18969
  return client.post(`/instances/${instanceId}/payouts/evm`, data);
18970
+ },
18971
+ authorizeSolana(_d) {
18972
+ var data = __objRest(_d, []);
18973
+ return client.post(`/instances/${instanceId}/payouts/solana/authorize`, data);
18974
+ },
18975
+ createSolana(_e) {
18976
+ var data = __objRest(_e, []);
18977
+ return client.post(`/instances/${instanceId}/payouts/solana`, data);
18966
18978
  }
18967
18979
  };
18968
18980
  }
@@ -19055,30 +19067,40 @@ function createTermsOfServiceResource(instanceId, client) {
19055
19067
  // src/resources/virtual-accounts/index.ts
19056
19068
  function createVirtualAccountsResource(instanceId, client) {
19057
19069
  return {
19058
- update(_a3) {
19070
+ list(receiver_id) {
19071
+ return client.get(`/instances/${instanceId}/receivers/${receiver_id}/virtual-accounts`);
19072
+ },
19073
+ get({
19074
+ receiver_id,
19075
+ id
19076
+ }) {
19077
+ return client.get(
19078
+ `/instances/${instanceId}/receivers/${receiver_id}/virtual-accounts/${id}`
19079
+ );
19080
+ },
19081
+ create(_a3) {
19059
19082
  var _b = _a3, {
19060
19083
  receiver_id
19061
19084
  } = _b, data = __objRest(_b, [
19062
19085
  "receiver_id"
19063
19086
  ]);
19064
- return client.put(
19087
+ return client.post(
19065
19088
  `/instances/${instanceId}/receivers/${receiver_id}/virtual-accounts`,
19066
19089
  data
19067
19090
  );
19068
19091
  },
19069
- create(_c) {
19092
+ update(_c) {
19070
19093
  var _d = _c, {
19071
- receiver_id
19094
+ receiver_id,
19095
+ id
19072
19096
  } = _d, data = __objRest(_d, [
19073
- "receiver_id"
19097
+ "receiver_id",
19098
+ "id"
19074
19099
  ]);
19075
- return client.post(
19076
- `/instances/${instanceId}/receivers/${receiver_id}/virtual-accounts`,
19100
+ return client.put(
19101
+ `/instances/${instanceId}/receivers/${receiver_id}/virtual-accounts/${id}`,
19077
19102
  data
19078
19103
  );
19079
- },
19080
- get(receiver_id) {
19081
- return client.get(`/instances/${instanceId}/receivers/${receiver_id}/virtual-accounts`);
19082
19104
  }
19083
19105
  };
19084
19106
  }
@@ -19336,26 +19358,29 @@ var BlindPay = class {
19336
19358
  });
19337
19359
  }
19338
19360
  /**
19339
- * Verifies the BlindPay webhook signature
19361
+ * Verifies the BlindPay webhook signature using Svix
19340
19362
  *
19341
19363
  * @param params.secret The webhook secret from BlindPay dashboard
19342
- * @param params.id The value of the `svix-id` header
19343
- * @param params.timestamp The value of the `svix-timestamp` header
19344
- * @param params.payload The raw request body
19345
- * @param params.svixSignature The value of the `svix-signature` header
19364
+ * @param params.headers The webhook headers object containing svix-id, svix-timestamp, and svix-signature
19365
+ * @param params.payload The raw request body as a string
19346
19366
  * @returns {boolean} True if the signature is valid, false otherwise
19347
19367
  */
19348
19368
  verifyWebhookSignature({
19349
19369
  secret,
19350
- id,
19351
- timestamp,
19352
- payload,
19353
- svixSignature
19370
+ headers,
19371
+ payload
19354
19372
  }) {
19355
- const signedContent = `${id}.${timestamp}.${payload}`;
19356
- const secretBytes = Buffer.from(secret.split("_")[1], "base64");
19357
- const expectedSignature = (0, import_node_crypto.createHmac)("sha256", secretBytes).update(signedContent).digest("base64");
19358
- return svixSignature.length === expectedSignature.length && (0, import_node_crypto.timingSafeEqual)(Buffer.from(svixSignature), Buffer.from(expectedSignature));
19373
+ try {
19374
+ const webhook = new import_svix.Webhook(secret);
19375
+ webhook.verify(payload, {
19376
+ "svix-id": headers.id,
19377
+ "svix-timestamp": headers.timestamp,
19378
+ "svix-signature": headers.signature
19379
+ });
19380
+ return true;
19381
+ } catch (e) {
19382
+ return false;
19383
+ }
19359
19384
  }
19360
19385
  };
19361
19386
 
@@ -8,21 +8,21 @@ import {
8
8
  import {
9
9
  BlindPay,
10
10
  init_client
11
- } from "../../chunk-4DVSRRBP.mjs";
11
+ } from "../../chunk-WH2VNZE7.mjs";
12
12
  import "../../chunk-FG25JHDX.mjs";
13
13
  import "../../chunk-QGNLMN6Z.mjs";
14
14
  import "../../chunk-UC57SCKQ.mjs";
15
15
  import "../../chunk-TBTA7A2P.mjs";
16
16
  import "../../chunk-67XECGMJ.mjs";
17
17
  import "../../chunk-Z6EYX4D3.mjs";
18
- import "../../chunk-5XJJKYXE.mjs";
18
+ import "../../chunk-LEPGLH7Q.mjs";
19
19
  import "../../chunk-RC5NN5UF.mjs";
20
20
  import "../../chunk-W7NJUABI.mjs";
21
- import "../../chunk-OTRFWEEC.mjs";
22
- import "../../chunk-3QQCDR3E.mjs";
21
+ import "../../chunk-VRA5HP7F.mjs";
22
+ import "../../chunk-VBZHAPK7.mjs";
23
23
  import "../../chunk-LRHWT4JU.mjs";
24
- import "../../chunk-U7CKUUO7.mjs";
25
24
  import "../../chunk-CPOSU35L.mjs";
25
+ import "../../chunk-U7CKUUO7.mjs";
26
26
  import "../../chunk-B5T7AQLH.mjs";
27
27
  import {
28
28
  __async,