How to sign a message from Gnosis multisig smart contract wallet? - smartcontracts

I need to generate a signature from a Gnosis multisig wallet. While using the existing signMessage method in Gnosis smart contract, i am not able to retrieve the signature from the transaction receipt logs. I see that signMessage emits an event, but unable to find this in receipt logs.
How can I sign a message and get the hash with multisig wallets? So, that when i decode the signature, i need the signer address to be multisig wallet address.

Related

Is it possible to transfer money without Internal TXNs?

Exactly what I want is this:
I'm transferring money to a contract. The money coming into this contract will be forwarded to the destination address without creating any TXN (that is, anonymously).
I created a contract and the money sent to this contract is sent to the target wallet. In this way, information does not appear in Transaction transactions of the target wallet.
the code i use
receive() external payable {
payable(0x8162Ac860EF729d60C0f3683bfaA0334A3499956).send(msg.value);
}
As pictured (see Transactions)
https://i.stack.imgur.com/OPxH5.png
So far everything is ok. But there is one problem. Transaction appears in Internal TXNs. I want to hide this.
https://i.stack.imgur.com/39nCh.png
What should happen: Money will be transferred to the contract and it will transfer money anonymously without generating any TX belonging to the target wallet.
REQUIRE --->> When the money sent to the contract is sent to the counter wallet, no information will appear in the Transactions and Internal TXNs tab of the counter wallet.
Is it possible to do this? Please tell me what should I do if
possible.
No, this is not possible. Any transfer of a native chain token (BNB in your case of Binance Smart Chain) will appear on an explorer like Etherscan (Bscscan) as an "internal transaction".

Is it necessary to send a share of the newly created token to contract address?

am new to token creation.
I have successfully created my token on bscmainet and claimed all the coins, now I have them in my Metamask wallet.
A lot of tutorials recommend sending part of the supply to the contract address of the token itself. Is this a necessary step?
From what I understood, I will need to provide liquidity on DEX out of my own wallet not from the contract address so what's the point in sending a share to contract address?
Thank you
Sending tokens to the token contract is useful if there's a direct way to buy the tokens through your contract. Example:
function buy() external payable {
uint256 amount = calculateAmount(msg.value);
// send tokens from this contract address to the user
transfer(msg.sender, amount);
}
But if there's no way to retrieve the tokens sent to the contract address (e.g. you're planning to sell them only through exchanges), there's no point of sending them to the contract address.

How can I send an internal message by link from Surf in DeBot?

I follow this instruction to call smart contracts from DeBot using the message argument in the Surf URI:
https://tonlabs.notion.site/For-developers-f347bd4095f74c9d9e2bd313c666905d
It works ok, but it produces external messages. My guess is that the difference is in headers. How should I modify them to send an internal message using the same scheme?
DeBot cannot send internal message.
DeBot have 3 special features:
calling — get-methods of target smart contracts;
calling — external functions of target smart contracts onchain;
invoking — other DeBot in a local environment.
See DeBot Special Features for more details.
Yes, DeBots themselves cannot do it, so people do the following trick:
Pack debot method arguments into payload:
https://github.com/tonlabs/debots/blob/d8111db9eb5d8c42a362a0d34a4dea38f6789eec/accman/AccMan.sol#L257
Run sendTransction with the address of the current DeBot (to) and the address of a wallet (from). The wallet aka smart contract must obviously have sendTransction.
The external message is received by the wallet, and the multisig sends an internal message to the method in payload.
Once the DeBot receives this internal message, it can tunnel them to other smart contracts.
The step can be simplified, so that sendTransction is sent directly to the smart contract which requires internal message by providing the correct payload parameters (method name and params).
I think previous answers are indeed "best practice", but still incorrect. Of course, you CAN make internal messages without any additional Msig. DeBot is a smart-contract too. You just have to do the call like this:
address myDebotAddr = address(this);
IMyDebot(myDebotAddr).myFunction{...}( ... );
DeBot will call his own contract that lies in blockchain. Then in the function myFunction() you should:
have tvm.accept();
do the internal call that you need
Thus the execution of myFunction() will happen in blockchain, not locally.
Still, you will have to add funds to debot balance. So, it's not a "best practice" for widely used DeBots.

Asking about self-destruct in solidity

i have the code in solidity, i'm wondering something: I deploy code for the 0x583... first, i send 1 eth to another account. Before i click withdrawAllMoney, i click destroySmartContract, 1 eth 's automatically send to receiver (this is okie!). But after that, i keep going send the 1 eth from 0x583.. to another account, it still take out eth from 0x583.. but the orther can't receive it.
I'm wondering: when i call the selfdistruct, is the contract real deleted (can't send or recieved...)
Thank you!
when i call the selfdistruct, is the contract real deleted (can't send or recieved...)
selfdestruct() effectively removes the deployed bytecode from the contract address.
In the next block, this (former contract) address will act as a regular address without a smart contract, so it is able to receive tokens and ETH.
But, since it doesn't hold any bytecode anymore, you won't be able to interact with the contract (it's not there anymore).

I have deployed smart contract successfully, after copying the transaction hash to check info of the token created i found nothing on bscscan

I have changed the contract from the drop down menu whether I deploy wrong contract unfortunately its still not showing. I also increased the gas fees. I have tried severally by using different browser and I also used http and https all to no avail
This is one of the transaction hash of the token I created below:
0xbe8e45ca80fae1de52f60addeae7dbdf0ae75778a3e29f185aa628b7faa0bd7f
The transaction shows up correctly on the testnet BSCScan: https://testnet.bscscan.com/tx/0xbe8e45ca80fae1de52f60addeae7dbdf0ae75778a3e29f185aa628b7faa0bd7f
BSCScan distinguishes between the testnet and the mainnet. So a transaction that exists only on testnet, will not show on the mainnet explorer.