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
- Variables
- func ImportSqlBlockBuilderData(log logger.Logger, db *sqlx.DB, dbPth, table string, limit uint64) error
- func ImportSqlDeliveredData(log logger.Logger, db *sqlx.DB, dbPth, table string, limit uint64) error
- func NewAPI(store StoreSetter, known KnownValidatorGetter, genesis uint64, network string, ...) *api
- func NewBBoltDB(pth string) (*bboltDB, error)
- func NewBuilderBlockSimulator(timeout time.Duration, addr string) *builderBlockSimulate
- func NewDutyState() *dutyState
- func NewKnownValidators() *knownValidators
- func NewMultiBeacon(beaconURIs []string, validatorsTimeout uint64) *multiBeacon
- func NewPebbleDB(pth string, flush bool) (*pebbleDB, error)
- func NewRelay(ctx context.Context, store StoreSetter, beacon MultiBeacon, ...) (*relay, error)
- type API
- type BeaconBlockResponse
- type BidTrace
- type BidTraceArchived
- type BidTraceExtended
- type BidTraceReceived
- type BidTraceTimestamp
- type BlockBuilder
- type BlockedValidator
- type BuilderBidHeaderResponse
- type BuilderBlockQuery
- type BuilderBlockSimulator
- type BuilderBlockValidationRequest
- type BuilderGetValidatorsResponseEntry
- type BuilderSubmitBlockRequest
- func (r *BuilderSubmitBlockRequest) BlockNumber() uint64
- func (r *BuilderSubmitBlockRequest) ExecutionPayloadBlockHash() types.Hash
- func (r *BuilderSubmitBlockRequest) ExecutionPayloadParentHash() types.Hash
- func (r *BuilderSubmitBlockRequest) ExecutionPayloadRandom() types.Hash
- func (r *BuilderSubmitBlockRequest) IsEmpty() bool
- func (r *BuilderSubmitBlockRequest) MarshalJSON() ([]byte, error)
- func (r *BuilderSubmitBlockRequest) Message() *types.BidTrace
- func (r *BuilderSubmitBlockRequest) NumTx() int
- func (r *BuilderSubmitBlockRequest) Signature() types.Signature
- func (r *BuilderSubmitBlockRequest) Timestamp() uint64
- func (r *BuilderSubmitBlockRequest) UnmarshalJSON(data []byte) error
- func (r *BuilderSubmitBlockRequest) Value() *big.Int
- func (r *BuilderSubmitBlockRequest) Withdrawals() []*consensuscapella.Withdrawal
- type DeliveredPayload
- type DutyGetter
- type DutySetter
- type EventSender
- type ForkSchedule
- type ForkScheduleResponse
- type GenesisInfo
- type GenesisResponse
- type GetHeaderResponse
- type GetPayloadResponse
- type HeadEvent
- type JSONError
- type KnownValidatorGetter
- type KnownValidatorSetter
- type KnownValidatorsResponse
- type MissedPayload
- type MultiBeacon
- type PayloadAttributes
- type PayloadAttributesEvent
- type PayloadAttributesEventData
- type ProposerDutiesResponse
- type ProposerDuty
- type ProposerDutyData
- type ProposerPayloadQuery
- type Randao
- type RandaoResponse
- type RateLimiter
- type Relay
- type RelayConfig
- type SignedBeaconBlock
- type SignedBlindedBeaconBlock
- func (s *SignedBlindedBeaconBlock) BlockHash() types.Hash
- func (s *SignedBlindedBeaconBlock) BlockNumber() uint64
- func (s *SignedBlindedBeaconBlock) MarshalJSON() ([]byte, error)
- func (s *SignedBlindedBeaconBlock) Message() types.HashTreeRoot
- func (s *SignedBlindedBeaconBlock) ProposerIndex() uint64
- func (s *SignedBlindedBeaconBlock) Signature() types.Signature
- func (s *SignedBlindedBeaconBlock) Slot() uint64
- func (s *SignedBlindedBeaconBlock) UnmarshalJSON(data []byte) error
- type SignedValidatorRegistrationExtended
- type StoreGetter
- type StoreKeeper
- type StoreSetter
- type SyncNode
- type SyncNodeResponse
- type ValidatorResponseEntry
- type ValidatorResponseValidatorData
- type VersionedExecutedPayload
- type WithdrawalsData
- type WithdrawalsResponse
Constants ¶
const ( SlotsPerEpoch = 32 SecondsPerSlot = 12 DurationPerSlot = time.Second * SecondsPerSlot DurationPerEpoch = DurationPerSlot * time.Duration(SlotsPerEpoch) )
Variables ¶
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") )
var ( ZeroU256 = types.IntToU256(0) ZeroBigInt = big.NewInt(0) CapellaForkVersionGoerli = "0x03001020" CapellaForkVersionMainnet = "0x03000000" )
Functions ¶
func ImportSqlDeliveredData ¶
func NewAPI ¶
func NewAPI(store StoreSetter, known KnownValidatorGetter, genesis uint64, network string, publickKey types.PublicKey, tracer trace.Tracer) *api
func NewBBoltDB ¶
func NewDutyState ¶
func NewDutyState() *dutyState
func NewKnownValidators ¶
func NewKnownValidators() *knownValidators
func NewMultiBeacon ¶
func NewPebbleDB ¶
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 BeaconBlockResponse ¶
type BeaconBlockResponse struct { Data SignedBeaconBlock `json:"data"` Version string `json:"version"` }
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 BidTraceReceived ¶
type BidTraceTimestamp ¶
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 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 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 (r *BuilderSubmitBlockRequest) Message() *types.BidTrace
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 ¶
func (r *BuilderSubmitBlockRequest) Withdrawals() []*consensuscapella.Withdrawal
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 ForkScheduleResponse ¶
type ForkScheduleResponse struct {
Data []ForkSchedule `json:"data"`
}
type GenesisInfo ¶
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 KnownValidatorGetter ¶
type KnownValidatorSetter ¶
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 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 RandaoResponse ¶
type RandaoResponse struct {
Data Randao
}
type RateLimiter ¶
func NewRateLimiter ¶
func NewRateLimiter(max uint64, d time.Duration) RateLimiter
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 ¶
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 (s *SignedBlindedBeaconBlock) Message() types.HashTreeRoot
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 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"`
}