shell script to document migrate process
This commit is contained in:
@@ -1,61 +0,0 @@
|
|||||||
# MigrateCoin protocol
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## ExportCoins tx:
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
vin:
|
|
||||||
|
|
||||||
[ any ]
|
|
||||||
|
|
||||||
vout:
|
|
||||||
|
|
||||||
- amount: {burnAmount}
|
|
||||||
|
|
||||||
script: OP_RETURN "send to ledger {id} {voutsHash}"
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
* ExportCoin is a standard tx which burns coins in an OP_RETURN
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## ImportCoins tx:
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
vin:
|
|
||||||
|
|
||||||
- txid: 0000000000000000000000000000000000000000000000000000000000000000
|
|
||||||
|
|
||||||
idx: 0
|
|
||||||
|
|
||||||
script: CC_EVAL(EVAL_IMPORTCOINS, {momoProof},{exportCoin}) OP_CHECKCRYPTOCONDITION_UNILATERAL
|
|
||||||
|
|
||||||
vout:
|
|
||||||
|
|
||||||
- [ vouts matching voutsHash in exportCoin ]
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
* ImportCoin transaction has no signature
|
|
||||||
|
|
||||||
* ImportCoin is non malleable
|
|
||||||
|
|
||||||
* ImportCoin satisfies tx.IsCoinBase()
|
|
||||||
|
|
||||||
* ImportCoin uses a new opcode which allows a one sided check (no scriptPubKey)
|
|
||||||
|
|
||||||
* ImportCoin must contain CC opcode EVAL_IMPORTCOINS
|
|
||||||
|
|
||||||
* ImportCoin fees are equal to the difference between burnAmount in exportCoins and the sum of outputs.
|
|
||||||
43
migratecoin.sh
Normal file
43
migratecoin.sh
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
# This script makes the neccesary transactions to migrate
|
||||||
|
# coin between 2 assetchains on the same -ac_cc id
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
source=TXSCL
|
||||||
|
target=TXSCL000
|
||||||
|
address="RFw7byY4xZpZCrtkMk3nFuuG1NTs9rSGgQ"
|
||||||
|
amount=1
|
||||||
|
|
||||||
|
# Alias for running cli on source chain
|
||||||
|
cli_source="komodo-cli -ac_name=$source"
|
||||||
|
|
||||||
|
# Raw tx that we will work with
|
||||||
|
txraw=`$cli_source createrawtransaction "[]" "{\"$address\":$amount}"`
|
||||||
|
|
||||||
|
# Convert to an export tx
|
||||||
|
exportData=`$cli_source migrate_converttoexport $txraw $target $amount`
|
||||||
|
exportRaw=`echo $exportData | jq -r .exportTx`
|
||||||
|
exportPayouts=`echo $exportData | jq -r .payouts`
|
||||||
|
|
||||||
|
# Fund
|
||||||
|
exportFundedData=`$cli_source fundrawtransaction $exportRaw`
|
||||||
|
exportFundedTx=`echo $exportFundedData | jq -r .hex`
|
||||||
|
|
||||||
|
# Sign
|
||||||
|
exportSignedData=`$cli_source signrawtransaction $exportFundedTx`
|
||||||
|
exportSignedTx=`echo $exportSignedData | jq -r .hex`
|
||||||
|
|
||||||
|
# Send
|
||||||
|
echo "Sending export tx"
|
||||||
|
$cli_source sendrawtransaction $exportSignedTx
|
||||||
|
|
||||||
|
read -p "Wait for a notarisation to KMD, and then two more notarisations from the target chain, and then press enter to continue"
|
||||||
|
|
||||||
|
# Create import
|
||||||
|
importTx=`$cli_source migrate_createimporttransaction $exportSignedTx $payouts`
|
||||||
|
importTx=`komodo-cli migrate_completeimporttransaction $importTx`
|
||||||
|
|
||||||
|
# Send import
|
||||||
|
komodo-cli -ac_name=$target sendrawtransaction $importTx
|
||||||
Reference in New Issue
Block a user