@atomiqlabs/chain-starknet 3.0.0-beta.3 → 3.0.0-beta.5

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.
@@ -25,7 +25,7 @@ class StarknetTransactions extends StarknetModule_1.StarknetModule {
25
25
  await this.sendSignedTransaction(tx).catch(e => {
26
26
  if (e.baseError?.code === 59)
27
27
  return; //Transaction already in the mempool
28
- console.error("Error on transaction re-send: ", e);
28
+ this.logger.error("confirmTransaction(): Error on transaction re-send: ", e);
29
29
  });
30
30
  }
31
31
  if (state === "rejected")
@@ -49,7 +49,7 @@ class StarknetTransactions extends StarknetModule_1.StarknetModule {
49
49
  let nonce = await signer.getNonce();
50
50
  const latestConfirmedNonce = this.latestConfirmedNonces[signer.getAddress()];
51
51
  if (latestConfirmedNonce != null && latestConfirmedNonce > nonce) {
52
- console.debug("StarknetTransactions: prepareTransactions(): Using nonce from local cache!");
52
+ this.logger.debug("prepareTransactions(): Using nonce from local cache!");
53
53
  nonce = latestConfirmedNonce;
54
54
  }
55
55
  if (nonce === BigInt(0) && signer.isWalletAccount()) {
@@ -75,7 +75,7 @@ class StarknetSwapContract extends StarknetContractBase_1.StarknetContractBase {
75
75
  handlerAddresses.claim = { ...defaultClaimAddresses[chainInterface.starknetChainId], ...handlerAddresses.claim };
76
76
  ClaimHandlers_1.claimHandlersList.forEach(handlerCtor => {
77
77
  const handler = new handlerCtor(handlerAddresses.claim[handlerCtor.type]);
78
- this.claimHandlersByAddress[handler.address] = handler;
78
+ this.claimHandlersByAddress[(0, Utils_1.toHex)(handler.address)] = handler;
79
79
  this.claimHandlersBySwapType[handlerCtor.type] = handler;
80
80
  });
81
81
  this.timelockRefundHandler = new TimelockRefundHandler_1.TimelockRefundHandler(handlerAddresses.refund.timelock);
@@ -36,7 +36,7 @@ class StarknetSwapClaim extends StarknetSwapModule_1.StarknetSwapModule {
36
36
  if (checkExpiry && await this.contract.isExpired(swapData.claimer.toString(), swapData)) {
37
37
  throw new base_1.SwapDataVerificationError("Not enough time to reliably pay the invoice");
38
38
  }
39
- const claimHandler = this.contract.claimHandlersByAddress[swapData.claimHandler.toLowerCase()];
39
+ const claimHandler = this.contract.claimHandlersByAddress[(0, Utils_1.toHex)(swapData.claimHandler)];
40
40
  if (claimHandler == null)
41
41
  throw new base_1.SwapDataVerificationError("Unknown claim handler!");
42
42
  if (claimHandler.getType() !== base_1.ChainSwapType.HTLC)
@@ -61,7 +61,7 @@ class StarknetSwapClaim extends StarknetSwapModule_1.StarknetSwapModule {
61
61
  * @param feeRate fee rate to be used for the transactions
62
62
  */
63
63
  async txsClaimWithTxData(signer, swapData, tx, requiredConfirmations, vout, commitedHeader, synchronizer, feeRate) {
64
- const claimHandler = this.contract.claimHandlersByAddress[swapData.claimHandler.toLowerCase()];
64
+ const claimHandler = this.contract.claimHandlersByAddress[(0, Utils_1.toHex)(swapData.claimHandler)];
65
65
  if (claimHandler == null)
66
66
  throw new base_1.SwapDataVerificationError("Unknown claim handler!");
67
67
  if (claimHandler.getType() !== base_1.ChainSwapType.CHAIN_NONCED &&
@@ -87,7 +87,7 @@ class StarknetSwapClaim extends StarknetSwapModule_1.StarknetSwapModule {
87
87
  async getClaimFee(swapData, feeRate) {
88
88
  feeRate ?? (feeRate = await this.root.Fees.getFeeRate());
89
89
  let gasRequired = swapData.payOut ? StarknetSwapClaim.GasCosts.CLAIM_PAY_OUT : StarknetSwapClaim.GasCosts.CLAIM;
90
- const claimHandler = this.contract.claimHandlersByAddress[swapData.claimHandler.toLowerCase()];
90
+ const claimHandler = this.contract.claimHandlersByAddress[(0, Utils_1.toHex)(swapData.claimHandler)];
91
91
  if (claimHandler != null)
92
92
  gasRequired = (0, StarknetFees_1.starknetGasAdd)(gasRequired, claimHandler.getGas(swapData));
93
93
  return StarknetFees_1.StarknetFees.getGasFee(gasRequired, feeRate);
@@ -35,10 +35,14 @@ function onceAsync(executor) {
35
35
  exports.onceAsync = onceAsync;
36
36
  function getLogger(prefix) {
37
37
  return {
38
- debug: (msg, ...args) => console.debug(prefix + msg, ...args),
39
- info: (msg, ...args) => console.info(prefix + msg, ...args),
40
- warn: (msg, ...args) => console.warn(prefix + msg, ...args),
41
- error: (msg, ...args) => console.error(prefix + msg, ...args)
38
+ // @ts-ignore
39
+ debug: (msg, ...args) => global.atomiqLogLevel >= 3 && console.debug(prefix + msg, ...args),
40
+ // @ts-ignore
41
+ info: (msg, ...args) => global.atomiqLogLevel >= 2 && console.info(prefix + msg, ...args),
42
+ // @ts-ignore
43
+ warn: (msg, ...args) => (global.atomiqLogLevel == null || global.atomiqLogLevel >= 1) && console.warn(prefix + msg, ...args),
44
+ // @ts-ignore
45
+ error: (msg, ...args) => (global.atomiqLogLevel == null || global.atomiqLogLevel >= 0) && console.error(prefix + msg, ...args)
42
46
  };
43
47
  }
44
48
  exports.getLogger = getLogger;
@@ -75,7 +79,7 @@ function toHex(value, length = 64) {
75
79
  switch (typeof (value)) {
76
80
  case "string":
77
81
  if (value.startsWith("0x")) {
78
- return "0x" + value.slice(2).padStart(length, "0");
82
+ return "0x" + value.slice(2).padStart(length, "0").toLowerCase();
79
83
  }
80
84
  else {
81
85
  return "0x" + BigInt(value).toString(16).padStart(length, "0");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atomiqlabs/chain-starknet",
3
- "version": "3.0.0-beta.3",
3
+ "version": "3.0.0-beta.5",
4
4
  "description": "Starknet specific base implementation",
5
5
  "main": "./dist/index.js",
6
6
  "types:": "./dist/index.d.ts",
@@ -42,7 +42,7 @@ export class StarknetTransactions extends StarknetModule {
42
42
  state = await this._getTxIdStatus(tx.txId);
43
43
  if(state==="not_found" && tx.signed!=null) await this.sendSignedTransaction(tx).catch(e => {
44
44
  if(e.baseError?.code === 59) return; //Transaction already in the mempool
45
- console.error("Error on transaction re-send: ", e);
45
+ this.logger.error("confirmTransaction(): Error on transaction re-send: ", e);
46
46
  });
47
47
  }
48
48
  if(state==="rejected") throw new Error("Transaction rejected!");
@@ -65,7 +65,7 @@ export class StarknetTransactions extends StarknetModule {
65
65
  let nonce: bigint = await signer.getNonce();
66
66
  const latestConfirmedNonce = this.latestConfirmedNonces[signer.getAddress()];
67
67
  if(latestConfirmedNonce!=null && latestConfirmedNonce > nonce) {
68
- console.debug("StarknetTransactions: prepareTransactions(): Using nonce from local cache!");
68
+ this.logger.debug("prepareTransactions(): Using nonce from local cache!");
69
69
  nonce = latestConfirmedNonce;
70
70
  }
71
71
  if(nonce===BigInt(0) && signer.isWalletAccount()) {
@@ -131,7 +131,7 @@ export class StarknetSwapContract
131
131
 
132
132
  claimHandlersList.forEach(handlerCtor => {
133
133
  const handler = new handlerCtor(handlerAddresses.claim[handlerCtor.type]);
134
- this.claimHandlersByAddress[handler.address] = handler;
134
+ this.claimHandlersByAddress[toHex(handler.address)] = handler;
135
135
  this.claimHandlersBySwapType[handlerCtor.type] = handler;
136
136
  });
137
137
 
@@ -64,7 +64,7 @@ export class StarknetSwapClaim extends StarknetSwapModule {
64
64
  throw new SwapDataVerificationError("Not enough time to reliably pay the invoice");
65
65
  }
66
66
 
67
- const claimHandler: IClaimHandler<Buffer, string> = this.contract.claimHandlersByAddress[swapData.claimHandler.toLowerCase()];
67
+ const claimHandler: IClaimHandler<Buffer, string> = this.contract.claimHandlersByAddress[toHex(swapData.claimHandler)];
68
68
  if(claimHandler==null) throw new SwapDataVerificationError("Unknown claim handler!");
69
69
  if(claimHandler.getType()!==ChainSwapType.HTLC) throw new SwapDataVerificationError("Invalid claim handler!");
70
70
 
@@ -101,7 +101,7 @@ export class StarknetSwapClaim extends StarknetSwapModule {
101
101
  synchronizer?: RelaySynchronizer<StarknetBtcStoredHeader, StarknetTx, any>,
102
102
  feeRate?: string
103
103
  ): Promise<StarknetTx[] | null> {
104
- const claimHandler: IClaimHandler<any, BitcoinOutputWitnessData | BitcoinWitnessData> = this.contract.claimHandlersByAddress[swapData.claimHandler.toLowerCase()];
104
+ const claimHandler: IClaimHandler<any, BitcoinOutputWitnessData | BitcoinWitnessData> = this.contract.claimHandlersByAddress[toHex(swapData.claimHandler)];
105
105
  if(claimHandler==null) throw new SwapDataVerificationError("Unknown claim handler!");
106
106
  if(
107
107
  claimHandler.getType()!==ChainSwapType.CHAIN_NONCED &&
@@ -133,7 +133,7 @@ export class StarknetSwapClaim extends StarknetSwapModule {
133
133
 
134
134
  let gasRequired = swapData.payOut ? StarknetSwapClaim.GasCosts.CLAIM_PAY_OUT : StarknetSwapClaim.GasCosts.CLAIM;
135
135
 
136
- const claimHandler: IClaimHandler<any, any> = this.contract.claimHandlersByAddress[swapData.claimHandler.toLowerCase()];
136
+ const claimHandler: IClaimHandler<any, any> = this.contract.claimHandlersByAddress[toHex(swapData.claimHandler)];
137
137
  if(claimHandler!=null) gasRequired = starknetGasAdd(gasRequired, claimHandler.getGas(swapData));
138
138
 
139
139
  return StarknetFees.getGasFee(gasRequired, feeRate);
@@ -34,10 +34,14 @@ export function onceAsync<T>(executor: () => Promise<T>): () => Promise<T> {
34
34
 
35
35
  export function getLogger(prefix: string) {
36
36
  return {
37
- debug: (msg, ...args) => console.debug(prefix+msg, ...args),
38
- info: (msg, ...args) => console.info(prefix+msg, ...args),
39
- warn: (msg, ...args) => console.warn(prefix+msg, ...args),
40
- error: (msg, ...args) => console.error(prefix+msg, ...args)
37
+ // @ts-ignore
38
+ debug: (msg, ...args) => global.atomiqLogLevel >= 3 && console.debug(prefix+msg, ...args),
39
+ // @ts-ignore
40
+ info: (msg, ...args) => global.atomiqLogLevel >= 2 && console.info(prefix+msg, ...args),
41
+ // @ts-ignore
42
+ warn: (msg, ...args) => (global.atomiqLogLevel==null || global.atomiqLogLevel >= 1) && console.warn(prefix+msg, ...args),
43
+ // @ts-ignore
44
+ error: (msg, ...args) => (global.atomiqLogLevel==null || global.atomiqLogLevel >= 0) && console.error(prefix+msg, ...args)
41
45
  };
42
46
  }
43
47
 
@@ -79,7 +83,7 @@ export function toHex(value: number | bigint | string | Buffer, length: number =
79
83
  switch(typeof(value)) {
80
84
  case "string":
81
85
  if(value.startsWith("0x")) {
82
- return "0x"+value.slice(2).padStart(length, "0");
86
+ return "0x"+value.slice(2).padStart(length, "0").toLowerCase();
83
87
  } else {
84
88
  return "0x"+BigInt(value).toString(16).padStart(length, "0");
85
89
  }