@layerzerolabs/lz-proof-utility 1.5.26 → 1.5.27

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.
@@ -1 +0,0 @@
1
- {"version":3,"file":"v2.js","sourceRoot":"","sources":["../../src/mpt/v2.ts"],"names":[],"mappings":"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"}
package/dist/proof.d.ts DELETED
@@ -1,24 +0,0 @@
1
- export declare function getFeatherProof(utilsVersion: any, emitterAddress: any, packetPayload: any): {
2
- proof: any;
3
- };
4
- export declare function getReceiptProof(network: any, block: any, transactionReceipts: any, transactionIndex: any, outboundProofType: any, utilsVersion: any): Promise<{
5
- receiptRoot: any;
6
- proof: string[];
7
- pointers: number[];
8
- receiptSlotIndex: any;
9
- } | {
10
- receiptRoot: any;
11
- proof: string[];
12
- receiptSlotIndex: number[];
13
- }>;
14
- export declare function encodeParams(proof: any, outboundProofType: any, utilsVersion: any, logIndex: any, srcEndpointId?: undefined): string;
15
- export declare function getLayerZeroPacket(srcChainId: any, _log: any): {
16
- srcChainId: any;
17
- dstChainId: number;
18
- nonce: number;
19
- dstAddress: string;
20
- srcAddress: string;
21
- ulnAddress: string;
22
- payload: string;
23
- };
24
- //# sourceMappingURL=proof.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"proof.d.ts","sourceRoot":"","sources":["../src/proof.ts"],"names":[],"mappings":"AAOA,wBAAgB,eAAe,CAAC,YAAY,KAAA,EAAE,cAAc,KAAA,EAAE,aAAa,KAAA;;EAgB1E;AAED,wBAAsB,eAAe,CACjC,OAAO,KAAA,EACP,KAAK,KAAA,EACL,mBAAmB,KAAA,EACnB,gBAAgB,KAAA,EAChB,iBAAiB,KAAA,EACjB,YAAY,KAAA;;;;;;;;;GA0Bf;AAED,wBAAgB,YAAY,CAAC,KAAK,KAAA,EAAE,iBAAiB,KAAA,EAAE,YAAY,KAAA,EAAE,QAAQ,KAAA,EAAE,aAAa,YAAY,UAmCvG;AAED,wBAAgB,kBAAkB,CAAC,UAAU,KAAA,EAAE,IAAI,KAAA;;;;;;;;EA0BlD"}
package/dist/proof.js DELETED
@@ -1,106 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getLayerZeroPacket = exports.encodeParams = exports.getReceiptProof = exports.getFeatherProof = void 0;
7
- const ethers_1 = require("ethers");
8
- const tiny_invariant_1 = __importDefault(require("tiny-invariant"));
9
- const constants_1 = require("./constants");
10
- const v1_1 = require("./mpt/v1");
11
- const v2_1 = require("./mpt/v2");
12
- function getFeatherProof(utilsVersion, emitterAddress, packetPayload) {
13
- switch (utilsVersion) {
14
- case constants_1.EVMUtilityVersion.V1: {
15
- const contractAddrByte32 = ethers_1.ethers.utils.hexZeroPad(emitterAddress, 32);
16
- return {
17
- proof: ethers_1.ethers.utils.solidityPack(['bytes32', 'bytes'], [contractAddrByte32, packetPayload]),
18
- };
19
- }
20
- case constants_1.EVMUtilityVersion.V2: {
21
- return {
22
- proof: packetPayload,
23
- };
24
- }
25
- default:
26
- throw new Error(`Unknown utility version ${utilsVersion}`);
27
- }
28
- }
29
- exports.getFeatherProof = getFeatherProof;
30
- async function getReceiptProof(network, block, transactionReceipts, transactionIndex, outboundProofType, utilsVersion) {
31
- (0, tiny_invariant_1.default)(constants_1.NETWORKS.includes(network), `Unsupported network: ${network}`);
32
- switch (outboundProofType) {
33
- case constants_1.OutboundProofType.MPT: {
34
- switch (utilsVersion) {
35
- case constants_1.EVMUtilityVersion.V1: {
36
- return await (0, v1_1.getReceiptProof)(network, block, transactionReceipts, transactionIndex);
37
- }
38
- case constants_1.EVMUtilityVersion.V2:
39
- case constants_1.EVMUtilityVersion.V4: {
40
- return await (0, v2_1.getReceiptProof)(network, block, transactionReceipts, transactionIndex);
41
- }
42
- case constants_1.EVMUtilityVersion.V3: {
43
- const proof = await (0, v2_1.getReceiptProof)(network, block, transactionReceipts, transactionIndex);
44
- proof['blockHash'] = block.hash;
45
- return proof;
46
- }
47
- default:
48
- throw new Error(`Unsupported utility version ${utilsVersion}`);
49
- }
50
- }
51
- default:
52
- throw new Error(`Unsupported Outbound Proof Type ${outboundProofType}`);
53
- }
54
- }
55
- exports.getReceiptProof = getReceiptProof;
56
- function encodeParams(proof, outboundProofType, utilsVersion, logIndex, srcEndpointId = undefined) {
57
- switch (outboundProofType) {
58
- case constants_1.OutboundProofType.MPT: {
59
- switch (utilsVersion) {
60
- case constants_1.EVMUtilityVersion.V1: {
61
- return ethers_1.ethers.utils.defaultAbiCoder.encode(['uint16', 'bytes[]', 'uint256[]', 'uint256', 'uint256'], [srcEndpointId, proof.proof, proof.pointers, proof.receiptSlotIndex, logIndex]);
62
- }
63
- case constants_1.EVMUtilityVersion.V2: {
64
- return ethers_1.ethers.utils.defaultAbiCoder.encode(['uint16', 'bytes[]', 'uint256[]', 'uint256'], [srcEndpointId, proof.proof, proof.receiptSlotIndex, logIndex]);
65
- }
66
- case constants_1.EVMUtilityVersion.V3: {
67
- return ethers_1.ethers.utils.defaultAbiCoder.encode(['uint16', 'bytes32', 'bytes[]', 'uint256[]', 'uint256'], [srcEndpointId, proof.blockHash, proof.proof, proof.receiptSlotIndex, logIndex]);
68
- }
69
- case constants_1.EVMUtilityVersion.V4: {
70
- return ethers_1.ethers.utils.defaultAbiCoder.encode(['bytes[]', 'uint256[]', 'uint256'], [proof.proof, proof.receiptSlotIndex, logIndex]);
71
- }
72
- default:
73
- throw new Error(`Unsupported utility version ${utilsVersion}`);
74
- }
75
- }
76
- default:
77
- throw new Error(`Unsupported Outbound Proof Type ${outboundProofType}`);
78
- }
79
- }
80
- exports.encodeParams = encodeParams;
81
- function getLayerZeroPacket(srcChainId, _log) {
82
- //todo: what if src address differs from 20 bytes
83
- const packet = ethers_1.ethers.utils.defaultAbiCoder.decode(['uint16', 'bytes'], _log.data);
84
- const data = packet[1].slice(2);
85
- //todo: what if dst address differs from 20 bytes
86
- const dstChainId = parseInt(packet[0]);
87
- const nonce = ethers_1.ethers.BigNumber.from('0x' + data.slice(0, 16)).toNumber();
88
- const srcAddress = '0x' + data.slice(16, 56);
89
- const dstAddress = '0x' + data.slice(56, 96);
90
- let payload = '0x';
91
- if (data.length > 96) {
92
- //has payload
93
- payload = '0x' + data.slice(96, data.length);
94
- }
95
- return {
96
- srcChainId,
97
- dstChainId,
98
- nonce,
99
- dstAddress,
100
- srcAddress,
101
- ulnAddress: ethers_1.ethers.utils.defaultAbiCoder.encode(['address'], [_log.address]),
102
- payload,
103
- };
104
- }
105
- exports.getLayerZeroPacket = getLayerZeroPacket;
106
- //# sourceMappingURL=proof.js.map
package/dist/proof.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"proof.js","sourceRoot":"","sources":["../src/proof.ts"],"names":[],"mappings":"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"}