callContract

open override fun callContract(call: Call, blockTag: BlockTag): HttpRequest<FeltArray>

Samples

import com.swmansion.starknet.data.selectorFromName
import com.swmansion.starknet.data.types.*
import com.swmansion.starknet.provider.exceptions.RequestFailedException
import com.swmansion.starknet.provider.exceptions.RpcRequestFailedException
import com.swmansion.starknet.provider.rpc.JsonRpcProvider
import com.swmansion.starknet.service.http.HttpResponse
import com.swmansion.starknet.service.http.HttpService
import org.junit.jupiter.api.AfterAll
import org.junit.jupiter.api.Assertions.*
import org.junit.jupiter.api.BeforeAll
import org.junit.jupiter.api.Test
import org.mockito.kotlin.*
import starknet.utils.DevnetClient
import java.nio.file.Paths
fun main() { 
   //sampleStart 
   val call = Call(
    contractAddress = balanceContractAddress,
    entrypoint = "get_balance",
    calldata = emptyList(),
)

val request = provider.callContract(
    call = call,
    blockTag = BlockTag.LATEST,
)
val response = request.send()
val balance = response.first()

val expectedBalance =
    provider.getStorageAt(balanceContractAddress, selectorFromName("balance"), BlockTag.LATEST).send()

assertEquals(expectedBalance, balance) 
   //sampleEnd
}

open override fun callContract(call: Call, blockHash: Felt): HttpRequest<FeltArray>

Samples

import com.swmansion.starknet.data.selectorFromName
import com.swmansion.starknet.data.types.*
import com.swmansion.starknet.provider.exceptions.RequestFailedException
import com.swmansion.starknet.provider.exceptions.RpcRequestFailedException
import com.swmansion.starknet.provider.rpc.JsonRpcProvider
import com.swmansion.starknet.service.http.HttpResponse
import com.swmansion.starknet.service.http.HttpService
import org.junit.jupiter.api.AfterAll
import org.junit.jupiter.api.Assertions.*
import org.junit.jupiter.api.BeforeAll
import org.junit.jupiter.api.Test
import org.mockito.kotlin.*
import starknet.utils.DevnetClient
import java.nio.file.Paths
fun main() { 
   //sampleStart 
   val call = Call(
    contractAddress = balanceContractAddress,
    entrypoint = "get_balance",
    calldata = emptyList(),
)
val blockHash = provider.getBlockHashAndNumber().send().blockHash

val request = provider.callContract(
    call = call,
    blockHash = blockHash,
)
val response = request.send()
val balance = response.first()

val expectedBalance =
    provider.getStorageAt(balanceContractAddress, selectorFromName("balance"), BlockTag.LATEST).send()

assertEquals(expectedBalance, balance) 
   //sampleEnd
}

open override fun callContract(call: Call, blockNumber: Int): HttpRequest<FeltArray>

Samples

import com.swmansion.starknet.data.selectorFromName
import com.swmansion.starknet.data.types.*
import com.swmansion.starknet.provider.exceptions.RequestFailedException
import com.swmansion.starknet.provider.exceptions.RpcRequestFailedException
import com.swmansion.starknet.provider.rpc.JsonRpcProvider
import com.swmansion.starknet.service.http.HttpResponse
import com.swmansion.starknet.service.http.HttpService
import org.junit.jupiter.api.AfterAll
import org.junit.jupiter.api.Assertions.*
import org.junit.jupiter.api.BeforeAll
import org.junit.jupiter.api.Test
import org.mockito.kotlin.*
import starknet.utils.DevnetClient
import java.nio.file.Paths
fun main() { 
   //sampleStart 
   val currentNumber = provider.getBlockNumber().send().value

val call = Call(
    contractAddress = balanceContractAddress,
    entrypoint = "get_balance",
    calldata = emptyList(),
)
val request = provider.callContract(
    call = call,
    blockNumber = currentNumber,
)
val response = request.send()
val balance = response.first()

val expectedBalance =
    provider.getStorageAt(balanceContractAddress, selectorFromName("balance"), BlockTag.LATEST).send()

assertEquals(expectedBalance, balance) 
   //sampleEnd
}

open override fun callContract(call: Call): HttpRequest<FeltArray>

Calls a contract deployed on Starknet.

Calls a contract deployed on Starknet in the latest block.

Parameters

call

a call to be made

Throws

RequestFailedException