Documentation ¶
Index ¶
Constants ¶
View Source
const ( // Setting this flag disables retrying request with peers ContextDisablePeers = value("disablePeers") // Forces the URL of the peer, otherwise the default one is picked ContextForcePeer = value("forcePeer") )
View Source
const ARWEAVE_OWNER_LENGTH = 512
View Source
const ARWEAVE_SIGNATURE_LENGHT = 512
Arweave signature
Variables ¶
View Source
var ( ErrFailedToParse = errors.New("failed to parse response") ErrIdEmpty = errors.New("bundle id is empty") )
View Source
var CONFIG = map[int]struct { Signature int Owner int Verify func(hash []byte, self *BundleItem) error }{ 1: { Signature: 512, Owner: 512, Verify: func(hash []byte, self *BundleItem) error { ownerPublicKey := &rsa.PublicKey{ N: new(big.Int).SetBytes([]byte(self.Owner)), E: 65537, } return rsa.VerifyPSS(ownerPublicKey, crypto.SHA256, hash, []byte(self.Signature), &rsa.PSSOptions{ SaltLength: rsa.PSSSaltLengthAuto, Hash: crypto.SHA256, }) }, }, 3: { Signature: 65, Owner: 65, Verify: func(hash []byte, self *BundleItem) error { return errors.New("unsupported signature type") }, }, }
Functions ¶
func LongTo8ByteArray ¶
func ShortTo2ByteArray ¶
Types ¶
type BaseClient ¶
type BaseClient struct {
// contains filtered or unexported fields
}
func (*BaseClient) Request ¶
func (self *BaseClient) Request(ctx context.Context) (*resty.Request, context.CancelFunc)
func (*BaseClient) Reset ¶
func (self *BaseClient) Reset()
func (*BaseClient) SetPeers ¶
func (self *BaseClient) SetPeers(peers []string)
Set the list of potential peers in order they should be used Uses only peers that are proper urls
type BundleItem ¶
type BundleItem struct { SignatureType int `json:"signature_type"` Signature arweave.Base64String `json:"signature"` Owner arweave.Base64String `json:"owner"` // utils.Base64Encode(pubkey) Target arweave.Base64String `json:"target"` // optional, if exist must length 32, and is base64 str Anchor arweave.Base64String `json:"anchor"` // optional, if exist must length 32, and is base64 str Tags Tags `json:"tags"` Data arweave.Base64String `json:"data"` Id arweave.Base64String `json:"id"` }
func (*BundleItem) Reader ¶
func (self *BundleItem) Reader(signer *Signer) (out *bytes.Buffer, err error)
func (*BundleItem) Unmarshal ¶ added in v0.1.201
func (self *BundleItem) Unmarshal(reader io.Reader) (err error)
Reverse operation of Reader, but use subslices instead of copying. Parsed buffer is saved for later reuse. User should ensure data buffer is not modified AFTER calling this method
func (*BundleItem) Verify ¶ added in v0.1.202
func (self *BundleItem) Verify() (err error)
https://github.com/ArweaveTeam/arweave-standards/blob/master/ans/ANS-104.md#21-verifying-a-dataitem
func (*BundleItem) VerifySignature ¶ added in v0.1.202
func (self *BundleItem) VerifySignature() (err error)
type Signer ¶
type Signer struct { PrivateKey *rsa.PrivateKey Owner []byte }
Source Files ¶
Click to show internal directories.
Click to hide internal directories.