Examples: query, "exact match", wildcard*, wild?ard, wild*rd
Fuzzy search: cake~ (finds cakes, bake)
Term boost: "red velvet"^4, chocolate^2
Field grouping: tags:(+work -"fun-stuff")
Escape special characters +-&|!(){}[]^"~*?:\ - e.g. \+ \* \!
Range search: properties.timestamp:[1587729413488 TO *] (inclusive), properties.title:{A TO Z}(excluding A and Z)
Combinations: chocolate AND vanilla, chocolate OR vanilla, (chocolate OR vanilla) NOT "vanilla pudding"
Field search: properties.title:"The Title" AND text
Unanswered
Transaction body for jetton and NFT

i want to know which address is optional because i have define main wallet address many time. this is working example. i want to short this method if possible.
This method is long and i have doubt that i added unnecessary code or method into this. so anyone know that what is unnecessary code here that i have to remove or how we can short this method?

walletAddress : main owner wallet address
toAddress : destination address (transfer to)
nftAddress : NFT address

Using : react js and node js

const forwardPayload = beginCell().
       storeUint(0, 32).
       storeStringTail("UNSTAKED").
       endCell();
   const transferNftBody = beginCell().
       storeUint(0x5fcc3d14, 32). // Opcode for NFT transfer
       storeUint(0, 64). // query_id
       storeAddress(Address.parse(toAddress)). // new_owner
       storeAddress(walletAddress). // response_destination for excesses
       storeBit(0). // we do not have custom_payload
       storeCoins(toNano("0.01")). // forward_amount
       storeBit(1). // we store forward_payload as a reference
       storeRef(forwardPayload). // store forward_payload as a reference
       endCell();
   const internalMessage = beginCell().
       storeUint(0x18, 6). // bounce
       storeAddress(Address.parse(nftAddress)).
       storeCoins(toNano("0.05")).
       storeUint(1, 1 + 4 + 4 + 64 + 32 + 1 + 1). // We store 1 that means we have body as a reference
       storeRef(transferNftBody).
       endCell();


   let toSign = beginCell().
       storeUint(698983191, 32). // subwallet_id | We consider this further
       storeUint(Math.floor(Date.now() / 1e3) + 60, 32). // Transaction expiration time, +60 = 1 minute
       storeUint(seqno, 32). // store seqno
       storeUint(0, 8).
       storeUint(3, 8). // store mode of our internal transaction
       storeRef(internalMessage); // store our internalMessage as a reference

   let signature = sign(toSign.endCell().hash(), keyPair.secretKey); // get the hash of our message to wallet smart contract and sign it to get signature

   let body = beginCell().
       storeBuffer(signature). // store signature
       storeBuilder(toSign). // store our message
       endCell();
   let externalMessage = beginCell().
       storeUint(0b10, 2). // ext_in_msg_info$10
       storeUint(0, 2). // src -> addr_none
       storeAddress(walletAddress). // Destination address
       storeCoins(0). // Import Fee
       storeBit(0). // No State Init
       storeBit(1). // We store Message Body as a reference
       storeRef(body). // Store Message Body as a reference
       endCell();
				
		const result = client.sendFile(externalMessage.toBoc());
  
  
Posted one year ago
  
  

can't get your question. But seems you have a wallet(with secret key) that you want to send the External message to the wallet and let wallet send the request of "Stake" to its Jetton Wallet?

Howard   one year ago Report
Votes Newest

Answers

13K Views
0 Answers
one year ago
one year ago
Tags