SC CODE: Function InitializePrivate() Uint64
01 RETURN 0
End Function
Function NewUser() Uint64
// initialize "signer_id" as a HEX version of SIGNER
01 LET signer_id = (HEX(SIGNER()))
// check if signer exists
05 IF EXISTS(signer_id) THEN GOTO 30
// check if meets minimum depost
07 IF DEROVALUE() < 10000 THEN GOTO 30
// register new user
10 LET signer_id = (HEX(SIGNER()))
11 LET signer_registration = TXID()
12 STORE(signer_id,signer_registration)
// record user_balance
13 LET user_id = (HEX(ADDRESS_STRING(SIGNER())))
14 LET user_bal = 0
15 STORE(user_id,user_bal)
// execute deposit
20 DEPOSIT()
25 RETURN 0
30 RETURN 1
End Function
Function Deposit() Uint64
// init signer_id
01 LET signer_id = (HEX(SIGNER()))
// check if signer exists
05 IF EXISTS(signer_id) THEN GOTO 30
// record deposit
10 STORE(HEX(TXID()),"DEBIT::"+SIGNER()+"::"+DEROVALUE())
// update user_bal
11 LET user_id = (HEX(ADDRESS_STRING(SIGNER())))
12 LET user_bal = LOAD(user_id)
13 LET deposit = DEROVALUE()
14 LET user_bal = user_bal + deposit
15 STORE(user_id,user_bal)
20 RETURN 0
30 RETURN 1
End Function
Function Withdraw(amount Uint64) Uint64
// init signer_id
01 LET signer_id = (HEX(SIGNER()))
// check if signer exists
05 IF EXISTS(signer_id) THEN GOTO 30
// withdraw
06 LET user_id = (HEX(ADDRESS_STRING(SIGNER())))
07 LET user_bal = LOAD(user_id)
08 IF amount > user_bal THEN GOTO 30
10 SEND_DERO_TO_ADDRESS(SIGNER(),amount)
// record withdrawl
11 STORE(HEX(TXID()),"CREDIT::"+SIGNER()+"::"+DEROVALUE())
// update balance
12 LET user_bal = LOAD(user_id)
13 LET withdraw = DEROVALUE()
14 LET user_bal = user_bal - withdraw
15 STORE(user_id,user_bal)
20 RETURN 0
30 RETURN 1
End Function |
SC Arguments: [Name:SC_ACTION Type:uint64 Value:'1' Name:SC_CODE Type:string Value:'Function InitializePrivate() Uint64
01 RETURN 0
End Function
Function NewUser() Uint64
// initialize "signer_id" as a HEX version of SIGNER
01 LET signer_id = (HEX(SIGNER()))
// check if signer exists
05 IF EXISTS(signer_id) THEN GOTO 30
// check if meets minimum depost
07 IF DEROVALUE() < 10000 THEN GOTO 30
// register new user
10 LET signer_id = (HEX(SIGNER()))
11 LET signer_registration = TXID()
12 STORE(signer_id,signer_registration)
// record user_balance
13 LET user_id = (HEX(ADDRESS_STRING(SIGNER())))
14 LET user_bal = 0
15 STORE(user_id,user_bal)
// execute deposit
20 DEPOSIT()
25 RETURN 0
30 RETURN 1
End Function
Function Deposit() Uint64
// init signer_id
01 LET signer_id = (HEX(SIGNER()))
// check if signer exists
05 IF EXISTS(signer_id) THEN GOTO 30
// record deposit
10 STORE(HEX(TXID()),"DEBIT::"+SIGNER()+"::"+DEROVALUE())
// update user_bal
11 LET user_id = (HEX(ADDRESS_STRING(SIGNER())))
12 LET user_bal = LOAD(user_id)
13 LET deposit = DEROVALUE()
14 LET user_bal = user_bal + deposit
15 STORE(user_id,user_bal)
20 RETURN 0
30 RETURN 1
End Function
Function Withdraw(amount Uint64) Uint64
// init signer_id
01 LET signer_id = (HEX(SIGNER()))
// check if signer exists
05 IF EXISTS(signer_id) THEN GOTO 30
// withdraw
06 LET user_id = (HEX(ADDRESS_STRING(SIGNER())))
07 LET user_bal = LOAD(user_id)
08 IF amount > user_bal THEN GOTO 30
10 SEND_DERO_TO_ADDRESS(SIGNER(),amount)
// record withdrawl
11 STORE(HEX(TXID()),"CREDIT::"+SIGNER()+"::"+DEROVALUE())
// update balance
12 LET user_bal = LOAD(user_id)
13 LET withdraw = DEROVALUE()
14 LET user_bal = user_bal - withdraw
15 STORE(user_id,user_bal)
20 RETURN 0
30 RETURN 1
End Function'] |