@bronlabs/intents-sdk 1.0.21 → 1.0.22
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/contracts.d.ts +72 -2
- package/dist/contracts.js +45 -2
- package/dist/contracts.js.map +1 -1
- package/dist/networks/canton.js +19 -4
- package/dist/networks/canton.js.map +1 -1
- package/package.json +1 -1
package/dist/contracts.d.ts
CHANGED
|
@@ -1,3 +1,73 @@
|
|
|
1
1
|
import { ethers } from 'ethers';
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
declare enum OrderStatus {
|
|
3
|
+
NOT_EXIST = 0,
|
|
4
|
+
USER_INITIATED = 1,
|
|
5
|
+
AUCTION_IN_PROGRESS = 2,
|
|
6
|
+
WAIT_FOR_USER_TX = 3,
|
|
7
|
+
WAIT_FOR_ORACLE_CONFIRM_USER_TX = 4,
|
|
8
|
+
WAIT_FOR_SOLVER_TX = 5,
|
|
9
|
+
WAIT_FOR_ORACLE_CONFIRM_SOLVER_TX = 6,
|
|
10
|
+
COMPLETED = 7,
|
|
11
|
+
TO_BE_LIQUIDATED = 8,
|
|
12
|
+
LIQUIDATED = 9,
|
|
13
|
+
CANCELLED = 10
|
|
14
|
+
}
|
|
15
|
+
interface BaseParams {
|
|
16
|
+
networkId: string;
|
|
17
|
+
tokenAddress: string;
|
|
18
|
+
solverAddress: string;
|
|
19
|
+
userTxHash: string;
|
|
20
|
+
}
|
|
21
|
+
interface QuoteParams {
|
|
22
|
+
networkId: string;
|
|
23
|
+
tokenAddress: string;
|
|
24
|
+
userAddress: string;
|
|
25
|
+
solverTxHash: string;
|
|
26
|
+
}
|
|
27
|
+
interface PricingParams {
|
|
28
|
+
baseAmount: string;
|
|
29
|
+
quoteAmount: string;
|
|
30
|
+
price_e18: string;
|
|
31
|
+
maxPrice_e18: string;
|
|
32
|
+
auctionDuration: string;
|
|
33
|
+
baseTokenPriceToUsd_e4: string;
|
|
34
|
+
liquidationReceiver: string;
|
|
35
|
+
}
|
|
36
|
+
interface Order {
|
|
37
|
+
status: OrderStatus;
|
|
38
|
+
user: string;
|
|
39
|
+
solver: string;
|
|
40
|
+
baseParams: BaseParams;
|
|
41
|
+
quoteParams: QuoteParams;
|
|
42
|
+
pricingParams: PricingParams;
|
|
43
|
+
updatedAt: number;
|
|
44
|
+
createdAt: number;
|
|
45
|
+
}
|
|
46
|
+
export interface OrderEngineContract extends ethers.Contract {
|
|
47
|
+
createOrder(params: {
|
|
48
|
+
orderId: string;
|
|
49
|
+
baseNetworkId: string;
|
|
50
|
+
baseTokenAddress: string;
|
|
51
|
+
quoteNetworkId: string;
|
|
52
|
+
quoteTokenAddress: string;
|
|
53
|
+
userAddress: string;
|
|
54
|
+
baseAmount: ethers.BigNumberish;
|
|
55
|
+
quoteAmount: ethers.BigNumberish;
|
|
56
|
+
baseTokenPriceToUsd_e4: ethers.BigNumberish;
|
|
57
|
+
maxPrice_e18: ethers.BigNumberish;
|
|
58
|
+
auctionDuration: ethers.BigNumberish;
|
|
59
|
+
liquidationReceiver: string;
|
|
60
|
+
}): Promise<ethers.ContractTransaction>;
|
|
61
|
+
getOrder(orderId: string): Promise<Order>;
|
|
62
|
+
solverReact(orderId: string, amount: ethers.BigNumberish, price: ethers.BigNumberish): Promise<ethers.ContractTransaction>;
|
|
63
|
+
setUserTxOnBaseNetwork(orderId: string, txHash: string): Promise<ethers.ContractTransaction>;
|
|
64
|
+
setSolverTxOnQuoteNetwork(orderId: string, txHash: string): Promise<ethers.ContractTransaction>;
|
|
65
|
+
setOracleConfirmUserTx(orderId: string): Promise<ethers.ContractTransaction>;
|
|
66
|
+
setOracleConfirmSolverTx(orderId: string): Promise<ethers.ContractTransaction>;
|
|
67
|
+
executeUserTimeout(orderId: string): Promise<ethers.ContractTransaction>;
|
|
68
|
+
executeSolverTimeout(orderId: string): Promise<ethers.ContractTransaction>;
|
|
69
|
+
}
|
|
70
|
+
export declare function initOrderEngine(orderEngineAddress: string, provider: ethers.providers.JsonRpcProvider | ethers.Signer): OrderEngineContract;
|
|
71
|
+
export declare function initOracleAggregator(oracleAggregatorAddress: string, provider: ethers.providers.JsonRpcProvider | ethers.Signer): ethers.Contract;
|
|
72
|
+
export declare function printOrder(baseParams: BaseParams, quoteParams: QuoteParams, pricingParams: PricingParams): string;
|
|
73
|
+
export {};
|
package/dist/contracts.js
CHANGED
|
@@ -3,6 +3,49 @@ import * as fs from 'node:fs';
|
|
|
3
3
|
import * as path from 'node:path';
|
|
4
4
|
import { fileURLToPath } from 'node:url';
|
|
5
5
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
var OrderStatus;
|
|
7
|
+
(function (OrderStatus) {
|
|
8
|
+
OrderStatus[OrderStatus["NOT_EXIST"] = 0] = "NOT_EXIST";
|
|
9
|
+
OrderStatus[OrderStatus["USER_INITIATED"] = 1] = "USER_INITIATED";
|
|
10
|
+
OrderStatus[OrderStatus["AUCTION_IN_PROGRESS"] = 2] = "AUCTION_IN_PROGRESS";
|
|
11
|
+
OrderStatus[OrderStatus["WAIT_FOR_USER_TX"] = 3] = "WAIT_FOR_USER_TX";
|
|
12
|
+
OrderStatus[OrderStatus["WAIT_FOR_ORACLE_CONFIRM_USER_TX"] = 4] = "WAIT_FOR_ORACLE_CONFIRM_USER_TX";
|
|
13
|
+
OrderStatus[OrderStatus["WAIT_FOR_SOLVER_TX"] = 5] = "WAIT_FOR_SOLVER_TX";
|
|
14
|
+
OrderStatus[OrderStatus["WAIT_FOR_ORACLE_CONFIRM_SOLVER_TX"] = 6] = "WAIT_FOR_ORACLE_CONFIRM_SOLVER_TX";
|
|
15
|
+
OrderStatus[OrderStatus["COMPLETED"] = 7] = "COMPLETED";
|
|
16
|
+
OrderStatus[OrderStatus["TO_BE_LIQUIDATED"] = 8] = "TO_BE_LIQUIDATED";
|
|
17
|
+
OrderStatus[OrderStatus["LIQUIDATED"] = 9] = "LIQUIDATED";
|
|
18
|
+
OrderStatus[OrderStatus["CANCELLED"] = 10] = "CANCELLED";
|
|
19
|
+
})(OrderStatus || (OrderStatus = {}));
|
|
20
|
+
export function initOrderEngine(orderEngineAddress, provider) {
|
|
21
|
+
return new ethers.Contract(orderEngineAddress, JSON.parse(fs.readFileSync(path.join(__dirname, '../abi/OrderEngine.json'), 'utf8')), provider);
|
|
22
|
+
}
|
|
23
|
+
export function initOracleAggregator(oracleAggregatorAddress, provider) {
|
|
24
|
+
return new ethers.Contract(oracleAggregatorAddress, JSON.parse(fs.readFileSync(path.join(__dirname, '../abi/OracleAggregator.json'), 'utf8')), provider);
|
|
25
|
+
}
|
|
26
|
+
export function printOrder(baseParams, quoteParams, pricingParams) {
|
|
27
|
+
return JSON.stringify({
|
|
28
|
+
baseParams: {
|
|
29
|
+
networkId: baseParams.networkId,
|
|
30
|
+
tokenAddress: baseParams.tokenAddress,
|
|
31
|
+
solverAddress: baseParams.solverAddress,
|
|
32
|
+
userTxHash: baseParams.userTxHash
|
|
33
|
+
},
|
|
34
|
+
quoteParams: {
|
|
35
|
+
networkId: quoteParams.networkId,
|
|
36
|
+
tokenAddress: quoteParams.tokenAddress,
|
|
37
|
+
userAddress: quoteParams.userAddress,
|
|
38
|
+
solverTxHash: quoteParams.solverTxHash
|
|
39
|
+
},
|
|
40
|
+
pricingParams: {
|
|
41
|
+
baseAmount: pricingParams.baseAmount.toString(),
|
|
42
|
+
quoteAmount: pricingParams.quoteAmount.toString(),
|
|
43
|
+
price_e18: pricingParams.price_e18.toString(),
|
|
44
|
+
maxPrice_e18: pricingParams.maxPrice_e18.toString(),
|
|
45
|
+
auctionDuration: pricingParams.auctionDuration.toString(),
|
|
46
|
+
baseTokenPriceToUsd_e4: pricingParams.baseTokenPriceToUsd_e4.toString(),
|
|
47
|
+
liquidationReceiver: pricingParams.liquidationReceiver
|
|
48
|
+
}
|
|
49
|
+
}, null, 2);
|
|
50
|
+
}
|
|
8
51
|
//# sourceMappingURL=contracts.js.map
|
package/dist/contracts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE/D,
|
|
1
|
+
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE/D,IAAK,WAYJ;AAZD,WAAK,WAAW;IACd,uDAAS,CAAA;IACT,iEAAc,CAAA;IACd,2EAAmB,CAAA;IACnB,qEAAgB,CAAA;IAChB,mGAA+B,CAAA;IAC/B,yEAAkB,CAAA;IAClB,uGAAiC,CAAA;IACjC,uDAAS,CAAA;IACT,qEAAgB,CAAA;IAChB,yDAAU,CAAA;IACV,wDAAS,CAAA;AACX,CAAC,EAZI,WAAW,KAAX,WAAW,QAYf;AAuED,MAAM,UAAU,eAAe,CAAC,kBAA0B,EAAE,QAA0D;IACpH,OAAO,IAAI,MAAM,CAAC,QAAQ,CACxB,kBAAkB,EAClB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,yBAAyB,CAAC,EAAE,MAAM,CAAC,CAAC,EACpF,QAAQ,CACc,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,uBAA+B,EAAE,QAA0D;IAC9H,OAAO,IAAI,MAAM,CAAC,QAAQ,CACxB,uBAAuB,EACvB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,8BAA8B,CAAC,EAAE,MAAM,CAAC,CAAC,EACzF,QAAQ,CACT,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,UAAsB,EAAE,WAAwB,EAAE,aAA4B;IACvG,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,UAAU,EAAE;YACV,SAAS,EAAE,UAAU,CAAC,SAAS;YAC/B,YAAY,EAAE,UAAU,CAAC,YAAY;YACrC,aAAa,EAAE,UAAU,CAAC,aAAa;YACvC,UAAU,EAAE,UAAU,CAAC,UAAU;SAClC;QACD,WAAW,EAAE;YACX,SAAS,EAAE,WAAW,CAAC,SAAS;YAChC,YAAY,EAAE,WAAW,CAAC,YAAY;YACtC,WAAW,EAAE,WAAW,CAAC,WAAW;YACpC,YAAY,EAAE,WAAW,CAAC,YAAY;SACvC;QACD,aAAa,EAAE;YACb,UAAU,EAAE,aAAa,CAAC,UAAU,CAAC,QAAQ,EAAE;YAC/C,WAAW,EAAE,aAAa,CAAC,WAAW,CAAC,QAAQ,EAAE;YACjD,SAAS,EAAE,aAAa,CAAC,SAAS,CAAC,QAAQ,EAAE;YAC7C,YAAY,EAAE,aAAa,CAAC,YAAY,CAAC,QAAQ,EAAE;YACnD,eAAe,EAAE,aAAa,CAAC,eAAe,CAAC,QAAQ,EAAE;YACzD,sBAAsB,EAAE,aAAa,CAAC,sBAAsB,CAAC,QAAQ,EAAE;YACvE,mBAAmB,EAAE,aAAa,CAAC,mBAAmB;SACvD;KACF,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACd,CAAC"}
|
package/dist/networks/canton.js
CHANGED
|
@@ -39,14 +39,29 @@ export class CantonNetwork {
|
|
|
39
39
|
if (!json || json.error) {
|
|
40
40
|
throw new Error(`Couldn't get Canton tx data for ${txHash}: ${json?.error || 'unknown error'}`);
|
|
41
41
|
}
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
|
|
42
|
+
const sendResult = Object.values(json.events_by_id)
|
|
43
|
+
.find((e) => e.choice == 'TransferCommand_Send');
|
|
44
|
+
if (sendResult?.exercise_result?.result?.tag !== 'TransferCommandResultSuccess') {
|
|
45
|
+
log.error(`Transaction ${txHash} failed: ${sendResult?.exercise_result?.result?.tag}`);
|
|
46
|
+
return {
|
|
47
|
+
to: "",
|
|
48
|
+
token: "",
|
|
49
|
+
amount: BigNumber.from(0),
|
|
50
|
+
confirmed: true
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
const transfer = Object.values(json.events_by_id)
|
|
54
|
+
.find((e) => e.choice == 'AmuletRules_Transfer');
|
|
55
|
+
const output = transfer?.choice_argument?.transfer?.outputs[0] || {
|
|
56
|
+
receiver: '',
|
|
57
|
+
amount: '0'
|
|
58
|
+
};
|
|
59
|
+
const amount = new Big(output.amount)
|
|
45
60
|
.mul(Big(10).pow(this.nativeAssetDecimals))
|
|
46
61
|
.toNumber();
|
|
47
62
|
if (tokenAddress === '0x0') {
|
|
48
63
|
return {
|
|
49
|
-
to:
|
|
64
|
+
to: output.receiver,
|
|
50
65
|
token: tokenAddress,
|
|
51
66
|
amount: BigNumber.from(amount),
|
|
52
67
|
confirmed: true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canton.js","sourceRoot":"","sources":["../../src/networks/canton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,GAAG,MAAM,QAAQ,CAAC;AACzB,OAAO,KAAK,MAAM,YAAY,CAAC;AAG/B,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,MAAM,OAAO,aAAa;IAiBxB,YAAY,eAAuB,EAAE,UAAmB,EAAE,OAAgB,EAAE,QAAiB,EAAE,YAAqB,EAAE,aAAsB;QAZ3H,wBAAmB,GAAW,EAAE,CAAC;QACzC,eAAU,GAAW,IAAI,CAAC;QAS3B,yBAAoB,GAAW,CAAC,CAAC;QAGvC,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,eAAe,CAAC;QAChD,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,kCAAkC,CAAC;QAE7D,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE;YACrF,kBAAkB,EAAE,KAAK;SAC1B,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEf,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QAEjC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,YAAoB;QACpC,IAAI,YAAY,KAAK,KAAK,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,mBAAmB,CAAC;QAClC,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,YAAoB;QAClD,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAEtC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,eAAe,QAAQ,EAAE,EAAE;YACtE,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,IAAI,CAAC,UAAU;SACvB,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,mCAAmC,MAAM,KAAK,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QACtG,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QAEjC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,mCAAmC,MAAM,KAAK,IAAI,EAAE,KAAK,IAAI,eAAe,EAAE,CAAC,CAAC;QAClG,CAAC;QAED,MAAM,
|
|
1
|
+
{"version":3,"file":"canton.js","sourceRoot":"","sources":["../../src/networks/canton.ts"],"names":[],"mappings":"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"}
|