opnet 1.2.2 → 1.2.3

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 (82) hide show
  1. package/browser/_version.d.ts +1 -1
  2. package/browser/abi/shared/interfaces/motoswap/INativeSwapContract.d.ts +71 -0
  3. package/browser/abi/shared/json/motoswap/NATIVE_SWAP_ABI.d.ts +3 -0
  4. package/browser/bitcoin/UTXOs.d.ts +1 -1
  5. package/browser/bitcoin/interfaces/IUTXO.d.ts +1 -1
  6. package/browser/block/Block.d.ts +2 -1
  7. package/browser/contracts/CallResult.d.ts +1 -0
  8. package/browser/index.js +1 -1
  9. package/browser/opnet.d.ts +3 -2
  10. package/browser/providers/AbstractRpcProvider.d.ts +1 -1
  11. package/browser/transactions/Transaction.d.ts +5 -1
  12. package/browser/transactions/TransactionParser.d.ts +3 -2
  13. package/browser/transactions/decoders/DeploymentTransaction.d.ts +2 -1
  14. package/browser/transactions/decoders/GenericTransaction.d.ts +2 -1
  15. package/browser/transactions/decoders/InteractionTransaction.d.ts +2 -1
  16. package/browser/transactions/interfaces/ITransaction.d.ts +2 -0
  17. package/browser/transactions/interfaces/ProofOfWorkChallenge.d.ts +12 -0
  18. package/browser/transactions/interfaces/transactions/ICommonTransaction.d.ts +2 -0
  19. package/browser/transactions/metadata/TransactionInput.d.ts +1 -1
  20. package/browser/transactions/metadata/TransactionOutput.d.ts +1 -1
  21. package/browser/transactions/metadata/TransactionReceipt.d.ts +2 -1
  22. package/build/_version.d.ts +1 -1
  23. package/build/_version.js +1 -1
  24. package/build/abi/shared/interfaces/motoswap/INativeSwapContract.d.ts +71 -0
  25. package/build/abi/shared/json/motoswap/NATIVE_SWAP_ABI.d.ts +3 -0
  26. package/build/abi/shared/json/motoswap/{EWMA_ABI.js → NATIVE_SWAP_ABI.js} +208 -37
  27. package/build/bitcoin/UTXOs.d.ts +1 -1
  28. package/build/bitcoin/interfaces/IUTXO.d.ts +1 -1
  29. package/build/block/Block.d.ts +2 -1
  30. package/build/block/Block.js +2 -2
  31. package/build/contracts/CallResult.d.ts +1 -0
  32. package/build/contracts/CallResult.js +7 -3
  33. package/build/opnet.d.ts +3 -2
  34. package/build/opnet.js +3 -2
  35. package/build/providers/AbstractRpcProvider.d.ts +1 -1
  36. package/build/providers/AbstractRpcProvider.js +4 -4
  37. package/build/transactions/Transaction.d.ts +5 -1
  38. package/build/transactions/Transaction.js +14 -2
  39. package/build/transactions/TransactionParser.d.ts +3 -2
  40. package/build/transactions/TransactionParser.js +6 -6
  41. package/build/transactions/decoders/DeploymentTransaction.d.ts +2 -1
  42. package/build/transactions/decoders/DeploymentTransaction.js +2 -2
  43. package/build/transactions/decoders/GenericTransaction.d.ts +2 -1
  44. package/build/transactions/decoders/GenericTransaction.js +2 -2
  45. package/build/transactions/decoders/InteractionTransaction.d.ts +2 -1
  46. package/build/transactions/decoders/InteractionTransaction.js +2 -2
  47. package/build/transactions/interfaces/ITransaction.d.ts +2 -0
  48. package/build/transactions/interfaces/ProofOfWorkChallenge.d.ts +12 -0
  49. package/build/transactions/interfaces/ProofOfWorkChallenge.js +1 -0
  50. package/build/transactions/interfaces/transactions/ICommonTransaction.d.ts +2 -0
  51. package/build/transactions/metadata/TransactionInput.d.ts +1 -1
  52. package/build/transactions/metadata/TransactionOutput.d.ts +1 -1
  53. package/build/transactions/metadata/TransactionReceipt.d.ts +2 -1
  54. package/build/transactions/metadata/TransactionReceipt.js +12 -8
  55. package/package.json +14 -14
  56. package/src/_version.ts +1 -1
  57. package/src/abi/shared/interfaces/motoswap/INativeSwapContract.ts +267 -0
  58. package/src/abi/shared/json/motoswap/{EWMA_ABI.ts → NATIVE_SWAP_ABI.ts} +252 -37
  59. package/src/bitcoin/UTXOs.ts +2 -2
  60. package/src/bitcoin/interfaces/IUTXO.ts +1 -1
  61. package/src/block/Block.ts +3 -1
  62. package/src/contracts/CallResult.ts +9 -6
  63. package/src/opnet.ts +3 -2
  64. package/src/providers/AbstractRpcProvider.ts +5 -5
  65. package/src/providers/JSONRpcProvider.ts +1 -1
  66. package/src/transactions/Transaction.ts +30 -8
  67. package/src/transactions/TransactionParser.ts +7 -8
  68. package/src/transactions/decoders/DeploymentTransaction.ts +3 -2
  69. package/src/transactions/decoders/GenericTransaction.ts +3 -2
  70. package/src/transactions/decoders/InteractionTransaction.ts +3 -2
  71. package/src/transactions/interfaces/ITransaction.ts +6 -0
  72. package/src/transactions/interfaces/ProofOfWorkChallenge.ts +13 -0
  73. package/src/transactions/interfaces/transactions/ICommonTransaction.ts +6 -0
  74. package/src/transactions/metadata/TransactionInput.ts +1 -1
  75. package/src/transactions/metadata/TransactionOutput.ts +1 -1
  76. package/src/transactions/metadata/TransactionReceipt.ts +23 -11
  77. package/browser/abi/shared/interfaces/motoswap/IEwmaContract.d.ts +0 -46
  78. package/browser/abi/shared/json/motoswap/EWMA_ABI.d.ts +0 -3
  79. package/build/abi/shared/interfaces/motoswap/IEwmaContract.d.ts +0 -46
  80. package/build/abi/shared/json/motoswap/EWMA_ABI.d.ts +0 -3
  81. package/src/abi/shared/interfaces/motoswap/IEwmaContract.ts +0 -188
  82. /package/build/abi/shared/interfaces/motoswap/{IEwmaContract.js → INativeSwapContract.js} +0 -0
@@ -22,7 +22,7 @@ export class Block {
22
22
  gasUsed;
23
23
  checksumProofs;
24
24
  transactions = [];
25
- constructor(block) {
25
+ constructor(block, network) {
26
26
  this.height = BigInt(block.height.toString());
27
27
  this.hash = block.hash;
28
28
  this.previousBlockHash = block.previousBlockHash;
@@ -44,6 +44,6 @@ export class Block {
44
44
  this.storageRoot = block.storageRoot;
45
45
  this.receiptRoot = block.receiptRoot;
46
46
  this.checksumProofs = block.checksumProofs;
47
- this.transactions = TransactionParser.parseTransactions(block.transactions);
47
+ this.transactions = TransactionParser.parseTransactions(block.transactions, network);
48
48
  }
49
49
  }
@@ -39,6 +39,7 @@ export declare class CallResult<T extends ContractDecodedObjectResult = {}> impl
39
39
  setGasEstimation(estimatedGas: bigint): void;
40
40
  setDecoded(decoded: DecodedOutput): void;
41
41
  setCalldata(calldata: Buffer): void;
42
+ private contractToString;
42
43
  private parseEvents;
43
44
  private base64ToUint8Array;
44
45
  }
@@ -1,4 +1,4 @@
1
- import { BinaryReader, BufferHelper, NetEvent, TransactionFactory, } from '@btc-vision/transaction';
1
+ import { Address, BinaryReader, BufferHelper, NetEvent, TransactionFactory, } from '@btc-vision/transaction';
2
2
  const factory = new TransactionFactory();
3
3
  export class CallResult {
4
4
  result;
@@ -13,9 +13,9 @@ export class CallResult {
13
13
  #rawEvents;
14
14
  #provider;
15
15
  constructor(callResult, provider) {
16
+ this.#provider = provider;
16
17
  this.#rawEvents = this.parseEvents(callResult.events);
17
18
  this.accessList = callResult.accessList;
18
- this.#provider = provider;
19
19
  if (callResult.estimatedGas) {
20
20
  this.estimatedGas = BigInt(callResult.estimatedGas);
21
21
  }
@@ -107,6 +107,10 @@ export class CallResult {
107
107
  }
108
108
  return utxos;
109
109
  }
110
+ contractToString(contract) {
111
+ const addressCa = Address.fromString(contract);
112
+ return addressCa.p2tr(this.#provider.network);
113
+ }
110
114
  parseEvents(events) {
111
115
  const eventsList = {};
112
116
  for (const [contract, value] of Object.entries(events)) {
@@ -115,7 +119,7 @@ export class CallResult {
115
119
  const eventData = new NetEvent(event.type, Buffer.from(event.data, 'base64'));
116
120
  events.push(eventData);
117
121
  }
118
- eventsList[contract] = events;
122
+ eventsList[this.contractToString(contract)] = events;
119
123
  }
120
124
  return eventsList;
121
125
  }
package/build/opnet.d.ts CHANGED
@@ -9,6 +9,7 @@ export * from './transactions/Transaction.js';
9
9
  export * from './transactions/interfaces/transactions/ICommonTransaction.js';
10
10
  export * from './transactions/interfaces/transactions/IDeploymentTransaction.js';
11
11
  export * from './transactions/interfaces/transactions/IInteractionTransaction.js';
12
+ export * from './transactions/interfaces/ProofOfWorkChallenge.js';
12
13
  export * from './providers/AbstractRpcProvider.js';
13
14
  export * from './providers/JSONRpcProvider.js';
14
15
  export * from './providers/WebsocketRpcProvider.js';
@@ -58,7 +59,7 @@ export * from './abi/shared/json/opnet/OP_20_ABI.js';
58
59
  export * from './abi/shared/json/opnet/OP_NET_ABI.js';
59
60
  export * from './abi/shared/json/generic/STAKING_ABI.js';
60
61
  export * from './abi/shared/json/tests/WBTC_ABI.js';
61
- export * from './abi/shared/json/motoswap/EWMA_ABI.js';
62
+ export * from './abi/shared/json/motoswap/NATIVE_SWAP_ABI.js';
62
63
  export * from './abi/shared/interfaces/motoswap/IMotoswapFactoryContract.js';
63
64
  export * from './abi/shared/interfaces/motoswap/IMotoswapPoolContract.js';
64
65
  export * from './abi/shared/interfaces/motoswap/IMotoswapRouterContract.js';
@@ -68,4 +69,4 @@ export * from './abi/shared/interfaces/opnet/IOP_20Contract.js';
68
69
  export * from './abi/shared/interfaces/opnet/IOP_NETContract.js';
69
70
  export * from './abi/shared/interfaces/generic/IStackingContract.js';
70
71
  export * from './abi/shared/interfaces/tests/IWBTCContract.js';
71
- export * from './abi/shared/interfaces/motoswap/IEwmaContract.js';
72
+ export * from './abi/shared/interfaces/motoswap/INativeSwapContract.js';
package/build/opnet.js CHANGED
@@ -9,6 +9,7 @@ export * from './transactions/Transaction.js';
9
9
  export * from './transactions/interfaces/transactions/ICommonTransaction.js';
10
10
  export * from './transactions/interfaces/transactions/IDeploymentTransaction.js';
11
11
  export * from './transactions/interfaces/transactions/IInteractionTransaction.js';
12
+ export * from './transactions/interfaces/ProofOfWorkChallenge.js';
12
13
  export * from './providers/AbstractRpcProvider.js';
13
14
  export * from './providers/JSONRpcProvider.js';
14
15
  export * from './providers/WebsocketRpcProvider.js';
@@ -58,7 +59,7 @@ export * from './abi/shared/json/opnet/OP_20_ABI.js';
58
59
  export * from './abi/shared/json/opnet/OP_NET_ABI.js';
59
60
  export * from './abi/shared/json/generic/STAKING_ABI.js';
60
61
  export * from './abi/shared/json/tests/WBTC_ABI.js';
61
- export * from './abi/shared/json/motoswap/EWMA_ABI.js';
62
+ export * from './abi/shared/json/motoswap/NATIVE_SWAP_ABI.js';
62
63
  export * from './abi/shared/interfaces/motoswap/IMotoswapFactoryContract.js';
63
64
  export * from './abi/shared/interfaces/motoswap/IMotoswapPoolContract.js';
64
65
  export * from './abi/shared/interfaces/motoswap/IMotoswapRouterContract.js';
@@ -68,4 +69,4 @@ export * from './abi/shared/interfaces/opnet/IOP_20Contract.js';
68
69
  export * from './abi/shared/interfaces/opnet/IOP_NETContract.js';
69
70
  export * from './abi/shared/interfaces/generic/IStackingContract.js';
70
71
  export * from './abi/shared/interfaces/tests/IWBTCContract.js';
71
- export * from './abi/shared/interfaces/motoswap/IEwmaContract.js';
72
+ export * from './abi/shared/interfaces/motoswap/INativeSwapContract.js';
@@ -21,7 +21,7 @@ import { JsonRpcCallResult, JsonRpcResult } from './interfaces/JSONRpcResult.js'
21
21
  import { AddressesInfo } from './interfaces/PublicKeyInfo.js';
22
22
  import { ReorgInformation } from './interfaces/ReorgInformation.js';
23
23
  export declare abstract class AbstractRpcProvider {
24
- private readonly network;
24
+ readonly network: Network;
25
25
  private nextId;
26
26
  private chainId;
27
27
  protected constructor(network: Network);
@@ -61,7 +61,7 @@ export class AbstractRpcProvider {
61
61
  ]);
62
62
  const block = await this.callPayloadSingle(payload);
63
63
  const result = block.result;
64
- return new Block(result);
64
+ return new Block(result, this.network);
65
65
  }
66
66
  async getBlocks(blockNumbers, prefetchTxs = false) {
67
67
  const payloads = blockNumbers.map((blockNumber) => {
@@ -80,7 +80,7 @@ export class AbstractRpcProvider {
80
80
  throw new Error(`Error fetching block: ${block.error}`);
81
81
  }
82
82
  const result = block.result;
83
- return new Block(result);
83
+ return new Block(result, this.network);
84
84
  });
85
85
  }
86
86
  async getBlockByHash(blockHash) {
@@ -106,12 +106,12 @@ export class AbstractRpcProvider {
106
106
  if ('error' in rawTransaction) {
107
107
  throw new Error(`Error fetching transaction: ${rawTransaction.error?.message || 'Unknown error'}`);
108
108
  }
109
- return TransactionParser.parseTransaction(result);
109
+ return TransactionParser.parseTransaction(result, this.network);
110
110
  }
111
111
  async getTransactionReceipt(txHash) {
112
112
  const payload = this.buildJsonRpcPayload(JSONRpcMethods.GET_TRANSACTION_RECEIPT, [txHash]);
113
113
  const rawTransaction = await this.callPayloadSingle(payload);
114
- return new TransactionReceipt(rawTransaction.result);
114
+ return new TransactionReceipt(rawTransaction.result, this.network);
115
115
  }
116
116
  getNetwork() {
117
117
  return this.network;
@@ -1,6 +1,8 @@
1
+ import { Network } from '@btc-vision/bitcoin';
1
2
  import { BigNumberish } from '../common/CommonTypes.js';
2
3
  import { OPNetTransactionTypes } from '../interfaces/opnet/OPNetTransactionTypes.js';
3
4
  import { ITransactionBase } from './interfaces/ITransaction.js';
5
+ import { ProofOfWorkChallenge } from './interfaces/ProofOfWorkChallenge.js';
4
6
  import { TransactionInput } from './metadata/TransactionInput.js';
5
7
  import { TransactionOutput } from './metadata/TransactionOutput.js';
6
8
  import { TransactionReceipt } from './metadata/TransactionReceipt.js';
@@ -13,5 +15,7 @@ export declare abstract class TransactionBase<T extends OPNetTransactionTypes> e
13
15
  readonly outputs: TransactionOutput[];
14
16
  readonly OPNetType: T;
15
17
  readonly gasUsed: bigint;
16
- protected constructor(transaction: ITransactionBase<T>);
18
+ readonly pow?: ProofOfWorkChallenge;
19
+ protected constructor(transaction: ITransactionBase<T>, network: Network);
20
+ private decodeProofOfWorkChallenge;
17
21
  }
@@ -10,13 +10,14 @@ export class TransactionBase extends TransactionReceipt {
10
10
  outputs;
11
11
  OPNetType;
12
12
  gasUsed;
13
- constructor(transaction) {
13
+ pow;
14
+ constructor(transaction, network) {
14
15
  super({
15
16
  receipt: transaction.receipt,
16
17
  receiptProofs: transaction.receiptProofs,
17
18
  events: transaction.events,
18
19
  revert: transaction.revert,
19
- });
20
+ }, network);
20
21
  this.id = transaction.id;
21
22
  this.hash = transaction.hash;
22
23
  this.index = transaction.index;
@@ -25,5 +26,16 @@ export class TransactionBase extends TransactionReceipt {
25
26
  this.outputs = transaction.outputs.map((output) => new TransactionOutput(output));
26
27
  this.OPNetType = transaction.OPNetType;
27
28
  this.gasUsed = BigInt(transaction.gasUsed || '0x00') || 0n;
29
+ if (transaction.pow) {
30
+ this.pow = this.decodeProofOfWorkChallenge(transaction.pow);
31
+ }
32
+ }
33
+ decodeProofOfWorkChallenge(challenge) {
34
+ return {
35
+ preimage: Buffer.from(challenge.preimage, 'base64'),
36
+ reward: BigInt(challenge.reward) || 0n,
37
+ difficulty: BigInt(challenge.difficulty || '0'),
38
+ version: challenge.version || 0,
39
+ };
28
40
  }
29
41
  }
@@ -1,7 +1,8 @@
1
+ import { Network } from '@btc-vision/bitcoin';
1
2
  import { OPNetTransactionTypes } from '../interfaces/opnet/OPNetTransactionTypes.js';
2
3
  import { ITransaction } from './interfaces/ITransaction.js';
3
4
  import { TransactionBase } from './Transaction.js';
4
5
  export declare class TransactionParser {
5
- static parseTransactions(transactions: ITransaction[]): TransactionBase<OPNetTransactionTypes>[];
6
- static parseTransaction(transaction: ITransaction): TransactionBase<OPNetTransactionTypes>;
6
+ static parseTransactions(transactions: ITransaction[], network: Network): TransactionBase<OPNetTransactionTypes>[];
7
+ static parseTransaction(transaction: ITransaction, network: Network): TransactionBase<OPNetTransactionTypes>;
7
8
  }
@@ -3,7 +3,7 @@ import { DeploymentTransaction } from './decoders/DeploymentTransaction.js';
3
3
  import { GenericTransaction } from './decoders/GenericTransaction.js';
4
4
  import { InteractionTransaction } from './decoders/InteractionTransaction.js';
5
5
  export class TransactionParser {
6
- static parseTransactions(transactions) {
6
+ static parseTransactions(transactions, network) {
7
7
  if (!transactions) {
8
8
  return [];
9
9
  }
@@ -11,21 +11,21 @@ export class TransactionParser {
11
11
  for (const transaction of transactions) {
12
12
  if (!transaction)
13
13
  throw new Error(`Something went wrong while parsing transactions`);
14
- transactionArray.push(this.parseTransaction(transaction));
14
+ transactionArray.push(this.parseTransaction(transaction, network));
15
15
  }
16
16
  return transactionArray;
17
17
  }
18
- static parseTransaction(transaction) {
18
+ static parseTransaction(transaction, network) {
19
19
  if (!transaction)
20
20
  throw new Error('Transaction is required');
21
21
  const opnetType = transaction.OPNetType;
22
22
  switch (opnetType) {
23
23
  case OPNetTransactionTypes.Generic:
24
- return new GenericTransaction(transaction);
24
+ return new GenericTransaction(transaction, network);
25
25
  case OPNetTransactionTypes.Interaction:
26
- return new InteractionTransaction(transaction);
26
+ return new InteractionTransaction(transaction, network);
27
27
  case OPNetTransactionTypes.Deployment:
28
- return new DeploymentTransaction(transaction);
28
+ return new DeploymentTransaction(transaction, network);
29
29
  default:
30
30
  throw new Error('Unknown transaction type');
31
31
  }
@@ -1,3 +1,4 @@
1
+ import { Network } from '@btc-vision/bitcoin';
1
2
  import { Address } from '@btc-vision/transaction';
2
3
  import { OPNetTransactionTypes } from '../../interfaces/opnet/OPNetTransactionTypes.js';
3
4
  import { IDeploymentTransaction } from '../interfaces/transactions/IDeploymentTransaction.js';
@@ -12,5 +13,5 @@ export declare class DeploymentTransaction extends TransactionBase<OPNetTransact
12
13
  readonly contractSeed?: Buffer;
13
14
  readonly contractSaltHash?: Buffer;
14
15
  readonly from?: Address;
15
- constructor(transaction: IDeploymentTransaction);
16
+ constructor(transaction: IDeploymentTransaction, network: Network);
16
17
  }
@@ -10,8 +10,8 @@ export class DeploymentTransaction extends TransactionBase {
10
10
  contractSeed;
11
11
  contractSaltHash;
12
12
  from;
13
- constructor(transaction) {
14
- super(transaction);
13
+ constructor(transaction, network) {
14
+ super(transaction, network);
15
15
  try {
16
16
  this.from = new Address(Buffer.from(transaction.from, 'base64'));
17
17
  this.contractAddress = transaction.contractAddress;
@@ -1,6 +1,7 @@
1
+ import { Network } from '@btc-vision/bitcoin';
1
2
  import { OPNetTransactionTypes } from '../../interfaces/opnet/OPNetTransactionTypes.js';
2
3
  import { IGenericTransaction } from '../interfaces/ITransaction.js';
3
4
  import { TransactionBase } from '../Transaction.js';
4
5
  export declare class GenericTransaction extends TransactionBase<OPNetTransactionTypes.Generic> implements IGenericTransaction {
5
- constructor(transaction: IGenericTransaction);
6
+ constructor(transaction: IGenericTransaction, network: Network);
6
7
  }
@@ -1,6 +1,6 @@
1
1
  import { TransactionBase } from '../Transaction.js';
2
2
  export class GenericTransaction extends TransactionBase {
3
- constructor(transaction) {
4
- super(transaction);
3
+ constructor(transaction, network) {
4
+ super(transaction, network);
5
5
  }
6
6
  }
@@ -1,3 +1,4 @@
1
+ import { Network } from '@btc-vision/bitcoin';
1
2
  import { Address } from '@btc-vision/transaction';
2
3
  import { Buffer } from 'buffer';
3
4
  import { InteractionType } from '../../interfaces/opnet/OPNetTransactionTypes.js';
@@ -12,5 +13,5 @@ export declare class InteractionTransaction extends TransactionBase<InteractionT
12
13
  readonly from?: Address;
13
14
  readonly contractAddress?: string;
14
15
  readonly contractTweakedPublicKey: Address;
15
- constructor(transaction: IInteractionTransaction);
16
+ constructor(transaction: IInteractionTransaction, network: Network);
16
17
  }
@@ -10,8 +10,8 @@ export class InteractionTransaction extends TransactionBase {
10
10
  from;
11
11
  contractAddress;
12
12
  contractTweakedPublicKey;
13
- constructor(transaction) {
14
- super(transaction);
13
+ constructor(transaction, network) {
14
+ super(transaction, network);
15
15
  this.contractTweakedPublicKey = new Address(Buffer.from(transaction.contractTweakedPublicKey, 'base64'));
16
16
  if (transaction.calldata) {
17
17
  this.calldata = Buffer.from(transaction.calldata, 'base64');
@@ -3,6 +3,7 @@ import { OPNetTransactionTypes } from '../../interfaces/opnet/OPNetTransactionTy
3
3
  import { ITransactionInput, TransactionInput } from '../metadata/TransactionInput.js';
4
4
  import { ITransactionOutput, TransactionOutput } from '../metadata/TransactionOutput.js';
5
5
  import { ITransactionReceipt } from './ITransactionReceipt.js';
6
+ import { ProofOfWorkChallenge, RawProofOfWorkChallenge } from './ProofOfWorkChallenge.js';
6
7
  import { IDeploymentTransaction } from './transactions/IDeploymentTransaction.js';
7
8
  import { IInteractionTransaction } from './transactions/IInteractionTransaction.js';
8
9
  export interface ITransactionBase<T extends OPNetTransactionTypes> extends ITransactionReceipt {
@@ -15,6 +16,7 @@ export interface ITransactionBase<T extends OPNetTransactionTypes> extends ITran
15
16
  readonly outputs: ITransactionOutput[] | TransactionOutput[];
16
17
  readonly OPNetType: T;
17
18
  readonly gasUsed: string | bigint;
19
+ readonly pow?: RawProofOfWorkChallenge | ProofOfWorkChallenge;
18
20
  }
19
21
  export interface IGenericTransaction extends ITransactionBase<OPNetTransactionTypes.Generic> {
20
22
  }
@@ -0,0 +1,12 @@
1
+ export interface ProofOfWorkChallenge {
2
+ readonly preimage: Buffer;
3
+ readonly reward: bigint;
4
+ readonly difficulty?: bigint;
5
+ readonly version?: number;
6
+ }
7
+ export interface RawProofOfWorkChallenge {
8
+ readonly preimage: string;
9
+ readonly reward: string;
10
+ readonly difficulty?: string;
11
+ readonly version?: number;
12
+ }
@@ -1,9 +1,11 @@
1
1
  import { Address } from '@btc-vision/transaction';
2
2
  import { OPNetTransactionTypes } from '../../../interfaces/opnet/OPNetTransactionTypes.js';
3
3
  import { ITransactionBase } from '../ITransaction.js';
4
+ import { ProofOfWorkChallenge } from '../ProofOfWorkChallenge.js';
4
5
  export interface ICommonTransaction<T extends OPNetTransactionTypes> extends ITransactionBase<T> {
5
6
  readonly contractAddress?: string;
6
7
  readonly contractTweakedPublicKey?: Address | string;
7
8
  readonly from?: Address | string;
8
9
  readonly wasCompressed?: boolean;
10
+ readonly pow?: ProofOfWorkChallenge;
9
11
  }
@@ -1,4 +1,4 @@
1
- import { ScriptSig } from '@btc-vision/bsi-bitcoin-rpc';
1
+ import { ScriptSig } from '@btc-vision/bitcoin-rpc';
2
2
  export interface ITransactionInput {
3
3
  readonly originalTransactionId: string | undefined;
4
4
  readonly outputTransactionIndex: number | undefined;
@@ -1,4 +1,4 @@
1
- import { ScriptPubKey } from '@btc-vision/bsi-bitcoin-rpc';
1
+ import { ScriptPubKey } from '@btc-vision/bitcoin-rpc';
2
2
  export interface ITransactionOutput {
3
3
  readonly index: number;
4
4
  readonly scriptPubKey: {
@@ -1,10 +1,11 @@
1
+ import { Network } from '@btc-vision/bitcoin';
1
2
  import { ContractEvents, ITransactionReceipt } from '../interfaces/ITransactionReceipt.js';
2
3
  export declare class TransactionReceipt implements ITransactionReceipt {
3
4
  readonly receipt?: Buffer;
4
5
  readonly receiptProofs: string[];
5
6
  readonly events: ContractEvents;
6
7
  readonly revert?: Buffer;
7
- constructor(receipt: ITransactionReceipt);
8
+ constructor(receipt: ITransactionReceipt, network: Network);
8
9
  private parseEvents;
9
10
  private decodeEvent;
10
11
  }
@@ -1,22 +1,24 @@
1
- import { NetEvent } from '@btc-vision/transaction';
1
+ import { Address, NetEvent } from '@btc-vision/transaction';
2
2
  export class TransactionReceipt {
3
3
  receipt;
4
4
  receiptProofs;
5
5
  events;
6
6
  revert;
7
- constructor(receipt) {
7
+ constructor(receipt, network) {
8
8
  this.receipt = receipt.receipt
9
9
  ? Buffer.from(receipt.receipt, 'base64')
10
10
  : undefined;
11
11
  this.receiptProofs = receipt.receiptProofs || [];
12
- this.events = receipt.events ? this.parseEvents(receipt.events) : {};
12
+ this.events = receipt.events ? this.parseEvents(receipt.events, network) : {};
13
13
  this.revert = receipt.revert ? Buffer.from(receipt.revert, 'base64') : undefined;
14
14
  }
15
- parseEvents(events) {
15
+ parseEvents(events, network) {
16
16
  const parsedEvents = {};
17
17
  if (!Array.isArray(events)) {
18
18
  for (const [key, value] of Object.entries(events)) {
19
- parsedEvents[key] = value.map((event) => {
19
+ const ca = Address.fromString(key);
20
+ const caP2tr = ca.p2tr(network);
21
+ parsedEvents[caP2tr] = value.map((event) => {
20
22
  return this.decodeEvent(event);
21
23
  });
22
24
  }
@@ -25,10 +27,12 @@ export class TransactionReceipt {
25
27
  for (const event of events) {
26
28
  const parsedEvent = this.decodeEvent(event);
27
29
  const contractAddress = event.contractAddress;
28
- if (!parsedEvents[contractAddress]) {
29
- parsedEvents[contractAddress] = [];
30
+ const ca = Address.fromString(contractAddress);
31
+ const caP2tr = ca.p2tr(network);
32
+ if (!parsedEvents[caP2tr]) {
33
+ parsedEvents[caP2tr] = [];
30
34
  }
31
- parsedEvents[contractAddress].push(parsedEvent);
35
+ parsedEvents[caP2tr].push(parsedEvent);
32
36
  }
33
37
  }
34
38
  return parsedEvents;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "opnet",
3
3
  "type": "module",
4
- "version": "1.2.2",
4
+ "version": "1.2.3",
5
5
  "author": "OP_NET",
6
6
  "description": "The perfect library for building Bitcoin-based applications.",
7
7
  "engines": {
@@ -66,17 +66,17 @@
66
66
  "@babel/plugin-transform-runtime": "^7.25.9",
67
67
  "@babel/preset-env": "^7.26.0",
68
68
  "@babel/preset-flow": "^7.25.9",
69
- "@babel/preset-react": "^7.25.9",
69
+ "@babel/preset-react": "^7.26.3",
70
70
  "@babel/preset-typescript": "^7.26.0",
71
- "@eslint/js": "^9.14.0",
72
- "@types/node": "^22.10.2",
71
+ "@eslint/js": "^9.17.0",
72
+ "@types/node": "^22.10.5",
73
73
  "@types/ws": "^8.5.13",
74
74
  "assert": "^2.1.0",
75
75
  "babel-loader": "^9.2.1",
76
- "babel-plugin-transform-import-meta": "^2.2.1",
76
+ "babel-plugin-transform-import-meta": "^2.3.2",
77
77
  "babel-preset-react": "^6.24.1",
78
78
  "babelify": "^10.0.0",
79
- "eslint": "^9.14.0",
79
+ "eslint": "^9.17.0",
80
80
  "gulp": "^5.0.0",
81
81
  "gulp-cached": "^1.1.1",
82
82
  "gulp-clean": "^0.4.0",
@@ -85,7 +85,7 @@
85
85
  "gulp-typescript": "^6.0.0-alpha.1",
86
86
  "https-browserify": "^1.0.0",
87
87
  "os-browserify": "^0.3.0",
88
- "prettier": "^3.3.3",
88
+ "prettier": "^3.4.2",
89
89
  "process": "^0.11.10",
90
90
  "stream-browserify": "^3.0.0",
91
91
  "stream-http": "^3.2.0",
@@ -94,15 +94,15 @@
94
94
  "typedoc": "^0.27.6",
95
95
  "typescript": "^5.7.2",
96
96
  "typescript-eslint": "^8.19.0",
97
- "webpack": "^5.96.1",
98
- "webpack-cli": "^5.1.4"
97
+ "webpack": "^5.97.1",
98
+ "webpack-cli": "^6.0.1"
99
99
  },
100
100
  "dependencies": {
101
- "@bitcoinerlab/secp256k1": "^1.1.1",
102
- "@btc-vision/bitcoin": "^6.3.2",
103
- "@btc-vision/bsi-bitcoin-rpc": ">=1.0.29",
104
- "@btc-vision/transaction": "^1.2.2",
105
- "@noble/hashes": "^1.6.1",
101
+ "@bitcoinerlab/secp256k1": "^1.2.0",
102
+ "@btc-vision/bitcoin": "^6.3.3",
103
+ "@btc-vision/bitcoin-rpc": "^1.0.0",
104
+ "@btc-vision/transaction": "^1.2.3",
105
+ "@noble/hashes": "^1.7.0",
106
106
  "bignumber.js": "^9.1.2",
107
107
  "buffer": "^6.0.3",
108
108
  "ecpair": "^2.1.0",
package/src/_version.ts CHANGED
@@ -1 +1 @@
1
- export const version = '1.2.2';
1
+ export const version = '1.2.3';