polynetwork

package
v0.0.0-...-8eba57f Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 27, 2022 License: GPL-3.0 Imports: 14 Imported by: 0

Documentation

Overview

  • Copyright (C) 2020 Zilliqa *

  • This program is free software: you can redistribute it and/or modify

  • it under the terms of the GNU General Public License as published by

  • the Free Software Foundation, either version 3 of the License, or

  • (at your option) any later version. *

  • This program is distributed in the hope that it will be useful,

  • but WITHOUT ANY WARRANTY; without even the implied warranty of

  • MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the

  • GNU General Public License for more details. *

  • You should have received a copy of the GNU General Public License

  • along with this program. If not, see <https://www.gnu.org/licenses/>.

  • Copyright (C) 2020 Zilliqa *

  • This program is free software: you can redistribute it and/or modify

  • it under the terms of the GNU General Public License as published by

  • the Free Software Foundation, either version 3 of the License, or

  • (at your option) any later version. *

  • This program is distributed in the hope that it will be useful,

  • but WITHOUT ANY WARRANTY; without even the implied warranty of

  • MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the

  • GNU General Public License for more details. *

  • You should have received a copy of the GNU General Public License

  • along with this program. If not, see <https://www.gnu.org/licenses/>.

* Copyright (C) 2020 Zilliqa * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>.

  • Copyright (C) 2018 The ontology Authors

  • This file is part of The ontology library. *

  • The ontology is free software: you can redistribute it and/or modify

  • it under the terms of the GNU Lesser General Public License as published by

  • the Free Software Foundation, either version 3 of the License, or

  • (at your option) any later version. *

  • The ontology is distributed in the hope that it will be useful,

  • but WITHOUT ANY WARRANTY; without even the implied warranty of

  • MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the

  • GNU Lesser General Public License for more details. *

  • You should have received a copy of the GNU Lesser General Public License

  • along with The ontology. If not, see <http://www.gnu.org/licenses/>.

  • Copyright (C) 2020 Zilliqa *

  • This program is free software: you can redistribute it and/or modify

  • it under the terms of the GNU General Public License as published by

  • the Free Software Foundation, either version 3 of the License, or

  • (at your option) any later version. *

  • This program is distributed in the hope that it will be useful,

  • but WITHOUT ANY WARRANTY; without even the implied warranty of

  • MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the

  • GNU General Public License for more details. *

  • You should have received a copy of the GNU General Public License

  • along with this program. If not, see <https://www.gnu.org/licenses/>.

  • Copyright (C) 2018 The ontology Authors

  • This file is part of The ontology library. *

  • The ontology is free software: you can redistribute it and/or modify

  • it under the terms of the GNU Lesser General Public License as published by

  • the Free Software Foundation, either version 3 of the License, or

  • (at your option) any later version. *

  • The ontology is distributed in the hope that it will be useful,

  • but WITHOUT ANY WARRANTY; without even the implied warranty of

  • MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the

  • GNU Lesser General Public License for more details. *

  • You should have received a copy of the GNU Lesser General Public License

  • along with The ontology. If not, see <http://www.gnu.org/licenses/>.

Index

Constants

View Source
const (
	MAX_UINT64 = math.MaxUint64
	MAX_INT64  = math.MaxInt64
)
View Source
const (
	UINT16_SIZE  = 2
	UINT32_SIZE  = 4
	UINT64_SIZE  = 8
	UINT256_SIZE = 32
	ADDR_LEN     = 20
)

Variables

View Source
var UINT256_EMPTY = Uint256{}

Functions

func SafeAdd

func SafeAdd(x, y uint64) (uint64, bool)

func SafeMul

func SafeMul(x, y uint64) (uint64, bool)

func SafeSub

func SafeSub(x, y uint64) (uint64, bool)

func SplitPubKeys

func SplitPubKeys(rawBytes string) ([]string, error)

func SplitSignature

func SplitSignature(rawBytes string) ([]string, error)

Types

type Address

type Address [ADDR_LEN]byte

type LockProxy

type LockProxy struct {
	Addr       string
	Wallet     *account.Wallet
	Client     *provider.Provider
	ChainId    int
	MsgVersion int
}

func (*LockProxy) BindAssetHash

func (l *LockProxy) BindAssetHash(fromAssetHash, toChainId, toAssetHash string) (*transaction.Transaction, error)

func (*LockProxy) BindProxyHash

func (l *LockProxy) BindProxyHash(toChainId, targetProxyHash string) (*transaction.Transaction, error)

func (*LockProxy) Lock

func (l *LockProxy) Lock(fromAssetHash, toChainId, toAddress, amount string) (*transaction.Transaction, error)

func (*LockProxy) SetManager

func (l *LockProxy) SetManager(newManager string) (*transaction.Transaction, error)

func (*LockProxy) SetManagerProxy

func (l *LockProxy) SetManagerProxy(newManagerProxy string) (*transaction.Transaction, error)

func (*LockProxy) Unlock

func (l *LockProxy) Unlock(txData, fromContractAddr, fromChainId string) (*transaction.Transaction, error)

type ProofEntity

type ProofEntity struct {
	Proof string
	Pair  []ProofPair
}

func DeserializeProof

func DeserializeProof(proof string, position uint64) *ProofEntity

type ProofPair

type ProofPair struct {
	Key  string
	Hash string
}

type Proxy

type Proxy struct {
	ProxyAddr  string
	ImplAddr   string
	Wallet     *account.Wallet
	Client     *provider.Provider
	ChainId    int
	MsgVersion int
}

Proxy for cross chain manager smart contract

func (*Proxy) ChangeBookKeeper

func (p *Proxy) ChangeBookKeeper(rawHeader string, pubKeys []string, sigList []string) (*transaction.Transaction, error)

func (*Proxy) ChangeBookKeeperWithNonce

func (p *Proxy) ChangeBookKeeperWithNonce(rawHeader string, pubKeys []string, sigList []string, nonce string) (*transaction.Transaction, error)

func (*Proxy) InitGenesisBlock

func (p *Proxy) InitGenesisBlock(rawHeader string, pubKeys []string) (*transaction.Transaction, error)

func (*Proxy) Unpause

func (p *Proxy) Unpause() (*transaction.Transaction, error)

func (*Proxy) UpgradeTo

func (p *Proxy) UpgradeTo() (*transaction.Transaction, error)

func (*Proxy) VerifyHeaderAndExecuteTx

func (p *Proxy) VerifyHeaderAndExecuteTx(proof *ProofEntity, rawHeader string, headerProof *ProofEntity, curRawHeader string, headerSig []string) (*transaction.Transaction, error)

func (*Proxy) VerifyHeaderAndExecuteTxWithNonce

func (p *Proxy) VerifyHeaderAndExecuteTxWithNonce(proof *ProofEntity, rawHeader string, headerProof *ProofEntity, curRawHeader string, headerSig []string, nonce string) (*transaction.Transaction, error)

type Uint256

type Uint256 [UINT256_SIZE]byte

type ZeroCopySource

type ZeroCopySource struct {
	// contains filtered or unexported fields
}

func NewZeroCopySource

func NewZeroCopySource(b []byte) *ZeroCopySource

NewReader returns a new ZeroCopySource reading from b.

func (*ZeroCopySource) BackUp

func (self *ZeroCopySource) BackUp(n uint64)

Backs up a number of bytes, so that the next call to NextXXX() returns data again that was already returned by the last call to NextXXX().

func (*ZeroCopySource) Bytes

func (self *ZeroCopySource) Bytes() []byte

func (*ZeroCopySource) Len

func (self *ZeroCopySource) Len() uint64

Len returns the number of bytes of the unread portion of the slice.

func (*ZeroCopySource) NextAddress

func (self *ZeroCopySource) NextAddress() (data Address, eof bool)

func (*ZeroCopySource) NextBool

func (self *ZeroCopySource) NextBool() (data bool, eof bool)

func (*ZeroCopySource) NextByte

func (self *ZeroCopySource) NextByte() (data byte, eof bool)

ReadByte implements the io.ByteReader interface.

func (*ZeroCopySource) NextBytes

func (self *ZeroCopySource) NextBytes(n uint64) (data []byte, eof bool)

Read implements the io.ZeroCopySource interface.

func (*ZeroCopySource) NextHash

func (self *ZeroCopySource) NextHash() (data Uint256, eof bool)

func (*ZeroCopySource) NextInt16

func (self *ZeroCopySource) NextInt16() (data int16, eof bool)

func (*ZeroCopySource) NextInt32

func (self *ZeroCopySource) NextInt32() (data int32, eof bool)

func (*ZeroCopySource) NextInt64

func (self *ZeroCopySource) NextInt64() (data int64, eof bool)

func (*ZeroCopySource) NextString

func (self *ZeroCopySource) NextString() (data string, eof bool)

func (*ZeroCopySource) NextUint16

func (self *ZeroCopySource) NextUint16() (data uint16, eof bool)

func (*ZeroCopySource) NextUint32

func (self *ZeroCopySource) NextUint32() (data uint32, eof bool)

func (*ZeroCopySource) NextUint64

func (self *ZeroCopySource) NextUint64() (data uint64, eof bool)

func (*ZeroCopySource) NextUint8

func (self *ZeroCopySource) NextUint8() (data uint8, eof bool)

func (*ZeroCopySource) NextVarBytes

func (self *ZeroCopySource) NextVarBytes() (data []byte, eof bool)

func (*ZeroCopySource) NextVarUint

func (self *ZeroCopySource) NextVarUint() (data uint64, eof bool)

func (*ZeroCopySource) OffBytes

func (self *ZeroCopySource) OffBytes() []byte

func (*ZeroCopySource) Pos

func (self *ZeroCopySource) Pos() uint64

func (*ZeroCopySource) Size

func (self *ZeroCopySource) Size() uint64

Size returns the original length of the underlying byte slice. Size is the number of bytes available for reading via ReadAt. The returned value is always the same and is not affected by calls to any other method.

func (*ZeroCopySource) Skip

func (self *ZeroCopySource) Skip(n uint64) (eof bool)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL