Commit 1394bb36 authored by hezhengjun's avatar hezhengjun

add bep20 deploy tool

parent 0728e1aa
...@@ -6,6 +6,7 @@ import ( ...@@ -6,6 +6,7 @@ import (
"math/big" "math/big"
"strings" "strings"
bep20 "github.com/33cn/plugin/plugin/dapp/cross2eth/contracts/bep20/generated"
"github.com/33cn/plugin/plugin/dapp/cross2eth/contracts/contracts4eth/generated" "github.com/33cn/plugin/plugin/dapp/cross2eth/contracts/contracts4eth/generated"
erc20 "github.com/33cn/plugin/plugin/dapp/cross2eth/contracts/erc20/generated" erc20 "github.com/33cn/plugin/plugin/dapp/cross2eth/contracts/erc20/generated"
tetherUSDT "github.com/33cn/plugin/plugin/dapp/cross2eth/contracts/usdt/generated" tetherUSDT "github.com/33cn/plugin/plugin/dapp/cross2eth/contracts/usdt/generated"
...@@ -31,6 +32,86 @@ import ( ...@@ -31,6 +32,86 @@ import (
./boss4x ethereum offline send -f deploysigntxs.txt ./boss4x ethereum offline send -f deploysigntxs.txt
*/ */
func DeployBEP20Cmd() *cobra.Command {
cmd := &cobra.Command{
Use: "deploy_bep20",
Short: "deploy BEP20 contracts",
Run: DeployBEP20,
}
DeployBEP20Flags(cmd)
return cmd
}
func DeployBEP20Flags(cmd *cobra.Command) {
cmd.Flags().StringP("deployAddr", "a", "", "addr to deploy contract ")
_ = cmd.MarkFlagRequired("deployAddr")
cmd.Flags().StringP("owner", "o", "", "owner address")
_ = cmd.MarkFlagRequired("owner")
cmd.Flags().StringP("symbol", "s", "", "BEP20 symbol")
_ = cmd.MarkFlagRequired("symbol")
cmd.Flags().StringP("totalSupply", "m", "0", "total supply")
_ = cmd.MarkFlagRequired("totalSupply")
cmd.Flags().IntP("decimal", "d", 8, "decimal")
_ = cmd.MarkFlagRequired("decimal")
}
func DeployBEP20(cmd *cobra.Command, _ []string) {
url, _ := cmd.Flags().GetString("rpc_laddr_ethereum")
deployerAddr, _ := cmd.Flags().GetString("deployAddr")
owner, _ := cmd.Flags().GetString("owner")
symbol, _ := cmd.Flags().GetString("symbol")
totalSupply, _ := cmd.Flags().GetString("totalSupply")
decimal, _ := cmd.Flags().GetInt("decimal")
bnAmount := big.NewInt(1)
bnAmount, _ = bnAmount.SetString(utils.TrimZeroAndDot(totalSupply), 10)
client, err := ethclient.Dial(url)
if err != nil {
fmt.Println("ethclient Dial error", err.Error())
return
}
symbol = strings.ToUpper(symbol)
ctx := context.Background()
startNonce, err := client.PendingNonceAt(ctx, common.HexToAddress(deployerAddr))
if nil != err {
fmt.Println("PendingNonceAt error", err.Error())
return
}
var infos []*DeployInfo
parsed, err := abi.JSON(strings.NewReader(bep20.BEP20TokenABI))
if err != nil {
fmt.Println("abi.JSON(strings.NewReader(erc20.ERC20ABI)) error", err.Error())
return
}
bin := common.FromHex(bep20.BEP20TokenBin)
BEP20OwnerAddr := common.HexToAddress(owner)
//constructor (string memory name_, string memory symbol_,uint256 totalSupply_, uint8 decimals_, address owner_) public {
tokenName := symbol + " Token"
packdata, err := parsed.Pack("", tokenName, symbol, bnAmount, uint8(decimal), BEP20OwnerAddr)
if err != nil {
fmt.Println("Pack error", err.Error())
return
}
BEP20Addr := crypto.CreateAddress(common.HexToAddress(deployerAddr), startNonce)
deployInfo := DeployInfo{
PackData: append(bin, packdata...),
ContractorAddr: BEP20Addr,
Name: "BEP20: " + symbol,
Nonce: startNonce,
To: nil,
}
infos = append(infos, &deployInfo)
fileName := fmt.Sprintf("deployBEP20%s.txt", symbol)
err = NewTxWrite(infos, common.HexToAddress(deployerAddr), url, fileName)
if err != nil {
fmt.Println("NewTxWrite error", err.Error())
return
}
}
func DeployERC20Cmd() *cobra.Command { func DeployERC20Cmd() *cobra.Command {
cmd := &cobra.Command{ cmd := &cobra.Command{
Use: "create_erc20", Use: "create_erc20",
......
...@@ -34,6 +34,7 @@ func DeployOfflineContractsCmd() *cobra.Command { ...@@ -34,6 +34,7 @@ func DeployOfflineContractsCmd() *cobra.Command {
CreateCmd(), //构造交易 CreateCmd(), //构造交易
CreateWithFileCmd(), CreateWithFileCmd(),
DeployERC20Cmd(), DeployERC20Cmd(),
DeployBEP20Cmd(),
DeployTetherUSDTCmd(), DeployTetherUSDTCmd(),
//CreateCfgAccountTxCmd(), // set_offline_addr 设置离线多签地址 //CreateCfgAccountTxCmd(), // set_offline_addr 设置离线多签地址
//SetupCmd(), //SetupCmd(),
......
...@@ -352,14 +352,24 @@ contract BEP20Token is Context, IBEP20, Ownable { ...@@ -352,14 +352,24 @@ contract BEP20Token is Context, IBEP20, Ownable {
string private _symbol; string private _symbol;
string private _name; string private _name;
constructor() public { // constructor() public {
_name = "BUSD Token"; // _name = "BUSD Token";
_symbol = "BUSD"; // _symbol = "BUSD";
_decimals = 18; // _decimals = 18;
_totalSupply = 31000000000000000000000000; // _totalSupply = 31000000000000000000000000;
_balances[msg.sender] = _totalSupply; // _balances[msg.sender] = _totalSupply;
//
emit Transfer(address(0), msg.sender, _totalSupply); // emit Transfer(address(0), msg.sender, _totalSupply);
// }
constructor (string memory name_, string memory symbol_,uint256 totalSupply_, uint8 decimals_, address owner_) public {
_name = name_;
_symbol = symbol_;
_decimals = decimals_;
_totalSupply = totalSupply_;
_balances[owner_] = totalSupply_;
emit Transfer(address(0), owner_, totalSupply_);
} }
/** /**
......
...@@ -27,7 +27,7 @@ var ( ...@@ -27,7 +27,7 @@ var (
) )
// BEP20TokenABI is the input ABI used to generate the binding from. // BEP20TokenABI is the input ABI used to generate the binding from.
const BEP20TokenABI = "[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]" const BEP20TokenABI = "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply_\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]"
// BEP20TokenFuncSigs maps the 4-byte function signature to its string representation. // BEP20TokenFuncSigs maps the 4-byte function signature to its string representation.
var BEP20TokenFuncSigs = map[string]string{ var BEP20TokenFuncSigs = map[string]string{
...@@ -51,16 +51,16 @@ var BEP20TokenFuncSigs = map[string]string{ ...@@ -51,16 +51,16 @@ var BEP20TokenFuncSigs = map[string]string{
} }
// BEP20TokenBin is the compiled bytecode used for deploying new contracts. // BEP20TokenBin is the compiled bytecode used for deploying new contracts.
var BEP20TokenBin = "0x60806040523480156200001157600080fd5b506000620000276001600160e01b036200014016565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060408051808201909152600a80825269212aa9a2102a37b5b2b760b11b6020909201918252620000a49160069162000145565b5060408051808201909152600480825263109554d160e21b6020909201918252620000d29160059162000145565b506004805460ff191660121790556a19a4815e0ad0c67f0000006003819055336000818152600160209081526040808320859055805194855251929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3620001e7565b335b90565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200018857805160ff1916838001178555620001b8565b82800160010185558215620001b8579182015b82811115620001b85782518255916020019190600101906200019b565b50620001c6929150620001ca565b5090565b6200014291905b80821115620001c65760008155600101620001d1565b61101280620001f76000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c8063715018a6116100a2578063a0712d6811610071578063a0712d68146102e8578063a457c2d714610305578063a9059cbb14610331578063dd62ed3e1461035d578063f2fde38b1461038b5761010b565b8063715018a6146102aa578063893d20e8146102b45780638da5cb5b146102d857806395d89b41146102e05761010b565b8063313ce567116100de578063313ce5671461021d578063395093511461023b57806342966c681461026757806370a08231146102845761010b565b806306fdde0314610110578063095ea7b31461018d57806318160ddd146101cd57806323b872dd146101e7575b600080fd5b6101186103b1565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015257818101518382015260200161013a565b50505050905090810190601f16801561017f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101b9600480360360408110156101a357600080fd5b506001600160a01b038135169060200135610447565b604080519115158252519081900360200190f35b6101d5610464565b60408051918252519081900360200190f35b6101b9600480360360608110156101fd57600080fd5b506001600160a01b0381358116916020810135909116906040013561046a565b6102256104f7565b6040805160ff9092168252519081900360200190f35b6101b96004803603604081101561025157600080fd5b506001600160a01b038135169060200135610500565b6101b96004803603602081101561027d57600080fd5b5035610554565b6101d56004803603602081101561029a57600080fd5b50356001600160a01b031661056f565b6102b261058a565b005b6102bc61063e565b604080516001600160a01b039092168252519081900360200190f35b6102bc61064d565b61011861065c565b6101b9600480360360208110156102fe57600080fd5b50356106bd565b6101b96004803603604081101561031b57600080fd5b506001600160a01b03813516906020013561073a565b6101b96004803603604081101561034757600080fd5b506001600160a01b0381351690602001356107a8565b6101d56004803603604081101561037357600080fd5b506001600160a01b03813581169160200135166107bc565b6102b2600480360360208110156103a157600080fd5b50356001600160a01b03166107e7565b60068054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561043d5780601f106104125761010080835404028352916020019161043d565b820191906000526020600020905b81548152906001019060200180831161042057829003601f168201915b5050505050905090565b600061045b61045461085d565b8484610861565b50600192915050565b60035490565b600061047784848461094d565b6104ed8461048361085d565b6104e885604051806060016040528060288152602001610ee3602891396001600160a01b038a166000908152600260205260408120906104c161085d565b6001600160a01b03168152602081019190915260400160002054919063ffffffff610aab16565b610861565b5060019392505050565b60045460ff1690565b600061045b61050d61085d565b846104e8856002600061051e61085d565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff610b4216565b600061056761056161085d565b83610ba3565b506001919050565b6001600160a01b031660009081526001602052604090205490565b61059261085d565b6000546001600160a01b039081169116146105f4576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600061064861064d565b905090565b6000546001600160a01b031690565b60058054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561043d5780601f106104125761010080835404028352916020019161043d565b60006106c761085d565b6000546001600160a01b03908116911614610729576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61056761073461085d565b83610c9f565b600061045b61074761085d565b846104e885604051806060016040528060258152602001610f54602591396002600061077161085d565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff610aab16565b600061045b6107b561085d565b848461094d565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6107ef61085d565b6000546001600160a01b03908116911614610851576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61085a81610d91565b50565b3390565b6001600160a01b0383166108a65760405162461bcd60e51b8152600401808060200182810382526024815260200180610e996024913960400191505060405180910390fd5b6001600160a01b0382166108eb5760405162461bcd60e51b8152600401808060200182810382526022815260200180610fbc6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166109925760405162461bcd60e51b8152600401808060200182810382526025815260200180610e746025913960400191505060405180910390fd5b6001600160a01b0382166109d75760405162461bcd60e51b8152600401808060200182810382526023815260200180610f316023913960400191505060405180910390fd5b610a1a81604051806060016040528060268152602001610f0b602691396001600160a01b038616600090815260016020526040902054919063ffffffff610aab16565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610a4f908263ffffffff610b4216565b6001600160a01b0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008184841115610b3a5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610aff578181015183820152602001610ae7565b50505050905090810190601f168015610b2c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610b9c576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b038216610be85760405162461bcd60e51b8152600401808060200182810382526021815260200180610f796021913960400191505060405180910390fd5b610c2b81604051806060016040528060228152602001610f9a602291396001600160a01b038516600090815260016020526040902054919063ffffffff610aab16565b6001600160a01b038316600090815260016020526040902055600354610c57908263ffffffff610e3116565b6003556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6001600160a01b038216610cfa576040805162461bcd60e51b815260206004820152601f60248201527f42455032303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600354610d0d908263ffffffff610b4216565b6003556001600160a01b038216600090815260016020526040902054610d39908263ffffffff610b4216565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b038116610dd65760405162461bcd60e51b8152600401808060200182810382526026815260200180610ebd6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000610b9c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610aab56fe42455032303a207472616e736665722066726f6d20746865207a65726f206164647265737342455032303a20617070726f76652066726f6d20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737342455032303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636542455032303a207472616e7366657220616d6f756e7420657863656564732062616c616e636542455032303a207472616e7366657220746f20746865207a65726f206164647265737342455032303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f42455032303a206275726e2066726f6d20746865207a65726f206164647265737342455032303a206275726e20616d6f756e7420657863656564732062616c616e636542455032303a20617070726f766520746f20746865207a65726f2061646472657373a265627a7a72315820b5c2e5f64b095feb67d61703a6522b27d72f78a18e409e741e42ca40a08d724864736f6c63430005100032" var BEP20TokenBin = "0x60806040523480156200001157600080fd5b506040516200137638038062001376833981810160405260a08110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b9083019060208201858111156200006e57600080fd5b82516401000000008111828201881017156200008957600080fd5b82525081516020918201929091019080838360005b83811015620000b85781810151838201526020016200009e565b50505050905090810190601f168015620000e65780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200010a57600080fd5b9083019060208201858111156200012057600080fd5b82516401000000008111828201881017156200013b57600080fd5b82525081516020918201929091019080838360005b838110156200016a57818101518382015260200162000150565b50505050905090810190601f168015620001985780820380516001836020036101000a031916815260200191505b5060409081526020820151908201516060909201519093509091506000620001c86001600160e01b03620002ad16565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350845162000227906006906020880190620002b2565b5083516200023d906005906020870190620002b2565b506004805460ff191660ff841617905560038390556001600160a01b0381166000818152600160209081526040808320879055805187815290517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a3505050505062000354565b335b90565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002f557805160ff191683800117855562000325565b8280016001018555821562000325579182015b828111156200032557825182559160200191906001019062000308565b506200033392915062000337565b5090565b620002af91905b808211156200033357600081556001016200033e565b61101280620003646000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c8063715018a6116100a2578063a0712d6811610071578063a0712d68146102e8578063a457c2d714610305578063a9059cbb14610331578063dd62ed3e1461035d578063f2fde38b1461038b5761010b565b8063715018a6146102aa578063893d20e8146102b45780638da5cb5b146102d857806395d89b41146102e05761010b565b8063313ce567116100de578063313ce5671461021d578063395093511461023b57806342966c681461026757806370a08231146102845761010b565b806306fdde0314610110578063095ea7b31461018d57806318160ddd146101cd57806323b872dd146101e7575b600080fd5b6101186103b1565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015257818101518382015260200161013a565b50505050905090810190601f16801561017f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101b9600480360360408110156101a357600080fd5b506001600160a01b038135169060200135610447565b604080519115158252519081900360200190f35b6101d5610464565b60408051918252519081900360200190f35b6101b9600480360360608110156101fd57600080fd5b506001600160a01b0381358116916020810135909116906040013561046a565b6102256104f7565b6040805160ff9092168252519081900360200190f35b6101b96004803603604081101561025157600080fd5b506001600160a01b038135169060200135610500565b6101b96004803603602081101561027d57600080fd5b5035610554565b6101d56004803603602081101561029a57600080fd5b50356001600160a01b031661056f565b6102b261058a565b005b6102bc61063e565b604080516001600160a01b039092168252519081900360200190f35b6102bc61064d565b61011861065c565b6101b9600480360360208110156102fe57600080fd5b50356106bd565b6101b96004803603604081101561031b57600080fd5b506001600160a01b03813516906020013561073a565b6101b96004803603604081101561034757600080fd5b506001600160a01b0381351690602001356107a8565b6101d56004803603604081101561037357600080fd5b506001600160a01b03813581169160200135166107bc565b6102b2600480360360208110156103a157600080fd5b50356001600160a01b03166107e7565b60068054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561043d5780601f106104125761010080835404028352916020019161043d565b820191906000526020600020905b81548152906001019060200180831161042057829003601f168201915b5050505050905090565b600061045b61045461085d565b8484610861565b50600192915050565b60035490565b600061047784848461094d565b6104ed8461048361085d565b6104e885604051806060016040528060288152602001610ee3602891396001600160a01b038a166000908152600260205260408120906104c161085d565b6001600160a01b03168152602081019190915260400160002054919063ffffffff610aab16565b610861565b5060019392505050565b60045460ff1690565b600061045b61050d61085d565b846104e8856002600061051e61085d565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff610b4216565b600061056761056161085d565b83610ba3565b506001919050565b6001600160a01b031660009081526001602052604090205490565b61059261085d565b6000546001600160a01b039081169116146105f4576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600061064861064d565b905090565b6000546001600160a01b031690565b60058054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561043d5780601f106104125761010080835404028352916020019161043d565b60006106c761085d565b6000546001600160a01b03908116911614610729576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61056761073461085d565b83610c9f565b600061045b61074761085d565b846104e885604051806060016040528060258152602001610f54602591396002600061077161085d565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff610aab16565b600061045b6107b561085d565b848461094d565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6107ef61085d565b6000546001600160a01b03908116911614610851576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61085a81610d91565b50565b3390565b6001600160a01b0383166108a65760405162461bcd60e51b8152600401808060200182810382526024815260200180610e996024913960400191505060405180910390fd5b6001600160a01b0382166108eb5760405162461bcd60e51b8152600401808060200182810382526022815260200180610fbc6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166109925760405162461bcd60e51b8152600401808060200182810382526025815260200180610e746025913960400191505060405180910390fd5b6001600160a01b0382166109d75760405162461bcd60e51b8152600401808060200182810382526023815260200180610f316023913960400191505060405180910390fd5b610a1a81604051806060016040528060268152602001610f0b602691396001600160a01b038616600090815260016020526040902054919063ffffffff610aab16565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610a4f908263ffffffff610b4216565b6001600160a01b0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008184841115610b3a5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610aff578181015183820152602001610ae7565b50505050905090810190601f168015610b2c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610b9c576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b038216610be85760405162461bcd60e51b8152600401808060200182810382526021815260200180610f796021913960400191505060405180910390fd5b610c2b81604051806060016040528060228152602001610f9a602291396001600160a01b038516600090815260016020526040902054919063ffffffff610aab16565b6001600160a01b038316600090815260016020526040902055600354610c57908263ffffffff610e3116565b6003556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6001600160a01b038216610cfa576040805162461bcd60e51b815260206004820152601f60248201527f42455032303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600354610d0d908263ffffffff610b4216565b6003556001600160a01b038216600090815260016020526040902054610d39908263ffffffff610b4216565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b038116610dd65760405162461bcd60e51b8152600401808060200182810382526026815260200180610ebd6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000610b9c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610aab56fe42455032303a207472616e736665722066726f6d20746865207a65726f206164647265737342455032303a20617070726f76652066726f6d20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737342455032303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636542455032303a207472616e7366657220616d6f756e7420657863656564732062616c616e636542455032303a207472616e7366657220746f20746865207a65726f206164647265737342455032303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f42455032303a206275726e2066726f6d20746865207a65726f206164647265737342455032303a206275726e20616d6f756e7420657863656564732062616c616e636542455032303a20617070726f766520746f20746865207a65726f2061646472657373a265627a7a7231582025416cdbf9b945005934d675f191045f10aa19e01a092d62f0408f9bb68dcccc64736f6c63430005100032"
// DeployBEP20Token deploys a new Ethereum contract, binding an instance of BEP20Token to it. // DeployBEP20Token deploys a new Ethereum contract, binding an instance of BEP20Token to it.
func DeployBEP20Token(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *BEP20Token, error) { func DeployBEP20Token(auth *bind.TransactOpts, backend bind.ContractBackend, name_ string, symbol_ string, totalSupply_ *big.Int, decimals_ uint8, owner_ common.Address) (common.Address, *types.Transaction, *BEP20Token, error) {
parsed, err := abi.JSON(strings.NewReader(BEP20TokenABI)) parsed, err := abi.JSON(strings.NewReader(BEP20TokenABI))
if err != nil { if err != nil {
return common.Address{}, nil, nil, err return common.Address{}, nil, nil, err
} }
address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(BEP20TokenBin), backend) address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(BEP20TokenBin), backend, name_, symbol_, totalSupply_, decimals_, owner_)
if err != nil { if err != nil {
return common.Address{}, nil, nil, err return common.Address{}, nil, nil, err
} }
...@@ -2381,7 +2381,7 @@ func (_Ownable *OwnableFilterer) ParseOwnershipTransferred(log types.Log) (*Owna ...@@ -2381,7 +2381,7 @@ func (_Ownable *OwnableFilterer) ParseOwnershipTransferred(log types.Log) (*Owna
const SafeMathABI = "[]" const SafeMathABI = "[]"
// SafeMathBin is the compiled bytecode used for deploying new contracts. // SafeMathBin is the compiled bytecode used for deploying new contracts.
var SafeMathBin = "0x60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a7231582014d153f6b8d9f2ffce41ada85af7f4fd578c027480fe15c51aa8363b7a71e4e164736f6c63430005100032" var SafeMathBin = "0x60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a723158206928e77ad1c66c3c933485749c27b8dfb6b4722468e9fe79228443c548dc39ef64736f6c63430005100032"
// DeploySafeMath deploys a new Ethereum contract, binding an instance of SafeMath to it. // DeploySafeMath deploys a new Ethereum contract, binding an instance of SafeMath to it.
func DeploySafeMath(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *SafeMath, error) { func DeploySafeMath(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *SafeMath, error) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment