% Explorer > Ef8W1vCpA1tr9xr6QSXSxcVSdn1Sm7SYX_PCWQdClaWhales

Contract

AddressWhales Nominators #1
ChainMasterchain
Contract Type👍 Verfied source
Contract Code HashYJe2SjudtSamsmSXr+rj8iSo9jnTe2U01G3yH+BYnCE=
Address #0Ef8zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM0vF
Address #1EQCkR1cGmnsE45N4K0otPl5EnxnRakmGqeJUNua5fkWhales

verifier.ton.org verification

View code

Source Code

(int) equal_slices (slice s1, slice s2) asm "SDEQ";

() recv_internal(cell in_msg_cell, slice in_msg) {
  
  ;; Parse message
  var cs = in_msg_cell.begin_parse();
  var flags = cs~load_uint(4);  ;; int_msg_info$0 ihr_disabled:Bool bounce:Bool bounced:Bool
  slice s_addr = cs~load_msg_addr();

  ;; Parse data
  var ds = get_data().begin_parse();
  slice address_0 = ds~load_msg_addr();
  slice address_1 = ds~load_msg_addr();
  ds~skip_bits(64);
  ds.end_parse();

  ;; Resolve addresses address
  slice src = null();
  slice dst = null();
  if (equal_slices(s_addr, address_0)) {
        src = address_0;
        dst = address_1;
  } elseif (equal_slices(s_addr, address_1)) {
        src = address_1;
        dst = address_0;
  }

  ;; Bounce while keeping storage fee on unknown
  ;; Useful fro deploy
  if (null?(src)) {
      raw_reserve(1000000000, 2);
      var msg = begin_cell()
        .store_uint(0x10, 6)
        .store_slice(s_addr)
        .store_grams(0)
        .store_uint(0, 1 + 4 + 4 + 64 + 32 + 1 + 1)
      .end_cell();
      send_raw_message(msg, 128);
      return ();
  }

  ;; Process messages
  raw_reserve(1000000000, 2);
  var msg = begin_cell()
    .store_uint(flags, 4)
    .store_uint(0, 2)
    .store_slice(dst)
    .store_grams(0)
    .store_uint(0, 1 + 4 + 4 + 64 + 32 + 1);

  ;; Content
  if(msg.builder_bits() + 1 + in_msg.slice_bits() > 1023) {
    msg = msg.store_uint(1,1)
             .store_ref(begin_cell().store_slice(in_msg).end_cell());
  } else {
    msg = msg.store_uint(0,1)
             .store_slice(in_msg);
  }

  ;; Send message
  send_raw_message(msg.end_cell(), 128);
}

() recv_external(slice in_msg) impure {
    ;; Do not accept external messages
    throw(72);
}

Disassembled Code

SETCP0
(:methods
  recv_internal: 
    s0 s1 XCHG
    CTOS
    4 LDU
    LDMSGADDR
    s0 POP
    c4 PUSH
    CTOS
    LDMSGADDR
    LDMSGADDR
    64 PUSHINT
    SDSKIPFIRST
    ENDS
    PUSHNULL
    PUSHNULL
    s4 s3 PUSH2
    SDEQ
    <{
      2DROP
    }> PUSHCONT
    <{
      s4 s2 PUSH2
      SDEQ
      <{
        2DROP
        s0 s1 XCHG
      }> PUSHCONT
      <{
        2 2 BLKDROP2
      }> PUSHCONT
      IFELSE
    }> PUSHCONT
    IFELSE
    s0 s1 XCHG
    ISNULL
    <{
      s1 s3 XCHG
      3 BLKDROP
      1000000000 PUSHINT
      2 PUSHINT
      RAWRESERVE
      0 PUSHINT
      16 PUSHINT
      NEWC
      6 STU
      ROT
      STSLICER
      s1 PUSH
      STGRAMS
      107 STU
      ENDC
      7 PUSHPOW2
      SENDRAWMSG
    }> PUSHCONT
    IFJMP
    s1 POP
    1000000000 PUSHINT
    2 PUSHINT
    RAWRESERVE
    0 PUSHINT
    s0 s2 PUXC
    NEWC
    4 STU
    s1 s3 XCHG
    2 STU
    s0 s1 XCHG
    STSLICER
    s1 PUSH
    STGRAMS
    106 STU
    s0 PUSH
    BBITS
    INC
    s2 PUSH
    SBITS
    ADD
    10 PUSHPOW2DEC
    GREATER
    <{
      NEWC
      ROT
      STSLICER
      ENDC
      1 PUSHINT
      ROT
      1 STU
      STREF
    }> IFREFELSEREF
    ENDC
    7 PUSHPOW2
    SENDRAWMSG
    0 PUSHINT
    s0 s1 XCHG
    1 STU
    s0 s1 XCHG
    STSLICER

  recv_external: 
    s0 POP
    72 THROW
) 19 DICTPUSHCONST
DICTIGETJMPZ
11 THROWARG

Serialized Code

te6cckEBBgEArAABFP8A9KQT9LzyyAsBAgEgAgMC9NIB0NMD+kAw7UTQ+kD6QIBA1yHRbW1TQ8cFkVubU0LHBZJbAZJsIuLiAW6OHxNfA4IQO5rKAHL7AnCAEMjLBVjPFiH6AstqyYMG+wDgMYIQO5rKAHL7AnBSA8jLAxPLAQHPFiH6AstpIM8xpCLXSaCECbzjD8mDBvsABAUACvIw8sBIABTIWM8WyXFYywDMAA5wAcsAAc8W17F+lQ==

Serialized Data

te6cckEBAQEATQAAlZ/mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZnACkR1cGmnsE45N4K0otPl5EnxnRakmGqeJUNua5fkWhav41vJCARXlBj8BbRk=

Code Cells

x{FF00F4A413F4BCF2C80B}
 x{2_}
  x{D201D0D303FA4030ED44D0FA40FA408040D721D16D6D5343C705915B9B5342C705925B01926C22E2E2016E8E1F135F0382103B9ACA0072FB02708010C8CB0558CF1621FA02CB6AC98306FB00E03182103B9ACA0072FB02705203C8CB0313CB0101CF1621FA02CB6920CF31A422D749A08409BCE30FC98306FB00}
   x{C858CF16C97158CB00CC}
   x{7001CB0001CF16}
  x{F230F2C048}

Data Cells

x{9FE6666666666666666666666666666666666666666666666666666666666666667002911D5C1A69EC138E4DE0AD28B4F979127C6745A9261AA78950DB9AE5F91685ABF8D6F2420115E506_}