Skip to content

Instantly share code, notes, and snippets.

@d1ksim
Last active April 9, 2024 16:53
Show Gist options
  • Save d1ksim/1a915d9c13a1efefe92e2059c3d06465 to your computer and use it in GitHub Desktop.
Save d1ksim/1a915d9c13a1efefe92e2059c3d06465 to your computer and use it in GitHub Desktop.
SmartContract
// abi
[{"inputs":[{"internalType":"contract IERC20","name":"_USDT","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"USDT","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"bps","type":"uint256"}],"name":"calculate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"_ID","type":"uint256"}],"name":"cancelDeal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_ID","type":"uint256"}],"name":"cancelExecute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_seller","type":"address"},{"internalType":"address","name":"_buyer","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_admin1","type":"address"},{"internalType":"address","name":"_admin2","type":"address"},{"internalType":"address","name":"_admin3","type":"address"},{"internalType":"uint256","name":"_adminFee1","type":"uint256"},{"internalType":"uint256","name":"_adminFee2","type":"uint256"},{"internalType":"uint256","name":"_adminFee3","type":"uint256"}],"name":"creatDeal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"dealAdmins","outputs":[{"internalType":"address","name":"admin1","type":"address"},{"internalType":"address","name":"admin2","type":"address"},{"internalType":"address","name":"admin3","type":"address"},{"internalType":"uint256","name":"adminFee1","type":"uint256"},{"internalType":"uint256","name":"adminFee2","type":"uint256"},{"internalType":"uint256","name":"adminFee3","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"dealCancels","outputs":[{"internalType":"bool","name":"admin1","type":"bool"},{"internalType":"bool","name":"admin2","type":"bool"},{"internalType":"bool","name":"admin3","type":"bool"},{"internalType":"uint256","name":"adminVoted","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"deals","outputs":[{"internalType":"address","name":"seller","type":"address"},{"internalType":"address","name":"buyer","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bool","name":"deposited","type":"bool"},{"internalType":"bool","name":"sellerAgreed","type":"bool"},{"internalType":"bool","name":"buerAgreed","type":"bool"},{"internalType":"bool","name":"admin1Agreed","type":"bool"},{"internalType":"bool","name":"admin2Agreed","type":"bool"},{"internalType":"bool","name":"admin3Agreed","type":"bool"},{"internalType":"bool","name":"cancelRequested","type":"bool"},{"internalType":"uint256","name":"score","type":"uint256"},{"internalType":"uint256","name":"adminVotedSucsess","type":"uint256"},{"internalType":"bool","name":"ended","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_ID","type":"uint256"}],"name":"depositDeal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_ID","type":"uint256"}],"name":"executeDeal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"_usdt","type":"address"}],"name":"setUSDT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_ID","type":"uint256"}],"name":"voteCancelDeal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_ID","type":"uint256"}],"name":"voteDeal","outputs":[],"stateMutability":"nonpayable","type":"function"}]
// bytecode
60806040523480156200001157600080fd5b50d380156200001f57600080fd5b50d280156200002d57600080fd5b50604051620018a9380380620018a98339810160408190526200005091620000f9565b33806200007757604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6200008281620000a9565b50600180546001600160a01b0319166001600160a01b039290921691909117905562000134565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156200010c57600080fd5b81516001600160a81b03811681146200012457600080fd5b6001600160a01b03169392505050565b61176580620001446000396000f3fe608060405234801561001057600080fd5b50d3801561001d57600080fd5b50d2801561002a57600080fd5b50600436106100ea5760003560e01c806303988f84146100ef57806304050c60146101a557806323cb0cee146101ba57806331ea1a39146101cd57806350c1b923146101e05780635f9c0f00146101f3578063715018a61461025b5780638da5cb5b146102635780638dfa436314610278578063988bf70a14610299578063a1beb60614610329578063c54e44eb1461033c578063e8f08f921461034f578063e944dd2f14610362578063e987207114610375578063f2fde38b14610388575b600080fd5b6101836100fd366004611493565b600360208190526000918252604090912080546001820154600283015493830154600484015460058501546006909501546001600160a01b0394851696949093169460ff80841694610100850482169462010000810483169463010000008204841694600160201b8304851694600160281b8404811694600160301b909404811693168d565b60405161019c9d9c9b9a999897969594939291906114ac565b60405180910390f35b6101b86101b336600461154a565b61039b565b005b6101b86101c8366004611493565b610560565b6101b86101db366004611493565b6108fa565b6101b86101ee3660046115fc565b6109ac565b610233610201366004611493565b6004602052600090815260409020805460019091015460ff808316926101008104821692620100009091049091169084565b604080519415158552921515602085015290151591830191909152606082015260800161019c565b6101b86109d6565b61026b6109ea565b60405161019c9190611629565b61028b61028636600461163d565b6109f9565b60405190815260200161019c565b6102eb6102a7366004611493565b60056020819052600091825260409091208054600182015460028301546003840154600485015494909501546001600160a01b039384169592841694919093169286565b604080516001600160a01b039788168152958716602087015293909516928401929092526060830152608082015260a081019190915260c00161019c565b6101b8610337366004611493565b610a33565b60015461026b906001600160a01b031681565b6101b861035d366004611493565b610df5565b6101b8610370366004611493565b61100f565b6101b8610383366004611493565b6112d9565b6101b86103963660046115fc565b6113cd565b600280549060006103ab83611675565b91905055508860036000600254815260200190815260200160002060000160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508760036000600254815260200190815260200160002060010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555086600360006002548152602001908152602001600020600201819055508560056000600254815260200190815260200160002060000160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508460056000600254815260200190815260200160002060010160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508360056000600254815260200190815260200160002060020160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550826005600060025481526020019081526020016000206003018190555081600560006002548152602001908152602001600020600401819055508060056000600254815260200190815260200160002060050181905550505050505050505050565b6000818152600360208190526040909120015460ff1680156105945750600081815260036020526040902060040154606411155b80156105b2575060008181526003602052604090206006015460ff16155b80156105d8575060008181526003602081905260409091200154600160301b900460ff16155b6105e157600080fd5b60008181526003602052604090206006015460ff161561060057600080fd5b600081815260036020818152604080842060020154600590925283209091015461062a91906109f9565b6000838152600360209081526040808320600201546005909252822060040154929350909161065991906109f9565b60008481526003602090815260408083206002015460059283905290832090910154929350909161068a91906109f9565b6001546000868152600560205260409081902054905163a9059cbb60e01b81529293506001600160a01b039182169263a9059cbb926106cf921690879060040161168e565b6020604051808303816000875af11580156106ee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071291906116a7565b50600180546000868152600560205260409081902090920154915163a9059cbb60e01b81526001600160a01b039182169263a9059cbb9261075a92911690869060040161168e565b6020604051808303816000875af1158015610779573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061079d91906116a7565b506001546000858152600560205260409081902060020154905163a9059cbb60e01b81526001600160a01b039283169263a9059cbb926107e492911690859060040161168e565b6020604051808303816000875af1158015610803573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082791906116a7565b50600154600085815260036020526040902080546002909101546001600160a01b039283169263a9059cbb921690849086906108649089906116d0565b61086e91906116d0565b61087891906116d0565b6040518363ffffffff1660e01b815260040161089592919061168e565b6020604051808303816000875af11580156108b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d891906116a7565b505050600091825250600360205260409020600601805460ff19166001179055565b60008181526003602081905260409091200154600160301b900460ff161561092157600080fd5b60008181526003602052604090206006015460ff161561094057600080fd5b6000818152600360205260409020546001600160a01b031633148061097e57506000818152600360205260409020600101546001600160a01b031633145b61098757600080fd5b600090815260036020819052604090912001805460ff60301b1916600160301b179055565b6109b4611411565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6109de611411565b6109e86000611443565b565b6000546001600160a01b031690565b6000612710610a0883856116e3565b1015610a1357600080fd5b612710610a2083856116e3565b610a2a91906116fa565b90505b92915050565b60008181526003602081905260409091200154600160301b900460ff1615610a5a57600080fd5b60008181526003602052604090206006015460ff1615610a7957600080fd5b6000818152600360205260409020546001600160a01b031633148015610ab7575060008181526003602081905260409091200154610100900460ff16155b15610afb5760008181526003602081905260408220908101805461ff001916610100179055600401805460329290610af090849061171c565b90915550610df29050565b6000818152600360205260409020600101546001600160a01b031633148015610b3d57506000818152600360208190526040909120015462010000900460ff16155b15610b785760008181526003602081905260408220908101805462ff0000191662010000179055600401805460329290610af090849061171c565b6000818152600560205260409020546001600160a01b03163303610c4a57600081815260036020526040902060050154600210801590610bd25750600081815260036020819052604090912001546301000000900460ff16155b610bdb57600080fd5b6000818152600360205260408120600401805460199290610bfd90849061171c565b90915550506000818152600360205260408120600501805491610c1f83611675565b9091555050600081815260036020819052604090912001805463ff0000001916630100000017905550565b6000818152600560205260409020600101546001600160a01b03163303610d1f57600081815260036020526040902060050154600210801590610ca7575060008181526003602081905260409091200154600160201b900460ff16155b610cb057600080fd5b6000818152600360205260408120600401805460199290610cd290849061171c565b90915550506000818152600360205260408120600501805491610cf483611675565b9091555050600081815260036020819052604090912001805460ff60201b1916600160201b17905550565b6000818152600560205260409020600201546001600160a01b03163303610df257600081815260036020526040902060050154600210801590610d7c575060008181526003602081905260409091200154600160281b900460ff16155b610d8557600080fd5b6000818152600360205260408120600401805460199290610da790849061171c565b90915550506000818152600360205260408120600501805491610dc983611675565b9091555050600081815260036020819052604090912001805460ff60281b1916600160281b1790555b50565b60008181526003602081905260409091200154600160301b900460ff16610e1b57600080fd5b60008181526003602052604090206006015460ff1615610e3a57600080fd5b6000818152600560205260409020546001600160a01b03163303610ece57600081815260046020526040902060010154600210801590610e89575060008181526004602052604090205460ff16155b610e9257600080fd5b6000818152600460205260408120600101805491610eaf83611675565b90915550506000818152600460205260409020805460ff191660011790555b6000818152600560205260409020600101546001600160a01b03163303610f6c57600081815260046020526040902060010154600210801590610f255750600081815260046020526040902054610100900460ff16155b610f2e57600080fd5b6000818152600460205260408120600101805491610f4b83611675565b90915550506000818152600460205260409020805461ff0019166101001790555b6000818152600560205260409020600201546001600160a01b03163303610df257600081815260046020526040902060010154600210801590610fc4575060008181526004602052604090205462010000900460ff16155b610fcd57600080fd5b6000818152600460205260408120600101805491610fea83611675565b90915550506000818152600460205260409020805462ff000019166201000017905550565b60008181526003602081905260409091200154600160301b900460ff1661103557600080fd5b60008181526003602052604090206006015460ff161561105457600080fd5b60008181526004602052604090206001015460021461107257600080fd5b600081815260036020818152604080842060020154600590925283209091015461109c91906109f9565b600083815260036020908152604080832060020154600590925282206004015492935090916110cb91906109f9565b6000848152600360209081526040808320600201546005928390529083209091015492935090916110fc91906109f9565b6001546000868152600560205260409081902054905163a9059cbb60e01b81529293506001600160a01b039182169263a9059cbb92611141921690879060040161168e565b6020604051808303816000875af1158015611160573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118491906116a7565b50600180546000868152600560205260409081902090920154915163a9059cbb60e01b81526001600160a01b039182169263a9059cbb926111cc92911690869060040161168e565b6020604051808303816000875af11580156111eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120f91906116a7565b506001546000858152600560205260409081902060020154905163a9059cbb60e01b81526001600160a01b039283169263a9059cbb9261125692911690859060040161168e565b6020604051808303816000875af1158015611275573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061129991906116a7565b50600180546000868152600360205260409020918201546002909201546001600160a01b039182169263a9059cbb921690849086906108649089906116d0565b6000818152600360205260409020600101546001600160a01b031633146112ff57600080fd5b60008181526003602052604090206006015460ff161561131e57600080fd5b600154600082815260036020526040908190206002015490516323b872dd60e01b815233600482015230602482015260448101919091526001600160a01b03909116906323b872dd906064016020604051808303816000875af1158015611389573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ad91906116a7565b50600090815260036020819052604090912001805460ff19166001179055565b6113d5611411565b6001600160a01b038116611408576000604051631e4fbdf760e01b81526004016113ff9190611629565b60405180910390fd5b610df281611443565b3361141a6109ea565b6001600160a01b0316146109e8573360405163118cdaa760e01b81526004016113ff9190611629565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156114a557600080fd5b5035919050565b6001600160a01b038e811682528d166020820152604081018c90528a15156060820152891515608082015288151560a08201526101a0810188151560c083015287151560e0830152861515610100830152851515610120830152846101408301528361016083015261152361018083018415159052565b9e9d5050505050505050505050505050565b6001600160a81b0381168114610df257600080fd5b60008060008060008060008060006101208a8c03121561156957600080fd5b893561157481611535565b6001600160a01b03908116995060208b01359061159082611535565b908116985060408b0135975060608b0135906115ab82611535565b908116965060808b0135906115bf82611535565b908116955060a08b0135906115d382611535565b999c989b50969995989497969094169560c08601359560e0810135955061010001359350915050565b60006020828403121561160e57600080fd5b813561161981611535565b6001600160a01b03169392505050565b6001600160a01b0391909116815260200190565b6000806040838503121561165057600080fd5b50508035926020909101359150565b634e487b7160e01b600052601160045260246000fd5b6000600182016116875761168761165f565b5060010190565b6001600160a01b03929092168252602082015260400190565b6000602082840312156116b957600080fd5b815180151581146116c957600080fd5b9392505050565b81810381811115610a2d57610a2d61165f565b8082028115828204841417610a2d57610a2d61165f565b60008261171757634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610a2d57610a2d61165f56fea26474726f6e58221220f8b5ca8e07f2455dd78b8f5f711217ce9732c1801a61ad8e7baab0ded40d56f464736f6c63430008120033
import android.content.Context
import android.content.res.AssetManager
import android.util.Log
import com.example.telegramWallet.BuildConfig
import com.google.protobuf.ByteString
import org.tron.trident.abi.datatypes.Address
import org.tron.trident.abi.datatypes.Type
import org.tron.trident.core.ApiWrapper
import org.tron.trident.core.contract.Contract
import org.tron.trident.core.transaction.TransactionBuilder
import org.tron.trident.utils.Numeric
import java.io.BufferedReader
import java.io.InputStream
import java.io.InputStreamReader
fun deployMultiSigContract(ownerAddress: String, privateKey: String, context: Context) {
val wrapper: ApiWrapper = if (BuildConfig.DEBUG) {
ApiWrapper.ofNile(privateKey)
} else {
ApiWrapper(
"hide",
"hide",
privateKey
)
}
val assetManager: AssetManager = context.assets
val byteCode: String = convertInputStreamToString(assetManager.open("bytecode.txt"))
val abi: String = convertInputStreamToString(assetManager.open("abi.txt"))
println(abi)
val cntr: Contract = Contract.Builder()
.setName("MiltiSig")
.setOwnerAddr(ApiWrapper.parseAddress(ownerAddress))
.setOriginAddr(ApiWrapper.parseAddress(ownerAddress))
.setBytecode(ByteString.copyFrom(Numeric.hexStringToByteArray(byteCode)))
.setAbi(abi)
.setOriginEnergyLimit(10000000)
.build()
cntr.wrapper = wrapper
val params: MutableList<Type<*>> = ArrayList()
params.add(Address("TXYZopYRdj2D9XRtbG411XZZ3kM5VkAeBf"))
val builder: TransactionBuilder = cntr.deploy(params)
Log.d("DEPLOY", builder.transaction.toString())
}
private fun convertInputStreamToString(inputStream: InputStream): String {
val stringBuilder = StringBuilder()
val bufferedReader = BufferedReader(InputStreamReader(inputStream))
var line: String?
try {
while (bufferedReader.readLine().also { line = it } != null) {
stringBuilder.append(line)
// stringBuilder.append('\n')
}
} catch (e: Exception) {
e.printStackTrace()
} finally {
try {
inputStream.close()
} catch (e: Exception) {
e.printStackTrace()
}
}
return stringBuilder.toString()
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment