name: TestCore
description: Wasm equivalent of built-in TestCore contract
structs: {}
typedefs: {}
state:
  counter: Uint64
  ints: map[String]Int64
  strings: map[String]String

funcs:
  callOnChain:
    params:
      hnameContract: Hname?
      hnameEP: Hname?
      n: Uint64
    results:
      n: Uint64
  checkContextFromFullEP:
    params:
      agentID: AgentID
      caller: AgentID
      chainID: ChainID
      chainOwnerID: AgentID
  claimAllowance:
  doNothing:
  estimateMinStorageDeposit:
  incCounter:
  infiniteLoop:
  init:
    params:
      fail=initFailParam: Int64?
  passTypesFull:
    params:
      address: Address
      agentID: AgentID
      chainID: ChainID
      contractID: AgentID
      hash=Hash: Hash
      hname=Hname: Hname
      hnameZero=Hname-0: Hname
      int64: Int64
      int64Zero=int64-0: Int64
      string: String
      stringZero=string-0: String
  pingAllowanceBack:
  runRecursion:
    params:
      n: Uint64
    results:
      n: Uint64
  sendLargeRequest:
  sendNFTsBack:
  sendToAddress:
  setInt:
    params:
      intValue=intParamValue: Int64
      name=intParamName: String
  spawn:
    params:
      progHash: Hash
  splitFunds:
  splitFundsNativeTokens:
  testBlockContext1:
  testBlockContext2:
  testCallPanicFullEP:
  testCallPanicViewEPFromFull:
  testChainOwnerIDFull:
    results:
      chainOwnerID: AgentID
  testEventLogDeploy:
  testEventLogEventData:
  testEventLogGenericData:
    params:
      counter: Uint64
  testPanicFullEP:
  withdrawFromChain:
    params:
      chainID: ChainID
      baseTokensWithdrawal: Uint64
      gasBudget: Uint64
views:
  checkContextFromViewEP:
    params:
      agentID: AgentID
      chainID: ChainID
      chainOwnerID: AgentID
  fibonacci:
    params:
      n: Uint64
    results:
      n: Uint64
  fibonacciIndirect:
    params:
      n: Uint64
    results:
      n: Uint64
  getCounter:
    results:
      counter: Uint64
  getInt:
    params:
      name=intParamName: String
    results:
      values=this: map[String]Int64
  getStringValue:
    params:
      varName: String
    results:
      vars=this: map[String]String
  infiniteLoopView:
  justView:
  passTypesView:
    params:
      address: Address
      agentID: AgentID
      chainID: ChainID
      contractID: AgentID
      hash=Hash: Hash
      hname=Hname: Hname
      hnameZero=Hname-0: Hname
      int64: Int64
      int64Zero=int64-0: Int64
      string: String
      stringZero=string-0: String
  testCallPanicViewEPFromView:
  testChainOwnerIDView:
    results:
      chainOwnerID: AgentID
  testPanicViewEP:
  testSandboxCall:
    results:
      sandboxCall: String
