All Downloads are FREE. Search and download functionalities are using the official Maven repository.

tech.pylons.lib.core.ICore.kt Maven / Gradle / Ivy

package tech.pylons.lib.core
import tech.pylons.lib.types.*
import tech.pylons.lib.types.tx.Trade
import tech.pylons.lib.types.tx.item.Item
import tech.pylons.lib.types.tx.recipe.Recipe

@ExperimentalUnsignedTypes
interface ICore {
    companion object {
        var current : ICore? = null
            private set
    }

    val userData : UserData
    val lowLevel : ILowLevel
    var engine: IEngine
    var userProfile: MyProfile?
    var sane : Boolean
    var started : Boolean
    var suspendedAction : String?
    var statusBlock : StatusBlock
    var onWipeUserData : (() -> Unit)?

    /**
     * Serializes persistent user data as a JSON string. All wallet apps will need to take care of calling
     * backupUserData() and storing the results in local storage on their own.
     */
    fun backupUserData () : String?

    fun setProfile (myProfile: MyProfile)

    fun forceKeys (keyString : String, address : String)

    fun dumpKeys () : List

    fun updateStatusBlock ()

    fun use() : ICore

    fun start (userJson : String)

    var onCompletedOperation : (() -> Unit)?

    fun isReady () : Boolean {
        return sane && started
    }

    fun getProfile (addr : String?) : Profile?

    fun applyRecipe (recipe : String, cookbook : String, itemInputs : List, paymentId: String = "") : Transaction

    fun batchCreateCookbook (ids : List, names : List, developers : List, descriptions : List, versions : List,
                             supportEmails : List, costsPerBlock : List) : List

    fun batchCreateRecipe (names : List, cookbooks : List, descriptions : List,
                                    blockIntervals : List, coinInputs: List, itemInputs : List,
                                    outputTables : List, outputs : List, extraInfos: List) : List

    fun batchDisableRecipe (recipes : List) : List

    fun batchEnableRecipe (recipes : List) : List

    fun batchUpdateCookbook (names : List, developers : List, descriptions : List, versions : List,
                             supportEmails : List, ids : List) : List

    fun batchUpdateRecipe (ids : List, names : List, cookbooks : List, descriptions : List,
                           blockIntervals : List, coinInputs: List, itemInputs : List,
                           outputTables : List, outputs : List, extraInfos: List) : List

    fun cancelTrade(tradeId : String) : Transaction

    fun checkExecution(id : String, payForCompletion : Boolean) : Transaction

    fun createTrade (coinInputs: List, itemInputs : List,
                     coinOutputs : List, itemOutputs : List,
                     extraInfo : String) : Transaction

    fun fulfillTrade(tradeId : String, itemIds : List, paymentId: String = "") : Transaction

    fun getCookbooks () : List

    fun getPendingExecutions () : List

    fun getPylons (q : Long) : Transaction

    fun getRecipes () : List

    fun getTransaction(txHash : String): Transaction

    fun googleIapGetPylons (productId: String, purchaseToken : String, receiptData : String,
                            signature : String) : Transaction

    fun newProfile (name : String, kp : PylonsSECP256K1.KeyPair? = null) : Transaction

    fun sendCoins (coins : String, receiver : String) : Transaction

    fun setItemString (itemId : String, field : String, value : String) : Transaction

    fun walletServiceTest(string: String): String

    fun walletUiTest() : String

    fun wipeUserData ()

    fun listCompletedExecutions () : List

    fun listTrades () : List

    fun buildJsonForTxPost(msg: String, signComponent: String, accountNumber: Long, sequence: Long, pubkey: PylonsSECP256K1.PublicKey, gas: Long) : String

    fun getRecipe(recipeId: String): Recipe?

    fun getRecipesByCookbook(cookbookId: String): List

    fun getRecipesBySender() : List

    fun getTrade(tradeId: String) : Trade?

    fun getItem(itemId: String): Item?

    fun listItems() : List

    fun listItemsBySender(sender: String?) : List

    fun listItemsByCookbookId(cookbookId: String?): List

    fun getCookbook(cookbookId: String): Cookbook?

    fun getExecution(executionId: String): Execution?
    /**
     * Returns the on-chain ID of the recipe with the cookbook and name provided
     */
    fun getRecipeIdFromCookbookAndName(cookbook: String, name: String) : String?
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy