Skip to content

Commit

Permalink
Merge pull request #424 from maticnetwork/etrog-changes
Browse files Browse the repository at this point in the history
new: etrog changes
  • Loading branch information
nitinmittal23 committed Jan 29, 2024
2 parents 1b9b964 + f65d787 commit 6895c05
Show file tree
Hide file tree
Showing 5 changed files with 273 additions and 93 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@maticnetwork/maticjs",
"version": "3.7.7",
"version": "3.7.8",
"description": "Javascript developer library for interacting with Matic Network",
"main": "dist/npm.export.js",
"types": "dist/ts/index.d.ts",
Expand Down
4 changes: 2 additions & 2 deletions src/utils/zkevm_bridge_client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ export class ZkEvmBridgeClient {
return this.bridgeUtil.getBridgeLogData(
txHash, true
).then(result => {
return this.childChainBridge.isClaimed(result.depositCount);
return this.childChainBridge.isClaimed(result.depositCount, 0);
});
}

Expand All @@ -78,7 +78,7 @@ export class ZkEvmBridgeClient {
return this.bridgeUtil.getBridgeLogData(
txHash, false
).then(result => {
return this.rootChainBridge.isClaimed(result.depositCount);
return this.rootChainBridge.isClaimed(result.depositCount, 1);
});
}

Expand Down
3 changes: 3 additions & 0 deletions src/zkevm/bridge_util.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ interface IBridgeEventInfo {

interface IMerkleProof {
merkle_proof: string[];
rollup_merkle_proof?: string[];
exit_root_num: string;
l2_exit_root_num: string;
main_exit_root: string;
Expand All @@ -23,6 +24,7 @@ interface IMerkleProof {

interface IClaimPayload {
smtProof: string[];
smtProofRollup?: string[];
index: number;
mainnetExitRoot: string;
rollupExitRoot: string;
Expand Down Expand Up @@ -107,6 +109,7 @@ export class BridgeUtil {
return this.getProof_(networkId, depositCount).then(proof => {
const payload = {} as IClaimPayload;
payload.smtProof = proof.merkle_proof;
payload.smtProofRollup = proof.rollup_merkle_proof;
payload.index = depositCount;
payload.mainnetExitRoot = proof.main_exit_root;
payload.rollupExitRoot = proof.rollup_exit_root;
Expand Down
201 changes: 135 additions & 66 deletions src/zkevm/erc20.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,11 @@ export class ERC20 extends ZkEvmToken {
name: 'ERC20',
bridgeType: 'zkevm'
}, client, getContracts);
if(bridgeAdapterAddress) {
this.bridgeAdapter = new ZkEVMBridgeAdapter(
this.client,
bridgeAdapterAddress,
isParent
if (bridgeAdapterAddress) {
this.bridgeAdapter = new ZkEVMBridgeAdapter(
this.client,
bridgeAdapterAddress,
isParent
);
}
}
Expand Down Expand Up @@ -204,12 +204,12 @@ export class ERC20 extends ZkEvmToken {
);

option.value = Converter.toHex(ethGasAmount);
if (option.v && option.r && option.s){
if (option.v && option.r && option.s) {
return this.zkEVMWrapper.depositPermitWithGas(
this.contractParam.address,
amountInABI,
userAddress,
Math.floor((Date.now() + 3600000)/1000).toString(),
Math.floor((Date.now() + 3600000) / 1000).toString(),
option.v,
option.r,
option.s,
Expand Down Expand Up @@ -250,7 +250,7 @@ export class ERC20 extends ZkEvmToken {
this.contractParam.address,
amountInABI,
userAddress,
Math.floor((Date.now() + 3600000)/1000).toString(),
Math.floor((Date.now() + 3600000) / 1000).toString(),
signatureParams.v,
signatureParams.r,
signatureParams.s,
Expand Down Expand Up @@ -323,22 +323,39 @@ export class ERC20 extends ZkEvmToken {
this.checkForChild("customERC20DepositClaim");
return this.parentBridge.networkID().then(networkId => {
return this.bridgeUtil.buildPayloadForClaim(
transactionHash, true, networkId
transactionHash, true, networkId
);
}).then(payload => {
return this.childBridge.claimMessage(
payload.smtProof,
payload.index,
payload.mainnetExitRoot,
payload.rollupExitRoot,
payload.originNetwork,
payload.originTokenAddress,
payload.destinationNetwork,
payload.destinationAddress,
payload.amount,
payload.metadata,
option
);
if (payload.smtProofRollup) {
return this.childBridge.claimMessageNew(
payload.smtProof,
payload.smtProofRollup,
payload.index,
payload.mainnetExitRoot,
payload.rollupExitRoot,
payload.originNetwork,
payload.originTokenAddress,
payload.destinationNetwork,
payload.destinationAddress,
payload.amount,
payload.metadata,
option
);
} else {
return this.childBridge.claimMessage(
payload.smtProof,
payload.index,
payload.mainnetExitRoot,
payload.rollupExitRoot,
payload.originNetwork,
payload.originTokenAddress,
payload.destinationNetwork,
payload.destinationAddress,
payload.amount,
payload.metadata,
option
);
}
});
}

Expand All @@ -358,19 +375,36 @@ export class ERC20 extends ZkEvmToken {
transactionHash, true, networkId
);
}).then(payload => {
return this.childBridge.claimAsset(
payload.smtProof,
payload.index,
payload.mainnetExitRoot,
payload.rollupExitRoot,
payload.originNetwork,
payload.originTokenAddress,
payload.destinationNetwork,
payload.destinationAddress,
payload.amount,
payload.metadata,
option
);
if (payload.smtProofRollup) {
return this.childBridge.claimAssetNew(
payload.smtProof,
payload.smtProofRollup,
payload.index,
payload.mainnetExitRoot,
payload.rollupExitRoot,
payload.originNetwork,
payload.originTokenAddress,
payload.destinationNetwork,
payload.destinationAddress,
payload.amount,
payload.metadata,
option
);
} else {
return this.childBridge.claimAsset(
payload.smtProof,
payload.index,
payload.mainnetExitRoot,
payload.rollupExitRoot,
payload.originNetwork,
payload.originTokenAddress,
payload.destinationNetwork,
payload.destinationAddress,
payload.amount,
payload.metadata,
option
);
}
});
}

Expand Down Expand Up @@ -438,22 +472,40 @@ export class ERC20 extends ZkEvmToken {
this.checkForRoot("customERC20WithdrawExit");
return this.childBridge.networkID().then(networkId => {
return this.bridgeUtil.buildPayloadForClaim(
burnTransactionHash, false, networkId
burnTransactionHash, false, networkId
);
}).then(payload => {
return this.parentBridge.claimMessage(
payload.smtProof,
payload.index,
payload.mainnetExitRoot,
payload.rollupExitRoot,
payload.originNetwork,
payload.originTokenAddress,
payload.destinationNetwork,
payload.destinationAddress,
payload.amount,
payload.metadata,
option
);
if (payload.smtProofRollup) {
return this.parentBridge.claimMessageNew(
payload.smtProof,
payload.smtProofRollup,
payload.index,
payload.mainnetExitRoot,
payload.rollupExitRoot,
payload.originNetwork,
payload.originTokenAddress,
payload.destinationNetwork,
payload.destinationAddress,
payload.amount,
payload.metadata,
option
);
} else {
return this.parentBridge.claimMessage(
payload.smtProof,
payload.index,
payload.mainnetExitRoot,
payload.rollupExitRoot,
payload.originNetwork,
payload.originTokenAddress,
payload.destinationNetwork,
payload.destinationAddress,
payload.amount,
payload.metadata,
option
);
}

});
}

Expand Down Expand Up @@ -506,19 +558,36 @@ export class ERC20 extends ZkEvmToken {
burnTransactionHash, false, networkId
);
}).then(payload => {
return this.parentBridge.claimAsset(
payload.smtProof,
payload.index,
payload.mainnetExitRoot,
payload.rollupExitRoot,
payload.originNetwork,
payload.originTokenAddress,
payload.destinationNetwork,
payload.destinationAddress,
payload.amount,
payload.metadata,
option
);
if (payload.smtProofRollup) {
return this.parentBridge.claimAssetNew(
payload.smtProof,
payload.smtProofRollup,
payload.index,
payload.mainnetExitRoot,
payload.rollupExitRoot,
payload.originNetwork,
payload.originTokenAddress,
payload.destinationNetwork,
payload.destinationAddress,
payload.amount,
payload.metadata,
option
);
} else {
return this.parentBridge.claimAsset(
payload.smtProof,
payload.index,
payload.mainnetExitRoot,
payload.rollupExitRoot,
payload.originNetwork,
payload.originTokenAddress,
payload.destinationNetwork,
payload.destinationAddress,
payload.amount,
payload.metadata,
option
);
}
});
}

Expand Down Expand Up @@ -631,7 +700,7 @@ export class ERC20 extends ZkEvmToken {
holder: account,
spender: spenderAddress,
nonce,
expiry: Math.floor((Date.now() + 3600000)/1000),
expiry: Math.floor((Date.now() + 3600000) / 1000),
allowed: true,
};
case Permit.EIP_2612:
Expand All @@ -657,7 +726,7 @@ export class ERC20 extends ZkEvmToken {
spender: spenderAddress,
value: amount,
nonce: nonce,
deadline: Math.floor((Date.now() + 3600000)/1000),
deadline: Math.floor((Date.now() + 3600000) / 1000),
};
}
return typedData;
Expand Down Expand Up @@ -718,7 +787,7 @@ export class ERC20 extends ZkEvmToken {
account,
spenderAddress,
nonce,
Math.floor((Date.now() + 3600000)/1000),
Math.floor((Date.now() + 3600000) / 1000),
true,
v,
r,
Expand All @@ -733,7 +802,7 @@ export class ERC20 extends ZkEvmToken {
account,
spenderAddress,
amount,
Math.floor((Date.now() + 3600000)/1000),
Math.floor((Date.now() + 3600000) / 1000),
v,
r,
s,
Expand Down
Loading

0 comments on commit 6895c05

Please sign in to comment.