ARG = [ int256, # 1 - Hashtip_1 int256, # 2 - Hashtip_2 int16, # 3 - SignedInt (Free) int256, # 4 - CommittedVal_1 (Free) int256, # 5 - CommittedVal_2 (Free)]#VALID(ARG) checks that it isn't 000...000ADDRESS = SHA256(ARG[1] CAT ARG[2])CONDITION = VALID(ARG[4]) && VALID(ARG[5]) && ENTRENCHED(ARG[4]) && ENTRENCHED(ARG[5]) RETURN = SHA256(ARG[4])^(65535-ARG[3]) == ARG[1] && SHA256(ARG[5])^(ARG[3]) == ARG[2] ? TRUE : FALSE
ARG = [ int256, # 1 - Reference to NN Decider Contract int256, # 2 - Fallback Address int256, # 3 - Decider1_HashTip_1 (Alice) int256, # 4 - Decider1_HashTip_2 (Alice) int256, # 5 - CommittedVal1_1 (Alice) (FREE) int256, # 6 - CommittedVal1_1 (Alice) (FREE) int256, # 7 - Decider2_HashTip_1 (Bob) int256, # 8 - Decider2_HashTip_2 (Bob) int256, # 9 - CommittedVal2_1 (Bob) (FREE) int256, # 10 - CommittedVal2_1 (Bob) (FREE) int256, # 11 - Forward Address (FREE)]ADDRESS = SHA256(ARG[2] CAT ARG[3] CAT ARG[4] CAT ARG[7] CAT ARG[8])CONDITION = ( ENTRENCHED(ARG[5]) && ENTRENCHED(ARG[6]) && BUILD_GET_OBJECT(ARG[1], ARG[3..4], 0, ARG[5...6]) ) || #If Alice has signed 0 ( ENTRENCHED(ARG[9]) && ENTRENCHED(ARG[10]) && BUILD_GET_OBJECT(ARG[1], ARG[7...8], 0, ARG[9...10]) ) || #If Bob has signed 0 ( ENTRENCHED(ARG[2]) && ENTRENCHED(ARG[11]) && ENTRECHED(ARG[5]) && ENTRENCHED(ARG[6]) && #If Alice and Bob have both signed the same non-0 number ( BUILD_GET_OBJECT(ARG[1], ARG[3..4], (CHAINPOS(ARG[11]) - CHAINPOS(ARG[2])), ARG[5...6]) && ( ENTRENCHED(ARG[9]) && ENTRENCHED(ARG[10]) && BUILD_GET_OBJECT(ARG[1], ARG[7...8], (CHAINPOS(ARG[11]) - CHAINPOS(ARG[2])), ARG[9...10]) ) ) ) RETURN = BUILD_GET_OBJECT(ARG[1], ARG[3..4], 0, ARG[5...6]) || BUILD_GET_OBJECT(ARG[1], ARG[7...8], 0, ARG[9...10]) ? ARG[2] : ARG[11]
ARGCOUNT = 3256bit ARG[1] = ALICE_ADDRESS256bit ARG[2] = BOB_ADDRESS256bit ARG[3] = ARBITRARY 256bit numberADDRESS = SHA256(ARG[1] CAT ARG[2] CAT ARG[3])CONDITION = TRUECONNECT_TO = SHA256( SHA256( SHA256(ARG[1] CAT ARG[2] CAT (ARG[3]+1)) CAT ARG[1] CAT 0.00000001 COMB ) CAT ARG[2] CAT 0.00000001 COMB )
ARGCOUNT = 6256bit ARG[1] = Fallback address256bit ARG[2] = Value at the end of the hashing sequence (to sign with the left leg of the decider)256bit ARG[3] = Value at the end of the hashing sequence (to sign with the right leg of the decider)16bit ARG[4] = Int to be signed, a free variable256bit ARG[5] = Value needed to be commited on chain, a free variable (to sign with the left leg of the decider)256bit ARG[6] = Value needed to be commited on chain, a free variable (to sign with the right leg of the decider)ADDRESS = SHA256(ARG[1] CAT ARG[2] CAT ARG[3])CONDITION = ENTRENCHED(ARG[5]) && ENTRENCHED(ARG[6]) && IF_DECIDER_SIGNS_VALUE_USING_PREIMAGES(ARG[2...3], ARG[4], ARG[5...6])CONNECT_TO = GET_COMMIT_AT_INDEX(GET_INDEX_OF_COMMIT(ARG[1]) - ARG[4])
ARGCOUNT = 6256bit ARG[1] = Fallback address256bit ARG[2] = Value at the end of the hashing sequence (to sign with the left leg of the decider)256bit ARG[3] = Value at the end of the hashing sequence (to sign with the right leg of the decider)\256bit ARG[4] = BDecider Lock16bit ARG[5] = Int to be signed, a free variable256bit ARG[6] = Value needed to be commited on chain, a free variable (to sign with the left leg of the decider)256bit ARG[7] = Value needed to be commited on chain, a free variable (to sign with the right leg of the decider)256bit ARG[8] = BDecider Key, a free variableADDRESS = SHA256(ARG[1] CAT ARG[2] CAT ARG[3] CAT ARG[4])CONDITION = ENTRENCHED(ARG[7]) && ENTRENCHED(ARG[8]) && # If both Decider vals have been entrenched IF_DECIDER_SIGNS_VALUE_USING_PREIMAGES(ARG[2...3], ARG[5], ARG[6...7]) && # And the Decider is signed with them IF_BDECIDER_UNLOCKED(ARG[4], 000...000, 000...001, ARG[8]) # And the BDecider is unlockedCONNECT_TO = GET_COMMIT_AT_INDEX(GET_INDEX_OF_COMMIT(ARG[1] - (ARG[4] * BDECIDER_UNLOCK(ARG[4], 000...000, 000...001, ARG[8]))))
ARGS = 2int256 ARG[1] = Addressint256 ARG[2] = Address (Free)ADDRESS = SHA(ARG[1]+1) CONDITION = TRUECONNECT_TO = ARG[2]
ARGS = 2address ARG[1] = Addressint256 ARG[2] = Address (Free)ADDRESS = SHA(ARG[1]+1) CONDITION = TRUECONNECT_TO = (ARG[1] * 0) + ARG[2]
ARGCOUNT = 69 = 23*nARG[1] comb 1 pubkeyARG[2] comb 2 pubkeyARG[3] comb 3 pubkeyARG[4...24] comb 1 sig, freeARG[25...45] comb 2 sig, freeARG[46...66] comb 3 sig, freeARG[67] destination voted by comb 1, freeARG[68] destination voted by comb 2, freeARG[69] destination voted by comb 3, freeADDRESS = SHA256(ARG[1] CAT ARG[2] CAT ARG[3])CONDITION = MAJORITY( ENTRENCHED(ARG[4...24]) && COMBSIGNS(ARG[1], ARG[4...24], ARG[67]), ENTRENCHED(ARG[25...45]) && COMBSIGNS(ARG[2], ARG[25...45], ARG[68]), ENTRENCHED(ARG[46...66]) && COMBSIGNS(ARG[3], ARG[46...66], ARG[69]))CONNECT_TO = BITMAJORITY(ARG[67], ARG[68], ARG[69])WHERE:MAJORITY(a,b,c) = (a && b) || (a && c) || (b && c)BITMAJORITY(a,b,c) = (a & b) | (a & c) | (b & c)
ARGS = 2address ARG[1] = Addressint16 ARG[2] = index_displacement (FREE)ADDRESS = SHA(ARG[1]+1)CONDITION = TRUECONNECT_TO = GET_COMMIT_AT_INDEX(GET_COMMIT_INDEX(ARG[1]) + ARG[2])
ARGS = 2int256 ARG[1] = Addressint256 ARG[2] = Address (Free)ADDRESS = SHA(ARG[1]+1)CONDITION = TRUECONNECT_TO = ARG[2]
ARGCOUNT = 6256bit ARG[1] = Fallback address256bit ARG[2] = Value at the end of the hashing sequence (to sign with the left leg of the decider)256bit ARG[3] = Value at the end of the hashing sequence (to sign with the right leg of the decider)256bit ARG[4] = Value needed to be commited on chain, a free variable (to sign with the left leg of the decider)256bit ARG[5] = Value needed to be commited on chain, a free variable (to sign with the right leg of the decider)ADDRESS = SHA256(ARG[1] CAT ARG[2] CAT ARG[3])CONSTRUCTS = [DECIDER(ARG[2], ARG[3], ARG[4], ARG[5])]CONDITION = ENTRENCHED(ARG[4]) && ENTRENCHED(ARG[5]) && CONSTRUCTS[1]CONNECT_TO = GET_COMMIT_AT_INDEX(GET_INDEX_OF_COMMIT(ARG[1]) - CONSTRUCTS[1]])
ARGCOUNT = 6256bit ARG[1] = Fallback address256bit ARG[2] = Value at the end of the hashing sequence (to sign with the left leg of the decider)256bit ARG[3] = Value at the end of the hashing sequence (to sign with the right leg of the decider)256bit ARG[4] = Value needed to be commited on chain, a free variable (to sign with the left leg of the decider)256bit ARG[5] = Value needed to be commited on chain, a free variable (to sign with the right leg of the decider)CONSTRUCTS = [DECIDER(ARG[2], ARG[3], ARG[4], ARG[5])]ADDRESS = SHA256(ARG[1] CAT CONSTRUCT[1].ADDRESS)CONDITION = ENTRENCHED(ARG[4]) && ENTRENCHED(ARG[5]) && CONSTRUCTS[1]CONNECT_TO = GET_COMMIT_AT_INDEX(GET_INDEX_OF_COMMIT(ARG[1]) - CONSTRUCTS[1]])
rpcuser=XXXXXrpcpassword=XXXXX
btcuser=XXXXXbtcpass=XXXXX
func (a A) X() {}
func (a *A) X() {}
type UtxoTag struct { Height uint64 CommitPositionInBlock uint32 TransactionNum uint16 OutputNum uint16}
KEY: 000000000000006889790000000300000001VALUE: C78B5DBA7CAD6FA564D60BCF3099D0C80FD4CB75CD1A0FB261A568E35B8F6905
KEY: 9999999900688979VALUE: 0000000000000000001103f2f1f374ee8bf36c64949fcd53e47d0174cf063329
KEY: 00000000000000688979VALUE: 010000009500c43a25c624520b5100adf82cb9f9da72fd2447a496bc600b0000000000006cd862370395dedf1da2841ccda0fc489e3039de5f1ccddef0e834991a65600ea6c8cb4db3936a1ae3143991
if !u_config.regtest && curr_height < 481824 { curr_height = 481824 }