thor-devkit Transaction build

by favo

HTML

<script src="https://unpkg.com/@vechain/connex@2"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/index.min.js"></script>

<script>
  async function runTest () {
    try {
      document.getElementById('debug').innerHTML = 'Starting Transaction'
      const txId = await testTransfer()
      document.getElementById('debug').innerHTML = `Tx ${txId}`
    }
    catch (err) {
      document.getElementById('debug').innerHTML = err.message
    }
  }
</script>

<center>
  <div id="debug"></div>
  <button onClick="runTest()">Test Transfer</button>
</center>

CSS

* {
  font-family: Courier New;
}

button, div {
  padding: 1rem;
}

JavaScript

const delegateUrl = 'https://sponsor-testnet.vechain.energy/by/1'
const to = '0xac7e94b47f53e97ac46323c7f862ec97237489b1'
const comment = 'Test Transfer with Delegation'

const clauses = [{ 
  to,
  value: 1 + '0'.repeat(18)
}]

const connex = new Connex({
  node: 'https://testnet.veblocks.net/',
  network: 'test'
})


async function testTransfer () {
  const transaction = new Transaction({
    chainTag: Number.parseInt(connex.thor.genesis.id.slice(-2), 16),
    blockRef: connex.thor.status.head.id.slice(0, 18),
    expiration: 32,
    clauses,
    gas: connex.thor.genesis.gasLimit,
    gasPriceCoef: 128,
    dependsOn: null,
    nonce: +new Date(),
    reserved: {
      features: 1 // enables fee delegation
    }
  })

  const signingHash = transaction.signingHash()

  const originSignature = secp256k1.sign(signingHash, Buffer.from(wallet.privateKey.slice(2), 'hex'))
  const signatures = [originSignature]
  
alert(originSignature)
}