Skip to content

Commit

Permalink
Multisig pool deployment runs Ok on testnet
Browse files Browse the repository at this point in the history
  • Loading branch information
computerphysicslab committed Jun 7, 2021
1 parent 91c244c commit 46019f5
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 18 deletions.
2 changes: 1 addition & 1 deletion scripts/pancakeswap/bsc_mainnet_contracts.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"multisigOwner1": "",
"multisigOwner2": "",
"multisigOwner3": "",
"ethMultisig": "",
"bscMultisig": "",
"PancakeRouter02": "0x10ED43C718714eb63d5aA57B78B54704E256024E",
"bSOV": ""
}
4 changes: 2 additions & 2 deletions scripts/pancakeswap/bsc_testnet_contracts.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{
"multisigOwner1": "0xCc8c540D19b8fDd8D2EBC0d9C227f1599233c168",
"multisigOwner1": "0x10a1d67dCeF9Fd6095E1A918578D6f996fA5E376",
"multisigOwner2": "0x524a74C13a38BeA6666a99AEb70B84A49F240e2d",
"multisigOwner3": "0xfCB7FBaB730e58FC13Db196c8cd6C9376DaE278C",
"ethMultisig": "0xF1D0e466eBEa5711E3d509B4eDe521aDEC0d19b4",
"bscMultisig": "0xae866B73dF2406487288A7E51a0cB23C9C5dc549",
"PancakeRouter02": "0xD99D1c33F9fC3444f8101754aBC46c52416550D1",
"bSOV": "0xDC709C7880cd2034651855D4E21C8413b99aa7A8"
}
28 changes: 15 additions & 13 deletions scripts/pancakeswap/deploy_pool.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ def main():
balanceBefore = acct.balance()
# Function Call
# tokenTransfer(contracts['multisig'], bSOVAmount) # Change bSOVAmount with the amount of bSOV to be transferred.
# deployPoolFromMultisig(10e18, 500e18) ## previous settings probably right for mainet, but too high for a regular faucet interaction on testnet.
deployPoolFromMultisig(.1e18, 5e18)
deployPoolFromMultisig(10e18, 500e18)
# deployPoolFromMultisig(.1e10, 5e10) # testnet settings (mainet settings are too high for a regular faucet interaction).
# confirmTransaction() # Need to add a transaction ID as parameter.
# executeOnMultisig() # Need to add a transaction ID as parameter.
balanceAfter = acct.balance()
Expand All @@ -26,6 +26,8 @@ def loadConfig():
global contracts, acct
thisNetwork = network.show_active()

### IMPORTANT! rskdeployer account should be the same as multisig's owner1

# == Load config =======================================================================================================================
if thisNetwork == "binance-testnet":
acct = accounts.load("rskdeployer")
Expand All @@ -42,23 +44,23 @@ def loadConfig():
# == PancakeSwap Pool Deployment ==================================
def deployPoolFromMultisig(bnbAmount, bSOVAmount):
bSOV = Contract.from_abi("SOV", address = contracts['bSOV'], abi = SOV.abi, owner = acct)
ethMultisig = Contract.from_abi("MultiSig", address=contracts['ethMultisig'], abi=MultiSigWallet.abi, owner=acct)
bscMultisig = Contract.from_abi("MultiSig", address=contracts['bscMultisig'], abi=MultiSigWallet.abi, owner=acct)
pancakeRouter02 = Contract.from_abi("IPancakeRouter02", address=contracts['PancakeRouter02'], abi=interface.IPancakeRouter02.abi, owner=acct)

# Checks if multisig has enough BNB balance. If not enough, will transfer in case of test network.
checkBnbBalanceAndTransfer(ethMultisig, bnbAmount)
checkBnbBalanceAndTransfer(bscMultisig, bnbAmount)

# Checks if multisig has enough token balance. If not enough, will transfer in case of test network.
checkTokenBalanceAndTransfer(bSOV, ethMultisig.address, bSOVAmount)
checkTokenBalanceAndTransfer(bSOV, bscMultisig.address, bSOVAmount)

# Checks if multisig has approved PancakeSwap for transfer. If not, will do the transfer.
checkTokenApprovalInMultisig(bSOV, ethMultisig.address, pancakeRouter02.address, bSOVAmount)
checkTokenApprovalInMultisig(bSOV, bscMultisig.address, pancakeRouter02.address, bSOVAmount)

# Creating PancakeSwap Pool
thirtyMinutes = 30 * 60
currentTimestamp = int(time.time())
deadline = currentTimestamp + thirtyMinutes
data = pancakeRouter02.addLiquidityETH.encode_input(bSOV.address, bSOVAmount, bSOVAmount, bnbAmount, ethMultisig.address, deadline)
data = pancakeRouter02.addLiquidityETH.encode_input(bSOV.address, bSOVAmount, bSOVAmount, bnbAmount, bscMultisig.address, deadline)
# https://github.com/pancakeswap/pancake-swap-periphery/blob/master/contracts/PancakeRouter.sol#L61
print("=============================================================")
print("Interaction Parameters (Pool Creation)")
Expand All @@ -67,7 +69,7 @@ def deployPoolFromMultisig(bnbAmount, bSOVAmount):
print("amountTokenDesired: ", bSOVAmount)
print("amountTokenMin: ", bSOVAmount)
print("amountBNBMin: ", bnbAmount)
print("to: ", ethMultisig.address)
print("to: ", bscMultisig.address)
print("deadline: ", deadline)
print("Encoded Data: ", data)
print("=============================================================")
Expand Down Expand Up @@ -127,8 +129,8 @@ def checkTokenApprovalInMultisig(token, owner, spender, amount):

# Submits the transaction in multisig.
def submitTransaction(target, value, data):
ethMultisig = Contract.from_abi("MultiSig", address=contracts['ethMultisig'], abi=MultiSigWallet.abi, owner=acct)
tx = ethMultisig.submitTransaction(target, value, data)
bscMultisig = Contract.from_abi("MultiSig", address=contracts['bscMultisig'], abi=MultiSigWallet.abi, owner=acct)
tx = bscMultisig.submitTransaction(target, value, data)
txId = tx.events["Submission"]["transactionId"]
print("=============================================================")
print("Return Parameters (Multisig Submission)")
Expand All @@ -139,18 +141,18 @@ def submitTransaction(target, value, data):

# Confirm the transaction in multisig.
def confirmTransaction(transactionId):
ethMultisig = Contract.from_abi("MultiSig", address=contracts['ethMultisig'], abi=MultiSigWallet.abi, owner=acct)
bscMultisig = Contract.from_abi("MultiSig", address=contracts['bscMultisig'], abi=MultiSigWallet.abi, owner=acct)
print("=============================================================")
print("Interaction Parameters (Multisig Confirmation)")
print("=============================================================")
print("Transaction ID: ", transactionId)
print("=============================================================")
tx = ethMultisig.confirmTransaction(transactionId)
tx = bscMultisig.confirmTransaction(transactionId)
tx.info()

# Execute the transaction in multisig.
def executeOnMultisig(transactionId):
multisig = Contract.from_abi("MultiSig", address=contracts['ethMultisig'], abi=MultiSigWallet.abi, owner=acct)
multisig = Contract.from_abi("MultiSig", address=contracts['bscMultisig'], abi=MultiSigWallet.abi, owner=acct)
print("=============================================================")
print("Interaction Parameters (Multisig Execution)")
print("=============================================================")
Expand Down
4 changes: 2 additions & 2 deletions scripts/pancakeswap/deploy_pool_user.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ def main():

balanceBefore = acct.balance()
# Function Call
# deployPool(10e18, 500e18) ## previous settings probably right for mainet, but too high for a regular faucet interaction on testnet.
deployPool(.1e18, 5e18)
deployPool(10e18, 500e18)
# deployPool(.1e18, 5e18) # testnet settings (mainet settings are too high for a regular faucet interaction).
balanceAfter = acct.balance()

print("=============================================================")
Expand Down

0 comments on commit 46019f5

Please sign in to comment.