Skip to content

Instantly share code, notes, and snippets.

View kushti's full-sized avatar

Alexander Chepurnoy kushti

View GitHub Profile
ErgoTree(16,WrappedArray(IntConstant(1), IntConstant(0), IntConstant(1), IntConstant(0), IntConstant(0), LongConstant(1), LongConstant(0), LongConstant(1000), IntConstant(2), ConstantNode(Coll(-62,41,-52,18,-61,-101,120,-5,-103,-33,58,-128,51,40,-14,-71,-74,-25,-2,66,-80,-46,95,54,-45,-4,9,32,121,-50,-116,1),Coll[SByte$])),Right(BlockValue(WrappedArray(ValDef(1,WrappedArray(),MethodCall(Self$(167),SMethod(SBox,tokens,(SBox) => Coll[(Coll[SByte$],SLong$)],8,FixedCost(JitCost(15)),MethodIRInfo(Some(<function1>),None,None),Some(OperationInfo(Some(PropertyCall$(219)),Secondary tokens,ArrayBuffer(ArgInfo(this,this instance)))),None),WrappedArray(),Map())), ValDef(2,WrappedArray(),ByIndex(ValUse(1,Coll[(Coll[SByte$],SLong$)]),ConstantPlaceholder(0,SInt$),None)), ValDef(3,WrappedArray(),SelectField(ValUse(2,(Coll[SByte$],SLong$)),2)), ValDef(4,WrappedArray(),ByIndex(Outputs$(165),ConstantPlaceholder(1,SInt$),None)), ValDef(5,WrappedArray(),MethodCall(ValUse(4,SBox),SMethod(SBox,tokens,(SBox) => Coll[(Coll[SByte$],SL
{
// ===== Contract Information ===== //
// Name: Phoenix HodlCoin Bank
// Description: Contract for the bank box of the HodlCoin protocol.
// Version: 1.0.0
// Author: Luca D'Angelo ([email protected]), MGPai
// ===== Box Contents ===== //
// Tokens
@kushti
kushti / AdaptiveSimulator.scala
Created January 30, 2023 11:41
EIP-37 DAA simulator
package org.ergoplatform.tools
import org.ergoplatform.mining.difficulty.{DifficultyAdjustment, RequiredDifficulty}
import org.ergoplatform.modifiers.history.header.Header
import org.ergoplatform.settings.{Args, ErgoSettings, NetworkType}
import java.util.concurrent.TimeUnit
import scala.collection.mutable
import scala.concurrent.duration.FiniteDuration
import scala.util.Random
@kushti
kushti / FromSnapshot.scala
Created January 8, 2023 19:19
fromSnapshot functions removed from UtxoState (not used now)
def fromSnapshot(prover: BatchAVLProver[Digest32, HF],
settings: ErgoSettings) = {
val stateDir = ErgoState.stateDir(settings)
stateDir.mkdirs()
val constants = StateConstants(settings)
val store = new LDBVersionedStore(stateDir, initialKeepVersions = constants.keepVersions)
val version = store.get(bestVersionKey).map(w => bytesToVersion(w))
.getOrElse(ErgoState.genesisStateVersion)
val persistentProver: PersistentBatchAVLProver[Digest32, HF] = {
@kushti
kushti / light.cong
Last active February 3, 2022 21:53
ergo {
node {
keepVersions = 32
}
}
scorex {
network {
maxConnections = 10
}
object LeifHelp extends App {
val etBytes = Base16.decode("0008cd03e98b0082050a0878b6d1136f2d8cf5e24f7b6d025b2961bffaf5ca3a537a4f52").get
val v = Value.liftByteArray(etBytes)
val bs = ValueSerializer.serialize(v)
println("bs: " + Base16.encode(bs))
}
def reemissionBoxProp(s: MonetarySettings): ErgoTree = {
val rewardOut = ByIndex(Outputs, IntConstant(0))
val heightCorrect = EQ(boxCreationHeight(rewardOut), Height)
val heightIncreased = GT(Height, boxCreationHeight(Self))
val validPeriod = GE(Height, IntConstant(2080800))
val coinsToIssue = s.oneEpochReduction // 3 ERG
val correctCoinsIssued = EQ(coinsToIssue, Minus(ExtractAmount(Self), ExtractAmount(rewardOut)))
val sponsored = GT(ExtractAmount(rewardOut), ExtractAmount(Self))
package org.ergoplatform.wallet.serialization
import org.ergoplatform.{ErgoLikeTransactionSerializer, JsonCodecs}
import scorex.util.encode.Base16
object TransactionParser extends App {
val bytes = Base16.decode("...").get
val tx = ErgoLikeTransactionSerializer.fromBytes(bytes)
JsonCodecsWrapper.ergoLikeTransactionDecoder.decodeJson(j)
object MiningAddresses extends App {
val address = "9fAuYCJ9pCfL8cNn2nsoUhYqmjkjP78Y2KzSptu769nYHGSXVir"
val enc = new ErgoAddressEncoder(ErgoAddressEncoder.MainnetNetworkPrefix)
val addr = enc.fromString(address).get.asInstanceOf[P2PKAddress]
val script = ErgoScriptPredef.rewardOutputScript(720, addr.pubkey)
println(Pay2SAddress(script)(enc))
}
object ValueEncoder extends App {
val pd = ErgoAddressEncoder
.apply(ErgoAddressEncoder.MainnetNetworkPrefix)
.fromString("9gmNsqrqdSppLUBqg2UzREmmivgqh1r3jmNcLAc53hk3YCvAGWE")
.get
.asInstanceOf[P2PKAddress]
.pubkey
val s = SigmaPropConstant(pd)