itering/scale.go

Panic: Vec length 20115 exceeds 1000

Closed this issue · 2 comments

Network: Polkadot
Block number: 5086871

extDecoder := scalecodec.ExtrinsicDecoder{}
extDecoder.Init(types.ScaleBytes{Data: utiles.HexToBytes(ext)}, &option)
extDecoder.Process()

Panic: Vec length 20115 exceeds 1000

patch: types/types.go

func (v *Vec) Process() {
	elementCount := v.ProcessAndUpdateData("Compact<u32>").(int)
	var result []interface{}
	if elementCount > 50000 {
		panic(fmt.Sprintf("Vec length %d exceeds %d", elementCount, 50000))
	}
	for i := 0; i < elementCount; i++ {
		element := v.ProcessAndUpdateData(v.SubType)
		result = append(result, element)
	}
	v.Value = result
}

@artjoma thanks for your feedback, so such huge vector 😂