freelay

package
v0.0.0-...-a1d9a68 Latest Latest
Warning

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

Go to latest
Published: Sep 4, 2023 License: UPL-1.0 Imports: 60 Imported by: 0

Documentation

Overview

Copyright (c) 2023 Manifold Finance, Inc. The Universal Permissive License (UPL), Version 1.0 Subject to the condition set forth below, permission is hereby granted to any person obtaining a copy of this software, associated documentation and/or data (collectively the “Software”), free of charge and under any and all copyright rights in the Software, and any and all patent rights owned or freely licensable by each licensor hereunder covering either (i) the unmodified Software as contributed to or provided by such licensor, or (ii) the Larger Works (as defined below), to deal in both (a) the Software, and (b) any piece of software and/or hardware listed in the lrgrwrks.txt file if one is included with the Software (each a “Larger Work” to which the Software is contributed by such licensors), without restriction, including without limitation the rights to copy, create derivative works of, display, perform, and distribute the Software and make, use, sell, offer for sale, import, export, have made, and have sold the Software and the Larger Work(s), and to sublicense the foregoing rights on either these or other terms. This license is subject to the following condition: The above copyright notice and either this complete permission notice or at a minimum a reference to the UPL must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. This script ensures source code files have copyright license headers. See license.sh for more information.

Copyright (c) 2023 Manifold Finance, Inc. The Universal Permissive License (UPL), Version 1.0 Subject to the condition set forth below, permission is hereby granted to any person obtaining a copy of this software, associated documentation and/or data (collectively the “Software”), free of charge and under any and all copyright rights in the Software, and any and all patent rights owned or freely licensable by each licensor hereunder covering either (i) the unmodified Software as contributed to or provided by such licensor, or (ii) the Larger Works (as defined below), to deal in both (a) the Software, and (b) any piece of software and/or hardware listed in the lrgrwrks.txt file if one is included with the Software (each a “Larger Work” to which the Software is contributed by such licensors), without restriction, including without limitation the rights to copy, create derivative works of, display, perform, and distribute the Software and make, use, sell, offer for sale, import, export, have made, and have sold the Software and the Larger Work(s), and to sublicense the foregoing rights on either these or other terms. This license is subject to the following condition: The above copyright notice and either this complete permission notice or at a minimum a reference to the UPL must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. This script ensures source code files have copyright license headers. See license.sh for more information.

Copyright (c) 2023 Manifold Finance, Inc. The Universal Permissive License (UPL), Version 1.0 Subject to the condition set forth below, permission is hereby granted to any person obtaining a copy of this software, associated documentation and/or data (collectively the “Software”), free of charge and under any and all copyright rights in the Software, and any and all patent rights owned or freely licensable by each licensor hereunder covering either (i) the unmodified Software as contributed to or provided by such licensor, or (ii) the Larger Works (as defined below), to deal in both (a) the Software, and (b) any piece of software and/or hardware listed in the lrgrwrks.txt file if one is included with the Software (each a “Larger Work” to which the Software is contributed by such licensors), without restriction, including without limitation the rights to copy, create derivative works of, display, perform, and distribute the Software and make, use, sell, offer for sale, import, export, have made, and have sold the Software and the Larger Work(s), and to sublicense the foregoing rights on either these or other terms. This license is subject to the following condition: The above copyright notice and either this complete permission notice or at a minimum a reference to the UPL must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. This script ensures source code files have copyright license headers. See license.sh for more information.

Copyright (c) 2023 Manifold Finance, Inc. The Universal Permissive License (UPL), Version 1.0 Subject to the condition set forth below, permission is hereby granted to any person obtaining a copy of this software, associated documentation and/or data (collectively the “Software”), free of charge and under any and all copyright rights in the Software, and any and all patent rights owned or freely licensable by each licensor hereunder covering either (i) the unmodified Software as contributed to or provided by such licensor, or (ii) the Larger Works (as defined below), to deal in both (a) the Software, and (b) any piece of software and/or hardware listed in the lrgrwrks.txt file if one is included with the Software (each a “Larger Work” to which the Software is contributed by such licensors), without restriction, including without limitation the rights to copy, create derivative works of, display, perform, and distribute the Software and make, use, sell, offer for sale, import, export, have made, and have sold the Software and the Larger Work(s), and to sublicense the foregoing rights on either these or other terms. This license is subject to the following condition: The above copyright notice and either this complete permission notice or at a minimum a reference to the UPL must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. This script ensures source code files have copyright license headers. See license.sh for more information.

Copyright (c) 2023 Manifold Finance, Inc. The Universal Permissive License (UPL), Version 1.0 Subject to the condition set forth below, permission is hereby granted to any person obtaining a copy of this software, associated documentation and/or data (collectively the “Software”), free of charge and under any and all copyright rights in the Software, and any and all patent rights owned or freely licensable by each licensor hereunder covering either (i) the unmodified Software as contributed to or provided by such licensor, or (ii) the Larger Works (as defined below), to deal in both (a) the Software, and (b) any piece of software and/or hardware listed in the lrgrwrks.txt file if one is included with the Software (each a “Larger Work” to which the Software is contributed by such licensors), without restriction, including without limitation the rights to copy, create derivative works of, display, perform, and distribute the Software and make, use, sell, offer for sale, import, export, have made, and have sold the Software and the Larger Work(s), and to sublicense the foregoing rights on either these or other terms. This license is subject to the following condition: The above copyright notice and either this complete permission notice or at a minimum a reference to the UPL must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. This script ensures source code files have copyright license headers. See license.sh for more information.

Copyright (c) 2023 Manifold Finance, Inc. The Universal Permissive License (UPL), Version 1.0 Subject to the condition set forth below, permission is hereby granted to any person obtaining a copy of this software, associated documentation and/or data (collectively the “Software”), free of charge and under any and all copyright rights in the Software, and any and all patent rights owned or freely licensable by each licensor hereunder covering either (i) the unmodified Software as contributed to or provided by such licensor, or (ii) the Larger Works (as defined below), to deal in both (a) the Software, and (b) any piece of software and/or hardware listed in the lrgrwrks.txt file if one is included with the Software (each a “Larger Work” to which the Software is contributed by such licensors), without restriction, including without limitation the rights to copy, create derivative works of, display, perform, and distribute the Software and make, use, sell, offer for sale, import, export, have made, and have sold the Software and the Larger Work(s), and to sublicense the foregoing rights on either these or other terms. This license is subject to the following condition: The above copyright notice and either this complete permission notice or at a minimum a reference to the UPL must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. This script ensures source code files have copyright license headers. See license.sh for more information.

Copyright (c) 2023 Manifold Finance, Inc. The Universal Permissive License (UPL), Version 1.0 Subject to the condition set forth below, permission is hereby granted to any person obtaining a copy of this software, associated documentation and/or data (collectively the “Software”), free of charge and under any and all copyright rights in the Software, and any and all patent rights owned or freely licensable by each licensor hereunder covering either (i) the unmodified Software as contributed to or provided by such licensor, or (ii) the Larger Works (as defined below), to deal in both (a) the Software, and (b) any piece of software and/or hardware listed in the lrgrwrks.txt file if one is included with the Software (each a “Larger Work” to which the Software is contributed by such licensors), without restriction, including without limitation the rights to copy, create derivative works of, display, perform, and distribute the Software and make, use, sell, offer for sale, import, export, have made, and have sold the Software and the Larger Work(s), and to sublicense the foregoing rights on either these or other terms. This license is subject to the following condition: The above copyright notice and either this complete permission notice or at a minimum a reference to the UPL must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. This script ensures source code files have copyright license headers. See license.sh for more information.

Copyright (c) 2023 Manifold Finance, Inc. The Universal Permissive License (UPL), Version 1.0 Subject to the condition set forth below, permission is hereby granted to any person obtaining a copy of this software, associated documentation and/or data (collectively the “Software”), free of charge and under any and all copyright rights in the Software, and any and all patent rights owned or freely licensable by each licensor hereunder covering either (i) the unmodified Software as contributed to or provided by such licensor, or (ii) the Larger Works (as defined below), to deal in both (a) the Software, and (b) any piece of software and/or hardware listed in the lrgrwrks.txt file if one is included with the Software (each a “Larger Work” to which the Software is contributed by such licensors), without restriction, including without limitation the rights to copy, create derivative works of, display, perform, and distribute the Software and make, use, sell, offer for sale, import, export, have made, and have sold the Software and the Larger Work(s), and to sublicense the foregoing rights on either these or other terms. This license is subject to the following condition: The above copyright notice and either this complete permission notice or at a minimum a reference to the UPL must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. This script ensures source code files have copyright license headers. See license.sh for more information.

Copyright (c) 2023 Manifold Finance, Inc. The Universal Permissive License (UPL), Version 1.0 Subject to the condition set forth below, permission is hereby granted to any person obtaining a copy of this software, associated documentation and/or data (collectively the “Software”), free of charge and under any and all copyright rights in the Software, and any and all patent rights owned or freely licensable by each licensor hereunder covering either (i) the unmodified Software as contributed to or provided by such licensor, or (ii) the Larger Works (as defined below), to deal in both (a) the Software, and (b) any piece of software and/or hardware listed in the lrgrwrks.txt file if one is included with the Software (each a “Larger Work” to which the Software is contributed by such licensors), without restriction, including without limitation the rights to copy, create derivative works of, display, perform, and distribute the Software and make, use, sell, offer for sale, import, export, have made, and have sold the Software and the Larger Work(s), and to sublicense the foregoing rights on either these or other terms. This license is subject to the following condition: The above copyright notice and either this complete permission notice or at a minimum a reference to the UPL must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. This script ensures source code files have copyright license headers. See license.sh for more information.

Copyright (c) 2023 Manifold Finance, Inc. The Universal Permissive License (UPL), Version 1.0 Subject to the condition set forth below, permission is hereby granted to any person obtaining a copy of this software, associated documentation and/or data (collectively the “Software”), free of charge and under any and all copyright rights in the Software, and any and all patent rights owned or freely licensable by each licensor hereunder covering either (i) the unmodified Software as contributed to or provided by such licensor, or (ii) the Larger Works (as defined below), to deal in both (a) the Software, and (b) any piece of software and/or hardware listed in the lrgrwrks.txt file if one is included with the Software (each a “Larger Work” to which the Software is contributed by such licensors), without restriction, including without limitation the rights to copy, create derivative works of, display, perform, and distribute the Software and make, use, sell, offer for sale, import, export, have made, and have sold the Software and the Larger Work(s), and to sublicense the foregoing rights on either these or other terms. This license is subject to the following condition: The above copyright notice and either this complete permission notice or at a minimum a reference to the UPL must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. This script ensures source code files have copyright license headers. See license.sh for more information.

Copyright (c) 2023 Manifold Finance, Inc. The Universal Permissive License (UPL), Version 1.0 Subject to the condition set forth below, permission is hereby granted to any person obtaining a copy of this software, associated documentation and/or data (collectively the “Software”), free of charge and under any and all copyright rights in the Software, and any and all patent rights owned or freely licensable by each licensor hereunder covering either (i) the unmodified Software as contributed to or provided by such licensor, or (ii) the Larger Works (as defined below), to deal in both (a) the Software, and (b) any piece of software and/or hardware listed in the lrgrwrks.txt file if one is included with the Software (each a “Larger Work” to which the Software is contributed by such licensors), without restriction, including without limitation the rights to copy, create derivative works of, display, perform, and distribute the Software and make, use, sell, offer for sale, import, export, have made, and have sold the Software and the Larger Work(s), and to sublicense the foregoing rights on either these or other terms. This license is subject to the following condition: The above copyright notice and either this complete permission notice or at a minimum a reference to the UPL must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. This script ensures source code files have copyright license headers. See license.sh for more information.

Copyright (c) 2023 Manifold Finance, Inc. The Universal Permissive License (UPL), Version 1.0 Subject to the condition set forth below, permission is hereby granted to any person obtaining a copy of this software, associated documentation and/or data (collectively the “Software”), free of charge and under any and all copyright rights in the Software, and any and all patent rights owned or freely licensable by each licensor hereunder covering either (i) the unmodified Software as contributed to or provided by such licensor, or (ii) the Larger Works (as defined below), to deal in both (a) the Software, and (b) any piece of software and/or hardware listed in the lrgrwrks.txt file if one is included with the Software (each a “Larger Work” to which the Software is contributed by such licensors), without restriction, including without limitation the rights to copy, create derivative works of, display, perform, and distribute the Software and make, use, sell, offer for sale, import, export, have made, and have sold the Software and the Larger Work(s), and to sublicense the foregoing rights on either these or other terms. This license is subject to the following condition: The above copyright notice and either this complete permission notice or at a minimum a reference to the UPL must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. This script ensures source code files have copyright license headers. See license.sh for more information.

Copyright (c) 2023 Manifold Finance, Inc. The Universal Permissive License (UPL), Version 1.0 Subject to the condition set forth below, permission is hereby granted to any person obtaining a copy of this software, associated documentation and/or data (collectively the “Software”), free of charge and under any and all copyright rights in the Software, and any and all patent rights owned or freely licensable by each licensor hereunder covering either (i) the unmodified Software as contributed to or provided by such licensor, or (ii) the Larger Works (as defined below), to deal in both (a) the Software, and (b) any piece of software and/or hardware listed in the lrgrwrks.txt file if one is included with the Software (each a “Larger Work” to which the Software is contributed by such licensors), without restriction, including without limitation the rights to copy, create derivative works of, display, perform, and distribute the Software and make, use, sell, offer for sale, import, export, have made, and have sold the Software and the Larger Work(s), and to sublicense the foregoing rights on either these or other terms. This license is subject to the following condition: The above copyright notice and either this complete permission notice or at a minimum a reference to the UPL must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. This script ensures source code files have copyright license headers. See license.sh for more information.

Copyright (c) 2023 Manifold Finance, Inc. The Universal Permissive License (UPL), Version 1.0 Subject to the condition set forth below, permission is hereby granted to any person obtaining a copy of this software, associated documentation and/or data (collectively the “Software”), free of charge and under any and all copyright rights in the Software, and any and all patent rights owned or freely licensable by each licensor hereunder covering either (i) the unmodified Software as contributed to or provided by such licensor, or (ii) the Larger Works (as defined below), to deal in both (a) the Software, and (b) any piece of software and/or hardware listed in the lrgrwrks.txt file if one is included with the Software (each a “Larger Work” to which the Software is contributed by such licensors), without restriction, including without limitation the rights to copy, create derivative works of, display, perform, and distribute the Software and make, use, sell, offer for sale, import, export, have made, and have sold the Software and the Larger Work(s), and to sublicense the foregoing rights on either these or other terms. This license is subject to the following condition: The above copyright notice and either this complete permission notice or at a minimum a reference to the UPL must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. This script ensures source code files have copyright license headers. See license.sh for more information.

Copyright (c) 2023 Manifold Finance, Inc. The Universal Permissive License (UPL), Version 1.0 Subject to the condition set forth below, permission is hereby granted to any person obtaining a copy of this software, associated documentation and/or data (collectively the “Software”), free of charge and under any and all copyright rights in the Software, and any and all patent rights owned or freely licensable by each licensor hereunder covering either (i) the unmodified Software as contributed to or provided by such licensor, or (ii) the Larger Works (as defined below), to deal in both (a) the Software, and (b) any piece of software and/or hardware listed in the lrgrwrks.txt file if one is included with the Software (each a “Larger Work” to which the Software is contributed by such licensors), without restriction, including without limitation the rights to copy, create derivative works of, display, perform, and distribute the Software and make, use, sell, offer for sale, import, export, have made, and have sold the Software and the Larger Work(s), and to sublicense the foregoing rights on either these or other terms. This license is subject to the following condition: The above copyright notice and either this complete permission notice or at a minimum a reference to the UPL must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. This script ensures source code files have copyright license headers. See license.sh for more information.

Copyright (c) 2023 Manifold Finance, Inc. The Universal Permissive License (UPL), Version 1.0 Subject to the condition set forth below, permission is hereby granted to any person obtaining a copy of this software, associated documentation and/or data (collectively the “Software”), free of charge and under any and all copyright rights in the Software, and any and all patent rights owned or freely licensable by each licensor hereunder covering either (i) the unmodified Software as contributed to or provided by such licensor, or (ii) the Larger Works (as defined below), to deal in both (a) the Software, and (b) any piece of software and/or hardware listed in the lrgrwrks.txt file if one is included with the Software (each a “Larger Work” to which the Software is contributed by such licensors), without restriction, including without limitation the rights to copy, create derivative works of, display, perform, and distribute the Software and make, use, sell, offer for sale, import, export, have made, and have sold the Software and the Larger Work(s), and to sublicense the foregoing rights on either these or other terms. This license is subject to the following condition: The above copyright notice and either this complete permission notice or at a minimum a reference to the UPL must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. This script ensures source code files have copyright license headers. See license.sh for more information.

Index

Constants

View Source
const (
	SlotsPerEpoch    = 32
	SecondsPerSlot   = 12
	DurationPerSlot  = time.Second * SecondsPerSlot
	DurationPerEpoch = DurationPerSlot * time.Duration(SlotsPerEpoch)
)

Variables

View Source
var (
	ErrNoData                               = errors.New("no data")
	ErrInvalidKey                           = errors.New("invalid key")
	ErrUnknownValidatorByIndx               = errors.New("unknown validator by index")
	ErrInvalidForkVersion                   = errors.New("invalid fork version")
	ErrPayloadNil                           = errors.New("payload is nil")
	ErrReqNil                               = errors.New("request is nil")
	ErrSecretKeyNil                         = errors.New("secret key is nil")
	ErrNoBeaconSynced                       = errors.New("no beacon is synced")
	ErrAllBeaconsFailedGetProposerDuties    = errors.New("all beacons failed to get proposer duties")
	ErrAllBeaconsFailedGetRandao            = errors.New("all beacons failed to get randao")
	ErrAllBeaconsFailedPublishBlock         = errors.New("all beacons failed to publish block")
	ErrSlotCursorConflict                   = errors.New("slot and cursor cannot be used together")
	ErrProposerLimit                        = errors.New("limit cannot be greater than 500")
	ErrUnknownNetwork                       = errors.New("unknown network")
	ErrNoArchivePayloadsFound               = errors.New("no payloads found")
	ErrBestBidNotFound                      = errors.New("best bid not found")
	ErrBidTraceExpired                      = errors.New("bid trace expired")
	ErrBestBidExpired                       = errors.New("best bid expired")
	ErrAllBeaconsFailedGetForkSchedule      = errors.New("all beacons failed to get fork schedule")
	ErrAllBeaconsFailedGetWithdrawals       = errors.New("all beacons failed to get withdrawals")
	ErrAllBeaconsFailedGetValidators        = errors.New("all beacons failed to get validators")
	ErrEmpty                                = errors.New("empty")
	ErrInvalidPayloadSimulate               = errors.New("invalid payload to use for simulation")
	ErrBlockBroadcastedButFailedIntegration = errors.New("block broadcasted but failed to integrate")
	ErrAllBeaconsFailedGetBlockBySlot       = errors.New("all beacons failed to get block by slot")
	ErrMismatchPayloads                     = errors.New("mismatch payloads")
	ErrMismatchHeaders                      = errors.New("mismatch headers")
	ErrNoPayloads                           = errors.New("no payloads")
	ErrValidatorChanRegsFull                = errors.New("validator channel registrations full")
	ErrValidatorTimestampTooFarInTheFuture  = errors.New("validator timestamp too far in the future")
	ErrValidatorTimestampTooFarInThePast    = errors.New("validator timestamp too far in the past")
	ErrValidatorUnknown                     = errors.New("validator unknown")
	ErrMissedBlock                          = errors.New("missed block")
	ErrShutdownInProgress                   = errors.New("shutdown in progress")
)
View Source
var (
	ZeroU256   = types.IntToU256(0)
	ZeroBigInt = big.NewInt(0)

	CapellaForkVersionGoerli  = "0x03001020"
	CapellaForkVersionMainnet = "0x03000000"
)

Functions

func ImportSqlBlockBuilderData

func ImportSqlBlockBuilderData(log logger.Logger, db *sqlx.DB, dbPth, table string, limit uint64) error

func ImportSqlDeliveredData

func ImportSqlDeliveredData(log logger.Logger, db *sqlx.DB, dbPth, table string, limit uint64) error

func NewAPI

func NewAPI(store StoreSetter, known KnownValidatorGetter, genesis uint64, network string, publickKey types.PublicKey, tracer trace.Tracer) *api

func NewBBoltDB

func NewBBoltDB(pth string) (*bboltDB, error)

func NewBuilderBlockSimulator

func NewBuilderBlockSimulator(timeout time.Duration, addr string) *builderBlockSimulate

func NewDutyState

func NewDutyState() *dutyState

func NewKnownValidators

func NewKnownValidators() *knownValidators

func NewMultiBeacon

func NewMultiBeacon(beaconURIs []string, validatorsTimeout uint64) *multiBeacon

func NewPebbleDB

func NewPebbleDB(pth string, flush bool) (*pebbleDB, error)

func NewRelay

func NewRelay(
	ctx context.Context,
	store StoreSetter,
	beacon MultiBeacon,
	builderBlockSimulator BuilderBlockSimulator,
	known KnownValidatorSetter,
	duty DutySetter,
	evtSender EventSender,
	cfg *RelayConfig,
	genesis, headSlot uint64,
	maxChQueue, maxRateLimit, beaconProposeTimeout, cutOffTimeoutHeader, cutOffTimeoutPayload, maxSubmitBlockBodySizeBytes, getPayloadRetryMax, getPayloadRetryMS uint64,
	traceIP bool,
	tracer trace.Tracer,
) (*relay, error)

Types

type API

type API interface {
	Handler() map[string]any
}

type BeaconBlockResponse

type BeaconBlockResponse struct {
	Data    SignedBeaconBlock `json:"data"`
	Version string            `json:"version"`
}

type BidTrace

type BidTrace struct {
	BlockNumber uint64 `json:"block_number,string"`
	NumTx       uint64 `json:"num_tx,string"`
	types.BidTrace
}

type BidTraceArchived

type BidTraceArchived struct {
	Slot                 uint64              `json:"slot,string"`
	BuilderPubkey        types.PublicKey     `json:"builder_pubkey" ssz-size:"48"`
	ProposerPubkey       types.PublicKey     `json:"proposer_pubkey" ssz-size:"48"`
	ProposerFeeRecipient types.Address       `json:"proposer_fee_recipient" ssz-size:"20"`
	Value                types.U256Str       `json:"value" ssz-size:"32"`
	Signature            types.Signature     `json:"signature" ssz-size:"96"`
	Timestamp            int64               `json:"timestamp,omitempty"`
	SimError             string              `json:"sim_error,omitempty"`
	IP                   string              `json:"ip,omitempty"`
	ExecutedPayload      *GetPayloadResponse `json:"executed_payload,omitempty"`
}

type BidTraceExtended

type BidTraceExtended struct {
	BidTrace
	Timestamp           time.Time       `json:"timestamp"`
	SimError            string          `json:"sim_error"`
	ExecutionPayloadKey string          `json:"execution_payload_key"`
	Signature           types.Signature `json:"signature"`
	IP                  string          `json:"ip,omitempty"`
}

type BidTraceReceived

type BidTraceReceived struct {
	BidTrace
	Timestamp   int64 `json:"timestamp,omitempty"`
	TimestampMs int64 `json:"timestamp_ms,string,omitempty"`
}

type BidTraceTimestamp

type BidTraceTimestamp struct {
	BidTrace
	Timestamp time.Time `json:"timestamp"`
}

type BlockBuilder

type BlockBuilder struct {
	CreatedAt               time.Time       `json:"created_at"`
	UpdatedAt               time.Time       `json:"updated_at"`
	BuilderPubkey           types.PublicKey `json:"builder_pubkey"`
	Description             string          `json:"description"`
	HighPriority            bool            `json:"high_priority"`
	Blacklisted             bool            `json:"blacklisted"`
	LastSubmissionSlot      uint64          `json:"last_submission_slot,string"`
	LastSubmissionID        string          `json:"last_submission_id"`
	LastDeliveredSlot       uint64          `json:"last_delivered_slot,string"`
	LastDeliveredID         string          `json:"last_delivered_id"`
	NumSubmissionsTotal     uint64          `json:"num_submissions_total,string"`
	NumSubmissionsSimFailed uint64          `json:"num_submissions_sim_failed,string"`
	NumDeliveredTotal       uint64          `json:"num_delivered_total,string"`
	FirstSubmissionAt       time.Time       `json:"first_submission_at"`
	FirstDeliveredAt        time.Time       `json:"first_delivered_at"`
	LastSubmissionAt        time.Time       `json:"last_submission_at"`
	LastDeliveredAt         time.Time       `json:"last_delivered_at"`
	FirstSubmissionSlot     uint64          `json:"first_submission_slot,string"`
	FirstDeliveredSlot      uint64          `json:"first_delivered_slot,string"`
	FirstSubmissionID       string          `json:"first_submission_id"`
	FirstDeliveredID        string          `json:"first_delivered_id"`
}

type BlockedValidator

type BlockedValidator struct {
	CreatedAt time.Time       `json:"created_at"`
	UpdatedAt time.Time       `json:"updated_at"`
	Pubkey    types.PublicKey `json:"pubkey"`
	Blocked   bool            `json:"blocked"`
	Notes     []string        `json:"notes,omitempty"`
}

type BuilderBidHeaderResponse

type BuilderBidHeaderResponse struct {
	Capella   *builderspec.VersionedSignedBuilderBid `json:"capella,omitempty"`
	Timestamp time.Time                              `json:"timestamp"`
}

func (*BuilderBidHeaderResponse) Value

func (b *BuilderBidHeaderResponse) Value() *big.Int

type BuilderBlockQuery

type BuilderBlockQuery struct {
	Slot        uint64
	BlockHash   types.Hash
	BlockNumber uint64
	Limit       uint64
}

type BuilderBlockSimulator

type BuilderBlockSimulator interface {
	SimulateBlockSubmission(ctx context.Context, payload *BuilderBlockValidationRequest) error
}

type BuilderBlockValidationRequest

type BuilderBlockValidationRequest struct {
	BuilderSubmitBlockRequest
	RegisteredGasLimit uint64 `json:"registered_gas_limit,string"`
}

func (*BuilderBlockValidationRequest) MarshalJSON

func (b *BuilderBlockValidationRequest) MarshalJSON() ([]byte, error)

type BuilderGetValidatorsResponseEntry

type BuilderGetValidatorsResponseEntry struct {
	types.BuilderGetValidatorsResponseEntry
	ValidatorIndex uint64 `json:"validator_index,string"`
}

type BuilderSubmitBlockRequest

type BuilderSubmitBlockRequest struct {
	Capella *buildercapella.SubmitBlockRequest
}

func (*BuilderSubmitBlockRequest) BlockNumber

func (r *BuilderSubmitBlockRequest) BlockNumber() uint64

func (*BuilderSubmitBlockRequest) ExecutionPayloadBlockHash

func (r *BuilderSubmitBlockRequest) ExecutionPayloadBlockHash() types.Hash

func (*BuilderSubmitBlockRequest) ExecutionPayloadParentHash

func (r *BuilderSubmitBlockRequest) ExecutionPayloadParentHash() types.Hash

func (*BuilderSubmitBlockRequest) ExecutionPayloadRandom

func (r *BuilderSubmitBlockRequest) ExecutionPayloadRandom() types.Hash

func (*BuilderSubmitBlockRequest) IsEmpty

func (r *BuilderSubmitBlockRequest) IsEmpty() bool

func (*BuilderSubmitBlockRequest) MarshalJSON

func (r *BuilderSubmitBlockRequest) MarshalJSON() ([]byte, error)

func (*BuilderSubmitBlockRequest) Message

func (*BuilderSubmitBlockRequest) NumTx

func (r *BuilderSubmitBlockRequest) NumTx() int

func (*BuilderSubmitBlockRequest) Signature

func (r *BuilderSubmitBlockRequest) Signature() types.Signature

func (*BuilderSubmitBlockRequest) Timestamp

func (r *BuilderSubmitBlockRequest) Timestamp() uint64

func (*BuilderSubmitBlockRequest) UnmarshalJSON

func (r *BuilderSubmitBlockRequest) UnmarshalJSON(data []byte) error

func (*BuilderSubmitBlockRequest) Value

func (r *BuilderSubmitBlockRequest) Value() *big.Int

func (*BuilderSubmitBlockRequest) Withdrawals

type DeliveredPayload

type DeliveredPayload struct {
	BidTrace
	SignedBlindedBeaconBlock *SignedBlindedBeaconBlock `json:"signed_blinded_beacon_block"`
	Timestamp                time.Time                 `json:"timestamp"`
	IP                       string                    `json:"ip,omitempty"`
}

type DutyGetter

type DutyGetter interface {
	All() []BuilderGetValidatorsResponseEntry
	BySlot(slot uint64) *BuilderGetValidatorsResponseEntry
	Slot() uint64
}

type DutySetter

type DutySetter interface {
	Set(duties []BuilderGetValidatorsResponseEntry, slot uint64)
	DutyGetter
}

type EventSender

type EventSender interface {
	SendHeaderFetchedEvent(slot uint64, hash common.Hash, value *big.Int) error
	SendBlockUnblindedEvent(slot uint64, hash common.Hash, value *big.Int) error
	SendBlockSubmittedEvent(slot uint64, builder string, hash common.Hash, value *big.Int) error
	SendBlockSimulationFailedEvent(slot uint64, builder string, hash common.Hash, value *big.Int, err error) error
}

func NewEventSender

func NewEventSender(ctx context.Context, endpoint string) (EventSender, error)

type ForkSchedule

type ForkSchedule struct {
	PreviousVersion string `json:"previous_version"`
	CurrentVersion  string `json:"current_version"`
	Epoch           uint64 `json:"epoch,string"`
}

type ForkScheduleResponse

type ForkScheduleResponse struct {
	Data []ForkSchedule `json:"data"`
}

type GenesisInfo

type GenesisInfo struct {
	GenesisTime           uint64 `json:"genesis_time,string"`
	GenesisValidatorsRoot string `json:"genesis_validators_root"`
	GenesisForkVersion    string `json:"genesis_fork_version"`
}

type GenesisResponse

type GenesisResponse struct {
	Data GenesisInfo
}

type GetHeaderResponse

type GetHeaderResponse struct {
	Capella *builderspec.VersionedSignedBuilderBid
}

func (*GetHeaderResponse) BlockHash

func (h *GetHeaderResponse) BlockHash() types.Hash

func (*GetHeaderResponse) IsEmpty

func (h *GetHeaderResponse) IsEmpty() bool

func (*GetHeaderResponse) MarshalJSON

func (h *GetHeaderResponse) MarshalJSON() ([]byte, error)

func (*GetHeaderResponse) UnmarshalJSON

func (h *GetHeaderResponse) UnmarshalJSON(data []byte) error

func (*GetHeaderResponse) Value

func (h *GetHeaderResponse) Value() *big.Int

type GetPayloadResponse

type GetPayloadResponse struct {
	Capella *builderapi.VersionedExecutionPayload
}

func (*GetPayloadResponse) BlockHash

func (g *GetPayloadResponse) BlockHash() types.Hash

func (*GetPayloadResponse) MarshalJSON

func (g *GetPayloadResponse) MarshalJSON() ([]byte, error)

func (*GetPayloadResponse) NumTx

func (g *GetPayloadResponse) NumTx() int

func (*GetPayloadResponse) UnmarshalJSON

func (g *GetPayloadResponse) UnmarshalJSON(data []byte) error

type HeadEvent

type HeadEvent struct {
	Slot  uint64 `json:"slot,string"`
	Block string `json:"block"`
	State string `json:"state"`
}

type JSONError

type JSONError struct {
	Message string `json:"message"`
	Code    int    `json:"code"`
}

type KnownValidatorGetter

type KnownValidatorGetter interface {
	ByIndex(index uint64) (types.PubkeyHex, error)
	IsKnown(pbHex types.PubkeyHex) bool
	Count() uint64
	LastSlot() uint64
	IsUpdated() bool
}

type KnownValidatorSetter

type KnownValidatorSetter interface {
	Set(v map[types.PubkeyHex]uint64, vByIndx map[uint64]types.PubkeyHex, slot uint64)
	Updated(bool)
	KnownValidatorGetter
}

type KnownValidatorsResponse

type KnownValidatorsResponse struct {
	Data                []ValidatorResponseEntry `json:"data"`
	ExecutionOptimistic bool                     `json:"execution_optimistic"`
	Finalized           bool                     `json:"finalized"`
}

type MissedPayload

type MissedPayload struct {
	TimeIntoSlot   int64           `json:"time_into_slot"`
	SlotStart      uint64          `json:"slot_start"`
	Timestamp      time.Time       `json:"timestamp"`
	Slot           uint64          `json:"slot,string"`
	ProposerPubkey types.PublicKey `json:"proposer_pubkey" ssz-size:"48"`
	BlockHash      types.Hash      `json:"block_hash" ssz-size:"32"`
	IP             string          `json:"ip,omitempty"`
	Error          string          `json:"error,omitempty"`
	DeliveredError string          `json:"delivered_error,omitempty"`
}

type MultiBeacon

type MultiBeacon interface {
	Genesis() (*GenesisInfo, error)
	Validators(headSlot uint64) (*KnownValidatorsResponse, error)
	BestSyncingNode() (*SyncNodeResponse, error)
	ProposerDuties(epoch uint64) (*ProposerDutiesResponse, error)
	SubscribeToHeadEvents(slot chan HeadEvent)
	SubscribeToPayloadAttributesEvents(payload chan PayloadAttributesEvent)
	Randao(slot uint64) (*RandaoResponse, error)
	PublishBlock(block *SignedBeaconBlock) error
	BlockBySlot(slot uint64) (*BeaconBlockResponse, error)
	ForkSchedule() (*ForkScheduleResponse, error)
	Withdrawals(slot uint64) (*WithdrawalsResponse, error)
}

Swagger Docs: https://ethereum.github.io/beacon-APIs/#/Beacon

type PayloadAttributes

type PayloadAttributes struct {
	Timestamp             uint64                         `json:"timestamp,string"`
	PrevRandao            string                         `json:"prev_randao"`
	SuggestedFeeRecipient string                         `json:"suggested_fee_recipient"`
	Withdrawals           []*consensuscapella.Withdrawal `json:"withdrawals"`
}

type PayloadAttributesEvent

type PayloadAttributesEvent struct {
	Version string                     `json:"version"`
	Data    PayloadAttributesEventData `json:"data"`
}

type PayloadAttributesEventData

type PayloadAttributesEventData struct {
	ProposerIndex     uint64            `json:"proposer_index,string"`
	ProposalSlot      uint64            `json:"proposal_slot,string"`
	ParentBlockNumber uint64            `json:"parent_block_number,string"`
	ParentBlockRoot   string            `json:"parent_block_root"`
	ParentBlockHash   string            `json:"parent_block_hash"`
	PayloadAttributes PayloadAttributes `json:"payload_attributes"`
}

type ProposerDutiesResponse

type ProposerDutiesResponse struct {
	Data []ProposerDuty
}

type ProposerDuty

type ProposerDuty struct {
	Pubkey         string `json:"pubkey"`
	Slot           uint64 `json:"slot,string"`
	ValidatorIndex uint64 `json:"validator_index,string"`
}

type ProposerDutyData

type ProposerDutyData struct {
	BuilderGetValidatorsResponseEntry
	Timestamp time.Time
}

type ProposerPayloadQuery

type ProposerPayloadQuery struct {
	Slot           uint64
	Cursor         uint64
	BlockHash      types.Hash
	BlockNumber    uint64
	ProposerPubkey types.PublicKey
	OrderBy        int8 // DESC = -1 = -value and ASC = 1 = value, 0
	Limit          uint64
}

func (ProposerPayloadQuery) IsValid

func (q ProposerPayloadQuery) IsValid() (bool, error)

type Randao

type Randao struct {
	Randao string `json:"randao"`
}

type RandaoResponse

type RandaoResponse struct {
	Data Randao
}

type RateLimiter

type RateLimiter interface {
	Wait(ctx context.Context, key string) error
	Close(key string)
}

func NewRateLimiter

func NewRateLimiter(max uint64, d time.Duration) RateLimiter

type Relay

type Relay interface {
	HTTPServer(addr string, readTimeout, readHeadTimeout, writeTimeout, idleTimeout, maxHeaderBytes uint64) *http.Server
	Stop()
}

type RelayConfig

type RelayConfig struct {
	SecretKey                   *bls.SecretKey
	PublicKey                   *types.PublicKey
	DomainBuilder               types.Domain
	DomainBeaconProposerCapella types.Domain
	GenesisForkVersion          string
	GenesisValidatorsRoot       string
	ForkVersionCapella          string
	ChainID                     uint64

	BlockSimURL     string
	BlockSimURLSafe string
	Network         string
}

func NewRelayConfig

func NewRelayConfig(network, url string, pk *types.PublicKey, sk *bls.SecretKey) (*RelayConfig, error)

type SignedBeaconBlock

type SignedBeaconBlock struct {
	Capella *consensuscapella.SignedBeaconBlock
}

func (*SignedBeaconBlock) MarshalJSON

func (s *SignedBeaconBlock) MarshalJSON() ([]byte, error)

func (*SignedBeaconBlock) Slot

func (s *SignedBeaconBlock) Slot() uint64

func (*SignedBeaconBlock) UnmarshalJSON

func (s *SignedBeaconBlock) UnmarshalJSON(data []byte) error

type SignedBlindedBeaconBlock

type SignedBlindedBeaconBlock struct {
	Capella   *apicapella.SignedBlindedBeaconBlock
	Bellatrix *types.SignedBlindedBeaconBlock
}

func (*SignedBlindedBeaconBlock) BlockHash

func (s *SignedBlindedBeaconBlock) BlockHash() types.Hash

func (*SignedBlindedBeaconBlock) BlockNumber

func (s *SignedBlindedBeaconBlock) BlockNumber() uint64

func (*SignedBlindedBeaconBlock) MarshalJSON

func (s *SignedBlindedBeaconBlock) MarshalJSON() ([]byte, error)

func (*SignedBlindedBeaconBlock) Message

func (*SignedBlindedBeaconBlock) ProposerIndex

func (s *SignedBlindedBeaconBlock) ProposerIndex() uint64

func (*SignedBlindedBeaconBlock) Signature

func (s *SignedBlindedBeaconBlock) Signature() types.Signature

func (*SignedBlindedBeaconBlock) Slot

func (s *SignedBlindedBeaconBlock) Slot() uint64

func (*SignedBlindedBeaconBlock) UnmarshalJSON

func (s *SignedBlindedBeaconBlock) UnmarshalJSON(data []byte) error

type SignedValidatorRegistrationExtended

type SignedValidatorRegistrationExtended struct {
	types.SignedValidatorRegistration
	Timestamp time.Time `json:"timestamp"`
	IP        string    `json:"ip,omitempty"`
}

type StoreGetter

type StoreGetter interface {
	IsKnownBuilder(pubKey types.PublicKey) (bool, error)
	Builder(pubKey types.PublicKey) (*BlockBuilder, error)
	Builders() ([]BlockBuilder, error)
	CountValidators() (uint64, error)
	Validators() ([]types.SignedValidatorRegistration, error)
	Validator(pubKey types.PublicKey) (*types.SignedValidatorRegistration, error)
	ValidatorExtended(pubKey types.PublicKey) (*SignedValidatorRegistrationExtended, error)
	Delivered(query ProposerPayloadQuery) ([]BidTraceReceived, error)
	Submitted(query BuilderBlockQuery) ([]BidTraceReceived, error)
	Executed(slot uint64, proposerKey types.PublicKey, blockHash types.Hash) (*GetPayloadResponse, error)
	BidTrace(slot uint64, proposerKey types.PublicKey, blockHash types.Hash) (*BidTrace, error)
	BestBid(slot uint64, parentHash, proposerKey string) (*GetHeaderResponse, error)
	DeliveredCount() (uint64, error)
	LatestSlot() (uint64, error)
	Archive(tw *tar.Writer, w http.ResponseWriter, slot uint64) error
	Backup(tw *tar.Writer) error
}

type StoreKeeper

type StoreKeeper interface {
	StoreSetter
	StoreGetter
	InsertBlockBuilder(BlockBuilder) error
}

type StoreSetter

type StoreSetter interface {
	UpsertBuilderSubmitted(pubKey types.PublicKey, slot uint64, submissionID string, simErr error) error
	UpsertBuilderDelivered(pubKey types.PublicKey, slot uint64, deliveredID string) error
	SetBuilderStatus(pubKey types.PublicKey, highPriority, blacklisted bool) error
	PutValidator(pubKey types.PublicKey, payload SignedValidatorRegistrationExtended) error
	PutBuilderBid(bidTrace BidTrace, getPayloadResponse GetPayloadResponse, getHeaderResponse GetHeaderResponse, receivedAt time.Time) error
	PutSubmitted(payload BidTraceExtended) error
	PutDelivered(payload DeliveredPayload) error
	PutMissed(payload MissedPayload) error
	SetLatestSlot(slot uint64) error
	Prune(slot uint64) error
	Close()
	StoreGetter
}

type SyncNode

type SyncNode struct {
	HeadSlot     uint64 `json:"head_slot,string"`
	IsSyncing    bool   `json:"is_syncing"`
	SyncDistance uint64 `json:"sync_distance,string"`
	IsOptimistic bool   `json:"is_optimistic"`
}

type SyncNodeResponse

type SyncNodeResponse struct {
	Data SyncNode
}

type ValidatorResponseEntry

type ValidatorResponseEntry struct {
	Index     uint64                         `json:"index,string"`
	Balance   int64                          `json:"balance,string"`
	Status    string                         `json:"status"`
	Validator ValidatorResponseValidatorData `json:"validator"`
}

type ValidatorResponseValidatorData

type ValidatorResponseValidatorData struct {
	Pubkey string `json:"pubkey"`
}

type VersionedExecutedPayload

type VersionedExecutedPayload struct {
	Capella   *builderapi.VersionedExecutionPayload `json:"capella,omitempty"`
	Timestamp time.Time                             `json:"timestamp"`
}

type WithdrawalsData

type WithdrawalsData struct {
	Withdrawals []*consensuscapella.Withdrawal `json:"withdrawals"`
}

type WithdrawalsResponse

type WithdrawalsResponse struct {
	Data WithdrawalsData `json:"data"`
}

Jump to

Keyboard shortcuts

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