Skip to content

Commit

Permalink
feat(evm/thorchain): use depositWithExpiry for regular transfer (#3266)
Browse files Browse the repository at this point in the history
  • Loading branch information
Milerius authored Jun 26, 2023
1 parent 1542d1e commit 84375dd
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 5 deletions.
5 changes: 4 additions & 1 deletion src/THORChain/Swap.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -257,7 +257,6 @@ SwapBundled SwapBuilder::buildEth(uint256_t amount, const std::string& memo) {
input.set_to_address(*mRouterAddress);
if (!toTokenId.empty()) {
if (!mExpirationPolicy) {
std::cout << "here"<< std::endl;
auto now = std::chrono::system_clock::now();
auto in_15_minutes = now + std::chrono::minutes(15);
mExpirationPolicy = std::chrono::duration_cast<std::chrono::seconds>(in_15_minutes.time_since_epoch()).count();
Expand All @@ -273,6 +272,10 @@ SwapBundled SwapBuilder::buildEth(uint256_t amount, const std::string& memo) {
func.encode(payload);
transfer.set_data(payload.data(), payload.size());
Data amountData = store(uint256_t(0));
// if tokenId is set to 0x0000000000000000000000000000000000000000 this means we are sending ethereum and transfer amount also need to be set
if (toTokenId == "0x0000000000000000000000000000000000000000") {
amountData = store(uint256_t(amount));
}
transfer.set_amount(amountData.data(), amountData.size());
} else {
input.set_to_address(mVaultAddress);
Expand Down
11 changes: 7 additions & 4 deletions tests/chains/Cosmos/THORChain/SwapTests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -526,6 +526,7 @@ TEST(THORChainSwap, SwapErc20Rune) {
TEST(THORChainSwap, SwapAvaxBnb) {
Proto::Asset fromAsset;
fromAsset.set_chain(static_cast<Proto::Chain>(Chain::AVAX));
fromAsset.set_token_id("0x0000000000000000000000000000000000000000");
Proto::Asset toAsset;
toAsset.set_chain(static_cast<Proto::Chain>(Chain::BNB));
toAsset.set_symbol("BNB");
Expand All @@ -535,21 +536,23 @@ TEST(THORChainSwap, SwapAvaxBnb) {
.fromAddress("0xbB7cF2f05a01DB5394234FE1257D907059edFa66")
.toAddress("bnb16gk7gczst59wy8rnxrqnt3yn6f60uw6ec0w6uv")
.vault("0x3bd92906c60e5843ce01b2dc54e6dc3575b5215a")
.router("0x8f66c4ae756bebc49ec8b81966dd8bba9f127549")
.fromAmount("150000000000000000")
.toAmountLimit("297039")
.expirationPolicy(1775669796)
.affFeeAddress("t")
.affFeeRate("0")
.build();
ASSERT_EQ(errorCode, 0);
ASSERT_EQ(error, "");
EXPECT_EQ(hex(out), "0a010012010018012201002a0100422a307833626439323930366336306535383433636530316232646335346536646333353735623532313561524d0a4b0a080214e8348c4f0000123f3d3a424e422e424e423a626e623136676b3767637a73743539777938726e7872716e7433796e36663630757736656330773675763a3239373033393a743a30");
EXPECT_EQ(hex(out), "0a010012010018012201002a0100422a3078386636366334616537353662656263343965633862383139363664643862626139663132373534395294023291020a080214e8348c4f000012840244bc937b0000000000000000000000003bd92906c60e5843ce01b2dc54e6dc3575b5215a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000214e8348c4f000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000069d69224000000000000000000000000000000000000000000000000000000000000003f3d3a424e422e424e423a626e623136676b3767637a73743539777938726e7872716e7433796e36663630757736656330773675763a3239373033393a743a3000");

auto tx = Ethereum::Proto::SigningInput();
ASSERT_TRUE(tx.ParseFromArray(out.data(), (int)out.size()));

// check fields
EXPECT_EQ(tx.to_address(), "0x3bd92906c60e5843ce01b2dc54e6dc3575b5215a");
ASSERT_FALSE(tx.transaction().has_contract_generic());
EXPECT_EQ(tx.to_address(), "0x8f66c4ae756bebc49ec8b81966dd8bba9f127549");
ASSERT_TRUE(tx.transaction().has_contract_generic());

EXPECT_EQ(hex(TW::data(tx.private_key())), "");

Expand All @@ -570,7 +573,7 @@ TEST(THORChainSwap, SwapAvaxBnb) {
// sign and encode resulting input
Ethereum::Proto::SigningOutput output;
ANY_SIGN(tx, TWCoinTypeAvalancheCChain);
EXPECT_EQ(hex(output.encoded()), "02f8b682a86a0584773594008505d21dba008301a90a943bd92906c60e5843ce01b2dc54e6dc3575b5215a880214e8348c4f0000b83f3d3a424e422e424e423a626e623136676b3767637a73743539777938726e7872716e7433796e36663630757736656330773675763a3239373033393a743a30c001a06546e903b35a6a3704e2692cc80ecf49901edb9586fd28f5e084a1f334bad455a0277c2e122948df3b8efce3f7f2b73d5bc1f96c80bfbe5a45fe0914dc6fce5843");
EXPECT_EQ(hex(output.encoded()), "02f9017c82a86a0584773594008505d21dba008301a90a948f66c4ae756bebc49ec8b81966dd8bba9f127549880214e8348c4f0000b9010444bc937b0000000000000000000000003bd92906c60e5843ce01b2dc54e6dc3575b5215a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000214e8348c4f000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000069d69224000000000000000000000000000000000000000000000000000000000000003f3d3a424e422e424e423a626e623136676b3767637a73743539777938726e7872716e7433796e36663630757736656330773675763a3239373033393a743a3000c080a0a794b7cd86242df0f69bfc2555adec7841ad1f3a02e478be0d63571da8d41f20a06cd214b052d2a2aee598c2d3d57a972979e4c49a447c52828657101e9ad39737");
// https://viewblock.io/thorchain/tx/8A29B132443BF1B0A0BD3E00F8155D10FEEEC7737BDC912C4A1AFB0A52E4FD4F
// https://snowtrace.io/tx/0x8A29B132443BF1B0A0BD3E00F8155D10FEEEC7737BDC912C4A1AFB0A52E4FD4F
// https://binance.mintscan.io/txs/9D250C8BAC8205B942A597AFB345045439A55CAB8DD588B75870D4E47D751C16
Expand Down

0 comments on commit 84375dd

Please sign in to comment.