Merge pull request #11 from nspcc-dev/neo3/bind

Add "Bind" and "Unbind" methods
This commit is contained in:
Alex Vanin 2020-07-16 14:11:49 +03:00 committed by GitHub
commit f5d2e96063
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -35,6 +35,7 @@ const (
candidatesKey = "candidates" candidatesKey = "candidates"
cashedChequesKey = "cheques" cashedChequesKey = "cheques"
blockDiff = 20 // change base on performance evaluation blockDiff = 20 // change base on performance evaluation
publicKeySize = 33
) )
func Main(op string, args []interface{}) interface{} { func Main(op string, args []interface{}) interface{} {
@ -228,6 +229,29 @@ func Main(op string, args []interface{}) interface{} {
runtime.Notify("Cheque", id, user, amount, lockAcc) runtime.Notify("Cheque", id, user, amount, lockAcc)
} }
return true
case "Bind", "Unbind":
if len(args) < 2 {
panic("binding: bad arguments")
}
user := args[0].([]byte)
if !runtime.CheckWitness(user) {
panic("binding: you should be the owner of the wallet")
}
var keys [][]byte
for i := 1; i < len(args); i++ {
pub := args[i].([]byte)
if len(pub) != publicKeySize {
panic("binding: incorrect public key size")
}
keys = append(keys, pub)
}
runtime.Notify(op, user, keys)
return true return true
case "InnerRingUpdate": case "InnerRingUpdate":
data := args[0].([]byte) data := args[0].([]byte)