@bloque/sdk-swap 0.1.4 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bank-transfer/bank-transfer-client.d.ts +17 -14
- package/dist/bank-transfer/types.d.ts +51 -36
- package/dist/breb/breb-client.d.ts +2 -2
- package/dist/breb/types.d.ts +6 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +1 -1
- package/dist/internal/wire-types.d.ts +13 -0
- package/dist/pse/pse-client.d.ts +22 -19
- package/dist/pse/types.d.ts +6 -0
- package/dist/swap-client.d.ts +8 -1
- package/dist/types.d.ts +13 -0
- package/package.json +2 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BaseClient } from '@bloque/sdk-core';
|
|
2
|
-
import type { CreateBankTransferOrderParams, CreateBankTransferOrderResult } from './types';
|
|
2
|
+
import type { CreateBankTransferOrderOptions, CreateBankTransferOrderParams, CreateBankTransferOrderResult } from './types';
|
|
3
3
|
/**
|
|
4
4
|
* Generic bank transfer client for cash-out swaps
|
|
5
5
|
*
|
|
@@ -8,19 +8,22 @@ import type { CreateBankTransferOrderParams, CreateBankTransferOrderResult } fro
|
|
|
8
8
|
*
|
|
9
9
|
* @example
|
|
10
10
|
* ```typescript
|
|
11
|
-
* const result = await bloque.swap.bankTransfer.create(
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
11
|
+
* const result = await bloque.swap.bankTransfer.create(
|
|
12
|
+
* {
|
|
13
|
+
* rateSig: rate.sig,
|
|
14
|
+
* toMedium: 'banco_de_bogota',
|
|
15
|
+
* amountSrc: '5000000',
|
|
16
|
+
* depositInformation: {
|
|
17
|
+
* bankAccountType: 'savings',
|
|
18
|
+
* bankAccountNumber: '123456789',
|
|
19
|
+
* bankAccountHolderName: 'Juan Pérez',
|
|
20
|
+
* bankAccountHolderIdentificationType: 'CC',
|
|
21
|
+
* bankAccountHolderIdentificationValue: '1234567890',
|
|
22
|
+
* },
|
|
23
|
+
* args: { accountUrn: 'did:bloque:card:abc123' },
|
|
21
24
|
* },
|
|
22
|
-
*
|
|
23
|
-
*
|
|
25
|
+
* { idempotencyKey: 'bank-transfer-5000000' }
|
|
26
|
+
* );
|
|
24
27
|
* ```
|
|
25
28
|
*/
|
|
26
29
|
export declare class BankTransferClient extends BaseClient {
|
|
@@ -34,7 +37,7 @@ export declare class BankTransferClient extends BaseClient {
|
|
|
34
37
|
* @param params - Bank transfer order parameters
|
|
35
38
|
* @returns Promise resolving to the created order with optional execution result
|
|
36
39
|
*/
|
|
37
|
-
create(params: CreateBankTransferOrderParams): Promise<CreateBankTransferOrderResult>;
|
|
40
|
+
create(params: CreateBankTransferOrderParams, options?: CreateBankTransferOrderOptions): Promise<CreateBankTransferOrderResult>;
|
|
38
41
|
/**
|
|
39
42
|
* Maps SDK deposit information to wire format
|
|
40
43
|
* @internal
|
|
@@ -8,53 +8,62 @@
|
|
|
8
8
|
*
|
|
9
9
|
* @example Transfer to Bancolombia
|
|
10
10
|
* ```typescript
|
|
11
|
-
* await bloque.swap.bankTransfer.create(
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
11
|
+
* await bloque.swap.bankTransfer.create(
|
|
12
|
+
* {
|
|
13
|
+
* rateSig: rate.sig,
|
|
14
|
+
* toMedium: 'bancolombia',
|
|
15
|
+
* amountSrc: '5000000',
|
|
16
|
+
* depositInformation: {
|
|
17
|
+
* bankAccountType: 'savings',
|
|
18
|
+
* bankAccountNumber: '5740088718',
|
|
19
|
+
* bankAccountHolderName: 'Juan Pérez',
|
|
20
|
+
* bankAccountHolderIdentificationType: 'CC',
|
|
21
|
+
* bankAccountHolderIdentificationValue: '1234567890',
|
|
22
|
+
* },
|
|
23
|
+
* args: { sourceAccountUrn: 'did:bloque:card:abc123' },
|
|
21
24
|
* },
|
|
22
|
-
*
|
|
23
|
-
*
|
|
25
|
+
* { idempotencyKey: 'bank-transfer-bancolombia-5000000' }
|
|
26
|
+
* );
|
|
24
27
|
* ```
|
|
25
28
|
*
|
|
26
29
|
* @example Transfer to Banco de Bogotá
|
|
27
30
|
* ```typescript
|
|
28
|
-
* await bloque.swap.bankTransfer.create(
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
31
|
+
* await bloque.swap.bankTransfer.create(
|
|
32
|
+
* {
|
|
33
|
+
* rateSig: rate.sig,
|
|
34
|
+
* toMedium: 'banco_de_bogota',
|
|
35
|
+
* amountSrc: '2000000',
|
|
36
|
+
* depositInformation: {
|
|
37
|
+
* bankAccountType: 'checking',
|
|
38
|
+
* bankAccountNumber: '987654321',
|
|
39
|
+
* bankAccountHolderName: 'María López',
|
|
40
|
+
* bankAccountHolderIdentificationType: 'CE',
|
|
41
|
+
* bankAccountHolderIdentificationValue: '456789',
|
|
42
|
+
* },
|
|
43
|
+
* args: { sourceAccountUrn: 'did:bloque:card:xyz789' },
|
|
38
44
|
* },
|
|
39
|
-
*
|
|
40
|
-
*
|
|
45
|
+
* { idempotencyKey: 'bank-transfer-bogota-2000000' }
|
|
46
|
+
* );
|
|
41
47
|
* ```
|
|
42
48
|
*
|
|
43
49
|
* @example Transfer to BBVA Colombia
|
|
44
50
|
* ```typescript
|
|
45
|
-
* await bloque.swap.bankTransfer.create(
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
51
|
+
* await bloque.swap.bankTransfer.create(
|
|
52
|
+
* {
|
|
53
|
+
* rateSig: rate.sig,
|
|
54
|
+
* toMedium: 'banco_bbva_colombia',
|
|
55
|
+
* amountSrc: '10000000',
|
|
56
|
+
* depositInformation: {
|
|
57
|
+
* bankAccountType: 'savings',
|
|
58
|
+
* bankAccountNumber: '1122334455',
|
|
59
|
+
* bankAccountHolderName: 'Carlos Ruiz',
|
|
60
|
+
* bankAccountHolderIdentificationType: 'NIT',
|
|
61
|
+
* bankAccountHolderIdentificationValue: '900123456',
|
|
62
|
+
* },
|
|
63
|
+
* args: { sourceAccountUrn: 'did:bloque:card:def456' },
|
|
55
64
|
* },
|
|
56
|
-
*
|
|
57
|
-
*
|
|
65
|
+
* { idempotencyKey: 'bank-transfer-bbva-10000000' }
|
|
66
|
+
* );
|
|
58
67
|
* ```
|
|
59
68
|
*/
|
|
60
69
|
export type SupportedBank = 'banco_agrario_de_colombia' | 'banco_av_villas' | 'banco_bancamia' | 'banco_bbva_colombia' | 'banco_btg_pactual_colombia' | 'citibank_colombia' | 'banco_caja_social_bcsc' | 'davibank' | 'banco_contactar' | 'banco_cooperativo_coopcentral' | 'ban100' | 'banco_davivienda' | 'banco_de_bogota' | 'banco_de_occidente' | 'banco_gnb_sudameris' | 'banco_jp_morgan_colombia' | 'banco_popular' | 'banco_itau' | 'bancolombia' | 'banco_w' | 'banco_coomeva' | 'banco_finandina_bic' | 'banco_falabella' | 'banco_pichincha' | 'banco_santander_de_negocios_colombia' | 'banco_mundo_mujer' | 'banco_serfinanza' | 'mibanco' | 'lulo_bank' | 'banco_union';
|
|
@@ -163,6 +172,12 @@ export interface CreateBankTransferOrderParams {
|
|
|
163
172
|
*/
|
|
164
173
|
metadata?: Record<string, unknown>;
|
|
165
174
|
}
|
|
175
|
+
export interface CreateBankTransferOrderOptions {
|
|
176
|
+
/**
|
|
177
|
+
* Optional custom idempotency key sent as `Idempotency-Key` header.
|
|
178
|
+
*/
|
|
179
|
+
idempotencyKey?: string;
|
|
180
|
+
}
|
|
166
181
|
/**
|
|
167
182
|
* Swap order details
|
|
168
183
|
*/
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BaseClient } from '@bloque/sdk-core';
|
|
2
|
-
import type { CreateBrebOrderParams, CreateBrebOrderResult } from './types';
|
|
2
|
+
import type { CreateBrebOrderOptions, CreateBrebOrderParams, CreateBrebOrderResult } from './types';
|
|
3
3
|
export declare class BrebClient extends BaseClient {
|
|
4
|
-
create(params: CreateBrebOrderParams): Promise<CreateBrebOrderResult>;
|
|
4
|
+
create(params: CreateBrebOrderParams, options?: CreateBrebOrderOptions): Promise<CreateBrebOrderResult>;
|
|
5
5
|
private _mapDepositInformationToWire;
|
|
6
6
|
private _mapOrderResponse;
|
|
7
7
|
private _mapExecutionResult;
|
package/dist/breb/types.d.ts
CHANGED
|
@@ -50,6 +50,12 @@ export interface CreateBrebOrderParams {
|
|
|
50
50
|
*/
|
|
51
51
|
metadata?: Record<string, unknown>;
|
|
52
52
|
}
|
|
53
|
+
export interface CreateBrebOrderOptions {
|
|
54
|
+
/**
|
|
55
|
+
* Optional custom idempotency key sent as `Idempotency-Key` header.
|
|
56
|
+
*/
|
|
57
|
+
idempotencyKey?: string;
|
|
58
|
+
}
|
|
53
59
|
export interface CreateBrebOrderResult {
|
|
54
60
|
/**
|
|
55
61
|
* The created order.
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const __rslib_import_meta_url__="u"<typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_require__={};__webpack_require__.d=(e,t)=>{for(var
|
|
1
|
+
"use strict";const __rslib_import_meta_url__="u"<typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_require__={};__webpack_require__.d=(e,t)=>{for(var r in t)__webpack_require__.o(t,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{BrebClient:()=>BrebClient,SwapClient:()=>SwapClient,BankTransferClient:()=>BankTransferClient,PseClient:()=>PseClient});const sdk_core_namespaceObject=require("@bloque/sdk-core");class BankTransferClient extends sdk_core_namespaceObject.BaseClient{async create(e,t){let r=this.httpClient.urn;if(!r)throw new sdk_core_namespaceObject.BloqueConfigError("User URN is not available. Please connect to a session first.");let a=e.type??"src",s={taker_urn:r,type:a,rate_sig:e.rateSig,from_medium:"kusama",to_medium:e.toMedium,webhook_url:e.webhookUrl,deposit_information:this._mapDepositInformationToWire(e.depositInformation)};"src"===a&&e.amountSrc?s.amount_src=e.amountSrc:"dst"===a&&e.amountDst&&(s.amount_dst=e.amountDst),e.args&&(s.args={account_urn:e.args.sourceAccountUrn}),e.nodeId&&(s.node_id=e.nodeId),e.metadata&&(s.metadata=e.metadata);let o=await this.httpClient.request({method:"PUT",path:"/api/order",body:s,headers:t?.idempotencyKey?{"Idempotency-Key":t.idempotencyKey}:void 0});return{order:this._mapOrderResponse(o.result.order),execution:o.result.execution?this._mapExecutionResult(o.result.execution):void 0,requestId:o.req_id}}_mapDepositInformationToWire(e){return{bank_account_type:e.bankAccountType,bank_account_number:e.bankAccountNumber,bank_account_holder_name:e.bankAccountHolderName,bank_account_holder_identification_type:e.bankAccountHolderIdentificationType,bank_account_holder_identification_value:e.bankAccountHolderIdentificationValue}}_mapOrderResponse(e){return{id:e.id,orderSig:e.order_sig,rateSig:e.rate_sig,swapSig:e.swap_sig,taker:e.taker,maker:e.maker,fromAsset:e.from_asset,toAsset:e.to_asset,fromMedium:e.from_medium,toMedium:e.to_medium,fromAmount:e.from_amount,toAmount:e.to_amount,at:e.at,graphId:e.graph_id,status:e.status,metadata:e.metadata,webhookUrl:e.webhook_url,failureReason:e.failure_reason,failureDetails:e.failure_details,createdAt:e.created_at,updatedAt:e.updated_at}}_mapExecutionResult(e){return{nodeId:e.node_id,result:{status:e.result.status,name:e.result.name,description:e.result.description,how:e.result.how,callbackToken:e.result.callback_token}}}}class BrebClient extends sdk_core_namespaceObject.BaseClient{async create(e,t){let r=this.httpClient.urn;if(!r)throw new sdk_core_namespaceObject.BloqueConfigError("User URN is not available. Please connect to a session first.");let a=e.type??"src",s={taker_urn:r,type:a,rate_sig:e.rateSig,from_medium:"kusama",to_medium:"breb",webhook_url:e.webhookUrl,deposit_information:this._mapDepositInformationToWire(e.depositInformation),args:{account_urn:e.args.sourceAccountUrn}};"src"===a&&e.amountSrc?s.amount_src=e.amountSrc:"dst"===a&&e.amountDst&&(s.amount_dst=e.amountDst),e.nodeId&&(s.node_id=e.nodeId),e.metadata&&(s.metadata=e.metadata);let o=await this.httpClient.request({method:"PUT",path:"/api/order",body:s,headers:t?.idempotencyKey?{"Idempotency-Key":t.idempotencyKey}:void 0});return{order:this._mapOrderResponse(o.result.order),execution:o.result.execution?this._mapExecutionResult(o.result.execution):void 0,requestId:o.req_id}}_mapDepositInformationToWire(e){return{resolution_id:e.resolutionId}}_mapOrderResponse(e){return{id:e.id,orderSig:e.order_sig,rateSig:e.rate_sig,swapSig:e.swap_sig,taker:e.taker,maker:e.maker,fromAsset:e.from_asset,toAsset:e.to_asset,fromMedium:e.from_medium,toMedium:e.to_medium,fromAmount:e.from_amount,toAmount:e.to_amount,at:e.at,graphId:e.graph_id,status:e.status,metadata:e.metadata,createdAt:e.created_at,updatedAt:e.updated_at}}_mapExecutionResult(e){return{nodeId:e.node_id,result:{status:e.result.status,name:e.result.name,description:e.result.description,how:e.result.how,callbackToken:e.result.callback_token}}}}class PseClient extends sdk_core_namespaceObject.BaseClient{async banks(){return{banks:(await this.httpClient.request({method:"GET",path:"/api/utils/pse/banks"})).banks.map(e=>this._mapBankResponse(e))}}async create(e,t){let r=this.httpClient.urn;if(!r)throw new sdk_core_namespaceObject.BloqueConfigError("User URN is not available. Please connect to a session first.");let a=e.type??"src",s={taker_urn:r,type:a,rate_sig:e.rateSig,from_medium:"pse",to_medium:e.toMedium,webhook_url:e.webhookUrl,deposit_information:this._mapDepositInformationToWire(e.depositInformation)};"src"===a&&e.amountSrc?s.amount_src=e.amountSrc:"dst"===a&&e.amountDst&&(s.amount_dst=e.amountDst),e.args&&(s.args={bank_code:e.args.bankCode,user_type:e.args.userType,customer_email:e.args.customerEmail,user_legal_id_type:e.args.userLegalIdType,user_legal_id:e.args.userLegalId,...e.args.customerData&&{customer_data:{full_name:e.args.customerData.fullName,phone_number:e.args.customerData.phoneNumber}}}),e.nodeId&&(s.node_id=e.nodeId),e.metadata&&(s.metadata=e.metadata);let o=await this.httpClient.request({method:"PUT",path:"/api/order",body:s,headers:t?.idempotencyKey?{"Idempotency-Key":t.idempotencyKey}:void 0});return{order:this._mapOrderResponse(o.result.order),execution:o.result.execution?this._mapExecutionResult(o.result.execution):void 0,requestId:o.req_id}}_mapBankResponse(e){return{code:e.financial_institution_code,name:e.financial_institution_name}}_mapDepositInformationToWire(e){return{urn:e.urn}}_mapOrderResponse(e){return{id:e.id,orderSig:e.order_sig,rateSig:e.rate_sig,swapSig:e.swap_sig,taker:e.taker,maker:e.maker,fromAsset:e.from_asset,toAsset:e.to_asset,fromMedium:e.from_medium,toMedium:e.to_medium,fromAmount:e.from_amount,toAmount:e.to_amount,at:e.at,graphId:e.graph_id,status:e.status,metadata:e.metadata,createdAt:e.created_at,updatedAt:e.updated_at}}_mapExecutionResult(e){return{nodeId:e.node_id,result:{status:e.result.status,name:e.result.name,description:e.result.description,how:e.result.how,callbackToken:e.result.callback_token}}}}class SwapClient extends sdk_core_namespaceObject.BaseClient{pse;bankTransfer;breb;constructor(e){super(e),this.pse=new PseClient(this.httpClient),this.bankTransfer=new BankTransferClient(this.httpClient),this.breb=new BrebClient(this.httpClient)}async findRates(e){let t=new URLSearchParams,r=JSON.stringify([e.fromAsset,e.toAsset]);t.append("edge",r),t.append("from_medium",JSON.stringify(e.fromMediums)),t.append("to_medium",JSON.stringify(e.toMediums)),void 0!==e.amountSrc&&t.append("amount_src",e.amountSrc),void 0!==e.amountDst&&t.append("amount_dst",e.amountDst),e.sort&&t.append("sort",e.sort),e.sortBy&&t.append("sort_by",e.sortBy);let a=t.toString(),s=`/api/rates?${a}`;return{rates:(await this.httpClient.request({method:"GET",path:s})).rates.map(e=>this._mapRateResponse(e))}}async listOrders(e={}){let t=this.httpClient.urn;if(!t)throw new sdk_core_namespaceObject.BloqueConfigError("User URN is not available. Please connect to a session first.");let r=new URLSearchParams;e.orderSig&&r.set("order_sig",e.orderSig),e.swapSig&&r.set("swap_sig",e.swapSig),e.rateSig&&r.set("rate_sig",e.rateSig),e.makerUrn&&r.set("maker_urn",e.makerUrn),e.status&&r.set("status",e.status),e.graphId&&r.set("graph_id",e.graphId),void 0!==e.after&&r.set("after",e.after.toString()),void 0!==e.before&&r.set("before",e.before.toString());let a=r.toString(),s=`/api/order/taker/${t}${a?`?${a}`:""}`;return{orders:(await this.httpClient.request({method:"GET",path:s})).orders.map(e=>this._mapOrderResponse(e))}}async cancelSubscription(e){let t=await this.httpClient.request({method:"POST",path:`/api/order/${e.orderId}/cancel-subscription`});return{status:t.result.status,cursor:t.result.cursor,orderId:t.result.order_id,graphId:t.result.graph_id}}_mapOrderResponse(e){return{id:e.id,orderSig:e.order_sig,rateSig:e.rate_sig,swapSig:e.swap_sig,taker:e.taker,maker:e.maker,fromAsset:e.from_asset,toAsset:e.to_asset,fromMedium:e.from_medium,toMedium:e.to_medium,fromAmount:e.from_amount,toAmount:e.to_amount,at:e.at,graphId:e.graph_id,status:e.status,metadata:e.metadata,webhookUrl:e.webhook_url,failureReason:e.failure_reason,failureDetails:e.failure_details,createdAt:e.created_at,updatedAt:e.updated_at}}_mapRateResponse(e){return{id:e.id,sig:e.sig,swapSig:e.swap_sig,maker:e.maker,edge:e.edge,fee:{at:e.fee.at,value:e.fee.value,formula:e.fee.formula,components:e.fee.components.map(e=>({at:e.at,name:e.name,type:e.type,value:e.value,percentage:e.percentage,pair:e.pair,amount:e.amount}))},at:e.at,until:e.until,fromMediums:e.from_medium,toMediums:e.to_medium,rate:e.rate,ratio:e.ratio,fromLimits:e.from_limits,toLimits:e.to_limits,createdAt:e.created_at,updatedAt:e.updated_at}}}for(var __rspack_i in exports.BankTransferClient=__webpack_exports__.BankTransferClient,exports.BrebClient=__webpack_exports__.BrebClient,exports.PseClient=__webpack_exports__.PseClient,exports.SwapClient=__webpack_exports__.SwapClient,__webpack_exports__)-1===["BankTransferClient","BrebClient","PseClient","SwapClient"].indexOf(__rspack_i)&&(exports[__rspack_i]=__webpack_exports__[__rspack_i]);Object.defineProperty(exports,"__esModule",{value:!0});
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export { BankTransferClient } from './bank-transfer/bank-transfer-client';
|
|
2
|
-
export type { BankAccountType, BankDepositInformation, CreateBankTransferOrderParams, CreateBankTransferOrderResult, ExecutionHow, ExecutionResult, IdentificationType, KusamaAccountArgs, OrderType, SupportedBank, SwapOrder, } from './bank-transfer/types';
|
|
2
|
+
export type { BankAccountType, BankDepositInformation, CreateBankTransferOrderOptions, CreateBankTransferOrderParams, CreateBankTransferOrderResult, ExecutionHow, ExecutionResult, IdentificationType, KusamaAccountArgs, OrderType, SupportedBank, SwapOrder, } from './bank-transfer/types';
|
|
3
3
|
export { BrebClient } from './breb/breb-client';
|
|
4
|
-
export type { BrebDepositInformation, BrebSwapArgs, CreateBrebOrderParams, CreateBrebOrderResult, } from './breb/types';
|
|
4
|
+
export type { BrebDepositInformation, BrebSwapArgs, CreateBrebOrderOptions, CreateBrebOrderParams, CreateBrebOrderResult, } from './breb/types';
|
|
5
5
|
export { PseClient } from './pse/pse-client';
|
|
6
|
-
export type { Bank, CreatePseOrderParams, CreatePseOrderResult, DepositInformation, ListBanksResult, PseCustomerData, PsePaymentArgs, } from './pse/types';
|
|
6
|
+
export type { Bank, CreatePseOrderOptions, CreatePseOrderParams, CreatePseOrderResult, DepositInformation, ListBanksResult, PseCustomerData, PsePaymentArgs, } from './pse/types';
|
|
7
7
|
export { SwapClient } from './swap-client';
|
|
8
8
|
export type { Fee, FeeComponent, FeeComponentType, FindRatesParams, FindRatesResult, ListOrdersParams, ListOrdersResult, OrderStatus, RateLimits, RateTuple, SwapRate, } from './types';
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{BaseClient as
|
|
1
|
+
import{BaseClient as e,BloqueConfigError as t}from"@bloque/sdk-core";class a extends e{async create(e,a){let r=this.httpClient.urn;if(!r)throw new t("User URN is not available. Please connect to a session first.");let s=e.type??"src",o={taker_urn:r,type:s,rate_sig:e.rateSig,from_medium:"kusama",to_medium:e.toMedium,webhook_url:e.webhookUrl,deposit_information:this._mapDepositInformationToWire(e.depositInformation)};"src"===s&&e.amountSrc?o.amount_src=e.amountSrc:"dst"===s&&e.amountDst&&(o.amount_dst=e.amountDst),e.args&&(o.args={account_urn:e.args.sourceAccountUrn}),e.nodeId&&(o.node_id=e.nodeId),e.metadata&&(o.metadata=e.metadata);let i=await this.httpClient.request({method:"PUT",path:"/api/order",body:o,headers:a?.idempotencyKey?{"Idempotency-Key":a.idempotencyKey}:void 0});return{order:this._mapOrderResponse(i.result.order),execution:i.result.execution?this._mapExecutionResult(i.result.execution):void 0,requestId:i.req_id}}_mapDepositInformationToWire(e){return{bank_account_type:e.bankAccountType,bank_account_number:e.bankAccountNumber,bank_account_holder_name:e.bankAccountHolderName,bank_account_holder_identification_type:e.bankAccountHolderIdentificationType,bank_account_holder_identification_value:e.bankAccountHolderIdentificationValue}}_mapOrderResponse(e){return{id:e.id,orderSig:e.order_sig,rateSig:e.rate_sig,swapSig:e.swap_sig,taker:e.taker,maker:e.maker,fromAsset:e.from_asset,toAsset:e.to_asset,fromMedium:e.from_medium,toMedium:e.to_medium,fromAmount:e.from_amount,toAmount:e.to_amount,at:e.at,graphId:e.graph_id,status:e.status,metadata:e.metadata,webhookUrl:e.webhook_url,failureReason:e.failure_reason,failureDetails:e.failure_details,createdAt:e.created_at,updatedAt:e.updated_at}}_mapExecutionResult(e){return{nodeId:e.node_id,result:{status:e.result.status,name:e.result.name,description:e.result.description,how:e.result.how,callbackToken:e.result.callback_token}}}}class r extends e{async create(e,a){let r=this.httpClient.urn;if(!r)throw new t("User URN is not available. Please connect to a session first.");let s=e.type??"src",o={taker_urn:r,type:s,rate_sig:e.rateSig,from_medium:"kusama",to_medium:"breb",webhook_url:e.webhookUrl,deposit_information:this._mapDepositInformationToWire(e.depositInformation),args:{account_urn:e.args.sourceAccountUrn}};"src"===s&&e.amountSrc?o.amount_src=e.amountSrc:"dst"===s&&e.amountDst&&(o.amount_dst=e.amountDst),e.nodeId&&(o.node_id=e.nodeId),e.metadata&&(o.metadata=e.metadata);let i=await this.httpClient.request({method:"PUT",path:"/api/order",body:o,headers:a?.idempotencyKey?{"Idempotency-Key":a.idempotencyKey}:void 0});return{order:this._mapOrderResponse(i.result.order),execution:i.result.execution?this._mapExecutionResult(i.result.execution):void 0,requestId:i.req_id}}_mapDepositInformationToWire(e){return{resolution_id:e.resolutionId}}_mapOrderResponse(e){return{id:e.id,orderSig:e.order_sig,rateSig:e.rate_sig,swapSig:e.swap_sig,taker:e.taker,maker:e.maker,fromAsset:e.from_asset,toAsset:e.to_asset,fromMedium:e.from_medium,toMedium:e.to_medium,fromAmount:e.from_amount,toAmount:e.to_amount,at:e.at,graphId:e.graph_id,status:e.status,metadata:e.metadata,createdAt:e.created_at,updatedAt:e.updated_at}}_mapExecutionResult(e){return{nodeId:e.node_id,result:{status:e.result.status,name:e.result.name,description:e.result.description,how:e.result.how,callbackToken:e.result.callback_token}}}}class s extends e{async banks(){return{banks:(await this.httpClient.request({method:"GET",path:"/api/utils/pse/banks"})).banks.map(e=>this._mapBankResponse(e))}}async create(e,a){let r=this.httpClient.urn;if(!r)throw new t("User URN is not available. Please connect to a session first.");let s=e.type??"src",o={taker_urn:r,type:s,rate_sig:e.rateSig,from_medium:"pse",to_medium:e.toMedium,webhook_url:e.webhookUrl,deposit_information:this._mapDepositInformationToWire(e.depositInformation)};"src"===s&&e.amountSrc?o.amount_src=e.amountSrc:"dst"===s&&e.amountDst&&(o.amount_dst=e.amountDst),e.args&&(o.args={bank_code:e.args.bankCode,user_type:e.args.userType,customer_email:e.args.customerEmail,user_legal_id_type:e.args.userLegalIdType,user_legal_id:e.args.userLegalId,...e.args.customerData&&{customer_data:{full_name:e.args.customerData.fullName,phone_number:e.args.customerData.phoneNumber}}}),e.nodeId&&(o.node_id=e.nodeId),e.metadata&&(o.metadata=e.metadata);let i=await this.httpClient.request({method:"PUT",path:"/api/order",body:o,headers:a?.idempotencyKey?{"Idempotency-Key":a.idempotencyKey}:void 0});return{order:this._mapOrderResponse(i.result.order),execution:i.result.execution?this._mapExecutionResult(i.result.execution):void 0,requestId:i.req_id}}_mapBankResponse(e){return{code:e.financial_institution_code,name:e.financial_institution_name}}_mapDepositInformationToWire(e){return{urn:e.urn}}_mapOrderResponse(e){return{id:e.id,orderSig:e.order_sig,rateSig:e.rate_sig,swapSig:e.swap_sig,taker:e.taker,maker:e.maker,fromAsset:e.from_asset,toAsset:e.to_asset,fromMedium:e.from_medium,toMedium:e.to_medium,fromAmount:e.from_amount,toAmount:e.to_amount,at:e.at,graphId:e.graph_id,status:e.status,metadata:e.metadata,createdAt:e.created_at,updatedAt:e.updated_at}}_mapExecutionResult(e){return{nodeId:e.node_id,result:{status:e.result.status,name:e.result.name,description:e.result.description,how:e.result.how,callbackToken:e.result.callback_token}}}}class o extends e{pse;bankTransfer;breb;constructor(e){super(e),this.pse=new s(this.httpClient),this.bankTransfer=new a(this.httpClient),this.breb=new r(this.httpClient)}async findRates(e){let t=new URLSearchParams,a=JSON.stringify([e.fromAsset,e.toAsset]);t.append("edge",a),t.append("from_medium",JSON.stringify(e.fromMediums)),t.append("to_medium",JSON.stringify(e.toMediums)),void 0!==e.amountSrc&&t.append("amount_src",e.amountSrc),void 0!==e.amountDst&&t.append("amount_dst",e.amountDst),e.sort&&t.append("sort",e.sort),e.sortBy&&t.append("sort_by",e.sortBy);let r=t.toString(),s=`/api/rates?${r}`;return{rates:(await this.httpClient.request({method:"GET",path:s})).rates.map(e=>this._mapRateResponse(e))}}async listOrders(e={}){let a=this.httpClient.urn;if(!a)throw new t("User URN is not available. Please connect to a session first.");let r=new URLSearchParams;e.orderSig&&r.set("order_sig",e.orderSig),e.swapSig&&r.set("swap_sig",e.swapSig),e.rateSig&&r.set("rate_sig",e.rateSig),e.makerUrn&&r.set("maker_urn",e.makerUrn),e.status&&r.set("status",e.status),e.graphId&&r.set("graph_id",e.graphId),void 0!==e.after&&r.set("after",e.after.toString()),void 0!==e.before&&r.set("before",e.before.toString());let s=r.toString(),o=`/api/order/taker/${a}${s?`?${s}`:""}`;return{orders:(await this.httpClient.request({method:"GET",path:o})).orders.map(e=>this._mapOrderResponse(e))}}async cancelSubscription(e){let t=await this.httpClient.request({method:"POST",path:`/api/order/${e.orderId}/cancel-subscription`});return{status:t.result.status,cursor:t.result.cursor,orderId:t.result.order_id,graphId:t.result.graph_id}}_mapOrderResponse(e){return{id:e.id,orderSig:e.order_sig,rateSig:e.rate_sig,swapSig:e.swap_sig,taker:e.taker,maker:e.maker,fromAsset:e.from_asset,toAsset:e.to_asset,fromMedium:e.from_medium,toMedium:e.to_medium,fromAmount:e.from_amount,toAmount:e.to_amount,at:e.at,graphId:e.graph_id,status:e.status,metadata:e.metadata,webhookUrl:e.webhook_url,failureReason:e.failure_reason,failureDetails:e.failure_details,createdAt:e.created_at,updatedAt:e.updated_at}}_mapRateResponse(e){return{id:e.id,sig:e.sig,swapSig:e.swap_sig,maker:e.maker,edge:e.edge,fee:{at:e.fee.at,value:e.fee.value,formula:e.fee.formula,components:e.fee.components.map(e=>({at:e.at,name:e.name,type:e.type,value:e.value,percentage:e.percentage,pair:e.pair,amount:e.amount}))},at:e.at,until:e.until,fromMediums:e.from_medium,toMediums:e.to_medium,rate:e.rate,ratio:e.ratio,fromLimits:e.from_limits,toLimits:e.to_limits,createdAt:e.created_at,updatedAt:e.updated_at}}}export{a as BankTransferClient,r as BrebClient,s as PseClient,o as SwapClient};
|
|
@@ -181,3 +181,16 @@ export interface CreateOrderResponse {
|
|
|
181
181
|
};
|
|
182
182
|
req_id: string;
|
|
183
183
|
}
|
|
184
|
+
/**
|
|
185
|
+
* @internal
|
|
186
|
+
* Cancel subscription response from API.
|
|
187
|
+
*/
|
|
188
|
+
export interface CancelSubscriptionResponse {
|
|
189
|
+
result: {
|
|
190
|
+
status: 'cancellation_pending' | 'already_cancelled' | 'graph_done';
|
|
191
|
+
cursor: number | null;
|
|
192
|
+
order_id: string;
|
|
193
|
+
graph_id: string;
|
|
194
|
+
};
|
|
195
|
+
req_id: string;
|
|
196
|
+
}
|
package/dist/pse/pse-client.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BaseClient } from '@bloque/sdk-core';
|
|
2
|
-
import type { CreatePseOrderParams, CreatePseOrderResult, ListBanksResult } from './types';
|
|
2
|
+
import type { CreatePseOrderOptions, CreatePseOrderParams, CreatePseOrderResult, ListBanksResult } from './types';
|
|
3
3
|
/**
|
|
4
4
|
* PSE client for PSE-related utilities
|
|
5
5
|
*
|
|
@@ -44,24 +44,27 @@ export declare class PseClient extends BaseClient {
|
|
|
44
44
|
* });
|
|
45
45
|
*
|
|
46
46
|
* // Create order with auto-execution
|
|
47
|
-
* const result = await bloque.swap.pse.create(
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
*
|
|
47
|
+
* const result = await bloque.swap.pse.create(
|
|
48
|
+
* {
|
|
49
|
+
* rateSig: rates.rates[0].sig,
|
|
50
|
+
* toMedium: 'kusama',
|
|
51
|
+
* amountSrc: '10000000',
|
|
52
|
+
* depositInformation: {
|
|
53
|
+
* urn: 'did:bloque:account:card:usr-xxx:crd-xxx'
|
|
54
|
+
* },
|
|
55
|
+
* args: {
|
|
56
|
+
* bankCode: '1',
|
|
57
|
+
* userType: 'natural',
|
|
58
|
+
* customerEmail: 'user@example.com',
|
|
59
|
+
* userLegalIdType: 'CC',
|
|
60
|
+
* userLegalId: '1234567890',
|
|
61
|
+
* customerData: {
|
|
62
|
+
* fullName: 'John Doe'
|
|
63
|
+
* }
|
|
62
64
|
* }
|
|
63
|
-
* }
|
|
64
|
-
* }
|
|
65
|
+
* },
|
|
66
|
+
* { idempotencyKey: 'pse-order-10000000' }
|
|
67
|
+
* );
|
|
65
68
|
*
|
|
66
69
|
* // If execution returned a checkout URL, redirect user
|
|
67
70
|
* if (result.execution?.result.checkoutUrl) {
|
|
@@ -69,7 +72,7 @@ export declare class PseClient extends BaseClient {
|
|
|
69
72
|
* }
|
|
70
73
|
* ```
|
|
71
74
|
*/
|
|
72
|
-
create(params: CreatePseOrderParams): Promise<CreatePseOrderResult>;
|
|
75
|
+
create(params: CreatePseOrderParams, options?: CreatePseOrderOptions): Promise<CreatePseOrderResult>;
|
|
73
76
|
/**
|
|
74
77
|
* Maps API bank response to SDK format
|
|
75
78
|
* @internal
|
package/dist/pse/types.d.ts
CHANGED
|
@@ -111,6 +111,12 @@ export interface CreatePseOrderParams {
|
|
|
111
111
|
*/
|
|
112
112
|
metadata?: Record<string, unknown>;
|
|
113
113
|
}
|
|
114
|
+
export interface CreatePseOrderOptions {
|
|
115
|
+
/**
|
|
116
|
+
* Optional custom idempotency key sent as `Idempotency-Key` header.
|
|
117
|
+
*/
|
|
118
|
+
idempotencyKey?: string;
|
|
119
|
+
}
|
|
114
120
|
/**
|
|
115
121
|
* Result of creating a PSE swap order
|
|
116
122
|
*/
|
package/dist/swap-client.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { BaseClient } from '@bloque/sdk-core';
|
|
|
3
3
|
import { BankTransferClient } from './bank-transfer/bank-transfer-client';
|
|
4
4
|
import { BrebClient } from './breb/breb-client';
|
|
5
5
|
import { PseClient } from './pse/pse-client';
|
|
6
|
-
import type { FindRatesParams, FindRatesResult, ListOrdersParams, ListOrdersResult } from './types';
|
|
6
|
+
import type { CancelSubscriptionParams, CancelSubscriptionResult, FindRatesParams, FindRatesResult, ListOrdersParams, ListOrdersResult } from './types';
|
|
7
7
|
/**
|
|
8
8
|
* Swap client for finding exchange rates
|
|
9
9
|
*
|
|
@@ -57,6 +57,13 @@ export declare class SwapClient extends BaseClient {
|
|
|
57
57
|
* ```
|
|
58
58
|
*/
|
|
59
59
|
listOrders(params?: ListOrdersParams): Promise<ListOrdersResult>;
|
|
60
|
+
/**
|
|
61
|
+
* Cancel a recurring subscription created via recurring-card graphs.
|
|
62
|
+
*
|
|
63
|
+
* This sets a cancellation flag on the underlying instruction graph so future
|
|
64
|
+
* occurrences stop. In-flight occurrences are not interrupted.
|
|
65
|
+
*/
|
|
66
|
+
cancelSubscription(params: CancelSubscriptionParams): Promise<CancelSubscriptionResult>;
|
|
60
67
|
/**
|
|
61
68
|
* Maps API order response to SDK format
|
|
62
69
|
* @internal
|
package/dist/types.d.ts
CHANGED
|
@@ -167,3 +167,16 @@ export interface ListOrdersParams {
|
|
|
167
167
|
export interface ListOrdersResult {
|
|
168
168
|
orders: import('./bank-transfer/types').SwapOrder[];
|
|
169
169
|
}
|
|
170
|
+
export interface CancelSubscriptionParams {
|
|
171
|
+
/**
|
|
172
|
+
* Order signature (`order_sig`) of the recurring subscription.
|
|
173
|
+
*/
|
|
174
|
+
orderId: string;
|
|
175
|
+
}
|
|
176
|
+
export type CancelSubscriptionStatus = 'cancellation_pending' | 'already_cancelled' | 'graph_done';
|
|
177
|
+
export interface CancelSubscriptionResult {
|
|
178
|
+
status: CancelSubscriptionStatus;
|
|
179
|
+
cursor: number | null;
|
|
180
|
+
orderId: string;
|
|
181
|
+
graphId: string;
|
|
182
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bloque/sdk-swap",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.6",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"bloque",
|
|
@@ -34,6 +34,6 @@
|
|
|
34
34
|
"node": ">=22"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@bloque/sdk-core": "0.1.
|
|
37
|
+
"@bloque/sdk-core": "0.1.6"
|
|
38
38
|
}
|
|
39
39
|
}
|