Skip to content

Commit 7f9f3d7

Browse files
committed
updated deployment to use the same vault
1 parent 7a0e8b1 commit 7f9f3d7

File tree

10 files changed

+179
-85
lines changed

10 files changed

+179
-85
lines changed

contracts/_utilities/ChainBridgeBatchRebaseReport.sol

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ interface IBridge {
77
bytes32 resourceID,
88
bytes calldata data
99
) external payable;
10+
11+
function getFee(uint8 destinationChainID) external view returns (uint256);
1012
}
1113

1214
interface IPolicy {
@@ -22,8 +24,7 @@ contract ChainBridgeBatchRebaseReport {
2224
address policy,
2325
address bridge,
2426
uint8[] memory destinationChainIDs,
25-
bytes32 resourceID,
26-
uint128 bridgeFee
27+
bytes32 resourceID
2728
) external payable {
2829
for (uint256 i = 0; i < destinationChainIDs.length; i++) {
2930
uint8 destinationChainID = destinationChainIDs[i];
@@ -33,6 +34,7 @@ contract ChainBridgeBatchRebaseReport {
3334
(epoch, totalSupply) = IPolicy(policy).globalAmpleforthEpochAndAMPLSupply();
3435

3536
uint256 dataLen = 64;
37+
uint256 bridgeFee = IBridge(bridge).getFee(destinationChainID);
3638
IBridge(bridge).deposit{value: bridgeFee}(
3739
destinationChainID,
3840
resourceID,

helpers/deploy.js

Lines changed: 43 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -211,12 +211,10 @@ async function deployChainBridgeContracts(
211211
};
212212
}
213213

214-
async function deployChainBridgeBaseChainGatewayContracts(
215-
{ ampl, policy, bridge, genericHandler },
214+
async function deployTokenVault(
216215
ethers,
217216
deployer,
218-
txParams = {},
219-
) {
217+
txParams = {}) {
220218
const tokenVault = await deployContract(
221219
ethers,
222220
'TokenVault',
@@ -225,6 +223,15 @@ async function deployChainBridgeBaseChainGatewayContracts(
225223
txParams,
226224
);
227225

226+
return tokenVault;
227+
}
228+
229+
async function deployChainBridgeBaseChainGatewayContracts(
230+
{ ampl, policy, bridge, genericHandler, tokenVault },
231+
ethers,
232+
deployer,
233+
txParams = {},
234+
) {
228235
const rebaseGateway = await deployContract(
229236
ethers,
230237
'AMPLChainBridgeGateway',
@@ -240,11 +247,15 @@ async function deployChainBridgeBaseChainGatewayContracts(
240247
txParams,
241248
);
242249

250+
const deployerAddress = await deployer.getAddress();
251+
const adminRole = await bridge.DEFAULT_ADMIN_ROLE();
252+
const isAdmin = await bridge.hasRole(adminRole, deployerAddress);
253+
243254
const reportRebaseFnSig = CB_FUNCTION_SIG_baseChainReportRebase(
244255
rebaseGateway,
245256
);
246257

247-
try {
258+
if(isAdmin){
248259
await (
249260
await bridge
250261
.connect(deployer)
@@ -256,7 +267,7 @@ async function deployChainBridgeBaseChainGatewayContracts(
256267
txParams,
257268
)
258269
).wait();
259-
} catch (e) {
270+
} else {
260271
console.log(
261272
'Failed adding generic resource to bridge, deployer key not bridge owner',
262273
);
@@ -270,7 +281,7 @@ async function deployChainBridgeBaseChainGatewayContracts(
270281
}
271282

272283
const transferFnSig = CB_FUNCTION_SIG_baseChainTransfer(transferGateway);
273-
try {
284+
if(isAdmin) {
274285
await (
275286
await bridge
276287
.connect(deployer)
@@ -282,7 +293,7 @@ async function deployChainBridgeBaseChainGatewayContracts(
282293
txParams,
283294
)
284295
).wait();
285-
} catch (e) {
296+
} else {
286297
console.log(
287298
'Failed adding generic resource to bridge, deployer key not bridge owner',
288299
);
@@ -295,9 +306,23 @@ async function deployChainBridgeBaseChainGatewayContracts(
295306
]);
296307
}
297308

298-
await (await tokenVault.addBridgeGateway(transferGateway.address)).wait();
309+
if(await tokenVault.owner() == deployerAddress){
310+
await (
311+
await tokenVault
312+
.connect(deployer)
313+
.addBridgeGateway(transferGateway.address)
314+
).wait();
315+
} else {
316+
console.log(
317+
'Failed to add whitelist transfer gateway to vault as deployer not vault owner',
318+
);
319+
console.log('Execute the following on-chain');
320+
console.log('addBridgeGateway', [
321+
transferGateway.address,
322+
]);
323+
}
299324

300-
return { tokenVault, rebaseGateway, transferGateway };
325+
return { rebaseGateway, transferGateway };
301326
}
302327

303328
async function deployChainBridgeSatelliteChainGatewayContracts(
@@ -333,10 +358,13 @@ async function deployChainBridgeSatelliteChainGatewayContracts(
333358
.addBridgeGateway(transferGateway.address, txParams)
334359
).wait();
335360

361+
const adminRole = await bridge.DEFAULT_ADMIN_ROLE();
362+
const isAdmin = await bridge.hasRole(adminRole, await deployer.getAddress());
363+
336364
const reportRebaseFnSig = CB_FUNCTION_SIG_satelliteChainReportRebase(
337365
rebaseGateway,
338366
);
339-
try {
367+
if(isAdmin) {
340368
await (
341369
await bridge.adminSetGenericResource(
342370
genericHandler.address,
@@ -346,7 +374,7 @@ async function deployChainBridgeSatelliteChainGatewayContracts(
346374
txParams,
347375
)
348376
).wait();
349-
} catch (e) {
377+
} else {
350378
console.log(
351379
'Failed adding generic resource to bridge, deployer key not bridge owner',
352380
);
@@ -360,7 +388,7 @@ async function deployChainBridgeSatelliteChainGatewayContracts(
360388
}
361389

362390
const transferFnSig = CB_FUNCTION_SIG_satelliteChainTransfer(transferGateway);
363-
try {
391+
if(isAdmin) {
364392
await (
365393
await bridge.adminSetGenericResource(
366394
genericHandler.address,
@@ -370,7 +398,7 @@ async function deployChainBridgeSatelliteChainGatewayContracts(
370398
txParams,
371399
)
372400
).wait();
373-
} catch (e) {
401+
} else {
374402
console.log(
375403
'Failed adding generic resource to bridge, deployer key not bridge owner',
376404
);
@@ -391,6 +419,7 @@ module.exports = {
391419
deployXCAmpleContracts,
392420
deployChainBridgeContracts,
393421
deployChainBridgeHelpers,
422+
deployTokenVault,
394423
deployChainBridgeBaseChainGatewayContracts,
395424
deployChainBridgeSatelliteChainGatewayContracts,
396425
};

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
"@openzeppelin/contracts": "^3.2.0",
2222
"@openzeppelin/contracts-upgradeable": "^3.3.0",
2323
"@openzeppelin/upgrades": "^2.8.0",
24-
"chainbridge-solidity": "https://github.com/meterio/chainbridge-solidity-v1.0.0-eth#master",
24+
"chainbridge-solidity": "https://github.com/meterio/chainbridge-solidity-v1.0.0-eth#6b02b0a52ce7e3967feeffbe6a6440a5b1006aec",
2525
"market-oracle": "https://github.com/ampleforth/market-oracle#v1.0.1",
2626
"uFragments": "https://github.com/ampleforth/uFragments#v1.1.0"
2727
},

sdk/deployments/devBscTestnetSatChain.json

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@
111111
},
112112
"isBaseChain": false,
113113
"chainBridge/bridge": {
114-
"address": "0xa939D6a9E91ebD962f36bD0f7cf1c6C3C12c798f",
114+
"address": "0xcCeA086cbb7DA6bA5eb004fAd435F9b7712bA80e",
115115
"abi": [
116116
"constructor(uint8 chainID, address[] initialRelayers, uint256 initialRelayerThreshold, uint256 fee, uint256 expiry)",
117117
"event Deposit(uint8 indexed destinationChainID, bytes32 indexed resourceID, uint64 indexed depositNonce)",
@@ -136,21 +136,29 @@
136136
"function _proposals(uint72, bytes32) view returns (bytes32 _resourceID, bytes32 _dataHash, uint8 _status, uint256 _proposedBlock)",
137137
"function _relayerThreshold() view returns (uint256)",
138138
"function _resourceIDToHandlerAddress(bytes32) view returns (address)",
139+
"function _specialFee() view returns (uint256)",
140+
"function _specialFeeChainID() view returns (uint8)",
139141
"function _totalProposals() view returns (uint256)",
140142
"function _totalRelayers() view returns (uint256)",
143+
"function _wtokenAddress() view returns (address)",
141144
"function adminAddRelayer(address relayerAddress)",
142145
"function adminChangeFee(uint256 newFee)",
143146
"function adminChangeRelayerThreshold(uint256 newThreshold)",
147+
"function adminChangeSpecialFee(uint256 newFee, uint8 chainID)",
144148
"function adminPauseTransfers()",
145149
"function adminRemoveRelayer(address relayerAddress)",
146150
"function adminSetBurnable(address handlerAddress, address tokenAddress)",
147151
"function adminSetGenericResource(address handlerAddress, bytes32 resourceID, address contractAddress, bytes4 depositFunctionSig, uint256 depositFunctionDepositerOffset, bytes4 executeFunctionSig)",
148152
"function adminSetResource(address handlerAddress, bytes32 resourceID, address tokenAddress)",
149153
"function adminUnpauseTransfers()",
154+
"function adminUpdateBridgeAddress(address handlerAddress, address newBridgeAddress)",
150155
"function adminWithdraw(address handlerAddress, address tokenAddress, address recipient, uint256 amountOrTokenID)",
151156
"function cancelProposal(uint8 chainID, uint64 depositNonce, bytes32 dataHash)",
152157
"function deposit(uint8 destinationChainID, bytes32 resourceID, bytes data) payable",
158+
"function depositETH(uint8 destinationChainID, bytes32 resourceID, bytes data) payable",
153159
"function executeProposal(uint8 chainID, uint64 depositNonce, bytes data, bytes32 resourceID)",
160+
"function getFee(uint8 destinationChainID) view returns (uint256)",
161+
"function getFees() view returns (uint256, uint256, uint8)",
154162
"function getProposal(uint8 originChainID, uint64 depositNonce, bytes32 dataHash) view returns (tuple(bytes32 _resourceID, bytes32 _dataHash, address[] _yesVotes, address[] _noVotes, uint8 _status, uint256 _proposedBlock))",
155163
"function getRoleAdmin(bytes32 role) view returns (bytes32)",
156164
"function getRoleMember(bytes32 role, uint256 index) view returns (address)",
@@ -164,12 +172,10 @@
164172
"function revokeRole(bytes32 role, address account)",
165173
"function transferFunds(address[] addrs, uint256[] amounts)",
166174
"function voteProposal(uint8 chainID, uint64 depositNonce, bytes32 resourceID, bytes32 dataHash)"
167-
],
168-
"hash": "0x11b4bd48528093bdb645d8747f53bffff63d9e361be174f6ba4f24ea9fd48838",
169-
"blockNumber": 8356136
175+
]
170176
},
171177
"chainBridge/genericHandler": {
172-
"address": "0x8E61cC786AaFA0BFd13035a5b0b7A8CcdFB4CE12",
178+
"address": "0xb264Cf6be02f17BF638Cd59F63C68Ec3036b32b5",
173179
"abi": [
174180
"constructor(address bridgeAddress, bytes32[] initialResourceIDs, address[] initialContractAddresses, bytes4[] initialDepositFunctionSignatures, uint256[] initialDepositFunctionDepositerOffsets, bytes4[] initialExecuteFunctionSignatures)",
175181
"function _bridgeAddress() view returns (address)",
@@ -183,11 +189,12 @@
183189
"function deposit(bytes32 resourceID, uint8 destinationChainID, uint64 depositNonce, address depositer, bytes data)",
184190
"function executeProposal(bytes32 resourceID, bytes data)",
185191
"function getDepositRecord(uint64 depositNonce, uint8 destId) view returns (tuple(uint8 _destinationChainID, address _depositer, bytes32 _resourceID, bytes _metaData))",
186-
"function setResource(bytes32 resourceID, address contractAddress, bytes4 depositFunctionSig, uint256 depositFunctionDepositerOffset, bytes4 executeFunctionSig)"
192+
"function setResource(bytes32 resourceID, address contractAddress, bytes4 depositFunctionSig, uint256 depositFunctionDepositerOffset, bytes4 executeFunctionSig)",
193+
"function updateBridgeAddress(address newBridgeAddress)"
187194
]
188195
},
189196
"chainBridge/transferGateway": {
190-
"address": "0x340416722A688f933f1bcE712E5061Ab9708463e",
197+
"address": "0x27Fa7b4baC6b62C0B84d23C8331bb0dF33649f58",
191198
"abi": [
192199
"constructor(address bridgeHandler, address xcAmple_, address xcController_)",
193200
"event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)",
@@ -204,11 +211,11 @@
204211
"function xcAmple() view returns (address)",
205212
"function xcController() view returns (address)"
206213
],
207-
"hash": "0x4d986836dbb8fd31ef8047252dfaed10acd9fb07d0c01d7c2ca49b002e160e32",
208-
"blockNumber": 8524276
214+
"hash": "0x3fffdc3b804d94a7dcd33257a2d8681d5460b72ba8e03ee8f125c76a7a1f148b",
215+
"blockNumber": 9382258
209216
},
210217
"chainBridge/rebaseGateway": {
211-
"address": "0xEAB83AfcF1D5e008fD4284F266dAc75a0ab51497",
218+
"address": "0x34E2DAb6911B49A21a36c07B5cd99983aaF7Eb67",
212219
"abi": [
213220
"constructor(address bridgeHandler, address xcAmple_, address xcController_)",
214221
"event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)",
@@ -225,7 +232,7 @@
225232
"function xcAmple() view returns (address)",
226233
"function xcController() view returns (address)"
227234
],
228-
"hash": "0x7201c38708f6a8d6612bca9a7acbf5df2fef7656b152d3a8415c6b2c47d7b8bc",
229-
"blockNumber": 8524272
235+
"hash": "0xe89e5d9a0ff111bbe88e4d71733d1776076211777a7ef6bf2d5ca60125a40d88",
236+
"blockNumber": 9382255
230237
}
231-
}
238+
}

sdk/deployments/devMeterTestnetSatChain.json

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@
111111
},
112112
"isBaseChain": false,
113113
"chainBridge/bridge": {
114-
"address": "0xcC5A4195323CB835f22A9B7c6C5Cf6691D4419ec",
114+
"address": "0x4E68f5f704878e69AF9d58D5616168d69f1D03e4",
115115
"abi": [
116116
"constructor(uint8 chainID, address[] initialRelayers, uint256 initialRelayerThreshold, uint256 fee, uint256 expiry)",
117117
"event Deposit(uint8 indexed destinationChainID, bytes32 indexed resourceID, uint64 indexed depositNonce)",
@@ -136,21 +136,29 @@
136136
"function _proposals(uint72, bytes32) view returns (bytes32 _resourceID, bytes32 _dataHash, uint8 _status, uint256 _proposedBlock)",
137137
"function _relayerThreshold() view returns (uint256)",
138138
"function _resourceIDToHandlerAddress(bytes32) view returns (address)",
139+
"function _specialFee() view returns (uint256)",
140+
"function _specialFeeChainID() view returns (uint8)",
139141
"function _totalProposals() view returns (uint256)",
140142
"function _totalRelayers() view returns (uint256)",
143+
"function _wtokenAddress() view returns (address)",
141144
"function adminAddRelayer(address relayerAddress)",
142145
"function adminChangeFee(uint256 newFee)",
143146
"function adminChangeRelayerThreshold(uint256 newThreshold)",
147+
"function adminChangeSpecialFee(uint256 newFee, uint8 chainID)",
144148
"function adminPauseTransfers()",
145149
"function adminRemoveRelayer(address relayerAddress)",
146150
"function adminSetBurnable(address handlerAddress, address tokenAddress)",
147151
"function adminSetGenericResource(address handlerAddress, bytes32 resourceID, address contractAddress, bytes4 depositFunctionSig, uint256 depositFunctionDepositerOffset, bytes4 executeFunctionSig)",
148152
"function adminSetResource(address handlerAddress, bytes32 resourceID, address tokenAddress)",
149153
"function adminUnpauseTransfers()",
154+
"function adminUpdateBridgeAddress(address handlerAddress, address newBridgeAddress)",
150155
"function adminWithdraw(address handlerAddress, address tokenAddress, address recipient, uint256 amountOrTokenID)",
151156
"function cancelProposal(uint8 chainID, uint64 depositNonce, bytes32 dataHash)",
152157
"function deposit(uint8 destinationChainID, bytes32 resourceID, bytes data) payable",
158+
"function depositETH(uint8 destinationChainID, bytes32 resourceID, bytes data) payable",
153159
"function executeProposal(uint8 chainID, uint64 depositNonce, bytes data, bytes32 resourceID)",
160+
"function getFee(uint8 destinationChainID) view returns (uint256)",
161+
"function getFees() view returns (uint256, uint256, uint8)",
154162
"function getProposal(uint8 originChainID, uint64 depositNonce, bytes32 dataHash) view returns (tuple(bytes32 _resourceID, bytes32 _dataHash, address[] _yesVotes, address[] _noVotes, uint8 _status, uint256 _proposedBlock))",
155163
"function getRoleAdmin(bytes32 role) view returns (bytes32)",
156164
"function getRoleMember(bytes32 role, uint256 index) view returns (address)",
@@ -164,12 +172,10 @@
164172
"function revokeRole(bytes32 role, address account)",
165173
"function transferFunds(address[] addrs, uint256[] amounts)",
166174
"function voteProposal(uint8 chainID, uint64 depositNonce, bytes32 resourceID, bytes32 dataHash)"
167-
],
168-
"hash": "0xa8123bb1156f05c886994ce8322b0ace325729e913d34bdc3cafbe091e4afa3a",
169-
"blockNumber": 1092980
175+
]
170176
},
171177
"chainBridge/genericHandler": {
172-
"address": "0xb145C8E7EBbD692cFC495E6a5f414DF6f72503FA",
178+
"address": "0x56f03E0B73fa6Ff6704CA399CE88282EDcF9FeEA",
173179
"abi": [
174180
"constructor(address bridgeAddress, bytes32[] initialResourceIDs, address[] initialContractAddresses, bytes4[] initialDepositFunctionSignatures, uint256[] initialDepositFunctionDepositerOffsets, bytes4[] initialExecuteFunctionSignatures)",
175181
"function _bridgeAddress() view returns (address)",
@@ -183,11 +189,12 @@
183189
"function deposit(bytes32 resourceID, uint8 destinationChainID, uint64 depositNonce, address depositer, bytes data)",
184190
"function executeProposal(bytes32 resourceID, bytes data)",
185191
"function getDepositRecord(uint64 depositNonce, uint8 destId) view returns (tuple(uint8 _destinationChainID, address _depositer, bytes32 _resourceID, bytes _metaData))",
186-
"function setResource(bytes32 resourceID, address contractAddress, bytes4 depositFunctionSig, uint256 depositFunctionDepositerOffset, bytes4 executeFunctionSig)"
192+
"function setResource(bytes32 resourceID, address contractAddress, bytes4 depositFunctionSig, uint256 depositFunctionDepositerOffset, bytes4 executeFunctionSig)",
193+
"function updateBridgeAddress(address newBridgeAddress)"
187194
]
188195
},
189196
"chainBridge/transferGateway": {
190-
"address": "0x63bac8653D3bCFd0dA209A8682f0DB6C594FeAb3",
197+
"address": "0xd0ac5ff488000CFDbDFf9F49CE6464acfF87eebC",
191198
"abi": [
192199
"constructor(address bridgeHandler, address xcAmple_, address xcController_)",
193200
"event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)",
@@ -204,11 +211,11 @@
204211
"function xcAmple() view returns (address)",
205212
"function xcController() view returns (address)"
206213
],
207-
"hash": "0xb6821a16d058a15380f4977323416effd824cec207aad0c117b63db1a831116d",
208-
"blockNumber": 1313185
214+
"hash": "0x6c0bf802b114d685c59a2d8f3d6c44485c91188dbbd4d7fd674b20b315edffca",
215+
"blockNumber": 2275883
209216
},
210217
"chainBridge/rebaseGateway": {
211-
"address": "0xd66d69a07Ea2551338Be34C9B00A024dab3BdA6d",
218+
"address": "0x34b19c38651a1438AD1008e70904cc36F689F1d7",
212219
"abi": [
213220
"constructor(address bridgeHandler, address xcAmple_, address xcController_)",
214221
"event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)",
@@ -225,7 +232,7 @@
225232
"function xcAmple() view returns (address)",
226233
"function xcController() view returns (address)"
227234
],
228-
"hash": "0x919573372e26b6653b54be7bfbd322d3f777e5401804e1b5b962a18fa3310ed9",
229-
"blockNumber": 1313178
235+
"hash": "0x6acfc7db1dbf5f83f572922e1c55a89e6a3072facae9b7945615462e1a202d04",
236+
"blockNumber": 2275878
230237
}
231-
}
238+
}

0 commit comments

Comments
 (0)