forked from TrueCloudLab/frostfs-contract
Merge pull request #11 from nspcc-dev/neo3/bind
Add "Bind" and "Unbind" methods
This commit is contained in:
commit
f5d2e96063
1 changed files with 24 additions and 0 deletions
|
@ -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)
|
||||||
|
|
Loading…
Reference in a new issue