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 8 months 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   8 months ago Report
Votes Newest

Answers

11K Views
0 Answers
8 months ago
8 months ago
Tags